From 1f824792fd983636f5626f4b24b9aa1e5485fe3a Mon Sep 17 00:00:00 2001 From: Tom Wai-Hong Tam Date: Fri, 15 Jul 2011 09:55:28 +0800 Subject: fdt: Decode memory section from fdt. BUG=chromium-os:17950 TEST=build without error, pending test until we use it to clear the ram regions. Change-Id: Icf7695e7ca512541dc77cd84397818e6392f2e9a Reviewed-on: http://gerrit.chromium.org/gerrit/4479 Reviewed-by: Simon Glass Tested-by: Tom Wai-Hong Tam --- common/fdt_decode.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'common/fdt_decode.c') diff --git a/common/fdt_decode.c b/common/fdt_decode.c index da2c6ff7c8..01431e8ef0 100644 --- a/common/fdt_decode.c +++ b/common/fdt_decode.c @@ -344,6 +344,25 @@ int fdt_decode_get_spi_switch(const void *blob, struct fdt_spi_uart *config) return 0; } +int fdt_decode_memory(const void *blob, struct fdt_memory *config) +{ + int node, len; + const addr_t *cell; + + node = fdt_path_offset(blob, "/memory"); + if (node < 0) + return node; + + cell = fdt_getprop(blob, node, "reg", &len); + if (cell && len == sizeof(addr_t) * 2) { + config->start = addr_to_cpu(cell[0]); + config->end = addr_to_cpu(cell[1]); + } else + return -FDT_ERR_BADLAYOUT; + + return 0; +} + /** * Decode a list of GPIOs from an FDT. This creates a list of GPIOs with no * terminating item. -- cgit v1.2.3