http://bugzilla.opensuse.org/show_bug.cgi?id=1122614
http://bugzilla.opensuse.org/show_bug.cgi?id=1122614#c24
--- Comment #24 from Joey Lee
Just checked the u-boot code, it always marks the first page as WB and RESERVED for its own spin table.
Maybe we can change the logic of get_dram_base() in kernel from
if (md->attribute & EFI_MEMORY_WB) {
to
if (md->attribute & EFI_MEMORY_WB && md->type == EFI_CONVENTIONAL_MEMORY) {
This way, get_dram_base() will always find the first free region.
(In reply to Gary Ching-Pang Lin from comment #23)
Just checked the u-boot code, it always marks the first page as WB and RESERVED for its own spin table.
Maybe we can change the logic of get_dram_base() in kernel from
if (md->attribute & EFI_MEMORY_WB) {
to
if (md->attribute & EFI_MEMORY_WB && md->type == EFI_CONVENTIONAL_MEMORY) {
This way, get_dram_base() will always find the first free region.
As Gary's suggestion, I am building kernel RPM for testing: --- drivers/firmware/efi/libstub/efi-stub-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/firmware/efi/libstub/efi-stub-helper.c +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c @@ -153,7 +153,7 @@ unsigned long get_dram_base(efi_system_t map.map_end = map.map + map_size; for_each_efi_memory_desc_in_map(&map, md) { - if (md->attribute & EFI_MEMORY_WB) { + if ((md->type == EFI_CONVENTIONAL_MEMORY) && (md->attribute & EFI_MEMORY_WB)) { if (membase > md->phys_addr) membase = md->phys_addr; } -- You are receiving this mail because: You are on the CC list for the bug.