Progress on running Haiku on VisionFive 2

@amonpaike

The fact that nvnidia was ahead of everyone by an era, using even >4096 cores (CUDA cores != Shader) I know. However, the PCI bus is somewhat limited and the CUDA cores “live a life of their own”, ie the degree of communication between the cores is unknown.
Just x86 core != ARM core.
But this is the forum of the open source community, which is a few years back when it comes to some technologies or software.

it is different in the case of RISC-V, where the hardware is open source and soft is just being developed, and its commercial version has no right to exist.

1 Like

I think I’m close but I’ve not yet had any success in booting the StarFive Debian directly off NVMe. It boots off SD card fine but thats sloooow.

2 Likes

That’s exactly why I wrote that comment a few weeks ago about “256 cores”- “someone” might happen tomorrow that pulls it out of the magic hat. That’s the real strength of RISC-V, and that’s also the real excitement around it. Once you have developed a single well-made core that is scalable and communicates well in parallel, that’s it. (the technology for printing miniaturized processors and efficient transistors has already matured for some time, it was only a matter of time before the “homemade” customization emerged… it is almost a mandatory step, and it is mainly for this reason that RISC-V standard is pushed so much even by big ones.)

In two or three years it will seem like a century has gone by evolutionarily speaking…

It’s not ready yet. They will focus on NVMe boot for the next Engineering Release.

This is half-broken and not really documented. Either fixing it or documenting the current state of things is a lot of work.

I can give a short explanation but expect things to be incorrect (I have not tried this in a while, and never on RISC-V) and broken (I never managed to get this process to run to completion, a lot of hacks are always needed).

The starting point is the Haiku configure script. You need to do what’s called a “bootstrap build” as documented here: ReadMe.Compiling.md - haiku - Haiku's main repository

The idea is that this should create a bootable image by building everything from source. It will be a very minimal image, just enough to boot and then run haikuporter inside it. If all goes to plan, this can then be booted, and haikuporter run inside it to continue building packages.

However, this whole process was done successfully only twice in all of Haiku history, and both times it was for x86 Haiku while running on x86 Linux. So other architectures are either completely unexplored, or known to be broken.

Even if the process fails, you will hopefully end up with some “bootstrap” packages used to prepare the image. I made a script which can convert these to non-bootstrap packages, which can then used to build a non-bootstrap image. This skips a few steps in the normally defined process and I think this is how x512 eventually managed to get a bootable system.

The normal process was only tried from Linux. I was not succesful in porting it to Haiku, but I think x512 may have made more progress on that than I did. The unbootstrap script, however, has to be run in Haiku since it uses the “package” command line tool to extract and recreate packages.

I don’t think this will work first-try and this whole process should be reworked quite a bit to match what we actually do, making the unbootstrap script a bit more official and integrated in the build process. But since this only affects a handful of people so far, there have been other priorities and no progress has been done on it.

9 Likes

Thanks Pulkomandy!

It looks like I’ll have to wait until X512 gets his code upstreamed and/or an image gets released to try Haiku on my VF2.

I have now got Debian sid booting directly from nvme on my VF2.

https://forum.rvspace.org/t/nvme-boot-using-visionfive2-software-v2-11-5/2464/21

EDIT 5th June

I’ve now also got Arch booting directly from NVMe.

1 Like

I have been successful in building Haiku for the VF2 under Debian testing amd64 like so:

git clone https://review.haiku-os.org/buildtools
git clone https://github.com/X547/haiku.git
cd haiku
mkdir generated.riscv64; cd generated.riscv64
../configure --use-gcc-pipe -j8 --cross-tools-source ../../buildtools --build-cross-tools riscv64
jam -j8 -q @minimum-raw

I haven’t successfully booted it yet. I am running the 3.0.4 firmware and u-boot and I have configured u-boot as X512 said I should on the rvspace forum:

env default -a -f
setenv boot_targets "mmc0 nvme0 dhcp"
setenv bootcmd_nvme0 "devnum=0; run nvme_boot"
saveenv

This is what happens:

U-Boot SPL 2021.10 (May 31 2023 - 16:54:00 +0800)
DDR version: dc2e84f0.
Trying to boot from SPI

