My progress on real RISC-V hardware

With latest Haiku recent code, I can boot Haiku on MangoPi Pro (Allwinner Nezha d1 chip based).

link site: 芒果派 ( Mango Pi ), 小巧优雅的单板电脑 | mqpro

  1. build mainline u-boot according to Allwinner Nezha - linux-sunxi.org
  2. compiling the recent riscv64 haiku mmc image:
    1. with patch from : https://review.haiku-os.org/c/haiku/+/3880/1/src/system/boot/platform/efi/debug.cpp
    2. enable console dts for “snps,dw-apb-uart”:
    #if defined(__riscv)
    { "sifive,uart0", UART_KIND_SIFIVE, &get_uart<ArchUARTSifive> },
    { "snps,dw-apb-uart", UART_KIND_8250, &get_uart<DebugUART8250> },
    #elif defined(__ARM__)
    
  3. burn the mmc image to sdcard:
dd if=./haiku-mmc.image of=/dev/mmcblk0 conv=sync
dd if=../../nezha/u-boot/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

Now I can reach:

efi/fdt: Probing for device trees from UEFI...
efi/fdt: Valid FDT from UEFI table 3, size: 36864
arch_smp_register_cpu()
cpu
  id: 0
  phandle: 61
PLIC contexts
  context 1: 61
    cpu id: 0
boot(): enter
boot(): heap initialized...
GOP protocol not found
Welcome to the Haiku boot loader!
Haiku revision: hrev56582
add_partitions_for(0x000000007ccaf258, mountFS = no)
add_partitions_for(fd = 0, mountFS = no)                                                                                                  
0x000000007ccaf2b0 Partition::Partition                                                                                                   
0x000000007ccaf2b0 Partition::Scan()                                                                                                      
check for partitioning_system: GUID Partition Map                                                                                         
EFI header: EFI PART                                                                                                                      
EFI revision: 10000                                                                                                                       
header size: 92                                                                                                                           
header CRC: 40b4b8ae                                                                                                                      
absolute block: 1                                                                                                                         
alternate block: 61067263                                                                                                                 
first usable block: 34                                                                                                                    
last usable block: 61067230                                                                                                               
disk GUID: f23f3ee2-d4b0-4e87-adf5-933f428ec18c                                                                                           
entries block: 2                                                                                                                          
entry size:  128                                                                                                                          
entry count: 128                                                                                                                          
entries CRC: 1c9aaef8                                                                                                                     
EFI header: EFI PART                                                                                                                      
EFI revision: 10000                                                                                                                       
header size: 92                                                                                                                           
header CRC: 40b4b8ae                                                                                                                      
absolute block: 61067263                                                                                                                  
alternate block: 1                                                                                                                        
first usable block: 34                                                                                                                    
last usable block: 61067230                                                                                                               
disk GUID: f23f3ee2-d4b0-4e87-adf5-933f428ec18c                                                                                           
entries block: 61067231                                                                                                                   
entry size:  128                                                                                                                          
entry count: 128                                                                                                                          
entries CRC: 1c9aaef8                                                                                                                     
[  0] partition type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7                                                                                
      unique id: f163f789-38d6-44ce-b678-8a250302a064                                                                                     
      start block: 65536                                                                                                                  
      end block: 1114111                                                                                                                  
      size: 511.999 MB                                                                                                                    
      attributes: 0                                                                                                                       
      name: primary                                                                                                                       
[  1] partition type: 0fc63daf-8483-4772-8e79-3d69d8477de4                                                                                
      unique id: ee6f7a96-bdf4-0349-82be-407ffb978b2e                                                                                     
      start block: 1114112                                                                                                                
      end block: 60424191                                                                                                                 
      size: 28959.999 MB                                                                                                                  
      attributes: 0                                                                                                                       
      name:                                                                                                                               
  priority: 750                                                                                                                           
check for partitioning_system: Intel Partition Map                                                                                        
  priority: 810                                                                                                                           
