libpayload: arm64: fix mmu bugs

1. keep functions and objects used entirely within mmu.c as static.
2. DMA region finding needs to terminate. Therefore, the next address
   to be attempted needs to be less then the current end address.
3. Ensure mmu_ranges passed to mmu_init_ranges_from_sysinfo() has
   0 entries marked as used.

BUG=chrome-os-partner:31634
BRANCH=None
TEST=Booted ryu with RAM hole above cbmem tables below 4GiB.

Change-Id: I5cb4e5009359cb04c4e1b5fe60845f80fbdff02c
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/221725
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
Aaron Durbin 2014-10-07 23:36:55 -05:00 committed by chrome-internal-fetch
commit 66518fd86e
2 changed files with 35 additions and 29 deletions

View file

@ -200,10 +200,6 @@ struct mmu_memrange* mmu_init_ranges_from_sysinfo(struct memrange *cb_ranges,
uint64_t ncb,
struct mmu_ranges *mmu_ranges);
/* Add a new mmu_memrange */
struct mmu_memrange* mmu_add_memrange(struct mmu_ranges *r, uint64_t base,
uint64_t size, uint64_t type);
/*
* Functions for handling the initialization of memory ranges and enabling mmu
* before coreboot tables are parsed