R528-S3 内核崩溃__invoke_psci_fn_smc
-
R528-S3上手,直接买芯片做的板,内核中配置PSCI会导致内核挂掉,报错__invoke_psci_fn_smc,而T113不会报这个错。
去掉PSCI选项呢,跑起来又只看到单核, 3个板都如此,难道买到次品芯片了?
各位大神有遇到这啥情况不?
-
-
@hqembed 在 R528-S3 内核崩溃__invoke_psci_fn_smc 中说:
__invoke_psci_fn_smc
看上去是optee那边的锅,psci是启smp的,对不上optee就会导致tee异常处理
先跳过 OPTEE ,在 device/config/chips/r528/configs/xxx/ 新建一个 boot_package.cfg写入以下内容
[package] item=u-boot, u-boot.fex item=dtb, sunxi.fex
然后找到
lichee/linux-5.4/arch/arm/boot/dts/sun8iw20p1.dtsi
中的 psci 节点把他删了psci { compatible = "arm,psci-1.0"; method = "smc"; };
在
lichee/linux-5.4/arch/arm/mach-sunxi/platsmp.c
加一下static int sun8i_t113_smp_boot_secondary(unsigned int cpu, struct task_struct *idle) { u32 reg; void __iomem *cpucfg_membase = ioremap(0x09010000, 0x10); void __iomem *cpuexec_membase[] = {ioremap(0x070005C4, 0x10),ioremap(0x070005C8, 0x10)}; if (cpu != 1) return 0; spin_lock(&cpu_lock); writel(__pa_symbol(secondary_startup), cpuexec_membase[cpu]); reg = readl(cpucfg_membase); writel(reg | BIT(cpu), cpucfg_membase); spin_unlock(&cpu_lock); return 0; } static const struct smp_operations sun8i_t113_smp_ops __initconst = { .smp_boot_secondary = sun8i_t113_smp_boot_secondary, }; CPU_METHOD_OF_DECLARE(sun8i_t113_smp, "allwinner,sun8iw20p1", &sun8i_t113_smp_ops);
-
@whycanservice 感谢,我试试,刚好功能全测完,只剩下这个问题。
是OPTEE打包后直接挂,所以去掉了OPTEE,结果又遇到SMP问题。 -
好,2个CPU都起来了,OPTEE有需要时再看,暂时用不上。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号