[oe-commits] Felix Domke : linux-dm8000: use memory size passed from bootloader
GIT User account
git at amethyst.openembedded.net
Thu Oct 23 16:10:30 UTC 2008
Module: openembedded.git
Branch: org.openembedded.dreambox
Commit: 871383cd792a7d6a0eba6d45e89e558e03ab1e6a
URL: http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=871383cd792a7d6a0eba6d45e89e558e03ab1e6a
Author: Felix Domke <tmbinc at elitedvb.net>
Date: Thu Oct 23 18:09:11 2008 +0200
linux-dm8000: use memory size passed from bootloader
---
packages/linux/linux-dm8000.bb | 3 +-
.../linux-dm8000/linux-2.6.12-fixup-memsize.patch | 59 ++++++++++++++++++++
2 files changed, 61 insertions(+), 1 deletions(-)
diff --git a/packages/linux/linux-dm8000.bb b/packages/linux/linux-dm8000.bb
index f735c01..881e0e9 100644
--- a/packages/linux/linux-dm8000.bb
+++ b/packages/linux/linux-dm8000.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
PN = "linux-dm8000"
KV = "2.6.12"
PV = "2.6.12"
-PR = "r6"
+PR = "r7"
# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
SRC_URI += "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
@@ -30,6 +30,7 @@ SRC_URI += "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1 \
file://linux-2.6.12-brcm-fix-minipci.patch;patch=1;pnum=1 \
file://linux-2.6.12-fix-bcmemac-ioctl.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fixup-memsize.patch;patch=1;pnum=1 \
http://trappist.elis.ugent.be/~mronsse/cdfs/download/cdfs-2.6.12.tar.bz2"
S = "${WORKDIR}/stblinux-2.6.12"
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-fixup-memsize.patch b/packages/linux/linux-dm8000/linux-2.6.12-fixup-memsize.patch
new file mode 100644
index 0000000..4564f91
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-fixup-memsize.patch
@@ -0,0 +1,59 @@
+Index: stblinux-2.6.12/arch/mips/kernel/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/setup.c 2008-04-15 02:13:42.000000000 +0200
++++ stblinux-2.6.12/arch/mips/kernel/setup.c 2008-04-15 02:25:13.000000000 +0200
+@@ -472,11 +472,29 @@
+ */
+ unsigned long get_RAM_size(void);
+
++extern int *_prom_envp;
++#define prom_envp(index) ((char *)(long)_prom_envp[(index)])
++static char *prom_getenv(char *envname)
++{
++ int i, index=0;
++
++ i = strlen(envname);
++
++ while (prom_envp(index)) {
++ if ((strncmp(envname, prom_envp(index), i) == 0) && (prom_envp(index)[i] == '='))
++ return(prom_envp(index) + i + 1);
++ index++;
++ }
++
++ return NULL;
++}
++
+ static inline void brcm_default_boot_mem(void)
+ {
+ int ramSizeMB = get_RAM_size() >> 20;
+ int size;
+ char msg[40];
++ const char *memsize_str;
+
+ if (ramSizeMB <= 32)
+ {
+@@ -502,11 +520,20 @@
+ size = 32;
+ #endif
+ }
+- sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
+- size);
+- uart_puts(msg);
+- brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
+
++ memsize_str = prom_getenv("memsize");
++ if (memsize_str)
++ {
++ int memsize = simple_strtol(memsize_str, NULL, 0);
++ brcm_insert_ram_node(0, memsize<<20, BOOT_MEM_RAM, &brcm_bm);
++ printk("---> memsize from bootloader: %d\n", memsize);
++ } else
++ {
++ sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
++ size);
++ uart_puts(msg);
++ brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
++ }
+ }
+
+
More information about the Openembedded-commits
mailing list