-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ioapic #1
Ioapic #1
Conversation
void ioapic_int_mask(int irq); | ||
void ioapic_int_unmask(int irq); | ||
// void ioapic_int_mask(int irq); | ||
// void ioapic_int_unmask(int irq); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should remove this. And make the functions in ioapic.c "static inline".
@@ -163,6 +163,7 @@ kmain(struct multiboot *mboot, u32_t mboot_magic, u32_t esp) | |||
kern_boot_comp(INIT_CORE); | |||
lapic_init(); | |||
hpet_init(); | |||
chal_irq_enable(HW_SERIAL, 0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should really be a function in serial.c. Like "serial_late_init()" or "serial_irq_init()" something like that.
* So we will configure the logical id of cores with id larger than 7 | ||
* to 0 which means we should find out a way(x2APIC) to fix this when we | ||
* have more than 8 cores in ioapic. | ||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See if you can create a ISSUE on mainline.
Thanks, I'll pull this. Just got a couple of minor comments, you can fix them when you get to it, no rush! I'm so happy the original IOAPIC logic didn't have bugs!! :) |
Implement read only filesystem and tar parsing
Summary of this Pull Request (PR)
Since xAPIC only support 8 bits logical destination bitmap, we will configure the the logical lapic ID of each cores to it's cpuid when cpuid is smaller then 8, to 0 when cpuid is larger or equal to 8.
a core will be added to an irq's bitmap when we try to enable the irq on that core. and we will remove the core from an irq's bitmap when we try to disable the irq on that core. The irq will be masked if we remove all cores from its bitmap. IMPORTANT: the chal_irq_XXX is not thread-safe which means we should not try to disable or enable the same irq on different core concurrently.
change hw_asnd_caps to 2d array.
Intent for your PR
Choose one (Mandatory):
Reviewers (Mandatory):
@phanikishoreg
Code Quality
As part of this pull request, I've considered the following:
Style:
Code Craftsmanship:
Testing
I've tested the code using the following test programs (provide list here):