OpenSBI v1.2
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|___/_____|
        | |
        |_|

Platform Name             : StarFive VisionFive V2
Platform Features         : medeleg
Platform HART Count       : 5
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 4000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform PMU Device       : ---
Platform Reboot Device    : pm-reset
Platform Shutdown Device  : pm-reset
Platform Suspend Device   : ---
Firmware Base             : 0x40000000
Firmware Size             : 392 KB
Firmware RW Offset        : 0x40000
Runtime SBI Version       : 1.0

Domain0 Name              : root
Domain0 Boot HART         : 1
Domain0 HARTs             : 0*,1*,2*,3*,4*
Domain0 Region00          : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U: ()
Domain0 Region01          : 0x0000000040000000-0x000000004003ffff M: (R,X) S/U: ()
Domain0 Region02          : 0x0000000040040000-0x000000004007ffff M: (R,W) S/U: ()
Domain0 Region03          : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U: (R,W,X)
Domain0 Next Address      : 0x0000000040200000
Domain0 Next Arg1         : 0x0000000042200000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes
Domain0 SysSuspend        : yes

Boot HART ID              : 1
Boot HART Domain          : root
Boot HART Priv Version    : v1.11
Boot HART Base ISA        : rv64imafdcbx
Boot HART ISA Extensions  : none
Boot HART PMP Count       : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count      : 2
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109


U-Boot 2021.10 (May 31 2023 - 16:54:00 +0800), Build: jenkins-github_visionfive2-14

CPU:   rv64imacu_zba_zbb
Model: StarFive VisionFive V2
DRAM:  8 GiB
MMC:   sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
StarFive EEPROM format v2

--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2253-D008E000-00006423
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:65:2a
Ethernet MAC1 address: 6c:cf:39:00:65:2d
--------EEPROM INFO--------

In:    serial
Out:   serial
Err:   serial
Model: StarFive VisionFive V2
Net:   eth0: ethernet@16030000, eth1: ethernet@16040000
starfive_pcie pcie@2C000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10
pci enum ...

IDE device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
bootmode flash device 1/0
Hit any key to stop autoboot:  0 
** No partition table - nvme 0 **
Couldn't find partition nvme 0:3
Can't set block device
Importing environment from 1/0 ...
## Warning: Input data exceeds 1048576 bytes - truncated
## Info: input data size = 1048578 = 0x100002
## Error: "boot2" not defined
pci enum ...

IDE device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
** No partition table - nvme 0 **
Couldn't find partition nvme 0:3
Can't set block device
## Warning: defaulting to text format
Card did not respond to voltage select! : -110

Device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
... is now current device
** No partition table - nvme 0 **
Couldn't find partition nvme 0:1
ethernet@16030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110StarFive 

That boot log complains about the partition table but Linux can read the Haiku VF2 SSD fine.

EDIT

It was getting late last night when I got Haiku to build for the VF2 and I so I forgot about the bootloader having to be on SD card.

I re-used the EFI partition on a TF card that I had a VF2 Linux OS installed on, deleted everything on it, created a dir called EFI/Boot on it and then copied the .efi file like so:

root@zbook:/home/dan/src/haiku# cp ./generated.riscv64/objects/haiku/riscv64/release/system/boot/efi/haiku_loader.efi /mnt/EFI/Boot

I set the DIP switch to boot off SDIO but I get the error:

** Unable to read file ubootefi.var **

When I try booting this SD card.

I have tried copying efi.map into the root of the SD card renamed to ubootefi.var but that didn’t fix it and I don’t see a ubootefi.var file in the Haiku build dir.

How am I supposed to configure the SD card boot partition X512?

U-Boot SPL 2021.10 (May 31 2023 - 16:54:00 +0800)
DDR version: dc2e84f0.
Trying to boot from MMC2

OpenSBI v1.2
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|___/_____|
        | |
        |_|

