#
7a3c48b4 |
|
03-Sep-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/apic: Add missing include. This only is needed on certain build configurations for some reason. Thanks to augiedoggie for reporting.
|
#
401fb209 |
|
04-Feb-2018 |
Jérôme Duval <jerome.duval@gmail.com> |
kernel: use x2apic on hypervisor, or if already enabled. * this can be disabled per safe mode setting.
|
#
cf21c40b |
|
22-Dec-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: Fix style Thanks Axel.
|
#
e3d001ff |
|
19-Dec-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: Implement multicast ICIs
|
#
0edcbd27 |
|
26-Aug-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
apic: serialize writes to x2apic MSR... as required by the specifications (it isn't needed with memory mapped i/o).
|
#
78777340 |
|
26-Aug-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
Added x2APIC support. * Mostly useful for virtualization at the moment. Works in QEmu. * Can be enabled by safemode settings/menu. * Please note that x2APIC normally requires use of VT-d interrupt remapping feature on real hardware, which we don't support yet.
|
#
c1517626 |
|
06-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Compile APIC and timer code for x86_64, and create an area for the IDT.
|
#
62d36f98 |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Removed the addr_t conversion operators from FixedWidthPointer which makes comparison against NULL work properly.
|
#
d8efc6ca |
|
21-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Changes to kernel_args to make it identical for x86 and x86_64. * Added a FixedWidthPointer template class which uses 64-bit storage to hold a pointer. This is used in place of raw pointers in kernel_args. * Added __attribute__((packed)) to kernel_args and all structures contained within it. This is necessary due to different alignment behaviour for 32-bit and 64-bit compilation with GCC. * With these changes, kernel_args will now come out the same size for both the x86_64 kernel and the loader, excluding the preloaded_image structure which has not yet been changed. * Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.
|
#
a56cbb2a |
|
11-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
* When initializing MSI support, don't assume a single 24 entry IO-APIC. Instead mark the ISA interrupts as unusable and then use ioapic_is_interrupt_available to determine if that vector is possibly taken by an IO-APIC. If IO-APICs are not used, this will simply always return false, leaving all vectors free for MSI use. * The msi_init() now has to be done after a potential IO-APIC init, so it is now done after ioapic_init() instead of inside apic_init(). * Add apic_disable_local_ints() to clear the local ints on the local APIC once we are in APIC mode (i.e. the IO-APIC is set up and we don't need the external routing anymore). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41445 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33fbe254 |
|
13-Apr-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* Add code to allocate and free interrupt vectors for message signaled interrupts (MSI). * Add the remaining IDT entries and redirection functions in the interrupt code. * Make the PIC end_of_interrupt() return a result to indicate whether the vector was handled by this PIC. If it isn't we now issue a apic_end_of_interrupt() in the assumption of apic local interrupt, MSI or IPI. This also removes the need for the gUsingIOAPIC global and doing manual apic_end_of_interrupt() calls in the SMP and timer code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36221 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
655f3b41 |
|
11-Apr-2010 |
Michael Lotz <mmlr@mlotz.ch> |
Seperate the generic (local) APIC stuff into it's own file and use it from the other places where previously the same functionality was duplicated. Also seperated the header which was originally arch_smp.h into apic.h and arch_smp.h again as some of it is MP and not actually APIC. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36182 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf21c40b50b50e4b8dfc8a5c33555be60a3f33e4 |
|
22-Dec-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: Fix style Thanks Axel.
|
#
e3d001ff02e087a2392c2c46a7ac2d78d3bc12f6 |
|
19-Dec-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: Implement multicast ICIs
|
#
0edcbd2754bbde71864f6ec2578a05084d4dc23d |
|
26-Aug-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
apic: serialize writes to x2apic MSR... as required by the specifications (it isn't needed with memory mapped i/o).
|
#
787773400ce9ee4ce71d9255e1be8fac66584615 |
|
26-Aug-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
Added x2APIC support. * Mostly useful for virtualization at the moment. Works in QEmu. * Can be enabled by safemode settings/menu. * Please note that x2APIC normally requires use of VT-d interrupt remapping feature on real hardware, which we don't support yet.
|
#
c15176264b7fa5b4e20b4692d30ed9403fd9c71b |
|
06-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Compile APIC and timer code for x86_64, and create an area for the IDT.
|
#
62d36f98331067e472188f6c020c2ccd808f48cf |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Removed the addr_t conversion operators from FixedWidthPointer which makes comparison against NULL work properly.
|
#
d8efc6caf6babe278c48e8aa3277376fb68ff455 |
|
21-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Changes to kernel_args to make it identical for x86 and x86_64. * Added a FixedWidthPointer template class which uses 64-bit storage to hold a pointer. This is used in place of raw pointers in kernel_args. * Added __attribute__((packed)) to kernel_args and all structures contained within it. This is necessary due to different alignment behaviour for 32-bit and 64-bit compilation with GCC. * With these changes, kernel_args will now come out the same size for both the x86_64 kernel and the loader, excluding the preloaded_image structure which has not yet been changed. * Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.
|
#
a56cbb2afbf4dbfb4a07dfdd95f10637a195a053 |
|
11-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
* When initializing MSI support, don't assume a single 24 entry IO-APIC. Instead mark the ISA interrupts as unusable and then use ioapic_is_interrupt_available to determine if that vector is possibly taken by an IO-APIC. If IO-APICs are not used, this will simply always return false, leaving all vectors free for MSI use. * The msi_init() now has to be done after a potential IO-APIC init, so it is now done after ioapic_init() instead of inside apic_init(). * Add apic_disable_local_ints() to clear the local ints on the local APIC once we are in APIC mode (i.e. the IO-APIC is set up and we don't need the external routing anymore). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41445 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33fbe254964dff2c8b8a3e1522bbefff14d51ea1 |
|
13-Apr-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* Add code to allocate and free interrupt vectors for message signaled interrupts (MSI). * Add the remaining IDT entries and redirection functions in the interrupt code. * Make the PIC end_of_interrupt() return a result to indicate whether the vector was handled by this PIC. If it isn't we now issue a apic_end_of_interrupt() in the assumption of apic local interrupt, MSI or IPI. This also removes the need for the gUsingIOAPIC global and doing manual apic_end_of_interrupt() calls in the SMP and timer code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36221 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
655f3b4161bbc8874ffae4afa337317c9a1d26f1 |
|
11-Apr-2010 |
Michael Lotz <mmlr@mlotz.ch> |
Seperate the generic (local) APIC stuff into it's own file and use it from the other places where previously the same functionality was duplicated. Also seperated the header which was originally arch_smp.h into apic.h and arch_smp.h again as some of it is MP and not actually APIC. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36182 a95241bf-73f2-0310-859d-f6bbb57e9c96
|