92 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
Work_92105 from Work Microwave is an LPC3250- based board with the
 | 
						|
following features:
 | 
						|
 | 
						|
    - 64MB SDR DRAM
 | 
						|
    - 1 GB SLC NAND, managed through MLC controller.
 | 
						|
    - Ethernet
 | 
						|
    - Ethernet + PHY SMSC8710
 | 
						|
    - I2C:
 | 
						|
      - EEPROM (24M01-compatible)
 | 
						|
      - RTC (DS1374-compatible)
 | 
						|
      - Temperature sensor (DS620)
 | 
						|
      - DACs (2 x MAX518)
 | 
						|
    - SPI (through SSP interface)
 | 
						|
      - Port expander MAX6957
 | 
						|
    - LCD display (HD44780-compatible), controlled
 | 
						|
      through the port expander and DACs
 | 
						|
 | 
						|
Standard SPL and U-Boot binaries
 | 
						|
--------------------------------
 | 
						|
 | 
						|
The default 'make' (or the 'make all') command will produce the
 | 
						|
following files:
 | 
						|
 | 
						|
1. spl/u-boot-spl.bin	SPL, intended to run from SRAM at address 0.
 | 
						|
			This file can be loaded in SRAM through a JTAG
 | 
						|
			debugger or through the LPC32XX Service Boot
 | 
						|
			mechanism.
 | 
						|
 | 
						|
2. u-boot.bin		The raw U-Boot image, which can be loaded in
 | 
						|
			DDR through a JTAG debugger (for instance by
 | 
						|
			breaking SPL after DDR init), or by a running
 | 
						|
			U-Boot through e.g. 'loady' or 'tftp' and then
 | 
						|
			executed with 'go'.
 | 
						|
 | 
						|
3. u-boot.img		A U-Boot image with a mkimage header prepended.
 | 
						|
			SPL assumes (even when loaded through JTAG or
 | 
						|
			Service Boot) that such an image will be found
 | 
						|
			at offset 0x00040000 in NAND.
 | 
						|
 | 
						|
NAND cold-boot binaries
 | 
						|
-----------------------
 | 
						|
 | 
						|
The board can boot entirely from power-on with only SPL and U-Boot in
 | 
						|
NAND. The LPC32XX-specific 'make lpc32xx-full.bin' command will produce
 | 
						|
(in addition to spl/u-boot-spl.bin and u-boot.img if they were not made
 | 
						|
already) the following files:
 | 
						|
 | 
						|
4. lpc32xx-spl.img	spl/u-boot-spl.bin, with a LPC32XX boot header
 | 
						|
			prepended. This header is required for the ROM
 | 
						|
			code to load SPL into SRAM and branch into it.
 | 
						|
			The content of this file is expected to reside
 | 
						|
			in NAND at addresses 0x00000000 and 0x00020000
 | 
						|
			(two copies).
 | 
						|
 | 
						|
5. lpc32xx-boot-0.bin	lpc32xx-spl.img, padded with 0xFF bytes to a
 | 
						|
			size of 0x20000 bytes. This file covers exactly
 | 
						|
			the reserved area for the first bootloader copy
 | 
						|
			in NAND.
 | 
						|
 | 
						|
6. lpc32xx-boot-1.bin	Same as lpc32xx-boot-0.bin. This is intended to
 | 
						|
			be used as the second bootloader copy.
 | 
						|
 | 
						|
7. lpc32xx-full.bin	lpc32xx-boot-0.bin, lpc32xx-boot-1.bin and
 | 
						|
			u-boot.img concatenated. This file represents
 | 
						|
			the content of whole bootloader as present in
 | 
						|
			NAND at offset 00x00000000.
 | 
						|
 | 
						|
Flashing instructions
 | 
						|
---------------------
 | 
						|
 | 
						|
The following assumes a working U-Boot on the target, with the ability
 | 
						|
to load files into DDR.
 | 
						|
 | 
						|
To update the whole bootloader:
 | 
						|
 | 
						|
	nand erase 0x00000000 0x80000
 | 
						|
	(load lpc32xx-full.bin at location $loadaddr)
 | 
						|
	nand write $loadaddr 0x00000000 $filesize
 | 
						|
 | 
						|
To update SPL only (note the double nand write) :
 | 
						|
 | 
						|
	nand erase 0x00000000 0x40000
 | 
						|
	(load lpc32xx-spl.img or lpc32xx-boot-N.bin at location $loadaddr)
 | 
						|
	nand write $loadaddr 0x00000000 $filesize
 | 
						|
	nand write $loadaddr 0x00020000 $filesize
 | 
						|
 | 
						|
To update U-Boot only:
 | 
						|
 | 
						|
	nand erase 0x00040000 0x40000
 | 
						|
	(load u-boot.img at location $loadaddr)
 | 
						|
	nand write $loadaddr 0x00040000 $filesize
 |