From c366cf7ed5f98bba242269a694a9b7904e249ec4 Mon Sep 17 00:00:00 2001 From: Max Galemin Date: Fri, 9 Mar 2012 00:12:30 +1100 Subject: [PATCH 1/2] Issue 23: kernel loading problem on beagleboard xM Rev A 1. Added Linux kernel patch for fixing issue with kernel panics and freezes on Beagleboard-xM Rev. A3 with "mpurate=1000" kernel boot parameter. --- ...LL-in-stop-mode-before-un-reset-IVA2.patch | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 board/beagleboard/xm/kernel-patches/linux-0005-Put-the-IVA2-DPLL-in-stop-mode-before-un-reset-IVA2.patch diff --git a/board/beagleboard/xm/kernel-patches/linux-0005-Put-the-IVA2-DPLL-in-stop-mode-before-un-reset-IVA2.patch b/board/beagleboard/xm/kernel-patches/linux-0005-Put-the-IVA2-DPLL-in-stop-mode-before-un-reset-IVA2.patch new file mode 100644 index 0000000..2b1fb31 --- /dev/null +++ b/board/beagleboard/xm/kernel-patches/linux-0005-Put-the-IVA2-DPLL-in-stop-mode-before-un-reset-IVA2.patch @@ -0,0 +1,62 @@ +From 8717b70a5a23395239235ec419f1802ef6293466 Mon Sep 17 00:00:00 2001 +From: Max Galemin +Date: Thu, 8 Mar 2012 23:18:06 +1100 +Subject: [PATCH] Put the IVA2 DPLL in stop mode before un-reset IVA2 module + +1. For 1 GHz operation before un-resetting the IVA2 module in omap3_iva_idle() +the IVA2 DPLL needs to be put in low power stop mode as bootloader can enable +the IVA2 DPLL in lock mode which can potentially lead to instability. Previous +IVA2 DPLL mode can be restored after IVA2 reset. +--- + arch/arm/mach-omap2/pm34xx.c | 14 ++++++++++++++ + 1 files changed, 14 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c +index efa6649..bcb1985 100644 +--- a/arch/arm/mach-omap2/pm34xx.c ++++ b/arch/arm/mach-omap2/pm34xx.c +@@ -50,6 +50,7 @@ + #include "pm.h" + #include "sdrc.h" + #include "control.h" ++#include "clock.h" + + #ifdef CONFIG_SUSPEND + static suspend_state_t suspend_state = PM_SUSPEND_ON; +@@ -612,6 +613,8 @@ static const struct platform_suspend_ops omap_pm_ops = { + **/ + static void __init omap3_iva_idle(void) + { ++ u32 iva2_dpll; ++ + /* ensure IVA2 clock is disabled */ + omap2_cm_write_mod_reg(0, OMAP3430_IVA2_MOD, CM_FCLKEN); + +@@ -620,6 +623,13 @@ static void __init omap3_iva_idle(void) + OMAP3430_CLKACTIVITY_IVA2_MASK)) + return; + ++ iva2_dpll = omap2_cm_read_mod_reg(OMAP3430_IVA2_MOD, ++ OMAP3430_CM_CLKEN_PLL); ++ ++ /* Put the IVA2 DPLL in low power stop mode */ ++ omap2_cm_write_mod_reg((iva2_dpll & ~OMAP3430_EN_IVA2_DPLL_MASK) | ++ DPLL_LOW_POWER_STOP, OMAP3430_IVA2_MOD, OMAP3430_CM_CLKEN_PLL); ++ + /* Reset IVA2 */ + omap2_prm_write_mod_reg(OMAP3430_RST1_IVA2_MASK | + OMAP3430_RST2_IVA2_MASK | +@@ -645,6 +655,10 @@ static void __init omap3_iva_idle(void) + OMAP3430_RST2_IVA2_MASK | + OMAP3430_RST3_IVA2_MASK, + OMAP3430_IVA2_MOD, OMAP2_RM_RSTCTRL); ++ ++ /* Restore the IVA2 DPLL value */ ++ omap2_cm_write_mod_reg(iva2_dpll, OMAP3430_IVA2_MOD, ++ OMAP3430_CM_CLKEN_PLL); + } + + static void __init omap3_d2d_idle(void) +-- +1.7.5.4 + From b84130996f020edc9b0b05c7a7bf5e124a15f8c8 Mon Sep 17 00:00:00 2001 From: Max Galemin Date: Fri, 9 Mar 2012 08:11:18 +1100 Subject: [PATCH 2/2] Bumped release number 2012.02-mg01.2. --- Makefile | 2 +- board/beagleboard/xm/linux-3.2.8.config | 2 +- configs/beagle_xm_defconfig | 2 +- configs/beagle_xm_full_defconfig | 2 +- fs/skeleton/etc/mg-release | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index a311374..2624330 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ #-------------------------------------------------------------- # Set and export the version string -export BR2_VERSION:=2012.02-mg01.1 +export BR2_VERSION:=2012.02-mg01.2 # Check for minimal make version (note: this check will break at make 10.x) MIN_MAKE_VERSION=3.81 diff --git a/board/beagleboard/xm/linux-3.2.8.config b/board/beagleboard/xm/linux-3.2.8.config index ef5807f..52ba5e3 100644 --- a/board/beagleboard/xm/linux-3.2.8.config +++ b/board/beagleboard/xm/linux-3.2.8.config @@ -36,7 +36,7 @@ CONFIG_IRQ_WORK=y CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="arm-none-linux-gnueabi-" -CONFIG_LOCALVERSION="-mg01.1" +CONFIG_LOCALVERSION="-mg01.2" CONFIG_LOCALVERSION_AUTO=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y diff --git a/configs/beagle_xm_defconfig b/configs/beagle_xm_defconfig index df7000e..d95b19b 100644 --- a/configs/beagle_xm_defconfig +++ b/configs/beagle_xm_defconfig @@ -13,7 +13,7 @@ BR2_PACKAGE_PORTMAP=y BR2_PACKAGE_BASH=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="omap3_beagle" -BR2_TARGET_UBOOT_EXTRAVERSION="-mg01.1" +BR2_TARGET_UBOOT_EXTRAVERSION="-mg01.2" BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_UENV_PARAMETERS=y diff --git a/configs/beagle_xm_full_defconfig b/configs/beagle_xm_full_defconfig index 960ca3a..066e600 100644 --- a/configs/beagle_xm_full_defconfig +++ b/configs/beagle_xm_full_defconfig @@ -80,7 +80,7 @@ BR2_PACKAGE_NANO=y BR2_PACKAGE_VIM=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="omap3_beagle" -BR2_TARGET_UBOOT_EXTRAVERSION="-mg01.1" +BR2_TARGET_UBOOT_EXTRAVERSION="-mg01.2" BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_UENV_PARAMETERS=y diff --git a/fs/skeleton/etc/mg-release b/fs/skeleton/etc/mg-release index 689464a..c164a6c 100644 --- a/fs/skeleton/etc/mg-release +++ b/fs/skeleton/etc/mg-release @@ -1 +1 @@ -mg01.1 +mg01.2