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
  U-Boot, video console, and visual artifacts dsimic 19 7,889 06-21-2022, 05:28 AM
Last Post: Tazdevl
  Selling Pinebook Pro (ISO) + nvme from Sweden DavidL 5 323 06-20-2022, 03:20 PM
Last Post: DavidL
  PBP Can't Boot Up iscmob 4 449 05-11-2022, 09:14 AM
Last Post: iscmob
  For Sale: Pinebook Pro 64gb ANSI with NVMe Adapter Lumat 2 635 04-24-2022, 01:42 AM
Last Post: kylexd
  Selling PineBook PRO with ISO Keyboard + NVME firefox-58 27 6,874 04-08-2022, 06:23 AM
Last Post: firefox-58
  eMMC for Odroid C4 work in PBP? dieselnutjob 6 667 04-05-2022, 10:10 AM
Last Post: jiyong
  Kali Linux on SD card boot wils91 5 1,196 03-08-2022, 04:39 AM
Last Post: Tazdevl
  Very low battery (but charging) causes boot failures Phillip Bell 7 1,243 02-22-2022, 11:20 AM
Last Post: wdt
  Updated stock Manjaro, now won't boot (brick?) pineymousepad 17 3,589 02-18-2022, 02:29 PM
Last Post: jiyong
  Pinebook Pro bricked after flashing eMMC User 24592 0 519 02-17-2022, 07:55 AM
Last Post: User 24592

Forum Jump:


Users browsing this thread: 2 Guest(s)