forked from OERV-BSP/u-boot
Provide the settings for using the debug UART in SPL. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: E Shattow <e@freeshell.de>
104 lines
3.1 KiB
ReStructuredText
104 lines
3.1 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
Boot source selection
|
|
---------------------
|
|
|
|
The board provides DIP switches to select the device for loading the boot
|
|
firmware.
|
|
|
|
=========== === ===
|
|
Boot source SW1 SW2
|
|
=========== === ===
|
|
UART OFF OFF
|
|
SD-card ON OFF
|
|
eMMC OFF ON
|
|
SPI flash ON ON
|
|
=========== === ===
|
|
|
|
Flashing a new U-Boot version
|
|
-----------------------------
|
|
|
|
U-Boot SPL is provided as file spl/u-boot-spl.bin.normal.out. Main U-Boot is
|
|
in file u-boot.itb.
|
|
|
|
Assuming your new U-Boot version is on partition 1 of an SD-card you could
|
|
install it to the SPI flash with:
|
|
|
|
.. code-block:: console
|
|
|
|
sf probe
|
|
load mmc 1:1 $kernel_addr_r u-boot-spl.bin.normal.out
|
|
sf update $kernel_addr_r 0 $filesize
|
|
load mmc 1:1 $kernel_addr_r u-boot.itb
|
|
sf update $kernel_addr_r 0x100000 $filesize
|
|
|
|
For loading the files from a TFTP server refer to the dhcp and tftpboot
|
|
commands.
|
|
|
|
After updating U-Boot you may want to erase a saved environment and reboot.
|
|
|
|
.. code-block:: console
|
|
|
|
env erase
|
|
reset
|
|
|
|
Booting from SD-Card
|
|
--------------------
|
|
|
|
The device boot ROM loads U-Boot SPL (u-boot-spl.bin.normal.out) from the
|
|
partition with type GUID 2E54B353-1271-4842-806F-E436D6AF6985. You are free
|
|
to choose any partition number.
|
|
|
|
With the default configuration U-Boot SPL loads the U-Boot FIT image
|
|
(u-boot.itb) from partition 2 (CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=0x2).
|
|
When formatting it is recommended to use GUID
|
|
BC13C2FF-59E6-4262-A352-B275FD6F7172 for this partition.
|
|
|
|
Booting from eMMC
|
|
-----------------
|
|
|
|
The device boot ROM tries to load U-Boot SPL (u-boot-spl.bin.normal.out) from
|
|
sector 0 of the eMMC's main hardware partition. But this conflicts with GPT
|
|
partitioning. Fortunately eMMC can alternatively load U-Boot SPL from a backup
|
|
position.
|
|
|
|
For U-Boot SPL (u-boot-spl.bin.normal.out) starting at sector 2048 (position
|
|
0x100000) write the following bytes to the eMMC device after GPT partitioning:
|
|
|
|
======= ========================
|
|
Address Bytes
|
|
======= ========================
|
|
0x0000 40 02 00 00 00 00 10 00
|
|
0x0290 40 02 00 00 00 00 10 00
|
|
======= ========================
|
|
|
|
With the default configuration U-Boot SPL loads the U-Boot FIT image
|
|
(u-boot.itb) from partition 2 (CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=0x2).
|
|
When formatting it is recommended to use GUID
|
|
BC13C2FF-59E6-4262-A352-B275FD6F7172 for this partition.
|
|
|
|
Booting from UART
|
|
-----------------
|
|
|
|
The boot ROM supports the X-modem protocol to upload
|
|
spl/u-boot-spl.bin.normal.out. U-Boot SPL support loading the FIT image
|
|
u-boot.itb via the Y-modem protocol.
|
|
|
|
Due to restrictions of the boot ROM not all X-modem implementations are
|
|
compatible. The package tio (https://github.com/tio/tio) has been found to be
|
|
usable.
|
|
|
|
Debug UART
|
|
----------
|
|
|
|
By default the SBI interface is used for the debug UART. But this only works
|
|
in main U-Boot. To enable the debug UART in SPL, too, use the following
|
|
settings::
|
|
|
|
CONFIG_DEBUG_UART=y
|
|
CONFIG_DEBUG_UART_NS16550=y
|
|
CONFIG_DEBUG_UART_BASE=0x10000000
|
|
CONFIG_SPL_DEBUG_UART_BASE=0x10000000
|
|
CONFIG_DEBUG_UART_CLOCK=24000000
|
|
CONFIG_DEBUG_UART_SHIFT=2
|