123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- Intro:
- ======
- The SBC8548 is a stand alone single board computer with a 1GHz
- MPC8548 CPU, 8MB boot flash, 64MB user flash and, 256MB DDR2 400MHz
- memory. It also has 128MB SDRAM 100MHz LBC memory, with both a PCI-e,
- and a PCI-X slot, dual mini-DB9 for UART, and dual RJ-45 for eTSEC
- ethernet connections.
- U-boot Configuration:
- =====================
- The following possible u-boot configuration targets are available:
- 1) sbc8548_config
- 2) sbc8548_PCI_33_config
- 3) sbc8548_PCI_66_config
- 4) sbc8548_PCI_33_PCIE_config
- 5) sbc8548_PCI_66_PCIE_config
- Generally speaking, most people should choose to use #5. Details
- of each choice are listed below.
- Choice #1 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 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 a _PCI_33_ config and store this
- to flash prior to powering down the board and inserting the 33MHz PCI
- card. [The above discussion assumes that the SW2[1-4] has not been changed
- to reflect a different CCB:SYSCLK ratio]
- The third option builds PCI support in, and leaves the clocking at the
- default 66MHz. Options four and five are just repeats of option two
- and three, but with PCI-e support enabled as well.
- PCI output listing with an intel e1000 PCI-x and a Syskonnect SK-9Exx
- is shown below for sbc8548_PCI_66_PCIE_config. (Note that PCI-e with
- a 33MHz PCI configuration is currently untested.)
- => pci 0
- Scanning PCI devices on bus 0
- BusDevFun VendorId DeviceId Device Class Sub-Class
- _____________________________________________________________
- 00.00.00 0x1057 0x0012 Processor 0x20
- 00.01.00 0x8086 0x1026 Network controller 0x00
- => pci 1
- Scanning PCI devices on bus 1
- BusDevFun VendorId DeviceId Device Class Sub-Class
- _____________________________________________________________
- 01.00.00 0x1957 0x0012 Processor 0x20
- => pci 2
- Scanning PCI devices on bus 2
- BusDevFun VendorId DeviceId Device Class Sub-Class
- _____________________________________________________________
- 02.00.00 0x1148 0x9e00 Network controller 0x00
- =>
- Memory Size and using SPD:
- ==========================
- The default configuration uses hard coded memory configuration settings
- for 256MB of DDR2 @400MHz. It does not by default use the DDR2 SPD
- EEPROM data to read what memory is installed.
- There is a hardware errata, which causes the older local bus SDRAM
- SPD EEPROM to land at the same address as the DDR2 SPD EEPROM, so
- that the SPD data can not be read reliably. You can test if your
- board has the errata fix by running "i2c probe". If you see 0x53
- as a valid device, it has been fixed. If you only see 0x50, 0x51
- then your board does not have the fix.
- You can also visually inspect the board to see if this hardware
- fix has been applied:
- 1) Remove R314 (RES-R0174-033, 1K, 0603). R314 is located on
- the back of the PCB behind the DDR SDRAM SODIMM connector.
- 2) Solder RES-R0174-033 (1K, 0603) resistor from R314 pin 2 pad
- to R313 pin 2. Pin 2 for each resistor is the end of the
- resistor closest to the CPU.
- Boards without the mod will have R314 and R313 in parallel, like "||".
- After the mod, they will be touching and form an "L" shape.
- If you want to upgrade to larger RAM size, you can simply enable
- #define CONFIG_SPD_EEPROM
- #define CONFIG_DDR_SPD
- in include/configs/sbc8548.h file. (The lines are already there
- but listed as #undef).
- If you did the i2c test, and your board does not have the errata
- fix, then you will have to physically remove the LBC 128MB DIMM
- from the board's socket to resolve the above i2c address overlap
- issue and allow SPD autodetection of RAM to work.
- Updating U-boot with U-boot:
- ============================
- Note that versions of u-boot up to and including 2009.08 had u-boot stored
- at 0xfff8_0000 -> 0xffff_ffff (512k). Currently it is being stored from
- 0xfffa_0000 -> 0xffff_ffff (384k). If you use an old macro/script to
- update u-boot with u-boot and it uses the old address, you will render
- your board inoperable, and you will require JTAG recovery.
- The following steps list how to update with the current address:
- tftp u-boot.bin
- md 200000 10
- protect off all
- erase fffa0000 ffffffff
- cp.b 200000 fffa0000 60000
- md fffa0000 10
- protect on all
- The "md" steps in the above are just a precautionary step that allow
- you to confirm the u-boot version that was downloaded, and then confirm
- that it was copied to flash.
- The above assumes that you are using the default board settings which
- have u-boot in the 8MB flash, tied to /CS0.
- If you are running the default 8MB /CS0 settings but want to store an
- image in the SODIMM that is built with CONFIG_SYS_ALT_BOOT enabled,
- (as a backup, etc) then the steps will become:
- tftp u-boot.bin
- md 200000 10
- protect off all
- era eff00000 efffffff
- cp.b 200000 eff00000 100000
- md eff00000 10
- protect on all
- Finally, if you are running the alternate 64MB /CS0 settings and want
- to update the in-use u-boot image, then (again with CONFIG_SYS_ALT_BOOT
- enabled) the steps will become:
- tftp u-boot.bin
- md 200000 10
- protect off all
- era fff00000 ffffffff
- cp.b 200000 fff00000 100000
- md fff00000 10
- protect on all
- Hardware Reference:
- ===================
- The following contains some summary information on hardware settings
- that are relevant to u-boot, based on the board manual. For the
- most up to date and complete details of the board, please request the
- reference manual ERG-00327-001.pdf from www.windriver.com
- Boot flash:
- intel V28F640Jx, 8192x8 (one device) at 0xff80_0000
- Sodimm flash:
- intel V28F128Jx, 16384x8 (4 devices) at 0xfb80_0000
- Note that this address reflects the default setting for
- the JTAG debugging tools, but since the alignment is
- rather inconvenient, u-boot puts it at 0xec00_0000.
- Jumpers:
- Jumper Name ON OFF
- ----------------------------------------------------------------
- JP12 CS0/CS6 swap see note[*] see note[*]
- JP13 SODIMM flash write OK writes disabled
- write prot.
- JP14 HRESET/TRST joined isolated
- JP15 PWR ON when AC pwr use S1 for on/off
- JP16 Demo LEDs lit not lit
- JP19 PCI mode PCI PCI-X
- [*]JP12, when jumpered parallel to the SODIMM, puts the boot flash
- onto /CS0 and the SODIMM flash on /CS6 (default). When JP12
- is jumpered parallel to the LBC-SDRAM, then /CS0 is for the
- SODIMM flash and /CS6 is for the boot flash. Note that in this
- alternate setting, you also need to switch SW2.8 to ON.
- See the setting CONFIG_SYS_ALT_BOOT if you want to use this setting
- and boot u-boot from the 64MB SODIMM
- Switches:
- The defaults are marked with a *
- Name Desc. ON OFF
- ------------------------------------------------------------------
- S1 Pwr toggle n/a n/a
- SW2.1 CFG_SYS_PLL0 1 0*
- SW2.2 CFG_SYS_PLL1 1* 0
- SW2.3 CFG_SYS_PLL2 1* 0
- SW2.4 CFG_SYS_PLL3 1 0*
- SW2.5 CFG_CORE_PLL0 1* 0
- SW2.6 CFG_CORE_PLL1 1 0*
- SW2.7 CFG_CORE_PLL2 1* 0
- SW2.8 CFG_ROM_LOC1 1 0*
- SW3.1 CFG_HOST_AGT0 1* 0
- SW3.2 CFG_HOST_AGT1 1* 0
- SW3.3 CFG_HOST_AGT2 1* 0
- SW3.4 CFG_IO_PORTS0 1* 0
- SW3.5 CFG_IO_PORTS0 1 0*
- SW3.6 CFG_IO_PORTS0 1 0*
- SerDes CLK(MHz) SW5.1 SW5.2
- ----------------------------------------------
- 25 0 0
- 100* 1 0
- 125 0 1
- 200 1 1
- SerDes CLK spread SW5.3 SW5.4
- ----------------------------------------------
- +/- 0.25% 0 0
- -0.50% 1 0
- -0.75% 0 1
- No Spread* 1 1
- SW4 settings are readable from the EPLD and are currently not used for
- any hardware settings (i.e. user configuration switches).
- LEDs:
- Name Desc. ON OFF
- ------------------------------------------------------------------
- D13 PCI/PCI-X PCI-X PCI
- D14 3.3V PWR 3.3V no power
- D15 SYSCLK 66MHz 33MHz
- Default Memory Map:
- start end CS<n> width Desc.
- ----------------------------------------------------------------------
- 0000_0000 0fff_ffff MCS0,1 64 DDR2 (256MB)
- f000_0000 f7ff_ffff CS3,4 32 LB SDRAM (128MB)
- f800_0000 f8b0_1fff CS5 - EPLD
- fb80_0000 ff7f_ffff CS6 32 SODIMM flash (64MB) [*]
- ff80_0000 ffff_ffff CS0 8 Boot flash (8MB)
- [*] fb80 represents the default programmed by WR JTAG register files,
- but u-boot places the flash at either ec00 or fc00 based on JP12.
- The EPLD on CS5 demuxes the following devices at the following offsets:
- offset size width device
- --------------------------------------------------------
- 0 1fff 8 7 segment display LED
- 10_0000 1fff 4 user switches
- 30_0000 1fff 4 HW Rev. register
- b0_0000 1fff 8 8kB EEPROM
|