VxWorks BSP Reference : wrMdpPro8xx

wrMdpPro8xx

NAME

wrMdpPro8xx - Wind River MdpPro8xx

INTRODUCTION

This manual entry provides board-specific information necessary to run VxWorks for the wrMdpPro8xx BSP. Please read the section "Getting the board running vxWorks" in order to configure the board to run vxWorks.

Getting the board running vxWorks This section will guide you step by step how to get vxWorks running on this board.

1. Setting the board Jumpers & Switches:

   In order to get the board running with the default configuration, the 
   following jumpers and switches need to be set as follows:

   .CS
   ICM Module:
    __________________________________________________________________________
   | ICM DTR BD - MPC821/860 | ICM DTR BC - MPC823/850 | ICM MPC821,855 & 860 |
   |-------------------------|-------------------------|----------------------|
   | JP1           Open      | JP1           Open      | JP1        Open      |
   | JP5           2-3       | JP5           2-3       | JP2        1-3 & 2-4 |
   | JP6           1-2       | JP6           1-2       | JP5        1-2       |
   | JP7           1-3 & 2-4 | JP7           1-3 & 2-4 | JP6        2-3       |
   |_________________________|_________________________|______________________

   Base Board:
    _________________________________________________________________
   |     Jumpers     | S1 - CS0-7    | S6 - CNFG8-15 | S5 - CNFG0-7  |
   |-----------------|---------------|---------------|---------------|
   | JP2     Open    | S1-1    Close | S6-1    *     | S5-1    Close |
   | JP3     Close   | S1-2    Close | S6-2    Open  | S5-2    Close |
   | JP7     1-2 3-4 | S1-3    *     | S6-3    Open  | S5-3    Close |
   | JP11    Close   | S1-4    *     | S6-4    Close | S5-4    Close |
   | JP18    Close   | S1-5    Close | S6-5    Close | S5-5    **    |
   | JP19    Open    | S1-6    Close | S6-6    Close | S5-6    Close |
   | JP22    Close   | S1-7    Close | S6-7    Close | S5-7    Close |
   | JP23    Open    | S1-8    Close | S6-8    Close | S5-8    Open  |
   | JP26    1-2     |               |               |               |
   | JP27    1-2     |_______________|_______________|_______________|
   | JP28    2-3     |  
   |_________________

   *  Note: If you are using the SDRAM module S1-3 & S1-4 need to be in "Open"
            position, if you are using the EDO DRAM module S1-3 & S1-4 need to
            be in "Close" position.
            Additionally, if using SDRAM module S6-1 needs to be in "Close"
            position, if you are using the EDO DRAM module S6-1 need to
            be in "Open" position.

   ** Note: If you are using the SIMM FLASH for booting the board S5-5 need to
            be in "Close" position, if you are using the On Board FLASH S5-5
            need to be in "Open" position.

   .CE

2. Creating a bootrom_uncmp.hex:
   2.1 Launch Tornado II, go to the "Build" menu and choose the option 
       "Build Boot ROM...".
   2.2 The "Build Boot ROM" window will popup, in the "Select a BSP:" column
       choose the "wrMdpPro8xx", and in the "Select an Image to build:" column
       choose "bootrom_uncmp.hex" and press the "OK" button.
   2.3 After the build process will finish successfully (You will see "Done" in
       the "Build window" without error), you will have the bootrom_uncmp.hex in
       your BSP directory "$(WIND_BASE)/target/config/wrMdpPro8xx".

