I have made the following changes intended for : CE:Adaptation:N950-N9 / kernel-adaptation-n950
Please review and accept or decline. BOSS has already run some checks on this request. See the "Messages from BOSS" section below. https://build.pub.meego.com//request/show/3251 Thank You, bossbot ([email protected]) [This message was auto-generated] --- Request # 3251: Messages from BOSS: WARNING check_package_is_complete_sources (kernel-adaptation-n950) failed: Failed to parse spec file: can't parse specfile WARNING check_valid_changes (kernel-adaptation-n950) failed: Latest changelog version '2.6.32.20112201' does not match version in spec file Could not notify CE-maintainers (no address found) State: review 2011-11-24T20:16:15 bossbot Reviews: accepted by bossbot : Prechecks completed; none failed. new by None Changes: submit: home:marquiz:n950 / kernel-adaptation-n950 -> CE:Adaptation:N950-N9 / kernel-adaptation-n950 changes files: -------------- --- kernel-adaptation-n950.changes +++ kernel-adaptation-n950.changes @@ -0,0 +1,4 @@ +* Wed Nov 23 2011 Markus Lehtonen <[email protected]> - 2.6.32.20112201 +- kexec patchset (and enable kexec in config) +- initramfs hack to be able to load gzipped cpio initrd + new: ---- 0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch 0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch 0102-ARM-Implement-cpu_v7_reset.patch 0103-ARMv7-disable-L2-cache.patch 0104-ARMv7-adds-sec-extensions-for-armv7.patch 0105-Fix-for-new-assembler-build-problem.patch 0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch spec files: ----------- --- kernel-adaptation-n950.spec +++ kernel-adaptation-n950.spec @@ -267,6 +267,17 @@ Patch86: backport_media_ioc_definitions.patch Patch87: make-omap-iommu-build-in.patch +# Kexec fixes +Patch88: 0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch +Patch89: 0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch +Patch90: 0102-ARM-Implement-cpu_v7_reset.patch +Patch91: 0103-ARMv7-disable-L2-cache.patch +Patch92: 0104-ARMv7-adds-sec-extensions-for-armv7.patch +Patch93: 0105-Fix-for-new-assembler-build-problem.patch + +# Initramfs hack +Patch94: 0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch + BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -572,6 +583,24 @@ # make-omap-iommu-build-in.patch %patch87 -p1 +# Kexec fixes +# 0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch +%patch88 -p1 +# 0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch +%patch89 -p1 +# 0102-ARM-Implement-cpu_v7_reset.patch +%patch90 -p1 +# 0103-ARMv7-disable-L2-cache.patch +%patch91 -p1 +# 0104-ARMv7-adds-sec-extensions-for-armv7.patch +%patch92 -p1 +# 0105-Fix-for-new-assembler-build-problem.patch +%patch93 -p1 + +# Initramfs hack +# 0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch +%patch94 -p1 + # Drop some necessary files from the source dir into the buildroot # HARMATTAN: no build-time config file generation, copy ready-made config file cp $RPM_SOURCE_DIR/kernel-*config . other changes: -------------- ++++++ 0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch (new) --- 0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch +++ 0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch @@ -0,0 +1,34 @@ +From 3ed095ef5d9d155239d2b9b0f91ba81fdb670fed Mon Sep 17 00:00:00 2001 +From: Tony Lindgren <[email protected]> +Date: Fri, 18 Nov 2011 00:58:05 +0200 +Subject: [PATCH 100/106] arm: Fix cpu_proc_fin() for proc-v7.S and make kexec + work + +We need to do that if we tinker with the MMU entries. + +This fixes the occasional bug with kexec where the new +fails to uncompress with "crc error". Most likely at +least kexec on v6 and v7 need this fix. + +Signed-off-by: Tony Lindgren <tony at atomide.com> +--- + arch/arm/mm/mmu.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c +index d291280..8440ac2 100644 +--- a/arch/arm/mm/mmu.c ++++ b/arch/arm/mm/mmu.c +@@ -977,6 +977,9 @@ static void __init map_lowmem(void) + + create_mapping(&map); + } ++ ++ local_flush_tlb_all(); ++ flush_cache_all(); + } + + /* +-- +1.7.7 + ++++++ 0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch (new) --- 0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch +++ 0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch @@ -0,0 +1,114 @@ +From 167527e14c64c471091872f2320397050d4df5ca Mon Sep 17 00:00:00 2001 +From: Tony Lindgren <[email protected]> +Date: Fri, 18 Nov 2011 00:58:45 +0200 +Subject: [PATCH 101/106] arm: Fix init_atags_procfs() to check tag->hdr.size + +The tag->hdr.size cannot be larger than XXX. +Otherwise we can getsomething similar during boot: + +Unable to handle kernel paging request at virtual address 61a05020 +... + +Signed-off-by: Tony Lindgren <tony at atomide.com> +--- + arch/arm/include/asm/setup.h | 12 +++++++++--- + arch/arm/kernel/atags.c | 2 +- + arch/arm/kernel/compat.c | 2 +- + arch/arm/kernel/setup.c | 4 ++-- + arch/arm/mach-orion5x/common.c | 2 +- + 5 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h +index 3e650db..8968916 100644 +--- a/arch/arm/include/asm/setup.h ++++ b/arch/arm/include/asm/setup.h +@@ -21,6 +21,11 @@ + /* The list ends with an ATAG_NONE node. */ + #define ATAG_NONE 0x00000000 + ++/* Some sanity checks are needed */ ++#define ATAG_MAX_SZ PAGE_SIZE ++#define atag_valid(tag) \ ++ ((tag)->hdr.size && ((tag)->hdr.size <= ATAG_MAX_SZ)) ++ + struct tag_header { + __u32 size; + __u32 tag; +@@ -173,9 +178,10 @@ struct tagtable { + int (*parse)(const struct tag *); + }; + +-#define tag_member_present(tag,member) \ +- ((unsigned long)(&((struct tag *)0L)->member + 1) \ +- <= (tag)->hdr.size * 4) ++#define tag_member_present(tag,member) \ ++ (atag_valid(tag) && \ ++ (((unsigned long)(&((struct tag *)0L)->member + 1) \ ++ <= (tag)->hdr.size * 4)) + + #define tag_next(t) ((struct tag *)((__u32 *)(t) + (t)->hdr.size)) + #define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2) +diff --git a/arch/arm/kernel/atags.c b/arch/arm/kernel/atags.c +index 42a1a14..14d0993 100644 +--- a/arch/arm/kernel/atags.c ++++ b/arch/arm/kernel/atags.c +@@ -51,7 +51,7 @@ static int __init init_atags_procfs(void) + return -EINVAL; + } + +- for (; tag->hdr.size; tag = tag_next(tag)) ++ for (; atag_valid(tag); tag = tag_next(tag)) + ; + + /* include the terminating ATAG_NONE */ +diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c +index 0a13854..3e63ee1 100644 +--- a/arch/arm/kernel/compat.c ++++ b/arch/arm/kernel/compat.c +@@ -220,7 +220,7 @@ void __init convert_to_tag_list(struct tag *tags) + + void __init squash_mem_tags(struct tag *tag) + { +- for (; tag->hdr.size; tag = tag_next(tag)) ++ for (; atag_valid(tag); tag = tag_next(tag)) + if (tag->hdr.tag == ATAG_MEM) + tag->hdr.tag = ATAG_NONE; + } +diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c +index 0f61346..e43ce72 100644 +--- a/arch/arm/kernel/setup.c ++++ b/arch/arm/kernel/setup.c +@@ -561,7 +561,7 @@ request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc) + */ + static int __init parse_tag_core(const struct tag *tag) + { +- if (tag->hdr.size > 2) { ++ if ((atag_valid(tag) && (tag->hdr.size > 2))) { + if ((tag->u.core.flags & 1) == 0) + root_mountflags &= ~MS_RDONLY; + ROOT_DEV = old_decode_dev(tag->u.core.rootdev); +@@ -665,7 +665,7 @@ static int __init parse_tag(const struct tag *tag) + */ + static void __init parse_tags(const struct tag *t) + { +- for (; t->hdr.size; t = tag_next(t)) ++ for (; atag_valid(t); t = tag_next(t)) + if (!parse_tag(t)) + printk(KERN_WARNING + "Ignoring unrecognised tag 0x%08x\n", +diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c +index f87fa12..8afee34 100644 +--- a/arch/arm/mach-orion5x/common.c ++++ b/arch/arm/mach-orion5x/common.c +@@ -717,7 +717,7 @@ void __init orion5x_init(void) + void __init tag_fixup_mem32(struct machine_desc *mdesc, struct tag *t, + char **from, struct meminfo *meminfo) + { +- for (; t->hdr.size; t = tag_next(t)) ++ for (; atag_valid(t); t = tag_next(t)) + if (t->hdr.tag == ATAG_MEM && + (!t->u.mem.size || t->u.mem.size & ~PAGE_MASK || + t->u.mem.start & ~PAGE_MASK)) { +-- +1.7.7 + ++++++ 0102-ARM-Implement-cpu_v7_reset.patch (new) --- 0102-ARM-Implement-cpu_v7_reset.patch +++ 0102-ARM-Implement-cpu_v7_reset.patch @@ -0,0 +1,71 @@ +From ebb10c8ae721bc51334bda089a2e31f34769bbee Mon Sep 17 00:00:00 2001 +From: Mika Westerberg <[email protected]> +Date: Thu, 17 Nov 2011 20:26:29 +0200 +Subject: [PATCH 102/106] ARM: Implement cpu_v7_reset + +--- + arch/arm/mm/proc-v7.S | 45 ++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 44 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S +index 7aaf88a..e7d6b59 100644 +--- a/arch/arm/mm/proc-v7.S ++++ b/arch/arm/mm/proc-v7.S +@@ -66,10 +66,53 @@ ENDPROC(cpu_v7_proc_fin) + */ + .align 5 + ENTRY(cpu_v7_reset) +- mov pc, r0 ++ /* ++ * ARM Cortex-A8 TRM chapter 6.4 says: ++ * ++ * After a CP15 c1 instruction disables the MMU, the processor ++ * flushes all following instructions in the pipeline. The processor ++ * then begins refetching instructions and uses flat address mapping. ++ * In flat address mapping, PA = VA. ++ * ++ * This means that in Cortex-A8 we need to disable the MMU through the ++ * identity mapped region. ++ */ ++ mrc p15, 0, r5, c0, c0, 0 @ read main ID register ++ and r6, r5, #0xff000000 @ ARM? ++ teq r6, #0x41000000 ++ bne __disable_mmu ++ ++ mov r6, #0x0000ff00 @ check primary part number ++ orr r6, r6, #0x00f0 @ bits [15:4] ++ and r6, r6, r5 ++ ++ mov r5, #0xc000 @ is it Cortex-A8 (0xc080)? ++ orr r5, r5, #0x0080 ++ teq r5, r6 ++ bne __disable_mmu ++ ++ /* ++ * This is Cortex-A8 so call via identity mapping. ++ */ ++ ldr pc, =__virt_to_phys(__disable_mmu) + ENDPROC(cpu_v7_reset) + + /* ++ * Disables the MMU and jumps into address given in r0. ++ */ ++__disable_mmu: ++ mov ip, #0 ++#ifdef CONFIG_MMU ++ mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs ++#endif ++ mrc p15, 0, ip, c1, c0, 0 @ ctrl register ++ bic ip, ip, #0x000f @ ............wcam ++ bic ip, ip, #0x1100 @ ...i...s........ ++ mcr p15, 0, ip, c1, c0, 0 @ ctrl register ++ mov pc, r0 ++ENDPROC(__disable_mmu) ++ ++/* + * cpu_v7_do_idle() + * + * Idle the processor (eg, wait for interrupt). +-- +1.7.7 + ++++++ 0103-ARMv7-disable-L2-cache.patch (new) --- 0103-ARMv7-disable-L2-cache.patch +++ 0103-ARMv7-disable-L2-cache.patch @@ -0,0 +1,29 @@ +From 0ab9de081f82a08f1a03087e54c57c314d961a32 Mon Sep 17 00:00:00 2001 +From: Mika Westerberg <[email protected]> +Date: Fri, 18 Mar 2011 12:58:42 +0200 +Subject: [PATCH 103/106] ARMv7: disable L2 cache + +Signed-off-by: Mika Westerberg <[email protected]> +--- + arch/arm/mm/proc-v7.S | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S +index e7d6b59..6ab82d3 100644 +--- a/arch/arm/mm/proc-v7.S ++++ b/arch/arm/mm/proc-v7.S +@@ -48,6 +48,11 @@ ENTRY(cpu_v7_proc_fin) + stmfd sp!, {lr} + cpsid if @ disable interrupts + bl v7_flush_kern_cache_all ++ ++ mrc p15, 0, r0, c1, c0, 1 @ aux ctrl register ++ bic r0, r0, #0x2 @ L2EN ++ mcr p15, 0, r0, c1, c0, 1 @ disable L2 cache ++ + mrc p15, 0, r0, c1, c0, 0 @ ctrl register + bic r0, r0, #0x1000 @ ...i............ + bic r0, r0, #0x0006 @ .............ca. +-- +1.7.7 + ++++++ 0104-ARMv7-adds-sec-extensions-for-armv7.patch (new) --- 0104-ARMv7-adds-sec-extensions-for-armv7.patch +++ 0104-ARMv7-adds-sec-extensions-for-armv7.patch @@ -0,0 +1,220 @@ +From 53515e20a0fc37b57847cddf37615aa415711fba Mon Sep 17 00:00:00 2001 +From: Markus Lehtonen <[email protected]> +Date: Fri, 18 Nov 2011 15:43:28 +0200 +Subject: [PATCH 104/106] ARMv7: adds sec extensions for armv7 + +Adopted from kernel-moslo package. Don't know original author of the +patch. +--- + arch/arm/mach-omap2/Makefile | 198 ++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 198 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile +index e8ca113..6c2287b 100644 +--- a/arch/arm/mach-omap2/Makefile ++++ b/arch/arm/mach-omap2/Makefile +@@ -194,3 +194,201 @@ obj-y += $(smc91x-m) $(smc91x-y) + # HS OMAP + obj-$(CONFIG_ARCH_OMAP3_HS) += omap_hs.o + omap_hs-objs += hs.o sec_hal.o sec_hal_entry.o ++plus_sec := $(call as-instr,.arch_extension sec,+sec) ++AFLAGS_sec_hal_entry.o :=-Wa,-march=armv7-a$(plus_sec) ++# ++# Makefile for the linux kernel. ++# ++ ++# Common support ++obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o ++ ++omap-2-3-common = irq.o sdrc.o ++omap-3-4-common = dpll.o ++ ++hwmod-common = omap_hwmod.o \ ++ omap_hwmod_common_data.o ++ ++prcm-common = prcm.o powerdomain.o ++clock-common = clock.o clock_common_data.o clockdomain.o ++ ++obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(prcm-common) $(clock-common) \ ++ $(hwmod-common) ++obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(clock-common) \ ++ $(omap-3-4-common) $(hwmod-common) ++obj-$(CONFIG_ARCH_OMAP4) += $(omap-3-4-common) prcm.o clock.o ++ ++obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o ++ ++# SMP support ONLY available for OMAP4 ++obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o ++obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o ++ ++# Functions loaded to SRAM ++obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o ++obj-$(CONFIG_ARCH_OMAP2430) += sram243x.o ++obj-$(CONFIG_ARCH_OMAP3) += sram34xx.o ++ ++# SMS/SDRC ++obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o ++# obj-$(CONFIG_ARCH_OMAP3) += sdrc3xxx.o ++ ++# Power Management ++ifeq ($(CONFIG_PM),y) ++obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o ++obj-$(CONFIG_ARCH_OMAP24XX) += sleep24xx.o ++obj-$(CONFIG_ARCH_OMAP3) += pm.o pm34xx.o sleep34xx.o cpuidle34xx.o \ ++ voltage.o ++obj-$(CONFIG_PM_DEBUG) += pm-debug.o ++obj-$(CONFIG_OMAP_SMARTREFLEX) += sr_device.o smartreflex.o ++obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3) += smartreflex-class3.o ++obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS1P5) += smartreflex-class1p5.o ++endif ++ ++# CPU Frequency ++ifeq ($(CONFIG_CPU_FREQ),y) ++obj-$(CONFIG_ARCH_OMAP3) += cpufreq34xx.o ++endif ++ ++# PRCM ++obj-$(CONFIG_ARCH_OMAP2) += cm.o ++obj-$(CONFIG_ARCH_OMAP3) += cm.o ++obj-$(CONFIG_ARCH_OMAP4) += cm4xxx.o ++ ++# Clock framework ++obj-$(CONFIG_ARCH_OMAP2) += clock2xxx.o clock2xxx_data.o ++obj-$(CONFIG_ARCH_OMAP2420) += opp2420_data.o ++obj-$(CONFIG_ARCH_OMAP3) += clock34xx.o clock34xx_data.o \ ++ clk-tracer.o pm-optimizer.o ++obj-$(CONFIG_ARCH_OMAP2430) += opp2430_data.o ++obj-$(CONFIG_ARCH_OMAP4) += clock44xx.o clock44xx_data.o ++obj-$(CONFIG_OMAP_PM_SRF) += resource34xx.o ++ ++obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox_mach.o ++mailbox_mach-objs := mailbox.o ++ ++# hwmod data ++obj-$(CONFIG_ARCH_OMAP2420) += omap_hwmod_2420_data.o ++obj-$(CONFIG_ARCH_OMAP2430) += omap_hwmod_2430_data.o ++obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_3xxx_data.o ++ ++# EMU peripherals ++obj-$(CONFIG_OMAP3_EMU) += emu.o ++ ++iommu-y += iommu2.o ++iommu-$(CONFIG_ARCH_OMAP3) += omap3-iommu.o ++ ++obj-$(CONFIG_OMAP_IOMMU) += $(iommu-y) ++ ++ifneq ($(CONFIG_MPU_BRIDGE),) ++obj-y += dspbridge.o ++endif ++ ++# Debobs ++obj-$(CONFIG_OMAP3_DEBOBS) += debobs.o ++ ++omap-ssi-$(CONFIG_OMAP_SSI) := ssi.o ++obj-y += $(omap-ssi-m) $(omap-ssi-y) ++ ++# DSS ++omap-dss-$(CONFIG_OMAP2_DSS) := dss.o ++obj-y += $(omap-dss-m) $(omap-dss-y) ++ ++# Specific board support ++obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o ++obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o ++obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o ++obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_OVERO) += board-overo.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o \ ++ hsmmc.o \ ++ twl4030.o ++obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o ++obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ ++ sdram-nokia.o \ ++ board-rx51-peripherals.o \ ++ nokia-bootparams.o \ ++ board-gpio-export.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_NOKIA_RX71) += board-rx71.o \ ++ sdram-nokia.o \ ++ board-rx71-peripherals.o \ ++ board-omap-bt.o \ ++ board-rx71-video.o \ ++ nokia-bootparams.o \ ++ board-gpio-export.o \ ++ board-rx71-audio.o \ ++ hsmmc.o \ ++ nokia-twl4030.o \ ++ twl4030.o \ ++ atmel_mxt_config.o \ ++ board-rx71-camera.o ++obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o \ ++ sdram-nokia.o \ ++ board-rm680-peripherals.o \ ++ board-omap-bt.o \ ++ board-rm680-video.o \ ++ nokia-bootparams.o \ ++ board-gpio-export.o \ ++ board-rm680-audio.o \ ++ hsmmc.o \ ++ nokia-twl4030.o \ ++ twl4030.o \ ++ atmel_mxt_config.o \ ++ board-rm680-camera.o ++obj-$(CONFIG_MACH_NOKIA_RM696) += board-rm696.o \ ++ sdram-nokia.o \ ++ board-rm696-peripherals.o \ ++ board-omap-bt.o \ ++ board-rm696-video.o \ ++ nokia-bootparams.o \ ++ board-gpio-export.o \ ++ board-rm696-audio.o \ ++ hsmmc.o \ ++ twl4030.o \ ++ board-rm696-camera.o ++obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \ ++ board-zoom-peripherals.o \ ++ hsmmc.o \ ++ board-zoom-debugboard.o ++obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \ ++ board-zoom-peripherals.o \ ++ hsmmc.o \ ++ board-zoom-debugboard.o ++obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ ++ board-zoom-peripherals.o \ ++ hsmmc.o \ ++ twl4030.o ++obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ ++ hsmmc.o ++obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o \ ++ hsmmc.o ++ (21 more lines skipped) ++++++ 0105-Fix-for-new-assembler-build-problem.patch (new) --- 0105-Fix-for-new-assembler-build-problem.patch +++ 0105-Fix-for-new-assembler-build-problem.patch @@ -0,0 +1,26 @@ +From 133e8cc42abdab63a7d0186cfd269a7171e4c5f0 Mon Sep 17 00:00:00 2001 +From: Markus Lehtonen <[email protected]> +Date: Fri, 18 Nov 2011 15:44:39 +0200 +Subject: [PATCH 105/106] Fix for new assembler build problem + +Adopted from kernel-moslo package. Don't know original author of the +patch. +--- + arch/arm/mach-omap2/Makefile | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile +index 6c2287b..d67bd8c 100644 +--- a/arch/arm/mach-omap2/Makefile ++++ b/arch/arm/mach-omap2/Makefile +@@ -392,3 +392,7 @@ obj-y += $(smc91x-m) $(smc91x-y) + # HS OMAP + obj-$(CONFIG_ARCH_OMAP3_HS) += omap_hs.o + omap_hs-objs += hs.o sec_hal.o sec_hal_entry.o ++ ++plus_sec := $(call as-instr,.arch_extension sec,+sec) ++AFLAGS_sec_hal_entry.o :=-Wa,-march=armv7-a$(plus_sec) ++ +-- +1.7.7 + ++++++ 0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch (new) --- 0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch +++ 0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch @@ -0,0 +1,59 @@ +From ae324d0baec49da5e244b920a258fcb9578d8650 Mon Sep 17 00:00:00 2001 +From: Markus Lehtonen <[email protected]> +Date: Wed, 23 Nov 2011 21:57:05 +0200 +Subject: [PATCH 106/106] initramfs: hack to ignore junk data in decompression + +This ignores the possible junk data in the end of (compressed) initramfs +image, if at least one archive has been successfully decompressed. + +Needed to be able to _load_ compressed cpio images to N950 with the Harmattan +flasher. +--- + init/initramfs.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/init/initramfs.c b/init/initramfs.c +index 1fd59b8..253332a 100644 +--- a/init/initramfs.c ++++ b/init/initramfs.c +@@ -417,6 +417,7 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len) + decompress_fn decompress; + const char *compress_name; + static __initdata char msg_buf[64]; ++ int num_archives; + + header_buf = kmalloc(110, GFP_KERNEL); + symlink_buf = kmalloc(PATH_MAX + N_ALIGN(PATH_MAX) + 1, GFP_KERNEL); +@@ -428,6 +429,7 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len) + state = Start; + this_header = 0; + message = NULL; ++ num_archives = 0; + while (!message && len) { + loff_t saved_offset = this_header; + if (*buf == '0' && !(this_header & 3)) { +@@ -455,6 +457,13 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len) + compress_name); + message = msg_buf; + } ++ } else if (num_archives > 0) { ++ printk(KERN_INFO "initramfs compression failed, but, we already " \ ++ "decompressed (%i) archives - the remaining data " \ ++ "(%u b) is probably just garbage given by the " \ ++ "buggy bootloader, continuing with what we've got...\n", ++ num_archives, len); ++ my_inptr = len; + } else + error("junk in compressed archive"); + if (state != Reset) +@@ -462,6 +471,7 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len) + this_header = saved_offset + my_inptr; + buf += my_inptr; + len -= my_inptr; ++ num_archives++; + } + dir_utime(); + kfree(name_buf); +-- +1.7.7 + ++++++ kernel-adaptation-n950.config --- kernel-adaptation-n950.config +++ kernel-adaptation-n950.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.32.39 -# Tue Jun 7 15:41:37 2011 +# Sun Nov 20 13:26:02 2011 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -368,7 +368,8 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="init=/sbin/preinit root=0xB302 rootfstype=ext4 rw console=ttyS0,115200n8 omap3_die_id" # CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set +CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y # CONFIG_CRASH_DUMP is not set # @@ -2035,8 +2036,7 @@ CONFIG_SECURITY_FILE_CAPABILITIES=y CONFIG_SECURITY_CREDENTIALS_POLICY=y # CONFIG_SECURITY_TOMOYO is not set -CONFIG_SECURITY_AEGIS=n -CONFIG_SECURITY_AEGIS_VALIDATOR=n +# CONFIG_SECURITY_AEGIS is not set CONFIG_CRYPTO=y # ++++++ series --- series +++ series @@ -104,3 +104,14 @@ # Camera Meego adaptation additions backport_media_ioc_definitions.patch make-omap-iommu-build-in.patch + +# Kexec fixes +0100-arm-Fix-cpu_proc_fin-for-proc-v7.S-and-make-kexec-wo.patch +0101-arm-Fix-init_atags_procfs-to-check-tag-hdr.size.patch +0102-ARM-Implement-cpu_v7_reset.patch +0103-ARMv7-disable-L2-cache.patch +0104-ARMv7-adds-sec-extensions-for-armv7.patch +0105-Fix-for-new-assembler-build-problem.patch + +# Initramfs hack +0106-initramfs-hack-to-ignore-junk-data-in-decompression.patch
