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.                      ++

Reply via email to