We use some essential cookies to make our website work.

We use optional cookies, as detailed in our cookie policy, to remember your settings and understand how you use our website.

70 posts
fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Wed Nov 10, 2021 5:15 pm

BeeCid wrote:
Mon Nov 08, 2021 3:22 pm
Waveshare CM4-IO-BASE-B board's M.2 slot can only use M.Key NVMe drive to boot OS.The M Key+B key SSD (WD SN520) will show you "nvme error 8" or rainbow square.
I have CM4-IO-BASE-A and WD SN520 boots fine first time from poweron and then when I reboot the system I have nvme error 1090584580 but it then recovers and boots second time. I changed boot order to remove network so waiting for next round is not so bad.

Anyway, this ssd definitely works.

Netsrac
Posts: 1
Joined: Sat Nov 13, 2021 7:01 am

Re: Booting CM4 from SSD via the PCIe slot

Sat Nov 13, 2021 7:06 am

fanoush wrote:
Wed Nov 10, 2021 5:15 pm
BeeCid wrote:
Mon Nov 08, 2021 3:22 pm
Waveshare CM4-IO-BASE-B board's M.2 slot can only use M.Key NVMe drive to boot OS.The M Key+B key SSD (WD SN520) will show you "nvme error 8" or rainbow square.
I have CM4-IO-BASE-A and WD SN520 boots fine first time from poweron and then when I reboot the system I have nvme error 1090584580 but it then recovers and boots second time. I changed boot order to remove network so waiting for next round is not so bad.

Anyway, this ssd definitely works.
I'm also using the Waveshare CM4-IO-BASE-B board with an M.Key NVMe disk. Booting works just fine with no issues at. However, the whole system got stuck when I hit reboot. It closes the network connection, but no additional output on the serial console. It just got stuck in a boot loop with "Failed to open device: 'nvme'".

The only way to get the device up again is by power-cycling. Then it just runs fine again.

Any ideas? Is there a way to power-cycle the nvme during boot?

How to further debug?


The initial Boot process that works fine....

Code: Select all

