ls1021a IFC NAND with QSPI boot issue

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

ls1021a IFC NAND with QSPI boot issue

Jump to solution
2,038 Views
kele6ra
Contributor III

Hello, we have custom ls1021a board. We want to make qspi boot (nor flash) and ifc nand kernel+rootfs. The main problem that I don't see even ifc device probing with the kernel logs.

Spoiler

=> boot
PCIe1: pcie@3400000 Root Complex: no link
PCIe2: pcie@3500000 Root Complex: x1 gen2
starting openwrt ...
SF: Detected s25fl512s with page size 256 Bytes, erase size 256 KiB, total 64 MiB
device 0 offset 0xf00000, size 0x100000
SF: 1048576 bytes @ 0xf00000 Read: OK
device 0 offset 0x1000000, size 0x1000000
SF: 16777216 bytes @ 0x1000000 Read: OK
## Booting kernel from Legacy Image at 81000000 ...
Image Name: ARM OpenWrt Linux-5.4.143
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5150072 Bytes = 4.9 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 8f000000
Booting using the fdt blob at 0x8f000000
Loading Kernel Image
Loading Device Tree to 8fff7000, end 8ffff45f ... OK

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0xf00
[ 0.000000] Linux version 5.4.143 (andrei@HOMEPC) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16279-5cc0535800)) #0 SMP Tue Dec 14 13:18:39 2021
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=30c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: LS1021A GLOMEX Board
[ 0.000000] earlycon: uart8250 at MMIO 0x00000000021c0500 (options '')
[ 0.000000] printk: bootconsole [uart8250] enabled
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Failed to reserve 32 MiB
[ 0.000000] On node 0 totalpages: 131072
[ 0.000000] DMA zone: 1062 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 120832 pages, LIFO batch:31
[ 0.000000] HighMem zone: 10240 pages, LIFO batch: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: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.0
[ 0.000000] percpu: Embedded 15 pages/cpu s30924 r8192 d22324 u61440
[ 0.000000] pcpu-alloc: s30924 r8192 d22324 u61440 alloc=15*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 130010
[ 0.000000] Kernel command line: root=/dev/mtdblock7 rootfstype=squashfs,jffs2 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=1550000.spi:1m(rcw),2m(u-boot),512k(u-boot-env-1),512k(u-boot-env-2),11m(reserved-1),1m(dtb),16m(kernel),32m(rootfs),49m@0xf00000(firmware);60000000.flash:32m(user-data) cma=32M@0x0-0x60000000 vmalloc=544M
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] software IO TLB: mapped [mem 0x992ec000-0x9d2ec000] (64MB)
[ 0.000000] Memory: 438284K/524288K available (8192K kernel code, 243K rwdata, 1988K rodata, 2048K init, 267K bss, 86004K reserved, 0K cma-reserved, 40960K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x4ac with crng_init=0
[ 0.000000] arch_timer: cp15 timer(s) running at 12.50MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049cda, max_idle_ns: 440795202628 ns
[ 0.000005] sched_clock: 56 bits at 12MHz, resolution 80ns, wraps every 4398046511080ns
[ 0.008023] Switching to timer-based delay loop, resolution 80ns
[ 0.014643] Console: colour dummy device 80x30
[ 0.019132] Calibrating delay loop (skipped), value calculated using timer frequency.. 25.00 BogoMIPS (lpj=125000)
[ 0.029513] pid_max: default: 32768 minimum: 301
[ 0.034287] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.041625] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.050152] CPU: Testing write buffer coherency: ok
[ 0.055402] CPU0: update cpu_capacity 1024
[ 0.059507] CPU0: thread -1, cpu 0, socket 15, mpidr 80000f00
[ 0.065782] Setting up static identity map for 0x80200000 - 0x80200060
[ 0.072420] rcu: Hierarchical SRCU implementation.
[ 0.077933] smp: Bringing up secondary CPUs ...
[ 0.083104] CPU1: update cpu_capacity 1024
[ 0.083110] CPU1: thread -1, cpu 1, socket 15, mpidr 80000f01
[ 0.083226] smp: Brought up 1 node, 2 CPUs
[ 0.097205] SMP: Total of 2 processors activated (50.00 BogoMIPS).
[ 0.103403] CPU: All CPU(s) started in HYP mode.
[ 0.108021] CPU: Virtualization extensions available.
[ 0.117297] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.125191] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.135071] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.142007] pinctrl core: initialized pinctrl subsystem
[ 0.147839] NET: Registered protocol family 16
[ 0.152823] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.160800] cpuidle: using governor menu
[ 0.164868] No ATAGs?
[ 0.166900] Machine: LS1021A GLOMEX Board
[ 0.173212] SoC family: QorIQ LS1021A
[ 0.176873] SoC ID: svr:0x87001120, Revision: 2.0
[ 0.200537] SCSI subsystem initialized
[ 0.204523] usbcore: registered new interface driver usbfs
[ 0.210066] usbcore: registered new interface driver hub
[ 0.215435] usbcore: registered new device driver usb
[ 0.220821] imx-i2c 2180000.i2c: can't get pinctrl, bus recovery not supported
[ 0.228320] i2c i2c-0: IMX I2C adapter registered
[ 0.233065] i2c i2c-0: using dma0chan16 (tx) and dma0chan17 (rx) for DMA transfers
[ 0.240847] imx-i2c 2190000.i2c: can't get pinctrl, bus recovery not supported
[ 0.248397] pca953x 1-0020: using no AI
[ 0.273041] i2c i2c-1: IMX I2C adapter registered
[ 0.277819] i2c i2c-1: using dma0chan18 (tx) and dma0chan19 (rx) for DMA transfers
[ 0.285562] pps_core: LinuxPPS API ver. 1 registered
[ 0.290544] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.299708] PTP clock support registered
[ 0.304170] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[ 0.314407] Bluetooth: Core ver 2.22
[ 0.318018] NET: Registered protocol family 31
[ 0.322475] Bluetooth: HCI device and connection manager initialized
[ 0.328861] Bluetooth: HCI socket layer initialized
[ 0.333748] Bluetooth: L2CAP socket layer initialized
[ 0.338816] Bluetooth: SCO socket layer initialized
[ 0.344080] clocksource: Switched to clocksource arch_sys_counter
[ 0.354713] thermal_sys: Registered thermal governor 'step_wise'
[ 0.355072] NET: Registered protocol family 2
[ 0.365649] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.373418] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.381826] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.389633] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.396851] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.403312] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.409894] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.417060] NET: Registered protocol family 1
[ 0.421444] PCI: CLS 0 bytes, default 64
[ 0.426540] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[ 0.440532] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.446577] ntfs: driver 2.1.32 [Flags: R/O].
[ 0.451130] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.461336] fuse: init (API version 7.31)
[ 0.499675] bounce: pool size: 64 pages
[ 0.505172] layerscape-pcie 3400000.pcie: host bridge /soc/pcie@3400000 ranges:
[ 0.512529] layerscape-pcie 3400000.pcie: IO 0x4000010000..0x400001ffff -> 0x00000000
[ 0.520683] layerscape-pcie 3400000.pcie: MEM 0x4040000000..0x407fffffff -> 0x40000000
[ 0.529065] layerscape-pcie 3400000.pcie: PCI host bridge to bus 0000:00
[ 0.535807] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.541304] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 0.547513] pci_bus 0000:00: root bus resource [mem 0x4040000000-0x407fffffff] (bus address [0x40000000-0x7fffffff])
[ 0.558094] pci 0000:00:00.0: [1957:0e0b] type 01 class 0x060400
[ 0.564202] pci 0000:00:00.0: supports D1 D2
[ 0.568479] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
[ 0.575834] PCI: bus0: Fast back to back transfers disabled
[ 0.582576] PCI: bus1: Fast back to back transfers enabled
[ 0.588114] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 0.593640] pcieport 0000:00:00.0: PME: Signaling with IRQ 42
[ 0.599697] pcieport 0000:00:00.0: AER: enabled with IRQ 43
[ 0.605548] layerscape-pcie 3500000.pcie: host bridge /soc/pcie@3500000 ranges:
[ 0.612897] layerscape-pcie 3500000.pcie: IO 0x4800010000..0x480001ffff -> 0x00000000
[ 0.621038] layerscape-pcie 3500000.pcie: MEM 0x4840000000..0x487fffffff -> 0x40000000
[ 0.629324] layerscape-pcie 3500000.pcie: PCI host bridge to bus 0001:00
[ 0.636062] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 0.641561] pci_bus 0001:00: root bus resource [io 0x10000-0x1ffff] (bus address [0x0000-0xffff])
[ 0.650556] pci_bus 0001:00: root bus resource [mem 0x4840000000-0x487fffffff] (bus address [0x40000000-0x7fffffff])
[ 0.661130] pci 0001:00:00.0: [1957:0e0b] type 01 class 0x060400
[ 0.667222] pci 0001:00:00.0: supports D1 D2
[ 0.671499] pci 0001:00:00.0: PME# supported from D0 D1 D2 D3hot
[ 0.678813] PCI: bus0: Fast back to back transfers disabled
[ 0.684543] pci 0001:01:00.0: [1b4b:2b42] type 00 class 0x020000
[ 0.690588] pci 0001:01:00.0: MSI quirk detected; MSI disabled
[ 0.696509] pci 0001:01:00.0: reg 0x10: [mem 0x38000000-0x380fffff 64bit pref]
[ 0.703780] pci 0001:01:00.0: reg 0x18: [mem 0x38100000-0x381fffff 64bit pref]
[ 0.711305] pci 0001:01:00.0: supports D1 D2
[ 0.715594] pci 0001:01:00.0: PME# supported from D0 D1 D3hot D3cold
[ 0.745230] PCI: bus1: Fast back to back transfers disabled
[ 0.750845] pci 0001:00:00.0: BAR 9: assigned [mem 0x4840000000-0x48401fffff 64bit pref]
[ 0.758980] pci 0001:01:00.0: BAR 0: assigned [mem 0x4840000000-0x48400fffff 64bit pref]
[ 0.767127] pci 0001:01:00.0: BAR 2: assigned [mem 0x4840100000-0x48401fffff 64bit pref]
[ 0.775267] pci 0001:00:00.0: PCI bridge to [bus 01-ff]
[ 0.780505] pci 0001:00:00.0: bridge window [mem 0x4840000000-0x48401fffff 64bit pref]
[ 0.788873] pcieport 0001:00:00.0: PME: Signaling with IRQ 44
[ 0.795513] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[ 0.804380] printk: console [ttyS0] disabled
[ 0.808721] 21c0500.serial: ttyS0 at MMIO 0x21c0500 (irq = 31, base_baud = 9375000) is a 16550A
[ 0.817479] printk: console [ttyS0] enabled
[ 0.817479] printk: console [ttyS0] enabled
[ 0.825833] printk: bootconsole [uart8250] disabled
[ 0.825833] printk: bootconsole [uart8250] disabled
[ 0.835955] 21c0600.serial: ttyS1 at MMIO 0x21c0600 (irq = 31, base_baud = 9375000) is a 16550A
[ 0.845085] STMicroelectronics ASC driver initialized
[ 0.858572] brd: module loaded
[ 0.865584] loop: module loaded
[ 0.907010] random: fast init done
[ 1.045694] random: crng init done
[ 1.427218] spi-nor spi0.0: s25fl512s (65536 Kbytes)
[ 1.432182] 9 cmdlinepart partitions found on MTD device 1550000.spi
[ 1.438516] Creating 9 MTD partitions on "1550000.spi":
[ 1.443717] 0x000000000000-0x000000100000 : "rcw"
[ 1.448811] ftl_cs: FTL header not found.
[ 1.453595] 0x000000100000-0x000000300000 : "u-boot"
[ 1.458943] ftl_cs: FTL header not found.
[ 1.463572] 0x000000300000-0x000000380000 : "u-boot-env-1"
[ 1.469355] ftl_cs: FTL header not found.
[ 1.473952] 0x000000380000-0x000000400000 : "u-boot-env-2"
[ 1.479731] ftl_cs: FTL header not found.
[ 1.484344] 0x000000400000-0x000000f00000 : "reserved-1"
[ 1.489965] ftl_cs: FTL header not found.
[ 1.494595] 0x000000f00000-0x000001000000 : "dtb"
[ 1.499610] ftl_cs: FTL header not found.
[ 1.504251] 0x000001000000-0x000002000000 : "kernel"
[ 1.509525] ftl_cs: FTL header not found.
[ 1.514186] 0x000002000000-0x000004000000 : "rootfs"
[ 1.519461] ftl_cs: FTL header not found.
[ 1.523889] mtd: device 7 (rootfs) set to be root filesystem
[ 1.529579] 1 squashfs-split partitions found on MTD device rootfs
[ 1.535750] 0x000003980000-0x000004000000 : "rootfs_data"
[ 1.541466] ftl_cs: FTL header not found.
[ 1.546074] 0x000000f00000-0x000004000000 : "firmware"
[ 1.551525] ftl_cs: FTL header not found.
[ 1.556691] libphy: Fixed MDIO Bus: probed
[ 1.561360] Atheros(R) L2 Ethernet Driver - version 2.2.3
[ 1.566750] Copyright (c) 2007 Atheros Corporation.
[ 1.572067] libphy: Freescale PowerQUICC MII Bus: probed
[ 1.579024] libphy: Freescale PowerQUICC MII Bus: probed
[ 1.585355] fsl-gianfar soc:ethernet@2d10000: enabled errata workarounds, flags: 0x4
[ 1.603784] fsl-gianfar soc:ethernet@2d10000 eth0: mac: 00:04:9f:03:5b:c1
[ 1.610554] fsl-gianfar soc:ethernet@2d10000 eth0: Running with NAPI enabled
[ 1.617576] fsl-gianfar soc:ethernet@2d10000 eth0: RX BD ring size for Q[0]: 256
[ 1.624942] fsl-gianfar soc:ethernet@2d10000 eth0: RX BD ring size for Q[1]: 256
[ 1.632299] fsl-gianfar soc:ethernet@2d10000 eth0: TX BD ring size for Q[0]: 256
[ 1.639664] fsl-gianfar soc:ethernet@2d10000 eth0: TX BD ring size for Q[1]: 256
[ 1.647453] fsl-gianfar soc:ethernet@2d50000: enabled errata workarounds, flags: 0x4
[ 1.665817] fsl-gianfar soc:ethernet@2d50000 eth1: mac: 00:00:00:00:00:00
[ 1.672572] fsl-gianfar soc:ethernet@2d50000 eth1: Running with NAPI enabled
[ 1.679597] fsl-gianfar soc:ethernet@2d50000 eth1: RX BD ring size for Q[0]: 256
[ 1.686963] fsl-gianfar soc:ethernet@2d50000 eth1: RX BD ring size for Q[1]: 256
[ 1.694336] fsl-gianfar soc:ethernet@2d50000 eth1: TX BD ring size for Q[0]: 256
[ 1.701693] fsl-gianfar soc:ethernet@2d50000 eth1: TX BD ring size for Q[1]: 256
[ 1.709253] usbcore: registered new interface driver cdc_acm
[ 1.714893] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 1.722945] usbcore: registered new interface driver usbserial_generic
[ 1.729470] usbserial: USB Serial support registered for generic
[ 1.735476] usbcore: registered new interface driver option
[ 1.741034] usbserial: USB Serial support registered for GSM modem (1-port)
[ 1.748776] ftm-alarm 29d0000.timer0: registered as rtc1
[ 1.754199] i2c /dev entries driver
[ 1.758458] pps pps0: new PPS source ptp0
[ 1.763492] imx2-wdt 2ad0000.watchdog: timeout 60 sec (nowayout=0)
[ 1.769725] Bluetooth: HCI UART driver ver 2.3
[ 1.774155] Bluetooth: HCI UART protocol H4 registered
[ 1.779262] Bluetooth: HCI UART protocol BCSP registered
[ 1.785063] qoriq_cpufreq: Freescale QorIQ CPU frequency scaling driver
[ 1.791834] sdhci: Secure Digital Host Controller Interface driver
[ 1.798003] sdhci: Copyright(c) Pierre Ossman
[ 1.802333] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.834034] mmc0: SDHCI controller on 1560000.esdhc [1560000.esdhc] using ADMA 64-bit
[ 1.842365] hidraw: raw HID events driver (C) Jiri Kosina
[ 1.849363] NET: Registered protocol family 10
[ 1.855391] Segment Routing with IPv6
[ 1.859098] NET: Registered protocol family 17
[ 1.863683] Bluetooth: RFCOMM TTY layer initialized
[ 1.868579] Bluetooth: RFCOMM socket layer initialized
[ 1.873706] Bluetooth: RFCOMM ver 1.11
[ 1.877466] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.882747] Bluetooth: BNEP filters: protocol multicast
[ 1.887956] Bluetooth: BNEP socket layer initialized
[ 1.892890] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.898787] Bluetooth: HIDP socket layer initialized
[ 1.903722] 8021q: 802.1Q VLAN Support v1.8
[ 1.908048] ThumbEE CPU extension supported.
[ 1.912302] Registering SWP/SWPB emulation handler
[ 1.921922] hctosys: unable to open rtc device (rtc0)
[ 1.929394] VFS: Mounted root (squashfs filesystem) readonly on device 31:7.
[ 1.939623] Freeing unused kernel memory: 2048K
[ 1.970394] mmc0: new SD card at address d555
[ 1.975502] Run /sbin/init as init process
[ 1.976456] mmcblk0: mmc0:d555 SU01G 969 MiB
[ 1.987580] mmcblk0: p1 p2 p3
[ 2.194599] init: Console is alive
[ 2.198151] init: - watchdog -
[ 2.559918] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 2.582194] dwc3 3100000.usb3: Failed to get clk 'ref': -2
[ 2.589349] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 2.594898] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[ 2.602713] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f66c hci version 0x100 quirks 0x0000000002010810
[ 2.612155] xhci-hcd xhci-hcd.1.auto: irq 41, io mem 0x03100000
[ 2.618914] hub 1-0:1.0: USB hub found
[ 2.622680] hub 1-0:1.0: 1 port detected
[ 2.633238] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 2.638735] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[ 2.646382] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[ 2.653474] hub 2-0:1.0: USB hub found
[ 2.657330] hub 2-0:1.0: 1 port detected
[ 2.670337] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 2.677292] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 2.685616] init: - preinit -
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level

