ATA interrupts confuse me ...
Posted: Fri Mar 21, 2003 4:46 am
this is more targetted at Tim, as i'm using his ATA driver as a source of inspiration for mine, but help is accepted from any Wizard of OS ...
So far, i figured out that each of the IDE controller (primary and secondary) had its own interrupt line: IRQ14 was for primary (based at I/O port 0x1F0) and IRQ15 was for secondary (based at I/O port 0x170).
but then why do i find
maybe i should consider updating my CVS copy ...
or is there a reason i'm missing ? ...
So far, i figured out that each of the IDE controller (primary and secondary) had its own interrupt line: IRQ14 was for primary (based at I/O port 0x1F0) and IRQ15 was for secondary (based at I/O port 0x170).
but then why do i find
Code: Select all
...
AtaReset(ctrl);
r = in(ctrl->base + REG_CYL_LO);
out(ctrl->base + REG_CYL_LO, ~r);
if (in(ctrl->base + REG_CYL_LO) == r)
{
wprintf(L"Controller at %x not found: %x\n", base, r);
/*return false;*/
}
DevRegisterIrq(AT_IRQ0, &ctrl->dev);
ArchMaskIrq(1 << AT_IRQ0, 0);
...
or is there a reason i'm missing ? ...