diff mbox series

[U-Boot,1/1] colibri_imx7_emmc: enable CONFIG_ARMV7_BOOT_SEC_DEFAULT

Message ID 20190611122903.27950-1-igor.opaniuk@gmail.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show
Series [U-Boot,1/1] colibri_imx7_emmc: enable CONFIG_ARMV7_BOOT_SEC_DEFAULT | expand

Commit Message

Igor Opaniuk June 11, 2019, 12:29 p.m. UTC
From: Igor Opaniuk <igor.opaniuk@toradex.com>

Enable CONFIG_ARMV7_BOOT_SEC_DEFAULT by default to avoid a kernel
crash when booting NXP linux kernels in non-secure world,
when job ring device allocation is done by CAAM hw accelerator driver:

caam 30900000.caam: job rings = 3, qi = 0
caam_jr 30901000.jr0: failed to flush job ring 0
caam_jr: probe of 30901000.jr0 failed with error -5
caam_jr 30902000.jr1: failed to flush job ring 1
caam_jr: probe of 30902000.jr1 failed with error -5
caam_jr 30903000.jr2: failed to flush job ring 2
caam_jr: probe of 30903000.jr2 failed with error -5
caam algorithms registered in /proc/crypto
Job Ring Device allocation for transform failed
caam 30900000.caam: caam pkc algorithms registered in /proc/crypto
Unable to handle kernel NULL pointer dereference at virtual address 00000010
pgd = c0004000
[00000010] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Tainted:
Hardware name: Freescale i.MX7 Dual (Device Tree)
task: ec0d8000 task.stack: ec0ce000
PC is at caam_sm_startup+0x3f8/0x4f4

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
---
 configs/colibri_imx7_emmc_defconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Stefan Agner June 11, 2019, 12:52 p.m. UTC | #1
On 11.06.2019 14:29, Igor Opaniuk wrote:
> From: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> Enable CONFIG_ARMV7_BOOT_SEC_DEFAULT by default to avoid a kernel
> crash when booting NXP linux kernels in non-secure world,
> when job ring device allocation is done by CAAM hw accelerator driver:

I rather prefer if mainline U-Boot prefers what makes sense for mainline
kernel (and that is non-secure).

Booting in secure mode can be also done using bootm_boot_mode
environment variable.

--
Stefan

