Skip to content

Commit c02288b

Browse files
Charles E. Youseioannisg
authored andcommitted
docs: fix errors/ambiguities in docs for Apollo Lake boards
The documentation for the GPMRB incorrectly made reference to the up_squared board in its high-speed UART configuration section. We consolidate the related documentation for all boards based on the Apollo Lake SoC and adjust the language to be more generic. Fixes: #18808 Signed-off-by: Charles E. Youse <[email protected]>
1 parent 58fa1a1 commit c02288b

File tree

2 files changed

+5
-147
lines changed

2 files changed

+5
-147
lines changed

boards/x86/up_squared/doc/index.rst

Lines changed: 2 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -18,155 +18,19 @@ a powerful and flexible Intel |reg| FPGA Altera MAX 10 onboard.
1818

1919
Up Squared (Credit: https://up-board.org)
2020

21-
This board configuration enables kernel support for the `UP Squared`_ board,
22-
along with the following devices:
23-
24-
* High Precision Event Timer (HPET)
25-
26-
* Serial Ports in Polling and Interrupt Driven Modes
27-
28-
* GPIO
29-
30-
* I2C
21+
This board configuration enables kernel support for the `UP Squared`_ board.
3122

3223
.. note::
3324
This board configuration works on all three variants of `UP Squared`_
3425
boards containing Intel |reg| Pentium |trade| SoC,
3526
Intel |reg| Celeron |trade| SoC, or Intel |reg| Atom |trade| SoC.
3627

37-
.. note::
38-
This board configuration works only with the default BIOS settings.
39-
Enabling/disabling LPSS devices in BIOS (under Advanced -> HAT Configurations)
40-
will change the MMIO addresses of these devices, and will prevent
41-
the drivers from communicating with these devices. For drivers that support
42-
PCI enumeration, :option:`CONFIG_PCI` and :option:`CONFIG_PCI_ENUMERATION`
43-
will allow these drivers to probe for the correct MMIO addresses.
44-
4528
Hardware
4629
********
4730

4831
General information about the board can be found at the `UP Squared`_ website.
4932

50-
Supported Features
51-
==================
52-
53-
This board supports the following hardware features:
54-
55-
* HPET
56-
57-
* Advanced Programmed Interrupt Controller (APIC)
58-
59-
* Serial Ports in Polling and Interrupt Driven Modes, High-Speed
60-
61-
* GPIO
62-
63-
* I2C
64-
65-
+-----------+------------+-----------------------+-----------------+
66-
| Interface | Controller | Driver/Component | PCI Enumeration |
67-
+===========+============+=======================+=================+
68-
| HPET | on-chip | system clock | Not Supported |
69-
+-----------+------------+-----------------------+-----------------+
70-
| APIC | on-chip | interrupt controller | Not Supported |
71-
+-----------+------------+-----------------------+-----------------+
72-
| UART | on-chip | serial port-polling; | Supported |
73-
| | | serial port-interrupt | |
74-
+-----------+------------+-----------------------+-----------------+
75-
| GPIO | on-chip | GPIO controller | Not Supported |
76-
+-----------+------------+-----------------------+-----------------+
77-
| I2C | on-chip | I2C controller | Supported |
78-
+-----------+------------+-----------------------+-----------------+
79-
80-
The Zephyr kernel currently does not support other hardware features.
81-
82-
Serial Port Support
83-
-------------------
84-
85-
Serial port I/O is supported in both polling and interrupt-driven modes.
86-
87-
Baud rates beyond 115.2Kbps (up to 3.6864Mbps) are supported, with additional
88-
configuration. The UARTs are fed a master clock which is fed into a PLL which
89-
in turn outputs the baud master clock. The PLL is controlled by a per-UART
90-
32-bit register called ``PRV_CLOCK_PARAMS`` (aka the ``PCP``), the format of
91-
which is:
92-
93-
+--------+---------+--------+--------+
94-
| [31] | [30:16] | [15:1] | [0] |
95-
+========+=========+========+========+
96-
| enable | ``m`` | ``n`` | toggle |
97-
+--------+---------+--------+--------+
98-
99-
The resulting baud master clock frequency is ``(n/m)`` * master.
100-
101-
On the UP^2, the master clock is 100MHz, and the firmware by default sets
102-
the ``PCP`` to ``0x3d090240``, i.e., ``n = 288``, ``m = 15625``, which
103-
results in the de-facto standard 1.8432MHz master clock and a max baud rate
104-
of 115.2k. Higher baud rates are enabled by changing the PCP and telling
105-
Zephyr what the resulting master clock is.
106-
107-
Use devicetree to set the value of the ``PRV_CLOCK_PARAMS`` register in
108-
the UART block of interest. Typically an overlay ``up_squared.overlay``
109-
would be present in the application directory, and would look something
110-
like this:
111-
112-
.. code-block:: console
113-
114-
/ {
115-
soc {
116-
uart@0 {
117-
pcp = <0x3d090900>;
118-
clock-frequency = <7372800>;
119-
current-speed = <230400>;
120-
};
121-
};
122-
};
123-
124-
The relevant variables are ``pcp`` (the value to use for ``PRV_CLOCK_PARAMS``),
125-
and ``clock-frequency`` (the resulting baud master clock). The meaning of
126-
``current-speed`` is unchanged, and as usual indicates the initial baud rate.
127-
128-
Interrupt Controller
129-
--------------------
130-
131-
This board uses the kernel's static Interrupt Descriptor Table (IDT) to program the
132-
Advanced Programmable Interrupt Controller (APIC) interrupt redirection table.
133-
134-
135-
+-----+---------+--------------------------+
136-
| IRQ | Remarks | Used by Zephyr Kernel |
137-
+=====+=========+==========================+
138-
| 2 | HPET | timer driver |
139-
+-----+---------+--------------------------+
140-
| 4 | UART_0 | serial port when used in |
141-
| | | interrupt mode |
142-
+-----+---------+--------------------------+
143-
| 5 | UART_1 | serial port when used in |
144-
| | | interrupt mode |
145-
+-----+---------+--------------------------+
146-
| 14 | GPIO | GPIO APL driver |
147-
+-----+---------+--------------------------+
148-
| 27 | I2C_0 | I2C DW driver |
149-
+-----+---------+--------------------------+
150-
| 28 | I2C_1 | I2C DW driver |
151-
+-----+---------+--------------------------+
152-
| 29 | I2C_2 | I2C DW driver |
153-
+-----+---------+--------------------------+
154-
| 30 | I2C_3 | I2C DW driver |
155-
+-----+---------+--------------------------+
156-
| 31 | I2C_4 | I2C DW driver |
157-
+-----+---------+--------------------------+
158-
| 32 | I2C_5 | I2C DW driver |
159-
+-----+---------+--------------------------+
160-
| 33 | I2C_6 | I2C DW driver |
161-
+-----+---------+--------------------------+
162-
| 34 | I2C_7 | I2C DW driver |
163-
+-----+---------+--------------------------+
164-
165-
HPET System Clock Support
166-
-------------------------
167-
168-
The SoC uses HPET timing with legacy-free timer support. The board
169-
configuration uses HPET as a system clock timer.
33+
.. include:: ../../../../soc/x86/apollo_lake/doc/supported_features.rst
17034

17135
GPIO
17236
----
@@ -187,12 +51,6 @@ Connections and IOs
18751
Refer to the `UP Squared`_ website and `UP Squared Pinout`_ website
18852
for connection diagrams.
18953

190-
Memory Mappings
191-
===============
192-
193-
This board configuration uses default hardware memory map
194-
addresses and sizes.
195-
19654
Programming and Debugging
19755
*************************
19856

soc/x86/apollo_lake/doc/supported_features.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ of 115.2k. Higher baud rates are enabled by changing the PCP and telling
3636
Zephyr what the resulting master clock is.
3737

3838
Use devicetree to set the value of the ``PRV_CLOCK_PARAMS`` register in
39-
the UART block of interest. Typically an overlay ``up_squared.overlay``
40-
would be present in the application directory, and would look something
41-
like this:
39+
the UART block of interest. Typically a devicetree overlay file would be
40+
present in the application directory (specific to the board, such as
41+
``up_squared.overlay`` or ``gpmrb.overlay``), with contents like this:
4242

4343
.. code-block:: console
4444

0 commit comments

Comments
 (0)