check for partitioning_system: Intel Extended Partition                                                                                   
0x000000007ccaf5c8 Partition::Partition                                                                                                   
0x000000007ccaf2b0 Partition::AddChild 0x000000007ccaf5c8                                                                                 
0x000000007ccaf5c8 Partition::SetParent 0x000000007ccaf2b0                                                                                
new child partition!                                                                                                                      
0x000000007ccaf6e8 Partition::Partition                                                                                                   
0x000000007ccaf2b0 Partition::AddChild 0x000000007ccaf6e8                                                                                 
0x000000007ccaf6e8 Partition::SetParent 0x000000007ccaf2b0                                                                                
new child partition!                                                                                                                      
0x000000007ccaf2b0 Partition::Scan(): scan child 0x000000007ccaf5c8 (start = 33554432, size = 33554432, parent = 0x000000007ccaf2b0)!     
0x000000007ccaf5c8 Partition::Scan()                                                                                                      
check for partitioning_system: GUID Partition Map                                                                                         
check for partitioning_system: Intel Partition Map                                                                                        
check for partitioning_system: Intel Extended Partition                                                                                   
0x000000007ccaf2b0 Partition::Scan(): scan child 0x000000007ccaf6e8 (start = 67108864, size = 314572800, parent = 0x000000007ccaf2b0)!    
0x000000007ccaf6e8 Partition::Scan()                                                                                                      
check for partitioning_system: GUID Partition Map                                                                                         
check for partitioning_system: Intel Partition Map                                                                                        
check for partitioning_system: Intel Extended Partition                                                                                   
0x000000007ccaf2b0 Partition::~Partition                                                                                                  
0x000000007ccaf5c8 Partition::SetParent 0x0000000000000000                                                                                
0x000000007ccaf6e8 Partition::SetParent 0x0000000000000000                                                                                
0x000000007ccaf5c8 Partition::_Mount check for file_system: BFS Filesystem                                                                
0x000000007ccaf5c8 Partition::_Mount check for file_system: FAT32 Filesystem                                                              
0x000000007ccaf5c8 Partition::_Mount check for file_system: TAR Filesystem                                                                
0x000000007ccaf5c8 Partition::~Partition                                                                                                  
0x000000007ccaf6e8 Partition::_Mount check for file_system: BFS Filesystem                                                                
PackageVolumeInfo::SetTo()                                                                                                                
PackageVolumeInfo::_InitState(): failed to parse activated-packages: No such file or directory                                            
load kernel kernel_riscv64...                                                                                                             
maximum boot loader heap usage: 445768, currently used: 436728                                                                            
Chosen UART:                                                                                                                              
  kind: 8250                                                                                                                              
  regs: 0x2500000, 0x400                                                                                                                  
  irq: 18                                                                                                                                 
  clock: 0                                                                                                                                
bootHart: 0                                                                                                                               
timerFrequency: 24000000                                                                                                                  
kernel:                                                                                                                                   
  text: 0xffffffc002010000, 0x15c000                                                                                                      
  data: 0xffffffc00216c000, 0x5a000                                                                                                       
  entry: 0xffffffc00209425a                                                                                                               
Kernel stack at 0xffffffc002682000                                                                                                        
System provided memory map:                                                                                                               
  phys: 0x40000000-0x40040000, virt: 0x40000000-0x40040000, type: EfiBootServicesData (0x4), attr: 0x8                                    
  phys: 0x40040000-0x47f00000, virt: 0x40040000-0x47f00000, type: EfiConventionalMemory (0x7), attr: 0x8                                  
  phys: 0x47f00000-0x47f0e000, virt: 0x47f00000-0x47f0e000, type: EfiACPIReclaimMemory (0x9), attr: 0x8                                   
  phys: 0x47f0e000-0x7c612000, virt: 0x47f0e000-0x7c612000, type: EfiConventionalMemory (0x7), attr: 0x8                                  
  phys: 0x7c612000-0x7ecaf000, virt: 0x7c612000-0x7ecaf000, type: EfiLoaderData (0x2), attr: 0x8                                          
  phys: 0x7ecaf000-0x7ecff000, virt: 0x7ecaf000-0x7ecff000, type: EfiLoaderCode (0x1), attr: 0x8                                          
  phys: 0x7ecff000-0x7ed04000, virt: 0x7ecff000-0x7ed04000, type: EfiBootServicesData (0x4), attr: 0x8                                    
  phys: 0x7ed04000-0x7ed05000, virt: 0x7ed04000-0x7ed05000, type: EfiRuntimeServicesData (0x6), attr: 0x8000000000000008                  
  phys: 0x7ed05000-0x7ed08000, virt: 0x7ed05000-0x7ed08000, type: EfiBootServicesData (0x4), attr: 0x8                                    
  phys: 0x7ed08000-0x7ed09000, virt: 0x7ed08000-0x7ed09000, type: EfiRuntimeServicesData (0x6), attr: 0x8000000000000008                  
  phys: 0x7ed09000-0x7ed0a000, virt: 0x7ed09000-0x7ed0a000, type: EfiBootServicesData (0x4), attr: 0x8                                    
  phys: 0x7ed0a000-0x7ed10000, virt: 0x7ed0a000-0x7ed10000, type: EfiRuntimeServicesData (0x6), attr: 0x8000000000000008                  
  phys: 0x7ed10000-0x7ed1d000, virt: 0x7ed10000-0x7ed1d000, type: EfiBootServicesData (0x4), attr: 0x8                                    
  phys: 0x7ed1d000-0x7ff49000, virt: 0x7ed1d000-0x7ff49000, type: EfiLoaderData (0x2), attr: 0x8                                          
  phys: 0x7ff49000-0x7ff4a000, virt: 0x7ff49000-0x7ff4a000, type: EfiRuntimeServicesCode (0x5), attr: 0x8000000000000008                  
  phys: 0x7ff4a000-0x80000000, virt: 0x7ff4a000-0x80000000, type: EfiLoaderData (0x2), attr: 0x8                                          