> 
> caam 30900000.caam: job rings = 3, qi = 0
> caam_jr 30901000.jr0: failed to flush job ring 0
> caam_jr: probe of 30901000.jr0 failed with error -5
> caam_jr 30902000.jr1: failed to flush job ring 1
> caam_jr: probe of 30902000.jr1 failed with error -5
> caam_jr 30903000.jr2: failed to flush job ring 2
> caam_jr: probe of 30903000.jr2 failed with error -5
> caam algorithms registered in /proc/crypto
> Job Ring Device allocation for transform failed
> caam 30900000.caam: caam pkc algorithms registered in /proc/crypto
> Unable to handle kernel NULL pointer dereference at virtual address 00000010
> pgd = c0004000
> [00000010] *pgd=00000000
> Internal error: Oops: 5 [#1] PREEMPT SMP ARM
> Modules linked in:
> CPU: 0 PID: 1 Comm: swapper/0 Tainted:
> Hardware name: Freescale i.MX7 Dual (Device Tree)
> task: ec0d8000 task.stack: ec0ce000
> PC is at caam_sm_startup+0x3f8/0x4f4
> 
> Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> ---
>  configs/colibri_imx7_emmc_defconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/configs/colibri_imx7_emmc_defconfig
> b/configs/colibri_imx7_emmc_defconfig
> index 2fa9f1f532..0ce56a8df9 100644
> --- a/configs/colibri_imx7_emmc_defconfig
> +++ b/configs/colibri_imx7_emmc_defconfig
> @@ -76,3 +76,4 @@ CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_ADDR=0x82000000
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
> +CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
Igor Opaniuk June 11, 2019, 1:04 p.m. UTC | #2
Hi Stefan,

On Tue, Jun 11, 2019 at 3:52 PM Stefan Agner <stefan@agner.ch> wrote:
>
> On 11.06.2019 14:29, Igor Opaniuk wrote:
> > From: Igor Opaniuk <igor.opaniuk@toradex.com>
> >
> > Enable CONFIG_ARMV7_BOOT_SEC_DEFAULT by default to avoid a kernel
> > crash when booting NXP linux kernels in non-secure world,
> > when job ring device allocation is done by CAAM hw accelerator driver:
>
> I rather prefer if mainline U-Boot prefers what makes sense for mainline
> kernel (and that is non-secure).
>
> Booting in secure mode can be also done using bootm_boot_mode

Just tested with env var (wasn't aware about this var) - it works
also, thanks for the suggestion.

Testing was done with the default pre-built NXP kernel from Kynetics
AOSP package for Colibri iMX7,
probably I'll just add a command for setting a proper value for
bootm_boot_mode before parsing/booting stuff
from Android Boot Image (where Kynetics people usually are putting NXP
kernels inside);

So just ignore this patch, thanks!

> environment variable.
>
> --
> Stefan
>
> >
> > caam 30900000.caam: job rings = 3, qi = 0
> > caam_jr 30901000.jr0: failed to flush job ring 0
> > caam_jr: probe of 30901000.jr0 failed with error -5
> > caam_jr 30902000.jr1: failed to flush job ring 1
> > caam_jr: probe of 30902000.jr1 failed with error -5
> > caam_jr 30903000.jr2: failed to flush job ring 2
> > caam_jr: probe of 30903000.jr2 failed with error -5
> > caam algorithms registered in /proc/crypto
> > Job Ring Device allocation for transform failed
> > caam 30900000.caam: caam pkc algorithms registered in /proc/crypto
> > Unable to handle kernel NULL pointer dereference at virtual address 00000010
> > pgd = c0004000
> > [00000010] *pgd=00000000
> > Internal error: Oops: 5 [#1] PREEMPT SMP ARM
> > Modules linked in:
> > CPU: 0 PID: 1 Comm: swapper/0 Tainted:
> > Hardware name: Freescale i.MX7 Dual (Device Tree)
> > task: ec0d8000 task.stack: ec0ce000
> > PC is at caam_sm_startup+0x3f8/0x4f4
> >
> > Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> > ---
> >  configs/colibri_imx7_emmc_defconfig | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/configs/colibri_imx7_emmc_defconfig
> > b/configs/colibri_imx7_emmc_defconfig
> > index 2fa9f1f532..0ce56a8df9 100644
> > --- a/configs/colibri_imx7_emmc_defconfig
> > +++ b/configs/colibri_imx7_emmc_defconfig
> > @@ -76,3 +76,4 @@ CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
> >  CONFIG_USB_FUNCTION_FASTBOOT=y
> >  CONFIG_FASTBOOT_BUF_ADDR=0x82000000
> >  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
> > +CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
Stefano Babic July 20, 2019, 8:46 a.m. UTC | #3
> From: Igor Opaniuk <igor.opaniuk@toradex.com>
> Enable CONFIG_ARMV7_BOOT_SEC_DEFAULT by default to avoid a kernel
> crash when booting NXP linux kernels in non-secure world,
> when job ring device allocation is done by CAAM hw accelerator driver:
> caam 30900000.caam: job rings = 3, qi = 0
> caam_jr 30901000.jr0: failed to flush job ring 0
> caam_jr: probe of 30901000.jr0 failed with error -5
> caam_jr 30902000.jr1: failed to flush job ring 1
> caam_jr: probe of 30902000.jr1 failed with error -5
> caam_jr 30903000.jr2: failed to flush job ring 2
> caam_jr: probe of 30903000.jr2 failed with error -5
> caam algorithms registered in /proc/crypto
> Job Ring Device allocation for transform failed
> caam 30900000.caam: caam pkc algorithms registered in /proc/crypto
> Unable to handle kernel NULL pointer dereference at virtual address 00000010
> pgd = c0004000
> [00000010] *pgd=00000000
> Internal error: Oops: 5 [#1] PREEMPT SMP ARM
> Modules linked in:
> CPU: 0 PID: 1 Comm: swapper/0 Tainted:
> Hardware name: Freescale i.MX7 Dual (Device Tree)
> task: ec0d8000 task.stack: ec0ce000
> PC is at caam_sm_startup+0x3f8/0x4f4
> Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/configs/colibri_imx7_emmc_defconfig b/configs/colibri_imx7_emmc_defconfig
index 2fa9f1f532..0ce56a8df9 100644
--- a/configs/colibri_imx7_emmc_defconfig
+++ b/configs/colibri_imx7_emmc_defconfig
@@ -76,3 +76,4 @@  CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x82000000
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
+CONFIG_ARMV7_BOOT_SEC_DEFAULT=y