[U-Boot-Users] [PATCH] 85xx: Add cpu_mp_lmb_reserve helper to reserve boot page

Kumar Gala galak at kernel.crashing.org
Wed Mar 26 14:53:53 CET 2008


Provide a board_lmb_reserve helper function to ensure we reserve
the page of memory we are using for the boot page translation code.

Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
---
 cpu/mpc85xx/mp.c |   14 ++++++++++++++
 cpu/mpc85xx/mp.h |    1 +
 2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/cpu/mpc85xx/mp.c b/cpu/mpc85xx/mp.c
index d3727b0..7b10fba 100644
--- a/cpu/mpc85xx/mp.c
+++ b/cpu/mpc85xx/mp.c
@@ -23,6 +23,7 @@
 #include <common.h>
 #include <asm/processor.h>
 #include <ioports.h>
+#include <lmb.h>
 #include <asm/io.h>
 #include "mp.h"

@@ -177,6 +178,19 @@ static void pq3_mp_up(unsigned long bootpg)
 	out_be32(&gur->devdisr, devdisr);
 }

+void cpu_mp_lmb_reserve(struct lmb *lmb)
+{
+	u32 bootpg;
+
+	/* if we have 4G or more of memory, put the boot page at 4Gb-4k */
+	if ((u64)gd->ram_size > 0xfffff000)
+		bootpg = 0xfffff000;
+	else
+		bootpg = gd->ram_size - 4096;
+
+	lmb_reserve(lmb, bootpg, 4096);
+}
+
 void setup_mp(void)
 {
 	extern ulong __secondary_start_page;
diff --git a/cpu/mpc85xx/mp.h b/cpu/mpc85xx/mp.h
index b762ee2..4329286 100644
--- a/cpu/mpc85xx/mp.h
+++ b/cpu/mpc85xx/mp.h
@@ -4,6 +4,7 @@
 ulong get_spin_addr(void);
 void setup_mp(void);
 u32 get_my_id(void);
+void cpu_mp_lmb_reserve(struct lmb *lmb);

 #define BOOT_ENTRY_ADDR_UPPER	0
 #define BOOT_ENTRY_ADDR_LOWER	1
-- 
1.5.4.1





More information about the U-Boot mailing list