target.ref
上传用户:dqzhongke1
上传日期:2022-06-26
资源大小:667k
文件大小:19k
源码类别:

VxWorks

开发平台:

C/C++

  1. " wrSbc8548/target.ref - Wind River SBC8548 target specific documentation
  2. "
  3. " Copyright (c) 2006-2007 Wind River Systems, Inc.
  4. "
  5. " The right to copy, distribute, modify or otherwise make use
  6. " of this software may be licensed only pursuant to the terms
  7. " of an applicable Wind River license agreement.
  8. "
  9. " modification history
  10. " --------------------
  11. " 01d,25may07,b_m  add boot device selection details.
  12. " 01c,25apr07,b_m  updated for the latest SBC8548 rev.2 board.
  13. " 01b,28aug06,kds  Changed etsec driver name to "etsec.c".
  14. " 01a,31jan06,kds  Modified from cds8548/target.ref/01a
  15. "
  16. "
  17. TITLE wrSbc8548 - Wind River SBC8548
  18. NAME
  19. `Wind River SBC8548'
  20. INTRODUCTION
  21. This reference entry provides board-specific information necessary to run
  22. VxWorks for the wrSbc8548 BSP. Macro 'REV2_SILICON' in config.h should be
  23. defined to support MPC8548 rev.2 silicon. This is the default configuration.
  24. Please read the section "Running vxWorks" in order to configure the board to
  25. run vxWorks.
  26. The BSP supports booting from either on-board 8-bit 8MB flash or SODIMM 32-bit
  27. 64MB flash. Macro 'BOOT_FLASH' in config.h should be defined properly as well
  28. as the board jumpers be setup correctly. Booting from on-board 8-bit 8MB flash
  29. is the default configuration. Please read the section "Select the boot device"
  30. for details.
  31. RUNNING VXWORKS
  32. This section will guide you how to run vxWorks on the SBC8548 reference
  33. board.
  34. sh 1. Setting the board Jumpers & Switches:
  35. sh Switch Settings for SBC8548 1Ghz Core and 400Mhz CCB with 66Mhz SYSCLK
  36. ts
  37. SW Bit-> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
  38. -
  39. 2 | OFF | ON | ON  | OFF | ON  | OFF | ON | OFF
  40. 3 | ON  | ON | ON  | ON  | OFF | OFF | nc | nc
  41. 4 | X   | X  | X   | X   | nc  | nc  | nc | nc
  42. 5 | OFF | ON | OFF | OFF | nc  | nc  | nc | nc
  43. X = don't care (user switches)
  44. nc = not connected
  45. te
  46. sh 2. Flashing the bootrom image using Workbench
  47.    This section will describe how to program vxWorks's bootrom
  48.    onto a flash bank by using Workbench 2.6 or later and its
  49.    Wind River ICE plugin. The Wind River Probe(USB) is also supported
  50.    and basically the same but no IP address required.
  51.    2.1 Using Workbench:
  52.        2.1.1 Creating a bootrom.hex:
  53.              Create a vxWorks boot loader project based on the wrSbc8548 BSP.
  54.              You can use the default compressed image but use hex not elf
  55.              format. Then once the project is created just build the default
  56.              image.
  57.        2.1.2 Connect the Wind River ICE or Wind River Probe to JTAG conenctor
  58.              JP10 (ICE) or P2 (Probe) on the SBC8548 board.
  59.              Once all the connections have been made, power up the SBC8548
  60.              board and create a WindRiver ICE connection in Workbench.
  61.        2.1.3 Configure the Workbench connection:
  62.              When creating the connection use MPC8548 CPU.
  63.              Put in IP address of the WindRiver ICE during configuration.
  64.        2.1.4 Load the proper SBC8548 register setting for Wind River ICE or
  65.              Wind River Probe emulators:
  66.              Right click on the connection in the target manager and attach
  67.              to the core.
  68.              You can at this point go to Workbench main Window tab at
  69.              top and go to "show view" and go down list and select OCD
  70.              Command shell and this brings up the original BKM command
  71.              window.
  72.              Go to target manager and right click on core(U1) and select
  73.              reset and download. You can now put in the register file in
  74.              this BSP or one provided by the installation in
  75.              "play register file" eg: wrSbc8548_onboard_flash.reg for booting
  76.              from on-board flash or wrSbc8548_sodimm_flash for booting from
  77.              SODIMM flash. Reset with IN. Then click reset download button.
  78.              You now have loaded the target board with enough settings to
  79.              program the bootrom.
  80.              Now you need to go to "Window->show view" again and select
  81.              Flash Programmer.
  82.        2.1.5 Converting the bootrom.hex to bootrom.bin:
  83.              Got Add/remove tab in Flash Programmer and select. Click on
  84.              convert file and got to bootloader project you created and
  85.              usually WindRiverworkspace<wrSbc8548bootloaderproj>bootrom.hex
  86.              and select. Start adrs should be 0x0 and end adrs 0xffffffff.
  87.              Click on "convert and add" file.
  88.              You will see the file added to the list. Then click on start
  89.              address entry (should be 0x0) and change to 0xfff00000.
  90.              This file is now ready for programming.
  91.        2.1.6 Programming the SBC8548 Flash:
  92.              For booting from on-board flash:
  93.                  Select configuration tab and choose:
  94.                  Intel -> V28F640Jx -> 8192 x 8 -> 1 Device.
  95.                  Set base address to be 0xff800000
  96.                  Set RAM workspace start address 0x5000
  97.                  Set Size 20000
  98.              For booting from SODIMM flash:
  99.                  Select configuration tab and choose:
  100.                  Intel -> V28F128Jx -> 16384 x 8 -> 4 Devices.
  101.                  Set base address to be 0xfc000000
  102.                  Set RAM workspace start address 0x5000
  103.                  Set Size 20000
  104.              Select programming tab and setup the following:
  105.              erase from 0xfff00000
  106.              erase to   0xffffffff
  107.              Click on Erase. Once the device has been erased, click on Program.
  108.              You can run the vxWorks bootrom by going back to OCD Command
  109.              shell by typing "INN<cr>" and then "GO<cr>".
  110.              Alternatively disconnect ICE and follow section 3.
  111. sh 3. Running the VxWorks Boot ROM program
  112.    3.1 Disconnect the WindRiver ICE if it is still connected to the
  113.        board, because if connected, it can stop the processor at
  114.        the first instruction in some cases.
  115.    3.2 Connecting the Ethernet channel and the serial channel:
  116.        3.2.1 Connect the SBC8548's serial port, JP11 (top connector),
  117.              to the host with the supplied serial cable.
  118.        3.2.2 Second, connect a CAT5 ethernet cable to the TSEC port, J9.
  119.    3.3 Launch a terminal program on the host, and configure it according
  120.        to 8 data bits, 1 stop bit, no hardware handshaking, and parity
  121.        disabled. The baud rate is 115200 bps.
  122.    3.4 If the board is not already powered off, turn it off momentarily.
  123.        Power on the board,  you should see characters printed to the terminal
  124.        window, counting down to boot. Press any key to stop the count down.
  125.        Now follow the instructions in the "Getting Started" chapter of the
  126.        "VxWorks Programmer's Guide" for more detail on how to configure vxWorks.
  127. sh 4. Select the boot device
  128.   4.1 Define 'BOOT_FLASH' in config.h to the right boot device name.
  129.   4.2 Jumpers Setup
  130.       Note: Make sure the board power is off when changing the jumper settings.
  131.       4.2.1 SW 2.8
  132.             SW 2.8 is for boot device port size.
  133.             SW2.8 OFF(0) = The boot port size is 8-bit (default setting)
  134.             SW2.8 ON (1) = The boot port size is 32-bit
  135.       4.2.2 JP 12
  136.             JP 12 is for boot flash CS switch.
  137.             2   4
  138.             x   x  (JP12)
  139.             x   x
  140.             1   3
  141.             JP12 (1-3), (2-4) = 8-bit 8MB on-board flash (default setting)
  142.             JP12 (1-2), (3-4) = 32-bit 64MB SODIMM flash
  143. sh BOOT DEVICES
  144. The supported boot devices are:
  145. cs
  146.         motetsec - 10/100/1000 Triple Speed Ethernet Controller
  147.         gei - GbE port using an Intel PRO1000XT PCI Network Card in the PCI slot
  148.               (The BSP must be configured to include this option)
  149. ce
  150. FEATURES
  151. This section describes the support and unsupported features of the wrSbc8548
  152. sh SUPPORTED FEATURES
  153. The supported features of the SBC85xx board are:
  154.         MPC 8548 processors
  155.         Board Initialization
  156.         Booting from on-board flash or SODIMM flash
  157.         MMU support including 36bit physical addressing (switch on in Makefile)
  158.         Cache support
  159.         L2 Cache support
  160.         L2 SRAM support
  161.         Decrementer timer, used to implement a System Clock
  162.         Timestamp clock
  163.         Aux clock
  164.         MPC8548 DUART
  165.         On-chip 10/100/1000 TSEC 1 & 2 only
  166.         On-chip Programmable Interrupt Controller
  167.         DDR SDRAM (up to 512 MB Memory)
  168.         Local bus SDRAM (up to 64 MB Memory)
  169.         8MB BOOT Flash
  170.         64MB SODIMM Flash
  171.         TFFS support
  172.         Local bus NVRAM (about 8KB)
  173.         Saving boot parameters on the NVRAM
  174.         Security Engine - partial only SEC2.0 features verified see
  175.                           WindRiver/Freescale support for latest
  176.                           drivers.
  177.         I2C controller  - partial single thread access
  178.         PCI 1 host controller
  179.         PCI Express host controller
  180.         Intel 8254x 10/100/1000 Gigabit controller
  181.         Serial RapidIO (point to point only)
  182. sh Unsupported Features
  183.         PCI 2 host controller
  184.         DMA controller
  185.         TSEC 3 & 4
  186. HARDWARE DETAILS
  187. This section documents the details of the device drivers and board
  188. hardware elements.
  189. sh Devices
  190. The chip drivers included are:
  191.         m85xxTimer.c - timer driver
  192.         mot85xxPci.c - On-chip PCI Bridge library/interrupt handler.
  193.         sysEpic.c - On chip interrupt controller
  194.         etsec.c - ETSEC ethernet controller
  195.         ns16553Sio.c - serial driver
  196.         miiLib.c - Media Independent Interface library
  197.         mem/byteNvRam.c - nvram driver
  198.         gei82543End.c - Intel 8254x Gigabit controller
  199.         sysL2Cache.c - L2 cache library
  200.         sysBusPci.c - prepare PCI auto configuration library
  201.         sysMtd.c - TFFS MTD driver for the Intel V28F128J3 flash
  202. sh Memory Maps
  203. The following table describes the SBC8548 default memory map:
  204. ts
  205. Start | Size | End | Access to
  206. ------------------------------
  207. 0x0000_0000 | 256MB | 0x0FFF_FFFF | DDR SDRAM
  208. 0x5000_0000 | 64MB | 0x53FF_FFFF | PCI 1 Prefetchable Memory
  209. 0x5400_0000 | 64MB | 0x57FF_FFFF | PCI 1 Non-Prefetchable Memory
  210. 0x5800_0000 | 64MB | 0x5BFF_FFFF | PCI 1 IO
  211. 0x6000_0000 | 64MB | 0x63FF_FFFF | PCI Express Prefetchable Memory
  212. 0x6400_0000 | 64MB | 0x67FF_FFFF | PCI Express Non-Prefetchable Memory
  213. 0x6800_0000 | 64MB | 0x6BFF_FFFF | PCI Express IO
  214. 0xF8B0_0000 | 16MB | 0xF7FF_FFFF | NVRAM/CADMUS
  215. 0xF000_0000 | 64MB | 0xFBFF_FFFF | LBC SDRAM
  216. 0xE000_0000 | 1MB  | 0xFE0F_FFFF | Configuration Control Registers
  217. For booting from on-board flash:
  218. 0xD000_0000 | 64MB | 0xD3FF_FFFF | SODIMM Flash
  219. 0xFF80_0000 | 8MB  | 0xFFFF_FFFF | On-Board Flash (boot device)
  220. For booting from SODIMM flash:
  221. 0xFB80_0000 | 8MB  | 0xFBFF_FFFF | On-Board Flash
  222. 0xFC00_0000 | 64MB | 0xFFFF_FFFF | SODIMM Flash (boot device)
  223. te
  224. Note: The default SODIMM flash address is configured at 0xFB800000, as described
  225. in the board document, which will not map full 64MB in the system memory space.
  226. So its base address is modified to 0xD0000000 to solve this issue.
  227. The following table describes the default VxWorks macros which
  228. are used to address memory
  229. ts
  230. Macro Name | Macro Definition | Description
  231. ------------------------------
  232. LOCAL_MEM_LOCAL_ADRS | 0x0000_0000 | Base of RAM
  233. RAM_LOW_ADRST | LOCAL_MEM_LOCAL_ADRS + 0x0001_0000 | VxWorks image loaded here. Stack grows down from this address.
  234. RAM_HIGH_ADRS | LOCAL_MEM_LOCAL_ADRS + 0x00d0_0000 | VxWorks bootrom loaded here.
  235. LOCAL_MEM_SIZE | 1000_0000 | Default 256 MBytes of RAM
  236. ROM_BASE_ADRS | 0xFFF0_0000 | Base address of ROM
  237. ROM_TEXT_ADRS | ROM_BASE_ADRS + 0x100 | Text must start after vector table
  238. ROM_WARM_ADRS | ROM_TEXT_ADRS + 8 | Warm Reboot Entry Address
  239. ROM_SIZE | 0x0010_0000 | Default 1 MByte of ROM
  240. te
  241. sh Support for L2 Cache
  242. L2 Cache is configured with callback function
  243. pointers for L2 cache Global Invalidation, L2 Cache Enable, L2 Cache
  244. Flush and L2 Cache Disable are initialized in sysHwInit().  By default, the
  245. 256 KB L2 is configured to 256 KB of cache. If a different configuration is
  246. desired, a new bootrom image should be used to match the RAM image
  247. configuration of L2.
  248. sh Support for Serial RapidIO via VXBUS
  249. To add Serial RapidIO support, define INCLUDE_RAPIDIO_BUS in config.h.
  250. We only support a point-to-point connection between two wrSbc8548 targets.
  251. The memory allocation is based on requirements for shared memory interface
  252. and is fixed initially to use memory traditionally set aside for that.
  253. The targetID and window allocation is determined via the hwconf.c file.
  254. Also the Local Access Windows are allocated based on this file so if an
  255. unused LAWBAR isn't available or allowed for SRIO then configuration will
  256. fail. If Configuration of Serial RapidIO fails makes sure that the link
  257. was actually established in hardware. That is address 0xe00c0158 value
  258. should be 0x2.
  259. sh ETSEC via VXBUS
  260. The Etsec is configured with checksum offload capability by default.
  261. The Filer isn't enabled by default but there is an Ioctl available for that.
  262. Look at the example table in the driver before trying to configure the filer
  263. through the IOCTL. Support for queue prioritization is provided by the driver
  264. not the network stack so it pulls the packets off from the highest priority
  265. queue first which is queue 0 and sends them to the stack. Once it is empty it
  266. will go to the next queue and so on.
  267. VLAN tag insertion/removal support is not fully tested with the stack.
  268. sh Operating Speed
  269. The processor has built-in PLL circuits to control the operating speed of
  270. the Core Complex Bus (CCB) as well as the E500v2 core. The BSP supports 533MHz for
  271. CCB. The clock rate for E500v2 core supported is
  272. to 1GHz for MPC8548. The default setting for the SBC8548 is 1GhZ core and 400Mhz
  273. CCB.
  274. sh Boot Process
  275. Upon reset, the MPC85xx begins executing from 0xFFFF_FFFC. Only the last
  276. 4KB of memory is mapped by the TLB.  The instruction at 0xFFFF_FFFC branches
  277. to resetEntry() located at the last 2KB of memory to begin initialization
  278. and mapping of memory static TLB entries.  The DDR SDRAM is then mapped to
  279. 0x0 where the vectors are setup to use and execution is then transferred
  280. to the RAM after copying and uncompressing if necessary.
  281. The bootrom for the wrSbc8548 allows loading vxWorks with two TSEC ethernet
  282. channels. In the boot dialog, they correspond to the "mottsec0" and
  283. the "mottsec1" devices. To switch between the two boot devices after a load
  284. is attempted, a hard reset or power cycle is necessary in order for the
  285. device to function properly.  After the reset, press a key to stop the
  286. countdown, then use the "c" command to change the boot device to the desired
  287. network device.
  288. The wrSbc8548 bootrom also supports loading vxWorks by using Intel 8254x Gigabit
  289. Ethernet controller. An Intel 82546/82545/82544/82543/82540 based NIC could be
  290. plugged into PCI slot, J3. The config.h need to be modified to define
  291. INCLUDED_PCI and INCLUDED_GEI8254X_END. If the 8254x NIC is plugged into the
  292. PCI slot, the INCLUDE_CDS85XX_SECONDARY_PCI also need to be
  293. defined. Rebuild the bootrom with above changes in the config.h. Reflash the
  294. bootrom to the flash. The boot device is "gei" for Intel 8254X gigabit
  295. controllers. In this configuration the Intel NIC will run in PCIX66 mode by
  296. default.
  297. sh DDR RAM Size
  298. This BSP can support up to 512MB DDR memory. By default, only 256MB DDR
  299. memory is configured in the config.h, since the SBC8548 is shipped with a
  300. 256MB DDR2 SDRAM SODIMM. If a 512MB SODIMM is installed by the user, change
  301. the definition of LOCAL_MEM_SIZE for the desired DDR memory size.
  302. sh Local Bus SDRAM Size
  303. The wrSbc8548 supports 64MB of Local Bus SDRAM. The board is populated with a
  304. 128MB module if more LB memory is necessary.
  305. sh  NVRAM Support
  306. This BSP uses NvRam on the 8KB EEPROM device. The bootline
  307. is stored at the beginning of the NvRam.
  308. sh Network Configuration
  309. The ETSEC ports allows 10/100/1000T connection.
  310. The driver will auto-negotiate and configure the port accordingly.
  311. The BSP also supports Intel 82546/82545/82544/82540/82543
  312. based NICs with PCI1 interface.
  313. sh ROM Considerations
  314. bootrom_uncmp.hex is provided with this BSP. The bootrom is configured to
  315. a ROM base address of 0x0. When programming the bootrom to the FLASH an offset
  316. of 0xFFF00000 needs to be given.
  317. sh BOOT FLASH
  318. There are two flash banks on the SBC8548 board. Currently, only the on-board 8MB
  319. flash device is supported in the BSP.
  320. sh PCI Support
  321. There are two PCI host controllers on MPC8548, both are compliant to PCI 2.2.
  322. In the SBC8548 reference board, the primary PCI (PCI1) interface is configured as
  323. one 64-bit interface via the PCI slot. The secondary PCI (PCI2) interface is not available.
  324. The wrSbc8548 BSP by default uses the PCI auto configuration library to only
  325. configure the PCI devices on the PCI bus 0 for PCI.
  326. The Intel 8254x Gigabit Ethernet controllers are the only PCI devices supported
  327. in this release. Define INCLUDE_GEI8254X_END in config.h to enable this device,
  328. and define INCLUDE_SECONDARY_GEI_END if you have two Intel 8254x devices on the
  329. PCI interfaces.
  330. sh TrueFFS
  331. This BSP uses 4 8-bit Intel V28F128J3M flash as the TrueFFS media.
  332. To use it, define INCLUDE_TFFS in config.h. When booting from SODIMM flash,
  333. only first half size of flash is used as the TrueFFS media.
  334. When using TrueFFS on a new flash for the first time, you should format the
  335. flash using
  336. cs
  337.     sysTffsFormat();
  338. ce
  339. Then
  340. cs
  341.     usrTffsConfig(0, 0, "/tffs0");
  342. ce
  343. If you want to know the current format process when calling the sysTffsFormat,
  344. define TFFS_FORMAT_PRINT in sysTffs.c.
  345. sh Serial Configuration
  346. The UART device is configured with 8 data bits, 1 stop bit, no hardware
  347. handshaking, and parity disabled.  They operate at 115200 bps. The
  348. on-chip DUART on the MPC8548 is supported. Both serial ports are available
  349. on the SBC8548, but only the first UART channel is enabled by default in
  350. the BSP. To enable the second serial port, swap COM1_ADR and COM2_ADR in
  351. devDuartParas() of sysDuart.c.
  352. sh Programmable Interrupt Controller
  353. The PIC driver provided by this BSP supports all internal and external
  354. interrupt sources.  It can also be configured to route such sources to
  355. the critical interrupt pin, as well as acting as handling the critical
  356. interrupts.  However, since critical interrupts are routed directly to
  357. the interrupt source instead of being manager by the PIC with IACK or
  358. EOI, the Critical Interrupt Summary registers are used to check for the
  359. source.  The transient values in these registers causes spurious vector
  360. when indexing into the vector table.
  361. sh SPECIAL CONSIDERATIONS
  362. This section describes miscellaneous information that the user needs
  363. to know about the BSP.
  364. sh Known Issues
  365. The RapidIO vxbus driver (target/src/hwif/busCtlr/m85xxRio.c) released along
  366. with vxWorks 6.4 needs to be patched to get it work on wrSbc8548 board. See
  367. README for driver patch installation instructions.
  368. sh Delivered Objects
  369. is
  370. i bootrom
  371. i bootrom_uncmp.hex
  372. i bootrom_uncmp.bin
  373. i vxWorks
  374. i vxWorks.sym
  375. i vxWorks.st
  376. ie
  377. BIBLIOGRAPHY
  378. Please refer to the following documents for further information on the
  379. SBC8548 boards.
  380. tb MPC8548E Reference Manual
  381. tb PowerPC E500 Core Reference Manual
  382. tb Motorola PowerPC Microprocessor Family: The Programming Environments
  383. tb Device Errata for the MPC8548E PowerQUICC III
  384. tb SBC8548 Engineering Reference Guide