When I boot from qspi, I can see both devices with mtdparts:

Spoiler

=> sf probe
SF: Detected s25fl512s with page size 256 Bytes, erase size 256 KiB, total 64 MiB
=> mtd list
List of MTD devices:
* nand0
- type: NAND flash
- block size: 0x20000 bytes
- min I/O: 0x800 bytes
- OOB size: 64 bytes
- OOB available: 30 bytes
- ECC strength: 4 bits
- ECC step size: 512 bytes
- bitflip threshold: 3 bits
- 0x000000000000-0x000008000000 : "nand0"
- 0x000000000000-0x000002000000 : "user-data"
* nor0
- type: NOR flash
- block size: 0x40000 bytes
- min I/O: 0x1 bytes
- 0x000000000000-0x000004000000 : "nor0"
- 0x000000000000-0x000000100000 : "rcw"
- 0x000000100000-0x000000300000 : "u-boot"
- 0x000000300000-0x000000380000 : "u-boot-env-1"
- 0x000000380000-0x000000400000 : "u-boot-env-2"
- 0x000000400000-0x000000f00000 : "reserved-1"
- 0x000000f00000-0x000001000000 : "dtb"
- 0x000001000000-0x000002000000 : "kernel"
- 0x000002000000-0x000004000000 : "rootfs"
- 0x000000f00000-0x000004000000 : "firmware"
=> mtdparts