3. Programming bootrom_uncmp to MdpPro8xx FLASH:
   If you are using visionCLICK please follow the instruction in section 3.1 
   if you are using SingleStep please follow the instruction in section 3.2

   3.1 Using visionCLICK:

       3.1.1 Install the visionPROBE II  or visionICE II and power it on. 
             Connect the JTAG interface cable from the visionPROBE II  or 
             visionICE II into the MdpPro8xx board BDM (J1 The BDM Port) 
             connector.

             Once all the connections have been made, power up the MdpPro8xx
             board and start the visionCLICK executable on the host.

       3.1.2 Configure the visionCLICK project: 
             The "Welcome To visionCLICK" window will appear .In this window 
             press on the "Configure" button, This will invoke "PROJECTS/LOAD" 
             window. In this window press on the + left to the 
             "PowerPC_C_Demo.prj".This will show you the project configuration. 
             Point with the mouse cursor on the "Microprocessors" option and 
             press the right button and choose the type of CPU you have on your 
             board. For example: "PowerPC->MPC8xx->MPC860" or the one that 
             match your MPC8xx . Verify that the "Target Control" option point 
             to visionPROBE II or visionICE II, Also switch to the 
             "Communications" TAB and verify that the "Normal Port/Rate" & 
             "Download Port/Rate" suite your connection. for example: "LPT1"  
             for visionPROBE II. Now press the "Save" button at the bottom of 
             the window and after it on the "Activate" button.

       3.1.3 Program visionPROBE II / visionICE II with the proper register 
             setting for the MdpPro8xx board:

             Go to the "Tools" menu and select the 
             "Log Output/Playback Scripts" option. The "Record / Playback" 
             dialog box will popup. In this dialog box go to the 
             "Playback Commands From File" group and press on the "Browse" 
             button. Navigate yourself to the location of the following  
             register file: "hsi860pro50mhz.reg" for the MdpPro860 
             board with MPC860 50Mhz and EDO DRAM or "hsi860pro50mhzSdram.reg" 
             for the MdpPro860 board with MPC860 50Mhz and SDRAM. The file 
             located in the visionCLICK installation. After choosing the 
             register file press on the "Open" button to confirm the selected 
             reg file. You will return back to the "Record / Playback" dialog 
             box. Now press on the "Start" button located in the same group. 
             In the "Terminal" window you can see that the visionCLICK is 
             running the script. When visionCLICK will finish the playback you 
             will get back the ">BKM>" or the ">ERR>".

       3.1.4 Get into Background Mode: 
             Execute the "IN" command to reset the board and initialize it with 
             the register setting.

             .CS
             IN
             .CS

             This command is the reset command to initialize the board.

       3.1.5 Setting the Flash Chip Select:

             3.1.5.1 Once the ">BKM>" prompt appears we need to verify that the 
                     Flash chip select configure correct. To do this type "CS" 
                     in the "Terminal" window and press Enter. The first line 
                     is for the Flash chip select. This is chip select 0 "CS0" 
                     under the "PS" (From Port Size) column for the first line, 
                     check that the number is 32 for the SIMM FLASH or 16 for 
                     the On Board FLASH. If the number is something else follow
                     the step below in order to change it:

             3.1.5.2 Type "CS CS0" in the "Terminal" window and press Enter. 

                     .CS            
                     >BKM>CS CS0
                     .CE


             3.1.5.3 In the first line
                     .CS
                      0000000 -> FFFF8000  |  Base Register = FFC00000   >
                     .CE

                     Make sure that the Base register value is FFC00000, if it 
                     is the correct value press Enter, if not just type FFC00000.

                     The second line will be:
                     .CS
                     0000000 -> FFFF8000   |  Address Mask = FFC00000   >
                     .CE

                     Make sure that the Address Mask is set to FFC00000, if it 
                     is not the correct value type FFC00000 and press Enter, if 
                     it is the correct value continue with the following 
                     instruction.

                     Press Enter until you get the following line:

                     .CS
                      (0-2)=32, 8, 16 bits / 3=Rsvd  |  Port Size = 32 Bits   >
                     .CE

                     Enter 0 for 32 SIMM FLASH or 2 for the On Board FLASH and
                     keep pressing enter until you get again the ">BKM>" prompt.

             3.1.5.4 Once the prompt appears, reset the board and the emulator 
                     with the following command:

                     .CS            
                     >BKM>IN
                     .CE

                     After you got the ">BKM>" prompt again continue with the 
                     instruction in the next section.

       3.1.6 Converting the bootrom_uncmp.hex to bootrom_uncmp.bin:

              3.1.6.1 In visionCLICK, choose "Convert Object Modules" from the 
                      "Tools" menu. The "CONVERT BINARY AND SYMBOL OBJs" dialog 
                      box will pop up.Select "All Files" in the "Files of Type" 
                      box. Go to the "Select Input Object Module To Convert" 
                      group and navigate to the file "bootrom_uncmp.hex" 
                      located in: 
                      "$(WIND_BASE)/target/config/wrMdpPro8xx/bootrom_uncmp.hex"

              3.1.6.2 In the group "Binary Downloadable Objects Modules" check 
                      the "Create Flat BIN File For Flash Programming". 
                      "In Range Of 0x" editbox, enter 0 for the start address, 
                      and in the "To 0x" editbox, enter "FFFFFFFF".

              3.1.6.3 Make sure that all the other check box are unchecked. 
                      Press the "Convert" button. Close the terminal window 
                      when the conversion completes.

       3.1.7 Programming the MdpPro8xx Flash:
             In visionCLICK, select "Program Flash Devices" from the Tools 
             pull-down menu. This will invoke the "TF FLASH PROGRAMMING" 
             window. If you are not using visionCLICK, you can also invoke 
             this window using the "visionICE Utilities Panel" and follow the 
             steps below:

             3.1.7.1 Click the "Select" in the "Flash Card or PC Host File 
                     Name and Path" group. The "CHOOSE A FILE FROM HOST PC" 
                     dialog box will popup. In the edit box enter the full path 
                     to the location of the "bootrom_uncmp.bin", or use the 
                     "<--Browse" button to browse to the file location. Go to 
                     the "+/- Bias" group and enter the number "FFF00100" in 
                     the edit box. Now click the "OK" button, this will bring 
                     you back to the "TF FLASH PROGRAMMING" dialog box. 

             3.1.7.2 In the "Programming Algorithm" group in, the edit box 
                     press on the "Select" button, and select one of the 
                     following Flash devices:

                     The 4MB SIMM FLASH:   "AMD 29F080/81(1024 x 8) 4 Devices"
                     The 1MB On Board FLASH: "AMD 29F040 (512 x  8) 2 Devices"


             3.1.7.3 Set the proper address of the Flash to "FFF00000", check 
                     the "Erase All" radio button,and set the 
                     "Available RAM Workspace" setting to "00000000", set the 
                     "Bytes Of Target RAM Required" to "60000".

             3.1.7.4 Press the "Erase and Program" button.

             3.1.7.5 Now the Flash memory is programmed with the new boot 
                     program. 

   3.2 Using SingleStep for vision:


       3.2.1 Install the visionPROBE II  or visionICE II and power it on. 
             Connect the JTAG interface cable from the visionPROBE II  or 
             visionICE II into the MdpPro8xx board BDM (J1 The BDM Port) 
             connector.

             Once all the connections have been made, power up the MdpPro8xx 
             board and start the SingleStep for vision executable on the host.

       3.2.2 Configure the SingleStep project: 

             3.2.2.1 Go to the "File" menu and choose the 
                     "Start Debug Session..." .

             3.2.2.2 The "Debug" dialog box will popup, In the "Connection" tab
                     choose the visionPROBE option & the correct LPT port if 
                     you are using visionPROBE, or visionICE & enter the 
                     emulator IP address if you are using visionICE.

             3.2.2.3 In the "Processor" tab choose the "MPC860".

             3.2.2.4 In the "Register" tab choose the option 
                     "Use vision-style register window with REG file" and then
                     browse to the location of the file "hsi860pro50mhz.reg" 
                     for the MdpBasic860 board with MPC860 50Mhz and EDO DRAM 
                     or "hsi860pro50mhzSdram.reg" for the MdpBasic860 board 
                     with MPC860 50Mhz and SDRAM. The "hsi860pro50mhz.reg" 
                     file should be in the SingleStep registers directory.

             3.2.2.5 In the "File" tab choose the "Debug without a file" 
                     option.

       3.2.3 Get into Background Mode: 

             3.2.3.1 Now in the "File" tab press OK.

             3.2.3.2 Now should get the "Debug Status" dialogbox and in the 
                     "Debug Session" field you should have in green 
                     "Started Successfully", press the "Close" button.

             3.2.3.3 Now go to the "Command" button in the toolbar and press on 
                     it. The "Command" Window will popup, the prompt in the 
                     window will be "SingleStep". Bring the mouse cursor above 
                     the "Command" window and press the right button. A menu 
                     will popup, choose the "VisionShell(vsh)" option. Now the 
                     prompt in the window will be ">BKM>". If the prompt is
                     ">ERR>" execute the "IN" command to reset the board and 
                     initialize it with the register setting.

                     .CS
                     IN
                     .CS
                     This command is the reset command to initialize the board. 
                     After you got the ">BKM>" prompt again continue with the 
                     instruction in the next section. 

       3.2.4 Setting the Flash Chip Select:

             3.2.4.1 Once the ">BKM>" prompt appears we need to verify that the 
                     Flash chip select configure correct. To do this type "CS" 
                     in the "Command" window and press Enter. The first line 
                     is for the Flash chip select. This is chip select 0 "CS0" 
                     under the "PS" (From Port Size) column for the first line, 
                     check that the number is 32 for the SIMM FLASH or 16 for 
                     the On Board FLASH.If the number is else follow the step 
                     below in order to change it:

             3.2.4.2 Type "CS CS0" in the "Command" window and press Enter. 

                     .CS            
                     >BKM>CS CS0
                     .CE

             3.2.4.3 In the first line
                     .CS
                      0000000 -> FFFF8000  |  Base Register = FFC00000   >
                     .CE

                     Make sure that the Base register value is FFC00000, if it 
                     is the correct value press Enter, if not just type FFC00000.

                     The second line will be:
                     .CS
                     0000000 -> FFFF8000   |  Address Mask = FFC00000   >
                     .CE

                     Make sure that the Address Mask is set to FFC00000, if it 
                     is not the correct value type FFC00000 and press Enter, if 
                     it is the correct value continue with the following 
                     instruction.

                     Press Enter until you get the following line:

                     .CS
                      (0-2)=32, 8, 16 bits / 3=Rsvd  |  Port Size = 32 Bits   >
                     .CE

                     Enter 0 for 32 SIMM FLASH or 2 for the On Board FLASH and
                     keep pressing enter until you get again the ">BKM>" prompt.

             3.2.4.4 Once the prompt appears, reset the board and the emulator 
                     with the following command:

                     .CS            
                     >BKM>IN
                     .CE

                     After you got the ">BKM>" prompt again continue with the 
                     instruction in the next section.

       3.2.5 Converting the bootrom_uncmp.hex to bootrom_uncmp.bin:

             3.2.5.1 Go to the menu and choose "Tools" and 
                    "Vision Flash Utility..." . 

             3.2.5.2 The "Flash Programming Window" will popup. Go to the 
                     "Files" tab, press the "Convert" button.

             3.2.5.3 The "File Convertion" window will popup. In the 
                     "Enter new start address" edit box type "0x0" and in the
                     "Enter new end address" edit box type "0xFFFFFFFF".

             3.2.5.4 Now press the "Convert" button. After the convert operation
                     finished, you will see it in the "Convert Result" section
                     press the "Close" button.

       3.2.6 Programming the MdpPro8xx Flash:

             3.2.6.2 In the "Flash Programming Window" window. Go to the 
                     "Configuration" tab, & choose the following Flash device:

                     The 4MB SIMM FLASH:   "AMD 29F080/81(1024 x 8) 4 Devices"
                     The 1MB On Board FLASH: "AMD 29F040 (512 x  8) 2 Devices"

                     In "Flash Bank" group for the "Start:" enter "FFF00000". 
                     In the "RAM Workspace" group for the "Workspace Start at:" 
                     enter "00000000" and for the "Workspace Size:" enter 
                     "60000".

             3.2.6.3 Now switch to the "Files" tab and press the "Add" button. 
                     The open dialogbox will popup, browse to 
                     "$(WIND_BASE)\target\config\wrMdpPro8xx                     "bootrom_uncmp.bin" file. Now after getting back to the 
                     "Files" tab you will see the full path to the selected 
                     file in the "Binary Files" group. Move the mouse curser 
                     above the line that showing the full path in the  
                     "Binary Files" group and press the right button to mark 
                     this line. Now press the "Toggle Enable" button to select 
                     this binary file. Make sure that the line is still marked, 
                     and press the "Edit" button on the right. The "File Edit" 
                     dialog box will popup. In the "Enter new start address" 
                     edit box enter "0xFFF00100" and press the "OK" button.

             3.2.6.4 Now go to the "Program" tab and press the "Erase/Program" 
                     button.

             3.2.6.5 Now the Flash memory is programmed with the new boot program.

