U-Boot with direct NVMe boot support for eMMC/SPI Flash
#1
Update (08/07/2020):
Now there's also an option to use mainline U-Boot (v2020.07) with reference ARM Trusted Firmware, no need to use Rockchip blobs anymore.
You can build it yourself using this repository and flash the image as usual (flash_erase + dd works for Manjaro):

https://github.com/pcm720/u-boot-build-scripts

The build script uses patches from dhivael, sigmaris and Manjaro.
v2020.07 binaries for SD/eMMC and SPI Flash are available as well, you can find them on Releases page of the repo.
The resulting SPI image works on my PBP and boots from NVMe just fine.
Boot priority is SD -> eMMC -> NVMe -> USB, and there's no need to destroy U-Boot on SD card anymore.

---------
While it's possible to place the boot partition on eMMC and use NVMe as rootfs, the lack of NVMe support in stock U-Boot kept bugging me, so I decided to do something about it.

So, by porting Rockchip PCIe patches from Radxa and backporting some NVMe patches from upstream U-boot, I was able to get NVMe support going on mrfixit2001's fork and now can successfully boot from my NVMe drive:

[Image: nrnCuS0.png]

You can find binary images for SD/eMMC/SPI flash and source code here.
Note that the current SPI image has issues when booting pre-made images from SD card.

For some reason Rockchip's SPL tries (and fails) to initialize trust mode with the microSD, so you'll have to zero out the bootloader, U-Boot and ATF on your SD card with the following commands:
Quote:dd if=/dev/zero bs=32k seek=1 count=1 of=<microSD>
dd if=/dev/zero bs=64k seek=128 count=64 of=<microSD>
dd if=/dev/zero bs=64k seek=192 count=64 of=<microSD>
The first command corrupts Rockchip's SPL, and second and third zero out U-Boot and ATF, respectively.

In other words, the microSD must not contain any of the bootcode. The same most likely goes for the eMMC.

As usual, I am not responsible for any damage or data loss caused by using these images. They work for me.
Don't flash it if you don't know how to recover from damaged bootloader and can't be bothered to search for recovery options.

If you're flashing the SPI image, make sure that all 16 Mbytes are accessible and that it can be flashed properly before doing anything.
If something doesn't look right, try using Manjaro. That's what I used to flash it to my device.
  Reply


Messages In This Thread
U-Boot with direct NVMe boot support for eMMC/SPI Flash - by pcm720 - 11-27-2019, 03:34 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  uboot wont boot to SD card after upgrade jbradley419 7 802 01-19-2024, 02:29 PM
Last Post: wdt
  Video Flashing/adjusting on boot and reboot jbradley419 0 286 01-16-2024, 09:17 AM
Last Post: jbradley419
  Brand new Pinebook Pro doesn't boot after Manjaro update johnboiles 8 2,210 12-15-2023, 02:11 PM
Last Post: wdt
  PBP won't boot after trying to reinstall Manjaro ARM soupgirl 3 686 12-13-2023, 08:17 PM
Last Post: trillobite
  Various freezes during boot & while running several Linux distros - hardware error? donuts 1 584 11-22-2023, 11:47 AM
Last Post: fxc
  Happy eMMC and SDcard OS usage for Pinebook Pro Newbies... Paulie420 42 60,089 11-20-2023, 06:22 PM
Last Post: wdt
  Selling my Pinebook Pro with a bootable NVMe WD SSD drive pinemouth 0 755 09-27-2023, 08:53 PM
Last Post: pinemouth
  Cannot boot to Kali SD card after uboot upgrade jbradley419 4 1,171 09-19-2023, 08:48 AM
Last Post: dachalife
  Does latest Tow-Boot install/work correctly for everyone? tophneal 4 1,863 08-03-2023, 03:30 PM
Last Post: tophneal
  Boot into NVME drive, no wifi, sound, buttons... PaulQ 0 795 07-13-2023, 01:50 PM
Last Post: PaulQ

Forum Jump:


Users browsing this thread: 1 Guest(s)