freebsd-dev/sys/arm/conf/NOTES

83 lines
2.2 KiB
Plaintext
Raw Normal View History

# arm-specific changes for doing a LINT build.
# $FreeBSD$
machine arm armv7
cpu CPU_CORTEXA
cpu CPU_MV_PJ4B
makeoptions CONF_CFLAGS+="-march=armv7a"
# Add options for armv7 that are not in sys/conf/NOTES...
options ARM_L2_PIPT # Only L2 PIPT is supported
options FDT # Flattened device tree support
options FREEBSD_BOOT_LOADER # Process metadata passed from loader(8)
options INTRNG # Include INTRNG framework
options LINUX_BOOT_ABI # Process metadata passed from U-Boot
options PLATFORM # Include platform_if support
options SMP # Nearly all v7 SoCs are multicore
options VFP # Enable floating point hardware support
# NOTE: dtrace introduces CDDL-licensed components into the kernel
device dtrace # dtrace core
device dtraceall # include all dtrace modules
options KDTRACE_HOOKS
# Add misc devices which are specific to various arm platforms...
device generic_timer # ARM Generic Timer
device gic # Interrupt controller
device gpio # gpio interface and bus
device mpcore_timer # ARM MPCore Timer
device pl310 # PL310 L2 cache controller
device pl330 # ARM PL330 dma controller
device pmu # PMU support (for CCNT).
device twsi # i2c controller on Marvel and Allwinner
device xdma # xDMA framework for SoC on-chip dma controllers
# Add EXT_RESOURCES pseudo devices...
options EXT_RESOURCES
device clk
device phy
device hwreset
device nvmem
device regulator
device syscon
# Undo options from sys/conf/NOTES that we do not want...
nooptions COMPAT_FREEBSD4
nooptions COMPAT_FREEBSD5
nooptions COMPAT_FREEBSD6
nooptions COMPAT_FREEBSD7
nooptions COMPAT_FREEBSD9
nooptions PPC_PROBE_CHIPSET
nooptions MAXCPU # value is set in machine/param.h
nodevice sym
nodevice ccr
nodevice cxgbe
Chelsio T4/T5 VF driver. The cxgbev/cxlv driver supports Virtual Function devices for Chelsio T4 and T4 adapters. The VF devices share most of their code with the existing PF4 driver (cxgbe/cxl) and as such the VF device driver currently depends on the PF4 driver. Similar to the cxgbe/cxl drivers, the VF driver includes a t4vf/t5vf PCI device driver that attaches to the VF device. It then creates child cxgbev/cxlv devices representing ports assigned to the VF. By default, the PF driver assigns a single port to each VF. t4vf_hw.c contains VF-specific routines from the shared code used to fetch VF-specific parameters from the firmware. t4_vf.c contains the VF-specific PCI device driver and includes its own attach routine. VF devices are required to use a different firmware request when transmitting packets (which in turn requires a different CPL message to encapsulate messages). This alternate firmware request does not permit chaining multiple packets in a single message, so each packet results in a firmware request. In addition, the different CPL message requires more detailed information when enabling hardware checksums, so parse_pkt() on VF devices must examine L2 and L3 headers for all packets (not just TSO packets) for VF devices. Finally, L2 checksums on non-UDP/non-TCP packets do not work reliably (the firmware trashes the IPv4 fragment field), so IPv4 checksums for such packets are calculated in software. Most of the other changes in the non-VF-specific code are to expose various variables and functions private to the PF driver so that they can be used by the VF driver. Note that a limited subset of cxgbetool functions are supported on VF devices including register dumps, scheduler classes, and clearing of statistics. In addition, TOE is not supported on VF devices, only for the PF interfaces. Reviewed by: np MFC after: 2 months Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7599
2016-09-07 18:13:57 +00:00
nodevice cxgbev
nodevice snd_cmi
nodevice mpr
nodevice mps
# Build SOC-specific modules...
makeoptions MODULES_EXTRA+="allwinner"
makeoptions MODULES_EXTRA+="arm_ti"
makeoptions MODULES_EXTRA+="imx"
# Build dtb files...
makeoptions MODULES_EXTRA+="dtb/allwinner"
makeoptions MODULES_EXTRA+="dtb/am335x"
makeoptions MODULES_EXTRA+="dtb/imx6"
makeoptions MODULES_EXTRA+="dtb/nvidia"
makeoptions MODULES_EXTRA+="dtb/omap4"
makeoptions MODULES_EXTRA+="dtb/rpi"
makeoptions MODULES_EXTRA+="dtb/zynq"