4. Running the VxWorks Boot ROM program:

   4.1 Disconect visionPROBE II or the visonICE II if it still connected to the 
       board, because it still connected to the board in some case it can stop 
       the processor at the first instruction.

   4.2 Connecting the Ethernet channel and the serial channel:

       4.2.1 First, connect the supplied serial cable with the board. On 
             one said connect the RJ11 connector to the COM1 (JP12) port on the 
             the MdpPro8xx, and on the other said use the RJ11 to 9/25 Pin 
             addapter to connect it to your host. The UART devices is set as 
             follow: 8 data bits, 1 stop bit, hardware handshaking, and parity 
             disabled. The serial console (9600 bps).

       4.2.2 Second, connect a standard Ethernet cable to the the RJ45 
             connector (JP10 on the mother board).

   4.3 Launch a terminal program on the host said, and configures it according 
       to the following details: 8 data bits, 1 stop bit, hardware handshaking, 
       and parity disabled. The serial console (9600 bps).

   4.4 Now to execute this new boot program turn the board off,and on. and you 
       should get the vxWorks boot count down on the terminal window. Press any
       key to stop the count down. Now follow the instruction in the 
       instructions in the "Getting Started" chapter of the 
       "VxWorks Programmer's Guide." for more detail how to configure vxWorks.