PageTable:                                                                                                                                
  0x02500000 - 0x02500fff: 0x02500000 - 0x02500fff, 0x1000, {valid, read, write, accessed, dirty}                                         
  0x7c612000 - 0x7ecfefff: 0x7c612000 - 0x7ecfefff, 0x26ed000, {valid, read, write, exec, accessed, dirty}                                
  0x7ed04000 - 0x7ed04fff: 0x7ed04000 - 0x7ed04fff, 0x1000, {valid, read, write, exec, accessed, dirty}                                   
  0x7ed08000 - 0x7ed08fff: 0x7ed08000 - 0x7ed08fff, 0x1000, {valid, read, write, exec, accessed, dirty}                                   
  0x7ed0a000 - 0x7ed0ffff: 0x7ed0a000 - 0x7ed0ffff, 0x6000, {valid, read, write, exec, accessed, dirty}                                   
  0x7ed1d000 - 0x7fffffff: 0x7ed1d000 - 0x7fffffff, 0x12e3000, {valid, read, write, exec, accessed, dirty}                                
  0xffffffc002000000 - 0xffffffc00200ffff: 0x7cc9b000 - 0x7ccaafff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002010000 - 0xffffffc0021c5fff: 0x7cae5000 - 0x7cc9afff, 0x1b6000, {valid, read, write, exec, accessed, dirty}                 
  0xffffffc0021c6000 - 0xffffffc0021f1fff: 0x7cab9000 - 0x7cae4fff, 0x2c000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0021f2000 - 0xffffffc002231fff: 0x7ca79000 - 0x7cab8fff, 0x40000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002232000 - 0xffffffc00223dfff: 0x7ca6d000 - 0x7ca78fff, 0xc000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00223e000 - 0xffffffc002247fff: 0x7ca63000 - 0x7ca6cfff, 0xa000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002248000 - 0xffffffc00224afff: 0x7ca60000 - 0x7ca62fff, 0x3000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00224b000 - 0xffffffc00227cfff: 0x7ca2e000 - 0x7ca5ffff, 0x32000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc00227d000 - 0xffffffc00228cfff: 0x7ca1e000 - 0x7ca2dfff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc00228d000 - 0xffffffc00228efff: 0x7ca1c000 - 0x7ca1dfff, 0x2000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00228f000 - 0xffffffc00229afff: 0x7ca10000 - 0x7ca1bfff, 0xc000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00229b000 - 0xffffffc00229cfff: 0x7ca0e000 - 0x7ca0ffff, 0x2000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00229d000 - 0xffffffc0022a8fff: 0x7ca02000 - 0x7ca0dfff, 0xc000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022a9000 - 0xffffffc0022b8fff: 0x7c9f2000 - 0x7ca01fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0022b9000 - 0xffffffc0022bafff: 0x7c9f0000 - 0x7c9f1fff, 0x2000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022bb000 - 0xffffffc0022bdfff: 0x7c9ed000 - 0x7c9effff, 0x3000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022be000 - 0xffffffc0022c0fff: 0x7c9ea000 - 0x7c9ecfff, 0x3000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022c1000 - 0xffffffc0022c3fff: 0x7c9e7000 - 0x7c9e9fff, 0x3000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022c4000 - 0xffffffc0022c7fff: 0x7c9e3000 - 0x7c9e6fff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022c8000 - 0xffffffc0022d3fff: 0x7c9d7000 - 0x7c9e2fff, 0xc000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0022d4000 - 0xffffffc002340fff: 0x7c96a000 - 0x7c9d6fff, 0x6d000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002341000 - 0xffffffc00234ffff: 0x7c95b000 - 0x7c969fff, 0xf000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002350000 - 0xffffffc00236dfff: 0x7c93d000 - 0x7c95afff, 0x1e000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc00236e000 - 0xffffffc00237bfff: 0x7c92f000 - 0x7c93cfff, 0xe000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00237c000 - 0xffffffc002383fff: 0x7c927000 - 0x7c92efff, 0x8000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002384000 - 0xffffffc00238bfff: 0x7c91f000 - 0x7c926fff, 0x8000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00238c000 - 0xffffffc00239bfff: 0x7c90f000 - 0x7c91efff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc00239c000 - 0xffffffc00239ffff: 0x7c90b000 - 0x7c90efff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023a0000 - 0xffffffc0023a2fff: 0x7c908000 - 0x7c90afff, 0x3000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023a3000 - 0xffffffc0023a8fff: 0x7c902000 - 0x7c907fff, 0x6000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023a9000 - 0xffffffc0023acfff: 0x7c8fe000 - 0x7c901fff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023ad000 - 0xffffffc0023aefff: 0x7c8fc000 - 0x7c8fdfff, 0x2000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023af000 - 0xffffffc0023b3fff: 0x7c8f7000 - 0x7c8fbfff, 0x5000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023b4000 - 0xffffffc0023befff: 0x7c8ec000 - 0x7c8f6fff, 0xb000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0023bf000 - 0xffffffc0023d4fff: 0x7c8d6000 - 0x7c8ebfff, 0x16000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0023d5000 - 0xffffffc0023e6fff: 0x7c8c4000 - 0x7c8d5fff, 0x12000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0023e7000 - 0xffffffc0023f6fff: 0x7c8b4000 - 0x7c8c3fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0023f7000 - 0xffffffc002406fff: 0x7c8a4000 - 0x7c8b3fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002407000 - 0xffffffc002415fff: 0x7c895000 - 0x7c8a3fff, 0xf000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002416000 - 0xffffffc002425fff: 0x7c885000 - 0x7c894fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002426000 - 0xffffffc002437fff: 0x7c873000 - 0x7c884fff, 0x12000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002438000 - 0xffffffc00243dfff: 0x7c86d000 - 0x7c872fff, 0x6000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00243e000 - 0xffffffc002441fff: 0x7c869000 - 0x7c86cfff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002442000 - 0xffffffc002445fff: 0x7c865000 - 0x7c868fff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002446000 - 0xffffffc002448fff: 0x7c862000 - 0x7c864fff, 0x3000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002449000 - 0xffffffc00244dfff: 0x7c85d000 - 0x7c861fff, 0x5000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00244e000 - 0xffffffc00245dfff: 0x7c84d000 - 0x7c85cfff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc00245e000 - 0xffffffc002463fff: 0x7c847000 - 0x7c84cfff, 0x6000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002464000 - 0xffffffc002468fff: 0x7c842000 - 0x7c846fff, 0x5000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002469000 - 0xffffffc002481fff: 0x7c829000 - 0x7c841fff, 0x19000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002482000 - 0xffffffc002489fff: 0x7c821000 - 0x7c828fff, 0x8000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00248a000 - 0xffffffc002499fff: 0x7c811000 - 0x7c820fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc00249a000 - 0xffffffc0024bbfff: 0x7c7ef000 - 0x7c810fff, 0x22000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0024bc000 - 0xffffffc0024d8fff: 0x7c7d2000 - 0x7c7eefff, 0x1d000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0024d9000 - 0xffffffc0024e8fff: 0x7c7c2000 - 0x7c7d1fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc0024e9000 - 0xffffffc0024edfff: 0x7c7bd000 - 0x7c7c1fff, 0x5000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0024ee000 - 0xffffffc0024f5fff: 0x7c7b5000 - 0x7c7bcfff, 0x8000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc0024f6000 - 0xffffffc002540fff: 0x7c76a000 - 0x7c7b4fff, 0x4b000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002541000 - 0xffffffc002550fff: 0x7c75a000 - 0x7c769fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002551000 - 0xffffffc002560fff: 0x7c74a000 - 0x7c759fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002561000 - 0xffffffc00256cfff: 0x7c73e000 - 0x7c749fff, 0xc000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00256d000 - 0xffffffc002573fff: 0x7c737000 - 0x7c73dfff, 0x7000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002574000 - 0xffffffc002577fff: 0x7c733000 - 0x7c736fff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002578000 - 0xffffffc002581fff: 0x7c729000 - 0x7c732fff, 0xa000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002582000 - 0xffffffc002681fff: 0x7c629000 - 0x7c728fff, 0x100000, {valid, read, write, exec, accessed, dirty}                 
  0xffffffc002682000 - 0xffffffc002686fff: 0x7c624000 - 0x7c628fff, 0x5000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002687000 - 0xffffffc002688fff: 0x7c622000 - 0x7c623fff, 0x2000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc002689000 - 0xffffffc002698fff: 0x7c612000 - 0x7c621fff, 0x10000, {valid, read, write, exec, accessed, dirty}                  
  0xffffffc002699000 - 0xffffffc00269cfff: 0x7ccab000 - 0x7ccaefff, 0x4000, {valid, read, write, exec, accessed, dirty}                   
  0xffffffc00269d000 - 0xffffffc00669cfff: 0x10000000 - 0x13ffffff, 0x4000000, {valid, read, write, accessed, dirty}                      
  0xffffffc00669d000 - 0xffffffc00669dfff: 0x02500000 - 0x02500fff, 0x1000, {valid, read, write, accessed, dirty}                         
  0xffffffffc0000000 - 0xffffffffffffffff: 0x40000000 - 0x7fffffff, 0x40000000, {valid, read, write, accessed, dirty}                     
