2011-11-08 16:58:59 +01:00
|
|
|
# This module enables all hardware supported by NixOS: i.e., all
|
|
|
|
# firmware is included, and all devices from which one may boot are
|
|
|
|
# enabled in the initrd. Its primary use is in the NixOS installation
|
|
|
|
# CDs.
|
|
|
|
|
2021-01-13 14:02:30 +01:00
|
|
|
{ pkgs, lib,... }:
|
|
|
|
let
|
|
|
|
platform = pkgs.stdenv.hostPlatform;
|
|
|
|
in
|
2011-11-08 16:58:59 +01:00
|
|
|
{
|
|
|
|
|
|
|
|
# The initrd has to contain any module that might be necessary for
|
2014-08-12 20:00:01 +02:00
|
|
|
# supporting the most important parts of HW like drives.
|
2011-11-08 16:58:59 +01:00
|
|
|
boot.initrd.availableKernelModules =
|
2021-01-13 15:22:41 +01:00
|
|
|
[ # SATA/PATA support.
|
2011-11-08 16:58:59 +01:00
|
|
|
"ahci"
|
2021-01-13 15:22:41 +01:00
|
|
|
|
2011-11-08 16:58:59 +01:00
|
|
|
"ata_piix"
|
|
|
|
|
|
|
|
"sata_inic162x" "sata_nv" "sata_promise" "sata_qstor"
|
2021-01-13 15:22:41 +01:00
|
|
|
"sata_sil" "sata_sil24" "sata_sis" "sata_svw" "sata_sx4"
|
2011-11-08 16:58:59 +01:00
|
|
|
"sata_uli" "sata_via" "sata_vsc"
|
|
|
|
|
2017-12-29 11:36:44 +01:00
|
|
|
"pata_ali" "pata_amd" "pata_artop" "pata_atiixp" "pata_efar"
|
2011-11-08 16:58:59 +01:00
|
|
|
"pata_hpt366" "pata_hpt37x" "pata_hpt3x2n" "pata_hpt3x3"
|
|
|
|
"pata_it8213" "pata_it821x" "pata_jmicron" "pata_marvell"
|
|
|
|
"pata_mpiix" "pata_netcell" "pata_ns87410" "pata_oldpiix"
|
|
|
|
"pata_pcmcia" "pata_pdc2027x" "pata_qdi" "pata_rz1000"
|
2017-12-29 11:36:44 +01:00
|
|
|
"pata_serverworks" "pata_sil680" "pata_sis"
|
2011-11-08 16:58:59 +01:00
|
|
|
"pata_sl82c105" "pata_triflex" "pata_via"
|
|
|
|
"pata_winbond"
|
|
|
|
|
|
|
|
# SCSI support (incomplete).
|
|
|
|
"3w-9xxx" "3w-xxxx" "aic79xx" "aic7xxx" "arcmsr"
|
|
|
|
|
|
|
|
# USB support, especially for booting from USB CD-ROM
|
|
|
|
# drives.
|
2018-08-23 03:42:21 +02:00
|
|
|
"uas"
|
2011-11-08 16:58:59 +01:00
|
|
|
|
2021-01-22 05:08:54 +01:00
|
|
|
# SD cards.
|
|
|
|
"sdhci_pci"
|
|
|
|
|
2011-11-08 16:58:59 +01:00
|
|
|
# Firewire support. Not tested.
|
|
|
|
"ohci1394" "sbp2"
|
|
|
|
|
|
|
|
# Virtio (QEMU, KVM etc.) support.
|
2015-06-17 19:26:17 +02:00
|
|
|
"virtio_net" "virtio_pci" "virtio_blk" "virtio_scsi" "virtio_balloon" "virtio_console"
|
2017-10-07 01:42:52 +02:00
|
|
|
|
2017-07-17 02:38:10 +02:00
|
|
|
# VMware support.
|
2021-01-13 14:02:30 +01:00
|
|
|
"mptspi" "vmxnet3" "vsock"
|
|
|
|
] ++ lib.optional platform.isx86 "vmw_balloon"
|
2021-05-01 22:58:50 +02:00
|
|
|
++ lib.optionals (!platform.isAarch64 && !platform.isAarch32) [ # not sure where else they're missing
|
2021-01-13 15:22:41 +01:00
|
|
|
"vmw_vmci" "vmwgfx" "vmw_vsock_vmci_transport"
|
2012-03-19 18:23:24 +01:00
|
|
|
|
2017-02-05 03:46:27 +01:00
|
|
|
# Hyper-V support.
|
|
|
|
"hv_storvsc"
|
2021-05-02 01:43:55 +02:00
|
|
|
] ++ lib.optionals (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
|
2021-04-19 22:20:37 +02:00
|
|
|
# Most of the following falls into two categories:
|
|
|
|
# - early KMS / early display
|
|
|
|
# - early storage (e.g. USB) support
|
|
|
|
|
|
|
|
# Allows using framebuffer configured by the initial boot firmware
|
|
|
|
"simplefb"
|
2021-04-19 22:20:57 +02:00
|
|
|
|
|
|
|
# Allwinner support
|
|
|
|
|
|
|
|
# Required for early KMS
|
|
|
|
"sun4i-drm"
|
|
|
|
"sun8i-mixer" # Audio, but required for kms
|
|
|
|
|
|
|
|
# PWM for the backlight
|
|
|
|
"pwm-sun4i"
|
2021-05-04 05:46:29 +02:00
|
|
|
|
|
|
|
# Broadcom
|
|
|
|
|
|
|
|
"vc4"
|
2021-05-02 01:43:55 +02:00
|
|
|
] ++ lib.optionals pkgs.stdenv.isAarch64 [
|
|
|
|
# Most of the following falls into two categories:
|
|
|
|
# - early KMS / early display
|
|
|
|
# - early storage (e.g. USB) support
|
2021-04-19 22:21:46 +02:00
|
|
|
|
2021-04-20 03:40:00 +02:00
|
|
|
# Broadcom
|
|
|
|
|
|
|
|
"pcie-brcmstb"
|
|
|
|
|
2021-04-22 21:57:37 +02:00
|
|
|
# Rockchip
|
|
|
|
"dw-hdmi"
|
|
|
|
"dw-mipi-dsi"
|
|
|
|
"rockchipdrm"
|
|
|
|
"rockchip-rga"
|
|
|
|
"phy-rockchip-pcie"
|
|
|
|
"pcie-rockchip-host"
|
|
|
|
|
2021-04-19 22:21:46 +02:00
|
|
|
# Misc. uncategorized hardware
|
|
|
|
|
|
|
|
# Used for some platform's integrated displays
|
|
|
|
"panel-simple"
|
|
|
|
"pwm-bl"
|
|
|
|
|
2021-04-19 22:22:11 +02:00
|
|
|
# Power supply drivers, some platforms need them for USB
|
|
|
|
"axp20x-ac-power"
|
|
|
|
"axp20x-battery"
|
|
|
|
"pinctrl-axp209"
|
2021-04-22 21:58:16 +02:00
|
|
|
"mp8859"
|
2021-04-19 22:22:11 +02:00
|
|
|
|
2021-04-20 03:40:00 +02:00
|
|
|
# USB drivers
|
|
|
|
"xhci-pci-renesas"
|
|
|
|
|
2021-04-19 22:21:46 +02:00
|
|
|
# Misc "weak" dependencies
|
2021-04-22 21:58:39 +02:00
|
|
|
"analogix-dp"
|
2021-04-19 22:21:46 +02:00
|
|
|
"analogix-anx6345" # For DP or eDP (e.g. integrated display)
|
2011-11-08 16:58:59 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
# Include lots of firmware.
|
2017-05-09 21:10:41 +02:00
|
|
|
hardware.enableRedistributableFirmware = true;
|
2013-08-14 03:29:16 +02:00
|
|
|
|
2013-09-04 13:05:09 +02:00
|
|
|
imports =
|
2013-08-14 03:29:16 +02:00
|
|
|
[ ../hardware/network/zydas-zd1211.nix ];
|
2011-11-08 16:58:59 +01:00
|
|
|
|
|
|
|
}
|