1*702e6014SWolfgang DenkFreescale MPC8349E-mITX and MPC8349E-mITX-GP Boards 2*702e6014SWolfgang Denk--------------------------------------------------- 3*702e6014SWolfgang Denk 4*702e6014SWolfgang Denk1. Board Description 5*702e6014SWolfgang Denk 6*702e6014SWolfgang Denk The MPC8349E-mITX and MPC8349E-mITX-GP are reference boards featuring 7*702e6014SWolfgang Denk the Freescale MPC8349E processor in a Mini-ITX form factor. 8*702e6014SWolfgang Denk 9*702e6014SWolfgang Denk The MPC8349E-mITX-GP is an MPC8349E-mITX with the following differences: 10*702e6014SWolfgang Denk 11*702e6014SWolfgang Denk A) One 8MB on-board flash EEPROM chip, instead of two. 12*702e6014SWolfgang Denk B) No SATA controller 13*702e6014SWolfgang Denk C) No Compact Flash slot 14*702e6014SWolfgang Denk D) No Mini-PCI slot 15*702e6014SWolfgang Denk E) No Vitesse 7385 5-port Ethernet switch 16*702e6014SWolfgang Denk F) No 4-port USB Type-A interface 17*702e6014SWolfgang Denk 18*702e6014SWolfgang Denk2. Board Switches and Jumpers 19*702e6014SWolfgang Denk 20*702e6014SWolfgang Denk2.0 Descriptions for all of the board jumpers can be found in the User 21*702e6014SWolfgang Denk Guide. Of particular interest to U-Boot developers is jumper J22: 22*702e6014SWolfgang Denk 23*702e6014SWolfgang Denk Pos. Name Default Description 24*702e6014SWolfgang Denk ----------------------------------------------------------------------- 25*702e6014SWolfgang Denk A LGPL0 ON (0) HRCW source, bit 0 26*702e6014SWolfgang Denk B LGPL1 ON (0) HRCW source, bit 1 27*702e6014SWolfgang Denk C LGPL3 ON (0) HRCW source, bit 2 28*702e6014SWolfgang Denk D LGPL5 OFF (1) PCI_SYNC_OUT frequency 29*702e6014SWolfgang Denk E BOOT1 ON (0) Flash EEPROM boot device 30*702e6014SWolfgang Denk F PCI_M66EN ON (0) PCI 66MHz enable 31*702e6014SWolfgang Denk G I2C-WP ON (0) I2C EEPROM write protection 32*702e6014SWolfgang Denk H F_WP OFF (1) Flash EEPROM write protection 33*702e6014SWolfgang Denk 34*702e6014SWolfgang Denk Jumper J22.E is only for the ITX, and it decides the configuration 35*702e6014SWolfgang Denk of the flash chips. If J22.E is ON (i.e. jumpered), then flash chip 36*702e6014SWolfgang Denk U4 is located at address FE000000 and flash chip U7 is at FE800000. 37*702e6014SWolfgang Denk If J22.E is OFF, then U7 is at FE000000 and U4 is at FE800000. 38*702e6014SWolfgang Denk 39*702e6014SWolfgang Denk For U-Boot development, J22.E can be used to switch back-and-forth 40*702e6014SWolfgang Denk between two U-Boot images. 41*702e6014SWolfgang Denk 42*702e6014SWolfgang Denk3. Memory Map 43*702e6014SWolfgang Denk 44*702e6014SWolfgang Denk3.1. The memory map should look pretty much like this: 45*702e6014SWolfgang Denk 46*702e6014SWolfgang Denk 0x0000_0000 - 0x0FFF_FFFF DDR SDRAM (256 MB) 47*702e6014SWolfgang Denk 0x8000_0000 - 0x9FFF_FFFF PCI1 memory space (512 MB) 48*702e6014SWolfgang Denk 0xA000_0000 - 0xBFFF_FFFF PCI2 memory space (512 MB) 49*702e6014SWolfgang Denk 0xE000_0000 - 0xEFFF_FFFF IMMR (1 MB) 50*702e6014SWolfgang Denk 0xE200_0000 - 0xE2FF_FFFF PCI1 I/O space (16 MB) 51*702e6014SWolfgang Denk 0xE300_0000 - 0xE3FF_FFFF PCI2 I/O space (16 MB) 52*702e6014SWolfgang Denk 0xF000_0000 - 0xF000_FFFF Compact Flash (ITX only) 53*702e6014SWolfgang Denk 0xF001_0000 - 0xF001_FFFF Local bus expansion slot 54*702e6014SWolfgang Denk 0xF800_0000 - 0xF801_FFFF Vitesse 7385 Parallel Interface (ITX only) 55*702e6014SWolfgang Denk 0xFE00_0000 - 0xFE7F_FFFF First 8MB bank of Flash memory 56*702e6014SWolfgang Denk 0xFE80_0000 - 0xFEFF_FFFF Second 8MB bank of Flash memory (ITX only) 57*702e6014SWolfgang Denk 58*702e6014SWolfgang Denk3.2 Flash EEPROM layout. 59*702e6014SWolfgang Denk 60*702e6014SWolfgang Denk On the ITX, jumper J22.E is used to determine which flash chips are 61*702e6014SWolfgang Denk at which address. When J22.E is switched, addresses from FE000000 62*702e6014SWolfgang Denk to FE7FFFFF are swapped with addresses from FE800000 to FEFFFFFF. 63*702e6014SWolfgang Denk 64*702e6014SWolfgang Denk On the ITX, at the normal boot address (aka HIGHBOOT): 65*702e6014SWolfgang Denk 66*702e6014SWolfgang Denk FE00_0000 HRCW 67*702e6014SWolfgang Denk FE70_0000 Alternative U-Boot image 68*702e6014SWolfgang Denk FE80_0000 Alternative HRCW 69*702e6014SWolfgang Denk FEF0_0000 U-Boot image 70*702e6014SWolfgang Denk FEFF_FFFF End of flash 71*702e6014SWolfgang Denk 72*702e6014SWolfgang Denk On the ITX, at the low boot address (LOWBOOT) 73*702e6014SWolfgang Denk 74*702e6014SWolfgang Denk FE00_0000 HRCW and U-Boot image 75*702e6014SWolfgang Denk FE04_0000 U-Boot environment variables 76*702e6014SWolfgang Denk FE80_0000 Alternative HRCW and U-Boot image 77*702e6014SWolfgang Denk FEFF_FFFF End of flash 78*702e6014SWolfgang Denk 79*702e6014SWolfgang Denk On the ITX-GP, the only option is LOWBOOT and there is only one chip 80*702e6014SWolfgang Denk 81*702e6014SWolfgang Denk FE00_0000 HRCW and U-Boot image 82*702e6014SWolfgang Denk FE04_0000 U-Boot environment variables 83*702e6014SWolfgang Denk F7FF_FFFF End of flash 84*702e6014SWolfgang Denk 85*702e6014SWolfgang Denk4. Definitions 86*702e6014SWolfgang Denk 87*702e6014SWolfgang Denk4.1 Explanation of NEW definitions in: 88*702e6014SWolfgang Denk 89*702e6014SWolfgang Denk include/configs/MPC8349ITX.h 90*702e6014SWolfgang Denk 91*702e6014SWolfgang Denk CONFIG_MPC83xx MPC83xx family 92*702e6014SWolfgang Denk CONFIG_MPC8349 MPC8349 specific 93*702e6014SWolfgang Denk CONFIG_MPC8349ITX MPC8349E-mITX 94*702e6014SWolfgang Denk 95*702e6014SWolfgang Denk5. Compilation 96*702e6014SWolfgang Denk 97*702e6014SWolfgang Denk Assuming you're using BASH shell: 98*702e6014SWolfgang Denk 99*702e6014SWolfgang Denk export CROSS_COMPILE=your-cross-compile-prefix 100*702e6014SWolfgang Denk cd u-boot 101*702e6014SWolfgang Denk make distclean 102*702e6014SWolfgang Denk 103*702e6014SWolfgang Denk make MPC8349ITX_config 104*702e6014SWolfgang Denk or: 105*702e6014SWolfgang Denk make MPC8349ITXGP_config 106*702e6014SWolfgang Denk or: 107*702e6014SWolfgang Denk make MPC8349ITX_LOWBOOT_config 108*702e6014SWolfgang Denk 109*702e6014SWolfgang Denk make 110*702e6014SWolfgang Denk 111*702e6014SWolfgang Denk6. Downloading and Flashing Images 112*702e6014SWolfgang Denk 113*702e6014SWolfgang Denk6.1 Download via tftp: 114*702e6014SWolfgang Denk 115*702e6014SWolfgang Denk tftp $loadaddr <uboot> 116*702e6014SWolfgang Denk 117*702e6014SWolfgang Denk where "<uboot>" is the path and filename, on the TFTP server, of 118*702e6014SWolfgang Denk the U-Boot image. 119*702e6014SWolfgang Denk 120*702e6014SWolfgang Denk6.1 Reflash U-Boot Image using U-Boot 121*702e6014SWolfgang Denk 122*702e6014SWolfgang Denk setenv uboot <uboot> 123*702e6014SWolfgang Denk run tftpflash 124*702e6014SWolfgang Denk 125*702e6014SWolfgang Denk where "<uboot>" is the path and filename, on the TFTP server, of 126*702e6014SWolfgang Denk the U-Boot image. 127*702e6014SWolfgang Denk 128*702e6014SWolfgang Denk6.2 Using the HRCW to switch between two different U-Boot images on the ITX 129*702e6014SWolfgang Denk 130*702e6014SWolfgang Denk Because the ITX has 16MB of flash, it is possible to keep two U-Boot 131*702e6014SWolfgang Denk images in flash, and use the HRCW to specify which one is to be used 132*702e6014SWolfgang Denk when the board boots. This trick is especially effective with a 133*702e6014SWolfgang Denk hardware debugger that can override the HRCW, such as the BDI-2000. 134*702e6014SWolfgang Denk 135*702e6014SWolfgang Denk When the BMS bit in the HRCW is 0, the ITX will boot the U-Boot image 136*702e6014SWolfgang Denk at address FE000000. When the BMS bit is 1, the ITX will boot the 137*702e6014SWolfgang Denk image at address FEF00000. 138*702e6014SWolfgang Denk 139*702e6014SWolfgang Denk Therefore, just put a U-Boot image at both FE000000 and FEF00000 and 140*702e6014SWolfgang Denk change the BMS bit whenever you want to boot the other image. 141*702e6014SWolfgang Denk 142*702e6014SWolfgang Denk Step-by-step instructions: 143*702e6014SWolfgang Denk 144*702e6014SWolfgang Denk 1) Build an ITX image to be loaded at FEF00000 145*702e6014SWolfgang Denk 146*702e6014SWolfgang Denk make distclean 147*702e6014SWolfgang Denk make MPC8349ITX_config 148*702e6014SWolfgang Denk make 149*702e6014SWolfgang Denk 150*702e6014SWolfgang Denk 2) Take the u-boot.bin image and flash it at FEF00000. 151*702e6014SWolfgang Denk 152*702e6014SWolfgang Denk tftp $loadaddr u-boot.bin 153*702e6014SWolfgang Denk protect off all 154*702e6014SWolfgang Denk erase FEF00000 +$filesize 155*702e6014SWolfgang Denk cp.b $loadaddr FEF00000 $filesize 156*702e6014SWolfgang Denk 157*702e6014SWolfgang Denk 3) Build an ITX image to be loaded at FE000000 158*702e6014SWolfgang Denk 159*702e6014SWolfgang Denk make distclean 160*702e6014SWolfgang Denk make MPC8349ITX_LOWBOOT_config 161*702e6014SWolfgang Denk make 162*702e6014SWolfgang Denk 163*702e6014SWolfgang Denk 4) Take the u-boot.bin image and flash it at FE000000. 164*702e6014SWolfgang Denk 165*702e6014SWolfgang Denk tftp $loadaddr u-boot.bin 166*702e6014SWolfgang Denk protect off FE000000 +$filesize 167*702e6014SWolfgang Denk erase FE000000 +$filesize 168*702e6014SWolfgang Denk cp.b $loadaddr FE000000 $filesize 169*702e6014SWolfgang Denk 170*702e6014SWolfgang Denk The HRCW in flash is currently set to boot the image at FE000000. 171*702e6014SWolfgang Denk 172*702e6014SWolfgang Denk If you have a hardware debugger, configure it to set the HRCW to 173*702e6014SWolfgang Denk B460A000 04040000 if you want to boot the image at FEF00000, or set 174*702e6014SWolfgang Denk it to B060A000 04040000 if you want to boot the image at FE000000. 175*702e6014SWolfgang Denk 176*702e6014SWolfgang Denk To change the HRCW in flash to boot the image at FEF00000, use these 177*702e6014SWolfgang Denk U-Boot commands: 178*702e6014SWolfgang Denk 179*702e6014SWolfgang Denk cp.b FE000000 1000 10000 ; copy 1st flash sector to 1000 180*702e6014SWolfgang Denk mw.b 1020 b4 8 ; modify BMS bit 181*702e6014SWolfgang Denk protect off FE000000 +10000 182*702e6014SWolfgang Denk erase FE000000 +10000 183*702e6014SWolfgang Denk cp.b 1000 FE000000 10000 184*702e6014SWolfgang Denk 185*702e6014SWolfgang Denk7. Notes 186*702e6014SWolfgang Denk 1) The console baudrate for MPC8349EITX is 115200bps. 187