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 NETLINK # netlink(4) support 35 options ROUTE_MPATH # Multipath routing support 36 options TCP_OFFLOAD # TCP offload 37 options TCP_BLACKBOX # Enhanced TCP event logging 38 options TCP_RFC7413 # TCP Fast Open 39 options SCTP_SUPPORT # Allow kldload of SCTP 40 options FFS # Berkeley Fast Filesystem 41 options SOFTUPDATES # Enable FFS soft updates support 42 options UFS_ACL # Support for access control lists 43 options UFS_DIRHASH # Improve performance on big directories 44 options UFS_GJOURNAL # Enable gjournal-based UFS journaling 45 options QUOTA # Enable disk quotas for UFS 46 options NFSCL # Network Filesystem Client 47 options NFSD # Network Filesystem Server 48 options NFSLOCKD # Network Lock Manager 49 options NFS_ROOT # NFS usable as /, requires NFSCL 50 options MSDOSFS # MSDOS Filesystem 51 options CD9660 # ISO 9660 Filesystem 52 options PROCFS # Process filesystem (requires PSEUDOFS) 53 options PSEUDOFS # Pseudo-filesystem framework 54 options TMPFS # Efficient memory filesystem 55 options GEOM_RAID # Soft RAID functionality. 56 options GEOM_LABEL # Provides labelization 57 options COMPAT_FREEBSD12 # Compatible with FreeBSD12 58 options COMPAT_FREEBSD13 # Compatible with FreeBSD13 59 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI 60 options KTRACE # ktrace(1) support 61 options STACK # stack(9) support 62 options SYSVSHM # SYSV-style shared memory 63 options SYSVMSG # SYSV-style message queues 64 options SYSVSEM # SYSV-style semaphores 65 options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions 66 options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed. 67 options KBD_INSTALL_CDEV # install a CDEV entry in /dev 68 # options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) 69 options AUDIT # Security event auditing 70 options CAPABILITY_MODE # Capsicum capability mode 71 options CAPABILITIES # Capsicum capabilities 72 options MAC # TrustedBSD MAC Framework 73 options KDTRACE_FRAME # Ensure frames are compiled in 74 options KDTRACE_HOOKS # Kernel DTrace hooks 75 options DDB_CTF # Kernel ELF linker loads CTF data 76 options FPE # Floating-point extension support 77 options RACCT # Resource accounting framework 78 options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default 79 options RCTL # Resource limits 80 options SMP 81 82 # RISC-V SBI console 83 device rcons 84 85 # pseudo devices 86 device clk 87 device hwreset 88 device syscon 89 device syscon_power 90 device riscv_syscon 91 92 # Bus drivers 93 device pci 94 95 # Block devices 96 device scbus 97 device da 98 99 # VirtIO support 100 device virtio # Generic VirtIO bus (required) 101 device virtio_pci # VirtIO PCI device 102 device vtnet # VirtIO Ethernet device 103 device virtio_blk # VirtIO Block device 104 device virtio_mmio # VirtIO MMIO bus 105 106 # NVM Express (NVMe) support 107 device nvme # base NVMe driver 108 options NVME_USE_NVD=0 # prefer the cam(4) based nda(4) driver 109 device nvd # expose NVMe namespaces as disks, depends on nvme 110 111 # USB support 112 options USB_DEBUG # enable debug msgs 113 device ohci # OHCI USB interface 114 device uhci # UHCI USB interface 115 device ehci # EHCI USB interface (USB 2.0) 116 device xhci # XHCI USB interface (USB 3.0) 117 device usb # USB Bus (required) 118 device ukbd # Keyboard 119 device umass # Disks/Mass storage - Requires scbus and da 120 121 # HID support 122 options HID_DEBUG # enable debug msgs 123 device hid # Generic HID support 124 125 # DTrace support 126 # device dtrace 127 # device dtrace_profile 128 # device dtrace_sdt 129 # device dtrace_fbt 130 # device dtrace_systrace 131 # device dtrace_prototype 132 # device dtraceall 133 134 # Serial (COM) ports 135 device uart # Generic UART driver 136 device uart_lowrisc # lowRISC UART driver 137 device uart_ns8250 # ns8250-type UART driver 138 139 # Console 140 device vt 141 device kbdmux 142 143 # RTC 144 device da9063_rtc # Dialog Semiconductor DA9063 RTC 145 device goldfish_rtc # QEMU RTC 146 147 # Ethernet drivers 148 device cgem # Cadence GEM Gigabit Ethernet device 149 device miibus # MII bus support 150 device xae # Xilinx AXI Ethernet MAC 151 152 # DMA support 153 device xdma # DMA interface 154 device axidma # Xilinx AXI DMA Controller 155 156 # GPIO 157 device gpio 158 159 # SPI 160 device spibus 161 device spigen 162 163 # Power management controllers 164 device da9063_pmic # Dialog Semiconductor DA9063 PMIC 165 166 # Uncomment for memory disk 167 # options MD_ROOT 168 # options MD_ROOT_SIZE=32768 # 32MB ram disk 169 # makeoptions MFS_IMAGE=/path/to/img 170 # options ROOTDEVNAME=\"ufs:/dev/md0\" 171 172 # Uncomment for virtio block device 173 # options ROOTDEVNAME=\"ufs:/dev/vtbd0\" 174 175 # Debugging support. Always need this: 176 options KDB # Enable kernel debugger support. 177 options KDB_TRACE # Print a stack trace for a panic. 178 # For full debugger support use (turn off in stable branch): 179 options DDB # Support DDB. 180 options GDB # Support remote GDB. 181 options DEADLKRES # Enable the deadlock resolver 182 options INVARIANTS # Enable calls of extra sanity checking 183 options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS 184 options WITNESS # Enable checks to detect deadlocks and cycles 185 options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed 186 options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones 187 options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence 188 # options EARLY_PRINTF 189 options VERBOSE_SYSINIT=0 # Support debug.verbose_sysinit, off by default 190 191 # Kernel dump features. 192 options ZSTDIO # zstd-compressed kernel and user dumps 193 194 # Pseudo devices. 195 device crypto # core crypto support 196 device loop # Network loopback 197 device ether # Ethernet support 198 device vlan # 802.1Q VLAN support 199 device tuntap # Packet tunnel. 200 device md # Memory "disks" 201 device gif # IPv6 and IPv4 tunneling 202 device firmware # firmware assist module 203 204 # The `bpf' device enables the Berkeley Packet Filter. 205 # Be aware of the administrative consequences of enabling this! 206 # Note that 'bpf' is required for DHCP. 207 device bpf # Berkeley packet filter 208 209 # Flattened Device Tree 210 options FDT 211 makeoptions MODULES_EXTRA+="dtb/sifive" 212 213 # I2C support 214 device iicbus # Bus support, required for iicoc below. 215 device iicoc # OpenCores I2C controller support 216 217 # Allwinner device drivers 218 device aw_wdog # Allwinner Watchdog 219 files "../allwinner/files.allwinner" 220 221 # SiFive device drivers 222 device fu740_pci_dw 223 device sifive_gpio 224 device sifive_spi 225 include "../sifive/std.sifive" 226