|
@@ -22,7 +22,7 @@ efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt,
|
|
|
unsigned long map_size, unsigned long desc_size,
|
|
|
u32 desc_ver)
|
|
|
{
|
|
|
- int node, prev;
|
|
|
+ int node, prev, num_rsv;
|
|
|
int status;
|
|
|
u32 fdt_val32;
|
|
|
u64 fdt_val64;
|
|
@@ -73,6 +73,14 @@ efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt,
|
|
|
prev = node;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * Delete all memory reserve map entries. When booting via UEFI,
|
|
|
+ * kernel will use the UEFI memory map to find reserved regions.
|
|
|
+ */
|
|
|
+ num_rsv = fdt_num_mem_rsv(fdt);
|
|
|
+ while (num_rsv-- > 0)
|
|
|
+ fdt_del_mem_rsv(fdt, num_rsv);
|
|
|
+
|
|
|
node = fdt_subnode_offset(fdt, 0, "chosen");
|
|
|
if (node < 0) {
|
|
|
node = fdt_add_subnode(fdt, 0, "chosen");
|