An article on the osdev wiki states in the code comments, “Section 11.4.1 of the Intel SDM Volume 3 recommends that the base address page be displayed as strongly uncacheable for correct APIC operation”.
However, I couldn't find section 11.4.1 and I didn't find it in the neighboring sections either.
I would like to know if I should disable caching only for base address mapping or for all other ACPI related addresses?
APIC and uncacheable mapping
APIC and uncacheable mapping
Last edited by mrjbom on Mon Dec 09, 2024 2:40 pm, edited 1 time in total.
Re: ACPI and uncacheable mapping
The Intel manuals have varied over the years, so chapters and sections may vary. In the edition that I am looking at it’s section 10.4.1. It’s always possible that there’s a typo in that comment.
Re: ACPI and uncacheable mapping
That's right, in my May 2020 version it's section 10.4.1. Thanks!
-
- Member
- Posts: 5568
- Joined: Mon Mar 25, 2013 7:01 pm
Re: ACPI and uncacheable mapping
Oops. I'm talking about APIC.Octocontrabass wrote: ↑Mon Dec 09, 2024 2:26 pmAPIC and ACPI are two different things. Which one are you asking about?
Re: ACPI and uncacheable mapping
But I'm not quite sure how I'm must do that. I guess I have to set the PCD bit and clear PWT bit in PT for this page and that's it?
-
- Member
- Posts: 5568
- Joined: Mon Mar 25, 2013 7:01 pm
Re: ACPI and uncacheable mapping
If you want to set the page's memory type to UC, you need to set both PCD and PWT (assuming the PAT is unsupported or set to the default).
But usually you don't need to do that. The firmware should have initialized the MTRRs to make all MMIO uncacheable.
Re: ACPI and uncacheable mapping
I'll do it anyway, just in case. Thanks for the reply!Octocontrabass wrote: ↑Mon Dec 09, 2024 3:05 pmIf you want to set the page's memory type to UC, you need to set both PCD and PWT (assuming the PAT is unsupported or set to the default).
But usually you don't need to do that. The firmware should have initialized the MTRRs to make all MMIO uncacheable.