Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d4e1c889c1ec547371227558e1da5f2f50c7dd5e
Commit:     d4e1c889c1ec547371227558e1da5f2f50c7dd5e
Parent:     d28122a5877cc40350fa801353fd5a9350563ec3
Author:     Linus Walleij <[EMAIL PROTECTED]>
AuthorDate: Sun Jan 21 20:08:33 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Wed Jan 24 11:59:57 2007 +0000

    [ARM] 4102/1: Allow for PHYS_OFFSET on any valid 2MiB address
    
    This patchs allows the offset to the first page of
    physical memory to be on any 2MB boundary
    whereas the previous code could only handle psysical
    offset to any 16MB boundary (0xNN000000) or any 1MB
    boundary below 0x01000000 (e.g. 0x00N00000). The
    problem is a consequence of the orr one-byte syntax,
    so we fix this and we can place the first bank of
    memory at 0x28e00000. I have also included an explicit
    check that disallow compilation when PHYS_OFFSET is
    not on a 2MiB boundary. head.S would be the proper place
    to have this at since this is the first file that
    attempts to use PHYS_OFFSET during compile.
    
    Signed-off-by: Linus Walleij <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/kernel/head.S |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index d994561..cf495a3 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -22,6 +22,10 @@
 #include <asm/thread_info.h>
 #include <asm/system.h>
 
+#if (PHYS_OFFSET & 0x001fffff)
+#error "PHYS_OFFSET must be at an even 2MiB boundary!"
+#endif
+
 #define KERNEL_RAM_VADDR       (PAGE_OFFSET + TEXT_OFFSET)
 #define KERNEL_RAM_PADDR       (PHYS_OFFSET + TEXT_OFFSET)
 
@@ -251,7 +255,8 @@ __create_page_tables:
         * Then map first 1MB of ram in case it contains our boot params.
         */
        add     r0, r4, #PAGE_OFFSET >> 18
-       orr     r6, r7, #PHYS_OFFSET
+       orr     r6, r7, #(PHYS_OFFSET & 0xff000000)
+       orr     r6, r6, #(PHYS_OFFSET & 0x00e00000)
        str     r6, [r0]
 
 #ifdef CONFIG_XIP_KERNEL
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to