We are using the dual core iMX6 chip on our target board running Freescale Kernel 3.14.28).
We are trying to enable both the cores but unable to detect the second core.
I have done following modification in defconfig.
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_SMP=y
CONFIG_SMP=y
CONFIG_SMP_ON_UP=y
CONFIG_PM_SLEEP_SMP=y
and imxdl.dtsi is by default has cpu@1 nodes enabled.
cpu@1 {
compatible = "arm,cortex-a9";
device_type = "cpu";
reg = <1>;
next-level-cache = <&L2>;
};
Please find the Kernel logs:- These logs does not come if don't enable CONFIG_SMP
[ 0.082439] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.088239] Setting up static identity map for 0x10427398 - 0x104273f0
[ 0.100426] Brought up 1 CPUs
[ 0.103494] SMP: Total of 1 processors activated.
[ 0.108341] CPU: All CPU(s) started in SVC mode.
cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 10 (v7l)
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part : 0xc09
CPU revision : 10
Hardware : Freescale i.MX6 Quad/DualLite (Device Tree)
Revision : 0000
Serial : 0000000000000000
Let me know if i am missing anything.
Thanks,
Dilshad
Solved! Go to Solution.
This Problem is resolved. CONFIG_CMDLINE was having parameter "nosmp". After removing that, both the cores are detected.
This Problem is resolved. CONFIG_CMDLINE was having parameter "nosmp". After removing that, both the cores are detected.
Hi Dilshad
one can check maxcpus kernel parameter and how many
cores in chip: fuse NUM_CORES 0x430[21:20]
Table 5-8. Fusemap i.MX6SDL RM rev.2 (5/2015).
Default kernel imx_v7_defconfig should support smp.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thanks for your reply.
I have checked NUM_CORES 0x430[21:20] bit values. Its coming as 0xA20100C4. Bit 20 & 21 are 00 which means its dual core as per TRM.
Do you see any problem in my configs.
in CONFIG_CMDLINE also i added maxcpus=2 but still its not recognized.
Any further inputs in debugging this issue would be appreciated.
Thanks,
Dilshad
HI Dilshad
could you try Demo images from i.MX6 product page :
Board Support Packages (27)
L3.14.28_1.0.0_iMX6QDLS_BUNDLE (REV L3.14.28_1.0.0)
i.MX 6Quad, i.MX 6Dual, i.MX 6DualLite, i.MX 6Solo Linux Binary Demo Files and Linux BSP Documentation
SABRE Board Reference Design|Freescale
L3.14.28_1.0.0_iMX6QDLS_BUNDLE (REV L3.14.28_1.0.0)
i.MX 6Quad, i.MX 6Dual, i.MX 6DualLite, i.MX 6Solo Linux Binary Demo Files and Linux BSP Documentation
Best regards
igor
Hi Igor,
This is cutomized board based on SabreSD.
I doubt kernel booting with Demo Images and moreover it will not solve my issue.
It would be great if you can give pointers in debugging this issue?
Thanks,
Dilshad