| --------------------------------------------- |
| Kirkwood Boot Image generation using mkimage |
| --------------------------------------------- |
| |
| This document describes the U-Boot feature as it |
| is implemented for the Kirkwood family of SoCs. |
| |
| The Kirkwood SoC's can boot directly from NAND FLASH, |
| SPI FLASH, SATA etc. using its internal bootRom support. |
| |
| for more details refer section 24.2 of Kirkwood functional specifications. |
| ref: www.marvell.com/products/embedded.../kirkwood/index.jsp |
| |
| Command syntax: |
| -------------- |
| ./tools/mkimage -l <kwboot_file> |
| to list the kwb image file details |
| |
| ./tools/mkimage -n <board specific configuration file> \ |
| -T kwbimage -a <start address> -e <execution address> \ |
| -d <input_raw_binary> <output_kwboot_file> |
| |
| for ex. |
| ./tools/mkimage -n ./board/Marvell/openrd_base/kwbimage.cfg \ |
| -T kwbimage -a 0x00600000 -e 0x00600000 \ |
| -d u-boot.bin u-boot.kwb |
| |
| |
| kwbimage support available with mkimage utility will generate kirkwood boot |
| image that can be flashed on the board NAND/SPI flash. The make target |
| which uses mkimage to produce such an image is "u-boot.kwb". For example: |
| |
| export BUILD_DIR=/tmp/build |
| make distclean |
| make yourboard_config |
| make $BUILD_DIR/u-boot.kwb |
| |
| |
| Board specific configuration file specifications: |
| ------------------------------------------------ |
| 1. This file must present in the $(BOARDDIR). The default name is |
| kwbimage.cfg. The name can be set as part of the full path |
| to the file using CONFIG_SYS_KWD_CONFIG (probably in |
| include/configs/<yourboard>.h). The path should look like: |
| $(SRCTREE)/$(CONFIG_BOARDDIR)/<yourkwbimagename>.cfg |
| 2. This file can have empty lines and lines starting with "#" as first |
| character to put comments |
| 3. This file can have configuration command lines as mentioned below, |
| any other information in this file is treated as invalid. |
| |
| Configuration command line syntax: |
| --------------------------------- |
| 1. Each command line is must have two strings, first one command or address |
| and second one data string |
| 2. Following are the valid command strings and associated data strings:- |
| Command string data string |
| -------------- ----------- |
| BOOT_FROM nand/spi/sata |
| NAND_ECC_MODE default/rs/hamming/disabled |
| NAND_PAGE_SIZE any uint16_t hex value |
| SATA_PIO_MODE any uint32_t hex value |
| DDR_INIT_DELAY any uint32_t hex value |
| DATA regaddr and regdara hex value |
| you can have maximum 55 such register programming commands |
| |
| 3. All commands are optional to program |
| |
| Typical example of kwimage.cfg file: |
| ----------------------------------- |
| |
| # Boot Media configurations |
| BOOT_FROM nand |
| NAND_ECC_MODE default |
| NAND_PAGE_SIZE 0x0800 |
| |
| # Configure RGMII-0 interface pad voltage to 1.8V |
| DATA 0xFFD100e0 0x1b1b1b9b |
| # DRAM Configuration |
| DATA 0xFFD01400 0x43000c30 |
| DATA 0xFFD01404 0x37543000 |
| DATA 0xFFD01408 0x22125451 |
| DATA 0xFFD0140C 0x00000a33 |
| DATA 0xFFD01410 0x000000cc |
| DATA 0xFFD01414 0x00000000 |
| DATA 0xFFD01418 0x00000000 |
| DATA 0xFFD0141C 0x00000C52 |
| DATA 0xFFD01420 0x00000040 |
| DATA 0xFFD01424 0x0000F17F |
| DATA 0xFFD01428 0x00085520 |
| DATA 0xFFD0147C 0x00008552 |
| DATA 0xFFD01504 0x0FFFFFF1 |
| DATA 0xFFD01508 0x10000000 |
| DATA 0xFFD0150C 0x0FFFFFF5 |
| DATA 0xFFD01514 0x00000000 |
| DATA 0xFFD0151C 0x00000000 |
| DATA 0xFFD01494 0x00030000 |
| DATA 0xFFD01498 0x00000000 |
| DATA 0xFFD0149C 0x0000E803 |
| DATA 0xFFD01480 0x00000001 |
| # End of Header extension |
| DATA 0x0 0x0 |
| |
| ------------------------------------------------ |
| Author: Prafulla Wadaskar <prafulla@marvell.com> |