ramoops: Disable ramoops_common_set_buffer() for ARM64
authorJulius Werner <jwerner@chromium.org>
Sat, 6 Aug 2016 03:15:52 +0000 (20:15 -0700)
committerchrome-bot <chrome-bot@chromium.org>
Wed, 10 Aug 2016 05:10:48 +0000 (22:10 -0700)
commit746d06c392f8266eceac7e6d495dd65517edaad8
treeeb11a7f5189e19ab1b877f5828ace332d80eec8e
parentdc86961b80d1a9a26846b3acbc9bbbfc10ece0b0
ramoops: Disable ramoops_common_set_buffer() for ARM64

The ramoops_common_set_buffer() function tries to automatically allocate
a ramoops region near the top of memory. A nice idea in theory, but
problematic in practice on ARM64 since libpayload also likes to allocate
certain memory ranges there, and does so without adding them to the
coreboot table or providing another good way to externally query them.
Due to this, the ramoops buffer can accidentally overlap the DMA heap or
the framebuffer on ARM64 devices that use this function.

The real solution would probably be to provide a better,
arch-independent memory range allocator in libpayload that can be called
and queried by payloads. But until then, this patch prevents the issue
from happening and switches the one ARM64 board that used this back to
the good old static ramoops allocator function.

BRANCH=None
BUG=None
TEST=None

Change-Id: I80d1abc6f13bec48971e64d8d3933aa1f56f653c
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/366858
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
src/board/gru/board.c
src/boot/ramoops.c