Skip to content

Commit 88a90c2

Browse files
author
olevole
committed
improve qemu/riscv64/aarch support
1 parent ad5f7b3 commit 88a90c2

19 files changed

+953
-130
lines changed

ObsoleteFiles

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ etc/defaults/vm-linux-cloud-CentOS-stream-8-x86_64.conf
9494
etc/defaults/vm-linux-cloud-Rocky-8-x86_64.conf
9595
etc/defaults/vm-linux-cloud-Debian-x86-10.conf
9696
etc/defaults/vm-linux-cloud-Kali-2022-amd64.conf
97+
etc/defaults/vm-freebsd-FreeBSD-img-aarch64-14.2.conf
98+
etc/defaults/FreeBSD-kernel-GENERIC-riscv-13.1
9799
"
98100

99101
OLD_DIRS="\

bhyvectl/bpcibus

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,13 @@ case "${mode}" in
140140
get)
141141
[ -z "${device_name}" ] && err 1 "${N2_COLOR}device_name= ${N1_COLOR} is mandatory${N0_COLOR}"
142142
if [ "${device_name}" = "virtio-net" ]; then
143-
case "${platform}" in
144-
Linux)
145-
device_name="virtio-net-pci"
146-
;;
147-
esac
143+
# case "${platform}" in
144+
# Linux)
145+
# device_name="virtio-net-pci"
146+
# ;;
147+
# esac
148148
fi
149-
_sql="SELECT ${select} FROM pcibus WHERE pcislot_name='${device_name}'"
149+
_sql="SELECT ${select} FROM pcibus WHERE pcislot_name='${device_name}' OR pcislot_name='virtio-net-pci'"
150150
sqllistdelimer=" "
151151
cbsdsqlro ${jailsysdir}/${jname}/local.sqlite ${_sql}
152152
;;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
include GENERIC
2+
3+
nooptions KDB # Enable kernel debugger support.
4+
nooptions KDB_TRACE # Print a stack trace for a panic.
5+
nooptions DDB # Support DDB.
6+
nooptions GDB # Support remote GDB.
7+
nooptions DEADLKRES # Enable the deadlock resolver
8+
nooptions INVARIANTS # Enable calls of extra sanity checking
9+
nooptions INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
10+
nooptions WITNESS # Enable checks to detect deadlocks and cycles
11+
nooptions WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
12+
nooptions MALLOC_DEBUG_MAXZONES
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
include GENERIC
2+
include "../../conf/std.nodebug"
3+
4+
ident GENERIC-NODEBUG

