304
Development Tools User’s Guide
Intel
®
IXP2400/IXP2800 Network Processors
PCI Bus Functional Model
Of course, an additional set parameter line would be necessary for a device that supports both IO
and memory space. When the device is connected, the chip name must be passed to the function.
This specifies the name of the chip and binds the get and set signal functions to that chip name.
After at least one device is initialized, the PCI BFM will respond to activity on the PCI bus.
D.4
Calling Console Functions from Another Foreign
Model
Another foreign model can call the PCI BFM console functions by including the header file
“pciconfx.h” and linking against the library “pci_bfm2X00.lib.” These files are located in
“me_tools/include/” and “me_tools/lib/”, respectively.
D.5
Setting a Callback Function
A foreign model, by calling the “pci_register_callback” function can register a function of its
choice, one per device, for callback. Upon completion of a transaction, the PCI BFM will make a
call to any functions registered with the devices involved. Details of the transaction are passed
through the callback parameters.
D.6
Header file pciconfx.h
/** @file pciconfx.h
The PCI Foreign Model Console Functions will allow users to test
microcode doing read, write and DMA to PCI slave devices attached
to the IXP2000.
These console functions are to be executed on the transactor con-
sole command line interface. They can also be called via the
exported C-API by a C program in the form of another foreign model
DLL. The functions will have the following characteristics:
1. The functions can be called by IND scripts or by hand when the
simulator is in the standalone console mode or under the Work-
bench. Additional GUI can be added onto the Workbench to automate
the calling of these functions for configuration purpose in a sim-
ilar fashion as the PacketSim configuration. These functions are
also exported from the DLL so that they can be called from yet
another DLL programmatically (C-callable).
2. The execution of these functions does not involve simulation
cycles. In other words, the execution of these functions does not
cause any clocks in the simulator to advance. They can be called at
the console command line or in a Watch function defined by IND