Patch set fixing SPEAr13xx boot issues on V3.8-rc6
Subsystems (2)
cover Patch set fixing SPEAr13xx boot issues on V3.8-rc6
This patch set contains following patches:
1. Enables correct kernel/user memory split required for SPEAr13xx.
2. Fix to correct SPEAr1310 device tree.
3. Fix to add ARM ABI support.
This patch set is tested on kernel V3.8-rc6.
Vijay Kumar Mishra (3):
SPEAr13xx_defconfig: Enable Memory split 2G/2G needed ARM:dts:SPEAr1310:Correct the clcd pin group name
SPEAr13xx_defconfig: Enable compilation using the latest ARM ABI
arch/arm/boot/dts/spear1310-evb.dts | 2 +- arch/arm/configs/spear13xx_defconfig | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-)
Signature · 1 line
1.7.9.5
PATCH 1/3 SPEAr13xx_defconfig: Enable Memory split 2G/2G needed
Memory split 2G/2G is enabled as needed for SPEAr1310 RevC board to boot. Before enabling this option the boot was hanging at uncompressing linux.
--- arch/arm/configs/spear13xx_defconfig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
arch/arm/configs/spear13xx_defconfig +1 -3
@@ -14,13 +14,13 @@ CONFIG_MACH_SPEAR1340=y CONFIG_SMP=y # CONFIG_SMP_ON_UP is not set # CONFIG_ARM_CPU_TOPOLOGY is not set +CONFIG_VMSPLIT_2G=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_BINFMT_MISC=y CONFIG_NET=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_MTD=y -CONFIG_MTD_OF_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y CONFIG_MTD_NAND=y
@@ -62,9 +62,7 @@ CONFIG_GPIO_PL061=y # CONFIG_HWMON is not set CONFIG_WATCHDOG=y CONFIG_MPCORE_WATCHDOG=y -# CONFIG_HID_SUPPORT is not set CONFIG_USB=y -# CONFIG_USB_DEVICE_CLASS is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_OHCI_HCD=y CONFIG_MMC=y
Signature · 1 line
1.7.9.5
Re: [PATCH 1/3] SPEAr13xx_defconfig: Enable Memory split 2G/2G needed
Hi Vijay,
By mistake you have added an ST internal list in cc, fixed it now.
Subject should be:
ARM: SPEAr13xx: Enable 2G/2G Memory split in defconfig
Quoted 15 lines · Vijay Kumar Mishra
Memory split 2G/2G is enabled as needed for SPEAr1310 RevC board to boot. Before enabling this option the boot was hanging at uncompressing linux.
--- arch/arm/configs/spear13xx_defconfig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)arch/arm/configs/spear13xx_defconfig +1
-0@@ -14,13 +14,13 @@ CONFIG_MACH_SPEAR1340=y CONFIG_SMP=y # CONFIG_SMP_ON_UP is not set # CONFIG_ARM_CPU_TOPOLOGY is not set +CONFIG_VMSPLIT_2G=y
arch/arm/configs/spear13xx_defconfig CONFIG_MACH_SPEAR1340=y · line 26
Quoted 10 lines
arch/arm/configs/spear13xx_defconfig +0
-3CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_BINFMT_MISC=y CONFIG_NET=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_MTD=y -CONFIG_MTD_OF_PARTS=y -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_DEVICE_CLASS is not set
Unrelated chages. Don't get them in next time. In case they just got added automatically because you did and make savedefconfig, do a make savedefconfig before any of these patches to make things stable for all SPEAr SoCs. And then add these patches.
Re: [PATCH 1/3] SPEAr13xx_defconfig: Enable Memory split 2G/2G needed
Quoted 11 lines · Viresh Kumar
Hi Vijay,
By mistake you have added an ST internal list in cc, fixed it now.
Subject should be:
ARM: SPEAr13xx: Enable 2G/2G Memory split in defconfig
Quoted 2 lines · Vijay Kumar Mishra
Memory split 2G/2G is enabled as needed for SPEAr1310 RevC board to boot. Before enabling this option the boot was hanging at uncompressing linux.
I disagree. The subject could have been "put our head in the sand and paper over bugs".
Please don't do that. There is no reason for any machine not to boot way past "Uncompressing Linux" with the default split. The likely reason it works with the 2G:2G split is because in that case the virtual and physical RAM addresses in the kernel are the same, and therefore missing p2v or v2p conversions are invisible.
Nicolas
Re: [PATCH 1/3] SPEAr13xx_defconfig: Enable Memory split 2G/2G needed
Hi Nicolas,
Quoted 12 lines · Nicolas Pitre
Quoted 10 lines · Viresh Kumar
By mistake you have added an ST internal list in cc, fixed it now.
Subject should be:
ARM: SPEAr13xx: Enable 2G/2G Memory split in defconfig
Quoted 2 lines · Vijay Kumar Mishra
Memory split 2G/2G is enabled as needed for SPEAr1310 RevC board to boot. Before enabling this option the boot was hanging at uncompressing linux.
Quoted 8 lines
I disagree. The subject could have been "put our head in the sand and paper over bugs".
Please don't do that. There is no reason for any machine not to boot way past "Uncompressing Linux" with the default split. The likely reason it works with the 2G:2G split is because in that case the virtual and physical RAM addresses in the kernel are the same, and therefore missing p2v or v2p conversions are invisible.
I agree. Actually the details are misleading. SPEAr13xx chose this option just for its own preference over high memory support.
@Vijay,
I think you should drop this patch and just enable high memory support rather, if SPEAr13xx doesn't have any problem with that.
--
regards
Shiraz
PATCH 2/3 ARM:dts:SPEAr1310:Correct the clcd pin group name
In reply to Vijay Kumar MishraThis patch is to correct clcd pin group name "clcd_high_res" to "clcd_high_res_grp" to avoid kernel boot hang as with following error message.
spear1310-pinmux e0700000.pinmux: invalid group "clcd_high_res" for function "clcd".
--- arch/arm/boot/dts/spear1310-evb.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/spear1310-evb.dts +1 -1
@@ -47,7 +47,7 @@ st,function = "arm_gpio"; }; clcd { - st,pins = "clcd_grp" , "clcd_high_res"; + st,pins = "clcd_grp", "clcd_high_res_grp"; st,function = "clcd"; }; eth {
Signature · 1 line
1.7.9.5
Re: [PATCH 2/3] ARM:dts:SPEAr1310:Correct the clcd pin group name
Remove "the" from subject.
Quoted 5 lines · Vijay Kumar Mishra
This patch is to correct clcd pin group name "
clcd_high_res" to "clcd_high_res_grp" to avoid kernel boot hang as with following error message.spear1310-pinmux e0700000.pinmux: invalid group "
clcd_high_res" for function "clcd".
Write it as:
Incorrect pin group name "clcd_high_res" is passed from DT, which causes boot failure. Fix it by replacing it with "clcd_high_res_grp".
Quoted 17 lines
--- arch/arm/boot/dts/spear1310-evb.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/boot/dts/spear1310-evb.dts +1
-1@@ -47,7 +47,7 @@ st,function = "arm_gpio"; }; clcd { - st,pins = "clcd_grp" , "clcd_high_res"; + st,pins = "clcd_grp", "clcd_high_res_grp"; st,function = "clcd"; }; eth {
PATCH 3/3 SPEAr13xx_defconfig: Enable compilation using the latest
In reply to Vijay Kumar MishraThis Patch is to enable CONFIG_AEABI option in kernel. Which basically adds support for latest ARMABI (EABI).
It also include support for changes the kernel syscall calling convention to disambiguate both ABIs and allow for backward compatibility support.
Without this option the kernel crashes. Crash log is below:
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 Exception stack(0xbf873f64 to 0xbf873fac)
3f60: 00000020 804725b4 00000001 00000000 bf872000 80498684 803308bc
3f80: 80474fe8 bf872000 412fc091 00000000 bf873fb8 bf873fbc bf873fac 80009c50 3fa0: 80009c54 60000113 ffffffff
r7:bf873f98 r6:ffffffff r5:60000113 r4:80009c54
[<80009c24>] (default_idle+0x0/0x38) from [<80009e24>] (cpu_idle+0xac/0xf0) [<80009d78>] (cpu_idle+0x0/0xf0) from [<803277ec>] (secondary_start_kernel+0xec/0x10c)
r8:0000406a r7:80498950 r6:10c03c7d r5:00000001 r4:80478bd0
[<80327700>] (secondary_start_kernel+0x0/0x10c) from [<00326dc8>] (0x326dc8)
r5:0
--- arch/arm/configs/spear13xx_defconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/configs/spear13xx_defconfig +1 -0
@@ -15,6 +15,7 @@ CONFIG_SMP=y # CONFIG_SMP_ON_UP is not set # CONFIG_ARM_CPU_TOPOLOGY is not set CONFIG_VMSPLIT_2G=y +CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_BINFMT_MISC=y
Signature · 1 line
1.7.9.5
Re: [PATCH 3/3] SPEAr13xx_defconfig: Enable compilation using the latest
Quoted 4 lines · Vijay Kumar Mishra
This Patch is to enable
CONFIG_AEABIoption in kernel. Which basically adds support for latest ARMABI (EABI).It also include support for changes the kernel syscall calling convention to
changing
Quoted 25 lines
disambiguate both ABIs and allow for backward compatibility support.
Without this option the kernel crashes. Crash log is below:
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 Exception stack(0xbf873f64 to 0xbf873fac)3f60: 00000020
804725b400000001 00000000bf87200080498684803308bc
3f80:80474fe8bf872000412fc09100000000bf873fb8bf873fbcbf873fac80009c503fa0:80009c5460000113 ffffffff
r7:bf873f98 r6:ffffffff r5:60000113 r4:80009c54
[<80009c24>] (default_idle+0x0/0x38) from [<80009e24>] (cpu_idle+0xac/0xf0) [<80009d78>] (cpu_idle+0x0/0xf0) from [<803277ec>] (secondary_start_kernel+0xec/0x10c)
r8:0000406a r7:80498950 r6:10c03c7d r5:00000001 r4:80478bd0
[<80327700>] (secondary_start_kernel+0x0/0x10c) from [<00326dc8>] (0x326dc8)
r5:0--- arch/arm/configs/spear13xx_defconfig | 1 + 1 file changed, 1 insertion(+)arch/arm/configs/spear13xx_defconfig +0
-0
arch/arm/configs/spear13xx_defconfig CONFIG_SMP=y · line 21
Quoted 7 lines
arch/arm/configs/spear13xx_defconfig +1
-0@@ -15,6 +15,7 @@ CONFIG_SMP=y # CONFIG_SMP_ON_UP is not set # CONFIG_ARM_CPU_TOPOLOGY is not set CONFIG_VMSPLIT_2G=y +CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_BINFMT_MISC=y