[U-Boot] [PATCH v2 3/3] avr32: Add simple paging support

Reinhard Meyer u-boot at emk-elektronik.de
Fri Sep 3 16:38:20 CEST 2010


Haavard Skinnemoen schrieb:
> Use the MMU hardware to set up 1:1 mappings between physical and virtual
> addresses. This allows us to bypass the cache when accessing the flash
> without having to do any physical-to-virtual address mapping in the CFI
> driver.
> 
> The virtual memory mappings are defined at compile time through a sorted
> array of virtual memory range objects. When a TLB miss exception
> happens, the exception handler does a binary search through the array
> until it finds a matching entry and loads it into the TLB. The u-boot
> image itself is covered by a fixed TLB entry which is never replaced.
> 
> This makes the 'saveenv' command work again on ATNGW100 and other boards
> using the CFI driver, hopefully without breaking any rules.
> 
> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen at atmel.com>
> ---
>  arch/avr32/cpu/at32ap700x/Makefile                 |    2 +-
>  arch/avr32/cpu/at32ap700x/mmu.c                    |   78 ++++++++++++++++++++
>  arch/avr32/cpu/start.S                             |   19 +++--
>  arch/avr32/include/asm/arch-at32ap700x/addrspace.h |    5 +-
>  arch/avr32/include/asm/arch-at32ap700x/mmu.h       |   66 +++++++++++++++++
>  arch/avr32/lib/board.c                             |    4 +
>  board/atmel/atngw100/atngw100.c                    |   15 ++++
>  board/atmel/atstk1000/atstk1000.c                  |   15 ++++
>  board/earthlcd/favr-32-ezkit/favr-32-ezkit.c       |   15 ++++
>  board/mimc/mimc200/mimc200.c                       |   20 +++++
>  board/miromico/hammerhead/hammerhead.c             |   15 ++++
>  include/configs/atngw100.h                         |    3 +
>  include/configs/atstk1002.h                        |    3 +
>  include/configs/atstk1003.h                        |    3 +
>  include/configs/atstk1004.h                        |    3 +
>  include/configs/atstk1006.h                        |    3 +
>  include/configs/favr-32-ezkit.h                    |    3 +
>  include/configs/hammerhead.h                       |    3 +
>  include/configs/mimc200.h                          |    3 +
>  19 files changed, 267 insertions(+), 11 deletions(-)
>  create mode 100644 arch/avr32/cpu/at32ap700x/mmu.c
>  create mode 100644 arch/avr32/include/asm/arch-at32ap700x/mmu.h
Applied to u-boot-atmel/avr32
Thanks,
Reinhard



More information about the U-Boot mailing list