u-boot/board/solidrun/clearfog
Martin Rowe c733fe91e4 arm: mvebu: clearfog: Detect MMC vs SDHC and fixup fdt
[upstream of vendor commit 19a96f7c40a8fc1d0a6546ac2418d966e5840a99]

The Clearfog devices have only one SDHC device. This is either eMMC if
it is populated on the SOM or SDHC if not. The Linux device tree assumes
the SDHC case. Detect if the device is an eMMC and fixup the device-tree
so it will be detected by Linux.

Ported from vendor repo at https://github.com/SolidRun/u-boot

Signed-off-by: Martin Rowe <martin.p.rowe@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2023-03-30 07:05:20 +02:00
..
clearfog.c arm: mvebu: clearfog: Detect MMC vs SDHC and fixup fdt 2023-03-30 07:05:20 +02:00
Kconfig arm: mvebu: Load U-Boot proper binary in SPL code based on kwbimage header 2021-07-31 09:59:58 +02:00
MAINTAINERS Merge git://git.denx.de/u-boot-marvell 2018-11-20 12:39:16 -05:00
Makefile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README Makefile: Rename u-boot-spl.kwb to u-boot-with-spl.kwb 2022-11-07 07:17:55 +01:00

Update from original Marvell U-Boot to mainline U-Boot:
-------------------------------------------------------

Generate the U-Boot image with these commands:

$ make clearfog_defconfig
$ make

The resulting image including the SPL binary with the
full DDR setup is "u-boot-with-spl.kwb".

Now all you need to do is copy this image on a SD card.
For example with this command:

$ sudo dd if=u-boot-with-spl.kwb of=/dev/sdX bs=512 seek=1

Please use the correct device node for your setup instead
of "/dev/sdX" here!

Install U-Boot on eMMC:
-----------------------

To make SPL load the main U-Boot image from the eMMC boot partition enable
eMMC boot acknowledgement and boot partition with the following U-Boot
command:

  mmc partconf 0 1 1 0

Install U-Boot on eMMC boot partition from Linux running on Clearfog:

  echo 0 > /sys/block/mmcblk0boot0/force_ro
  dd if=u-boot-with-spl.kwb of=/dev/mmcblk0boot0

Note that the SD card is not accessible when the Clearfog SOM has eMMC.
Consider initial boot from UART (see below).

Install U-Boot on SATA:
-----------------------

When loading the main U-Boot image from raw SATA sector, set
CONFIG_SPL_SATA_RAW_U_BOOT_SECTOR to 0x141.

Boot selection:
---------------

Before powering up the board, boot selection should be done via the SW1 dip
switch (0: OFF, 1: ON):

 - SPI:     00010
 - SD/eMMC: 00111
 - M.2 SSD: 11100
 - UART:    01001 [1]

[1]: According to SolidRun's manual, 11110 should be used for UART booting on
     the ClearFog 'Pro' variant.
     However, this doesn't work (anymore) at least on Rev. 2.1 (but '01001' as
     mentionend for the 'Base' variant does).

Boot from UART:
---------------

Connect the on-board micro-USB (CF Pro: CON11, CF Base: CON5)
to your host.

Set the SW1 DIP switches to UART boot (see above).

Run the following command to initiate U-Boot download:

  ./tools/kwboot -b u-boot-with-spl.kwb /dev/ttyUSBX

Use the correct UART device node for /dev/ttyUSBX.

When download finishes start your favorite terminal emulator
on /dev/ttyUSBX.