summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkos Chandras <markos.chandras@imgtec.com>2014-01-15 14:07:57 +0000
committerRalf Baechle <ralf@linux-mips.org>2014-03-26 23:09:20 +0100
commitd1965c06160b5c1b00a683ff083d875aa0ebb341 (patch)
tree14cdc2b4673d0f91016b2e0cfecad7e9af430178
parent3bdd8e6e09cd5e88b3fc8ceddf150976633f43c3 (diff)
downloadblackbird-op-linux-d1965c06160b5c1b00a683ff083d875aa0ebb341.tar.gz
blackbird-op-linux-d1965c06160b5c1b00a683ff083d875aa0ebb341.zip
MIPS: malta: malta-memory: Add free_init_pages_eva() callback
Use a Malta specific function to free the init section once the kernel has booted. When operating in EVA mode, the physical memory is shifted to 0x80000000. Kernel is loaded into 0x80000000 (virtual) so the offset between physical and virtual addresses is 0. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-rw-r--r--arch/mips/mti-malta/malta-memory.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/mips/mti-malta/malta-memory.c b/arch/mips/mti-malta/malta-memory.c
index 9235aee832c7..6d0f4ab3632d 100644
--- a/arch/mips/mti-malta/malta-memory.c
+++ b/arch/mips/mti-malta/malta-memory.c
@@ -111,6 +111,12 @@ fw_memblock_t * __init fw_getmdesc(int eva)
return &mdesc[0];
}
+static void free_init_pages_eva_malta(void *begin, void *end)
+{
+ free_init_pages("unused kernel", __pa_symbol((unsigned long *)begin),
+ __pa_symbol((unsigned long *)end));
+}
+
static int __init fw_memtype_classify(unsigned int type)
{
switch (type) {
@@ -128,6 +134,8 @@ void __init fw_meminit(void)
fw_memblock_t *p;
p = fw_getmdesc(config_enabled(CONFIG_EVA));
+ free_init_pages_eva = (config_enabled(CONFIG_EVA) ?
+ free_init_pages_eva_malta : NULL);
while (p->size) {
long type;
OpenPOWER on IntegriCloud