[U-Boot-Users] XUPV2P support

mONStR Monstr at seznam.cz
Mon Mar 26 07:53:47 CEST 2007


Hi everbody, 

diff file is in attachment. 

Changes: 
Support for XUPV2P board 
BSP autoconfig support 

Reset support - developments board without flash memory had problem 
with reset command, because 
after reset variable sbrk_base (in data segment) had the last value. I 
removed the temporary code from env_common.c. I added code for clearing BSS 
section and better control under MALLOC, MONITOR, GLOBAL_DATA and Stact 
section. Please read the config files for ml401 and xupv2p boards. 

And I have question about sysace. 
I tried sysace driver for xilinx/ml300 on XUPV2P with PPC405, but my attempts 
failed. Can somebody help me with sysace driver? 

Best regards, 
Michal Simek 


git://www.denx.de/git/u-boot-microblaze.git 


CREDITS | 5 + 
MAINTAINERS | 5 + 
MAKEALL | 2 +- 
Makefile | 5 + 
board/AtmarkTechno/suzaku/u-boot.lds | 1 + 
board/xilinx/ml401/config.mk | 27 +---- 
board/xilinx/ml401/u-boot.lds | 1 + 
board/xilinx/ml401/xparameters.h | 104 +++++++++---------- 
board/xilinx/xilinx_enet/emac_adapter.c | 2 +- 
board/xilinx/xupv2p/Makefile | 65 ++++++++++++ 
board/xilinx/xupv2p/config.mk | 14 +++ 
board/xilinx/xupv2p/u-boot.lds | 67 ++++++++++++ 
board/xilinx/xupv2p/xparameters.h | 46 ++++++++ 
board/xilinx/xupv2p/xupv2p.c | 49 +++++++++ 
common/env_common.c | 8 -- 
cpu/microblaze/interrupts.c | 6 +- 
cpu/microblaze/start.S | 31 ++++++- 
include/configs/ml401.h | 41 +++++--- 
include/configs/suzaku.h | 3 +- 
include/configs/xupv2p.h | 174 
+++++++++++++++++++++++++++++++ 
lib_microblaze/board.c | 4 +- 
21 files changed, 550 insertions(+), 110 deletions(-) 
create mode 100644 board/xilinx/xupv2p/Makefile 
create mode 100644 board/xilinx/xupv2p/config.mk 
create mode 100644 board/xilinx/xupv2p/u-boot.lds 
create mode 100644 board/xilinx/xupv2p/xparameters.h 
create mode 100644 board/xilinx/xupv2p/xupv2p.c 
create mode 100644 include/configs/xupv2p.h 

-------------- next part --------------
diff --git a/CREDITS b/CREDITS
index 8021588..f896e7c 100644
--- a/CREDITS
+++ b/CREDITS
@@ -470,3 +470,8 @@ N: Timur Tabi
 E: timur at freescale.com
 D: Support for MPC8349E-mITX
 W: www.freescale.com
+
+N: Michal Simek
+E: monstr at monstr.eu
+D: Support for Microblaze, ML401, XUPV2P board
+W: www.monstr.eu
diff --git a/MAINTAINERS b/MAINTAINERS
index 1d0a8df..965f646 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -562,6 +562,11 @@ Yasushi Shoji <yashi at atmark-techno.com>

 	SUZAKU			MicroBlaze

+Michal Simek <monstr at monstr.eu>
+
+	ML401			MicroBlaze
+	XUPV2P			MicroBlaze
+
 #########################################################################
 # Coldfire Systems:							#
 #									#
diff --git a/MAKEALL b/MAKEALL
index 172f3e5..36efa40 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -292,7 +292,7 @@ LIST_nios2="	\
 #########################################################################

 LIST_microblaze="	\
-	suzaku		ml401
+	suzaku		ml401		xupv2p
 "

 #########################################################################
diff --git a/Makefile b/Makefile
index f67eb26..db7b040 100644
--- a/Makefile
+++ b/Makefile
@@ -2309,6 +2309,11 @@ ml401_config:	unconfig
 	@echo "#define CONFIG_ML401 1" >> include/config.h
 	@./mkconfig -a $(@:_config=) microblaze microblaze ml401 xilinx

