User`s guide
3 Porting a BSP to Custom Hardware
3.3 Finalizing Your BSP
111
3
In addition to modifications to sysMemTop( ), you must also modify the
sysPhysMemDesc[ ] array in sysLib.c, and possibly other parts of sysLib.cas well,
depending on your processor architecture.
The sysPhysMemDesc[ ] array contains information about address ranges on the
system as well as the cache and MMU initialization options that each region
requires. Refer to the reference BSP or template for an example of
sysPhysMemDesc[ ] usage.
On some processors, mechanisms other than the MMU may be available for
mapping memory address ranges. Non-MMU mappings are handled as an
exceptional case.
On PowerPC 603 and 604 processors, the Block Address Translation (BAT)
registers can be used for faster RAM access than the access available when the
MMU is used. Configuration of the BAT registers is done in a manner similar to the
sysPhysMemDesc[ ] array. An additional array called sysBatDesc[ ] is used to
hold information about the physical and virtual addresses. Note that memory
mapped by the BAT registers may overlap MMU addressing, which can lead to
conflict between BAT addressing and vmLib support.
In addition, some processors have limits that affect other aspects of memory sizing,
such as branch address range limits, which affect the locations of interrupt
exception handlers. For more information, refer to the appropriate VxWorks
architecture supplement.
Multi-Function Devices
Historically, VxWorks included a target/src/drv/multi directory. This directory
contained drivers intended for use with ASIC chips that incorporate more than one
area of functionality. That is, a single driver that supported the multiple types of
functionality available on the chip. Wind River no long supports this driver model.
Drivers for ASIC chips and multi-function daughter boards should be divided into
individual drivers for each functional area. Some of these drivers may depend on
features in another driver. If this is the case, the dependency should be well
documented in the dependent driver source code.
NOTE: For VxWorks 6.0 and later, vmLib resources are required for configuration
of Real Time Processes (RTPs). For this reason, use of non-MMU addressing
mechanisms such as BAT registers is strongly discouraged.