SATP: 0x800000000007c611                                                                                                                  
Calling ExitBootServices. So long, EFI!                                                                                                   
Unhandled exception: Load access fault                                                                                                    
EPC: 000000007ecbbacc RA: 000000007ecbbab8 TVAL: 00000081430142e9                                                                         
EPC: 0000000041b72acc RA: 0000000041b72ab8 reloc adjusted                                                                                 
                                                                                                                                          
Code: c763 02a7 842a 5863 00a0 609c 8622 85ca (77bc)                                                                                      
UEFI image [0x000000007ecaf000:0x000000007ecfec0f] pc=0xcacc '/EFI\BOOT\BOOTRISCV64.EFI'                                                  
                                                                                                                                          
                                                                                                                                          
resetting ...   
18 Likes

I probably can fix boot if I get hardware (I live in Japan).

5 Likes

you can send me an address(pengphei@foxmail.com), I can buy one for you from taobao.com.

9 Likes

I have fond the link here for aliexpress:

  1. MongoPi pro(pink version(1GB), 25$): Mangopi Mq-pro D1 Board Risc-v Sbc 512mb/1gb Ram With Wifi/bt Sakura Pink V1.4 - Demo Board - AliExpress
  2. freebsd is porting riscv for this soc(work in progress): riscv - FreeBSD Wiki

