Re: Linux on RiscPC with Arm610

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Russell King - ARM Linux
Date:  
To: Peter Teichmann
CC: linux-arm-kernel
Subject: Re: Linux on RiscPC with Arm610
On Thu, Aug 07, 2003 at 11:21:33PM +0200, Peter Teichmann wrote:
> Kernel 2.4.15-rmk1: If I apply the same change (use late abort model in
> .../head.S) the kernel nearly works fine. However, it fails enabling
> swap space but after that the system just runs without swap.


ARM610 is supposed to be using the early abort model. Using the late
abort model with its corresponding software overhead is just silly
when the CPU supports the early abort model.

You really want to enable the low level debugging, add the printascii()
call into printk() and monitor the serial port to find out why it isn't
working.

I suspect that part of the problem will be this:

        /*
         * FIXME: CP15 C1 is write only on ARMv3 architectures.
         * You really need to read the value in the page table
         * register, not a copy.
         */
        pgd = cpu_get_pgd() + offset;


You can't read the MMU page table base register on both the ARM610 and
ARM710 CPUs. However, since Linux doesn't disable interrupts over the
context switch, we can't rely on the copies in the task structure.

I've not bothered fixing this because I believe it unfairly impacts
current production CPUs too much. However, if someone wants to fix
it and submit a patch which won't affect ARMv4 and above CPUs...