| 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 | |
| => |