etc/defaults/FreeBSD-kernel-GENERIC-riscv-13.1

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
#
2+
# GENERIC -- Generic kernel configuration file for FreeBSD/RISC-V
3+
#
4+
# For more information on this file, please read the config(5) manual page,
5+
# and/or the handbook section on Kernel Configuration Files:
6+
#
7+
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
8+
#
9+
# The handbook is also available locally in /usr/share/doc/handbook
10+
# if you've installed the doc distribution, otherwise always see the
11+
# FreeBSD World Wide Web server (https://www.FreeBSD.org/) for the
12+
# latest information.
13+
#
14+
# An exhaustive list of options and more detailed explanations of the
15+
# device lines is also present in the ../../conf/NOTES and NOTES files.
16+
# If you are in doubt as to the purpose or necessity of a line, check first
17+
# in NOTES.
18+
#
19+
# $FreeBSD$
20+
21+
cpu RISCV
22+
ident GENERIC
23+
24+
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
25+
makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
26+
27+
options SCHED_ULE # ULE scheduler
28+
options PREEMPTION # Enable kernel thread preemption
29+
options VIMAGE # Subsystem virtualization, e.g. VNET
30+
options INET # InterNETworking
31+
options INET6 # IPv6 communications protocols
32+
options TCP_HHOOK # hhook(9) framework for TCP
33+
options IPSEC_SUPPORT # Allow kldload of ipsec and tcpmd5
34+
options ROUTE_MPATH # Multipath routing support
35+
options TCP_OFFLOAD # TCP offload
36+
options SCTP_SUPPORT # Allow kldload of SCTP
37+
options FFS # Berkeley Fast Filesystem
38+
options SOFTUPDATES # Enable FFS soft updates support
39+
options UFS_ACL # Support for access control lists
40+
options UFS_DIRHASH # Improve performance on big directories
41+
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
42+
options QUOTA # Enable disk quotas for UFS
43+
options NFSCL # Network Filesystem Client
44+
options NFSD # Network Filesystem Server
45+
options NFSLOCKD # Network Lock Manager
46+
options NFS_ROOT # NFS usable as /, requires NFSCL
47+
options MSDOSFS # MSDOS Filesystem
48+
options CD9660 # ISO 9660 Filesystem
49+
options PROCFS # Process filesystem (requires PSEUDOFS)
50+
options PSEUDOFS # Pseudo-filesystem framework
51+
options TMPFS # Efficient memory filesystem
52+
options GEOM_PART_GPT # GUID Partition Tables.
53+
options GEOM_RAID # Soft RAID functionality.
54+
options GEOM_LABEL # Provides labelization
55+
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
56+
options KTRACE # ktrace(1) support
57+
options STACK # stack(9) support
58+
options SYSVSHM # SYSV-style shared memory
59+
options SYSVMSG # SYSV-style message queues
60+
options SYSVSEM # SYSV-style semaphores
61+
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
62+
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
63+
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
64+
# options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
65+
options AUDIT # Security event auditing
66+
options CAPABILITY_MODE # Capsicum capability mode
67+
options CAPABILITIES # Capsicum capabilities
68+
options MAC # TrustedBSD MAC Framework
69+
options KDTRACE_FRAME # Ensure frames are compiled in
70+
options KDTRACE_HOOKS # Kernel DTrace hooks
71+
options DDB_CTF # Kernel ELF linker loads CTF data
72+
options FPE # Floating-point extension support
73+
options RACCT # Resource accounting framework
74+
options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
75+
options RCTL # Resource limits
76+
options SMP
77+
options INTRNG
78+
79+
# RISC-V SBI console
80+
device rcons
81+
82+
# EXT_RESOURCES pseudo devices
83+
options EXT_RESOURCES
84+
device clk
85+
device hwreset
86+
device syscon
87+
device syscon_power
88+
device riscv_syscon
89+
90+
# Bus drivers
91+
device pci
92+
93+
# Block devices
94+
device scbus
95+
device da
96+
97+
# VirtIO support
98+
device virtio # Generic VirtIO bus (required)
99+
device virtio_pci # VirtIO PCI device
100+
device vtnet # VirtIO Ethernet device
101+
device virtio_blk # VirtIO Block device
102+
device virtio_mmio # VirtIO MMIO bus
103+
104+
# NVM Express (NVMe) support
105+
device nvme # base NVMe driver
106+
options NVME_USE_NVD=0 # prefer the cam(4) based nda(4) driver
107+
device nvd # expose NVMe namespaces as disks, depends on nvme
108+
109+
# USB support
110+
options USB_DEBUG # enable debug msgs
111+
device ohci # OHCI USB interface
112+
device uhci # UHCI USB interface
113+
device ehci # EHCI USB interface (USB 2.0)
114+
device xhci # XHCI USB interface (USB 3.0)
115+
device usb # USB Bus (required)
116+
device ukbd # Keyboard
117+
device umass # Disks/Mass storage - Requires scbus and da
118+
119+
# HID support
120+
options HID_DEBUG # enable debug msgs
121+
device hid # Generic HID support
122+
123+
# DTrace support
124+
# device dtrace
125+
# device dtrace_profile
126+
# device dtrace_sdt
127+
# device dtrace_fbt
128+
# device dtrace_systrace
129+
# device dtrace_prototype
130+
# device dtraceall
131+
132+
# Serial (COM) ports
133+
device uart # Generic UART driver
134+
device uart_lowrisc # lowRISC UART driver
135+
device uart_ns8250 # ns8250-type UART driver
136+
137+
# RTC
138+
device goldfish_rtc # QEMU RTC
139+
140+
# Ethernet drivers
141+
device cgem # Cadence GEM Gigabit Ethernet device
142+
device miibus # MII bus support
143+
device xae # Xilinx AXI Ethernet MAC
144+
145+
# DMA support
146+
device xdma # DMA interface
147+
device axidma # Xilinx AXI DMA Controller
148+
149+
# GPIO
150+
device gpio
151+
152+
# SPI
153+
device spibus
154+
device spigen
155+
156+
# Uncomment for memory disk
157+
# options MD_ROOT
158+
# options MD_ROOT_SIZE=32768 # 32MB ram disk
159+
# makeoptions MFS_IMAGE=/path/to/img
160+
# options ROOTDEVNAME=\"ufs:/dev/md0\"
161+
162+
# Uncomment for virtio block device
163+
# options ROOTDEVNAME=\"ufs:/dev/vtbd0\"
164+
165+
# Debugging support. Always need this:
166+
options KDB # Enable kernel debugger support.
167+
options KDB_TRACE # Print a stack trace for a panic.
168+
# For full debugger support use (turn off in stable branch):
169+
options DDB # Support DDB.
170+
# options GDB # Support remote GDB.
171+
options DEADLKRES # Enable the deadlock resolver
172+
options INVARIANTS # Enable calls of extra sanity checking
173+
options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
174+
options WITNESS # Enable checks to detect deadlocks and cycles
175+
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
176+
options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
177+
# options EARLY_PRINTF
178+
options VERBOSE_SYSINIT=0 # Support debug.verbose_sysinit, off by default
179+
180+
# Kernel dump features.
181+
options ZSTDIO # zstd-compressed kernel and user dumps
182+
183+
# Pseudo devices.
184+
device crypto # core crypto support
185+
device loop # Network loopback
186+
device ether # Ethernet support
187+
device vlan # 802.1Q VLAN support
188+
device tuntap # Packet tunnel.
189+
device md # Memory "disks"
190+
device gif # IPv6 and IPv4 tunneling
191+
device firmware # firmware assist module
192+
193+
# The `bpf' device enables the Berkeley Packet Filter.
194+
# Be aware of the administrative consequences of enabling this!
195+
# Note that 'bpf' is required for DHCP.
196+
device bpf # Berkeley packet filter
197+
198+
# Flattened Device Tree
199+
options FDT
200+
makeoptions MODULES_EXTRA+="dtb/sifive"
201+
202+
# SiFive device drivers
203+
device fu740_pci_dw
204+
device sifive_gpio
205+
device sifive_spi
206+
include "../sifive/std.sifive"

0 commit comments

Comments
 (0)