Copyright © 2005 MontaVista Software, Inc.
This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
For more details see the file COPYING in the source distribution of Linux.
Table of Contents
RapidIO is a high speed switched fabric interconnect with features aimed at the embedded market. RapidIO provides support for memory-mapped I/O as well as message-based transactions over the switched fabric network. RapidIO has a standardized discovery mechanism not unlike the PCI bus standard that allows simple detection of devices in a network.
This documentation is provided for developers intending to support RapidIO on new architectures, write new drivers, or to understand the subsystem internals.
Table of Contents
Table of Contents
Drivers are provided a set of calls in order to interface with the subsystem to gather info on devices, request/map memory region resources, and manage mailboxes/doorbells.
rio_local_read_config_32 — Read 32 bits from local configuration space
int rio_local_read_config_32 ( | port, | |
| offset, | ||
data); |
struct rio_mport * | port; |
u32 | offset; |
u32 * | data; |
rio_local_write_config_32 — Write 32 bits to local configuration space
int rio_local_write_config_32 ( | port, | |
| offset, | ||
data); |
struct rio_mport * | port; |
u32 | offset; |
u32 | data; |
rio_local_read_config_16 — Read 16 bits from local configuration space
int rio_local_read_config_16 ( | port, | |
| offset, | ||
data); |
struct rio_mport * | port; |
u32 | offset; |
u16 * | data; |
rio_local_write_config_16 — Write 16 bits to local configuration space
int rio_local_write_config_16 ( | port, | |
| offset, | ||
data); |
struct rio_mport * | port; |
u32 | offset; |
u16 | data; |
rio_local_read_config_8 — Read 8 bits from local configuration space
int rio_local_read_config_8 ( | port, | |
| offset, | ||
data); |
struct rio_mport * | port; |
u32 | offset; |
u8 * | data; |
rio_local_write_config_8 — Write 8 bits to local configuration space
int rio_local_write_config_8 ( | port, | |
| offset, | ||
data); |
struct rio_mport * | port; |
u32 | offset; |
u8 | data; |
rio_read_config_32 — Read 32 bits from configuration space
int rio_read_config_32 ( | rdev, | |
| offset, | ||
data); |
struct rio_dev * | rdev; |
u32 | offset; |
u32 * | data; |
rio_write_config_32 — Write 32 bits to configuration space
int rio_write_config_32 ( | rdev, | |
| offset, | ||
data); |
struct rio_dev * | rdev; |
u32 | offset; |
u32 | data; |
rio_read_config_16 — Read 16 bits from configuration space
int rio_read_config_16 ( | rdev, | |
| offset, | ||
data); |
struct rio_dev * | rdev; |
u32 | offset; |
u16 * | data; |
rio_write_config_16 — Write 16 bits to configuration space
int rio_write_config_16 ( | rdev, | |
| offset, | ||
data); |
struct rio_dev * | rdev; |
u32 | offset; |
u16 | data; |
rio_read_config_8 — Read 8 bits from configuration space
int rio_read_config_8 ( | rdev, | |
| offset, | ||
data); |
struct rio_dev * | rdev; |
u32 | offset; |
u8 * | data; |
rio_write_config_8 — Write 8 bits to configuration space
int rio_write_config_8 ( | rdev, | |
| offset, | ||
data); |
struct rio_dev * | rdev; |
u32 | offset; |
u8 | data; |
rio_send_doorbell — Send a doorbell message to a device
int rio_send_doorbell ( | rdev, | |
data); |
struct rio_dev * | rdev; |
u16 | data; |
rio_init_mbox_res — Initialize a RIO mailbox resource
void rio_init_mbox_res ( | res, | |
| start, | ||
end); |
struct resource * | res; |
int | start; |
int | end; |
rio_init_dbell_res — Initialize a RIO doorbell resource
void rio_init_dbell_res ( | res, | |
| start, | ||
end); |
struct resource * | res; |
u16 | start; |
u16 | end; |
RIO_DEVICE — macro used to describe a specific RIO device
RIO_DEVICE ( | dev, | |
ven); |
| dev; |
| ven; |
rio_add_outb_message — Add RIO message to an outbound mailbox queue
int rio_add_outb_message ( | mport, | |
| rdev, | ||
| mbox, | ||
| buffer, | ||
len); |
struct rio_mport * | mport; |
struct rio_dev * | rdev; |
int | mbox; |
void * | buffer; |
size_t | len; |
rio_add_inb_buffer — Add buffer to an inbound mailbox queue
int rio_add_inb_buffer ( | mport, | |
| mbox, | ||
buffer); |
struct rio_mport * | mport; |
int | mbox; |
void * | buffer; |
rio_get_inb_message — Get A RIO message from an inbound mailbox queue
void * rio_get_inb_message ( | mport, | |
mbox); |
struct rio_mport * | mport; |
int | mbox; |
rio_name — Get the unique RIO device identifier
const char * rio_name ( | rdev); |
struct rio_dev * | rdev; |
rio_get_drvdata — Get RIO driver specific data
void * rio_get_drvdata ( | rdev); |
struct rio_dev * | rdev; |
rio_set_drvdata — Set RIO driver specific data
void rio_set_drvdata ( | rdev, | |
data); |
struct rio_dev * | rdev; |
void * | data; |
rio_dev_get — Increments the reference count of the RIO device structure
struct rio_dev * rio_dev_get ( | rdev); |
struct rio_dev * | rdev; |
rio_dev_put — Release a use of the RIO device structure
void rio_dev_put ( | rdev); |
struct rio_dev * | rdev; |
rio_register_driver — register a new RIO driver
int rio_register_driver ( | rdrv); |
struct rio_driver * | rdrv; |
rio_unregister_driver — unregister a RIO driver
void rio_unregister_driver ( | rdrv); |
struct rio_driver * | rdrv; |
rio_local_get_device_id — Get the base/extended device id for a port
u16 rio_local_get_device_id ( | port); |
struct rio_mport * | port; |
rio_request_inb_mbox — request inbound mailbox service
int rio_request_inb_mbox ( | mport, | |
| dev_id, | ||
| mbox, | ||
| entries, | ||
minb); |
struct rio_mport * | mport; |
void * | dev_id; |
int | mbox; |
int | entries; |
void (* | minb |
rio_release_inb_mbox — release inbound mailbox message service
int rio_release_inb_mbox ( | mport, | |
mbox); |
struct rio_mport * | mport; |
int | mbox; |
rio_request_outb_mbox — request outbound mailbox service
int rio_request_outb_mbox ( | mport, | |
| dev_id, | ||
| mbox, | ||
| entries, | ||
moutb); |
struct rio_mport * | mport; |
void * | dev_id; |
int | mbox; |
int | entries; |
void (* | moutb |
rio_release_outb_mbox — release outbound mailbox message service
int rio_release_outb_mbox ( | mport, | |
mbox); |
struct rio_mport * | mport; |
int | mbox; |
rio_request_inb_dbell — request inbound doorbell message service
int rio_request_inb_dbell ( | mport, | |
| dev_id, | ||
| start, | ||
| end, | ||
dinb); |
struct rio_mport * | mport; |
void * | dev_id; |
u16 | start; |
u16 | end; |
void (* | dinb |
rio_release_inb_dbell — release inbound doorbell message service
int rio_release_inb_dbell ( | mport, | |
| start, | ||
end); |
struct rio_mport * | mport; |
u16 | start; |
u16 | end; |
rio_request_outb_dbell — request outbound doorbell message range
struct resource * rio_request_outb_dbell ( | rdev, | |
| start, | ||
end); |
struct rio_dev * | rdev; |
u16 | start; |
u16 | end; |
rio_release_outb_dbell — release outbound doorbell message range
int rio_release_outb_dbell ( | rdev, | |
res); |
struct rio_dev * | rdev; |
struct resource * | res; |
rio_get_asm — Begin or continue searching for a RIO device by vid/did/asm_vid/asm_did
struct rio_dev * rio_get_asm ( | vid, | |
| did, | ||
| asm_vid, | ||
| asm_did, | ||
from); |
u16 | vid; |
u16 | did; |
u16 | asm_vid; |
u16 | asm_did; |
struct rio_dev * | from; |
vid
RIO vid to match or RIO_ANY_ID to match all vids
did
RIO did to match or RIO_ANY_ID to match all dids
asm_vid
RIO asm_vid to match or RIO_ANY_ID to match all asm_vids
asm_did
RIO asm_did to match or RIO_ANY_ID to match all asm_dids
from
Previous RIO device found in search, or NULL for new search
Iterates through the list of known RIO devices. If a RIO device is
found with a matching vid, did, asm_vid, asm_did, the reference
count to the device is incrememted and a pointer to its device
structure is returned. Otherwise, NULL is returned. A new search
is initiated by passing NULL to the from argument. Otherwise, if
from is not NULL, searches continue from next device on the global
list. The reference count for from is always decremented if it is
not NULL.
rio_get_device — Begin or continue searching for a RIO device by vid/did
struct rio_dev * rio_get_device ( | vid, | |
| did, | ||
from); |
u16 | vid; |
u16 | did; |
struct rio_dev * | from; |
vid
RIO vid to match or RIO_ANY_ID to match all vids
did
RIO did to match or RIO_ANY_ID to match all dids
from
Previous RIO device found in search, or NULL for new search
Iterates through the list of known RIO devices. If a RIO device is
found with a matching vid and did, the reference count to the
device is incrememted and a pointer to its device structure is returned.
Otherwise, NULL is returned. A new search is initiated by passing NULL
to the from argument. Otherwise, if from is not NULL, searches
continue from next device on the global list. The reference count for
from is always decremented if it is not NULL.
Table of Contents
This chapter contains the autogenerated documentation of the RapidIO subsystem.
struct rio_dev — RIO device info
struct rio_dev {
struct list_head global_list;
struct list_head net_list;
struct rio_net * net;
u16 did;
u16 vid;
u32 device_rev;
u16 asm_did;
u16 asm_vid;
u16 asm_rev;
u16 efptr;
u32 pef;
u32 swpinfo;
u32 src_ops;
u32 dst_ops;
u64 dma_mask;
struct rio_switch * rswitch;
struct rio_driver * driver;
struct device dev;
struct resource riores[RIO_MAX_DEV_RESOURCES];
u16 destid;
}; Node in list of all RIO devices
Node in list of RIO devices in a network
Network this device is a part of
Device ID
Vendor ID
Device revision
Assembly device ID
Assembly vendor ID
Assembly revision
Extended feature pointer
Processing element features
Switch port info
Source operation capabilities
Destination operation capabilities
Mask of bits of RIO address this device implements
Pointer to struct rio_switch if valid for this device
Driver claiming this device
Device model device
RIO resources this device owns
Network destination ID
struct rio_msg — RIO message event
struct rio_msg {
struct resource * res;
void (* mcback) (struct rio_mport * mport, void *dev_id, int mbox, int slot);
}; struct rio_dbell — RIO doorbell event
struct rio_dbell {
struct list_head node;
struct resource * res;
void (* dinb) (struct rio_mport *mport, void *dev_id, u16 src, u16 dst, u16 info);
void * dev_id;
}; struct rio_mport — RIO master port info
struct rio_mport {
struct list_head dbells;
struct list_head node;
struct list_head nnode;
struct resource iores;
struct resource riores[RIO_MAX_MPORT_RESOURCES];
struct rio_msg inb_msg[RIO_MAX_MBOX];
struct rio_msg outb_msg[RIO_MAX_MBOX];
int host_deviceid;
struct rio_ops * ops;
unsigned char id;
unsigned char index;
unsigned int sys_size;
enum rio_phy_type phy_type;
unsigned char name[40];
void * priv;
}; List of doorbell events
Node in global list of master ports
Node in network list of master ports
I/O mem resource that this master port interface owns
RIO resources that this master port interfaces owns
RIO inbound message event descriptors
RIO outbound message event descriptors
Host device ID associated with this master port
configuration space functions
Port ID, unique among all ports
Port index, unique among all port interfaces of the same type
RapidIO common transport system size
RapidIO phy type
Port name string
Master port private data
struct rio_net — RIO network info
struct rio_net {
struct list_head node;
struct list_head devices;
struct list_head mports;
struct rio_mport * hport;
unsigned char id;
}; struct rio_switch — RIO switch info
struct rio_switch {
struct list_head node;
u16 switchid;
u16 hopcount;
u16 destid;
u8 * route_table;
int (* add_entry) (struct rio_mport * mport, u16 destid, u8 hopcount,u16 table, u16 route_destid, u8 route_port);
int (* get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount,u16 table, u16 route_destid, u8 * route_port);
}; Node in global list of switches
Switch ID that is unique across a network
Hopcount to this switch
Associated destid in the path
Copy of switch routing table
Callback for switch-specific route add function
Callback for switch-specific route get function
struct rio_ops — Low-level RIO configuration space operations
struct rio_ops {
int (* lcread) (struct rio_mport *mport, int index, u32 offset, int len,u32 *data);
int (* lcwrite) (struct rio_mport *mport, int index, u32 offset, int len,u32 data);
int (* cread) (struct rio_mport *mport, int index, u16 destid,u8 hopcount, u32 offset, int len, u32 *data);
int (* cwrite) (struct rio_mport *mport, int index, u16 destid,u8 hopcount, u32 offset, int len, u32 data);
int (* dsend) (struct rio_mport *mport, int index, u16 destid, u16 data);
}; Callback to perform local (master port) read of config space.
Callback to perform local (master port) write of config space.
Callback to perform network read of config space.
Callback to perform network write of config space.
Callback to send a doorbell message.
struct rio_driver — RIO driver info
struct rio_driver {
struct list_head node;
char * name;
const struct rio_device_id * id_table;
int (* probe) (struct rio_dev * dev, const struct rio_device_id * id);
void (* remove) (struct rio_dev * dev);
int (* suspend) (struct rio_dev * dev, u32 state);
int (* resume) (struct rio_dev * dev);
int (* enable_wake) (struct rio_dev * dev, u32 state, int enable);
struct device_driver driver;
}; struct rio_device_id — RIO device identifier
struct rio_device_id {
u16 did;
u16 vid;
u16 asm_did;
u16 asm_vid;
}; struct rio_route_ops — Per-switch route operations
struct rio_route_ops {
u16 vid;
u16 did;
int (* add_hook) (struct rio_mport * mport, u16 destid, u8 hopcount,u16 table, u16 route_destid, u8 route_port);
int (* get_hook) (struct rio_mport * mport, u16 destid, u8 hopcount,u16 table, u16 route_destid, u8 * route_port);
}; rio_get_device_id — Get the base/extended device id for a device
u16 rio_get_device_id ( | port, | |
| destid, | ||
hopcount); |
struct rio_mport * | port; |
u16 | destid; |
u8 | hopcount; |
rio_set_device_id — Set the base/extended device id for a device
void rio_set_device_id ( | port, | |
| destid, | ||
| hopcount, | ||
did); |
struct rio_mport * | port; |
u16 | destid; |
u8 | hopcount; |
u16 | did; |
rio_local_set_device_id — Set the base/extended device id for a port
void rio_local_set_device_id ( | port, | |
did); |
struct rio_mport * | port; |
u16 | did; |
rio_clear_locks — Release all host locks and signal enumeration complete
int rio_clear_locks ( | port); |
struct rio_mport * | port; |
rio_enum_host — Set host lock and initialize host destination ID
int rio_enum_host ( | port); |
struct rio_mport * | port; |
rio_device_has_destid — Test if a device contains a destination ID register
int rio_device_has_destid ( | port, | |
| src_ops, | ||
dst_ops); |
struct rio_mport * | port; |
int | src_ops; |
int | dst_ops; |
rio_release_dev — Frees a RIO device struct
void rio_release_dev ( | dev); |
struct device * | dev; |
rio_is_switch — Tests if a RIO device has switch capabilities
int rio_is_switch ( | rdev); |
struct rio_dev * | rdev; |
rio_route_set_ops — Sets routing operations for a particular vendor switch
void rio_route_set_ops ( | rdev); |
struct rio_dev * | rdev; |
rio_add_device — Adds a RIO device to the device model
int rio_add_device ( | rdev); |
struct rio_dev * | rdev; |
rio_setup_device — Allocates and sets up a RIO device
struct rio_dev * rio_setup_device ( | net, | |
| port, | ||
| destid, | ||
| hopcount, | ||
do_enum); |
struct rio_net * | net; |
struct rio_mport * | port; |
u16 | destid; |
u8 | hopcount; |
int | do_enum; |
netRIO network
portMaster port to send transactions
destidCurrent destination ID
hopcountCurrent hopcount
do_enumEnumeration/Discovery mode flag
Allocates a RIO device and configures fields based on configuration space contents. If device has a destination ID register, a destination ID is either assigned in enumeration mode or read from configuration space in discovery mode. If the device has switch capabilities, then a switch is allocated and configured appropriately. Returns a pointer to a RIO device on success or NULL on failure.
rio_sport_is_active — Tests if a switch port has an active connection.
int rio_sport_is_active ( | port, | |
| destid, | ||
| hopcount, | ||
sport); |
struct rio_mport * | port; |
u16 | destid; |
u8 | hopcount; |
int | sport; |
rio_route_add_entry — Add a route entry to a switch routing table
int rio_route_add_entry ( | mport, | |
| rswitch, | ||
| table, | ||
| route_destid, | ||
route_port); |
struct rio_mport * | mport; |
struct rio_switch * | rswitch; |
u16 | table; |
u16 | route_destid; |
u8 | route_port; |
mportMaster port to send transaction
rswitchSwitch device
tableRouting table ID
route_destidDestination ID to be routed
route_portPort number to be routed
Calls the switch specific add_entry method to add a route entry
on a switch. The route table can be specified using the table
argument if a switch has per port routing tables or the normal
use is to specific all tables (or the global table) by passing
RIO_GLOBAL_TABLE in table. Returns 0 on success or -EINVAL
on failure.
rio_route_get_entry — Read a route entry in a switch routing table
int rio_route_get_entry ( | mport, | |
| rswitch, | ||
| table, | ||
| route_destid, | ||
route_port); |
struct rio_mport * | mport; |
struct rio_switch * | rswitch; |
u16 | table; |
u16 | route_destid; |
u8 * | route_port; |
mportMaster port to send transaction
rswitchSwitch device
tableRouting table ID
route_destidDestination ID to be routed
route_portPointer to read port number into
Calls the switch specific get_entry method to read a route entry
in a switch. The route table can be specified using the table
argument if a switch has per port routing tables or the normal
use is to specific all tables (or the global table) by passing
RIO_GLOBAL_TABLE in table. Returns 0 on success or -EINVAL
on failure.
rio_get_host_deviceid_lock — Reads the Host Device ID Lock CSR on a device
u16 rio_get_host_deviceid_lock ( | port, | |
hopcount); |
struct rio_mport * | port; |
u8 | hopcount; |
rio_get_swpinfo_inport — Gets the ingress port number
u8 rio_get_swpinfo_inport ( | mport, | |
| destid, | ||
hopcount); |
struct rio_mport * | mport; |
u16 | destid; |
u8 | hopcount; |
rio_get_swpinfo_tports — Gets total number of ports on the switch
u8 rio_get_swpinfo_tports ( | mport, | |
| destid, | ||
hopcount); |
struct rio_mport * | mport; |
u16 | destid; |
u8 | hopcount; |
rio_net_add_mport — Add a master port to a RIO network
void rio_net_add_mport ( | net, | |
port); |
struct rio_net * | net; |
struct rio_mport * | port; |
rio_enum_peer — Recursively enumerate a RIO network through a master port
int rio_enum_peer ( | net, | |
| port, | ||
hopcount); |
struct rio_net * | net; |
struct rio_mport * | port; |
u8 | hopcount; |
rio_enum_complete — Tests if enumeration of a network is complete
int rio_enum_complete ( | port); |
struct rio_mport * | port; |
rio_disc_peer — Recursively discovers a RIO network through a master port
int rio_disc_peer ( | net, | |
| port, | ||
| destid, | ||
hopcount); |
struct rio_net * | net; |
struct rio_mport * | port; |
u16 | destid; |
u8 | hopcount; |
rio_mport_is_active — Tests if master port link is active
int rio_mport_is_active ( | port); |
struct rio_mport * | port; |
rio_alloc_net — Allocate and configure a new RIO network
struct rio_net * rio_alloc_net ( | port); |
struct rio_mport * | port; |
rio_update_route_tables — Updates route tables in switches
void rio_update_route_tables ( | port); |
struct rio_mport * | port; |
rio_enum_mport — Start enumeration through a master port
int rio_enum_mport ( | mport); |
struct rio_mport * | mport; |
rio_build_route_tables — Generate route tables from switch route entries
void rio_build_route_tables ( | void); |
| void; |
rio_enum_timeout — Signal that enumeration timed out
void rio_enum_timeout ( | data); |
unsigned long | data; |
rio_setup_inb_dbell — bind inbound doorbell callback
int rio_setup_inb_dbell ( | mport, | |
| dev_id, | ||
| res, | ||
dinb); |
struct rio_mport * | mport; |
void * | dev_id; |
struct resource * | res; |
void (* | dinb |
rio_mport_get_feature — query for devices' extended features
u32 rio_mport_get_feature ( | port, | |
| local, | ||
| destid, | ||
| hopcount, | ||
ftr); |
struct rio_mport * | port; |
int | local; |
u16 | destid; |
u8 | hopcount; |
int | ftr; |
portMaster port to issue transaction
localIndicate a local master port or remote device access
destidDestination ID of the device
hopcountNumber of switch hops to the device
ftrExtended feature code
Tell if a device supports a given RapidIO capability.
Returns the offset of the requested extended feature
block within the device's RIO configuration space or
0 in case the device does not support it. Possible
values for ftr:
RIO_EFB_PAR_EP_ID LP/LVDS EP Devices
RIO_EFB_PAR_EP_REC_ID LP/LVDS EP Recovery Devices
RIO_EFB_PAR_EP_FREE_ID LP/LVDS EP Free Devices
RIO_EFB_SER_EP_ID LP/Serial EP Devices
RIO_EFB_SER_EP_REC_ID LP/Serial EP Recovery Devices
RIO_EFB_SER_EP_FREE_ID LP/Serial EP Free Devices
RIO_LOP_READ — Generate rio_local_read_config_* functions
RIO_LOP_READ ( | size, | |
| type, | ||
len); |
| size; |
| type; |
| len; |
RIO_LOP_WRITE — Generate rio_local_write_config_* functions
RIO_LOP_WRITE ( | size, | |
| type, | ||
len); |
| size; |
| type; |
| len; |
RIO_OP_READ — Generate rio_mport_read_config_* functions
RIO_OP_READ ( | size, | |
| type, | ||
len); |
| size; |
| type; |
| len; |
rio_match_device — Tell if a RIO device has a matching RIO device id structure
const struct rio_device_id * rio_match_device ( | id, | |
rdev); |
const struct rio_device_id * | id; |
const struct rio_dev * | rdev; |
rio_device_probe — Tell if a RIO device structure has a matching RIO device id structure
int rio_device_probe ( | dev); |
struct device * | dev; |
rio_device_remove — Remove a RIO device from the system
int rio_device_remove ( | dev); |
struct device * | dev; |
rio_match_bus — Tell if a RIO device structure has a matching RIO driver device id structure
int rio_match_bus ( | dev, | |
drv); |
struct device * | dev; |
struct device_driver * | drv; |
rio_hw_add_outb_message — Add message to the MPC85xx outbound message queue
int rio_hw_add_outb_message ( | mport, | |
| rdev, | ||
| mbox, | ||
| buffer, | ||
len); |
struct rio_mport * | mport; |
struct rio_dev * | rdev; |
int | mbox; |
void * | buffer; |
size_t | len; |
rio_hw_add_inb_buffer — Add buffer to the MPC85xx inbound message queue
int rio_hw_add_inb_buffer ( | mport, | |
| mbox, | ||
buf); |
struct rio_mport * | mport; |
int | mbox; |
void * | buf; |
rio_hw_get_inb_message — Fetch inbound message from the MPC85xx message unit
void * rio_hw_get_inb_message ( | mport, | |
mbox); |
struct rio_mport * | mport; |
int | mbox; |
fsl_rio_doorbell_send — Send a MPC85xx doorbell message
int fsl_rio_doorbell_send ( | mport, | |
| index, | ||
| destid, | ||
data); |
struct rio_mport * | mport; |
int | index; |
u16 | destid; |
u16 | data; |
fsl_local_config_read — Generate a MPC85xx local config space read
int fsl_local_config_read ( | mport, | |
| index, | ||
| offset, | ||
| len, | ||
data); |
struct rio_mport * | mport; |
int | index; |
u32 | offset; |
int | len; |
u32 * | data; |
fsl_local_config_write — Generate a MPC85xx local config space write
int fsl_local_config_write ( | mport, | |
| index, | ||
| offset, | ||
| len, | ||
data); |
struct rio_mport * | mport; |
int | index; |
u32 | offset; |
int | len; |
u32 | data; |
fsl_rio_config_read — Generate a MPC85xx read maintenance transaction
int fsl_rio_config_read ( | mport, | |
| index, | ||
| destid, | ||
| hopcount, | ||
| offset, | ||
| len, | ||
val); |
struct rio_mport * | mport; |
int | index; |
u16 | destid; |
u8 | hopcount; |
u32 | offset; |
int | len; |
u32 * | val; |
fsl_rio_config_write — Generate a MPC85xx write maintenance transaction
int fsl_rio_config_write ( | mport, | |
| index, | ||
| destid, | ||
| hopcount, | ||
| offset, | ||
| len, | ||
val); |
struct rio_mport * | mport; |
int | index; |
u16 | destid; |
u8 | hopcount; |
u32 | offset; |
int | len; |
u32 | val; |
fsl_rio_tx_handler — MPC85xx outbound message interrupt handler
irqreturn_t fsl_rio_tx_handler ( | irq, | |
dev_instance); |
int | irq; |
void * | dev_instance; |
rio_open_outb_mbox — Initialize MPC85xx outbound mailbox
int rio_open_outb_mbox ( | mport, | |
| dev_id, | ||
| mbox, | ||
entries); |
struct rio_mport * | mport; |
void * | dev_id; |
int | mbox; |
int | entries; |
rio_close_outb_mbox — Shut down MPC85xx outbound mailbox
void rio_close_outb_mbox ( | mport, | |
mbox); |
struct rio_mport * | mport; |
int | mbox; |
fsl_rio_rx_handler — MPC85xx inbound message interrupt handler
irqreturn_t fsl_rio_rx_handler ( | irq, | |
dev_instance); |
int | irq; |
void * | dev_instance; |
rio_open_inb_mbox — Initialize MPC85xx inbound mailbox
int rio_open_inb_mbox ( | mport, | |
| dev_id, | ||
| mbox, | ||
entries); |
struct rio_mport * | mport; |
void * | dev_id; |
int | mbox; |
int | entries; |
rio_close_inb_mbox — Shut down MPC85xx inbound mailbox
void rio_close_inb_mbox ( | mport, | |
mbox); |
struct rio_mport * | mport; |
int | mbox; |
fsl_rio_dbell_handler — MPC85xx doorbell interrupt handler
irqreturn_t fsl_rio_dbell_handler ( | irq, | |
dev_instance); |
int | irq; |
void * | dev_instance; |
fsl_rio_doorbell_init — MPC85xx doorbell interface init
int fsl_rio_doorbell_init ( | mport); |
struct rio_mport * | mport; |
The following people have contributed to the RapidIO subsystem directly or indirectly:
Matt Porter<mporter@kernel.crashing.org>
Randy Vinson<rvinson@mvista.com>
Dan Malek<dan@embeddedalley.com>
The following people have contributed to this document:
Matt Porter<mporter@kernel.crashing.org>