opnsense-src/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
ae
aesni
age
agp
aha
ahb
ahci
aic
aic7xxx
alc
ale
alq
am335x_dmtpps
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
ath
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
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
bxe
bytgpio r308942 broke kernel build. 2016-11-21 21:07:43 +00:00
cam
canbepm
canbus
cardbus
carp
cas
cbb
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
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
cloudabi32
cloudabi64
cm
cmx
coff
coretemp
cp
cpsw
cpuctl
cpufreq
crypto
cryptodev
cs
ct
ctau
ctl
cuse
cx
cxgb
cxgbe
dc
dcons
dcons_crom
de
dpms
dpt
drm
drm2
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
ed
efirt Create /dev/efidev to provide an ioctl interface to 2016-10-11 22:24:30 +00:00
elink
em
en
ep
epic
esp
et
evdev
ex
exca
ext2fs
fatm
fdc
fdescfs
fe
filemon
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
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
ibcs2
ichwd
ida
if_bridge
if_disc
if_edsc
if_enc
if_epair
if_gif
if_gre
if_lagg
if_me
if_ndis
if_stf
if_tap
if_tun
if_vlan
if_vxlan
igb
iir
imgact_binmisc
io
ioat
ip6_mroute_mod
ip_mroute_mod
ipdivert
ipfilter
ipfw
ipfw_nat
ipfw_nat64
ipfw_nptv6
ipmi
ipoib
ips
ipw
ipwfw
isci
iscsi
iscsi_initiator
iser
isp
ispfw
iwi
iwifw
iwm
iwmfw
iwn
iwnfw
ix
ixgb
ixl
ixlv
ixv
jme
joy
kbdmux [evdev] Add evdev support to kbdmux(4) driver 2016-11-15 04:12:19 +00:00
kgssapi
kgssapi_krb5
khelp In the TCP stack, the hhook(9) framework provides hooks for kernel modules 2016-10-12 02:16:42 +00:00
krpc
ksyms
le
lge
libalias
libiconv
libmbpool
libmchain
linprocfs
linsysfs
linux
linux64
linux_common
linuxkpi
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
mdio
mem
mfi
mii
mlx
mlx4
mlx4en
mlx4ib
mlx5
mlx5en
mly
mmc
mmcsd
mpr
mps
mpt
mqueue
mrsas
msdosfs
msdosfs_iconv
mse
msk
mthca
mvs
mwl
mwlfw
mxge
my
nand
nandfs
nandsim
ncr
nctgpio
ncv
ndis
netfpga10g
netgraph
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
nullfs
nvd
nvme
nvram
nxge
oce
opensolaris
otus
otusfw
ow
padlock
padlock_rng
patm
pccard
pcfclock
pcn
pf
pflog
pfsync
plip
pmc
pms
powermac_nvram
ppbus
ppc
ppi
pps
procfs
proto
pseudofs
pst
pty
puc
qlxgb
qlxgbe
qlxge
ral
ralfw
random_fortuna
random_other
random_yarrow
rc
rc4
rccgpio
rdma
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
scsi_low
sdhci
sdhci_pci
sem
send
sf
sfxge
sge
siba_bwn
siftr
siis
sio
sis
sk
smbfs
sn
snc
snp
sound
speaker
splash
sppp
ste
stg
stge
streams
svr4
sym
syscons
sysvipc
tcp/fastpath
tests
ti
tl
tmpfs
toecore
tpm
trm
tsec
twa
twe
tws
tx
txp
uart
ubsec
ubser
uchcom
ucycom
udf
udf_iconv
ufs
uinput
unionfs
usb
utopia
vesa
vge
viawd
videomode
virtio
vkbd
vmm
vmware
vnic
vpo
vr
vte
vx
vxge
wb
wbwd
wi
wlan
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi
wpifw
wtap
x86bios
xe
xl
zfs
zlib
Makefile [bytgpio] Fix pc98 build by disabling bytgpio module for this platform 2016-11-24 20:08:17 +00:00
Makefile.inc