Here's where I am on this MMU problem I am having:
Configuration: Linux 2.3.29 with RMK patch applied to head-armv.S
Problem: Hangs when enabling the MMU
The problem seems to be in the translation of the memory addresses. I
placed an output to the rs232 port right after the __mmap_switched
label to determine if I ever reach that location after the MMU is
enabled. I have the DEBUG_LL switch enabled, so the MMU translates the
0x42000000 base address to 0xFE000000. I used 0xFE000000 base address.
Then I tried making changes to the translation table to see if I ever
got to __mmap_switched.
I verified the following settings in the translation table
0x4000 = table start address
0x7000 = 0x00000C0e (Maps 0xC0000000 to 0x00000000)
0x7004 = 0x00100C0E (Maps 0xC0100000 to 0x00100000)
1. Standard setup
Normal translation of memory and I/O
- Nothing displayed -
2. Same setup as 1 with the following changes:
0x4000 = 0x00000C02 or 0x00000C0E
0x4004 = 0x00100C02 or 0x00100C0E
bits 31:30 cleared in __mmap_switched address
This does a one for one map of low addresses
- Data Displayed with or without cache enabled -
3. Same setup as 1 with the following changes
0x7000 = 0x00000C02
0x7004 = 0x00100C02
This turns mapping on and cache off
- Nothing displayed -
Results:
Caching works
I/O mapping (0x42000000 -> 0xFE000000) works
Memory mapping (0xC0000000 -> 0x00000000) does not work
Any ideas?
Thanks Dave
__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://messenger.yahoo.com
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]
++ Please use [EMAIL PROTECTED] for ++
++ kernel-related discussions. ++