Default configuration

bootrom_uncmp.hex is provided with this BSP. The bootrom_uncmp is configured to a ROM base address of 0x0 and includes, also it's configured to use the 4 MByte SIMM FLASH and SCC 10BaseT Ethernet as default boot device and SMC1 as console device, and to use the 128MB SDRAM module.

Using visionWARE to run VxWorks

The following section will explain how to launch VxWorks using visionWARE as a boot loader. Please follow the steps below:

Note: Before using vsionWARE you need to verify that visionWARE is programmed
      to you FLASH. If visionWARE is not exist on your FLASH, please see 
      "Programming bootrom_uncmp to MdpPro8xx FLASH" section how to program the 
      MdpPro8xx Flash, also you can skeep step 3.1.6 or 3.2.5 that explain how 
      to convert the bootrom_uncmp.hex to *.bin, and instead of programming the 
      "bootrom_uncmp.bin" program the "vWARE.bin" file.

    1. Connect your MdpPro8xx serial channel (COM1) to a host running 
       terminal program at 9600 baud rate (For example "HyperTerminal") using 
       the supplied serial cable.

    2. Connect your MdpPro8xx 10Base-T RJ45 port (JP10 on the mother board) to 
       a network hub.

    3. Open TFTP server and point to the location of the vxWorks.bdx file. If 
       you want to use the TFTP server that is supplied with visionWARE, go to 
       the visionWARE directory on your host, insaide the visionWARE root 
       directory you will find "tftp" directory that contain application called 
       "tftpd32.exe" . Run this application and the TFTPD32 window will popup. 
       In the TFTPD32 window press on the "Settings" button. This will invoke 
       the "Tftpd32: Settings". Go to the "Base Directory" group and inside the 
       edit box type the full path to your vxWorks image, or use the "Browse" 
       button to navigate to there.

    4. Power up your MdpPro8xx and press any key within 3 seconds from the 
       serial terminal to abort the boot script. This will display a ">BKM>" 
       prompt.

    5. Type the "shell" command and press enter. Now you should get the 
       following line: "Command Channel = 0: serial >" Press enter.

    6. Next line will be: "Boot Delay (seconds) = 1 >". Here you need to 
       specify the disaierd delay value and press enter.

    7. Nex line will be: "Boot Script = >". Here you need to give the boot 
       script command. Please type the following: 
       "load \host\vxWorks.bdx!launch 100000" . Where "host" is the host 
       name, and press enter.

       Note(s):

       ** It is very important to keep the same space between the "load" 
          command and the host name "\host".

       ** It is very important to keep the same space between the "launch" 
          command and the "100000".

       ** The host name should be the same as specified in the 
          "Remote System 1 Name" line.

    8. Next line will be "Prompt String = BKM >" . Press enter.

    9. Next line will be "MAC Address = 00-00-00-00-00-00 >" . If you want to 
       change the target MAC address, type it now and press enter, else press 
       just enter.

   10. Next line will be "IP Address = 0.0.0.0 >". Type your target IP address. 
       For example: 192.168.199.0 and press enter.

   11. Next line will be "Subnet Mask = 0.0.0.0 >" . If you want to use subnet 
       mask, type it now and press enter, 
       else just press enter.

   12. Next line will be "Default Gateway = 0.0.0.0 >" . If you want to use 
       default gateway, type it now and press enter, else just press enter.

   13. Next line will be "Remote System 1 Name = >" . Here you need to type 
       the same host name you specified in the "Boot Script" line.

   14. Next line will be "Remote System 1 IP = >" . Here you need to type 
       your host IP address. For example: 192.168.199.1 and press enter.

   15. Next line will be "Remote System 2 Name =  >" . Just press enter.

   16. Next line will be "Remote System 3 Name =  >" . Just press enter.

   17. Next line will be "Remote System 4 Name =  >" . Just press enter.

   18. Now you will get the following message: 

       Saving changes will generate a reboot.
       Save Changes (y/n)?

       Press y to save the changes.

   19. Now the changes are saved and the board will restart visionWARE and 
       boot vxWorks, after a few seconds you will get the following messages:

       Wind River visionWARE v2.00 for the MdpPro8xx Board  
       MAC : 00-00-00-00-00-00 IP : 192.168.199.0
       Type "shell" to set IP and/or MAC addresses
       Type "help" to see available commands

       Press a key in the next <1> seconds to preempt boot script
       Booting from script...

       load \\host\vxWorks.bdx!launch 100000

       >Attached TCP/IP interface to cpm unit 0
       Attaching interface lo0...done


                        VxWorks

       Copyright 1984-1998  Wind River Systems, Inc.

                   CPU: MPC821/860 -- Wind River MdpPro821/860
               VxWorks: 5.5
           BSP version: 1.2/29
         Creation date: Dec 07 2001
                   WDB: Ready.
