Re: RapidIO - general questions
From: Li Yang <hidden>
Date: 2009-05-13 10:57:38
Also in:
lkml
cc'ed LKML On Tue, May 12, 2009 at 5:17 PM, Jan Neskudla [off-list ref] wr= ote:
Hallo we'd likes to use a RapidIO as a general communication bus on our new product, and so I have some questions about general design of Linux RIO subsystem. I did not find any better mailing list for RapidIO discussion. [1] - we'd like to implement following features =C2=A0 =C2=A0* Hot-plug (hot-insert/hot-remove) of devices =C2=A0 =C2=A0* Error handling (port-write packets - configuration, handli=
ng of
them) =C2=A0 =C2=A0* Static ID configuration based on port numbers =C2=A0 =C2=A0* Aux driver - basic driver, for sending messages over diffe=
rent
mboxes, handling ranges of doorbells =C2=A0 =C2=A0Is it here anyone who is working on any improvement, or anyo=
ne who
knows the development plans for RapidIO subsystem?
AFAIK, there is no one currently working on these features for Linux. It will be good if you can add these useful features.
[2] - I have a following problem with a current implementation of loading drivers. The driver probe-function call is based on comparison of VendorID (VID) and DeviceID (DID) only. Thus if I have 3 devices with same DID and VID connected to the same network (bus), the driver is loaded 3times, instead only once for the actual device Master port.
This should be the correct way as you actually have 3 instances of the devi= ce.
Rionet driver solved this by enabling to call initialization function just once, and it expect that this is the Master port.
Rionet is kind of special. It's not working like a simple device driver, but more like a customized protocol stack to support multiple ethernet over rio links.
Is it this correct behavior =C2=A0? It looks to me that RapidIO is handle=
d
like a local bus (like PCI)
This is correct behavior. All of them are using Linux device/driver infrastructure, but rionet is a special device. - Leo