www.pudn.com > 860bsp.rar > target.nr
'\" t .so wrs.an .\" ads860/target.nr - Motorola MPC8xx(F)ADS target specific documentation .\" .\" Copyright 1984-1996 Wind River Systems, Inc. .\" .\" modification history .\" -------------------- .\" 01i,19mar99,cn added information on sysMotCpmEnd (SPR# 25839). .\" 01h,01mar99,cn added information on known problems/limitations. .\" 01g,22feb99,cn added information on 8xx Errata and data cache patch. .\" 01f,30jan99,cn updated documentation (SPR# 8746 and SPR# 20751) .\" 01e,28apr98,yp added info on TFFS. .\" 01d,25nov97,map added info on 860 devices used. .\" 01c,12sep97,map info about problems with the "go" command .\" 01b,24jul96,tpr added Aux Clock Doc + corrected typo. .\" 01a,16jun96,tpr created from mv1604. .\" .\" .TH "ads860" T "Motorola MPC821/860ADS and MPC8xxFADS" "Rev: 17 Jun 96" "VXWORKS REFERENCE MANUAL" .SH "NAME" .aX "Motorola MPC821/860ADS & MPC8xxFADS " .SH "INTRODUCTION" This note provides board-specific information necessary to run VxWorks. Before running VxWorks, verify that the board runs in the factory configuration. The ads860 BSP produces a VxWorks image running on either the PowerPC 8xx processors. From the VxWorks perspective these processors are equivalent. The URL: http://www.mot.com/SPS/RISC/netcomm/support/index.html#errata_group provides information on all MPC8xx, MPC860T, and MPC860SAR device errata from Rev. A onwards. Please, check which ones apply to your particular device/revision before using VxWorks. WRS has not implemented any of the workarounds suggested there for any of the known hardware problems. .SH "BOOT ROMS" No VxWorks Boot ROM is provided with this BSP release. Nevertheless VxWorks boot code is working if downloaded into the SIMM Flash ROM. To program the SIMM Flash ROM, the ADI card from Motorola is required. This debug card is available for Sun workstation or PC. Connect this ADI card to the MPC821/860ADS board via the ADI port. Check that a 12V potential is provided to the MPC8xx(F)ADS board; otherwise the SIMM Flash will not be erased and/or re-programmed. On the host, start the mpc8bug executable (mpc8bug.exe on PC). Once the prompt appears, reset the board with the following command: .CS 821Bug> reset:h .CE Then download the bootrom_uncmp.hex file to the Flash: 821Bug> loadf //bootrom_uncmp.hex 100000 The 100000 value is the address in DRAM memory where the bootrom_uncmp.hex file is temporarily downloaded before it is moved to Flash. A message like the following copy should appear: .CS loadf: Loading Srecords file . . . Loading flash mapped sections to ram memory buffer: Loading block : at 00100000 : 0004efd0 bytes loaded Programming flash : 0004efd0 bytes at 02800100-0284f0cf Flash programming completed Loading ram mapped sections to ram memory: Entry point (IP) is not set Heap start address set to 0284f0d0 821Bug> .CE Now the SIMM Flash memory is programmed with the new boot program. To execute this new boot program turn the board off and on. If the board is still connected to the ADI card then the processor is stopped at the first instruction to execute. From the mpc8bug prompt call the "go" command to resume FLASH code execution. .SH "Jumpers" No jumpers are relevant to VxWorks configuration. However, the dip switch DS1 on the FADS8xxDB Daughter Board should not be changed from its factory configuration, otherewise erratic behaviour of the LXT970 , which implements the physical layer device for the FEC, may derive. See also "Special Considerations" below. .PP This board doesn't have non-volatile RAM; thus boot parameters are not preserved when the system is powered off. .PP To load VxWorks, and for more information, follow the instructions in the "Getting Started" chapter of the .I "VxWorks Programmer's Guide." .PP An alternative way to load vxWorks is through the ADI debug card. Plug the ADI connector in the ADI port of the board, power on the board and start the mpc8bug executable on the host. Execute the reset command to initialize the board: .CS 821Bug> reset:h .CE Then download VxWorks: .CS 821Bug> load / /vxWorks Loading ELF file . . . Entry point set to 00100000 Loading section 1 (.text) : 0005fcec bytes at 00100000 Loading section 2 (.rodata) : 0000263c bytes at 0015fcec Loading section 4 (.data) : 00001058 bytes at 00162328 Loading section 5 (.got) : 00000010 bytes at 00163380 Loading section 7 (.sbss) : 00000298 bytes at 00163390 (not loaded) Loading section 8 (.bss) : 000079e8 bytes at 00163628 (not loaded) Heap start address set to 0016b010 Loaded 000008da symbols into the symbol table Duplicated symbols (-103) expanded with enumerated suffixes r3 and r5 are set to 0 .CE Then reset the DER register .CS 821Bug> rms DER 0 .CE And finally start VxWorks execution: .CS 821Bug> go 100000 .CE On some ADI configurations, resuming execution with the "go" could result in exceptions or other problems. In such cases, unplug the ADI connector, and reset the target board to start VxWorks. .PP .SH "TrueFFS support" .PP This BSP supports the optional product TrueFFS for Tornado. To use TrueFFS install the product, add sysTffs.o to MACH_EXTRA in the Makefile and define INCLUDE_TFFS in config.h. TrueFFS is set up to use the PCMCIA slots and the half of the Flash SIMM that is not used by the bootrom as drives for use with dosFs. If you use the function tffsBootImagePut, the "offset parameter should be computed as (ROM_TEXT_ADRS - ROM_BASE_ADRS) and should evaluate to 0x100 for the default configuration. The boot-image (i.e. bootrom, bootrom_uncmp etc) should be filtered using elfToBin prior to using tffsBootImagePut. .PP .SH "DEVICES" .PP The chip drivers included are: ppc860Timer.c - Timer library for PPC decrementer, CPM timers 2,3,4 ppc860Sio.o - Serial Communications library for SMC UART ppc860Intr.c - Programmable Interrupt Controller Library 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 MPC860DB daughter-boards with MPC860T microprocessor sysMotCpmEnd.c- configuration module for motCpmEnd driver .PP 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. The name `cpm' should be specified as the boot device to the boot ROMs when booting vxWorks over that interface. To disable the CPM SCC1, undefine the macro INCLUDE_CPM in the file config.h. Also, undefine the macro INCLUDE_END if you want to use the non-END-style network driver. On MPC860DB daughter-boards with MPC860T microprocessor, the Fast Ethernet Controller (FEC) makes available fast Ethernet connectivity through the use of a MII-compliant physical device and a RJ45 connector. Support for those board is granted if the macro FADS_860T is defined in config.h. In this case, the FEC will be used as the default network interface, while the CPM SCC1 will be disabled. However, the user may enable either interfaces, and even the configuration where both of them are exploited is supported. Each time config.h is edited, new vxWorks and bootrom images should be built and Flash memory is to be programmed. If the user wishes to use the FEC as the boot device, the string `motfec' should be specified in the boot string. .PP .SH "SPECIAL CONSIDERATIONS" .PP The DRAM controller setup is only performed by the boot program. VxWorks doesn't re-initialize the DRAM controller when it is executed. The DRAM memory controller initialization code can recognize both the size and type of the DRAM plugged and its access time. .PP To increase performance in high operation frequencies, on FADS8xx boards, the on-board SDRAM bank may be used as the local system memory. However, the only supported configuration is the one with the clock speed above 32 Mhz., and only for late revisions of the silicon. More to the point, MPC860T processors with Rev. mask lower than B3 and date code earlier than 9832, or MPC860EN with Rev. lower than B1 and date code earlier than 9829, are not garanteed to work with the same UPM tables (see romInit.s). In order to configure the system to initialize the SDRAM, define the macro INCLUDE_SDRAM in config.h. Both the SDRAM banks and the regular DRAM SIMM are mapped to the lower memory addressing space of the processor, and therefore they cannot be used at the same time. If the user wishes to do so, this bsp has to be modified. .PP This bsp defaults to disable both instruction and data cache when the macro EDO_DRAM is defined in config.h. However, Motorola claims the problem only occurs on early revisions of ADS860 and FADS8xx boards. To add cache support even when EDO_DRAM is defined, remove unnecessary undefine of the cache-related macros in config.h .PP 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. .PP Support to the second serial channel (SMC) is not available on boards using either an MPC823 or an MPC850. In this case, the configuration module for the serial driver only initializes the first serial channel. .PP The module sysMotCpmEnd.c creates the load string for the END-style cpm interface. The Ethernet tranceiver on the FADS8xx boards is normally wired to the SCC1 channel of the Communication Processor Module (CPM). However, on FADS823/850 boards, SCC2 is used instead. The module sysMotCpmEnd.c dinamically 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. .PP The MPC8xx(F)ADS 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 address is programmed by changing the sysCpmEnetAddr character array in the file sysLib.c. The first three bytes (0x08, 0x00, 0x3e) are a Motorola-specific prefix that should be kept as-is. The user must change the last three bytes from 0x03, 0x02, 0x01 to three unique bytes (i.e., bytes not used by any other Motorola 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. Likewise, the sysFecEnetAddr character array in the file sysLib.c must provide a suitable 6 byte Ethernet address for each board where the FEC is used. The user must change the last three bytes from 0x03, 0x02, 0x02 to three unique bytes that are not used on any other Motorola connection on the user's network. 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. .PP The MC68160 EEST part is very sensitive to its input power voltage (VDD). VDD to the chip must be between 4.75 and 5.25; values outside this range may diminish functionality. Therefore, the power supplied to the target board and the chip should be checked carefully. Note that there may be a significant voltage drop between the power supply connectors and the chip (the fuses and connectors alone cause approximately a 0.1 volts drop). In order to get the Ethernet device to work properly the processor clock (PLL) should be at least 24 megahertz. Both the boot program and VxWorks set the processor clock to 24 megahertz. Configurations with processors running at a frequency higher than 24 megahertz or lower than 20 megahertz were not tested. .PP The driver for the FEC exploits the MII Management Interface as described in the IEEE802.3 standard. In order to do so, it assumes that the auto-negotiation function bit MF0 on the on-board dip switch DS1 is in the OFF condition. In this configuration, which is also the default one, the PHY can advertise its technical abilities and its link may be dynamically established in software. The man page for the FEC driver explains how the process to establish a valid physical link for this device may be affected by the user settings. However, if the above MF0 bit is not in the default configuration, the driver may fail to initialize the link. Nevertheless, the user may write his own media initialization routine and set the function pointer _func_motFecPhyInit to the address of this routine. See the man entry motFecEnd for more information. .PP The FEC, although capable of operating in 100Base-T networks, performs poorly under vxWorks. Tests conducted by WRS, on a FADS860 board equipped with a MCP860T microprocessor running at 50Mhz bus speed, and regular DRAM with 60 nsec access time, in the default configuration (see config.h), demonstrated that the attained throughput with TCP/IP applications is around 14 Mbit/sec. This goes up to 17 Mbit/sec if the on-board SDRAM is used instead. These figures were achieved with data cache turned off. This is the only supported configuration by WRS, due to the on-going problems with the data cache on the MPC860T processors. Refer to the CPU6 errata in the document: "MPC860 Family Device Errata Reference" available at the above mentioned Motorola web site. The work-around described there has not been implemented by WRS, although it is available as a patch. This has to be linked to the proper arch library if data cache is enabled. The lines below describe how to do it. Please contact the WRS's Customer Support for more information. Availability of this patch will increase the throughput of the FEC in TCP/IP applications to around 28 Mbit/sec. Please, also note that other device errata are not addressed by this patch, and WRS is not responsible for any problem caused by any of them. In order to configure VxWorks to link the data cache patch above, add the following line to the Makefile in target/config/ads860: .CS ADDED_MODULES = dataCachePatch.obj .CE Then remove the line undefining USER_D_CACHE_ENABLE from config.h, and rebuild VxWorks. .PP .SS "Known Problems" VxWorks rom-resident (ROM_RESIDENT flag defined) images do not build for this BSP. The same holds true for resident bootroms. In addition, the targets vxWorks.res_rom_res_low and bootrom_res_high build but do not work. Use non-rom-resident images instead. .SH "SEE ALSO" .pG "Getting Started, Configuration"