|
From: Stewart H. <st...@he...> - 2005-07-21 04:00:04
|
Here are instructions for programming a RedBoot image into the FLASH of the Intel IXDPG425 board using a McRaigor Wiggler and openwince JTAG (0.5.1) tools under Linux. Much of the credit goes to Rogier Stam who helped me get this working, and I am posting the results to help future generations. Firstly, there appears to be differences in the way different versions of the McRaigor Wigglers function. Newer Wigglers seem to draw power on previously unused pins of the parallel port. A patch to the jtag-0.5.1 is required to fix this as well as some other patches relating to the IXP425. All those patches (1060345, 1030647, 1040199) already exist on the openwince Sourceforge site http://sourceforge.net/tracker/?atid=469852&group_id=52603&func=browse but Rogier has collated them into one single patch which I am attaching to this posting for convenience. WARNING: the Wiggler-related patch will NOT apply to all Wigglers. My Wiggler (which does require the patch) was bought new from McRaigor in July 2005 and has no identifying marks other than "CE NP-JTAG XSCALE". STEP 1: INSTALL JTAG INCLUDE-0.3.2 $ tar -xvjf include-0.3.2.tar.bz2 $ cd include-0.3.2 $ ./configure $ su $ make install $ exit STEP 2: PATCH, BUILD, AND INSTALL JTAG-0.5.1 $ tar -xvjf jtag-0.5.1.tar.bz2 $ patch -p0 < ixp425wiggler.patch patching file jtag-0.5.1/data/intel/ixp425/STEPPINGS patching file jtag-0.5.1/data/intel/PARTS patching file jtag-0.5.1/libbrux/flash/jedec.c patching file jtag-0.5.1/src/tap/cable/wiggler.c $ cd jtag-0.5.1 $ ./configure $ make $ su $ make install $ exit STEP 3: BYTE-SWAP YOUR BOOT IMAGE The binary image must be byte-swapped prior to writing to FLASH on the Intel IXP425 boards. Here we create a byte-swapped version of redboot_ROM.bin in redboot_ROM_BS.bin $ dd if=redboot_ROM.bin of=redboot_ROM_BS.bin conv=swab Check that it resembles this: $ hexdump redboot_ROM_BS.bin | head 0000000 e59f f018 e59f f018 e59f f018 e59f f018 0000010 e59f f018 0000 0000 e59f f018 e59f f018 0000020 0000 0040 5000 0504 5000 0528 5000 0554 0000030 5000 0570 0000 0000 5000 0688 5000 0650 0000040 ee11 0f10 e380 0080 ee01 0f10 ee12 0f10 0000050 e1a0 0000 e24f f004 e3a0 00d3 e129 f000 0000060 ee07 0f17 ee12 0f10 e1a0 0000 e24f f004 0000070 ee08 0f17 ee12 0f10 e1a0 0000 e24f f004 0000080 ee07 0f9a ee12 0f10 e1a0 0000 e24f f004 0000090 ee11 0f30 e380 0001 ee01 0f30 ee12 0f10 STEP 4: CHECK PARALLEL PORT BIOS SETTINGS JTAG does not support parallel ports in ECP mode. Check the settings in your BIOS are not ECP (I use BI-DIR) and note your parallel port address (usually 0x378). STEP 5: BURN YOUR BOOT IMAGE TO FLASH $ jtag jtag> cable parallel 0x378 WIGGLER jtag> detect jtag> detectflash jtag> eraseflash 0x50000000 4 jtag> flashmem 0x50000000 redboot_ROM_BS.bin jtag> quit It takes about 45 minutes to burn a 256KB image. I have found that I can reboot the target board with the JTAG connector still attached provided I have quit jtag-tools. If you have the parport support in your kernel and don't have any printer software (CUPS, LPD) loaded then you could alternatively use jtag> cable ppdev /dev/parport0 WIGGLER instead of jtag> cable parallel 0x378 WIGGLER Good luck! -- Stewart Heitmann |