summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/keymile/common/common.c16
-rw-r--r--board/keymile/scripts/develop-common.txt1
-rw-r--r--board/keymile/scripts/ramfs-common.txt5
-rw-r--r--include/configs/km/keymile-common.h2
4 files changed, 18 insertions, 6 deletions
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index fce9d58..a585f17 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -64,20 +64,32 @@ int set_km_env(void)
unsigned int pnvramaddr;
unsigned int pram;
unsigned int varaddr;
+ unsigned int kernelmem;
+ char *p;
+ unsigned long rootfssize = 0;
pnvramaddr = gd->ram_size - CONFIG_KM_RESERVED_PRAM - CONFIG_KM_PHRAM
- CONFIG_KM_PNVRAM;
sprintf((char *)buf, "0x%x", pnvramaddr);
setenv("pnvramaddr", (char *)buf);
- pram = (CONFIG_KM_RESERVED_PRAM + CONFIG_KM_PHRAM + CONFIG_KM_PNVRAM) /
- 0x400;
+ /* try to read rootfssize (ram image) from envrionment */
+ p = getenv("rootfssize");
+ if (p != NULL)
+ strict_strtoul(p, 16, &rootfssize);
+ pram = (rootfssize + CONFIG_KM_RESERVED_PRAM + CONFIG_KM_PHRAM +
+ CONFIG_KM_PNVRAM) / 0x400;
sprintf((char *)buf, "0x%x", pram);
setenv("pram", (char *)buf);
varaddr = gd->ram_size - CONFIG_KM_RESERVED_PRAM - CONFIG_KM_PHRAM;
sprintf((char *)buf, "0x%x", varaddr);
setenv("varaddr", (char *)buf);
+
+ kernelmem = gd->ram_size - 0x400 * pram;
+ sprintf((char *)buf, "0x%x", kernelmem);
+ setenv("kernelmem", (char *)buf);
+
return 0;
}
diff --git a/board/keymile/scripts/develop-common.txt b/board/keymile/scripts/develop-common.txt
index 3ccd039..93e2967 100644
--- a/board/keymile/scripts/develop-common.txt
+++ b/board/keymile/scripts/develop-common.txt
@@ -4,3 +4,4 @@ configure=km_setboardid && saveenv && reset
subbootcmds=tftpfdt tftpkernel nfsargs add_default boot
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:/opt/eldk/${arch}
tftpkernel=tftpboot ${load_addr_r} ${hostname}/uImage
+rootfssize=0
diff --git a/board/keymile/scripts/ramfs-common.txt b/board/keymile/scripts/ramfs-common.txt
index 9315500..c1b45ab 100644
--- a/board/keymile/scripts/ramfs-common.txt
+++ b/board/keymile/scripts/ramfs-common.txt
@@ -1,11 +1,10 @@
-addramfs=setenv bootargs "${bootargs} mem=${rootfsaddr} phram.phram=rootfs${boot_bank},${rootfsaddr},${rootfssize}"
+addramfs=setenv bootargs "${bootargs} phram.phram=rootfs${boot_bank},${rootfsaddr},${rootfssize}"
actual_bank=-1
altbootcmd=run ${subbootcmds}
bootcmd=run ${subbootcmds}
subbootcmds=tftpfdt tftpkernel setrootfsaddr tftpramfs flashargs add_default addpanic addramfs boot
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
-configure=km_setboardid && run setramfspram && saveenv && reset
-setramfspram=setexpr value 0 + ${rootfssize} && setexpr value 0x${value} / 0x400 && setexpr value 0x${value} + ${pram} && setenv pram 0x${value}
+configure=km_setboardid && saveenv && reset
rootfsfile=${hostname}/rootfsImage
setrootfsaddr=setexpr value ${pnvramaddr} - ${rootfssize} && setenv rootfsaddr 0x${value}
tftpkernel=tftpboot ${load_addr_r} ${hostname}/uImage
diff --git a/include/configs/km/keymile-common.h b/include/configs/km/keymile-common.h
index bc1edaf..7d93417 100644
--- a/include/configs/km/keymile-common.h
+++ b/include/configs/km/keymile-common.h
@@ -170,7 +170,7 @@
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
":${hostname}:${netdev}:off3" \
" console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}" \
- " mem=${pnvramaddr} init=${init}" \
+ " mem=${kernelmem} init=${init}" \
" phram.phram=phvar,${varaddr}," xstr(CONFIG_KM_PHRAM) \
" ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " " \
CONFIG_KM_DEF_BOOT_ARGS_CPU \