For more information regarding visionWARE boot services and the visionWARE development kit, please refer to the visionWARE manuals, located on the CD that was shipped with your board.

BOOT DEVICES

The supported boot device(s) is(are):
    motfec - MII 10/100BaseT Fast Ethernet (FEC1)
    cpm    - 10BaseT Ethernet (SCC1)

FEATURES

This section describes the support and unsupported features of the MdpPro8xx

Supported Features

The supported features of the MdpPro8xx board are:
        8xx processors as described in Processors Supported section 
        Board Initialization
        MMU support
        Cache support
        Decrementer timer; used to implement a System Clock.
        SMC1 a UART for COM1 (Console channel).
        SMC2 a UART for COM2 (Only for 86x, 855T or 85x with HW modification)
        SCC Port as an Ethernet device supporting 10Base-T protocol
        MII Port as an Ethernet device supporting 10/100Base-T protocol
        TIMER2 as an 16-bit auxiliary clock
        TIMER3 and TIMER4 are cascaded into a free-running 32-bit timer for 
            timestamp support
        Interrupt Controller
        Baud Rate Generators as required for SMC1 and SMC2
        128 MB SDRAM or 16 MB EDO DRAM
        FLASH upgrade socket (4, 8, 16 MB SIMMs)
        1MByte On Board Local FLASH
        512KByte SRAM 
        8KByte EEPROM for Ethernet MAC address and bootline
        25, 40, 50, 66, 80 MHZ CPU speeds

Unsupported Features

The items not supported on the MdpPro8xx are:
        virtual DMA
        Parallal Ports
        Baud Rate Generators not used by supported devices
        SPI
        I2C Bus
        SCC2
        ATM Transparent, or HDLC protocols
        Support for the PCI bridge
        Support for the PCMCIA Slot

HARDWARE DETAILS

This section documents the details of the device drivers and board hardware elements for the MdpPro8xx.

Devices

The chip drivers included are:
    ppc860Sio.c       - serial driver
    ppc860Intr.c      - interrupt controller driver
    ppcDecTimer.c     - Timer library for PPC decrementer timer
    ppc860Timer.c     - Timer library for PPC CPM timers 2,3,4
    byteNvRam.c       - Byte oriented nvram device
    eeprom.c          - EEPROM access routines
    sysMotCpmEnd.c    - configuration module for motCpmEnd driver
    sysMotFecEnd.c    - configuration module for motFecEnd driver
    sys8xxPcmcia.c    - configuration module for PCMCIA ATA driver
    pcmciaLib.c       - generic PCMCIA event-handling facilities
    pccardLib.c       - PC CARD enabler library
    cisLib.c          - PCMCIA CIS library
    ataDrv.c          - ATA/IDE (LOCAL and PCMCIA) disk device driver
    if_cpm.o          - Ethernet Communication library for SCC
    motCpmEnd.o       - END-style Ethernet Communication library for SCC
    motFecEnd.o       - END-style Fast-Ethernet Controller Communication library
                        for ICM860P/T daughter-boards with MPC860P/T microprocessor

The timer driver, ppc860Timer, implements a system clock using the PPC decrementer timer, an auxiliary clock using CPM timer 2, and a 32-bit timestamp facilty by cascading CPM timers 3 & 4. The BSP configures SMC1 as a UART to implement a console device and the CPM SCC1 as an Ethernet port.

Support for L1 Cache Locking

