1aa0c7a86SPrafulla Wadaskar--------------------------------------------- 2aa0c7a86SPrafulla WadaskarKirkwood Boot Image generation using mkimage 3aa0c7a86SPrafulla Wadaskar--------------------------------------------- 4aa0c7a86SPrafulla Wadaskar 5aa0c7a86SPrafulla WadaskarThis document describes the U-Boot feature as it 6aa0c7a86SPrafulla Wadaskaris implemented for the Kirkwood family of SoCs. 7aa0c7a86SPrafulla Wadaskar 8aa0c7a86SPrafulla WadaskarThe Kirkwood SoC's can boot directly from NAND FLASH, 9aa0c7a86SPrafulla WadaskarSPI FLASH, SATA etc. using its internal bootRom support. 10aa0c7a86SPrafulla Wadaskar 11aa0c7a86SPrafulla Wadaskarfor more details refer section 24.2 of Kirkwood functional specifications. 12aa0c7a86SPrafulla Wadaskarref: www.marvell.com/products/embedded.../kirkwood/index.jsp 13aa0c7a86SPrafulla Wadaskar 14aa0c7a86SPrafulla WadaskarCommand syntax: 15aa0c7a86SPrafulla Wadaskar-------------- 16aa0c7a86SPrafulla Wadaskar./tools/mkimage -l <kwboot_file> 17aa0c7a86SPrafulla Wadaskar to list the kwb image file details 18aa0c7a86SPrafulla Wadaskar 19aa0c7a86SPrafulla Wadaskar./tools/mkimage -n <board specific configuration file> \ 20aa0c7a86SPrafulla Wadaskar -T kwbimage -a <start address> -e <execution address> \ 21aa0c7a86SPrafulla Wadaskar -d <input_raw_binary> <output_kwboot_file> 22aa0c7a86SPrafulla Wadaskar 23aa0c7a86SPrafulla Wadaskarfor ex. 24aa0c7a86SPrafulla Wadaskar./tools/mkimage -n ./board/Marvell/openrd_base/kwbimage.cfg \ 25aa0c7a86SPrafulla Wadaskar -T kwbimage -a 0x00600000 -e 0x00600000 \ 26aa0c7a86SPrafulla Wadaskar -d u-boot.bin u-boot.kwb 27aa0c7a86SPrafulla Wadaskar 28*32324b7fSKarl O. Pinckwbimage support available with mkimage utility will generate kirkwood boot 29aa0c7a86SPrafulla Wadaskarimage that can be flashed on the board NAND/SPI flash 30aa0c7a86SPrafulla Wadaskar 31aa0c7a86SPrafulla WadaskarBoard specific configuration file specifications: 32aa0c7a86SPrafulla Wadaskar------------------------------------------------ 33aa0c7a86SPrafulla Wadaskar1. This file must present in the $(BOARDDIR) and the name should be 34aa0c7a86SPrafulla Wadaskar kwbimage.cfg (since this is used in Makefile) 35aa0c7a86SPrafulla Wadaskar2. This file can have empty lines and lines starting with "#" as first 36aa0c7a86SPrafulla Wadaskar character to put comments 37aa0c7a86SPrafulla Wadaskar3. This file can have configuration command lines as mentioned below, 38aa0c7a86SPrafulla Wadaskar any other information in this file is treated as invalid. 39aa0c7a86SPrafulla Wadaskar 40aa0c7a86SPrafulla WadaskarConfiguration command line syntax: 41aa0c7a86SPrafulla Wadaskar--------------------------------- 42aa0c7a86SPrafulla Wadaskar1. Each command line is must have two strings, first one command or address 43aa0c7a86SPrafulla Wadaskar and second one data string 44aa0c7a86SPrafulla Wadaskar2. Following are the valid command strings and associated data strings:- 45aa0c7a86SPrafulla Wadaskar Command string data string 46aa0c7a86SPrafulla Wadaskar -------------- ----------- 47aa0c7a86SPrafulla Wadaskar BOOT_FROM nand/spi/sata 48aa0c7a86SPrafulla Wadaskar NAND_ECC_MODE default/rs/hamming/disabled 49aa0c7a86SPrafulla Wadaskar NAND_PAGE_SIZE any uint16_t hex value 50aa0c7a86SPrafulla Wadaskar SATA_PIO_MODE any uint32_t hex value 51aa0c7a86SPrafulla Wadaskar DDR_INIT_DELAY any uint32_t hex value 52aa0c7a86SPrafulla Wadaskar DATA regaddr and regdara hex value 53aa0c7a86SPrafulla Wadaskar you can have maximum 55 such register programming commands 54aa0c7a86SPrafulla Wadaskar 55aa0c7a86SPrafulla Wadaskar3. All commands are optional to program 56aa0c7a86SPrafulla Wadaskar 57aa0c7a86SPrafulla WadaskarTypical example of kwimage.cfg file: 58aa0c7a86SPrafulla Wadaskar----------------------------------- 59aa0c7a86SPrafulla Wadaskar 60aa0c7a86SPrafulla Wadaskar# Boot Media configurations 61aa0c7a86SPrafulla WadaskarBOOT_FROM nand 62aa0c7a86SPrafulla WadaskarNAND_ECC_MODE default 63aa0c7a86SPrafulla WadaskarNAND_PAGE_SIZE 0x0800 64aa0c7a86SPrafulla Wadaskar 65aa0c7a86SPrafulla Wadaskar# Configure RGMII-0 interface pad voltage to 1.8V 66aa0c7a86SPrafulla WadaskarDATA 0xFFD100e0 0x1b1b1b9b 67aa0c7a86SPrafulla Wadaskar# DRAM Configuration 68aa0c7a86SPrafulla WadaskarDATA 0xFFD01400 0x43000c30 69aa0c7a86SPrafulla WadaskarDATA 0xFFD01404 0x37543000 70aa0c7a86SPrafulla WadaskarDATA 0xFFD01408 0x22125451 71aa0c7a86SPrafulla WadaskarDATA 0xFFD0140C 0x00000a33 72aa0c7a86SPrafulla WadaskarDATA 0xFFD01410 0x000000cc 73aa0c7a86SPrafulla WadaskarDATA 0xFFD01414 0x00000000 74aa0c7a86SPrafulla WadaskarDATA 0xFFD01418 0x00000000 75aa0c7a86SPrafulla WadaskarDATA 0xFFD0141C 0x00000C52 76aa0c7a86SPrafulla WadaskarDATA 0xFFD01420 0x00000040 77aa0c7a86SPrafulla WadaskarDATA 0xFFD01424 0x0000F17F 78aa0c7a86SPrafulla WadaskarDATA 0xFFD01428 0x00085520 79aa0c7a86SPrafulla WadaskarDATA 0xFFD0147C 0x00008552 80aa0c7a86SPrafulla WadaskarDATA 0xFFD01504 0x0FFFFFF1 81aa0c7a86SPrafulla WadaskarDATA 0xFFD01508 0x10000000 82aa0c7a86SPrafulla WadaskarDATA 0xFFD0150C 0x0FFFFFF5 83aa0c7a86SPrafulla WadaskarDATA 0xFFD01514 0x00000000 84aa0c7a86SPrafulla WadaskarDATA 0xFFD0151C 0x00000000 85aa0c7a86SPrafulla WadaskarDATA 0xFFD01494 0x00030000 86aa0c7a86SPrafulla WadaskarDATA 0xFFD01498 0x00000000 87aa0c7a86SPrafulla WadaskarDATA 0xFFD0149C 0x0000E803 88aa0c7a86SPrafulla WadaskarDATA 0xFFD01480 0x00000001 89aa0c7a86SPrafulla Wadaskar# End of Header extension 90aa0c7a86SPrafulla WadaskarDATA 0x0 0x0 91aa0c7a86SPrafulla Wadaskar 92aa0c7a86SPrafulla Wadaskar------------------------------------------------ 93aa0c7a86SPrafulla WadaskarAuthor: Prafulla Wadaskar <prafulla@marvell.com> 94