Vexpress TC2 no longer booting on v4.12-rc1

6 messages, 4 authors, 2017-06-05 · open the first message on its own page

Vexpress TC2 no longer booting on v4.12-rc1

From: mathieu.poirier@linaro.org (Mathieu Poirier)
Date: 2017-06-02 22:16:59

Good afternoon Russell and friends,

I noticed that my vexpress-TC2 platform stopped booting when moving to
kernel v4.12-rc1 (same with -rc2 and 3).  The last time things worked
properly was on v4.11.  I did a bisect between v4.11 and v4.12-rc1 and
ended up on [1], hence this email.

Since CONFIG_ARM_VIRT_EXT is selected by  default I removed the
"#ifdef CONFIG_ARM_VIRT_EXT" section in the last hunk of the patch and
the system sprung up to life again.

Compiler: arm-linux-gnueabi-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4)
5.4.0 20160609
Kernel command line: console=ttyAMA0,38400 loglevel=8 root=/dev/sda2 rootwait
U-boot:
 ## Flattened Device Tree blob at 82000000
   Booting using the fdt blob at 0x82000000
   Loading Ramdisk to 9fcea000, end 9feea6d1 ... OK
   Loading Device Tree to 9fce2000, end 9fce9ad8 ... OK

I'm not sure what else you need at this time - simply get back to me
with what I'm missing and I'll be happy to provided.  I'm also
offering to test patches.

Many thanks,
Mathieu

[1]. 9da5ac236de6 ARM: soft-reboot into same mode that we entered the kernel

Vexpress TC2 no longer booting on v4.12-rc1

From: linux@armlinux.org.uk (Russell King - ARM Linux)
Date: 2017-06-02 22:24:50

On Fri, Jun 02, 2017 at 04:16:59PM -0600, Mathieu Poirier wrote:
Good afternoon Russell and friends,

I noticed that my vexpress-TC2 platform stopped booting when moving to
kernel v4.12-rc1 (same with -rc2 and 3).  The last time things worked
properly was on v4.11.  I did a bisect between v4.11 and v4.12-rc1 and
ended up on [1], hence this email.

Since CONFIG_ARM_VIRT_EXT is selected by  default I removed the
"#ifdef CONFIG_ARM_VIRT_EXT" section in the last hunk of the patch and
the system sprung up to life again.
Hmm, this doesn't make much sense.  The code in last hunk of the patch
you refer to should only get run during system shutdown, not during
system boot, so I think something else is going on...

Please could you test again, this time rather than removing the #ifdef,
add two "mov r0, r0" there?  (So replacing the two instructions that
removing the ifdef would have exposed.)

Thanks.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

Vexpress TC2 no longer booting on v4.12-rc1

From: mathieu.poirier@linaro.org (Mathieu Poirier)
Date: 2017-06-05 01:47:15

On 2 June 2017 at 16:24, Russell King - ARM Linux [off-list ref] wrote:
On Fri, Jun 02, 2017 at 04:16:59PM -0600, Mathieu Poirier wrote:
quoted
Good afternoon Russell and friends,

I noticed that my vexpress-TC2 platform stopped booting when moving to
kernel v4.12-rc1 (same with -rc2 and 3).  The last time things worked
properly was on v4.11.  I did a bisect between v4.11 and v4.12-rc1 and
ended up on [1], hence this email.

Since CONFIG_ARM_VIRT_EXT is selected by  default I removed the
"#ifdef CONFIG_ARM_VIRT_EXT" section in the last hunk of the patch and
the system sprung up to life again.
Hmm, this doesn't make much sense.  The code in last hunk of the patch
you refer to should only get run during system shutdown, not during
system boot, so I think something else is going on...

Please could you test again, this time rather than removing the #ifdef,
add two "mov r0, r0" there?  (So replacing the two instructions that
removing the ifdef would have exposed.)
That works - by replacing the original code with a couple of "mov r0,
r0" the system is able to boot again.
Thanks.

--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

Vexpress TC2 no longer booting on v4.12-rc1

From: Marc Zyngier <hidden>
Date: 2017-06-05 07:43:41

Hi Mathieu,

On 05/06/17 02:47, Mathieu Poirier wrote:
On 2 June 2017 at 16:24, Russell King - ARM Linux [off-list ref] wrote:
quoted
On Fri, Jun 02, 2017 at 04:16:59PM -0600, Mathieu Poirier wrote:
quoted
Good afternoon Russell and friends,

I noticed that my vexpress-TC2 platform stopped booting when moving to
kernel v4.12-rc1 (same with -rc2 and 3).  The last time things worked
properly was on v4.11.  I did a bisect between v4.11 and v4.12-rc1 and
ended up on [1], hence this email.

