|  | 
 |  | 
 | 	U-Boot for Wind River SBC834x Boards | 
 | 	==================================== | 
 |  | 
 |  | 
 | The Wind River SBC834x board is a 6U form factor (not CPCI) reference | 
 | design that uses the MPC8347E or MPC8349E processor.  U-Boot support | 
 | for this board is heavily based on the existing U-Boot support for | 
 | Freescale MPC8349 reference boards. | 
 |  | 
 | Support has been primarily tested on the SBC8349 version of the board, | 
 | although earlier versions were also tested on the SBC8347.  The primary | 
 | difference in the two is the level of PCI functionality. | 
 |  | 
 | 	http://www.windriver.com/products/OCD/SBC8347E_49E/ | 
 |  | 
 |  | 
 | Flash Details: | 
 | ============== | 
 |  | 
 | The flash type is intel 28F640Jx (4096x16) [one device].  Base address | 
 | is 0xFF80_0000 which is also where the Hardware Reset Configuration | 
 | Word (HRCW) is stored.  Caution should be used to not reset the | 
 | board without having a valid HRCW in place (i.e. erased flash) as | 
 | then a Wind River ICE will be required to restore the HRCW and flash | 
 | image. | 
 |  | 
 |  | 
 | Restoring a corrupted or missing flash image: | 
 | ============================================= | 
 |  | 
 | Note that U-boot versions up to and including 2009.06 had essentially | 
 | two copies of u-boot in flash; one at the very beginning, which set | 
 | the HRCW, and one at the very end, which was the image that was run. | 
 | As of this point in time, the two have been combined into just one | 
 | at the beginning of flash, which provides both the HRCW, and the image | 
 | that is executed.  This frees up the remainder of flash for other uses. | 
 | Use of the u-boot command "fli" will indicate what parts are in use. | 
 | Details for storing U-boot to flash using a Wind River ICE can be found | 
 | on page 19 of the board manual (request ERG-00328-001).  The following | 
 | is a summary of that information: | 
 |  | 
 |   - Connect ICE and establish connection to it from WorkBench/OCD. | 
 |   - Ensure you have background mode (BKM) in the OCD terminal window. | 
 |   - Select the appropriate flash type (listed above) | 
 |   - Prepare a u-boot image by using the Wind River Convert utility; | 
 |     by using "Convert and Add file" on the ELF file from your build. | 
 |     Convert from FF80_0000 to FFFF_FFFF (or to FF83_FFFF if you are | 
 |     trying to preserve your old environment settings and user flash). | 
 |   - Set the start address of the erase/flash process to FF80_0000 | 
 |   - Set the target RAM required to 64kB. | 
 |   - Select sectors for erasing (see note on enviroment below) | 
 |   - Select Erase and Reprogram. | 
 |  | 
 | Note that some versions of the register files used with Workbench | 
 | would zero some TSEC registers, which inhibits ethernet operation | 
 | by u-boot when this register file is played to the target.  Using | 
 | "INN" in the OCD terminal window instead of "IN" before the "GO" | 
 | will not play the register file, and allow u-boot to use the TSEC | 
 | interface while executed from the ICE "GO" command. | 
 |  | 
 | Alternatively, you can locate the register file which will be named | 
 | WRS_SBC8349_PCT00328001.reg or similar) and "REM" out all the lines | 
 | beginning with "SCGA TSEC1" and "SCGA TSEC2".  This allows you to | 
 | use all the remaining register file content. | 
 |  | 
 | If you wish to preserve your prior U-Boot environment settings, | 
 | then convert (and erase to) 0xFF83FFFF instead of 0xFFFFFFFF. | 
 | The size for converting (and erasing) must be at least as large | 
 | as u-boot.bin. | 
 |  | 
 |  | 
 | Updating U-Boot with U-Boot: | 
 | ============================ | 
 |  | 
 | This procedure is very similar to other boards that have u-boot installed. | 
 | Assuming that the network has been configured, and that the new u-boot.bin | 
 | has been copied to the TFTP server, the commands are: | 
 |  | 
 | 	tftp 200000 u-boot.bin | 
 | 	protect off all | 
 | 	erase ff800000 ff83ffff | 
 | 	cp.b 200000 ff800000 40000 | 
 | 	protect on all | 
 |  | 
 | You may wish to do a "md ff800000 20" operation as a prefix and postfix | 
 | to the above steps to inspect/compare the HRCW before/after as an extra | 
 | safety check before resetting the board upon completion of the reflash. | 
 |  | 
 | PCI: | 
 | ==== | 
 |  | 
 | There are three configuration choices: | 
 | 	sbc8349_config | 
 | 	sbc8349_PCI_33_config | 
 | 	sbc8349_PCI_66_config | 
 |  | 
 | The 1st does not enable CONFIG_PCI, and assumes that the PCI slot | 
 | will be left empty (M66EN high), and so the board will operate with | 
 | a base clock of 66MHz.  Note that you need both PCI enabled in u-boot | 
 | and linux in order to have functional PCI under linux.  The only | 
 | reason for choosing to not enable PCI would be if you had a very | 
 | early (rev 1.0) CPU with possible PCI issues. | 
 |  | 
 | The second enables PCI support and builds for a 33MHz clock rate.  Note | 
 | that if a 33MHz 32bit card is inserted in the slot, then the whole board | 
 | will clock down to a 33MHz base clock instead of the default 66MHz.  This | 
 | will change the baud clocks and mess up your serial console output if you | 
 | were previously running at 66MHz.  If you want to use a 33MHz PCI card, | 
 | then you should build a U-Boot with sbc8349_PCI_33_config and store this | 
 | to flash prior to powering down the board and inserting the 33MHz PCI | 
 | card. | 
 |  | 
 | The third option builds PCI support in, and leaves the clocking at the | 
 | default 66MHz.  This has been tested with an intel PCI-X e1000 card. | 
 | This is also the appropriate choice for people with a recent (non 1.0) | 
 | CPU who currently have the PCI slot physically empty, but intend to | 
 | possibly add a PCI-X card at a later date. | 
 |  | 
 |    => pci | 
 |    Scanning PCI devices on bus 0 | 
 |    BusDevFun  VendorId   DeviceId   Device Class       Sub-Class | 
 |    _____________________________________________________________ | 
 |    00.00.00   0x1957     0x0080     Processor               0x20 | 
 |    00.11.00   0x8086     0x1026     Network controller      0x00 | 
 |    => |