1*4882a593SmuzhiyunWork_92105 from Work Microwave is an LPC3250- based board with the 2*4882a593Smuzhiyunfollowing features: 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun - 64MB SDR DRAM 5*4882a593Smuzhiyun - 1 GB SLC NAND, managed through MLC controller. 6*4882a593Smuzhiyun - Ethernet 7*4882a593Smuzhiyun - Ethernet + PHY SMSC8710 8*4882a593Smuzhiyun - I2C: 9*4882a593Smuzhiyun - EEPROM (24M01-compatible) 10*4882a593Smuzhiyun - RTC (DS1374-compatible) 11*4882a593Smuzhiyun - Temperature sensor (DS620) 12*4882a593Smuzhiyun - DACs (2 x MAX518) 13*4882a593Smuzhiyun - SPI (through SSP interface) 14*4882a593Smuzhiyun - Port expander MAX6957 15*4882a593Smuzhiyun - LCD display (HD44780-compatible), controlled 16*4882a593Smuzhiyun through the port expander and DACs 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunStandard SPL and U-Boot binaries 19*4882a593Smuzhiyun-------------------------------- 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunThe default 'make' (or the 'make all') command will produce the 22*4882a593Smuzhiyunfollowing files: 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun1. spl/u-boot-spl.bin SPL, intended to run from SRAM at address 0. 25*4882a593Smuzhiyun This file can be loaded in SRAM through a JTAG 26*4882a593Smuzhiyun debugger or through the LPC32XX Service Boot 27*4882a593Smuzhiyun mechanism. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun2. u-boot.bin The raw U-Boot image, which can be loaded in 30*4882a593Smuzhiyun DDR through a JTAG debugger (for instance by 31*4882a593Smuzhiyun breaking SPL after DDR init), or by a running 32*4882a593Smuzhiyun U-Boot through e.g. 'loady' or 'tftp' and then 33*4882a593Smuzhiyun executed with 'go'. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun3. u-boot.img A U-Boot image with a mkimage header prepended. 36*4882a593Smuzhiyun SPL assumes (even when loaded through JTAG or 37*4882a593Smuzhiyun Service Boot) that such an image will be found 38*4882a593Smuzhiyun at offset 0x00040000 in NAND. 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunNAND cold-boot binaries 41*4882a593Smuzhiyun----------------------- 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunThe board can boot entirely from power-on with only SPL and U-Boot in 44*4882a593SmuzhiyunNAND. The LPC32XX-specific 'make lpc32xx-full.bin' command will produce 45*4882a593Smuzhiyun(in addition to spl/u-boot-spl.bin and u-boot.img if they were not made 46*4882a593Smuzhiyunalready) the following files: 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun4. lpc32xx-spl.img spl/u-boot-spl.bin, with a LPC32XX boot header 49*4882a593Smuzhiyun prepended. This header is required for the ROM 50*4882a593Smuzhiyun code to load SPL into SRAM and branch into it. 51*4882a593Smuzhiyun The content of this file is expected to reside 52*4882a593Smuzhiyun in NAND at addresses 0x00000000 and 0x00020000 53*4882a593Smuzhiyun (two copies). 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun5. lpc32xx-boot-0.bin lpc32xx-spl.img, padded with 0xFF bytes to a 56*4882a593Smuzhiyun size of 0x20000 bytes. This file covers exactly 57*4882a593Smuzhiyun the reserved area for the first bootloader copy 58*4882a593Smuzhiyun in NAND. 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun6. lpc32xx-boot-1.bin Same as lpc32xx-boot-0.bin. This is intended to 61*4882a593Smuzhiyun be used as the second bootloader copy. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun7. lpc32xx-full.bin lpc32xx-boot-0.bin, lpc32xx-boot-1.bin and 64*4882a593Smuzhiyun u-boot.img concatenated. This file represents 65*4882a593Smuzhiyun the content of whole bootloader as present in 66*4882a593Smuzhiyun NAND at offset 00x00000000. 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunFlashing instructions 69*4882a593Smuzhiyun--------------------- 70*4882a593Smuzhiyun 71*4882a593SmuzhiyunThe following assumes a working U-Boot on the target, with the ability 72*4882a593Smuzhiyunto load files into DDR. 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunTo update the whole bootloader: 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun nand erase 0x00000000 0x80000 77*4882a593Smuzhiyun (load lpc32xx-full.bin at location $loadaddr) 78*4882a593Smuzhiyun nand write $loadaddr 0x00000000 $filesize 79*4882a593Smuzhiyun 80*4882a593SmuzhiyunTo update SPL only (note the double nand write) : 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun nand erase 0x00000000 0x40000 83*4882a593Smuzhiyun (load lpc32xx-spl.img or lpc32xx-boot-N.bin at location $loadaddr) 84*4882a593Smuzhiyun nand write $loadaddr 0x00000000 $filesize 85*4882a593Smuzhiyun nand write $loadaddr 0x00020000 $filesize 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunTo update U-Boot only: 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun nand erase 0x00040000 0x40000 90*4882a593Smuzhiyun (load u-boot.img at location $loadaddr) 91*4882a593Smuzhiyun nand write $loadaddr 0x00040000 $filesize 92