There is already code for this in zimage. Move it to the e820 file so
it can be used elsewhere.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v3:
- Add new patch with a function to dump the e820 table

 arch/x86/include/asm/e820.h |  8 ++++++++
 arch/x86/lib/e820.c         | 23 +++++++++++++++++++++++
 arch/x86/lib/zimage.c       | 22 ++--------------------
 3 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
index 1ab709abfc8..cc3758b59fd 100644
--- a/arch/x86/include/asm/e820.h
+++ b/arch/x86/include/asm/e820.h
@@ -39,6 +39,14 @@ unsigned int install_e820_map(unsigned int max_entries,
 unsigned int cb_install_e820_map(unsigned int max_entries,
                                 struct e820_entry *entries);
 
+/**
+ * e820_dump() - Dump an e820 table
+ *
+ * @entries: Pointer to first entry
+ * @count: Number of entries in the table
+ */
+void e820_dump(struct e820_entry *entries, uint count);
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_X86_E820_H */
diff --git a/arch/x86/lib/e820.c b/arch/x86/lib/e820.c
index d478b7486e3..00ca94776d2 100644
--- a/arch/x86/lib/e820.c
+++ b/arch/x86/lib/e820.c
@@ -10,6 +10,29 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+static const char *const e820_type_name[E820_COUNT] = {
+       [E820_RAM] = "RAM",
+       [E820_RESERVED] = "Reserved",
+       [E820_ACPI] = "ACPI",
+       [E820_NVS] = "ACPI NVS",
+       [E820_UNUSABLE] = "Unusable",
+};
+
+void e820_dump(struct e820_entry *entries, uint count)
+{
+       int i;
+
+       printf("%12s  %10s  %s\n", "Addr", "Size", "Type");
+       for (i = 0; i < count; i++) {
+               struct e820_entry *entry = &entries[i];
+
+               printf("%12llx  %10llx  %s\n", entry->addr, entry->size,
+                      entry->type < E820_COUNT ?
+                      e820_type_name[entry->type] :
+                      simple_itoa(entry->type));
+       }
+}
+
 /*
  * Install a default e820 table with 4 entries as follows:
  *
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index 26d623711bc..3ffc7593f87 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -475,14 +475,6 @@ static void print_num64(const char *name, u64 value)
        printf("%-20s: %llx\n", name, value);
 }
 
-static const char *const e820_type_name[E820_COUNT] = {
-       [E820_RAM] = "RAM",
-       [E820_RESERVED] = "Reserved",
-       [E820_ACPI] = "ACPI",
-       [E820_NVS] = "ACPI NVS",
-       [E820_UNUSABLE] = "Unusable",
-};
-
 static const char *const bootloader_id[] = {
        "LILO",
        "Loadlin",
@@ -570,24 +562,14 @@ void zimage_dump(struct bootm_info *bmi, bool 
show_cmdline)
 {
        struct boot_params *base_ptr;
        struct setup_header *hdr;
-       int i;
 
        base_ptr = bmi->base_ptr;
        printf("Setup located at %p:\n\n", base_ptr);
        print_num64("ACPI RSDP addr", base_ptr->acpi_rsdp_addr);
 
        printf("E820: %d entries\n", base_ptr->e820_entries);
-       if (base_ptr->e820_entries) {
-               printf("%12s  %10s  %s\n", "Addr", "Size", "Type");
-               for (i = 0; i < base_ptr->e820_entries; i++) {
-                       struct e820_entry *entry = &base_ptr->e820_map[i];
-
-                       printf("%12llx  %10llx  %s\n", entry->addr, entry->size,
-                              entry->type < E820_COUNT ?
-                              e820_type_name[entry->type] :
-                              simple_itoa(entry->type));
-               }
-       }
+       if (base_ptr->e820_entries)
+               e820_dump(base_ptr->e820_map, base_ptr->e820_entries);
 
        hdr = &base_ptr->hdr;
        print_num("Setup sectors", hdr->setup_sects);
-- 
2.43.0

Reply via email to