Freescale MPC8349E-mITX and MPC8349E-mITX-GP Boards
---------------------------------------------------

1.	Board Description

	The MPC8349E-mITX and MPC8349E-mITX-GP are reference boards featuring
	the Freescale MPC8349E processor in a Mini-ITX form factor.

	The MPC8349E-mITX-GP is an MPC8349E-mITX with the following differences:

	A) One 8MB on-board flash EEPROM chip, instead of two.
	B) No SATA controller
	C) No Compact Flash slot
	D) No Mini-PCI slot
	E) No Vitesse 7385 5-port Ethernet switch
	F) No 4-port USB Type-A interface

2.	Board Switches and Jumpers

2.0 	Descriptions for all of the board jumpers can be found in the User
	Guide.  Of particular interest to U-Boot developers is jumper J22:

	Pos.	Name		Default		Description
	-----------------------------------------------------------------------
	A	LGPL0		ON (0)          HRCW source, bit 0
	B       LGPL1           ON (0)          HRCW source, bit 1
	C       LGPL3           ON (0)		HRCW source, bit 2
	D       LGPL5           OFF (1)         PCI_SYNC_OUT frequency
	E       BOOT1           ON (0)          Flash EEPROM boot device
	F       PCI_M66EN       ON (0)          PCI 66MHz enable
	G       I2C-WP          ON (0)          I2C EEPROM write protection
	H       F_WP            OFF (1)         Flash EEPROM write protection

	Jumper J22.E is only for the ITX, and it decides the configuration
	of the flash chips.  If J22.E is ON (i.e. jumpered), then flash chip
	U4 is located at address FE000000 and flash chip U7 is at FE800000.
	If J22.E is OFF, then U7 is at FE000000 and U4 is at FE800000.

	For U-Boot development, J22.E can be used to switch back-and-forth
	between two U-Boot images.

3.	Memory Map

3.1.	The memory map should look pretty much like this:

	0x0000_0000 - 0x0FFF_FFFF DDR SDRAM (256 MB)
	0x8000_0000 - 0x9FFF_FFFF PCI1 memory space (512 MB)
	0xA000_0000 - 0xBFFF_FFFF PCI2 memory space (512 MB)
	0xE000_0000 - 0xEFFF_FFFF IMMR (1 MB)
	0xE200_0000 - 0xE2FF_FFFF PCI1 I/O space (16 MB)
	0xE300_0000 - 0xE3FF_FFFF PCI2 I/O space (16 MB)
	0xF000_0000 - 0xF000_FFFF Compact Flash (ITX only)
	0xF001_0000 - 0xF001_FFFF Local bus expansion slot
	0xF800_0000 - 0xF801_FFFF Vitesse 7385 Parallel Interface (ITX only)
	0xFE00_0000 - 0xFE7F_FFFF First 8MB bank of Flash memory
	0xFE80_0000 - 0xFEFF_FFFF Second 8MB bank of Flash memory (ITX only)

3.2	Flash EEPROM layout.

	On the ITX, jumper J22.E is used to determine which flash chips are
	at which address.  When J22.E is switched, addresses from FE000000
	to FE7FFFFF are swapped with addresses from FE800000 to FEFFFFFF.

	On the ITX, at the normal boot address (aka HIGHBOOT):

	FE00_0000	HRCW
	FE70_0000	Alternative U-Boot image
	FE80_0000	Alternative HRCW
	FEF0_0000	U-Boot image
	FEFF_FFFF	End of flash

	On the ITX, at the low boot address (LOWBOOT)

	FE00_0000	HRCW and U-Boot image
	FE04_0000	U-Boot environment variables
	FE80_0000	Alternative HRCW and U-Boot image
	FEFF_FFFF	End of flash

	On the ITX-GP, the only option is LOWBOOT and there is only one chip

	FE00_0000	HRCW and U-Boot image
	FE04_0000	U-Boot environment variables
	F7FF_FFFF	End of flash

4. Definitions

4.1 Explanation of NEW definitions in:

	include/configs/MPC8349ITX.h

	CONFIG_MPC83XX	    	MPC83xx family
	CONFIG_MPC8349	    	MPC8349 specific
	CONFIG_MPC8349ITX		MPC8349E-mITX
	CONFIG_MPC8349ITXGP		MPC8349E-mITX-GP

5. Compilation

	Assuming you're using BASH shell:

		export CROSS_COMPILE=your-cross-compile-prefix
		cd u-boot
		make distclean

		make MPC8349ITX_config
	or:
		make MPC8349ITXGP_config
	or:
		make MPC8349ITX_LOWBOOT_config

		make

6. Downloading and Flashing Images

6.1 Download via tftp:

	tftp $loadaddr <uboot>

	where "<uboot>" is the path and filename, on the TFTP server, of
	the U-Boot image.

6.1 Reflash U-Boot Image using U-Boot

	setenv uboot <uboot>
	run tftpflash

	where "<uboot>" is the path and filename, on the TFTP server, of
	the U-Boot image.

6.2 Using the HRCW to switch between two different U-Boot images on the ITX

	Because the ITX has 16MB of flash, it is possible to keep two U-Boot
	images in flash, and use the HRCW to specify which one is to be used
	when the board boots.  This trick is especially effective with a
	hardware debugger that can override the HRCW, such as the BDI-2000.

	When the BMS bit in the HRCW is 0, the ITX will boot the U-Boot image
	at address FE000000.  When the BMS bit is 1, the ITX will boot the
	image at address FEF00000.

	Therefore, just put a U-Boot image at both FE000000 and FEF00000 and
	change the BMS bit whenever you want to boot the other image.

	Step-by-step instructions:

	1) Build an ITX image to be loaded at FEF00000

		make distclean
		make MPC8349ITX_config
		make

	2) Take the u-boot.bin image and flash it at FEF00000.

		tftp $loadaddr u-boot.bin
		protect off all
		erase FEF00000 +$filesize
		cp.b $loadaddr FEF00000 $filesize

	3) Build an ITX image to be loaded at FE000000

		make distclean
		make MPC8349ITX_LOWBOOT_config
		make

	4) Take the u-boot.bin image and flash it at FE000000.

		tftp $loadaddr u-boot.bin
		protect off FE000000 +$filesize
		erase FE000000 +$filesize
		cp.b $loadaddr FE000000 $filesize

	The HRCW in flash is currently set to boot the image at FE000000.

	If you have a hardware debugger, configure it to set the HRCW to
	B460A000 04040000 if you want to boot the image at FEF00000, or set
	it to B060A000 04040000 if you want to boot the image at FE000000.

	To change the HRCW in flash to boot the image at FEF00000, use these
	U-Boot commands:

		cp.b FE000000 1000 10000	; copy 1st flash sector to 1000
		mw.b 1020 b4 8			; modify BMS bit
		protect off FE000000 +10000
		erase FE000000 +10000
		cp.b 1000 FE000000 10000

7. Notes
	1) The console baudrate for MPC8349EITX is 115200bps.
