Avoid searching starting at 0 since this memory may not be available,
e.g. if protection against NULL-pointer access is enabled. The table
cannot be there anyway, since the first 1KB of memory was originally
used for the interrupt table and coreboot avoids it.

Start at 0x400 instead.

Signed-off-by: Simon Glass <s...@chromium.org>
Reviewed-by: Bin Meng <bmeng...@gmail.com>
---

(no changes since v2)

Changes in v2:
- Update commit message with more detail
- Update code comment to mention that addresses <1KB are ignored

 arch/x86/cpu/cpu.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c
index 6fe6eaf6c84..dddd281e966 100644
--- a/arch/x86/cpu/cpu.c
+++ b/arch/x86/cpu/cpu.c
@@ -351,8 +351,8 @@ long locate_coreboot_table(void)
 {
        long addr;
 
-       /* We look for LBIO in the first 4K of RAM and again at 960KB */
-       addr = detect_coreboot_table_at(0x0, 0x1000);
+       /* We look for LBIO from addresses 1K-4K and again at 960KB */
+       addr = detect_coreboot_table_at(0x400, 0xc00);
        if (addr < 0)
                addr = detect_coreboot_table_at(0xf0000, 0x1000);
 
-- 
2.40.1.521.gf1e218fcd8-goog

Reply via email to