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