Bastiaan Nijkamp <bastiaan.nijk...@gmail.com> wrote:

>> 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. 
>

In this case I would expect to see ID=1 assigned to the endpoint. I will take a 
look based on your use scenario. Let me know if you find the source of problem 
before I get back to you about this issue. 

>> 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? 

One of my recent patches handles the MASTER bit. It is in -mm tree now.

In the case that you have seen, the agent does not enter endless loop - it just 
has request that cannot leave the SRIO controller. As result that request 
cannot be timed out and hangs the processor (no machine check).

Alex.
  


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to