LS1043a based Linux boot fails

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LS1043a based Linux boot fails

1,789 Views
rodolfo_vick
Contributor II

Hi, 

I have a custom board using LS1043a cpu with no NOR memory (only MMC and NAND). I am trying to boot linux on the board, but it fails. As I don't have NOR, I can't load PPA into. The fails seems to be when the kernel tries to load the second CPU. The other cores never comes alive, the PSCI module is not loaded.

If I boot the cpu in mono-core mode, the fails occurs in the PCI-E or MMC initialization (depends if I have something connected to PCI-E or not. 

Is this problem related with the PPA? How can I load PPA from NAND/MMC instead of NOR.

Best regards.

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 4.1.8-rt8+gbd51baf (rodolfo@darkside) (gcc version 4.9.3 20150311 (prerelease) (Linaro GCC 4.9-2015.03) ) #1 SMP Wed Mar 14 18:57:24 UTC 2018
[ 0.000000] CPU: AArch64 Processor [410fd034] revision 4
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] alternatives: enabling workaround for ARM erratum 845719
[ 0.000000] earlycon: Early serial console at MMIO 0x21c0500 (options '')
[ 0.000000] bootconsole [uart0] enabled
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: initialized node bman-fbpr, compatible id fsl,bman-fbpr
[ 0.000000] Reserved memory: initialized node qman-fqd, compatible id fsl,qman-fqd
[ 0.000000] Reserved memory: initialized node qman-pfdr, compatible id fsl,qman-pfdr
[ 0.000000] cma: Reserved 16 MiB at 0x00000000bb000000
[ 0.000000] PERCPU: Embedded 18 pages/cpu @ffff80003fd88000 s33856 r8192 d31680 u73728
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 257544
[ 0.000000] Kernel command line: root=/dev/mmcblk0p1 rw earlycon=uart8250,0x21c0500 console=ttyS0,9600 rootdelay=1 mtdparts=mtdparts=7e800000.flash:0x160000(nand_uboot),0x20000(nand_ucode),0xa00000(nand_fit1),0xdc00000(nand_fs1),0xa00000(nand_fit2),0xdc00000(nand_fs2),0x3280000(nand_data)
[ 0.000000] log_buf_len individual max cpu contribution: 4096 bytes
[ 0.000000] log_buf_len total cpu_extra contributions: 12288 bytes
[ 0.000000] log_buf_len min size: 16384 bytes
[ 0.000000] log_buf_len: 32768 bytes
[ 0.000000] early log buf free: 14396(87%)
[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[ 0.000000] software IO TLB [mem 0xb6200000-0xba200000] (64MB) mapped at [ffff800036200000-ffff80003a1fffff]
[ 0.000000] Memory: 875500K/1046528K available (7726K kernel code, 574K rwdata, 3192K rodata, 472K init, 758K bss, 154644K reserved, 16384K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vmalloc : 0xffff000000000000 - 0xffff7bffbfff0000 (126974 GB)
[ 0.000000] vmemmap : 0xffff7bffc0000000 - 0xffff7fffc0000000 ( 4096 GB maximum)
[ 0.000000] 0xffff7bffc2000000 - 0xffff7bffc2ff8000 ( 15 MB actual)
[ 0.000000] fixed : 0xffff7ffffabfd000 - 0xffff7ffffac00000 ( 12 KB)
[ 0.000000] PCI I/O : 0xffff7ffffae00000 - 0xffff7ffffbe00000 ( 16 MB)
[ 0.000000] modules : 0xffff7ffffc000000 - 0xffff800000000000 ( 64 MB)
[ 0.000000] memory : 0xffff800000000000 - 0xffff80003fe00000 ( 1022 MB)
[ 0.000000] .init : 0xffff800000b2c000 - 0xffff800000ba2000 ( 472 KB)
[ 0.000000] .text : 0xffff800000080000 - 0xffff800000b2b8a4 ( 10927 KB)
[ 0.000000] .data : 0xffff800000bb3000 - 0xffff800000c42a00 ( 575 KB)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] Additional per-CPU info printed with stalls.
[ 0.000000] RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] NR_IRQS:64 nr_irqs:64 0
[ 0.000000] GIC CPU mask not found - kernel will fail to boot.
[ 0.000000] GIC CPU mask not found - kernel will fail to boot.
[ 0.000000] Architected cp15 timer(s) running at 25.00MHz (phys).
[ 0.000000] clocksource arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[ 0.000003] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[ 0.048451] Console: colour dummy device 80x25
[ 0.075189] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[ 0.137553] pid_max: default: 32768 minimum: 301
[ 0.165383] Security Framework initialized
[ 0.190046] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.230402] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.273690] Initializing cgroup subsys memory
[ 0.299913] Initializing cgroup subsys hugetlb
[ 0.326775] hw perfevents: enabled with arm/armv8-pmuv3 PMU driver, 7 counters available
[ 0.375528] EFI services will not be available.

4 Replies

1,296 Views
rodolfo_vick
Contributor II

Hi, 

I just dumped the GICD, GICC, GICH and GICV registers in my custom board, and all values are zero. If I do the same on the LS1043ardb board without ppa, we have some values. 

Some differences between your board and ls1043ardb board:

  • We have 1GB DDR3 RAM;
  • We are using configuration 9998 for the SERDES;
  • We only have RGMII1 interface connected;
  • We are using Yocto.

Best regards. 

0 Kudos

1,296 Views
rodolfo_vick
Contributor II

Hi, 

I don't know if PPA is the problem. I removed the ppa from NOR memory in the LS1043ardb and Linux is still working. 

We have the following problem apearing: 

 GIC CPU mask not found - kernel will fail to boot.

and all wait functions (timers like msleep) freezes the processor. 

What can be the problem?

Where in the u-boot/kernel the GIC CPU mask is set? 

Thanks. 

0 Kudos

1,296 Views
Pavel
NXP Employee
NXP Employee

Usually the following command sequence is used for PPA microcode burning to SD/MMC card:

Program a new microcode to SD Card:

  1. tftp 0x83000000 LS1043ARDB/ucode.bin
  2. mmc erase 0x820 0x50 // the start at 8 block; the end block is 2048
  3. mmc write 0x83000000 0x820 0x50 // after that the first block is 8 the last block is 0x870 (2160 dec)
  4. cpld reset sd


Have a great day,
Pavel Chubakov

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,295 Views
mcbridematt
Contributor III

I don't know about the LSDK/QorIQ SDK, but the latest "mainline" U-Boot can load the PPA from NAND or SD/MMC.