+xupv2p_config:	unconfig
+	@ >include/config.h
+	@echo "#define CONFIG_XUPV2P 1" >> include/config.h
+	@./mkconfig -a $(@:_config=) microblaze microblaze xupv2p xilinx
+
 #########################################################################
 ## Blackfin
 #########################################################################
diff --git a/board/AtmarkTechno/suzaku/u-boot.lds b/board/AtmarkTechno/suzaku/u-boot.lds
index 93147fc..cb90854 100644
--- a/board/AtmarkTechno/suzaku/u-boot.lds
+++ b/board/AtmarkTechno/suzaku/u-boot.lds
@@ -63,4 +63,5 @@ SECTIONS
 		*(.bss)
 		__bss_end = .;
 	}
+	__end = . ;
 }
diff --git a/board/xilinx/ml401/config.mk b/board/xilinx/ml401/config.mk
index 48f792a..07c9c4f 100644
--- a/board/xilinx/ml401/config.mk
+++ b/board/xilinx/ml401/config.mk
@@ -1,26 +1,11 @@
+#*********************************************************************
 #
-# (C) Copyright 2004 Atmark Techno, Inc.
-#
-# Yasushi SHOJI <yashi at atmark-techno.com>
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
+# CAUTION: This file is automatically generated by libgen.
+# Version: Xilinx EDK 6.3 EDK_Gmm.12.3
+# Description: U-BOOT Configuration File
+# Michal Simek - monstr at monstr.eu
 #
+#**********************************************************************

 TEXT_BASE = 0x12000000

diff --git a/board/xilinx/ml401/u-boot.lds b/board/xilinx/ml401/u-boot.lds
index 93147fc..cb90854 100644
--- a/board/xilinx/ml401/u-boot.lds
+++ b/board/xilinx/ml401/u-boot.lds
@@ -63,4 +63,5 @@ SECTIONS
 		*(.bss)
 		__bss_end = .;
 	}
+	__end = . ;
 }
