Just to compare I tried to run Linux on QEMU emulating highbank. For now I am unable to start in SMP mode. Only one core is activated. And there is linux backtrace in L2C-310 init. My command line: # qemu-system-arm -smp 4 -M highbank -m 1024M -display none -no-reboot -kernel zImage -initrd rootfs.cpio.gz -dtb highbank.dtb -serial stdio The kernel output: [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.5.0-rc1-00028-g03c21cb-dirty (jcd@jcd-U31SG) (gcc version 4.6.3 (GCC) ) #20 SMP Sat Feb 20 11:27:10 CET 2016 [ 0.000000] CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] Machine model: Calxeda Highbank [ 0.000000] cma: Reserved 64 MiB at 0x3c000000 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: Using PSCI v0.1 Function IDs from DT [ 0.000000] PERCPU: Embedded 12 pages/cpu @ef7e3000 s18880 r8192 d22080 u49152 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260608 [ 0.000000] Kernel command line: console=ttyAMA0 [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Memory: 958304K/1048576K available (8557K kernel code, 1112K rwdata, 4036K rodata, 1104K init, 345K bss, 24736K reserved, 65536K cma-reserved, 196608K highmem) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0208000 - 0xc0e554cc (12598 kB) [ 0.000000] .init : 0xc0e56000 - 0xc0f6a000 (1104 kB) [ 0.000000] .data : 0xc0f6a000 - 0xc10803c0 (1113 kB) [ 0.000000] .bss : 0xc1083000 - 0xc10d9598 ( 346 kB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] Build-time adjustment of leaf fanout to 32. [ 0.000000] RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=1. [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=1 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] L2C-310 erratum 769419 enabled [ 0.000000] L2C-310 enabling early BRESP for Cortex-A9 [ 0.000000] ------------[ cut here ]------------ [ 0.000000] WARNING: CPU: 0 PID: 0 at arch/arm/mach-highbank/highbank.c:60 highbank_l2c310_write_sec+0x34/0x58() [ 0.000000] Highbank L2C310: ignoring write to reg 0x104 [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.5.0-rc1-00028-g03c21cb-dirty #20 [ 0.000000] Hardware name: Highbank [ 0.000000] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 0.000000] [] (show_stack) from [] (dump_stack+0x70/0x8c) [ 0.000000] [] (dump_stack) from [] (warn_slowpath_common+0x74/0xac) [ 0.000000] [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40) [ 0.000000] [] (warn_slowpath_fmt) from [] (highbank_l2c310_write_sec+0x34/0x58) [ 0.000000] [] (highbank_l2c310_write_sec) from [] (l2c_configure+0x34/0x48) [ 0.000000] [] (l2c_configure) from [] (l2c310_configure+0xc/0x16c) [ 0.000000] [] (l2c310_configure) from [] (l2c_enable+0xe8/0xf8) [ 0.000000] [] (l2c_enable) from [] (l2c310_enable+0x140/0x21c) [ 0.000000] [] (l2c310_enable) from [] (__l2c_init.part.6+0x19c/0x234) [ 0.000000] [] (__l2c_init.part.6) from [] (l2x0_of_init+0x208/0x254) [ 0.000000] [] (l2x0_of_init) from [] (init_IRQ+0x5c/0x80) [ 0.000000] [] (init_IRQ) from [] (start_kernel+0x244/0x3dc) [ 0.000000] [] (start_kernel) from [<0020807c>] (0x20807c) [ 0.000000] ---[ end trace cb88537fdc8fa200 ]--- [ 0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled [ 0.000000] L2C-310 cache controller enabled, 8 ways, 128 kB [ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x02020000 [ 0.000000] clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 12741736309 ns [ 0.000184] sched_clock: 32 bits at 150MHz, resolution 6ns, wraps every 14316557820ns [ 0.005851] Console: colour dummy device 80x30 [ 0.010978] Calibrating delay loop... 830.66 BogoMIPS (lpj=2076672) [ 0.066316] pid_max: default: 32768 minimum: 301 [ 0.067955] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.068026] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.080254] CPU: Testing write buffer coherency: ok [ 0.091638] missing device node for CPU 0 [ 0.091966] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.092492] Setting up static identity map for 0x209000 - 0x209098 [ 0.105477] Brought up 1 CPUs [ 0.105595] SMP: Total of 1 processors activated (830.66 BogoMIPS). [ 0.105723] CPU: All CPU(s) started in SVC mode. [ 0.161221] devtmpfs: initialized [ 0.173367] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0 [ 0.191622] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302231375000 ns [ 0.218111] pinctrl core: initialized pinctrl subsystem [ 0.240982] NET: Registered protocol family 16 [ 0.264314] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.273167] cpuidle: using governor menu [ 0.291816] of_amba_device_create(): amba_device_add() failed (-19) for /soc/ipc@fff20000 [ 0.296693] of_amba_device_create(): amba_device_add() failed (-19) for /soc/dma@fff3d000 [ 0.301322] No ATAGs? [ 0.301473] hw-breakpoint: debug architecture 0x4 unsupported. [ 0.311969] Serial: AMBA PL011 UART driver [ 0.314789] fff36000.serial: ttyAMA0 at MMIO 0xfff36000 (irq = 30, base_baud = 0) is a PL011 rev1 [ 0.361986] console [ttyAMA0] enabled [ 0.424008] vgaarb: loaded [ 0.429273] SCSI subsystem initialized [ 0.432446] usbcore: registered new interface driver usbfs [ 0.433301] usbcore: registered new interface driver hub [ 0.434118] usbcore: registered new device driver usb [ 0.438497] pps_core: LinuxPPS API ver. 1 registered [ 0.438988] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [ 0.439957] PTP clock support registered [ 0.441054] EDAC MC: Ver: 3.0.0 [ 0.458770] clocksource: Switched to clocksource arm,sp804 [ 0.512003] NET: Registered protocol family 2 [ 0.519451] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.520405] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.522070] TCP: Hash tables configured (established 8192 bind 8192) [ 0.523533] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.524236] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.526354] NET: Registered protocol family 1 [ 0.531160] RPC: Registered named UNIX socket transport module. [ 0.531952] RPC: Registered udp transport module. [ 0.532391] RPC: Registered tcp transport module. [ 0.532765] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.551747] Trying to unpack rootfs image as initramfs... [ 0.772458] Freeing initrd memory: 428K (c8000000 - c806b000) [ 0.774751] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 1 counters available [ 0.780779] futex hash table entries: 256 (order: 2, 16384 bytes) [ 0.823585] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.828308] NFS: Registering the id_resolver key type [ 0.829517] Key type id_resolver registered [ 0.829774] Key type id_legacy registered [ 0.830580] ntfs: driver 2.1.32 [Flags: R/O]. [ 0.840916] bounce: pool size: 64 pages [ 0.843410] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249) [ 0.844144] io scheduler noop registered [ 0.844440] io scheduler deadline registered [ 0.844923] io scheduler cfq registered (default) [ 1.147672] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 1.155398] SuperH (H)SCI(F) driver initialized [ 1.158507] msm_serial: driver initialized [ 1.159302] STMicroelectronics ASC driver initialized [ 1.164268] [drm] Initialized drm 1.1.0 20060810 [ 1.232423] brd: module loaded [ 1.272039] loop: module loaded [ 1.281563] highbank-ahci ffe08000.sata: AHCI 0001.0000 32 slots 1 ports 1.5 Gbps 0x1 impl platform mode [ 1.282249] highbank-ahci ffe08000.sata: flags: ncq only [ 1.290241] scsi host0: sata_highbank [ 1.296846] ata1: SATA max UDMA/133 mmio [mem 0xffe08000-0xffe17fff] port 0x100 irq 27 [ 1.317097] libphy: Fixed MDIO Bus: probed [ 1.319831] CAN device driver interface [ 1.322883] calxedaxgmac fff50000.ethernet (unnamed net_device) (uninitialized): h/w version is 0x1012 [ 1.327766] calxedaxgmac fff51000.ethernet (unnamed net_device) (uninitialized): h/w version is 0x1012 [ 1.333222] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.3.0-k [ 1.333607] igb: Copyright (c) 2007-2014 Intel Corporation. [ 1.342007] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver [ 1.342613] usbcore: registered new interface driver pegasus [ 1.343188] usbcore: registered new interface driver asix [ 1.343679] usbcore: registered new interface driver ax88179_178a [ 1.344164] usbcore: registered new interface driver cdc_ether [ 1.344760] usbcore: registered new interface driver smsc75xx [ 1.345337] usbcore: registered new interface driver smsc95xx [ 1.346240] usbcore: registered new interface driver net1080 [ 1.346742] usbcore: registered new interface driver cdc_subset [ 1.347219] usbcore: registered new interface driver zaurus [ 1.347861] usbcore: registered new interface driver cdc_ncm [ 1.352913] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.353397] ehci-pci: EHCI PCI platform driver [ 1.354023] ehci-platform: EHCI generic platform driver [ 1.354755] ehci-omap: OMAP-EHCI Host Controller driver [ 1.355447] ehci-orion: EHCI orion driver [ 1.356401] SPEAr-ehci: EHCI SPEAr driver [ 1.357040] ehci-st: EHCI STMicroelectronics driver [ 1.357691] ehci-exynos: EHCI EXYNOS driver [ 1.358307] ehci-atmel: EHCI Atmel driver [ 1.358907] tegra-ehci: Tegra EHCI driver [ 1.359672] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.360467] ohci-pci: OHCI PCI platform driver [ 1.361146] ohci-platform: OHCI generic platform driver [ 1.361889] ohci-omap3: OHCI OMAP3 driver [ 1.362535] SPEAr-ohci: OHCI SPEAr driver [ 1.363201] ohci-st: OHCI STMicroelectronics driver [ 1.364030] ohci-atmel: OHCI Atmel driver [ 1.366552] usbcore: registered new interface driver usb-storage [ 1.376379] mousedev: PS/2 mouse device common for all mice [ 1.389381] rtc-pl031 fff35000.rtc: rtc core: registered pl031 as rtc0 [ 1.396441] i2c /dev entries driver [ 1.424256] hb_mc_edac fff00000.memory-controller: No ECC present, or ECC disabled [ 1.429835] EDAC DEVICE0: Giving out device to module hb_l2_edac controller calxeda,hb-sregs-l2-ecc: DEV fff3c200.sregs (INTERRUPT) [ 1.436472] sdhci: Secure Digital Host Controller Interface driver [ 1.436868] sdhci: Copyright(c) Pierre Ossman [ 1.442605] Synopsys Designware Multimedia Card Interface Driver [ 1.446809] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.453659] ledtrig-cpu: registered to indicate activity on CPUs [ 1.455151] usbcore: registered new interface driver usbhid [ 1.455559] usbhid: USB HID core driver [ 1.479532] NET: Registered protocol family 10 [ 1.489877] sit: IPv6 over IPv4 tunneling driver [ 1.494441] NET: Registered protocol family 17 [ 1.494878] can: controller area network core (rev 20120528 abi 9) [ 1.495609] NET: Registered protocol family 29 [ 1.495939] can: raw protocol (rev 20120528) [ 1.496268] can: broadcast manager protocol (rev 20120528 t) [ 1.496630] can: netlink gateway (rev 20130117) max_hops=1 [ 1.499025] Key type dns_resolver registered [ 1.499704] ThumbEE CPU extension supported. [ 1.500037] Registering SWP/SWPB emulation handler [ 1.514185] rtc-pl031 fff35000.rtc: setting system clock to 2016-02-20 10:36:54 UTC (1455964614) [ 1.522492] uart-pl011 fff36000.serial: no DMA platform data [ 1.769068] ata1: SATA link down (SStatus 0 SControl 300) [ 1.801718] Freeing unused kernel memory: 1104K (c0e56000 - c0f6a000) Type exit when done. /bin/ash: can't access tty; job control turned off (:1) / # And for sure there is only one CPU activated: (:1) / # cat /proc/interrupts CPU0 16: 1003 GIC-0 29 Edge twd 17: 0 GIC-0 50 Level timer 25: 0 GIC-0 103 Level fff3c200.sregs 26: 0 GIC-0 104 Level fff3c200.sregs 27: 0 GIC-0 115 Level highbank-ahci[ffe08000.sata] 29: 0 GIC-0 51 Level rtc-pl031 30: 30 GIC-0 52 Level uart-pl011 33: 8 GIC-0 109 Level fff50000.ethernet 34: 0 GIC-0 110 Level fff50000.ethernet 36: 0 GIC-0 112 Level fff51000.ethernet 37: 0 GIC-0 113 Level fff51000.ethernet IPI0: 0 CPU wakeup interrupts IPI1: 0 Timer broadcast interrupts IPI2: 0 Rescheduling interrupts IPI3: 0 Function call interrupts IPI4: 0 CPU stop interrupts IPI5: 0 IRQ work interrupts IPI6: 0 completion interrupts Err: 0 (:1) / # Am I missing something? JC Le 19/02/2016 22:06, Jean-Christophe DUBOIS a écrit : > Le 19/02/2016 10:32, Peter Maydell a écrit : >> On 19 February 2016 at 06:32, Jean-Christophe DUBOIS >> wrote: >>> Le 18/02/2016 22:46, Peter Maydell a écrit : >>>> Does SMP work with EL3 not enabled, or is this a different bug? >>> If I set has_el3 to false, I can boot the 4 cores without problem. With >>> has_el3 set to true (default value) I am getting the above behavior (boot OK >>> in uniprocessor mode, and misbehaving if -smp >= 2). >> Odd. If you can point me to a test image I can use to investigate >> (preferably with System.map and commit hash of kernel used to build it) >> I'll see if I can find time to have a look at what's going on there. > > I put my test image at the following address: > > http://dl.free.fr/rADch1Xnx > > You will get a tgz file with the following files in it: > > * imx6q-sabrelite.dtb > * README > * rootfs.cpio.gz > * System.map > * zImage > > Instruction to run the image are in the README file. > > The kernel is compiled using the imx_v6_v7_defconfig file (without > modification) in the linux source tree > > Thanks > > JC > >> -- PMM >> >