avr32: Add simple paging support
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@atmel.com>
Showing
- arch/avr32/cpu/at32ap700x/Makefile 1 addition, 1 deletionarch/avr32/cpu/at32ap700x/Makefile
- arch/avr32/cpu/at32ap700x/mmu.c 78 additions, 0 deletionsarch/avr32/cpu/at32ap700x/mmu.c
- arch/avr32/cpu/start.S 13 additions, 6 deletionsarch/avr32/cpu/start.S
- arch/avr32/include/asm/arch-at32ap700x/addrspace.h 1 addition, 4 deletionsarch/avr32/include/asm/arch-at32ap700x/addrspace.h
- arch/avr32/include/asm/arch-at32ap700x/mmu.h 66 additions, 0 deletionsarch/avr32/include/asm/arch-at32ap700x/mmu.h
- arch/avr32/lib/board.c 4 additions, 0 deletionsarch/avr32/lib/board.c
- board/atmel/atngw100/atngw100.c 15 additions, 0 deletionsboard/atmel/atngw100/atngw100.c
- board/atmel/atstk1000/atstk1000.c 15 additions, 0 deletionsboard/atmel/atstk1000/atstk1000.c
- board/earthlcd/favr-32-ezkit/favr-32-ezkit.c 15 additions, 0 deletionsboard/earthlcd/favr-32-ezkit/favr-32-ezkit.c
- board/mimc/mimc200/mimc200.c 20 additions, 0 deletionsboard/mimc/mimc200/mimc200.c
- board/miromico/hammerhead/hammerhead.c 15 additions, 0 deletionsboard/miromico/hammerhead/hammerhead.c
- include/configs/atngw100.h 3 additions, 0 deletionsinclude/configs/atngw100.h
- include/configs/atstk1002.h 3 additions, 0 deletionsinclude/configs/atstk1002.h
- include/configs/atstk1003.h 3 additions, 0 deletionsinclude/configs/atstk1003.h
- include/configs/atstk1004.h 3 additions, 0 deletionsinclude/configs/atstk1004.h
- include/configs/atstk1006.h 3 additions, 0 deletionsinclude/configs/atstk1006.h
- include/configs/favr-32-ezkit.h 3 additions, 0 deletionsinclude/configs/favr-32-ezkit.h
- include/configs/hammerhead.h 3 additions, 0 deletionsinclude/configs/hammerhead.h
- include/configs/mimc200.h 3 additions, 0 deletionsinclude/configs/mimc200.h
Loading
Please register or sign in to comment