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
