u-boot/board/logicpd/omap3som
Adam Ford 169eb19135 ARM: omap3_logic.c: Optimize DDR timings based on OMAP35 or 36/37
The default timings are assumming an OMAP36 / AM37 / DM37, but
the OMAP35 controller is a bit slower, so DDR may operate out of
spec when under stress.  This patch checks the processor type and
sets the DDR timings according to processor type.

Fixes: 5ad4212ce0 ("ARM: DTS: Add Logic PD OMAP35/DM37 SOM-LV
and OMAP35 Torpedo")

Signed-off-by: Adam Ford <aford173@gmail.com>
2018-10-22 09:18:49 -04:00
..
Kconfig omap3: omap3_logic: switch to using TI_COMMON_CMD_OPTION 2017-05-15 13:00:27 -04:00
MAINTAINERS ARM: DTS: Add Logic PD OMAP35/DM37 SOM-LV and OMAP35 Torpedo 2018-10-06 14:09:27 -04:00
Makefile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omap3logic.c ARM: omap3_logic.c: Optimize DDR timings based on OMAP35 or 36/37 2018-10-22 09:18:49 -04:00
omap3logic.h ARM: omap3_logic: Remove some manual pin-muxing 2018-09-29 08:07:28 -04:00
README ARM: LogicPD: omap3logic: Remove Torpedo/SOM-LV autodection 2018-10-06 14:09:40 -04:00

Summary
=======

The source for omap3logic.c encompases the OMAP35 and DM3730 SOM-LV and DM3730 Torpedo platforms, but there are device trees custom taylored to each board.

omap3_logic_defconfig = DM37 Torpedo / Torpedo + Wireless
omap35_logic_defconfig = OMAP35 Torpedo
omap3_logic_somlv_defconfig = DM37 SOM-LV
omap35_logic_somlv_defconfig = OMAP35 SOM-LV

The device tree included with each of the defconfig files will also direct the board as to which dtb file to load when loading the kernel, so it is not
recomended to mix and match the defconfig files.

Falcon Mode: FAT SD cards
=========================

In this case the additional file is written to the filesystem.  In this
example we assume that the uImage and device tree to be used are already on
the FAT filesystem (only the uImage MUST be for this to function
afterwards) along with a Falcon Mode aware MLO and the FAT partition has
already been created and marked bootable:

U-Boot # mmc rescan
# Load kernel and device tree into memory, perform export
U-Boot # fatload mmc 0 ${loadaddr} uImage
U-Boot # run loadfdt
U-Boot # setenv optargs quiet
U-Boot # run mmcargs
U-Boot # run common_bootargs
U-Boot # spl export fdt ${loadaddr} - ${fdtaddr}

This will print a number of lines and then end with something like:
   Loading Device Tree to 8dec9000, end 8dee0295 ... OK

So then note the starting address and write the args to mmc/sd:

U-Boot # fatwrite mmc 0:1 0x8dec9000 args 0x20000

The size of 0x20000 matches the CMD_SPL_WRITE_SIZE.

Falcon Mode: NAND
=================

In this case the additional data is written to another partition of the
NAND.  In this example we assume that the uImage and device tree to be are
already located on the NAND somewhere (such as filesystem or mtd partition)
along with a Falcon Mode aware MLO written to the correct locations for
booting and mtdparts have been configured correctly for the board:

U-Boot # nand read ${loadaddr} kernel
U-Boot # load nand rootfs ${fdtaddr} /boot/am335x-evm.dtb
U-Boot # run nandargs
U-Boot # run common_bootargs
U-Boot # spl export fdt ${loadaddr} - ${fdtaddr}
U-Boot # nand erase.part u-boot-spl-os
U-Boot # nand write ${fdtaddr} u-boot-spl-os