[PATCH 1/2] UBUNTU: Enable caching and buffering of whole RAM in the decompressor
Vojtech Bocek
vbocek at gmail.com
Thu Nov 22 19:45:32 UTC 2012
OriginalAuthor: Mike Kasick <mike at kasick.org>
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 <vbocek at gmail.com>
---
arch/arm/boot/compressed/head.S | 6 ++++++
arch/arm/mach-tegra/include/mach/memory.h | 4 ++++
2 files changed, 10 insertions(+)
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.10.4
More information about the kernel-team
mailing list