Skip to contentSkip to conversation

Patch set fixing SPEAr13xx boot issues on V3.8-rc6

PATCH In review Vijay Kumar Mishra 4 participants 9 messages Feb 8, 2013 – Feb 11, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index 1fdb826..1b5ceff 100644
@@ -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
#2 lore raw

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
index 1fdb826..1b5ceff 100644
@@ -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 -3
 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_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.

#3 lore raw

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

#4 lore raw

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

#5 lore raw

PATCH 2/3 ARM:dts:SPEAr1310:Correct the clcd pin group name

In reply to 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".

---
 arch/arm/boot/dts/spear1310-evb.dts |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/spear1310-evb.dts +1 -1
index b56a801..6fd4c36 100644
@@ -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
#6 lore raw

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
index b56a801..6fd4c36 100644
@@ -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 {
#7 lore raw

PATCH 3/3 SPEAr13xx_defconfig: Enable compilation using the latest

In reply to Vijay Kumar Mishra

This 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
index 1b5ceff..4e2866d 100644
@@ -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
Acked-by on v1 3/3
#8 lore raw

Re: [PATCH 3/3] SPEAr13xx_defconfig: Enable compilation using the latest

Quoted 4 lines · Vijay Kumar Mishra

This 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

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 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 +0 -0
index 1b5ceff..4e2866d 100644

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