Looks like Intel and sifive are working together for a new powerfull board with four P550 cores and a PCI-e slot:

13 Likes

I ordered MongoPi 1GB version at Aliexpress.

8 Likes

MangoPi delivered.

23 Likes

Sweet. Whats diz?

1 Like

Armbian is a Linux distro for limited hardware. Haiku’s kernel is slimmer though.

1 Like

slimmer? Linux can run in variety of ressource constrained enviroments that Haiku can’t. not sure how it is slimmer as such

It’s dependency hell with Linux, or so I’ve heard. YMMV.

1 Like

A version of the ROMA RISC-V laptop SBC can be bought separately in 2023. It’s designed as a SO-DIMM module - so you can stack them like RAM into a clusterboard. Much cheaper than the laptop too, from $85-145 each.

1 Like

Any news on Haiku booting on the MangoPi?

1 Like

Managed to start kernel and currently have troubles with virtual memory handling in kernel (virtual memory mapped by kernel triggers page fault).

10 Likes

Thanks for the update X512!

It’s a shame its only got (up to) 1GB RAM, I would imagine the web browsers and other demanding apps aren’t going to be much fun to use with so little RAM, if they run at all. Have you ordered the VisionFive 2 as well? That sounds more promising.

1 Like

Not yet but I plan to. Amazon show that sells will start at February 14.

9 Likes

you’ve heard correctly, or configuration hell

Hopefully the work you are doing to get it to boot on the MangoPi will help towards getting it ported to the VisionFive.

Sounds like RISCV might be no better than ARM for code portability then? Do the boot processes of the MangoPi and the RV board you had already have much in common?

Explaining Computers early review of the VisionFive 2.

Unfortunately Chris was unable to get the NVME working on his pre-production board, which also has a 100 Mb NIC instead of 2x gigE and on top of that the eMMC and USB 3 speeds are pretty poor currently.

The good news is that Imagination promise an open source driver for the GPU used on this, the BXE-4-32. I’m not aware of an ARM GPU manufacturer having produced any 3D capable open source drivers so that would be big news if/when that starts working. All the ARM GPU drivers have been RE’d by third parties.

5 Likes

It’s very encouraging that imagination is finally getting with the open source GPU program… I guess they were feeling the heat from radeon / Mali and adreno.

2 Likes