Page 2 of 2

Re: IDE DMA driver

Posted: Thu Oct 07, 2010 1:53 pm
by solarius
Thanks. With some modification I get the same bochs output. But I have somme differncies: I have not been able to display the DMA commands into bochs output and I don't have the

Code: Select all

set_irq_level(): INTIN14: level=0
. Maybe the problem comes from here.

I suspect others problems too. Did you do something specific to configure the disk ? or configure the controller pci space ? Personnaly, I just read the pci configuration space, then I try to detect - for each controller - the two disks. Finally I set an interrupt handler and I unmask the IRQ 14 and 2 (slave PIC).

Re: IDE DMA driver

Posted: Thu Oct 07, 2010 2:31 pm
by hrniels
solarius wrote:Thanks. With some modification I get the same bochs output. But I have somme differncies: I have not been able to display the DMA commands into bochs output and I don't have the

Code: Select all

set_irq_level(): INTIN14: level=0
. Maybe the problem comes from here.
Probably you don't have enabled the debug-output:

Code: Select all

debug: action=report
solarius wrote:I suspect others problems too. Did you do something specific to configure the disk ? or configure the controller pci space ? Personnaly, I just read the pci configuration space, then I try to detect - for each controller - the two disks. Finally I set an interrupt handler and I unmask the IRQ 14 and 2 (slave PIC).
No, I don't perform any configuration at all.
But I guess, you will get a hint on whats wrong by enabling the debugging-output of bochs :)

Re: IDE DMA driver

Posted: Fri Oct 08, 2010 1:40 pm
by solarius
The most strange is that I never raise the IRQ 14, in the bochs results I always have

Code: Select all

02723647765d[IOAP ] IOAPIC: servicing
02723647765d[IOAP ] service_ioapic(): INTIN0 is masked
02723647765d[IOAP ] service_ioapic(): INTIN1 is masked
02723647765d[IOAP ] service_ioapic(): INTIN14 is masked
02723867465d[IOAP ] set_irq_level(): INTIN0: level=0
02723867465d[IOAP ] set_irq_level(): INTIN0: level=1
But it never talks from IRQ 14. It confirmes that I never raise this interrupt, but I don't understand why.

Re: IDE DMA driver

Posted: Sat Oct 09, 2010 8:49 am
by solarius
Afair, if INT14 is masked, it will never be raised?
I think "masked" means it can occur because INT0 is masked to and I get clock ticks, so ...

Re: IDE DMA driver

Posted: Sat Oct 09, 2010 9:07 am
by Gaidheal
INT 0 is on the NMI, isn't it? Pretty sure you can't, by definition, really mask that. You certainly can mask 14.

Re: IDE DMA driver

Posted: Sat Oct 09, 2010 9:22 am
by Owen
Gaidheal wrote:INT 0 is on the NMI, isn't it? Pretty sure you can't, by definition, really mask that. You certainly can mask 14.
The NMI is the NMI. It is routed differently (For systems using the legacy PIC anyway). It is generally either wired to the BSP's LINT0/1 pin, or to an IOAPIC pin.