[U-Boot] [PATCH v2 2/3] avr32: Use uncached() macro to get an address for SDRAM init

Detlev Zundel dzu at denx.de
Thu Aug 12 17:04:28 CEST 2010


Hi Haavard,

> The paging system which is required to set up caching properties has not
> yet been initialized when the SDRAM is initialized. So when the
> map_physmem() function is converted to return the physical address
> unchanged, the SDRAM initialization will break on some boards.
>
> The avr32-specific uncached() macro will return an address which will
> always cause uncached accessed to be made. Since this happens in the
> board code, using avr32-specific features should be ok, and will allow
> the SDRAM initialization to keep working.
>
> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen at atmel.com>
> ---
>  board/atmel/atngw100/atngw100.c              |    4 +---
>  board/atmel/atstk1000/atstk1000.c            |    4 +---
>  board/earthlcd/favr-32-ezkit/favr-32-ezkit.c |    4 +---
>  board/mimc/mimc200/mimc200.c                 |    4 +---
>  board/miromico/hammerhead/hammerhead.c       |    4 +---
>  5 files changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/board/atmel/atngw100/atngw100.c b/board/atmel/atngw100/atngw100.c
> index 004d8da..4580f55 100644
> --- a/board/atmel/atngw100/atngw100.c
> +++ b/board/atmel/atngw100/atngw100.c
> @@ -75,13 +75,11 @@ phys_size_t initdram(int board_type)
>  	unsigned long actual_size;
>  	void *sdram_base;
>  
> -	sdram_base = map_physmem(EBI_SDRAM_BASE, EBI_SDRAM_SIZE, MAP_NOCACHE);
> +	sdram_base = uncached(EBI_SDRAM_BASE);
>  
>  	expected_size = sdram_init(sdram_base, &sdram_config);
>  	actual_size = get_ram_size(sdram_base, expected_size);
>  
> -	unmap_physmem(sdram_base, EBI_SDRAM_SIZE);
> -

So this patch replaces a construct which seems to be valid over all
architectures by a construct which is only used in avr32, right?  It
also deletes the explicit statement that such a mapping is not needed
any further.

Isn't this a step backward?  Can't you put the functionality inside the
map function and leave the unmap a noop?

Cheers
  Detlev

-- 
Man against god... God against Man... Man against nature... Nature against
man...   God against nature...   Nature against god...  a very, very funny
religion.             -- Zen Master D.T. Suzuki commenting on Christianity
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the U-Boot mailing list