mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
x86: doc: Document some porting hints about Intel Quark
Document porting considerations for Intel Quark based board, including MRC parameters and PCIe initialization. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5bf0f7f65d
commit
448719c5e7
1 changed files with 24 additions and 0 deletions
|
@ -733,6 +733,30 @@ Example output:
|
||||||
PCI_BDF(0, 3, 0) INTA PIRQA
|
PCI_BDF(0, 3, 0) INTA PIRQA
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Porting Hints
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Quark-specific considerations:
|
||||||
|
|
||||||
|
To port U-Boot to other boards based on the Intel Quark SoC, a few things need
|
||||||
|
to be taken care of. The first important part is the Memory Reference Code (MRC)
|
||||||
|
parameters. Quark MRC supports memory-down configuration only. All these MRC
|
||||||
|
parameters are supplied via the board device tree. To get started, first copy
|
||||||
|
the MRC section of arch/x86/dts/galileo.dts to your board's device tree, then
|
||||||
|
change these values by consulting board manuals or your hardware vendor.
|
||||||
|
Available MRC parameter values are listed in include/dt-bindings/mrc/quark.h.
|
||||||
|
The other tricky part is with PCIe. Quark SoC integrates two PCIe root ports,
|
||||||
|
but by default they are held in reset after power on. In U-Boot, PCIe
|
||||||
|
initialization is properly handled as per Quark's firmware writer guide.
|
||||||
|
In your board support codes, you need provide two routines to aid PCIe
|
||||||
|
initialization, which are board_assert_perst() and board_deassert_perst().
|
||||||
|
The two routines need implement a board-specific mechanism to assert/deassert
|
||||||
|
PCIe PERST# pin. Care must be taken that in those routines that any APIs that
|
||||||
|
may trigger PCI enumeration process are strictly forbidden, as any access to
|
||||||
|
PCIe root port's configuration registers will cause system hang while it is
|
||||||
|
held in reset. For more details, check how they are implemented by the Intel
|
||||||
|
Galileo board support codes in board/intel/galileo/galileo.c.
|
||||||
|
|
||||||
TODO List
|
TODO List
|
||||||
---------
|
---------
|
||||||
- Audio
|
- Audio
|
||||||
|
|
Loading…
Reference in a new issue