IDE DMA driver

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
solarius
Posts: 20
Joined: Mon Sep 27, 2010 4:45 am

Re: IDE DMA driver

Post 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).
hrniels
Member
Member
Posts: 53
Joined: Wed Nov 05, 2008 5:18 am
Location: Marburg, Germany

Re: IDE DMA driver

Post 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 :)
solarius
Posts: 20
Joined: Mon Sep 27, 2010 4:45 am

Re: IDE DMA driver

Post 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.
solarius
Posts: 20
Joined: Mon Sep 27, 2010 4:45 am

Re: IDE DMA driver

Post 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 ...
Gaidheal
Member
Member
Posts: 51
Joined: Mon Oct 04, 2010 6:23 pm

Re: IDE DMA driver

Post 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.
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: IDE DMA driver

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