On 22 December 2016 at 01:06, Nathan Rossi <[email protected]> wrote: > This patch resolves a previous commit (ea4ca65aaf) which only mitigated > the issue caused due to CONFIG_DEBUG_RODATA for Zynq. > > This issue has been properly fixed in the next version of the kernel > (v4.10) and this change backports the patch to the v4.8 kernel for > linux-yocto(-tiny). > > Additionally this change removes the forced disabling of > CONFIG_DEBUG_RODATA allowing for Zynq platforms to use the feature > without issue.
Applied to master and morty also. Regards, Nathan > > Signed-off-by: Nathan Rossi <[email protected]> > --- > .../config/xilinx-common/bsp/xilinx/soc/zynq7.cfg | 3 -- > recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend | 5 +++ > recipes-kernel/linux/linux-yocto_4.8.bbappend | 5 +++ > ...ynq-Reserve-correct-amount-of-non-DMA-RAM.patch | 39 > ++++++++++++++++++++++ > 4 files changed, 49 insertions(+), 3 deletions(-) > create mode 100644 > recipes-kernel/linux/linux/ARM-zynq-Reserve-correct-amount-of-non-DMA-RAM.patch > > diff --git > a/recipes-kernel/linux/config/xilinx-common/bsp/xilinx/soc/zynq7.cfg > b/recipes-kernel/linux/config/xilinx-common/bsp/xilinx/soc/zynq7.cfg > index b6dc0dbd6e..935848758c 100644 > --- a/recipes-kernel/linux/config/xilinx-common/bsp/xilinx/soc/zynq7.cfg > +++ b/recipes-kernel/linux/config/xilinx-common/bsp/xilinx/soc/zynq7.cfg > @@ -40,6 +40,3 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y > CONFIG_CPU_IDLE=y > CONFIG_ARM_ZYNQ_CPUIDLE=y > > -# DEBUG_RODATA causes issues with the lower 512KB of memory which doesn't do > DMA > -# CONFIG_DEBUG_RODATA is not set > - > diff --git a/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend > b/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend > index 651e0d727f..a345230be3 100644 > --- a/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend > +++ b/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend > @@ -2,3 +2,8 @@ > require linux-xilinx-configs.inc > require linux-xilinx-machines.inc > > +FILESEXTRAPATHS_prepend := "${THISDIR}/linux:" > +SRC_URI_append = " \ > + file://ARM-zynq-Reserve-correct-amount-of-non-DMA-RAM.patch \ > + " > + > diff --git a/recipes-kernel/linux/linux-yocto_4.8.bbappend > b/recipes-kernel/linux/linux-yocto_4.8.bbappend > index 651e0d727f..a345230be3 100644 > --- a/recipes-kernel/linux/linux-yocto_4.8.bbappend > +++ b/recipes-kernel/linux/linux-yocto_4.8.bbappend > @@ -2,3 +2,8 @@ > require linux-xilinx-configs.inc > require linux-xilinx-machines.inc > > +FILESEXTRAPATHS_prepend := "${THISDIR}/linux:" > +SRC_URI_append = " \ > + file://ARM-zynq-Reserve-correct-amount-of-non-DMA-RAM.patch \ > + " > + > diff --git > a/recipes-kernel/linux/linux/ARM-zynq-Reserve-correct-amount-of-non-DMA-RAM.patch > > b/recipes-kernel/linux/linux/ARM-zynq-Reserve-correct-amount-of-non-DMA-RAM.patch > new file mode 100644 > index 0000000000..9aa014b745 > --- /dev/null > +++ > b/recipes-kernel/linux/linux/ARM-zynq-Reserve-correct-amount-of-non-DMA-RAM.patch > @@ -0,0 +1,39 @@ > +From 06305673edf7adc6b035f81f727bdcb18ff6fe9b Mon Sep 17 00:00:00 2001 > +From: Kyle Roeschley <[email protected]> > +Date: Mon, 31 Oct 2016 11:26:17 -0500 > +Subject: [PATCH] ARM: zynq: Reserve correct amount of non-DMA RAM > + > +On Zynq, we haven't been reserving the correct amount of DMA-incapable > +RAM to keep DMA away from it (per the Zynq TRM Section 4.1, it should be > +the first 512k). In older kernels, this was masked by the > +memblock_reserve call in arm_memblock_init(). Now, reserve the correct > +amount excplicitly rather than relying on swapper_pg_dir, which is an > +address and not a size anyway. > + > +Fixes: 46f5b96 ("ARM: zynq: Reserve not DMAable space in front of the > +kernel") > + > +Signed-off-by: Kyle Roeschley <[email protected]> > +Tested-by: Nathan Rossi <[email protected]> > +Signed-off-by: Michal Simek <[email protected]> > +Upstream-Status: Backport [from v4.10, 7a3cc2a7b2] > +--- > + arch/arm/mach-zynq/common.c | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c > +index d12002cd63..ed11864831 100644 > +--- a/arch/arm/mach-zynq/common.c > ++++ b/arch/arm/mach-zynq/common.c > +@@ -59,7 +59,7 @@ void __iomem *zynq_scu_base; > + static void __init zynq_memory_init(void) > + { > + if (!__pa(PAGE_OFFSET)) > +- memblock_reserve(__pa(PAGE_OFFSET), __pa(swapper_pg_dir)); > ++ memblock_reserve(__pa(PAGE_OFFSET), 0x80000); > + } > + > + static struct platform_device zynq_cpuidle_device = { > +-- > +2.11.0 > + > -- > 2.11.0 > -- _______________________________________________ meta-xilinx mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-xilinx
