libpayload arm64: Remove dependency on coreboot tables for dma areas

Libpayload should be able to setup its own dma areas and not depend on coreboot
tables for passing this information. This patch and next allow libpayload to
setup dma areas while performing mmu_init

BUG=chrome-os-partner:31634
BRANCH=None
TEST=Compiles successfully and dma areas are setup properly with the mmu init patch

Change-Id: I5f6fd19a957c7626a2bbe6b826c8987e64ed248f
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 4f3552b8d3439a8b12d1e0b15ef67dcb14b8c96a
Original-Change-Id: I44d9f394fa349abd7182c4ba10f1eaefd6e4fdaa
Original-Signed-off-by: Furquan Shaikh <furquan@google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/216822
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Tested-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/8789
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Furquan Shaikh 2014-09-04 15:22:53 -07:00 committed by Patrick Georgi
parent 8e15963cc5
commit cc51256c74
1 changed files with 1 additions and 11 deletions

View File

@ -35,27 +35,17 @@
/* This pointer gets set in head.S and is passed in from coreboot. */ /* This pointer gets set in head.S and is passed in from coreboot. */
void *cb_header_ptr; void *cb_header_ptr;
static void cb_parse_dma(void *ptr) /* == Architecture specific == */
{
struct lb_range *dma = (struct lb_range *)ptr;
init_dma_memory(phys_to_virt(dma->range_start), dma->range_size);
}
int cb_parse_arch_specific(struct cb_record *rec, struct sysinfo_t *info) int cb_parse_arch_specific(struct cb_record *rec, struct sysinfo_t *info)
{ {
switch(rec->tag) { switch(rec->tag) {
case CB_TAG_DMA:
cb_parse_dma(rec);
break;
default: default:
return 0; return 0;
} }
return 1; return 1;
} }
/* == Architecture specific == */
/* FIXME put in actual address range */
int get_coreboot_info(struct sysinfo_t *info) int get_coreboot_info(struct sysinfo_t *info)
{ {
return cb_parse_header(cb_header_ptr, 1, info); return cb_parse_header(cb_header_ptr, 1, info);