[U-Boot-Users] [DNX#2006091242000078] [PATCH] Add support for variable flash memory size [...]

DENX Support System support at denx.de
Tue Sep 12 23:20:02 CEST 2006


Hello list,

inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006091242000078] was created:

<snip>
> From: Timur Tabi <timur at freescale.com>
> 
> CHANGELOG:
> 
> * On 83xx systems, use the CFG_FLASH_SIZE macro to program the LBC local
> access
>   window registers, instead of using a hard-coded value of 8MB. 
> 
> Signed-off-by: Timur Tabi <timur at freescale.com>
> ---
>  cpu/mpc83xx/start.S |   28 ++++++++++++++++++++--------
>  1 files changed, 20 insertions(+), 8 deletions(-)
> 
> diff --git a/cpu/mpc83xx/start.S b/cpu/mpc83xx/start.S
> index 6e02cce..9a90947 100644
> --- a/cpu/mpc83xx/start.S
> +++ b/cpu/mpc83xx/start.S
> @@ -2,7 +2,7 @@
>   * Copyright (C) 1998  Dan Malek <dmalek at jlc.net>
>   * Copyright (C) 1999  Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se>
>   * Copyright (C) 2000, 2001,2002 Wolfgang Denk <wd at denx.de>
> - * Copyright 2004 Freescale Semiconductor, Inc.
> + * Copyright (C) 2004-2006 Freescale Semiconductor, Inc.
>   *
>   * See file CREDITS for list of people who contributed to this
>   * project.
> @@ -1214,8 +1214,15 @@ map_flash_by_law1:
>  	lis r4, (CFG_FLASH_BASE)@h
>  	ori r4, r4, (CFG_FLASH_BASE)@l
>  	stw r4, LBLAWBAR1(r3) /* LBLAWBAR1 <= CFG_FLASH_BASE */
> -	lis r4, (0x80000016)@h
> -	ori r4, r4, (0x80000016)@l
> +
> +	/* Store 0x80000012 + log2(CFG_FLASH_SIZE) into LBLAWAR1 */
> +	lis r4, (0x80000012)@h
> +	ori r4, r4, (0x80000012)@l
> +	li r5, CFG_FLASH_SIZE
> +1:	srawi. r5, r5, 1	/* r5 = r5 >> 1 */
> +	addi r4, r4, 1
> +	bne 1b
> +
>  	stw r4, LBLAWAR1(r3) /* LBLAWAR1 <= 8MB Flash Size */
>  	blr
>  
> @@ -1234,17 +1241,22 @@ remap_flash_by_law0:
>  	stw r5, BR0(r3) /* r5 <= (CFG_FLASH_BASE & 0xFFFF8000) | (BR0 &
> 0x00007FFF) */
>  
>  	lwz r4, OR0(r3)
> -	lis r5, 0xFF80 /* 8M */
> +	lis r5, ~((CFG_FLASH_SIZE << 4) - 1)
>  	or r4, r4, r5
> -	stw r4, OR0(r3) /* OR0 <= OR0 | 0xFF800000 */
> +	stw r4, OR0(r3)
>  
>  	lis r4, (CFG_FLASH_BASE)@h
>  	ori r4, r4, (CFG_FLASH_BASE)@l
>  	stw r4, LBLAWBAR0(r3) /* LBLAWBAR0 <= CFG_FLASH_BASE */
>  
> -	lis r4, (0x80000016)@h
> -	ori r4, r4, (0x80000016)@l
> -	stw r4, LBLAWAR0(r3) /* LBLAWAR0 <= 8MB Flash Size */
> +	/* Store 0x80000012 + log2(CFG_FLASH_SIZE) into LBLAWAR0 */
> +	lis r4, (0x80000012)@h
> +	ori r4, r4, (0x80000012)@l
> +	li r5, CFG_FLASH_SIZE
> +1:	srawi. r5, r5, 1 /* r5 = r5 >> 1 */
> +	addi r4, r4, 1
> +	bne 1b
> +	stw r4, LBLAWAR0(r3) /* LBLAWAR0 <= Flash Size */
>  
>  	xor r4, r4, r4
>  	stw r4, LBLAWBAR1(r3)
> -- 
> 1.4.2
</snip>

Your U-Boot support team




More information about the U-Boot mailing list