On Sun, Jan 02, 2022 at 07:17:35AM -0300, Crystal Kolipe wrote:
> On Sun, Dec 26, 2021 at 07:00:31PM +0100, Patrick Wildt wrote:
> > So you might want to find out why sxirsb(4) isn't working well.
> 
> The errors I'm seeing are:
> 
> RD8 failed for run-time address 0x2d
> WR8 failed for run-time address 0x2d
> 
> The only code paths that can generate these error messages are in 
> fdt/sxirsb.c, rsb_read_1 and rsb_write_1, when the call to sxirsb_do_trans 
> returns either EIO or ETIMEDOUT.
> 
> After adding debug code, it seems that the value of 'stat' returned from 
> macro HREAD4 is not RSB_STAT_TRANS_OVER as expected, so sxirsb_do_trans is 
> returning EIO.
> 
> The value of 'stat' depends on whether it's a read or write operation, but 
> it's always the same:
> 
> READ  0x103
> WRITE 0x003
> 
> Whereas the code expects to see 0x001...

So as I understand it, this value 'stat' is the value returned from the status 
register of the RSB controller, which according to documentation is supposed to 
include an error code in bits 8 - 23.

But in this case, at least for writes, all of the high bits are set to zero.

I notice that stat is declared as a uint16_t, so presumably the contents of 
bits 16 - 23 from the status register are being lost.

Reply via email to