L1 cache locking is available for MPC8xx. The cache lock routine can be used to lock the entire instruction cache with a specified memory region. In the 8xx family allowed two cache types, one for the 8xx (4K cache and one for the 860P (16K instruction cache, and 8K data cache). In the file cache800LockALib.h you will find the following macro:

#define CPUCACHETYPE
For the 8xx with the 4K cache it need to be defined to:

#define CPUCACHETYPE PPCMPC8XX_4KIC4KDC
For the 860P it need to be defined to:

#define CPUCACHETYPE PPCMPC8XX_16KIC8KDC

Default Memory Map

        Memory Map from CPU point of view

Chip Select     Start               Size         Access to
------------------------------------------------------------------
CS2-3           0x0                 4MB (min)    EDODRAM or SDRAM
CS4             0x08000000          512K         SRAM
CS5             0x10000000          8KB (min)    NVRAM (EEPROM)
CS0             0xFFC00000          4MB (min)    SIMM FLASH memory
CS0             0xFFF00000          1MB          On Board Local FLASH

Shared Memory

Does not apply.

Processors Supported

MPC823/860, MPC850 , MPC860T , MPC860T RevD , MPC860T , MPC860P and MPC855T

The BSP determines the processor type during operation. The value in the partnum/IMMR register field is used to determine the processor. Unfortunately Motorola is not consistant in bumping the part number and mask numbers. The following are the values used (from "wrMdpPro8xx.h"):

        /* CPU Type (PARTNUM field of IMMR) */
    #define CPU_TYPE_860     0x00 
    #define CPU_TYPE_860T    0xFE  /* bogus value: 860T(preRevD) has same Id as 860 */
    #define CPU_TYPE_823     0x21 
    #define CPU_TYPE_823E    0x24 
    #define CPU_TYPE_850     0x20
    #define CPU_TYPE_855T    0x05  /* 860T RevD has same ID as 855T */
    #define CPU_TYPE_860P    0x06
    #define CPU_TYPE_86X     0xF5  /* General CPU Families */
    #define CPU_TYPE_85X     0xF6
The BSP works properly with all the processor type and revs listed. However, in the startup banner, an 860T RevD device is listed as a 855T processor.

Operating Frequency Parameter

The "config.h" file contains a construct for manually specifying the desired operating speed. The user should select the desired process operating speed. The speed can be less than or equal to the rated processor speed marked on the chip.
        #define  OPERATING_FREQUENCY CPU_FREQ_50MHZ
The BSP is supplied with the operating frequency default to 50Mhz.

Note(s): 66 and 80 Mhz values probably could be tweaked to improve proformance.

Ethernet Port

The BSP configures to use CPM SCC1 as an Ethernet port. The name "cpm0" should be specified as the boot device to the boot ROMs when booting vxWorks over that interface. The BSP configures to use END-style network driver. If you want to use the non-END-style network driver, in "config.h" change the macro from "#define BOOT_DEVICE CPM_END" to "BOOT_DEVICE CPM_NETIF". If you wishes to use the FEC as the boot device do this by changing in "config.h" the macro from "#define BOOT_DEVICE CPM_END" to "#define BOOT_DEVICE CPM_FEC_END", also the name "motfec0" should be specified as the boot device to the boot ROMs when booting vxWorks over that interface, you can still use the CPM SCC1 by specifing the name "cpm1" as the boot device. The Fast Ethernet Controller (FEC) makes available fast Ethernet connectivity through the use of a 10/100BaseT Ethernet transceiver conected to the MII port (JP21) and a RJ45 connector.Each time "config.h" is edited, new vxWorks and bootrom images should be built and Flash memory is to be programmed.

NVRAM Support

This BSP implements NvRam via a EEPROM device. There are a few user parameters associated with this device. The parameters are located in the "config.h" file and are:
    #undef  INCLUDE_EEPROM_LOCKING
    #define SMART_EEPROM_WRITE
    #define ETHERNET_ADR_SET /* (used in bootConfig.c to enable 'N' command) */
The INCLUDE_EEPROM_LOCKING parameter is typically #undef'ed. If #define'ed, the EEPROM will be software locked between accessess. This was implemented on the BSP to work around a power-on EEPROM corruption problem. It should be noted, that if the EEPROM is locked, its contents can not be altered via an emulator or visionPROBE II or visionICE II.

The SMART_EEPROM_WRITE parameter is typically #define'd. When defined, the EEPROM write code first checks to see if a cell is the desired value. If the memory location already contains the desired value, the write is skipped. This was implemented to increase the life of the EEPROM device.

The ETHERNET_ADR_SET is a value that indicates the MAC address is stored in NVRAM and alterable via the N bootrom command.

Changing the Ethernet Address

The MdpPro8xx boards do not have a unique Ethernet hardware address assigned to each board. A unique address is absolutely necessary if the user wishes to connect the board to a network. Thus, the user must provide a suitable 6 byte Ethernet address for each board used on a network. The default Ethernet Address is specified in the "wrMdpPro8xx.h" The following relate to the storage of the Ethernet address in NVRAM:
   /* Ethernet MAC Address Parameters */
   #define CUST_ENET3 0x01 /* Customer specific portion of MAC address */
   #define CUST_ENET4 0x02
   #define CUST_ENET5 0x03
The first three bytes (0x00, 0xa0, 0x1e) are a Wind River specific prefix that should be kept as-is. If for some reason you need to change them, in "config.h" change the following macros:
   #define WR_ENET0  0x00 /* Wind River specific portion of MAC (MSB->LSB) */
   #define WR_ENET1  0xa0
   #define WR_ENET2  0x1e         

   #define ENET_DEFAULT 0x1ea00000
Note: The "ENET_DEFAULT" macro shoulde containe the same number as the three
      "WR_ENETx" macros. For example : 
   #define WR_ENET0  0x11
   #define WR_ENET1  0x22
   #define WR_ENET2  0x33         

   #define ENET_DEFAULT 0x33221100
The user must change the last three bytes from 0x03, 0x02, 0x01 to three unique bytes (i.e., bytes not used by any other Wind River Ethernet connection on your net). Check with your system administrator if you do not know this information. If these bytes need changing (they often will not), a new boot ROM must be burned, and a new image must be built. Ethernet Address can be specified at the bootrom prompt (N command). The Ethernet address is stored in the on board NVRAM. This option will able you to change the last three bytes. To use this option, open the console window (for example: hayper terminal) and when the bootrom baner aperse and the countdown start, press any key, when you get the [VxWorks Boot] prompt , press N and follow the instructions.

BOOT FLASH

The BSP configures to use the 4MByte SIMM Flash. In order to use the 1MByte On Board Flash instead, change in "config.h" the following lines:

FROM

    #define BOOT_FLASH  SIMM_FLASH 

TO

    #define BOOT_FLASH  ON_BOARD_FLASH 
New boot ROM must be burned, and a new image must be built.

**Note: You need also to change the jumpers configuration. JP18
        need to be open and JP19 need to be closed, also S5-5 need to be open.

Switching between SDRAM to EDO DRAM

The MdpPro8xx board can come with two type of RAM, EDO RAM, and SDRAM. Here are the instruction how to switch from the default SDRAM to the EDO RAM.

1. In "config.h" change the following line:

FROM

   #define RAM_TYPE  SDRAM

TO

   #define RAM_TYPE  EDODRAM
2. New boot ROM must be burned, and a new image must be built.

3. Plug in the new SDRAM module and set switch S1-3 to be in "Open" position.

Crystal or Oscillator Clock Input

One of two types of clock input is used on the board. Either a 50000KHz crystal or a 1:1 oscillator is used as the MdpPro8xx primary clock source. The boot ROM and kernel detect and configure themselves dynamically to support the configured clock. No special user configuration is required.

Serial Configuration

SMC1 and SMC2 are configured as UART devices with 8 data bits, 1 stop bit, hardware handshaking, and parity disabled.

Serial Connections

This VxWorks MdpPro8xx BSP uses a simple 3 wire connection and standard phone jacks where pin 1 = RIN, pin 2 = TOUT, pin 3 = NC, and pin 4 = GND.

SCSI Configuration

There is no SCSI interface on this board.

Network Configuration

SCC1 is configured as a 10Mb/s Ethernet port FEC1 is configured as a 10/100Mb/s Fast Ethernet port

VME Access

NA

PCI Access

Two 32-bit address, 32-bit data; complies with PCI Local Bus Specification, Revision 2.1 The MPC860/850 have PCI bridge inside.

PCMCIA Configuration

The current PCMCIA support is limited to ATA FLASH card only and only when using ICM module with MPC860860P/860T/855T. That means you can write to this card a DOS file like written to hard-disk.

PCMCIA support can be included by defining the switch "INCLUDE_PCMCIA" in "config.h".

Force Default Boot Line Option

If the FORCE_DEFAULT_BOOT_LINE is defined (in "config.h"), then the DEFAULT_BOOT_LINE parameters are used as boot parameters regardless of the NVRAM values previously specified. Recall, boot parameters are stored in the NVRAM device so boot parameters are not lost during a power cycle.

Defining the FORCE_DEFAULT_BOOT_LINE value is useful for debugging emulator/visionPROBE II downloaded RAM based vxWorks images. It is considered a DEBUG options so it should be #undef'ed for the final image.

Normally the boot parameters are specified at the bootrom prompt and stored in NVRAM. When a downloaded image executes, the boot parameters are retrieved from the NVRAM device.

This can sometimes cause undesired results. For example, if the NVRAM has been previously initialized, then changing the DEFAULT_BOOT_LINE in the config.h will not result in the new settings being used. The reason being is the initialization code always takes the boot parameters from the NVRAM device. If there are sane values in the NVRAM device, these boot parameters are used.

If you intended to debug an image by downloading with WR visionTools and plan on changing the DEFAULT_BOOT_LINE parameters a number of times, it might be convenience to define this FORCE_DEFAULT_BOOT_LINE parameter.

As a note, unitialized NVRAM device is initialized automatically with the DEFAULT_BOOT_LINE parameters specified in the config.h file.

As an alternate solution for the above scenario, the boot parameters can be changed via the bootrom. This will store the values in NVRAM and will subsequentially be used by the download image. This would require a sane bootrom and would require the target board to run via the bootroms to set the values and then halted to download the image to be debugged via the WR Tools.

ROM Considerations

bootrom_uncmp is provided with this BSP. The bootrom is configured to a ROM base address of 0x0. When programing the bootrom to the FLASH an offset of 0xFFF00100 need to be given, also it's configured to use the 4 MByte on SIMM FLASH ROM and the 10BaseT "cpm" ethernet as default boot device and the RS232 as console device.

Delivered Objects

The following images are delivered with the wrMdpPro8xx BSP:

Make Targets

Only bootrom_uncmp, bootrom, vxWorks, vxWorks.st, and vxWorks_rom have been tested.

SPECIAL CONSIDERATIONS

This section describes miscellaneous information about the BSP.

Some early revisions of MPC821 and MPC850 lack the ability of supporting the timestamp driver, since they only feature two internal timers, whereas the timestamp driver uses timer 3 and timer 4 in cascade mode. On these processors, the timestamp library support is not available.

The module sysMotCpmEnd.c creates the load string for the END-style "cpm" interface. The Ethernet tranceiver on the MdpPro8xx boards is normally wired to the SCC1 channel of the Communication Processor Module (CPM). However, on MdpPro823/850 boards, SCC2 is used instead. The module "sysMotCpmEnd.c" dynamically configures the driver to use either the SCC1 or the SCC2 channel by reading the BCSR3 register to find out which processor is being used and set up the load string accordingly. The user does not need to perform any other configuration, unless he wants to change default parameters.

Note(s):
    ** the old cpm driver has been left in the BSP, but no testing and 
       support is provided.
    ** 850 uses SCC2 for CPM/CPM End
    ** 860, 860T, 860P, and 855T use SCC1 for CPM/CPM End
    ** FEC Drivers require 50Mhz or faster processor speed (for full-duplex)

The module sysMotFecEnd.c creates the load string for the END-style "motfec" interface. The Ethernet tranceiver on the MdpPro8xx boards is normally wired to the FEC1 channel of the Communication Processor Module (CPM). The module "sysMotFecEnd.c" dinamically configures the driver to use either the FEC1 channel. The user does not need to perform any other configuration, unless he wants to change default parameters.

If 40Mhz is the OPERATING_SPEED, it should be noted that 50Mhz UPM timing values are used. This works but the values could be changed to optimize the timings. Using 50Mhz timing values results in less than optimal performance when run at 40Mhz. See romInit.s for implementation.

Known Problems

If using ICM module with MPC850 the Data Cache need to be turn off. otherwise the BSP will not work.

The FEI driver is supplied with the BSP but is not working. It will be fixed in the next version of the BSP.

BIBLIOGRAPHY

Wind River HSI MDP8xxPro Hardware Reference Manual MPC860 PowerQUICC User's Manual PowerPC Microprocessor Family: The Programming Environments for 32-bit Microprocessors MPCFPE32B/AD MPC603e & EC603e RISC Microprocessors User's Manual MPC603EUM/AD