On Sat, Jan 30, 2010 at 11:10:43PM +0800, Jiang, Yunhong wrote:
For how to setup the memory as NVS, you can refer to src/memmap.c, maybe using add_e820().
Adding to the e820 is simple. Just align the madt to 4k:
madt_size = ALIGN(madt_size, PAGE_SIZE); struct multiple_apic_table *madt = memalign_high(PAGE_SIZE, madt_size);
and then add it to the e820:
add_e820((u64)madt, madt_size, E820_NVS);
It's not strictly necessary to align to 4k, but I think it makes sense to do that.
-Kevin
Kevin O'Connor wrote:
On Sat, Jan 30, 2010 at 11:10:43PM +0800, Jiang, Yunhong wrote:
For how to setup the memory as NVS, you can refer to src/memmap.c, maybe using add_e820().
Adding to the e820 is simple. Just align the madt to 4k:
madt_size = ALIGN(madt_size, PAGE_SIZE); struct multiple_apic_table *madt = memalign_high(PAGE_SIZE, madt_size);
and then add it to the e820:
add_e820((u64)madt, madt_size, E820_NVS);
It's not strictly necessary to align to 4k, but I think it makes sense to do that.
-Kevin
Gleb, Yunhong, and Connor,
Thank you all for help me review and give me valuable suggestion! I read ACPI spec 4.0 and think Gleb is correct. I update my patch accordingly as attached, please help me to review it.
Best Regards, Jinsong