Since CONFIG_ARM_VIRT_EXT is selected by  default I removed the
"#ifdef CONFIG_ARM_VIRT_EXT" section in the last hunk of the patch and
the system sprung up to life again.
Hmm, this doesn't make much sense.  The code in last hunk of the patch
you refer to should only get run during system shutdown, not during
system boot, so I think something else is going on...

Please could you test again, this time rather than removing the #ifdef,
add two "mov r0, r0" there?  (So replacing the two instructions that
removing the ifdef would have exposed.)
That works - by replacing the original code with a couple of "mov r0,
r0" the system is able to boot again.
That's quite peculiar. It would tend to indicate that something resets 
a CPU behind our back, leading to all kind of ugly things. Grepping
around, my bet is on MCPM, which seems to do all kind of horrible 
things. Can you give the following hack a go?
diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c
index cf062472e07b..d8b6b688e938 100644
--- a/arch/arm/common/mcpm_entry.c
+++ b/arch/arm/common/mcpm_entry.c
@@ -300,7 +300,7 @@ void mcpm_cpu_power_down(void)
 	 * on the CPU.
 	 */
 	phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset);
-	phys_reset(__pa_symbol(mcpm_entry_point));
+	phys_reset(__pa_symbol(mcpm_entry_point), is_hyp_mode_available());
 
 	/* should never get here */
 	BUG();
@@ -389,7 +389,7 @@ static int __init nocache_trampoline(unsigned long _arg)
 	__mcpm_cpu_down(cpu, cluster);
 
 	phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset);
-	phys_reset(__pa_symbol(mcpm_entry_point));
+	phys_reset(__pa_symbol(mcpm_entry_point), is_hyp_mode_available());
 	BUG();
 }
 
Can you let me know if that helps? If it does, we can then think of cleaning
up the dangerous duplication of functionality...

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

Vexpress TC2 no longer booting on v4.12-rc1

From: Sudeep Holla <hidden>
Date: 2017-06-05 09:18:21


On 02/06/17 23:16, Mathieu Poirier wrote:
Good afternoon Russell and friends,

I noticed that my vexpress-TC2 platform stopped booting when moving to
kernel v4.12-rc1 (same with -rc2 and 3).  The last time things worked
properly was on v4.11.  I did a bisect between v4.11 and v4.12-rc1 and
ended up on [1], hence this email.

Since CONFIG_ARM_VIRT_EXT is selected by  default I removed the
"#ifdef CONFIG_ARM_VIRT_EXT" section in the last hunk of the patch and
the system sprung up to life again.

Compiler: arm-linux-gnueabi-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4)
5.4.0 20160609
Kernel command line: console=ttyAMA0,38400 loglevel=8 root=/dev/sda2 rootwait
U-boot:
 ## Flattened Device Tree blob at 82000000
   Booting using the fdt blob at 0x82000000
   Loading Ramdisk to 9fcea000, end 9feea6d1 ... OK
   Loading Device Tree to 9fce2000, end 9fce9ad8 ... OK

I'm not sure what else you need at this time - simply get back to me
with what I'm missing and I'll be happy to provided.  I'm also
offering to test patches.
Fixed[1] and must be queued in rmk's tree[2].

-- 
Regards,
Sudeep

[1] https://www.spinics.net/lists/arm-kernel/msg581877.html
[2] http://www.armlinux.org.uk/developer/patches/viewpatch.php?id=8675

Vexpress TC2 no longer booting on v4.12-rc1

From: Marc Zyngier <hidden>
Date: 2017-06-05 09:27:05

On 05/06/17 10:18, Sudeep Holla wrote:

On 02/06/17 23:16, Mathieu Poirier wrote:
quoted
Good afternoon Russell and friends,

I noticed that my vexpress-TC2 platform stopped booting when moving to
kernel v4.12-rc1 (same with -rc2 and 3).  The last time things worked
properly was on v4.11.  I did a bisect between v4.11 and v4.12-rc1 and
ended up on [1], hence this email.

Since CONFIG_ARM_VIRT_EXT is selected by  default I removed the
"#ifdef CONFIG_ARM_VIRT_EXT" section in the last hunk of the patch and
the system sprung up to life again.

Compiler: arm-linux-gnueabi-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4)
5.4.0 20160609
Kernel command line: console=ttyAMA0,38400 loglevel=8 root=/dev/sda2 rootwait
U-boot:
 ## Flattened Device Tree blob at 82000000
   Booting using the fdt blob at 0x82000000
   Loading Ramdisk to 9fcea000, end 9feea6d1 ... OK
   Loading Device Tree to 9fce2000, end 9fce9ad8 ... OK

I'm not sure what else you need at this time - simply get back to me
with what I'm missing and I'll be happy to provided.  I'm also
offering to test patches.
Fixed[1] and must be queued in rmk's tree[2].
Ah, brilliant. Thanks Sudeep.

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help