Thread (15 messages) flat view 15 messages, 5 authors, 2010-10-13

Re: Serial RapidIO Maintaintance read causes lock up

From: Bastiaan Nijkamp <hidden>
Date: 2010-10-13 15:06:02

How the host ID is set on your host board?
Normally rio_enum_host() should increment next_destid in your case.

The hostID is set to 0x0 with the riohdid parameter as boot argument.
Make sure that you have the MASTER bit is set in agent's GCCSR register
(0xC_013C).
If your board uses HW config switches to set host/agent mode this bit will
be 0 for agent.
For quick test you may keep both boards in the host mode - the current RIO
implementation relies on "riohdid=" command line parameter instead of HOST
bit.

This seems to have done the trick :-) However, i wonder, doesn't it make
more sense to make the driver check this setting and correcting it or giving
an error instead of entering a endless loop?

Thank you for helping out, it is very much appreciated.

Bastiaan.


2010/10/13 Bounine, Alexandre [off-list ref]
Bastiaan Nijkamp wrote:
quoted
Has the driver ever been tested/used without a switch attached? Because
when the host >(which has ID 0x0) enumerates the other board it also assigns
ID 0x0 to the agent, it seems >that the agent should have been assigned 0x1
as ID.

How the host ID is set on your host board?
Normally rio_enum_host() should increment next_destid in your case.
quoted
Another thing is that the agent is now hanging on the discovery process.
Make sure that you have the MASTER bit is set in agent's GCCSR register
(0xC_013C).
If your board uses HW config switches to set host/agent mode this bit will
be 0 for agent.
For quick test you may keep both boards in the host mode - the current RIO
implementation relies on "riohdid=" command line parameter instead of HOST
bit.


Alex.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help