u-boot/board/logicpd/omap3som
Adam Ford 6032c02947 ARM: omap3_logic: Enable NAND unlocking during Falcon mode
Falcon mode was already working with SD card.  This enables the
unlocking of NAND to allow the NAND read & write.  This also
expands the README file based on the am335x describing how to
setup Falcon mode.

Signed-off-by: Adam Ford <aford173@gmail.com>
2017-12-12 21:33:38 -05:00
..
Kconfig omap3: omap3_logic: switch to using TI_COMMON_CMD_OPTION 2017-05-15 13:00:27 -04:00
MAINTAINERS OMAP3LOGIC: Update maintainer 2016-02-15 12:04:45 -05:00
Makefile board: arm: convert makefiles to Kbuild style 2013-11-01 11:42:12 -04:00
omap3logic.c ARM: omap3_logic: Enable NAND unlocking during Falcon mode 2017-12-12 21:33:38 -05:00
omap3logic.h omap3: omap3_logic: Move pinmuxing to header file 2017-11-17 07:44:13 -05:00
README ARM: omap3_logic: Enable NAND unlocking during Falcon mode 2017-12-12 21:33:38 -05:00

Summary
=======

The source for omap3som encompases the DM3730 SOM-LV and DM3730 Torpedo platforms.

By default, the Torpedo Device Tree is integrated into U-Boot,but the MMC controller, GPIO and I2C controllers are the same, so for the purposes of loading U-Boot, it should be sufficient.  However this will display the Model as "LogicPD Zoom DM3730 Torpedo + Wireless Development Kit" upon boot.

The actual board remains autodetected and the Board will read "DM37xx SOM LV" when used on the DM37 SOM-LV.  The device tree loaded with Linux is also correct.

Integrating the SOM-LV Device Tree into U-Boot
==============================================

This step is optional, but should you want to change the default to the SOM-LV, locate the configs/omap3_logic_defconfig file and make the following change.

  CONFIG_DEFAULT_DEVICE_TREE="logicpd-som-lv-37xx-devkit"

  make distclean
  make omap3_logic_defconfig

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