U-Boot with direct NVMe boot support for eMMC/SPI Flash
#11
(11-29-2019, 09:18 AM)tophneal Wrote:
(11-27-2019, 03:34 PM)pcm720 Wrote: Of course, since SPI flash is a no-go for now, U-Boot lives on eMMC: you still have to keep it connected. But that's a start.

Pardon my ignorance, but why is u-boot on SPI a no-go for us right now? I've noticed that other rk3399 hardware has achieved it (Khadas Edge has a script to flash u-boot to SPI in their wiki.) Would it not be possible to adapt these existing tools to flash SPI on the PBP?

Awesome work on this modification, btw! I'm looking forward to loading it onto my CrOs install today.

Thanks!
SPI is a no-go for the same reasons Pine64 ships their U-Boot on eMMC: there is no safe way of flashing it and no easy way to recover.
Plus, I guess there's still work to do: it would be nice to have display and keyboard working in the pre-boot, before they're initialized by the kernel.
  Reply
#12
(11-29-2019, 10:59 AM)pcm720 Wrote: ...
Thanks!
SPI is a no-go for the same reasons Pine64 ships their U-Boot on eMMC: there is no safe way of flashing it and no easy way to recover.
Plus, I guess there's still work to do: it would be nice to have display and keyboard working in the pre-boot, before they're initialized by the kernel.
There is a program to write the SPI flash. How safe it is, I don't know. Perhaps I will play with it on my ROCKPro64, (same RK3399 & SPI). It has an easier way via header connector to disable the SPI flash if a U-Boot image does not work.

I did come up with a scheme to make using the SPI safer. Since it's 16MBytes, we can likely store 2 U-Boot images. The idea is to keep the working one, but add a new one for additional features. If the new one fails spectacularly, and prevents any other recovery, we power off. Then insert a special SD card, which the initial SPI image would check the SD card for a special signature. Like a 64 byte code at a specific location. Then fail back to the older, working U-Boot image. (Or a second 64 byte code that causes a boot to the SD card.)

Anyway, I will start a thread somewhere so we can pick it apart. And hopefully re-assemble it into something that would work for U-Boot on SPI flash.
--
Arwen Evenstar
Princess of Rivendale
  Reply
#13
Well done, I am happy to see that we can boot our PBPs from the NVMe... how drastic is the performance increase? do you happen to have any comparative specs, OP?
  Reply
#14
(11-30-2019, 01:13 AM)clover Wrote: Well done, I am happy to see that we can boot our PBPs from the NVMe... how drastic is the performance increase? do you happen to have any comparative specs, OP?

No, because there isn't any performance increase.
It's just a bootloader: kernel, device tree and initrd aren't big enough to benefit from NVMe speeds.
The only diference is that it now you can keep boot files directly on your NVMe drive and not bother with mounting eMMC as /boot.
  Reply
#15
I think what we are asking is for a test comparing all of the os loaded on an emmc vs nvme. I understand that putting boot on emmc and everything else on nvme will be similar to everything on nvme. I'm curious what the difference between everything on emm and everything on nvme is.
  Reply
#16
I haven't really spent a lot of time with eMMC, but I feel that the difference in not big enough to notice.
Yes, it's a little bit snappier, but you still have to wait for applications to load since the real bottleneck here is the CPU.

Anyway, I can't really do any comparisons since I don't have the eMMC in my PBP anymore.
The repository was updated with SPI image Wink
  Reply
#17
(12-02-2019, 10:27 PM)pcm720 Wrote: I haven't really spent a lot of time with eMMC, but I feel that the difference in not big enough to notice.
Yes, it's a little bit snappier, but you still have to wait for applications to load since the real bottleneck here is the CPU.

Anyway, I can't really do any comparisons since I don't have the  eMMC in my PBP anymore.
The repository was updated with SPI image Wink

So we can finally boot directly from NVMe? What do we have to do for that?

edit: I noticed this link https://github.com/pcm720/rockchip-u-boot/releases and this step:

# dd if=spiflash.bin of=/dev/mtd0

So after flashing, it will allow to boot from NVMe without eMMC? what about SD card priority?
  Reply
#18
(12-03-2019, 12:25 AM)Wizzard Wrote:
(12-02-2019, 10:27 PM)pcm720 Wrote: I haven't really spent a lot of time with eMMC, but I feel that the difference in not big enough to notice.
Yes, it's a little bit snappier, but you still have to wait for applications to load since the real bottleneck here is the CPU.

Anyway, I can't really do any comparisons since I don't have the  eMMC in my PBP anymore.
The repository was updated with SPI image Wink

So we can finally boot directly from NVMe? What do we have to do for that?

edit: I noticed this link https://github.com/pcm720/rockchip-u-boot/releases and this step:

# dd if=spiflash.bin of=/dev/mtd0

So after flashing, it will allow to boot from NVMe without eMMC? what about SD card priority?

Yes. The U-Boot is set up to look for boot scripts/extlinux configuration files in the following order: microSD, NVMe, eMMC, anything else.
However, there's a catch with pre-made microSD images. See OP for details.
  Reply
#19
(12-03-2019, 06:09 AM)pcm720 Wrote: Yes. The U-Boot is set up to look for boot scripts/extlinux configuration files in the following order: microSD, NVMe, eMMC, anything else.
However, there's a catch with pre-made microSD images. See OP for details.

Great! But what do you mean by that catch? Where do I find the details?

edit: ok, I get it, read another thread Smile
  Reply
#20
No, the details are in the opening post of this very same thread.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Cant boot into an OS trashtendenz 3 693 10-23-2024, 03:49 AM
Last Post: chaylengordon
  3 days in, slow/stuck or no boot. lgmpbp2 30 3,781 09-05-2024, 08:49 AM
Last Post: lgmpbp2
  Unable to boot? YossiS 4 401 09-04-2024, 10:35 AM
Last Post: wdt
  upgrading u-boot--what version? where to get it? bsammon 11 2,737 05-22-2024, 09:33 AM
Last Post: wdt
  uboot wont boot to SD card after upgrade jbradley419 7 2,320 01-19-2024, 02:29 PM
Last Post: wdt
  Video Flashing/adjusting on boot and reboot jbradley419 0 637 01-16-2024, 09:17 AM
Last Post: jbradley419
  Brand new Pinebook Pro doesn't boot after Manjaro update johnboiles 8 3,758 12-15-2023, 02:11 PM
Last Post: wdt
  PBP won't boot after trying to reinstall Manjaro ARM soupgirl 3 1,473 12-13-2023, 08:17 PM
Last Post: trillobite
  Various freezes during boot & while running several Linux distros - hardware error? donuts 1 1,057 11-22-2023, 11:47 AM
Last Post: fxc
  Happy eMMC and SDcard OS usage for Pinebook Pro Newbies... Paulie420 42 68,171 11-20-2023, 06:22 PM
Last Post: wdt

Forum Jump:


Users browsing this thread: 3 Guest(s)