e820.c 936 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #include <common.h>
  7. #include <asm/e820.h>
  8. DECLARE_GLOBAL_DATA_PTR;
  9. /*
  10. * Install a default e820 table with 4 entries as follows:
  11. *
  12. * 0x000000-0x0a0000 Useable RAM
  13. * 0x0a0000-0x100000 Reserved for ISA
  14. * 0x100000-gd->ram_size Useable RAM
  15. * CONFIG_PCIE_ECAM_BASE PCIe ECAM
  16. */
  17. __weak unsigned install_e820_map(unsigned max_entries,
  18. struct e820entry *entries)
  19. {
  20. entries[0].addr = 0;
  21. entries[0].size = ISA_START_ADDRESS;
  22. entries[0].type = E820_RAM;
  23. entries[1].addr = ISA_START_ADDRESS;
  24. entries[1].size = ISA_END_ADDRESS - ISA_START_ADDRESS;
  25. entries[1].type = E820_RESERVED;
  26. entries[2].addr = ISA_END_ADDRESS;
  27. entries[2].size = gd->ram_size - ISA_END_ADDRESS;
  28. entries[2].type = E820_RAM;
  29. entries[3].addr = CONFIG_PCIE_ECAM_BASE;
  30. entries[3].size = CONFIG_PCIE_ECAM_SIZE;
  31. entries[3].type = E820_RESERVED;
  32. return 4;
  33. }