diff --git a/board/xilinx/ml401/xparameters.h b/board/xilinx/ml401/xparameters.h
index 8ec2864..10ffd98 100644
--- a/board/xilinx/ml401/xparameters.h
+++ b/board/xilinx/ml401/xparameters.h
@@ -1,56 +1,48 @@
-/*
- * (C) Copyright 2007 Michal Simek
- *
- * Michal  SIMEK <monstr at monstr.eu>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/* DDR SDRAM */
-#define CONFIG_XILINX_ERAM_START 0x10000000
-#define CONFIG_XILINX_ERAM_SIZE 0x04000000
-
-/* FLASH_MEMORY Settings */
-#define CONFIG_XILINX_FLASH_START 0x28000000
-#define CONFIG_XILINX_FLASH_SIZE 0x00800000
-
-/* serial line */
-#define CONFIG_XILINX_UARTLITE_0_BASEADDR 0xA0000000
-#define CONFIG_XILINX_UARTLITE_0_BAUDRATE 115200
-
-/* GPIO */
-#define CONFIG_XILINX_GPIO_0_BASEADDR 0x90000000
-
-/* INTC */
-#define CONFIG_XILINX_INTC_0_BASEADDR 0xD1000FC0
-#define CONFIG_XILINX_INTC_0_NUM_INTR_INPUTS 12
-
-/* TIMER */
-#define CONFIG_XILINX_TIMER_0_BASEADDR 0xA2000000
-#define CONFIG_XILINX_TIMER_0_IRQ 0
-
-/* ethernet */
-#define XPAR_XEMAC_NUM_INSTANCES 1
-#define XPAR_OPB_ETHERNET_0_BASEADDR 0x60000000
-#define XPAR_OPB_ETHERNET_0_HIGHADDR 0x60003FFF
-#define XPAR_OPB_ETHERNET_0_DEVICE_ID 0
-#define XPAR_EMAC_0_DEVICE_ID 0
-#define XPAR_OPB_ETHERNET_0_ERR_COUNT_EXIST 1
-#define XPAR_OPB_ETHERNET_0_DMA_PRESENT 1
-#define XPAR_OPB_ETHERNET_0_MII_EXIST 1
+/*********************************************************************
+#
+# CAUTION: This file is automatically generated by libgen.
+# Version: Xilinx EDK 6.3 EDK_Gmm.12.3
+# Description: U-BOOT Configuration File
+# Michal Simek - monstr at monstr.eu
+#
+**********************************************************************/
+
+/* System Clock Frequency */
+#define XILINX_CLOCK_FREQ	66666667
+
+/* Interrupt controller is intc_0 */
+#define XILINX_INTC_BASEADDR	0xd1000fc0
+#define XILINX_INTC_NUM_INTR_INPUTS	12
+
+/* Timer pheriphery is opb_timer_0 */
+#define XILINX_TIMER_BASEADDR	0xa2000000
+#define XILINX_TIMER_IRQ	0
+
+/* Uart pheriphery is console_uart */
+#define XILINX_UART_BASEADDR	0xa0000000
+#define XILINX_UART_BAUDRATE	115200
+
+/* GPIO is opb_gpio_0*/
+#define XILINX_GPIO_BASEADDR	0x90000000
+
+/* Flash Memory is opb_emc_0 */
+#define XILINX_FLASH_START	0x28000000
+#define XILINX_FLASH_SIZE	0x00800000
+
+/* Main Memory is plb_ddr_0 */
+#define XILINX_RAM_START	0x10000000
+#define XILINX_RAM_SIZE	0x10000000
+
+/* Sysace Controller is opb_sysace_0 */
+#define XILINX_SYSACE_BASEADDR	0xCF000000
+#define XILINX_SYSACE_HIGHADDR	0xCF0001FF
+#define XILINX_SYSACE_MEM_WIDTH	16
+
+/* Ethernet controller is opb_ethernet_0 */
+#define XPAR_XEMAC_NUM_INSTANCES	1
+#define XPAR_OPB_ETHERNET_0_DEVICE_ID	0
+#define XPAR_OPB_ETHERNET_0_BASEADDR	0x60000000
+#define XPAR_OPB_ETHERNET_0_HIGHADDR	0x60003FFF
+#define XPAR_OPB_ETHERNET_0_DMA_PRESENT	1
+#define XPAR_OPB_ETHERNET_0_ERR_COUNT_EXIST	1
+#define XPAR_OPB_ETHERNET_0_MII_EXIST	1
diff --git a/board/xilinx/xilinx_enet/emac_adapter.c b/board/xilinx/xilinx_enet/emac_adapter.c
index de62695..5a7e59e 100644
--- a/board/xilinx/xilinx_enet/emac_adapter.c
+++ b/board/xilinx/xilinx_enet/emac_adapter.c
@@ -147,7 +147,7 @@ eth_rx(void)
 	RecvFrameLength = PKTSIZE;
 	Result = XEmac_PollRecv(&Emac, (u8 *) etherrxbuff, &RecvFrameLength);
 	if (Result == XST_SUCCESS) {
-#ifndef CONFIG_MICROBLAZE
+#ifndef CONFIG_EMACLITE
 		NetReceive((uchar *)etherrxbuff, RecvFrameLength);
 #else
 		NetReceive(etherrxbuff, RecvFrameLength);
diff --git a/common/env_common.c b/common/env_common.c
index 6e193cf..eb33422 100644
--- a/common/env_common.c
+++ b/common/env_common.c
@@ -222,14 +222,6 @@ void env_relocate (void)
 	DEBUGF ("%s[%d] malloced ENV at %p\n", __FUNCTION__,__LINE__,env_ptr);
 #endif

-#ifdef CONFIG_MICROBLAZE
-	/*
-	 * FIXME MALLOC error for Microblaze - error malloc return
-	 * bad value. Correct value is CFG_MONITOR_BASE - CFG_MALLOC_LEN.
-	 */
-	env_ptr = (env_t *)CFG_MONITOR_BASE;
-	DEBUGF ("%s[%d] malloced ENV at %p\n", __FUNCTION__,__LINE__,env_ptr);
-#endif
 	/*
 	 * After relocation to RAM, we can always use the "memory" functions
 	 */
diff --git a/cpu/microblaze/interrupts.c b/cpu/microblaze/interrupts.c
index 37ed16d..2db847c 100644
--- a/cpu/microblaze/interrupts.c
+++ b/cpu/microblaze/interrupts.c
@@ -95,7 +95,7 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
 {
 	struct irq_action *act;
 	/* irq out of range */
-	if ((irq < 0) || (irq > CONFIG_XILINX_INTC_0_NUM_INTR_INPUTS)) {
+	if ((irq < 0) || (irq > CFG_INTC_0_NUM)) {
 		puts ("IRQ out of range\n");
 		return;
 	}
@@ -131,7 +131,7 @@ int interrupts_init (void)
 {
 	int i;
 	/* initialize irq list */
-	for (i = 0; i < CONFIG_XILINX_INTC_0_NUM_INTR_INPUTS; i++) {
+	for (i = 0; i < CFG_INTC_0_NUM; i++) {
 		vecs[i].handler = (interrupt_handler_t *) def_hdlr;
 		vecs[i].arg = (void *)i;
 		vecs[i].count = 0;
@@ -189,7 +189,7 @@ int do_irqinfo (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 	      "Nr  Routine   Arg       Count\n"
 	      "-----------------------------\n");

-	for (i = 0; i < CONFIG_XILINX_INTC_0_NUM_INTR_INPUTS; i++) {
+	for (i = 0; i < CFG_INTC_0_NUM; i++) {
 		if (act->handler != (interrupt_handler_t*) def_hdlr) {
 			printf ("%02d  %08lx  %08lx  %d\n", i,
 				(int)act->handler, (int)act->arg, act->count);
diff --git a/cpu/microblaze/start.S b/cpu/microblaze/start.S
index bce3297..29481af 100644
--- a/cpu/microblaze/start.S
+++ b/cpu/microblaze/start.S
@@ -31,6 +31,7 @@
 _start:
 	mts	rmsr, r0	/* disable cache */
 	addi	r1, r0, CFG_INIT_SP_OFFSET
+	addi	r1, r1, -4	/* Decrement SP to top of memory */
 	/* add opcode instruction for 32bit jump - 2 instruction imm & brai*/
 	addi	r6, r0, 0xb000	/* hex b000 opcode imm */
 	bslli	r6, r6, 16	/* shift */
@@ -53,6 +54,23 @@ _start:
 	lhu	r7, r1, r0
 	shi	r7, r0, 0x2
 	shi	r6, r0, 0x6
+/*
+ * Copy U-Boot code to TEXT_BASE
+ * solve problem with sbrk_base
+ */
+#if (CFG_RESET_ADDRESS != TEXT_BASE)
+	addi	r4, r0, __end
+	addi	r5, r0, __text_start
+	rsub	r4, r5, r4	/* size = __end - __text_start */
+	addi	r6, r0, CFG_RESET_ADDRESS	/* source address */
+	addi	r7, r0, 0	/* counter */
+4:
+	lw	r8, r6, r7
+	sw	r8, r5, r7
+	addi	r7, r7, 0x4
+	cmp	r8, r4, r7
+	blti	r8, 4b
+#endif
 #endif

 #ifdef CFG_USR_EXCEP
@@ -85,6 +103,17 @@ _start:
 	ori	r12, r12, 0xa0
 	mts	rmsr, r12

-	/* jumping to board_init */
+clear_bss:
+	/* clear BSS segments */
+	addi	r5, r0, __bss_start
+	addi	r4, r0, __bss_end
+	cmp	r6, r5, r4
+	beqi	r6, 3f
+2:
+	swi     r0, r5, 0 /* write zero to loc */
+	addi    r5, r5, 4 /* increment to next loc */
+	cmp     r6, r5, r4 /* check if we have reach the end */
+	bnei    r6, 2b
+3:	/* jumping to board_init */
 	brai	board_init
 1:	bri	1b
diff --git a/include/configs/ml401.h b/include/configs/ml401.h
index 4dc2afc..f4a8a1f 100644
--- a/include/configs/ml401.h
+++ b/include/configs/ml401.h
@@ -31,27 +31,31 @@
 #define	CONFIG_ML401		1	/* ML401 Board */

 /* uart */
-#define	CONFIG_SERIAL_BASE	CONFIG_XILINX_UARTLITE_0_BASEADDR
-#define	CONFIG_BAUDRATE		CONFIG_XILINX_UARTLITE_0_BAUDRATE
+#define	CONFIG_SERIAL_BASE	XILINX_UART_BASEADDR
+#define	CONFIG_BAUDRATE		XILINX_UART_BAUDRATE
 #define	CFG_BAUDRATE_TABLE	{ CONFIG_BAUDRATE }

 /* setting reset address */
 #define	CFG_RESET_ADDRESS	TEXT_BASE

+/* ethernet */
+#define CONFIG_EMACLITE		1
+#define XPAR_EMAC_0_DEVICE_ID	XPAR_XEMAC_NUM_INSTANCES
+
 /* gpio */
 #define	CFG_GPIO_0		1
-#define	CFG_GPIO_0_ADDR		CONFIG_XILINX_GPIO_0_BASEADDR
+#define	CFG_GPIO_0_ADDR		XILINX_GPIO_BASEADDR
 
 /* interrupt controller */
 #define	CFG_INTC_0		1
-#define	CFG_INTC_0_ADDR		CONFIG_XILINX_INTC_0_BASEADDR
-#define	CFG_INTC_0_NUM		CONFIG_XILINX_INTC_0_NUM_INTR_INPUTS
+#define	CFG_INTC_0_ADDR		XILINX_INTC_BASEADDR
+#define	CFG_INTC_0_NUM		XILINX_INTC_NUM_INTR_INPUTS
 
 /* timer */
 #define	CFG_TIMER_0		1
-#define	CFG_TIMER_0_ADDR	CONFIG_XILINX_TIMER_0_BASEADDR
-#define	CFG_TIMER_0_IRQ		CONFIG_XILINX_TIMER_0_IRQ
-#define	FREQUENCE		66666666
+#define	CFG_TIMER_0_ADDR	XILINX_TIMER_BASEADDR
+#define	CFG_TIMER_0_IRQ		XILINX_TIMER_IRQ
+#define	FREQUENCE		XILINX_CLOCK_FREQ
 #define	CFG_TIMER_0_PRELOAD	( FREQUENCE/1000 )
 
 /*
@@ -62,6 +66,7 @@
  *
  * CFG_GBL_DATA_OFFSET = 0x1000_0000 + 0x0400_0000 - 0x1000 = 0x13FF_F000
  * CFG_MONITOR_BASE = 0x13FF_F000 - 0x40000 = 0x13FB_F000
+ * CFG_MALLOC_BASE = 0x13FB_F000 - 0x40000 = 0x13F7_F000 
  *
  * 0x1000_0000	CFG_SDRAM_BASE
  *					FREE
@@ -71,16 +76,18 @@
  *					FREE
  *
  *					STACK
+ * 0x13F7_F000	CFG_MALLOC_BASE
+ *					MALLOC_AREA	256kB	Alloc
  * 0x11FB_F000	CFG_MONITOR_BASE
- *					MONITOR_CODE
+ *					MONITOR_CODE	256kB	Env
  * 0x13FF_F000	CFG_GBL_DATA_OFFSET
- * 					GLOBAL_DATA
+ * 					GLOBAL_DATA	4kB	bd, gd
  * 0x1400_0000	CFG_SDRAM_BASE + CFG_SDRAM_SIZE
  */
 
 /* ddr sdram - main memory */
-#define	CFG_SDRAM_BASE		CONFIG_XILINX_ERAM_START
-#define	CFG_SDRAM_SIZE		CONFIG_XILINX_ERAM_SIZE
+#define	CFG_SDRAM_BASE		XILINX_RAM_START
+#define	CFG_SDRAM_SIZE		XILINX_RAM_SIZE
 #define	CFG_MEMTEST_START	CFG_SDRAM_BASE
 #define	CFG_MEMTEST_END		(CFG_SDRAM_BASE + 0x1000)

@@ -92,7 +99,9 @@
 #define	SIZE			0x40000
 #define	CFG_MONITOR_LEN		SIZE
 #define	CFG_MONITOR_BASE	(CFG_GBL_DATA_OFFSET - CFG_MONITOR_LEN)
+#define	CFG_MONITOR_END		(CFG_MONITOR_BASE + CFG_MONITOR_LEN)
 #define	CFG_MALLOC_LEN		SIZE
+#define	CFG_MALLOC_BASE		(CFG_MONITOR_BASE - CFG_MALLOC_LEN)

 /* stack */
 #define	CFG_INIT_SP_OFFSET	CFG_MONITOR_BASE
@@ -101,8 +110,8 @@
 #define	FLASH

 #ifdef FLASH
-	#define	CFG_FLASH_BASE		CONFIG_XILINX_FLASH_START
-	#define	CFG_FLASH_SIZE		CONFIG_XILINX_FLASH_SIZE
+	#define	CFG_FLASH_BASE		XILINX_FLASH_START
+	#define	CFG_FLASH_SIZE		XILINX_FLASH_SIZE
 	#define	CFG_FLASH_CFI		1
 	#define	CFG_FLASH_CFI_DRIVER	1
 	#define	CFG_FLASH_EMPTY_INFO	1	/* ?empty sector */
@@ -214,8 +223,8 @@
 /* system ace */
 /*#define CONFIG_SYSTEMACE
 #define DEBUG_SYSTEMACE
-#define CFG_SYSTEMACE_BASE 0xCF000000
-#define CFG_SYSTEMACE_WIDTH	8
+#define CFG_SYSTEMACE_BASE	XILINX_SYSACE_BASEADDR
+#define CFG_SYSTEMACE_WIDTH	XILINX_SYSACE_MEM_WIDTH
 #define CONFIG_DOS_PARTITION
 */
 #endif	/* __CONFIG_H */
diff --git a/include/configs/suzaku.h b/include/configs/suzaku.h
index 1ee6be1..be19269 100644
--- a/include/configs/suzaku.h
+++ b/include/configs/suzaku.h
@@ -44,8 +44,9 @@
 #define CFG_FLASH_SIZE		0x00400000
 #define CFG_RESET_ADDRESS	0xfff00100
 #define CFG_MONITOR_LEN		(256 << 10)	/* Reserve 256 kB for Monitor */
-#define CFG_MONITOR_BASE        (CFG_SDRAM_BASE + CFG_SDRAM_SIZE - (1024 * 1024))
+#define CFG_MONITOR_BASE	(CFG_SDRAM_BASE + CFG_SDRAM_SIZE - (1024 * 1024))
 #define CFG_MALLOC_LEN		(256 << 10)	/* Reserve 256 kB for malloc */
+#define CFG_MALLOC_BASE		(CFG_MONITOR_BASE - (1024 * 1024))

 #define CONFIG_BAUDRATE		115200
 #define CFG_BAUDRATE_TABLE	{ 115200 }
diff --git a/lib_microblaze/board.c b/lib_microblaze/board.c
index 273d9c4..c95125a 100644
--- a/lib_microblaze/board.c
+++ b/lib_microblaze/board.c
@@ -59,8 +59,8 @@ static ulong mem_malloc_brk;
  */
 static void mem_malloc_init (void)
 {
-	mem_malloc_end = CFG_MONITOR_BASE + CFG_MONITOR_LEN;
-	mem_malloc_start = CFG_MONITOR_BASE;
+	mem_malloc_end = (CFG_MALLOC_BASE + CFG_MALLOC_LEN);
+	mem_malloc_start = CFG_MALLOC_BASE;
 	mem_malloc_brk = mem_malloc_start;
 	memset ((void *)mem_malloc_start, 0, mem_malloc_end - mem_malloc_start);
 }



More information about the U-Boot mailing list