device nor0 <1550000.spi>, # parts = 9
#: name size offset mask_flags
0: rcw 0x00100000 0x00000000 0
1: u-boot 0x00200000 0x00100000 0
2: u-boot-env-1 0x00080000 0x00300000 0
3: u-boot-env-2 0x00080000 0x00380000 0
4: reserved-1 0x00b00000 0x00400000 0
5: firmware 0x03100000 0x00f00000 0
6: dtb 0x00100000 0x00f00000 0
7: kernel 0x01000000 0x01000000 0
8: rootfs 0x02000000 0x02000000 0

device nand0 <60000000.flash>, # parts = 1
#: name size offset mask_flags
0: user-data 0x02000000 0x00000000 0

active partition: nor0,0 - (rcw) 0x00100000 @ 0x00000000

defaults:
mtdids : nor0=1550000.spi,nand0=60000000.flash
mtdparts: mtdparts=1550000.spi:1m(rcw),2m(u-boot),512k(u-boot-env-1),512k(u-boot-env-2),11m(reserved-1),1m(dtb),16m(kernel),32m(rootfs),49m@0xf00000(firmware);60000000.flash:32m(user-data)

I want to use cmdline partitioning with bootargs:

Spoiler
bootargs=root=/dev/mtdblock7 rootfstype=squashfs,jffs2 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=1550000.spi:1m(rcw),2m(u-boot),512k(u-boot-env-1),512k(u-boot-env-2),11m(reserved-1),1m(dtb),16m(kernel),32m(rootfs),49m@0xf00000(firmware);60000000.flash:32m(user-data) cma=32M@0x0-0x60000000 vmalloc=544M
bootcmd=pci enum;echo starting openwrt ...;run qspi_boot
qspi_boot=sf probe 0:0;sf read $fdtaddr f00000 100000;sf read $loadaddr 1000000 1000000;bootm $loadaddr - $fdtaddr