RPi: BOOTLOADER release VERSION:a6afaeaa DATE: Oct 5 2021 TIME: 08:53:57 BOOTMODE: 0x00000006 part: 0 BUILD_TIMESTAMP=1633420437 0x11471181 0x00c03140 0x0005ff25
PM_RSTS: 0x00001000
part 00000000 reset_info 00000000
uSD voltage 3.3V
Initialising SDRAM 'Samsung' 16Gb x2 total-size: 32 Gbit 3200
Boot mode: NVME (06) order f1
VID 0x1987 MN Sabrent Rocket nano
NVME on
MBR: 0x00002000, 524288 type: 0x0c
MBR: 0x00082000,999682736 type: 0x83
MBR: 0x00000000, 0 type: 0x00
MBR: 0x00000000, 0 type: 0x00
Trying partition: 0
type: 32 lba: 8192 oem: 'mkfs.fat' volume: ' boot '
rsc 32 fat-sectors 4033 c-count 516190 c-size 1
root dir cluster 2 sectors 0 entries 0
FAT32 clusters 516190
Trying partition: 0
type: 32 lba: 8192 oem: 'mkfs.fat' volume: ' boot '
rsc 32 fat-sectors 4033 c-count 516190 c-size 1
root dir cluster 2 sectors 0 entries 0
FAT32 clusters 516190
Read config.txt bytes 2196 hnd 0x00000000
SIG pieeprom.sig fe5e7fbd74d1de2c854d9b916c40b6d32d6b0cd6f3a5f7eae47a56b35e1517b4 1636787695
SELF-UPDATE timestamp current 1636788508 new 1636787695 skip
Read start4cd.elf bytes 798812 hnd 0x00000000
Read fixup4cd.dat bytes 3143 hnd 0x00000000
Firmware: 4f73dcaefcfd5b20317e4[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.10.78-v7l+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1484 SMP Thu Nov 11 16:36:06 GMT 2021
[ 0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=30c5383d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi Compute Module 4 Rev 1.0
[ 0.000000] random: fast init done
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Reserved memory: created CMA memory pool at 0x000000001ac00000, size 320 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000000000-0x0000000
.....

and this is the reboot output:

Code: Select all

root@raspberrypi:/home/pi# reboot now
Session ter[
RPi: BOOTLOADER release VERSION:a6afaeaa DATE: Oct 5 2021 TIME: 08:53:57 BOOTMODE: 0x00000006 part: 0 BUILD_TIMESTAMP=1633420437 0x11471181 0x00c03140 0x0005f8a1
PM_RSTS: 0x00001020
part 00000000 reset_info 00000000
uSD voltage 3.3V
Initialising SDRAM 'Samsung' 16Gb x2 total-size: 32 Gbit 3200
Boot mode: NVME (06) order f1
Failed to open device: 'nvme'
Boot mode: SD (01) order f
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SD HOST: 250000000 CTL0: 0x00000f00 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
EMMC
SD retry 1 oc 0
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SD retry 2 oc 0
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SDV1
SD retry 3 oc 0
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SD CMD: 0x371a0010 (55) 0x0 0x1fff0001
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Retry SD 1
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SD HOST: 250000000 CTL0: 0x00000f00 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
EMMC
SD retry 1 oc 0
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SD retry 2 oc 0
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SDV1
SD retry 3 oc 0
SD HOST: 250000000 CTL0: 0x00000000 BUS: 100000 Hz actual: 100000 HZ div: 2500 (1250) status: 0x1fff0000 delay: 1080
SD CMD: 0x371a0010 (55) 0x0 0x1fff0001
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Boot mode: RESTART (0f) order 0
Restart 0 max -1
Boot mode: NVME (06) order f1
Failed to open device: 'nvme'
Boot mode: SD (01) order f...
Last edited by Netsrac on Sat Nov 13, 2021 7:35 am, edited 2 times in total.

kpleban
Posts: 13
Joined: Mon Aug 02, 2021 2:36 pm

Re: Booting CM4 from SSD via the PCIe slot

Thu Nov 18, 2021 2:32 pm

I had a similar problem with rebooting. When I closed system normaly and turn all was working good. When I do reeboot the NVMe booting was not working. The system was booting from eMMC. After formating eMMC boot storage booting process could not find the NVMe disk at the first booting sequence.

I think the NVMe controller, can't keep up with the reset during the reboot.

What does the BOOT_ORDER line look in your configuration file?
You need to keep "f" in BOOT ORDER, to restart boot proces after fail.

icamaster
Posts: 3
Joined: Sun May 09, 2021 2:57 pm

Re: Booting CM4 from SSD via the PCIe slot

Sun Nov 28, 2021 3:48 pm

I might be a bit offtopic, but does this also support booting from an SSD that is connected via a SATA PCI card (Such as the ASM1062?). Thanks!

aBUGSworstnightmare
Posts: 13432
Joined: Tue Jun 30, 2015 1:35 pm

Re: Booting CM4 from SSD via the PCIe slot

Sun Nov 28, 2021 5:25 pm

icamaster wrote:
Sun Nov 28, 2021 3:48 pm
I might be a bit offtopic, but does this also support booting from an SSD that is connected via a SATA PCI card (Such as the ASM1062?). Thanks!
the sata card will need a driver, so question would be is there one available im the default kernel.

NVMe booting on a CM4 works like a charm once the bootorder got updated ( viewtopic.php?t=324562).
You can even use RPI imager for writing the OS to the drive (see viewtopic.php?p=1944223#p1944223).

aBUGSworstnightmare
Posts: 13432
Joined: Tue Jun 30, 2015 1:35 pm

Intermittend detection of M.2 NVMe with CM4

Mon Dec 13, 2021 2:30 pm

I have two CM4IO platforms, both equipped with Sandisk 500GB M.2 NVMe. One CM4IO is using a CM4 2GB lite WiFi, the other one is using a 4GB Lite WiFi.

I see a problem on the platform with the 4GB CM4 as here the M.2 NVMe is not detected reliably; OS is not booting as PCIe link is down more then 50% of boot attempts. I need to power cycle, cross fingers to make it boot on next attempt.

I don't see such issue on the 2GB CM4; here the PCIe link works/is detected on every boot/reboot.

Both CM4 have an updated bootloader EEPROM (BOOT_ORDER=0xf461).
When booted from uSD I see below in the kernel logs

Code: Select all

pi@CM4-4GB-NVME:~ $ uname -a
Linux CM4-4GB-NVME 5.10.81-v7l+ #1490 SMP Mon Nov 22 14:06:57 GMT 2021 armv7l GNU/Linux
pi@CM4-4GB-NVME:~ $ ls -l /dev/nvme*
ls: cannot access '/dev/nvme*': No such file or directory
pi@CM4-4GB-NVME:~ $ dmesg | grep pcie
[ 1.162607] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[ 1.162639] brcm-pcie fd500000.pcie: No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[ 1.162719] brcm-pcie fd500000.pcie: MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[ 1.162808] brcm-pcie fd500000.pcie: IB MEM 0x0000000000..0x00ffffffff -> 0x0400000000
[ 1.754503] brcm-pcie fd500000.pcie: link down
pi@CM4-4GB-NVME:~ $ cat /proc/cpuinfo
processor	: 0
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 360.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3
processor	: 1
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 360.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3
processor	: 2
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 360.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3
processor	: 3
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 360.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3
Hardware	: BCM2711
Revision	: c03140
Serial		: 100000006906841c
Model		: Raspberry Pi Compute Module 4 Rev 1.0
pi@CM4-4GB-NVME:~ $ 
Any idea how to figure out/debug the root cause of this intermittent NVMe detection on a 4GB CM4?

voyager99
Posts: 2
Joined: Wed Jan 05, 2022 1:59 pm

Re: Booting CM4 from SSD via the PCIe slot

Thu Jan 06, 2022 12:39 am

I have a most perplexing problem that I can't resolve and am hoping someone can help.
I am using a CM4 with 32Gb EMMC and wifi attached to the official Pi compute module IO board.
The CM4 has been flashed with the latest version of Raspberry Pi OS with desktop (Oct. 30, 2021) and boots and
works properly.

https://downloads.raspberrypi.org/raspi ... -armhf.zip

I also purchased a WD SN550 500Gb nvme SSD (from Amazon) and a PCIe to M.2 nvme adapter (linked below from Aliexpress):

https://www.aliexpress.com/item/4000421 ... 4c4dlMccPe

as well as this Belker 5v - 15v 3A (45 watt) power adapter (from Amazon) set to 12v to power the IO board
using the 5.5mm barrel connector:
https://www.amazon.ca/gp/product/B088TT ... UTF8&psc=1

I followed the following steps using a Raspberry Pi 4B (also running 32-bit Raspberry Pi OS):

Code: Select all

git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
sudo apt install libusb-1.0-0-dev
make
output:

Code: Select all

cc -Wall -Wextra -g -o bin2c bin2c.c
./bin2c msd/bootcode.bin msd/bootcode.h
./bin2c msd/start.elf msd/start.h
./bin2c msd/bootcode4.bin msd/bootcode4.h
./bin2c msd/start4.elf msd/start4.h
cc -Wall -Wextra -g -o rpiboot main.c -lusb-1.0
I then edited the recovery/boot.conf file and changed the boot order to:

Code: Select all

BOOT_ORDER=0xf25416
to make sure that nvme would boot first (read from right to left 6,1,4,5,2).

Next, I executed:

Code: Select all

cd recovery
./update-pieeprom.sh
output:

Code: Select all

+ /home/pi/software/cm4boot/usbboot/tools/rpi-eeprom-config --config boot.conf --out pieeprom.bin pieeprom.original.bin
+ set +x
new-image: pieeprom.bin
source-image: pieeprom.original.bin
config: boot.conf
Then, with the J2 "disable EMMC boot" jumper in place, and a micro USB cable attached to the slave port
on the IO board and the other end (USB-A) connected to the Rapsberry Pi 4, I ran:

Code: Select all

cd ..
sudo ./rpiboot
Powered on the IO board and got this output:

Code: Select all

Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Second stage boot server
Loading embedded: start4.elf
File read: start4.elf
Second stage boot server done
I then disconnected the power to the IO board and ran:
sudo ./rpiboot -d recovery

and once again powered on the IO board

output:

Code: Select all

Loading: recovery/bootcode4.bin
Waiting for BCM2835/6/7/2711...
Loading: recovery/bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7/2711...
Loading: recovery/bootcode4.bin
Second stage boot server
Loading: recovery/config.txt
File read: config.txt
Loading: recovery/pieeprom.bin
Loading: recovery/pieeprom.bin
Loading: recovery/pieeprom.sig
File read: pieeprom.sig
Loading: recovery/pieeprom.bin
File read: pieeprom.bin
Second stage boot server done
*NOTE: After this operation completed on the Raspberry Pi 4B, the ACT LED on the IO board continued
flashing approx. once every 1/5th of a second (I assume indefinitely). Even so, I disconnected the power to the IO board.

Now, I removed the jumper on J2, attached the WD 500Gb SSD (with PCIe/nvme) adapter to the PCIe slot
and booted the CM4 from the EMMC to the Pi Desktop.
From a terminal using lsblk, I could see that the nvme drive was detected as nvme0n1.

I then used the built-in sd card copier utility (making sure to check on: New Partition UUID's) copying from
/dev/mmcblk0 to /dev/nvme0n1

The copy operation succeeded. I then proceeded to load the new firmware to the nvme drive with:

Code: Select all

cd /mnt
sudo mkdir boot
sudo mkdir root
sudo mount /dev/nvme0n1p1 /mnt/boot
sudo mount /dev/nvme0n1p2 /mnt/root
sudo BOOT_PATH=/mnt/boot ROOT_PATH=/mnt/root rpi-update
I then edited /boot/config.txt and added:

Code: Select all

dtoverlay=dwc2,dr_mode=host
to allow the USB 2.0 ports and the IO board's USB header to function properly.

Powering off the IO board and powering it back up, boots the OS from the nvme (great)!

However, whenever I perform a reboot, it goes back to the EMMC! Why?!?

Code: Select all

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.1G 0 disk
|-mmcblk0p1 179:1 0 256M 0 part /boot
`-mmcblk0p2 179:2 0 28.9G 0 part /
mmcblk0boot0 179:32 0 4M 1 disk
mmcblk0boot1 179:64 0 4M 1 disk
nvme0n1 259:0 0 465.8G 0 disk
|-nvme0n1p1 259:1 0 256M 0 part
`-nvme0n1p2 259:2 0 465.5G 0 part
sudo reboot
or
sudo shutdown -r now

boots the OS from the EMMC!

Only a cold boot (power off) via unplugging the adapter and plugging it back in boots
the OS from the nvme drive.
I cannot figure out for the life of me why this is happening!
I know the power supply is working properly delivering 12V and up to 3A to the IO board, so I'm fairly sure
it can't be a power issue.
Only peripherals I have plugged in are a usb mouse and usb keyboard.

Why would a software reboot revert back to the EMMC and not the nvme, while a COLD boot
boots correctly to the nvme drive?

Any help would be greatly appreciated.
Thanks.
Last edited by voyager99 on Mon Feb 14, 2022 11:46 am, edited 1 time in total.

timg236
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 1938
Joined: Thu Jun 21, 2018 4:30 pm

Re: Booting CM4 from SSD via the PCIe slot

Thu Jan 06, 2022 12:50 pm

The most likely explanation is that the NVMe device failed to initialise on a reboot so the bootloader will have attempted to use the EMMC next.
A boot-uart trace would confirm that.
I think this can happen with some NVMe / PCIe adapters.

fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Thu Jan 06, 2022 1:27 pm

voyager99 wrote:
Thu Jan 06, 2022 12:39 am
Only a cold boot (power off) via unplugging the adapter and plugging it back in boots
the OS from the nvme drive.
I cannot figure out for the life of me why this is happening!
...
Why would a software reboot revert back to the EMMC and not the nvme, while a COLD boot
boots correctly to the nvme drive?
There are several posts above yours reporting exactly the same issue (including me).
Looks like linux kernel leaves NVME in some state that bootloader does not like.
However without another bootable device it boots second time nvme is tried so this nvme state it is temporary (some short timeout perhaps?).

You can modify boot order to exclude emmc (and network - that one takes lot of time) and it will boot second time after couple of seconds.

fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Thu Jan 06, 2022 1:37 pm

timg236 wrote:
Thu Jan 06, 2022 12:50 pm
I think this can happen with some NVMe / PCIe adapters.
You mean the simple (passive?) PCI-e to M2 adapter can do that so it is worth testing another one?
Happens to me with SN520 SSD in such adapter.
I have few different ones so will try if it makes a difference.

peterharperuk
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 293
Joined: Tue Jan 05, 2021 11:38 am

Re: Booting CM4 from SSD via the PCIe slot

Thu Jan 06, 2022 3:22 pm

You can modify boot order to exclude emmc and it will boot second time after couple of seconds.
@fanoush Do you know if it's always behaved like this or has it started working recently? I'm wondering if it's a recent change to the bootloader that allows nvme to recover after a retry. In which case I might have an idea how to reproduce the problem.

aBUGSworstnightmare
Posts: 13432
Joined: Tue Jun 30, 2015 1:35 pm

Re: Booting CM4 from SSD via the PCIe slot

Fri Jan 07, 2022 5:58 am

Make sure to look at this
viewtopic.php?t=324792#p1951771

What I can try on the weekend/or late afternoon today is adding a uSD to see if the issue is still existing for my systems.
My boot order is 'BOOT_ORDER=0xf461' and my EEPROM version is 18th Dec (compiled that day from available sources).

As you can read from the linked post I've stopped investigations (they are consuming quite some time as one needs to make reboots, power-ups for trying to hit that boot issue; don't know a different approach) as it looks like swapping the adapters - all of them are passive - has solved the issue for me.

fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Sat Jan 08, 2022 8:41 pm

peterharperuk wrote:
Thu Jan 06, 2022 3:22 pm
You can modify boot order to exclude emmc and it will boot second time after couple of seconds.
@fanoush Do you know if it's always behaved like this or has it started working recently? I'm wondering if it's a recent change to the bootloader that allows nvme to recover after a retry. In which case I might have an idea how to reproduce the problem.
@peterharperuk
you are right, i just double checked and I don't see this issue with (second?) beta of nvme firmware from march 17 2021. Tried the reboot few times and used 3 different pcie-e to m2 adapters, worked every time on reboot. I had bootmode F25461. I do see this issue with version from Jul 6 2021 and also with latest from usbboot repo 2021年12月02日, bootmode F561, didn't test more versions. Also tested with all 3 adapters, no difference, fails on reboot, boots second time.

EDIT:
I have created bug for this here https://github.com/raspberrypi/rpi-eeprom/issues/397
Last edited by fanoush on Mon Jan 10, 2022 8:46 am, edited 1 time in total.

fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Sat Jan 08, 2022 10:03 pm

This was with Raspberry CM4 IO board. I also have the same issue with Waveshare CM4-IO-BASE-A board and downgrading to same beta solved it there too, reboot now works with M2 NVME SSD.

oculos
Posts: 21
Joined: Sat Apr 13, 2013 8:15 pm

Re: Booting CM4 from SSD via the PCIe slot

Sun Jan 09, 2022 4:24 pm

peterharperuk wrote:
Tue Mar 09, 2021 6:02 pm
If you're prepared to risk using pre-release software you should be able to boot a CM4 from SSD/NVMe with an IO board via the PCIe slot.
You need to update the bootloader, using usbboot. And you need updated pre-release versions of Videocore firmware and the kernel via rbi-update
Any chance of an update that would allow booting from a PCIe NIC?

fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Sun Jan 09, 2022 9:01 pm

oculos wrote:
Sun Jan 09, 2022 4:24 pm
Any chance of an update that would allow booting from a PCIe NIC?
It already boots from builtin ethernet. Also there are far too many "PCIe NIC"s, each different, which one you would expect to be supported?
It makes no sense unless the hardware is builtin to some raspberry product like the VIA VL805 pcie to usb3.0 chip.
And BTW you can boot from anything that linux supports by using small microsd card for boot partition and putting drivers to initrd.

timg236
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 1938
Joined: Thu Jun 21, 2018 4:30 pm

Re: Booting CM4 from SSD via the PCIe slot

Mon Jan 10, 2022 9:34 am

fanoush wrote:
Sun Jan 09, 2022 9:01 pm
oculos wrote:
Sun Jan 09, 2022 4:24 pm
Any chance of an update that would allow booting from a PCIe NIC?
It already boots from builtin ethernet. Also there are far too many "PCIe NIC"s, each different, which one you would expect to be supported?
It makes no sense unless the hardware is builtin to some raspberry product like the VIA VL805 pcie to usb3.0 chip.
And BTW you can boot from anything that linux supports by using small microsd card for boot partition and putting drivers to initrd.
Exactly :)

geerlingguy
Posts: 585
Joined: Sun Feb 15, 2015 3:43 am

Re: Booting CM4 from SSD via the PCIe slot

Tue Jan 18, 2022 6:05 pm

Just wanted to post here for reference—since I don't think anything more 'official' was posted on GitHub (where it's easier to track specific features)—here's an issue for the NVMe-behind-PCIe-switch problem: Can't boot CM4 via NVMe behind PCIe switch / bridge.
The question is not whether something should be done on a Raspberry Pi, it is whether it can be done on a Raspberry Pi.

fanoush
Posts: 1497
Joined: Mon Feb 27, 2012 2:37 pm

Re: Booting CM4 from SSD via the PCIe slot

Tue Jan 25, 2022 10:51 pm

Just to let you know that the latest stable pieeprom-2022年01月25日 from https://github.com/raspberrypi/rpi-eepr ... r/firmware fixed the NVME reboot issue for me. Now the NVME drive boots fine when rebooting linux.

voyager99
Posts: 2
Joined: Wed Jan 05, 2022 1:59 pm

Re: Booting CM4 from SSD via the PCIe slot

Wed Feb 16, 2022 2:18 am

Thanks so much to everyone who posted suggestions and ideas for how to resolve this issue, I greatly appreciate it!
I was able to resolve the issue by using this firmware from the stable branch: (pieeprom-2022年02月08日.bin)
https://github.com/raspberrypi/rpi-eepr ... -02-08.bin

Now the CM4 boots from pci ssd every time!

Code: Select all

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.1G 0 disk
|-mmcblk0p1 179:1 0 256M 0 part
`-mmcblk0p2 179:2 0 28.9G 0 part
mmcblk0boot0 179:32 0 4M 1 disk
mmcblk0boot1 179:64 0 4M 1 disk
nvme0n1 259:0 0 465.8G 0 disk
|-nvme0n1p1 259:1 0 256M 0 part /boot
`-nvme0n1p2 259:2 0 465.5G 0 part /
Boot times are pretty quick too!
Startup finished in 3.513s (kernel) + 6.124s (userspace) = 9.638s
multi-user.target reached after 6.101s in userspace

Thanks again!

70 posts

Return to "Compute Module"

AltStyle によって変換されたページ (->オリジナル) /