ARM: OMAP4: Panda: rework DMM logic
[oweals/u-boot.git] / board / ti / am335x / README
index 67b524673a106a1ebb08526f96f4afaff880f9dd..947305b58debfad2e2b02cc2ea7e5ee537785c20 100644 (file)
@@ -13,30 +13,75 @@ documented in TI's reference designs:
 - AM335x EVM SK
 - Beaglebone White
 - Beaglebone Black
-'
+
+Customization
+=============
+
+Given that all of the above boards are reference platforms (and the
+Beaglebone platforms are OSHA), it is likely that this platform code and
+configuration will be used as the basis of a custom platform.  It is
+worth noting that aside from things such as NAND or MMC only being
+required if a custom platform makes use of these blocks, the following
+are required, depending on design:
+
+- GPIO is only required if DDR3 power is controlled in a way similar to
+  EVM SK
+- SPI is only required for SPI flash, or exposing the SPI bus.
+
+The following blocks are required:
+- I2C, to talk with the PMIC and ensure that we do not run afoul of
+  errata 1.0.24.
+
+When removing options as part of customization,
+CONFIG_EXTRA_ENV_SETTINGS will need additional care to update for your
+needs and to remove no longer relevant options as in some cases we
+define additional text blocks (such as for NAND or DFU strings).  Also
+note that all of the SPL options are grouped together, rather than with
+the IP blocks, so both areas will need their choices updated to reflect
+the custom design.
+
 NAND
 ====
 
 The AM335x GP EVM ships with a 256MiB NAND available in most profiles.  In
 this example to program the NAND we assume that an SD card has been
 inserted with the files to write in the first SD slot and that mtdparts
-have been configured correctly for the board.  As a time saving measure we
-load MLO into memory in one location, copy it into the three locatations
-that the ROM checks for additional valid copies, then load U-Boot into
-memory.  We then write that whole section of memory to NAND.
-
-U-Boot # mmc rescan
-U-Boot # env default -f -a
-U-Boot # nand erase.chip
-U-Boot # saveenv
-U-Boot # load mmc 0 81000000 MLO
-U-Boot # cp.b 81000000 81020000 20000
-U-Boot # cp.b 81000000 81040000 20000
-U-Boot # cp.b 81000000 81060000 20000
-U-Boot # load mmc 0 81080000 u-boot.img
-U-Boot # nand write 81000000 0 260000
-U-Boot # load mmc 0 ${loadaddr} uImage
-U-Boot # nand write ${loadaddr} kernel 500000
+have been configured correctly for the board. All images are first loaded
+into memory, then written to NAND.
+
+Step-1: Building u-boot for NAND boot
+       Set following CONFIGxx options for NAND device.
+       CONFIG_SYS_NAND_PAGE_SIZE       number of main bytes in NAND page
+       CONFIG_SYS_NAND_OOBSIZE         number of OOB bytes in NAND page
+       CONFIG_SYS_NAND_BLOCK_SIZE      number of bytes in NAND erase-block
+       CONFIG_SYS_NAND_ECCPOS          ECC map for NAND page
+       CONFIG_NAND_OMAP_ECCSCHEME      (refer doc/README.nand)
+
+Step-2: Flashing NAND via MMC/SD
+       # select BOOTSEL to MMC/SD boot and boot from MMC/SD card
+       U-Boot # mmc rescan
+       # erase flash
+       U-Boot # nand erase.chip
+       U-Boot # env default -f -a
+       U-Boot # saveenv
+       # flash MLO. Redundant copies of MLO are kept for failsafe
+       U-Boot # load mmc 0 0x82000000 MLO
+       U-Boot # nand write 0x82000000 0x00000 0x20000
+       U-Boot # nand write 0x82000000 0x20000 0x20000
+       U-Boot # nand write 0x82000000 0x40000 0x20000
+       U-Boot # nand write 0x82000000 0x60000 0x20000
+       # flash u-boot.img
+       U-Boot # load mmc 0 0x82000000 u-boot.img
+       U-Boot # nand write 0x82000000 0x80000 0x60000
+       # flash kernel image
+       U-Boot # load mmc 0 0x82000000 uImage
+       U-Boot # nand write 0x82000000 ${nandsrcaddr} ${nandimgsize}
+       # flash filesystem image
+       U-Boot # load mmc 0 0x82000000 filesystem.img
+       U-Boot # nand write 0x82000000 ${loadaddress} 0x300000
+
+Step-3: Set BOOTSEL pin to select NAND boot, and POR the device.
+       The device should boot from images flashed on NAND device.
 
 NOR
 ===