[U-Boot] [PATCH v3 1/2] m68k: add malloc memory for early malloc

Angelo Dureghello angelo at sysam.it
Mon Apr 25 16:28:33 CEST 2016


Hi Simon,

noticed just after sending the patch an issue with my tests,
please freeze the patch, there are possible issues in it.

Will confirm this v3 in case after re-testing or will issue a v4.

thanks,

regards,
Angelo Dureghello

On 25/04/2016 00:20, Angelo Dureghello wrote:
> To use serial uclass and DM, CONFIG_SYS_MALLOC_F must be used.
> So CONFIG_SYS_GENERIC_GLOBAL_DATA has been undefined and
> call to board_init_f_mem() is added for all cpu's.
>
> Signed-off-by: Angelo Dureghello <angelo at sysam.it>
>
> ---
> Changes for v2:
>     - none
> Changes for v3:
>     - fix start.S using new board_init_f_alloc_reserve
> ---
>   arch/m68k/cpu/mcf5227x/start.S   | 16 ++++++++++++++++
>   arch/m68k/cpu/mcf523x/start.S    | 16 ++++++++++++++++
>   arch/m68k/cpu/mcf52x2/start.S    | 16 ++++++++++++++++
>   arch/m68k/cpu/mcf530x/cpu_init.c |  2 +-
>   arch/m68k/cpu/mcf530x/start.S    | 16 ++++++++++++++++
>   arch/m68k/cpu/mcf532x/start.S    | 16 ++++++++++++++++
>   arch/m68k/cpu/mcf5445x/start.S   | 16 ++++++++++++++++
>   arch/m68k/cpu/mcf547x_8x/start.S | 16 ++++++++++++++++
>   8 files changed, 113 insertions(+), 1 deletion(-)
>
> diff --git a/arch/m68k/cpu/mcf5227x/start.S b/arch/m68k/cpu/mcf5227x/start.S
> index 23024f9..ea36020 100644
> --- a/arch/m68k/cpu/mcf5227x/start.S
> +++ b/arch/m68k/cpu/mcf5227x/start.S
> @@ -379,6 +379,22 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	bsr cpu_init_f			/* run low-level CPU init code (from flash) */
>   	bsr board_init_f		/* run low-level board init code (from flash) */
>
> diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S
> index 1702f98..db1cb11 100644
> --- a/arch/m68k/cpu/mcf523x/start.S
> +++ b/arch/m68k/cpu/mcf523x/start.S
> @@ -141,6 +141,22 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	/* run low-level CPU init code (from flash) */
>   	move.l #cpu_init_f, %a1
>   	jsr (%a1)
> diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S
> index 4af691f..e60d51e 100644
> --- a/arch/m68k/cpu/mcf52x2/start.S
> +++ b/arch/m68k/cpu/mcf52x2/start.S
> @@ -198,6 +198,22 @@ _after_flashbar_copy:
>
>   	move.l #__got_start, %a5		/* put relocation table address to a5 */
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	/* run low-level CPU init code (from flash) */
>   	move.l #cpu_init_f, %a1
>   	jsr (%a1)
> diff --git a/arch/m68k/cpu/mcf530x/cpu_init.c b/arch/m68k/cpu/mcf530x/cpu_init.c
> index 80dc239..b09eed8 100644
> --- a/arch/m68k/cpu/mcf530x/cpu_init.c
> +++ b/arch/m68k/cpu/mcf530x/cpu_init.c
> @@ -142,7 +142,7 @@ int cpu_init_r(void)
>   	return 0;
>   }
>
> -void uart_port_conf(void)
> +void uart_port_conf(int port)
>   {
>   }
>
> diff --git a/arch/m68k/cpu/mcf530x/start.S b/arch/m68k/cpu/mcf530x/start.S
> index 097958a..9740b59 100644
> --- a/arch/m68k/cpu/mcf530x/start.S
> +++ b/arch/m68k/cpu/mcf530x/start.S
> @@ -137,6 +137,22 @@ _start:
>   	/* put relocation table address to a5 */
>   	move.l #__got_start, %a5
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	/* run low-level CPU init code (from flash) */
>   	bsr cpu_init_f
>
> diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S
> index 131ad6e..558c8d5 100644
> --- a/arch/m68k/cpu/mcf532x/start.S
> +++ b/arch/m68k/cpu/mcf532x/start.S
> @@ -155,6 +155,22 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	/* run low-level CPU init code (from flash) */
>   	move.l #cpu_init_f, %a1
>   	jsr (%a1)
> diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S
> index f50f147..49c8d30 100644
> --- a/arch/m68k/cpu/mcf5445x/start.S
> +++ b/arch/m68k/cpu/mcf5445x/start.S
> @@ -664,6 +664,22 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	/* run low-level CPU init code (from flash) */
>   	move.l #cpu_init_f, %a1
>   	jsr (%a1)
> diff --git a/arch/m68k/cpu/mcf547x_8x/start.S b/arch/m68k/cpu/mcf547x_8x/start.S
> index 75de22d..34cfbf0 100644
> --- a/arch/m68k/cpu/mcf547x_8x/start.S
> +++ b/arch/m68k/cpu/mcf547x_8x/start.S
> @@ -148,6 +148,22 @@ _start:
>
>   	move.l #__got_start, %a5	/* put relocation table address to a5 */
>
> +#if defined(CONFIG_SYS_MALLOC_F)
> +	move.l	#(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp
> +
> +	/* allocate reserved area from current top of stack */
> +	move.l	%sp, -(%sp)
> +	bsr	board_init_f_alloc_reserve
> +
> +	/* update stack and frame-pointers */
> +	move.l	%d0, %sp
> +	move.l	%sp, %fp
> +
> +	/* initialize reserved area */
> +	move.l	%d0, -(%sp)
> +	bsr	board_init_f_init_reserve
> +#endif
> +
>   	jbsr cpu_init_f			/* run low-level CPU init code (from flash) */
>   	jbsr board_init_f		/* run low-level board init code (from flash) */
>
>


More information about the U-Boot mailing list