[U-Boot] imx7d: CPU core issue in secure mode
Tobias Junghans
tobias.junghans at veyon.io
Fri Jul 12 08:20:31 UTC 2019
Hi Peng,
Am Freitag, 12. Juli 2019, 05:38:21 CEST schrieb Peng Fan:
> Try "setenv bootm_boot_mode nonsec" in U-Boot stage.
Unfortunately this does not help. I tried the following setups:
CONFIG_SECURE_BOOT=y
CONFIG_CPU_V7_HAS_NONSEC=y
CONFIG_CPU_V7_HAS_VIRT=y
CONFIG_ARCH_SUPPORT_PSCI=y
CONFIG_ARMV7_NONSEC=y
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
CONFIG_ARMV7_VIRT=y
CONFIG_ARMV7_PSCI=y
CONFIG_ARMV7_PSCI_NR_CPUS=2
CONFIG_FSL_CAAM=y
CONFIG_SYS_FSL_HAS_SEC=y
CONFIG_SYS_FSL_SEC_COMPAT_4=y
# CONFIG_SYS_FSL_SEC_BE is not set
CONFIG_SYS_FSL_SEC_COMPAT=4
CONFIG_SYS_FSL_SEC_LE=y
Booting with bootm_boot_mode=nonsec
U-Boot 2019.07 (Jul 12 2019 - 10:02:31 +0200)
CPU: Freescale i.MX7D rev1.3 1000 MHz (running at 792 MHz)
..
SEC0: RNG instantiated
..
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[ 0.000000] percpu: Embedded 16 pages/cpu s34380 r8192 d22964 u65536
[ 0.000000] pcpu-alloc: s34380 r8192 d22964 u65536 alloc=16*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
..
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.0 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: Trusted OS migration not required
[ 0.000000] psci: SMC Calling Convention v1.0
..
[ 0.002872] CPU: Testing write buffer coherency: ok
[ 0.003224] CPU0: update cpu_capacity 1024
[ 0.003234] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.004687] smp: Bringing up secondary CPUs ...
[ 0.005424] CPU1: update cpu_capacity 1024
[ 0.005432] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.005553] smp: Brought up 1 node, 2 CPUs
[ 0.005568] CPU: All CPU(s) started in HYP mode.
[ 0.005571] CPU: Virtualization extensions available.
..
[ 0.185229] caam 30900000.caam: device ID = 0x0a16030000000000 (Era 8)
[ 0.185240] caam 30900000.caam: job rings = 3, qi = 0
[ 0.186894] caam_jr 30901000.jr0: failed to flush job ring 0
[ 0.192721] caam_jr: probe of 30901000.jr0 failed with error -5
[ 0.192846] caam_jr 30902000.jr1: failed to flush job ring 1
[ 0.198796] caam_jr: probe of 30902000.jr1 failed with error -5
[ 0.198989] caam_jr 30903000.jr1: failed to flush job ring 2
[ 0.204957] caam_jr: probe of 30903000.jr1 failed with error -5
[ 0.212619] Job Ring Device allocation for transform failed
Same configuration with
setenv bootm_boot_mode=sec
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[ 0.000000] percpu: Embedded 16 pages/cpu s34380 r8192 d22964 u65536
[ 0.000000] pcpu-alloc: s34380 r8192 d22964 u65536 alloc=16*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.002866] CPU: Testing write buffer coherency: ok
[ 0.003217] CPU0: update cpu_capacity 1024
[ 0.003226] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.004673] smp: Bringing up secondary CPUs ...
[ 0.005174] smp: Brought up 1 node, 1 CPU
[ 0.005188] CPU: All CPU(s) started in SVC mode.
..
[ 0.185631] caam 30900000.caam: device ID = 0x0a16030000000000 (Era 8)
[ 0.185643] caam 30900000.caam: job rings = 3, qi = 0
[ 0.196909] caam algorithms registered in /proc/crypto
[ 0.199620] caam_jr 30901000.jr0: registering rng-caam
=> only 1 CPU core up.
Now I tried to disable the CAAM driver and secure boot support in U-Boot
# CONFIG_SECURE_BOOT is not set
CONFIG_CPU_V7_HAS_NONSEC=y
CONFIG_CPU_V7_HAS_VIRT=y
CONFIG_ARCH_SUPPORT_PSCI=y
CONFIG_ARMV7_NONSEC=y
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
CONFIG_ARMV7_VIRT=y
CONFIG_ARMV7_PSCI=y
CONFIG_ARMV7_PSCI_NR_CPUS=2
# CONFIG_FSL_CAAM is not set
CONFIG_SYS_FSL_SEC_COMPAT_4=y
# CONFIG_SYS_FSL_SEC_BE is not set
CONFIG_SYS_FSL_SEC_LE=y
and booting with bootm_boot_mode=nonsec
[ 0.185233] caam 30900000.caam: Entropy delay = 3200
[ 0.212342] caam 30900000.caam: failed to acquire DECO 0
[ 0.217689] caam 30900000.caam: failed to instantiate RNG
=> both CPU cores are up in nonsec mode
Am I missing something?
Thank you and best regards
Tobias
More information about the U-Boot
mailing list