Code: Select all
__outl(CSR_BAR + E_CSR_SCB_GEN_PTR, 0x00000000);
__outb(CSR_BAR + E_CSR_SCB_COM_WORD, 0x60);
The first sequence writes the correct value to what appears to be the correct register, but then I read the register every tenth of a millisecond or so, and it's still 0x0060 instead of 0x0000
If I don't wait, or do that command at all, and write the command for the RU down to the device, (0x0006), the interrupt is generated (and was supposed to happen for that first write as well). But from what I can tell, the RU is now in suspended mode and I get a different result when I read back the byte I just wrote (0x0004 vs. 0x0006)
I know that I am writing down to the correct locations, because when I use PORT software reset command, it works just fine.