[U-Boot] D-Cache support for ARM?
Dirk Behme
dirk.behme at googlemail.com
Sun Aug 16 20:53:21 CEST 2009
Hi,
does anybody have some D-Cache enable code for ARM he likes to share?
I'm thinking about some generic code which takes MMU configuration
from board config and sets up a 16k first level page table (1MB only
pages). With this, D-Cache can be enabled for the specified memory
regions and is flushed/disabled again before U-Boot exit.
MMU config entries in board config could look like
CONFIG_ARM_MMU_FIRST_LEVEL_ENTRY( \
<physical/virtual base address>, // 1:1 mapping \
<size in MB>, \
<cacheable/noncachable>, \
<bufferable/nonbufferable> )
E.g.
CONFIG_ARM_MMU_FIRST_LEVEL_ENTRY(0x000, 16, NONCACHEABLE,
NONBUFFERABLE) // 16MB NOR
CONFIG_ARM_MMU_FIRST_LEVEL_ENTRY(0x100, 128, CACHEABLE, BUFFERABLE)
// 128 MB RAM
CONFIG_ARM_MMU_FIRST_LEVEL_ENTRY(0xF00, 1, NONCACHEABLE,
NONBUFFERABLE) // 1MB register window
Having only a 1:1 mapping (physical/virtual) would be sufficient in a
first step, as we are only interested in D-Cache support here (using
the same memory map as currently done without MMU).
Opinions?
Best regards
Dirk
More information about the U-Boot
mailing list