Platform Name             : StarFive VisionFive V2
Platform Features         : medeleg
Platform HART Count       : 5
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 4000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform PMU Device       : ---
Platform Reboot Device    : pm-reset
Platform Shutdown Device  : pm-reset
Platform Suspend Device   : ---
Firmware Base             : 0x40000000
Firmware Size             : 392 KB
Firmware RW Offset        : 0x40000
Runtime SBI Version       : 1.0

Domain0 Name              : root
Domain0 Boot HART         : 1
Domain0 HARTs             : 0*,1*,2*,3*,4*
Domain0 Region00          : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U: ()
Domain0 Region01          : 0x0000000040000000-0x000000004003ffff M: (R,X) S/U: ()
Domain0 Region02          : 0x0000000040040000-0x000000004007ffff M: (R,W) S/U: ()
Domain0 Region03          : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U: (R,W,X)
Domain0 Next Address      : 0x0000000040200000
Domain0 Next Arg1         : 0x0000000042200000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes
Domain0 SysSuspend        : yes

Boot HART ID              : 1
Boot HART Domain          : root
Boot HART Priv Version    : v1.11
Boot HART Base ISA        : rv64imafdcbx
Boot HART ISA Extensions  : none
Boot HART PMP Count       : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count      : 2
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109


U-Boot 2021.10 (May 31 2023 - 16:54:00 +0800), Build: jenkins-github_visionfive2-14

CPU:   rv64imacu_zba_zbb
Model: StarFive VisionFive V2
DRAM:  8 GiB
MMC:   sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
StarFive EEPROM format v2

--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2253-D008E000-00006423
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:65:2a
Ethernet MAC1 address: 6c:cf:39:00:65:2d
--------EEPROM INFO--------

In:    serial
Out:   serial
Err:   serial
Model: StarFive VisionFive V2
Net:   eth0: ethernet@16030000, eth1: ethernet@16040000
bootmode sd device 1/0
Hit any key to stop autoboot:  0 
Failed to load 'vf2_uEnv.txt'
Importing environment from 1/0 ...
## Info: input data size = 482 = 0x1E2
## Error: "boot2" not defined
Failed to load '/uEnv.txt'
## Warning: defaulting to text format
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:3...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Card did not respond to voltage select! : -110
** Unable to read file ubootefi.var **
Failed to load EFI variables
starfive_pcie pcie@2C000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10

Device 1: unknown device
ethernet@16030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110StarFive # 

The VF2 expects the .efi file to be located at efi/boot/bootriscv64.efi by default.

Loading an .efi requires a .dtb too so I presume X512 is using the latest jh7110-visionfive-v2.dtb, something like:

load mmc 1:3 ${fdt_addr_r} dtbs/starfive/jh7110-visionfive-v2.dtb
5 Likes

You need to update to latest firmware as described in https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf.

Tool to write ROM images:

ROM images:

Instructions:

  1. Set DIP switches to 11
  2. start board, write jh7110-recovery-20230322.bin with XMODEM
  3. type 0, write u-boot-spl.bin.normal.out with XMODEM
  4. type 2, write visionfive2_fw_payload.img with XMODEM
  5. turn off board, set DIP switches to 00.

No. No custom FDT or U-Boot scripts are needed on EFI boot partition. This U-Boot settings should be 100% enough to boot Haiku EFI on NVMe, no SD card is needed:

env default -a -f
setenv boot_targets "mmc0 nvme0 dhcp"
setenv bootcmd_nvme0 "devnum=0; run nvme_boot"
saveenv
15 Likes

I have I now also tried flashing the VF2 recovery via XMODEM (I used minicom) and rewriting the u-boot and firmware as recommended by X512 but even after doing that, Haiku fails to boot. The reason is that when I run nvme part in u-boot with my Haiku SSD attached, u-boot doesn’t list any available partitions although it does list the drive with nvme info and I can see the Haiku partition fine when I plug the SSD into my Debian laptop so I’ve ordered another SSD in the hope it will work better with the VF2. I’ve ordered a Transcend MTE110S because someone reported getting quite good (for the VF2) read speeds of 230 MB/s vs the 165 MB/s I get under VF2 Linux with this Samsung 980 PRO.

