Page MenuHomeFreeBSD

arm64/vmm: Add missing debug traps
ClosedPublic

Authored by andrew on Tue, Sep 30, 4:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Oct 10, 11:45 PM
Unknown Object (File)
Fri, Oct 10, 12:11 PM
Unknown Object (File)
Fri, Oct 10, 12:11 PM
Unknown Object (File)
Fri, Oct 10, 5:26 AM
Unknown Object (File)
Thu, Oct 9, 7:38 PM
Unknown Object (File)
Mon, Oct 6, 9:41 PM
Unknown Object (File)
Thu, Oct 2, 7:06 PM
Unknown Object (File)
Thu, Oct 2, 7:05 PM

Details

Summary

These are features we don't support or advertise to the guest so can
safely be trapped.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Thu, Oct 2, 4:22 PM
This revision was automatically updated to reflect the committed changes.

This commit (https://cgit.freebsd.org/src/commit/?id=c67ea2707d2b5e6deb5986710f520ff69e4f78a3) seems to break bhyve on an Ampere Altra Mt Collins server that I've been using to do CI testing on arm64:

U-Boot 2024.07 (Sep 05 2025 - 17:07:03 +0000)                                                                                                                                                                                                  
                                                                                                                                                                                                                                               
DRAM:  4 GiB                                                                                                                                                                                                                                   
Core:  10 devices, 7 uclasses, devicetree: board                                                                                                                                                                                                                                  
MMC:                                                                                                                                                           
Loading Environment from nowhere... OK                                                                                                                         
In:    serial@10000                                                                                                                                            
Out:   serial@10000                                                                                                                                            
Err:   serial@10000                                                                                                                                            
Net:   No ethernet found.                                                                                                                                      
Hit any key to stop autoboot:  0                                                                                                                               
                                                                                                                                                               
Device 0: 1af4 VirtIO Block Device                                                                                                                             
            Type: Hard Disk                                                                                                                                    
            Capacity: 6144.0 MB = 6.0 GB (12582912 x 512)                                                                                                      
... is now current device                                                                                                                                      
Scanning virtio 0:1...                                                                                                                                         
Booting: virtio 0                                                                                                                                              
Consoles: EFI console                                                                                                                                          
    Reading loader env vars from /efi/freebsd/loader.env                                                                                                       
Setting currdev to disk0p1:                                                                                                                                    
FreeBSD/arm64 EFI loader, Revision 3.0                                                                                                                         
(Thu Oct  2 22:31:59 CEST 2025 root@ampere)                                                                                                                    
                                                                                                                                                               
   Command line arguments: loader.efi
   Image base: 0x1fe97b000
   EFI version: 2.100                                              
   EFI Firmware: Das U-Boot (rev 8228.1792)                                                                                            
   Console: efi,comconsole (0)                                      
   Load Path: /\EFI\BOOT\BOOTAA64.EFI                               
   Load Device: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600850000000000)/HD(1,GPT,8042
1bee-9fd3-11f0-067b-ff9d86f8dced,0x22,0x10418)                      
   BootCurrent: 0000                                                
   BootOrder: 0000[*] 0001 0002 0003 0004 0005                                                                                           
   BootInfo Path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600850000000000)
Ignoring Boot0000: Only one DP found                                                                                                     
Trying ESP: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600850000000000)/HD(1,GPT,80421bee
-9fd3-11f0-067b-ff9d86f8dced,0x22,0x10418)                          
Setting currdev to disk0p1:                                                                                                              
Trying: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600850000000000)/HD(2,GPT,80421c02-9fd
3-11f0-1d08-61407e6af4da,0x1043a,0x80000)                           
Setting currdev to disk0p2:                                                                                                              
Trying: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8500000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600850000000000)/HD(3,GPT,80421c0c-9fd
3-11f0-17a5-d14fff7c5968,0x9043a,0xa00000)                          
Setting currdev to disk0p3:                                                                                                              
Loading /boot/defaults/loader.conf                                                                                                       
Loading /boot/defaults/loader.conf                                                                                                       
Loading /boot/device.hints                                                                                                               
Loading /boot/loader.conf                                                                                                                
Loading /boot/loader.conf.local                                                                                                          
/                                                                                                                                        
cLoading kernel...                                                                                                                       
/boot/kernel/kernel text=0x318 text=0x9cdaa8 text=0x2e0300 data=0x181cf0 data=0x0+0x377000 0x8+0x174408+0x8+0x1a6a79/                    
Loading configured modules...                                                                                                            
/etc/hostid size=0x25                                                                                                                    
/boot/entropy size=0x1000                                                                                                                
                                                                                                                                         
Hit [Enter] to boot immediately, or any other key for command prompt.                                                                    
Booting [/boot/kernel/kernel]...                                                                                                         
Using DTB provided by EFI at 0x1feb1f000.                                                                                                
Loading splash ok                                                                                                                        
---<<BOOT>>---                                                                                                                           
Unhandled register access: pc 0xffff00000089144c syndrome 0x280500 reg 8                                                                 
                                                                                                                                         
Abort trap

Are you able to reproduce this? I can confirm that the previous commit in the stack, https://cgit.freebsd.org/src/commit/?id=4aa762f3cb97402f0345ce5112c47a303dd4107d, works just fine.

Yes, it boots successfully with those two commits applied, thanks! Please update PR 290044 once they land.