Created
January 4, 2013 23:50
-
-
Save Tasssadar/4458581 to your computer and use it in GitHub Desktop.
Support copying of atags in the decompressor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 5cfa09ccacd3722ef4cfe81b7db098d52c584336 Mon Sep 17 00:00:00 2001 | |
From: Vojtech Bocek <[email protected]> | |
Date: Thu, 22 Nov 2012 20:45:32 +0100 | |
Subject: [PATCH] UBUNTU: Enable caching and buffering of whole RAM in the decompressor | |
OriginalAuthor: Mike Kasick <[email protected]> | |
Ported from Jens Andersen <[email protected]>'s | |
kernel for Asus TF201 [3]. | |
[1] N7 kernel: http://kernel.ubuntu.com/git?p=hwe/ubuntu-nexus7.git | |
[2] Hardboot: http://forum.xda-developers.com/showthread.php?t=1266827 | |
[3] Original repository: http://git.io/EXpn2A | |
https://lists.ubuntu.com/archives/kernel-team/2012-November/023076.html | |
This is to speed-up booting if this kernel is booted using | |
kexec-hardboot. Without this patch, decompressor is very slow | |
to decompress, because it is located far above the kernel destination. | |
Signed-off-by: Vojtech Bocek <[email protected]> | |
Acked-by: Jani Monoses <[email protected]> | |
Signed-off-by: Tim Gardner <[email protected]> | |
--- | |
arch/arm/boot/compressed/head.S | 6 ++++++ | |
arch/arm/mach-tegra/include/mach/memory.h | 4 ++++ | |
2 files changed, 10 insertions(+), 0 deletions(-) | |
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S | |
index 24701d6..401efb4 100644 | |
--- a/arch/arm/boot/compressed/head.S | |
+++ b/arch/arm/boot/compressed/head.S | |
@@ -9,6 +9,7 @@ | |
* published by the Free Software Foundation. | |
*/ | |
#include <linux/linkage.h> | |
+#include <asm/memory.h> | |
/* | |
* Debugging stuff | |
@@ -467,9 +468,14 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size | |
* bits for the RAM area only. | |
*/ | |
mov r0, r3 | |
+#if defined(PLAT_PHYS_OFFSET) && defined(END_MEM) | |
+ mov r9, #PLAT_PHYS_OFFSET @ start of RAM | |
+ ldr r10, =END_MEM @ end of RAM | |
+#else | |
mov r9, r0, lsr #18 | |
mov r9, r9, lsl #18 @ start of RAM | |
add r10, r9, #0x10000000 @ a reasonable RAM size | |
+#endif | |
mov r1, #0x12 | |
orr r1, r1, #3 << 10 | |
add r2, r3, #16384 | |
diff --git a/arch/arm/mach-tegra/include/mach/memory.h b/arch/arm/mach-tegra/include/mach/memory.h | |
index 5f51066..c243a32 100644 | |
--- a/arch/arm/mach-tegra/include/mach/memory.h | |
+++ b/arch/arm/mach-tegra/include/mach/memory.h | |
@@ -29,6 +29,10 @@ | |
#define PLAT_PHYS_OFFSET UL(0x80000000) | |
#endif | |
+#if defined(CONFIG_MACH_GROUPER) | |
+#define END_MEM UL(0xBEA00000) | |
+#endif | |
+ | |
/* | |
* Unaligned DMA causes tegra dma to place data on 4-byte boundary after | |
* expected address. Call to skb_reserve(skb, NET_IP_ALIGN) was causing skb | |
-- | |
1.7.0.4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment