freebsd-skq/sys/modules
Landon J. Fuller 77cb4d3e50 bhnd(4): Unify NVRAM/SPROM parsing, implement compact SPROM layout encoding.
- Defined an abstract NVRAM I/O API (bhnd_nvram_io), decoupling NVRAM/SPROM
  parsing from the actual underlying NVRAM data provider (e.g. CFE firmware
  devices).
- Defined an abstract NVRAM data API (bhnd_nvram_data), decoupling
  higher-level NVRAM operations (indexed lookup, data conversion, etc) from
  the underlying NVRAM file format parsing/serialization.
- Implemented a new high-level bhnd_nvram_store API, providing indexed
  variable lookup, pending write tracking, etc on top of an arbitrary
  bhnd_nvram_data instance.
- Migrated all bhnd(4) NVRAM device drivers to the common bhnd_nvram_store
  API.
- Implemented a common bhnd_nvram_val API for parsing/encoding NVRAM
  variable values, including applying format-specific behavior when
  converting to/from the NVRAM string representations.
- Dropped the now unnecessary bhnd_nvram driver, and moved the
  broadcom/mips-specific CFE NVRAM driver out into sys/mips/broadcom.
- Implemented a new nvram_map file format:
        - Variable definitions are now defined separately from the SPROM
          layout. This will also allow us to define CIS tuple NVRAM
          mappings referencing the common NVRAM variable definitions.
        - Variables can now be defined within arbitrary named groups.
        - Textual descriptions and help information can be defined inline
          for both variables and variable groups.
        - Implemented a new, compact encoding of SPROM image layout
          offsets.
- Source-level (but not build system) support for building the NVRAM file
  format APIs (bhnd_nvram_io, bhnd_nvram_data, bhnd_nvram_store) as a
  userspace library.

The new compact SPROM image layout encoding is loosely modeled on Apple
dyld compressed LINKEDIT symbol binding opcodes; it provides a compact
state-machine encoding of the mapping between NVRAM variables and the SPROM
image offset, mask, and shift instructions necessary to decode or encode
the SPROM variable data.

The compact encoding reduces the size of the generated SPROM layout data
from roughly 60KB to 3KB. The sequential nature SPROM layout opcode tables
also simplify iteration of the SPROM variables, as it's no longer
neccessary to iterate the full NVRAM variable definition table, but
instead simply scan the SPROM revision's layout opcode table.

Approved by:    adrian (mentor)
Differential Revision:  https://reviews.freebsd.org/D8645
2016-11-26 23:22:32 +00:00
..
3dfx
3dfx_linux
aac
aacraid
accf_data
accf_dns
accf_http
acl_nfs4
acl_posix1e
acpi Sort SUBDIR. 2016-04-27 19:38:24 +00:00
ae
aesni improve dependencies for this module a bit... not great, but at 2015-07-04 08:16:32 +00:00
age
agp Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
aha
ahb
ahci ahci_generic.c needs ofw_bus_if.h, add it to the module. 2015-12-08 20:05:27 +00:00
aic
aic7xxx WITH_META_MODE: Avoid false-positive error due to missing .meta with build commands. 2016-06-29 22:39:22 +00:00
alc
ale
alq
am335x_dmtpps Add required foo_if.h files to SRCS to fix build errors. 2015-08-19 02:37:30 +00:00
amdsbwd
amdtemp
amr
an
aout
apm
ar71xx
arcmsr
arcnet
armv8crypto Add accelerated AES with using the ARMv8 crypto instructions. This is based 2016-11-21 11:18:00 +00:00
asmc
ata Remove from legacy ata(4) driver support for hardware, supported by newer 2015-03-24 18:09:07 +00:00
ath [ath] commit initial bluetooth coexistence support for the MCI NICs. 2016-06-02 00:51:36 +00:00
ath_ahb
ath_pci
autofs
auxio
bce
bfe
bge
bhnd bhnd(4): Unify NVRAM/SPROM parsing, implement compact SPROM layout encoding. 2016-11-26 23:22:32 +00:00
bios Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
bktr
bm
bnxt New driver for Broadcom NetXtreme-C and NetXtreme-E devices. 2016-11-15 20:35:29 +00:00
bridgestp
bwi
bwn Properly include the 802.11n PHY support files when the BWM_GPL_PHY 2016-10-11 22:32:12 +00:00
bwn_pci bwn, bwn_pci, siba_bwn: add missing opt_*.h dependencies. 2016-06-08 20:01:10 +00:00
bxe 1. Removed -Wno-shift-negative-value from Makefile 2016-04-25 18:55:01 +00:00
bytgpio r308942 broke kernel build. 2016-11-21 21:07:43 +00:00
cam Make cam.ko loadable. 2016-07-22 06:21:03 +00:00
canbepm
canbus
cardbus On x86 force NEW_PCIB, since that's the default. While this option 2015-01-14 05:41:28 +00:00
carp
cas
cbb On x86 force NEW_PCIB, since that's the default. While this option 2015-01-14 05:41:28 +00:00
cc In the TCP stack, the hhook(9) framework provides hooks for kernel modules 2016-10-12 02:16:42 +00:00
cd9660
cd9660_iconv
ce Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
cfi
chromebook_platform add iic interface to ig4 driver, move isl and cyapa to iicbus 2016-10-30 12:15:33 +00:00
ciss
cloudabi Provide the CloudABI vDSO to its executables. 2016-08-10 21:02:41 +00:00
cloudabi32 Make the cloudabi32 kernel module available on ARMv6. 2016-09-22 12:08:26 +00:00
cloudabi64 Use both the MACHINE and MACHINE_CPUARCH directories for finding sources. 2016-08-29 07:48:35 +00:00
cm
cmx
coff
coretemp
cp
cpsw
cpuctl
cpufreq
crypto Import the skein hashing algorithm, based on the threefish block cipher 2016-05-29 01:15:36 +00:00
cryptodev Remove unneeded includes of opt_kdtrace.h. 2015-11-22 02:01:01 +00:00
cs
ct
ctau
ctl Reimplement CTL High Availability. 2015-09-10 12:40:31 +00:00
cuse
cx
cxgb Finish process of moving the LinuxKPI module into the default kernel build. 2015-10-29 08:28:39 +00:00
cxgbe cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
dc
dcons
dcons_crom
de
dpms
dpt Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
drm The radeon DRI module doesn't really work correctly on powerpc, so don't build 2015-01-03 22:36:18 +00:00
drm2 drm/i915: Update to match Linux 3.8.13 2016-03-08 20:33:02 +00:00
dtb Build and install nanopi-neo.dts and orangepi-plus-2e.dts 2016-11-20 19:39:55 +00:00
dtrace Add full softfloat and hardfloat support for RISC-V. 2016-11-16 15:21:32 +00:00
dummynet Now that PIE is free of runtime floating point, revert r300853 to 2016-05-29 07:29:35 +00:00
ed Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
efirt Create /dev/efidev to provide an ioctl interface to 2016-10-11 22:24:30 +00:00
elink
em Include opt_em.h now that there are actual kernel compile options for em(4). 2015-06-09 14:31:18 +00:00
en
ep Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
epic
esp
et
evdev Modularize evdev 2016-10-02 03:20:31 +00:00
ex
exca
ext2fs ext2fs: Bring back the htree dir_index implementation. 2016-01-21 14:50:28 +00:00
fatm
fdc
fdescfs
fe
filemon DIRDEPS_BUILD: Regenerate without local dependencies. 2016-02-24 17:20:11 +00:00
firewire
firmware
fuse
fxp
gem
geom Fix alignment issues on MIPS: align the pointers properly. 2016-10-31 16:55:14 +00:00
glxiic
glxsb
gpio Refactor FDT part of gpioled driver 2016-11-07 21:15:39 +00:00
hatm
hifn
hme
hpt27xx
hptiop
hptmv
hptnr
hptrr
hwpmc Add aarch64 files to the hwpmc(4) module build 2015-10-23 21:09:28 +00:00
hyperv hyperv/pcib: change the file name: pcib.c -> vmbus_pcib.c 2016-11-18 06:44:18 +00:00
i2c add iic interface to ig4 driver, move isl and cyapa to iicbus 2016-10-30 12:15:33 +00:00
ibcore Finish process of moving the LinuxKPI module into the default kernel build. 2015-10-29 08:28:39 +00:00
ibcs2
ichwd
ida
if_bridge
if_disc
if_edsc
if_enc Overhaul if_enc(4) and make it loadable in run-time. 2015-11-25 07:31:59 +00:00
if_epair
if_gif Clean up a bit of the INET/INET6 mess wrt options. 2015-02-18 15:25:25 +00:00
if_gre Clean up a bit of the INET/INET6 mess wrt options. 2015-02-18 15:25:25 +00:00
if_lagg
if_me
if_ndis
if_stf Build if_stf(4) module only when both INET and INET6 support are enabled. 2015-07-30 10:26:43 +00:00
if_tap
if_tun
if_vlan
if_vxlan
igb Misc. build: minor spelling fixes. 2016-05-03 22:01:48 +00:00
iir
imgact_binmisc
io
ioat Import ioat(4) driver 2015-08-24 19:32:03 +00:00
ip6_mroute_mod
ip_mroute_mod
ipdivert
ipfilter Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
ipfw Move logging via BPF support into separate file. 2016-08-13 15:41:04 +00:00
ipfw_nat
ipfw_nat64 Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
ipfw_nptv6 Add ipfw_nptv6 module that implements Network Prefix Translation for IPv6 2016-07-18 19:46:31 +00:00
ipmi
ipoib Don't explicitly set INET/INET6 in the Makefile; opt_inet.h and opt_inet6.h 2015-11-22 23:07:07 +00:00
ips Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
ipw
ipwfw
isci
iscsi Build iscsi(4) with ICL_KERNEL_PROXY when building with WITH_OFED. 2016-05-27 11:37:56 +00:00
iscsi_initiator
iser Bring in the Mellanox implementation of iSER (iSCSI over RDMA) initiator, 2016-05-26 09:49:29 +00:00
isp
ispfw Rip off target mode support for parallel SCSI QLogic adapters. 2015-11-23 10:06:19 +00:00
iwi
iwifw
iwm [iwm] add if_iwm_led.c into the build. 2016-06-02 04:42:45 +00:00
iwmfw Update iwmfw(4) to include support for 8260 series units and update 2016-07-25 23:05:25 +00:00
iwn
iwnfw
ix Add some missing dependencies on pci_iov_if.h. 2016-01-20 16:45:39 +00:00
ixgb
ixl ixl(4): Update to ixl-1.6.6-k. 2016-08-07 18:12:36 +00:00
ixlv ixl(4): Update to ixl-1.6.6-k. 2016-08-07 18:12:36 +00:00
ixv Add some missing dependencies on pci_iov_if.h. 2016-01-20 16:45:39 +00:00
jme
joy
kbdmux [evdev] Add evdev support to kbdmux(4) driver 2016-11-15 04:12:19 +00:00
kgssapi Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
kgssapi_krb5 Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
khelp In the TCP stack, the hhook(9) framework provides hooks for kernel modules 2016-10-12 02:16:42 +00:00
krpc
ksyms Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
le
lge
libalias
libiconv Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
libmbpool
libmchain
linprocfs Introduce a new module linux_common.ko which is intended for the 2015-05-24 15:51:18 +00:00
linsysfs Introduce a new module linux_common.ko which is intended for the 2015-05-24 15:51:18 +00:00
linux Fix a copy/paste bug introduced during X86_64 Linuxulator work. 2016-07-10 08:22:04 +00:00
linux64 opt_apic.h is only used on i386. 2016-07-27 20:45:00 +00:00
linux_common Fix a copy/paste bug introduced during X86_64 Linuxulator work. 2016-07-10 08:22:04 +00:00
linuxkpi Finish process of moving the LinuxKPI module into the default kernel build. 2015-10-29 08:28:39 +00:00
lmc
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo
md For the MD_ROOT option don't inject /dev/md0 as root dev when ROOTDEVNAME 2016-03-09 19:36:25 +00:00
mdio [mdio] migrate mdiobus out of etherswitch and into a top-level device of its own. 2015-12-26 02:31:39 +00:00
mem
mfi
mii
mlx
mlx4 Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
mlx4en Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
mlx4ib Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
mlx5 opt_random.h was removed in r287558 for opt_global.h 2016-07-27 20:44:53 +00:00
mlx5en Switch to the new block based LRO input function for the mlx5en 2016-08-08 16:22:16 +00:00
mly
mmc
mmcsd
mpr Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
mps Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
mpt
mqueue
mrsas
msdosfs
msdosfs_iconv
mse
msk
mthca Finish process of moving the LinuxKPI module into the default kernel build. 2015-10-29 08:28:39 +00:00
mvs Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
mwl
mwlfw
mxge
my
nand Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
nandfs
nandsim Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
ncr
nctgpio Add support for the Nuvoton NCT5104D. 2016-03-31 04:57:38 +00:00
ncv
ndis
netfpga10g
netgraph netgraph module for reconstructing checksums 2016-08-01 12:09:04 +00:00
netmap Import the current version of netmap, aligned with the one on github. 2016-10-16 14:13:32 +00:00
nfe
nfscl
nfscommon
nfsd
nfslock
nfslockd
nfssvc
nge
nmdm
nsp
ntb NewBus'ify NTB subsystem. 2016-07-09 11:20:42 +00:00
nullfs
nvd
nvme
nvram
nxge Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
oce Rename the kld for oce(4) to if_oce.ko. ifconfig(8) has special knowledge 2015-04-24 14:47:53 +00:00
opensolaris Move implementations of uread() and uwrite() to the illumos compat layer. 2016-09-24 21:40:14 +00:00
otus Fix make depend in sys/modules/otus 2015-10-01 05:56:38 +00:00
otusfw Add an initial driver for the AR9170 series draft-11n hardware from 2015-09-26 07:08:35 +00:00
ow New 1-Wire bus implementation. 1-Wire controller is abstracted, though 2015-08-27 23:33:38 +00:00
padlock
padlock_rng
patm
pccard
pcfclock
pcn
pf
pflog Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
pfsync Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
plip
pmc
pms Driver 'pmspcv' added. Supports PMC-Sierra PM8001/8081/8088/8089/8074/8076/8077 SAS/SATA HBA Controllers. 2015-07-07 13:17:02 +00:00
powermac_nvram
ppbus
ppc
ppi
pps
procfs
proto Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
pseudofs Hide vfs.pfs.trace variable if it is not used. 2015-05-24 18:11:22 +00:00
pst
pty
puc Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
qlxgb
qlxgbe Updated Copyright information 2015-06-23 22:22:36 +00:00
qlxge
ral
ralfw
random_fortuna Add DEV_RANDOM pseudo-option and use it to "include out" random(4) 2015-08-17 07:36:12 +00:00
random_other Add DEV_RANDOM pseudo-option and use it to "include out" random(4) 2015-08-17 07:36:12 +00:00
random_yarrow Add DEV_RANDOM pseudo-option and use it to "include out" random(4) 2015-08-17 07:36:12 +00:00
rc
rc4
rccgpio Add the GPIO driver for the ADI Engineering RCC-VE and RCC-DFF/DFFv2. 2015-08-18 21:05:56 +00:00
rdma Finish process of moving the LinuxKPI module into the default kernel build. 2015-10-29 08:28:39 +00:00
rdrand_rng
re
rl
rndtest
rp
rpi_ft5406 [rpi_ft5406] Add missing dependency on mbox_if.h 2016-11-12 19:05:41 +00:00
rtwn rtwn(4), urtwn(4): merge common code, add support for 11ac devices. 2016-10-17 20:38:24 +00:00
rtwn_pci rtwn(4), urtwn(4): merge common code, add support for 11ac devices. 2016-10-17 20:38:24 +00:00
rtwn_usb rtwn(4), urtwn(4): merge common code, add support for 11ac devices. 2016-10-17 20:38:24 +00:00
rtwnfw rtwn(4), urtwn(4): merge common code, add support for 11ac devices. 2016-10-17 20:38:24 +00:00
s3
safe
sbni
scc Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
scsi_low
sdhci
sdhci_pci
sem
send
sf
sfxge sfxge(4): prepare sfxge to be RSS API aware 2016-06-06 09:04:20 +00:00
sge
siba_bwn bwn, bwn_pci, siba_bwn: add missing opt_*.h dependencies. 2016-06-08 20:01:10 +00:00
siftr
siis
sio
sis
sk
smbfs
sn
snc
snp
sound
speaker
splash
sppp
ste
stg
stge
streams Fix streams and svr4 module dependency. Both modules are complaining about 2016-04-23 20:29:55 +00:00
svr4 Fix streams and svr4 module dependency. Both modules are complaining about 2016-04-23 20:29:55 +00:00
sym
syscons 17 years and change after I wrote warp_saver, here's a simple plasma effect 2016-01-01 04:04:40 +00:00
sysvipc
tcp/fastpath Cleanup unneded include "opt_ipfw.h". 2016-06-09 05:48:34 +00:00
tests Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
ti
tl
tmpfs
toecore
tpm
trm
tsec
twa
twe
tws
tx
txp
uart Build ofw_bus_if.h for modules for RISC-V. 2016-07-28 13:21:45 +00:00
ubsec
ubser
uchcom
ucycom
udf
udf_iconv
ufs
uinput Modularize evdev 2016-10-02 03:20:31 +00:00
unionfs
usb Add evdev support to ums(4) 2016-09-21 18:52:03 +00:00
utopia
vesa
vge
viawd
videomode Import videomode code from NetBSD which is needed by USB display link drivers. 2015-02-15 11:37:40 +00:00
virtio Kill MFILES and find things automatically. It turned out to be only 2015-07-03 01:50:26 +00:00
vkbd
vmm Use lapic_ipi_alloc() to dynamically allocate IPI slots needed by bhyve when 2015-03-14 02:32:08 +00:00
vmware
vnic Allow building VNIC as a module 2016-05-20 11:00:06 +00:00
vpo
vr
vte
vx Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
vxge
wb
wbwd
wi
wlan Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi Add WPI_DEBUG option. 2015-02-07 23:09:03 +00:00
wpifw
wtap Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
x86bios
xe
xl
zfs Connect the SHA-512t256 and Skein hashing algorithms to ZFS 2016-05-31 04:12:14 +00:00
zlib Move zlib.c from net to libkern. 2015-04-22 18:15:18 +00:00
Makefile [bytgpio] Fix pc98 build by disabling bytgpio module for this platform 2016-11-24 20:08:17 +00:00
Makefile.inc Build all of sys/modules with SUBDIR_PARALLEL. 2015-11-10 17:15:36 +00:00