[U-Boot] [PATCH 0/2] Fix several bugs in qemu-mips configuration

I recently played around with the qemu-mips configuration, and encountered several issues. Saving the environment to flash overwrites the U-Boot code, and the malloc pool isn't big enough for initr_malloc_bootparams(). This patchset fixes these issues.
Kyle Edwards (2): mips: qemu-mips: Remove obsolete CONFIG_SYS_MONITOR_LEN from config mips: qemu-mips: Expand malloc pool to fit CONFIG_SYS_BOOTPARAMS_LEN
include/configs/qemu-mips.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)

This fixes an issue with the saveenv command causing U-Boot to no longer work on the QEMU Mips pseudoboard. Because the offset of the environment was being determined by CONFIG_SYS_MONITOR_LEN, and this value was less than the actual size of U-Boot, saveenv was overwriting parts of the U-Boot code. Because CONFIG_SYS_MONITOR_LEN is no longer used on MIPS, this patch removes it and places the environment at the end of the pseudoboard's 4MB flash.
Signed-off-by: Kyle Edwards kyleedwardsny@gmail.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com --- include/configs/qemu-mips.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h index be7f4f2..b67d413 100644 --- a/include/configs/qemu-mips.h +++ b/include/configs/qemu-mips.h @@ -102,7 +102,6 @@ */ /* The following #defines are needed to get flash environment right */ #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE -#define CONFIG_SYS_MONITOR_LEN (192 << 10)
#define CONFIG_SYS_INIT_SP_OFFSET 0x400000
@@ -115,10 +114,10 @@ #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
#define CONFIG_ENV_IS_IN_FLASH -#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN)
/* Address and size of Primary Environment Sector */ #define CONFIG_ENV_SIZE 0x8000 +#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + (4 << 20) - CONFIG_ENV_SIZE)
#define CONFIG_ENV_OVERWRITE 1

Before this patch, CONFIG_SYS_BOOTPARAMS_LEN was the same size as CONFIG_SYS_MALLOC_LEN. So, if malloc() had previously been called, and initr_malloc_bootparams() was called, it would fail with an out-of- memory error. This patch fixes this issue by expanding the malloc pool to 256KB.
Signed-off-by: Kyle Edwards kyleedwardsny@gmail.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com --- include/configs/qemu-mips.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h index b67d413..59a793b 100644 --- a/include/configs/qemu-mips.h +++ b/include/configs/qemu-mips.h @@ -80,7 +80,7 @@ /* max number of command args */ #define CONFIG_SYS_MAXARGS 16
-#define CONFIG_SYS_MALLOC_LEN 128*1024 +#define CONFIG_SYS_MALLOC_LEN (256 << 10)
#define CONFIG_SYS_BOOTPARAMS_LEN 128*1024

Am 12.04.2017 um 01:06 schrieb Kyle Edwards:
I recently played around with the qemu-mips configuration, and encountered several issues. Saving the environment to flash overwrites the U-Boot code, and the malloc pool isn't big enough for initr_malloc_bootparams(). This patchset fixes these issues.
Kyle Edwards (2): mips: qemu-mips: Remove obsolete CONFIG_SYS_MONITOR_LEN from config mips: qemu-mips: Expand malloc pool to fit CONFIG_SYS_BOOTPARAMS_LEN
include/configs/qemu-mips.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
could you also fix include/configs/qemu-mips64.h? Thanks.
participants (2)
-
Daniel Schwierzeck
-
Kyle Edwards