I use RCW:

Spoiler
Reset Configuration Word (RCW):
00000000: 0608000a 00000000 00000000 00000000
00000010: 20000000 08407900 40025a00 21046000
00000020: 00000000 00000000 00000000 00030008
00000030: 20024801 2484b340 00000000 00000000

And kernel DTS:

Spoiler

&ifc {
#address-cells = <2>;
#size-cells = <1>;
ranges = <0x0 0x0 0x0 0x60000000 0x00010000>;
status = "okay";
  nand@0,0 {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "fsl,ifc-nand";
    reg = <0x0 0x0 0x10000>;
    bank-width = <1>;
    device-width = <1>;
  };
};

&qspi {
  num-cs = <2>;
  status = "okay";

  qflash0: s25fl512s@0 {
    compatible = "spansion,s25fl512s";
    #address-cells = <1>;
    #size-cells = <1>;
    spi-max-frequency = <20000000>;
    reg = <0>;
    spi-rx-bus-width = <4>;
    spi-tx-bus-width = <4>;
  };
};

 And kernel konfig with mtd part:

Spoiler
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_DATAFLASH=y
# CONFIG_MTD_DATAFLASH_OTP is not set
# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
CONFIG_MTD_JEDECPROBE=y
CONFIG_MTD_NAND_CORE=y
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
CONFIG_MTD_NAND_FSL_IFC=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
CONFIG_MTD_SPLIT_FIRMWARE=y
CONFIG_MTD_SPLIT_FIT_FW=y
CONFIG_MTD_SPLIT_LZMA_FW=y
CONFIG_MTD_SST25L=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_BLOCK=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096

 

0 Kudos
1 Solution
1,975 Views
yipingwang
NXP TechSupport
NXP TechSupport

On ls1021a, qspi pins muxed with some pins of IFC. You could refer to the RCW field descriptions in LS1021A RM.

In LSDK QSPI and IFC(NOR, NAND) cannot be used simultaneously.

.

View solution in original post

0 Kudos
6 Replies
2,010 Views
yipingwang
NXP TechSupport
NXP TechSupport

In your Linux Kernel booting up log, I didn't find the following message.

root@ls1021atwr:~# dmesg | grep ifc
[ 0.070784] fsl-ifc 1530000.memory-controller: Freescale Integrated Flash Controller
[ 0.070842] fsl-ifc 1530000.memory-controller: IFC version 1.4, 8 banks

Your dts file looks reasonable, please check your Kernel configuration file whether "CONFIG_FSL_IFC=y" is enabled.

0 Kudos
2,002 Views
kele6ra
Contributor III

Hello, I have

CONFIG_FSL_IFC=y

in my kernel config, I can see ifc nand in kernel boot log with sdcard boot (but can't see any qspi logs), but when I try to do it with qspi boot, there are no logs about ifc at all.

0 Kudos
1,976 Views
yipingwang
NXP TechSupport
NXP TechSupport

On ls1021a, qspi pins muxed with some pins of IFC. You could refer to the RCW field descriptions in LS1021A RM.

In LSDK QSPI and IFC(NOR, NAND) cannot be used simultaneously.

.

0 Kudos
1,591 Views
jb2
Contributor III

Hello @yipingwang ,

I'm in the same situation, qspi boot (with nand accessible in u-boot) but in the kernel IFC is not probed.

 

Where do you found this information ? I don't see this anywhere. Why is it working in u-boot and not in linux ?

LSDK QSPI and IFC(NOR, NAND) cannot be used simultaneously

Here is my schema of the board

jb2_1-1657717466936.png

 

RCW are:

Spoiler
Reset Configuration Word (RCW):
00000000: 060d0010 00000000 00000000 10000000
00000010: 60000000 0044b90a 40044a00 81046000
00000020: 00000000 00000000 00000000 0042ff00
00000030: 20004500 1004f540 00000000 00000000

Do you know how can I use the nand flash?

Thank you

 

0 Kudos
1,576 Views
jb2
Contributor III
0 Kudos
1,969 Views
kele6ra
Contributor III

Thank you, I understand.

Can you help me with another question with the nand memory, is there any flash soft like mfgtools for the layerscape processors?

0 Kudos