The only thing I’ve not tried yet is using Samsung Magician to update the firmware of my SSD. Maybe it has updated firmware which could improve its VF2 compat? I wanted to buy a PCIe 4 SSD, knowing I wouldn’t be able to get the full speed out of it on the VF2 but it obvs wasn’t a good choice as far as the VF2 is concerned. I’ll be keeping the Samsung SSD for use on other machines.

If anyone else ends up down the VF2 bootloader recovery rabbit hole, don’t make the mistake of using wget to download the VF2 recovery binary like I did! Clone the Tools repo to get it.

I AM getting this to boot! :smiley:

Are you sure that you are using correct branch? Current default branch rvvm2 do not work with VisionFive 2 (intended to be used with RVVM virtual machine). You need visionfive2 branch. You also probably need to run git checkout master -- build/jam/repositories/HaikuPorts/riscv64 otherwise you will need additional riscv64 binary packages for HaikuPorts software.

2 Likes

No, rvvm. Last time I did a pull on the visionfive2 branch I read its output as meaning that the rvvm branch had become the main branch now but clearly that isn’t what I want. If these supposed corrected (?) build instructions aren’t correct, then edit them please so that they are correct:

git clone https://review.haiku-os.org/buildtools
git clone https://github.com/X547/haiku.git
cd haiku
git checkout visionfive2
git checkout rvvm2 -- build/jam/repositories/HaikuPorts/riscv64
mkdir generated.riscv64; cd generated.riscv64
../configure --use-gcc-pipe -j8 --cross-tools-source ../../buildtools --build-cross-tools riscv64
HAIKU_REVISION="hrev57062+61" jam -j8 -q @minimum-mmc

Thanks X512!

EDIT 9th June

These instructions now work! After the build is complete, burn haiku-mmc.image onto your NVMe with your disk imaging utility of choice.

1 Like

I use this SSD:

1 Like
dan@zbook:~/src$ git clone https://github.com/X547/haiku.git
Cloning into 'haiku'...
remote: Enumerating objects: 789587, done.
remote: Counting objects: 100% (5578/5578), done.
remote: Compressing objects: 100% (2134/2134), done.
remote: Total 789587 (delta 3585), reused 5303 (delta 3423), pack-reused 784009
Receiving objects: 100% (789587/789587), 438.06 MiB | 16.12 MiB/s, done.
Resolving deltas: 100% (613486/613486), done.
Updating files: 100% (25447/25447), done.
dan@zbook:~/src$ cd haiku
dan@zbook:~/src/haiku$ ls
3rdparty  configure  docs     Jamfile   lgtm.yml    ReadMe.Compiling.md  src
build     data       headers  Jamrules  License.md  ReadMe.md
dan@zbook:~/src/haiku$ git checkout master -- build/jam/repositories/HaikuPorts/riscv64
fatal: invalid reference: master
dan@zbook:~/src/haiku$ git checkout visionfive2
branch 'visionfive2' set up to track 'origin/visionfive2'.
Switched to a new branch 'visionfive2'
dan@zbook:~/src/haiku$ git checkout master -- build/jam/repositories/HaikuPorts/riscv64
fatal: invalid reference: master

You can also use rvvm2 instead of master.

1 Like

Thanks X512! I’ve updated my build instructions in the previous post and it looked like it was going to build but it seems to have failed at the last hurdle somewhere somehow and it didn’t seem to output an image file, not that I could find.

This is the latter part of my Haiku build attempt. I can provide a full log if you need it?

Maybe HAIKU_REVISION="hrev57062+61" jam -j8 -q @minimum-raw will help?

1 Like

Yes, thats fixed it but u-boot still doesn’t register there being any partitions on my SSD. I should get my new SSD this weekend so hopefully I’ll have better luck with that.

U-Boot SPL 2021.10 (May 31 2023 - 16:54:00 +0800)
DDR version: dc2e84f0.
Trying to boot from SPI

OpenSBI v1.2
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|___/_____|
        | |
        |_|

