270 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			270 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 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
 |