Local APIC and MSI

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.
Post Reply
watermirror
Member
Member
Posts: 25
Joined: Tue Nov 05, 2013 4:06 am

Local APIC and MSI

Post by watermirror »

Hi, can I disable ALL MSI through Local APIC?How?
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Local APIC and MSI

Post by Brendan »

Hi,
watermirror wrote:Hi, can I disable ALL MSI through Local APIC?How?
No; the only interrupts you can disable in the local APIC are those that you enable in the local APIC (local APIC timer, performance monitoring, thermal monitoring).

If you've enabled MSI for a device (via. the device's PCI configuration space), then you'd need to disable MSI for the device using its PCI configuration space. If you've enabled an IO APIC input's IRQ (in the IO APIC), then you'd need to disable the IRQ in the IO APIC.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
watermirror
Member
Member
Posts: 25
Joined: Tue Nov 05, 2013 4:06 am

Re: Local APIC and MSI

Post by watermirror »

If you've enabled MSI for a device (via. the device's PCI configuration space), then you'd need to disable MSI for the device using its PCI configuration space. If you've enabled an IO APIC input's IRQ (in the IO APIC), then you'd need to disable the IRQ in the IO APIC.
Hi, is it possiable to set the local APIC not accept any MSI? such as mask some vector or something?
User avatar
thepowersgang
Member
Member
Posts: 734
Joined: Tue Dec 25, 2007 6:03 am
Libera.chat IRC: thePowersGang
Location: Perth, Western Australia
Contact:

Re: Local APIC and MSI

Post by thepowersgang »

As Brendan said, no, you can't. The LAPIC doesn't support masking off MSIs. If you don't want any interrupts, you can use 'CLI' to mask any interrupt generation.
Kernel Development, It's the brain surgery of programming.
Acess2 OS (c) | Tifflin OS (rust) | mrustc - Rust compiler
Currently Working on: mrustc
Post Reply