Platform Name             : StarFive VisionFive V2
Platform Features         : medeleg
Platform HART Count       : 5
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 4000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform PMU Device       : ---
Platform Reboot Device    : pm-reset
Platform Shutdown Device  : pm-reset
Platform Suspend Device   : ---
Firmware Base             : 0x40000000
Firmware Size             : 392 KB
Firmware RW Offset        : 0x40000
Runtime SBI Version       : 1.0

Domain0 Name              : root
Domain0 Boot HART         : 1
Domain0 HARTs             : 0*,1*,2*,3*,4*
Domain0 Region00          : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U: ()
Domain0 Region01          : 0x0000000040000000-0x000000004003ffff M: (R,X) S/U: ()
Domain0 Region02          : 0x0000000040040000-0x000000004007ffff M: (R,W) S/U: ()
Domain0 Region03          : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U: (R,W,X)
Domain0 Next Address      : 0x0000000040200000
Domain0 Next Arg1         : 0x0000000042200000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes
Domain0 SysSuspend        : yes

Boot HART ID              : 1
Boot HART Domain          : root
Boot HART Priv Version    : v1.11
Boot HART Base ISA        : rv64imafdcbx
Boot HART ISA Extensions  : none
Boot HART PMP Count       : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count      : 2
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109


U-Boot 2021.10 (May 31 2023 - 16:54:00 +0800), Build: jenkins-github_visionfive2-14

CPU:   rv64imacu_zba_zbb
Model: StarFive VisionFive V2
DRAM:  8 GiB
MMC:   sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
StarFive EEPROM format v2

--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2253-D008E000-00006423
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:65:2a
Ethernet MAC1 address: 6c:cf:39:00:65:2d
--------EEPROM INFO--------

In:    serial
Out:   serial
Err:   serial
Model: StarFive VisionFive V2
Net:   eth0: ethernet@16030000, eth1: ethernet@16040000
starfive_pcie pcie@2C000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10
pci enum ...

IDE device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
bootmode flash device 1/0
Hit any key to stop autoboot:  0 
** No partition table - nvme 0 **
Couldn't find partition nvme 0:3
Can't set block device
Importing environment from 1/0 ...
## Warning: Input data exceeds 1048576 bytes - truncated
## Info: input data size = 1048578 = 0x100002
## Error: "boot2" not defined
pci enum ...

IDE device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
** No partition table - nvme 0 **
Couldn't find partition nvme 0:3
Can't set block device
## Warning: defaulting to text format
Card did not respond to voltage select! : -110

Device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
... is now current device
** No partition table - nvme 0 **
Couldn't find partition nvme 0:1
ethernet@16030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@16040000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110StarFive # nvme info
Device 0: Vendor: 0x144d Rev: 5B2QGXA7 Prod: S5GYNX0TA78788V     
            Type: Hard Disk
            Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
StarFive # nvme part

no nvme partition table available
StarFive # 
1 Like

NVMe is probably detected fine. Can you try to manually format GPT partition table on NVMe, create 2 partitions (ESP and Haiku), copy bootriscv64.efi boot loader and Haiku data to second partition?

You may also try to use @minimum-mmc.

2 Likes

IT BOOTS!!

I can finally confirm that Haiku running on the VF2 is not vapourware, well it can boot to the desktop at least! I updated the last set of build instructions with the working commands which are currently:

git clone https://review.haiku-os.org/buildtools
git clone https://github.com/X547/haiku.git
cd haiku
git checkout visionfive2
git checkout rvvm2 -- build/jam/repositories/HaikuPorts/riscv64
mkdir generated.riscv64; cd generated.riscv64
../configure --use-gcc-pipe -j8 --cross-tools-source ../../buildtools --build-cross-tools riscv64
HAIKU_REVISION="hrev57062+61" jam -j8 -q @minimum-mmc

After the build is complete, burn haiku-mmc.image onto your SSD.

Does this make me the second person ever to run Haiku on the VF2 X512? I presume so. :smiley:

My USB mouse works OK but neither of my USB keyboards work under VF2 Haiku

Here’s a Haiku console log after I plug a USB keyboard in:

To upgrade my u-boot + firmware, I found the easiest way to do it was by booting Arch via SD card. See the top post in the VF2 Arch port thread for instructions on how to update your VF2 firmware using Arch:

13 Likes