[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    Re: [patch] Cleanup of head.S?
From:       Russell King - ARM Linux <linux () arm ! linux ! org ! uk>
Date:       2003-02-25 9:09:39
[Download RAW message or body]

On Tue, Feb 25, 2003 at 08:48:32AM +0100, Dirk Behme wrote:
> - In macros pgtbl and krnladr rambase is never used. Remove it and
> remove register r5 in macro usage.

This is fine.

> - With my architecture (SDRAM PHYS @ 0x00000000, kernel @ 0xC0008000) 
> the MMU table entry for the first MB is written three times (0x00000C1E 
> to 0x7000):

As you've guessed, these come into play when things aren't so nicely
aligned.

> 1.	bic	r2, r3, #0x00f00000
> 	str	r2, [r0]		@ PAGE_OFFSET + 0MB
> 
> 2.	add	r0, r0, #(TEXTADDR & 0x00f00000) >> 18
>   	str	r3, [r0], #4		@ KERNEL + 0MB	
> 
> 3.	bic	r0, r0, #0x01f00000 >> 18 @ round down
> 	and	r2, r5, #0xfe000000	@ round down
> 	add	r3, r8, r2		@ flags + rambase
> 	str	r3, [r0]

Eg, take PAGE_OFFSET = 0xc0000000, PHYS_OFFSET = 0, TEXTADDR = 0xc0208000

1 - sets 1MB map for address 0xc0000000 pointing at 0x00000000 so we can
    access the tagged list at physical 0x00000100.
2 - sets 4MB map at 0xc0200000 pointing at 0x00200000.
3 - sets 1MB map at 0xc0000000 pointing at 0x00000000.

I suspect we can kill (3) without hurting stuff that's merged into the
-rmk tree, although I'm sure there's a reason it existed.  I'll have
to check my mail archives, but I think there was a machine that required,
but it appears not to be merged.

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ/Etiquette:       http://www.arm.linux.org.uk/armlinux/mailinglists.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic