Fixing U-boot to support boot from NVMEs

Is someone working on fixing the u-boot bug that prevents us to boot from the NVMEs in the

Known working under Linux kernel but not directly in bootloader(uSD/eMMC + NVMe booting)

in the FAQ https://wiki.radxa.com/Rockpi4/FAQs ?
I can confirm that the Samsung pm961 works by just pressing ctrl-c (when connected via a serial console to u-boot) to interrupt the boot sequence and then doing

sysboot nvme 0:4 any 0x00500000 /extlinux/extlinux.conf

works fine every time.

1 Like

Could you please post the U-boot version you use and the booting log?

I think this might be the different NVMe controller on your pm961, which is supported. Do you know your NVMe controller info?

We know that on the Lenovo SL700, which is sold by Allnet. The old batch works in u-boot. Lenovo changed the controller without notice for the same model, the new SL700 which uses PHISON controller is not supported in u-boot :frowning:

I tried debugging some more and found that the issue is the test -e in the U-boot commands. So I removed the two cases where test is used and rebuild U-boot from the rk3399-pie-gms-express-baseline branch.

Here is the diff

diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index b8144c6a7e..0ee7775589 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -352,13 +352,8 @@
                        "${scriptaddr} ${prefix}extlinux/extlinux.conf\0" \
        \
        "scan_dev_for_extlinux="                                          \
-               "if test -e ${devtype} "                                  \
-                               "${devnum}:${distro_bootpart} "           \
-                               "${prefix}extlinux/extlinux.conf; then "  \
-                       "echo Found ${prefix}extlinux/extlinux.conf; "    \
                        "run boot_extlinux; "                             \
-                       "echo SCRIPT FAILED: continuing...; "             \
-               "fi\0"                                                    \
+                       "echo SCRIPT FAILED: continuing...\0"             \
        \
        "boot_a_script="                                                  \
                "load ${devtype} ${devnum}:${distro_bootpart} "           \
@@ -367,14 +362,8 @@
        \
        "scan_dev_for_scripts="                                           \
                "for script in ${boot_scripts}; do "                      \
-                       "if test -e ${devtype} "                          \
-                                       "${devnum}:${distro_bootpart} "   \
-                                       "${prefix}${script}; then "       \
-                               "echo Found U-Boot script "               \
-                                       "${prefix}${script}; "            \
                                "run boot_a_script; "                     \
                                "echo SCRIPT FAILED: continuing...; "     \
-                       "fi; "                                            \
                "done\0"                                                  \
        \
        "scan_dev_for_boot="                                              \

That fixed it and now I can boot without microsd card. Below is also the text of the boot log.

In
channel 0
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x98
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
OUT
Boot1: 2018-06-26, version: 1.14
CPUId = 0x0
ChipType = 0x10, 222
Spi_ChipId = b4016
SpiBootInit:0
mmc0:cmd8,32
mmc0:cmd5,32
mmc0:cmd55,32
mmc0:cmd1,32
mmc0:cmd8,32
mmc0:cmd5,32
mmc0:cmd55,32
mmc0:cmd1,32
mmc0:cmd8,32
mmc0:cmd5,32
mmc0:cmd55,32
mmc0:cmd1,32
SdmmcInit=0 1
StorageInit ok = 21696
SecureMode = 0
SecureInit ret = 0, SecureMode = 0
GPT vendor signature is wrong
LoadTrust Addr:0x1800
No find bl30.bin
No find bl32.bin
Load uboot, ReadLba = 1000
Load OK, addr=0x200000, size=0xeffa8
RunBL31 0x10000
NOTICE:  BL31: v1.3(debug):0e7a845
NOTICE:  BL31: Built : 16:13:46, Apr 17 2019
NOTICE:  BL31: Rockchip release version: v1.1
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    plat_rockchip_pmu_init(1181): pd status 3e
INFO:    BL31: Initializing runtime services
WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK
ERROR:   Error initializing runtime service opteed_fast
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.09-00004-g674eaa57f0-dirty (Oct 27 2019 - 17:45:25 -0700)

Model: Rockchip RK3399 rockpi4b Board
PreSerial: 2
DRAM:  3.9 GiB
Relocation Offset is: f5bdf000
Sysmem: init
I2c speed: 400000Hz
PMIC:  RK808
vdd-center init 950000 uV
MMC:   dwmmc@fe320000: 1, sdhci@fe330000: 0
Using default environment

Model: Rockchip RK3399 rockpi4b Board
dcache off

Device 0: Vendor: 0x144d Rev: 1L1QCXB7 Prod: S341NX0H801177
            Type: Hard Disk
            Capacity: 122104.3 MB = 119.2 GB (250069680 x 512)
... is now current device
Bootdev: nvme 0
rockchip_get_bootdev: can't find dev_desc!
[Vendor ERROR]:Invalid boot device type(0)
rockchip_get_bootdev: can't find dev_desc!
[Vendor ERROR]:Invalid boot device type(0)
rockchip_get_bootdev: can't find dev_desc!
rockchip_get_boot_mode: dev_desc is NULL!
rockchip_get_bootdev: can't find dev_desc!
init_resource_list: dev_desc is NULL!
Can't find file:logo.bmp
failed to display uboot logo
CLK: (uboot. arml: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
CLK: (uboot. armb: enter 24000 KHz, init 24000 KHz, kernel 0N/A)
  aplll 816000 KHz
  apllb 24000 KHz
  dpll 800000 KHz
  cpll 24000 KHz
  gpll 800000 KHz
  npll 600000 KHz
  vpll 24000 KHz
  aclk_perihp 133333 KHz
  hclk_perihp 66666 KHz
  pclk_perihp 33333 KHz
  aclk_perilp0 266666 KHz
  hclk_perilp0 88888 KHz
  pclk_perilp0 44444 KHz
  hclk_perilp1 100000 KHz
  pclk_perilp1 50000 KHz
Net:   eth0: ethernet@fe300000
Hit key to stop autoboot('CTRL+C'):  0

Device 0: Vendor: 0x144d Rev: 1L1QCXB7 Prod: S341NX0H801177
            Type: Hard Disk
            Capacity: 122104.3 MB = 119.2 GB (250069680 x 512)
... is now current device
Scanning nvme 0:4...
pxefile_addr_str = 0x00500000
bootfile = /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
599 bytes read in 1 ms (585 KiB/s)
select kernel
1:	kernel-4.4.154-90-rockchip-ga14f6502e045
2:	kernel-4.4.154-88-rockchip-00030-g90239a6
Enter choice: Retrieving file: /hw_intfc.conf
reading /hw_intfc.conf
1719 bytes read in 1 ms (1.6 MiB/s)
dtoverlay number: 0, name:/overlays/console-on-ttyS2.dtbo
dtoverlay number: 1, name:/overlays/pcie-gen2.dtbo
dtoverlay number: 2, name:/overlays/spi1-flash.dtbo
hw_conf.valid = 1
hw_conf.pwm0 = 0
hw_conf.pwm1 = 0
hw_conf.uart2 = 0
hw_conf.uart4 = 0
hw_conf.spi1 = 1
hw_conf.spi2 = 0
hw_conf.i2c2 = 0
hw_conf.i2c6 = 0
hw_conf.i2c7 = 0
hw_conf.dts_overlay_count = 3
hw_conf.dts_overlay[0] = /overlays/console-on-ttyS2.dtbo
hw_conf.dts_overlay[1] = /overlays/pcie-gen2.dtbo
hw_conf.dts_overlay[2] = /overlays/spi1-flash.dtbo
1:	kernel-4.4.154-90-rockchip-ga14f6502e045
Retrieving file: /vmlinuz-4.4.154-90-rockchip-ga14f6502e045
reading /vmlinuz-4.4.154-90-rockchip-ga14f6502e045
19427336 bytes read in 38 ms (487.6 MiB/s)
append: earlyprintk console=ttyFIQ0,1500000n8 init=/sbin/init root=PARTUUID=b921b045-1d rw rootwait rootfstype=ext4
Retrieving file: /dtbs/4.4.154-90-rockchip-ga14f6502e045/rockchip/rockpi-4b-linux.dtb
reading /dtbs/4.4.154-90-rockchip-ga14f6502e045/rockchip/rockpi-4b-linux.dtb
93859 bytes read in 6 ms (14.9 MiB/s)
fdt addr 0000000008300000
fdt magic number edfe0dd0
fdt size 1048576
merge_dts_overlay
Retrieving file: /overlays/console-on-ttyS2.dtbo
reading /overlays/console-on-ttyS2.dtbo
774 bytes read in 2 ms (377.9 KiB/s)
overlay dtb(0x0000000008200000) is valid
fdt_overlay_apply 0000000008300000 0000000008200000
merge_dts_overlay
Retrieving file: /overlays/pcie-gen2.dtbo
reading /overlays/pcie-gen2.dtbo
313 bytes read in 2 ms (152.3 KiB/s)
overlay dtb(0x0000000008200000) is valid
fdt_overlay_apply 0000000008300000 0000000008200000
merge_dts_overlay
Retrieving file: /overlays/spi1-flash.dtbo
reading /overlays/spi1-flash.dtbo
765 bytes read in 2 ms (373 KiB/s)
overlay dtb(0x0000000008200000) is valid
fdt_overlay_apply 0000000008300000 0000000008200000
## Flattened Device Tree blob at 08300000
   Booting using the fdt blob at 0x8300000
   Loading Device Tree to 00000000e9cc2000, end 00000000e9dc4fff ... OK
Adding bank: 0x00200000 - 0xf8000000 (size: 0xf7e00000)
Total: 13909.723 ms

Starting kernel ...


[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.154-90-rockchip-ga14f6502e045 (root@2705a206000b) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #22 SMP Tue Jul 30 10:32:28 UTC 2019
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] Reserved memory: failed to reserve memory for node 'drm-logo@00000000': base 0x0000000000000000, size 0 MiB
[    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] PERCPU: Embedded 21 pages/cpu @ffffffc0f7ed8000 s46248 r8192 d31576 u86016
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 999432
[    0.000000] Kernel command line: earlyprintk console=ttyFIQ0,1500000n8 init=/sbin/init root=PARTUUID=b921b045-1d rw rootwait rootfstype=ext4
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] software IO TLB [mem 0xef600000-0xf3600000] (64MB) mapped at [ffffffc0ef600000-ffffffc0f35fffff]
[    0.000000] Memory: 3902464K/4061184K available (11774K kernel code, 1564K rwdata, 4384K rodata, 1216K init, 778K bss, 158720K reserved, 0K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbdbfff0000   (   246 GB)
[    0.000000]       .init : 0xffffff8009050000 - 0xffffff8009180000   (  1216 KB)
[    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008c00000   ( 11776 KB)
[    0.000000]     .rodata : 0xffffff8008c00000 - 0xffffff8009050000   (  4416 KB)
[    0.000000]       .data : 0xffffff8009180000 - 0xffffff8009307008   (  1565 KB)
[    0.000000]     vmemmap : 0xffffffbdc0000000 - 0xffffffbfc0000000   (     8 GB maximum)
[    0.000000]               0xffffffbdc0008000 - 0xffffffbdc3e00000   (    61 MB actual)
[    0.000000]     fixed   : 0xffffffbffe7fb000 - 0xffffffbffec00000   (  4116 KB)
[    0.000000]     PCI I/O : 0xffffffbffee00000 - 0xffffffbfffe00000   (    16 MB)
[    0.000000]     memory  : 0xffffffc000200000 - 0xffffffc0f8000000   (  3966 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=6.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=6
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] ITS: /interrupt-controller@fee00000/interrupt-controller@fee20000
[    0.000000] ITS: allocated 65536 Devices @ef100000 (psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GIC: using LPI property table @0x00000000ef090000
[    0.000000] ITS: Allocated 1792 chunks for LPIs
[    0.000000] CPU0: found redistributor 0 region 0:0x00000000fef00000
[    0.000000] CPU0: using LPI pending table @0x00000000ef0a0000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[    0.000000] GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[    0.000000] rockchip_clk_register_frac_branch: could not find dclk_vop0_frac as parent of dclk_vop0, rate changes may not work
[    0.000000] rockchip_clk_register_frac_branch: could not find dclk_vop1_frac as parent of dclk_vop1, rate changes may not work
[    0.000000] rockchip_cpuclk_pre_rate_change: limiting alt-divider 33 to 31
[    0.000000] Architected cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.001378] Console: colour dummy device 80x25
[    0.001403] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.001417] pid_max: default: 32768 minimum: 301
[    0.001539] Security Framework initialized
[    0.001549] Yama: becoming mindful.
[    0.001576] AppArmor: AppArmor disabled by boot time parameter
[    0.001631] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.001643] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.002422] Initializing cgroup subsys io
[    0.002442] Initializing cgroup subsys memory
[    0.002475] Initializing cgroup subsys devices
[    0.002488] Initializing cgroup subsys freezer
[    0.002502] Initializing cgroup subsys net_cls
[    0.002514] Initializing cgroup subsys perf_event
[    0.002528] Initializing cgroup subsys net_prio
[    0.002546] Initializing cgroup subsys hugetlb
[    0.002557] Initializing cgroup subsys pids
[    0.002600] ftrace: allocating 43043 entries in 169 pages
[    0.112986] sched-energy: Sched-energy-costs installed from DT
[    0.113004] CPU0: update cpu_capacity 401
[    0.113066] ASID allocator initialised with 32768 entries
[    0.116205] PCI/MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[    0.116713] Platform MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[    0.118047] Detected VIPT I-cache on CPU1
[    0.118081] CPU1: found redistributor 1 region 0:0x00000000fef20000
[    0.118111] CPU1: using LPI pending table @0x00000000ef330000
[    0.118157] CPU1: update cpu_capacity 401
[    0.118162] CPU1: Booted secondary processor [410fd034]
[    0.118707] Detected VIPT I-cache on CPU2
[    0.118728] CPU2: found redistributor 2 region 0:0x00000000fef40000
[    0.118756] CPU2: using LPI pending table @0x00000000ef360000
[    0.118783] CPU2: update cpu_capacity 401
[    0.118787] CPU2: Booted secondary processor [410fd034]
[    0.119303] Detected VIPT I-cache on CPU3
[    0.119323] CPU3: found redistributor 3 region 0:0x00000000fef60000
[    0.119350] CPU3: using LPI pending table @0x00000000ef3c0000
[    0.119377] CPU3: update cpu_capacity 401
[    0.119380] CPU3: Booted secondary processor [410fd034]
[    0.119907] Detected PIPT I-cache on CPU4
[    0.119935] CPU4: found redistributor 100 region 0:0x00000000fef80000
[    0.119973] CPU4: using LPI pending table @0x00000000ef3f0000
[    0.120011] CPU4: update cpu_capacity 1024
[    0.120014] CPU4: Booted secondary processor [410fd082]
[    0.120571] Detected PIPT I-cache on CPU5
[    0.120589] CPU5: found redistributor 101 region 0:0x00000000fefa0000
[    0.120625] CPU5: using LPI pending table @0x00000000ee820000
[    0.120653] CPU5: update cpu_capacity 1024
[    0.120656] CPU5: Booted secondary processor [410fd082]
[    0.120742] Brought up 6 CPUs
[    0.120823] SMP: Total of 6 processors activated.
[    0.120832] CPU features: detected feature: GIC system register CPU interface
[    0.120844] CPU: All CPU(s) started at EL2
[    0.120892] alternatives: patching kernel code
[    0.122314] devtmpfs: initialized
[    0.138701] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.138727] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    0.139210] xor: measuring software checksum speed
[    0.176000]    8regs     :  2855.000 MB/sec
[    0.216062]    8regs_prefetch:  2560.000 MB/sec
[    0.256124]    32regs    :  3191.000 MB/sec
[    0.296186]    32regs_prefetch:  2844.000 MB/sec
[    0.296192] xor: using function: 32regs (3191.000 MB/sec)
[    0.296217] pinctrl core: initialized pinctrl subsystem
[    0.297034] NET: Registered protocol family 16
[    0.308898] cpuidle: using governor ladder
[    0.320919] cpuidle: using governor menu
[    0.320944] Registered FIQ tty driver
[    0.321115] vdso: 2 pages (1 code @ ffffff8008c06000, 1 data @ ffffff8009184000)
[    0.321148] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.321312] DMA: preallocated 256 KiB pool for atomic allocations
[    0.411384] console [ttyFIQ0] enabled
[    0.411926] Registered fiq debugger ttyFIQ0
[    0.496572] raid6: int64x1  gen()   452 MB/s
[    0.564654] raid6: int64x1  xor()   393 MB/s
[    0.632716] raid6: int64x2  gen()   754 MB/s
[    0.700838] raid6: int64x2  xor()   600 MB/s
[    0.768980] raid6: int64x4  gen()  1100 MB/s
[    0.837050] raid6: int64x4  xor()   672 MB/s
[    0.905141] raid6: int64x8  gen()   861 MB/s
[    0.973241] raid6: int64x8  xor()   627 MB/s
[    1.041356] raid6: neonx1   gen()   923 MB/s
[    1.109502] raid6: neonx1   xor()   655 MB/s
[    1.177573] raid6: neonx2   gen()  1554 MB/s
[    1.245692] raid6: neonx2   xor()   980 MB/s
[    1.313782] raid6: neonx4   gen()  1998 MB/s
[    1.381874] raid6: neonx4   xor()  1171 MB/s
[    1.450009] raid6: neonx8   gen()  1696 MB/s
[    1.518104] raid6: neonx8   xor()  1238 MB/s
[    1.518485] raid6: using algorithm neonx4 gen() 1998 MB/s
[    1.518963] raid6: .... xor() 1171 MB/s, rmw enabled
[    1.519406] raid6: using intx1 recovery algorithm
[    1.521730] vcc3v3_sys: supplied by vcc_sys
[    1.522567] vcc3v3_pcie: supplied by vcc3v3_sys
[    1.523366] vcc5v0_host: supplied by vcc_sys
[    1.524122] vcc5v0_otg: supplied by vcc_sys
[    1.525251] iommu: Adding device ff650000.vpu_service to group 0
[    1.525857] iommu: Adding device ff660000.rkvdec to group 1
[    1.526442] iommu: Adding device ff8f0000.vop to group 2
[    1.527000] iommu: Adding device ff900000.vop to group 3
[    1.527541] iommu: Adding device ff910000.rkisp1 to group 4
[    1.529545] SCSI subsystem initialized
[    1.530231] usbcore: registered new interface driver usbfs
[    1.530758] usbcore: registered new interface driver hub
[    1.531317] usbcore: registered new device driver usb
[    1.531847] media: Linux media interface: v0.10
[    1.532274] Linux video capture interface: v2.00
[    1.532781] pps_core: LinuxPPS API ver. 1 registered
[    1.533225] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.534041] PTP clock support registered
[    1.535488] Advanced Linux Sound Architecture Driver Initialized.
[    1.536527] Bluetooth: Core ver 2.21
[    1.536867] NET: Registered protocol family 31
[    1.537264] Bluetooth: HCI device and connection manager initialized
[    1.537829] Bluetooth: HCI socket layer initialized
[    1.538266] Bluetooth: L2CAP socket layer initialized
[    1.538732] Bluetooth: SCO socket layer initialized
[    1.539546] NetLabel: Initializing
[    1.539852] NetLabel:  domain hash size = 128
[    1.540238] NetLabel:  protocols = UNLABELED CIPSOv4
[    1.540711] NetLabel:  unlabeled traffic allowed by default
[    1.541780] clocksource: Switched to clocksource arch_sys_counter
[    1.600595] thermal thermal_zone1: power_allocator: sustainable_power will be estimated
[    1.601518] NET: Registered protocol family 2
[    1.602368] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[    1.603265] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes)
[    1.604770] TCP: Hash tables configured (established 32768 bind 32768)
[    1.605454] UDP hash table entries: 2048 (order: 5, 196608 bytes)
[    1.606190] UDP-Lite hash table entries: 2048 (order: 5, 196608 bytes)
[    1.607128] NET: Registered protocol family 1
[    1.608554] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    1.609357] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    1.613072] audit: initializing netlink subsys (disabled)
[    1.613593] audit: type=2000 audit(1.536:1): initialized
[    1.614492] Initialise system trusted keyring
[    1.615253] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.622856] VFS: Disk quotas dquot_6.6.0
[    1.623361] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.625415] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.626698] fuse init (API version 7.23)
[    1.627763] JFS: nTxBlock = 8192, nTxLock = 65536
[    1.634961] SGI XFS with ACLs, security attributes, realtime, no debug enabled
[    1.637729] Key type big_key registered
[    1.638143]
[    1.638143] TEE Core Framework initialization (ver 1:0.1)
[    1.638761] TEE armv7 Driver initialization
[    1.639551] tz_tee_probe: name="armv7sec", id=0, pdev_name="armv7sec.0"
[    1.640138] TEE core: Alloc the misc device "opteearmtz00" (id=0)
[    1.640854] TEE Core: Register the misc device "opteearmtz00" (id=0,minor=62)
[    1.645492] NET: Registered protocol family 38
[    1.645930] Key type asymmetric registered
[    1.646300] Asymmetric key parser 'x509' registered
[    1.646911] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    1.647713] io scheduler noop registered
[    1.648072] io scheduler deadline registered (default)
[    1.648558] io scheduler cfq registered
[    1.650464] phy phy-ff770000.syscon:usb2-phy@e450.1: Failed to get VBUS supply regulator
[    1.652469] phy phy-ff770000.syscon:usb2-phy@e460.3: Failed to get VBUS supply regulator
[    1.657897] rockchip-pcie f8000000.pcie: no vpcie3v3 regulator found
[    1.658481] rockchip-pcie f8000000.pcie: no vpcie1v8 regulator found
[    1.659061] rockchip-pcie f8000000.pcie: no vpcie0v9 regulator found
[    1.694273] PCI host bridge /pcie@f8000000 ranges:
[    1.694710]   MEM 0xfa000000..0xfbdfffff -> 0xfa000000
[    1.695170]    IO 0xfbe00000..0xfbefffff -> 0xfbe00000
[    1.695919] rockchip-pcie f8000000.pcie: PCI host bridge to bus 0000:00
[    1.696507] pci_bus 0000:00: root bus resource [bus 00-1f]
[    1.697000] pci_bus 0000:00: root bus resource [mem 0xfa000000-0xfbdfffff]
[    1.697610] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0xfbe00000-0xfbefffff])
[    1.698847] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.705851] pci 0000:00:00.0: BAR 8: assigned [mem 0xfa000000-0xfa0fffff]
[    1.706451] pci 0000:01:00.0: BAR 0: assigned [mem 0xfa000000-0xfa003fff 64bit]
[    1.707105] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.707553] pci 0000:00:00.0:   bridge window [mem 0xfa000000-0xfa0fffff]
[    1.708197] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    1.708952] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
[    1.709571] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    1.710987] rk-vcodec ff650000.vpu_service: no regulator for vcodec
[    1.711821] rk-vcodec ff650000.vpu_service: probe device
[    1.712494] rk-vcodec ff650000.vpu_service: drm allocator with mmu enabled
[    1.713691] rk-vcodec ff650000.vpu_service: could not find power_model node
[    1.714329] rk-vcodec ff650000.vpu_service: init success
[    1.715044] rk-vcodec ff660000.rkvdec: no regulator for vcodec
[    1.716018] rk-vcodec ff660000.rkvdec: probe device
[    1.716621] rk-vcodec ff660000.rkvdec: drm allocator with mmu enabled
[    1.717581] rk-vcodec ff660000.rkvdec: could not find power_model node
[    1.718175] rk-vcodec ff660000.rkvdec: init success
[    1.719990] dma-pl330 ff6d0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    1.720659] dma-pl330 ff6d0000.dma-controller: 	DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[    1.722897] dma-pl330 ff6e0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    1.723566] dma-pl330 ff6e0000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[    1.725462] Serial: 8250/16550 driver, 5 ports, IRQ sharing disabled
[    1.727790] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 35, base_baud = 1500000) is a 16550A
[    1.729610] [drm] Initialized drm 1.1.0 20060810
[    1.733401] [drm] Rockchip DRM driver version: v1.0.1
[    1.734211] rockchip-drm display-subsystem: dmc is disabled
[    1.734991] rockchip-vop ff900000.vop: missing rockchip,grf property
[    1.735812] rockchip-drm display-subsystem: bound ff900000.vop (ops 0xffffff8008cbe128)
[    1.736547] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[    1.737295] rockchip-drm display-subsystem: bound ff8f0000.vop (ops 0xffffff8008cbe128)
[    1.738294] i2c i2c-9: of_i2c: modalias failure on /hdmi@ff940000/ports
[    1.738887] dwhdmi-rockchip ff940000.hdmi: registered DesignWare HDMI I2C bus driver
[    1.739666] dwhdmi-rockchip ff940000.hdmi: Detected HDMI TX controller v2.11a with HDCP (DWC HDMI 2.0 TX PHY)
[    1.741204] rockchip-drm display-subsystem: bound ff940000.hdmi (ops 0xffffff8008cb4880)
[    1.741956] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.742540] [drm] No driver support for vblank timestamp query.
[    1.743232] rockchip-drm display-subsystem: failed to parse loader memory
[    1.743846] rockchip-drm display-subsystem: No connectors reported connected with modes
[    1.744573] [drm] Cannot find any crtc or sizes - going 1024x768
[    1.756487] Console: switching to colour frame buffer device 128x48
[    1.763221] rockchip-drm display-subsystem: fb0:  frame buffer device
[    1.776102] mali ff9a0000.gpu: Failed to get regulator
[    1.776560] mali ff9a0000.gpu: Power control initialization failed
[    1.777444] Unable to detect cache hierarchy for CPU 0
[    1.778689] brd: module loaded
[    1.784265] loop: module loaded
[    1.784874] lkdtm: No crash points registered, enable through debugfs
[    1.786105] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[    1.787763] rockchip-spi ff1d0000.spi: Failed to request TX DMA channel
[    1.788351] rockchip-spi ff1d0000.spi: Failed to request RX DMA channel
[    1.788935] rockchip-spi ff1d0000.spi: no high_speed pinctrl state
[    1.790061] m25p80 spi32766.0: xt25f32b (4096 Kbytes)
[    1.790520] 1 ofpart partitions found on MTD device spi32766.0
[    1.791033] Creating 1 MTD partitions on "spi32766.0":
[    1.791492] 0x000000000000-0x000000400000 : "loader"
[    1.793215] CAN device driver interface
[    1.794516] rk_gmac-dwmac fe300000.ethernet: clock input or output? (input).
[    1.795139] rk_gmac-dwmac fe300000.ethernet: TX delay(0x28).
[    1.795643] rk_gmac-dwmac fe300000.ethernet: RX delay(0x11).
[    1.796161] rk_gmac-dwmac fe300000.ethernet: integrated PHY? (no).
[    1.796881] rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed
[    1.797499] rk_gmac-dwmac fe300000.ethernet: clock input from PHY
[    1.803059] rk_gmac-dwmac fe300000.ethernet: init for RGMII
[    1.803669] stmmac - user ID: 0x10, Synopsys ID: 0x35
[    1.804112]  Ring mode enabled
[    1.804383]  DMA HW capability register supported
[    1.804780]  Normal descriptors
[    1.805085]  RX Checksum Offload Engine supported (type 2)
[    1.805573]  TX Checksum insertion supported
[    1.805957]  Wake-Up On Lan supported
[    1.806317]  Enable RX Mitigation via HW Watchdog Timer
[    1.881175] libphy: stmmac: probed
[    1.881492] eth%d: PHY ID 001cc915 at 0 IRQ POLL (stmmac-0:00) active
[    1.882088] eth%d: PHY ID 001cc915 at 1 IRQ POLL (stmmac-0:01)
[    1.884668] Rockchip WiFi SYS interface (V1.00) ...
[    1.885246] usbcore: registered new interface driver cdc_ether
[    1.885839] usbcore: registered new interface driver rndis_host
[    1.893439] rockchip-dwc3 usb0: fail to get drvdata hcd
[    1.897420] blk_queue_max_segments: set to minimum 1
[    1.902054] rockchip-dwc3 usb1: fail to get drvdata hcd
[    1.902250]  nvme0n1: p1 p2 p3 p4 p5
[    1.904058] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.904643] ehci-pci: EHCI PCI platform driver
[    1.905097] ehci-platform: EHCI generic platform driver
[    1.909250] ehci-platform fe380000.usb: EHCI Host Controller
[    1.909932] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 1
[    1.910729] ehci-platform fe380000.usb: irq 28, io mem 0xfe380000
[    1.921797] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
[    1.922507] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.923106] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.923748] usb usb1: Product: EHCI Host Controller
[    1.924182] usb usb1: Manufacturer: Linux 4.4.154-90-rockchip-ga14f6502e045 ehci_hcd
[    1.924859] usb usb1: SerialNumber: fe380000.usb
[    1.925749] hub 1-0:1.0: USB hub found
[    1.926132] hub 1-0:1.0: 1 port detected
[    1.930404] ehci-platform fe3c0000.usb: EHCI Host Controller
[    1.931123] ehci-platform fe3c0000.usb: new USB bus registered, assigned bus number 2
...

3 Likes

does the nvme Lenovo 256 gb also have the driver problem or only 512? I bought the 256GB one 10 days ago.

If you bought from Allnet store, I think they tested the models. @NBA should know it.

The 256GB Lenovo has no problem booting on Rock Pi 4. It has the same controller chip like the 128GB version.

Sí, yes, buy from them for the same reason, so as not to have problems.

We just added higher capacities from ACER which have proven to work without any problems. Now 512GB and 1TB are available.

Attention!
I purchased a Lenovo SL700 256Gb from Allnet and it is with a PHISON controller. SPI boot not work!
I am telling you here so that other people do not fall for the older information from this topik.

then what do we do? I bought a 256 GB Lenovo sl700 from allnet and they told me it worked.

Hi, we just found out that Lenovo did change the controller chip without noticing us.

We therefore will stop selling them. We are very sorry for this and will replace the Lenovo´s with Acer which have proven to be stable supplying the same controller chip.

Please contact us on shop_cn@allnetchina.cn and we will find a solution to that.

Norbert

1 Like

Most likely you purchased earlier, parcel came to me a week ago, I have PHISON chip

In my experience of using rock pi 4, I concluded that I do not really need spi boot because there is no way to select a boot device at startup. I have no problem having an SD card installed on board to boot from nvme. In addition, I can periodically synchronize rootfs on it and when I disconnecting nvme, I boot from SDcard with all changes in the system.
I have not yet fully configured the use of nvme. There are problems. And if I do not solve them, I will contact Allnet.
P.s. Thank you for putting the adapter from the SD card to emmc as a gift, which I forgot to order :slight_smile:

Hi Rua Is there a guide to configure the system to boot from the nvme with sdcard? I recognize that I am quite lost here.
do you speak Portuguese?

This still works if you want to move rootfs to nvme:

Moving file system to NVME procedure?

Thanks for the response. Works with armbiam? Because i have much problems with debian. I can’t put the spanish distribution on My keyboard and other some errors from console.

@aguapi with Armbian one can simply run nand-sata-install command or choose install to SATA, eMMC, NAND or USB option on armbian-config's system menu.

It will move root from SD to a first partition on the nvme (you need to create this partition yourself AFAIR) and mount bind the boot folder of SD to /boot for future upgrades.

There is an old video by @igorp on YouTube that presents the procedure:

1 Like

What serial device are you using? I have a Samsung PM961, and I cannot get it to boot. My USB TTL to Serial does not seem to work with RK3399.

@jack Any progress on fixing this? I don’t wish to be stuck to Radxa distros, nor using a uSD to boot.

Hey @Human_USB

I have tested 2 serial USB:

  1. CH340 based (like here) + good quality dupont cable.
  2. USB TTL debug cable found on AllNet store.

More info here:

and here:
https://wiki.radxa.com/Rockpi4/dev/serial-console

Thank you @aaditya . I placed an order with Amazon for a CH340 device, and 22 awg dupont cables. Here is to hoping I can move forward on helping debug this board.

1 Like