diff --git a/machines/storage/s0/configuration.nix b/machines/storage/s0/configuration.nix index 5294933..04354b2 100644 --- a/machines/storage/s0/configuration.nix +++ b/machines/storage/s0/configuration.nix @@ -2,11 +2,27 @@ { imports =[ - ./helios64.nix + ./helios64 ]; + # nsw2zwifzyl42mbhabayjo42b2kkq3wd3dqyl6efxsz6pvmgm5cup5ad.onion + nix.flakes.enable = true; + networking.hostName = "s0"; - fileSystems."/" = { device = lib.mkForce "/dev/disk/by-label/bold-emmc"; fsType = lib.mkForce "btrfs"; }; + + luks = { + enable = true; + device = { + path = "/dev/disk/by-uuid/975d8427-2c6a-440d-a1d2-18dd15ba5bc2"; + allowDiscards = true; + }; + }; + + boot.loader.grub.enable = false; + boot.loader.generic-extlinux-compatible.enable = true; + networking.interfaces.eth0.useDHCP = true; + + zramSwap.enable = true; } diff --git a/machines/storage/s0/fancontrol.rs b/machines/storage/s0/fancontrol.rs deleted file mode 100644 index 7263049..0000000 --- a/machines/storage/s0/fancontrol.rs +++ /dev/null @@ -1,47 +0,0 @@ -use std::cmp::{max, min}; -use std::path::PathBuf; -use std::fs::{read_dir, read_to_string, write}; -use std::thread::sleep; -use std::time::Duration; - -const MINTEMP : i32 = 50000; -const MAXTEMP : i32 = 80000; -const MINSTART : i32 = 60; -const MINSTOP : i32 = 29; -const MAXPWM : i32 = 255; - - -fn adjust(fan: &PathBuf, sensor: &PathBuf) { - let temp: i32 = read_to_string(sensor).unwrap().trim().parse().unwrap(); - let prev_pwm: i32 = read_to_string(fan).unwrap().trim().parse().unwrap(); - - let mut pwm: i32; - pwm = (temp - MINTEMP) * 255 / (MAXTEMP - MINTEMP); - pwm = max(pwm, 0); - if pwm > 0 { - pwm = max(pwm, if prev_pwm < MINSTOP { MINSTART } else { MINSTOP }); - pwm = min(pwm, MAXPWM); - } - //println!("sensor: {}, pwm: {}", temp, pwm); - write(fan, pwm.to_string()).unwrap(); -} - -fn main() { - let mut fans = Vec::new(); - for hwmon_dir in ["/sys/devices/platform/p6-fan/hwmon", "/sys/devices/platform/p7-fan/hwmon"].iter() { - for dir in read_dir(hwmon_dir).unwrap() { - let mut p = dir.unwrap().path(); - p.push("pwm1"); - if p.exists() { - fans.push(p) - } - } - } - let fans = fans; - loop { - for fan in &fans { - adjust(fan, &PathBuf::from("/sys/devices/virtual/thermal/thermal_zone0/hwmon0/temp1_input")) - } - sleep(Duration::from_secs(5)); - } -} diff --git a/machines/storage/s0/hardware-configuration.nix b/machines/storage/s0/hardware-configuration.nix new file mode 100644 index 0000000..bc4df43 --- /dev/null +++ b/machines/storage/s0/hardware-configuration.nix @@ -0,0 +1,38 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "ahci" "usb_storage" ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/mapper/vg-root"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + + fileSystems."/home" = + { device = "/dev/mapper/vg-root"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/DF1E-0D0D"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/c7156f71-68f3-4f7a-bec0-06bdfa63f6c0"; } + ]; + + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; +} \ No newline at end of file diff --git a/machines/storage/s0/helios64.nix b/machines/storage/s0/helios64.nix deleted file mode 100644 index 39b4dff..0000000 --- a/machines/storage/s0/helios64.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ pkgs, lib, ... }: - -{ - # Fan speed adjustment - systemd.services.fans = { - wantedBy = ["multi-user.target"]; - serviceConfig.ExecStart = pkgs.runCommandCC "fans" { nativeBuildInputs = [ pkgs.rustc ]; } '' - rustc ${./fancontrol.rs} -o $out - ''; - serviceConfig.Restart = "always"; - }; - - boot = { - kernelPackages = pkgs.linuxPackagesFor (pkgs.callPackage ./kernel.nix {}); - #kernelPackages = pkgs.linuxPackages_latest; - kernelParams = ["panic=3" "boot.shell_on_fail"]; - loader.grub.enable = false; - loader.generic-extlinux-compatible.enable = true; - initrd.postDeviceCommands = '' - ( - cd /sys/bus/platform/drivers/sdhci-arasan - while true; do - test -e fe330000.sdhci/mmc_host/mmc*/mmc*/block && break - echo fe330000.sdhci > unbind - echo fe330000.sdhci > bind - sleep 1 - done - ) - ''; - }; - - systemd.services.disable-offload = { - wantedBy = ["sys-devices-platform-fe300000.ethernet-net-eth0.device" "multi-user.targtet"]; - after = ["sys-devices-platform-fe300000.ethernet-net-eth0.device"]; - serviceConfig = { - Type = "oneshot"; - ExecStart = "${pkgs.ethtool}/bin/ethtool --offload eth0 tx off"; - Restart = "on-failure"; - RestartSec = "10"; - }; - }; -} diff --git a/machines/storage/s0/patches/kernel/115200baud.patch b/machines/storage/s0/helios64/115200baud.patch similarity index 100% rename from machines/storage/s0/patches/kernel/115200baud.patch rename to machines/storage/s0/helios64/115200baud.patch diff --git a/machines/storage/s0/helios64/README.md b/machines/storage/s0/helios64/README.md new file mode 100644 index 0000000..2a43a5b --- /dev/null +++ b/machines/storage/s0/helios64/README.md @@ -0,0 +1,62 @@ +Kobol Helios64 +============== + +The `default.nix` module provides the required setup for the system to work. + +The `recommended.nix` module adds recommended settings for the system. + +Status +------ + +### Works + + - SATA hard drives + - Ethernet (1gbps) + - Serial through USB type-c (`ttyS2`) + +### Untested + + - Ethernet (2.5gbps) + - DP video out + - UPS behaviour + - `rootfs` on SATA drives + +### Disabled + +Due to misbehaviour, `ttyS0` (`&uart0`, `serial@ff180000`) has been disabled +via a kernel patch. + +Without this change, using, or attempting to use `ttyS0` will break serial +output from `ttyS2`. + + +Kernel +------ + +Only Linux 5.10 (LTS) is supported, using the patch set derived from Armbian. + + +Requirements +------------ + +A *platform firmware* needs to be provided out of band for the system. + +The author recommends Tow-Boot, for which a [draft pull request](https://github.com/Tow-Boot/Tow-Boot/pull/54) +adds support for the Helios64. + +Any other supported *platform firmware* should work too. + +> **NOTE**: at the time of writing (2021-10-10) the *platform firmware* +> **must** make use of the proprietary ram training. The open source equivalent +> will make the system unstable, and worse, will cause silent memory +> corruption, in addition to loud memory corruption. + + +Notes +----- + +### Baud rate + +The serial baud rate is configured for `115200`, which is a more common default +than the usual for Rockchip at `1500000`. See [the rationale for the decision](https://github.com/Tow-Boot/Tow-Boot/pull/33). + diff --git a/machines/storage/s0/helios64/default.nix b/machines/storage/s0/helios64/default.nix new file mode 100644 index 0000000..0357d8a --- /dev/null +++ b/machines/storage/s0/helios64/default.nix @@ -0,0 +1,22 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ./modules/fancontrol.nix + ./modules/heartbeat.nix + ./modules/ups.nix + ./modules/usbnet.nix + ]; + + nixpkgs.overlays = [ + (import ./overlay.nix) + ]; + + boot.kernelParams = lib.mkAfter [ + "console=ttyS2,115200n8" + "earlyprintk" + "earlycon=uart8250,mmio32,0xff1a0000" + ]; + + boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_5_10_helios64; +} diff --git a/machines/storage/s0/helios64/modules/bsp/50-usb-realtek-net.rules b/machines/storage/s0/helios64/modules/bsp/50-usb-realtek-net.rules new file mode 100644 index 0000000..71c9961 --- /dev/null +++ b/machines/storage/s0/helios64/modules/bsp/50-usb-realtek-net.rules @@ -0,0 +1,38 @@ +# This is used to change the default configuration of Realtek USB ethernet adapters + +ACTION!="add", GOTO="usb_realtek_net_end" +SUBSYSTEM!="usb", GOTO="usb_realtek_net_end" +ENV{DEVTYPE}!="usb_device", GOTO="usb_realtek_net_end" + +# Modify this to change the default value +ENV{REALTEK_NIC_MODE}="1" + +# Realtek +ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="0bda", ATTR{idProduct}=="8153", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="0bda", ATTR{idProduct}=="8152", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" + +# Samsung +ATTR{idVendor}=="04e8", ATTR{idProduct}=="a101", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" + +# Lenovo +ATTR{idVendor}=="17ef", ATTR{idProduct}=="304f", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="3052", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="3054", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="3057", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="3082", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="7205", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="720a", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="720b", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="720c", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="721e", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="a359", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" +ATTR{idVendor}=="17ef", ATTR{idProduct}=="a387", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" + +# TP-LINK +ATTR{idVendor}=="2357", ATTR{idProduct}=="0601", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" + +# Nvidia +ATTR{idVendor}=="0955", ATTR{idProduct}=="09ff", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}" + +LABEL="usb_realtek_net_end" diff --git a/machines/storage/s0/helios64/modules/bsp/70-keep-usb-lan-as-eth1.rules b/machines/storage/s0/helios64/modules/bsp/70-keep-usb-lan-as-eth1.rules new file mode 100644 index 0000000..532abd1 --- /dev/null +++ b/machines/storage/s0/helios64/modules/bsp/70-keep-usb-lan-as-eth1.rules @@ -0,0 +1 @@ +SUBSYSTEM=="net", ACTION=="add", DRIVERS=="r8152", KERNEL=="eth1", NAME="eth1" diff --git a/machines/storage/s0/helios64/modules/bsp/90-helios64-hwmon.rules b/machines/storage/s0/helios64/modules/bsp/90-helios64-hwmon.rules new file mode 100755 index 0000000..59288d3 --- /dev/null +++ b/machines/storage/s0/helios64/modules/bsp/90-helios64-hwmon.rules @@ -0,0 +1,23 @@ +# Helios64 persistent hwmon + +ACTION=="remove", GOTO="helios64_hwmon_end" + +# +KERNELS=="p6-fan", SUBSYSTEMS=="platform", ENV{_HELIOS64_FAN_}="p6", ENV{_IS_HELIOS64_FAN_}="1", ENV{IS_HELIOS64_HWMON}="1" +KERNELS=="p7-fan", SUBSYSTEMS=="platform", ENV{_HELIOS64_FAN_}="p7", ENV{_IS_HELIOS64_FAN_}="1", ENV{IS_HELIOS64_HWMON}="1" +KERNELS=="2-004c", SUBSYSTEMS=="i2c", DRIVERS=="lm75", ENV{IS_HELIOS64_HWMON}="1" + +SUBSYSTEM!="hwmon", GOTO="helios64_hwmon_end" + +ENV{HWMON_PATH}="/sys%p" +# +ATTR{name}=="cpu", ENV{IS_HELIOS64_HWMON}="1", ENV{HELIOS64_SYMLINK}="/dev/thermal-cpu" +# +ENV{IS_HELIOS64_HWMON}=="1", ATTR{name}=="lm75", ENV{HELIOS64_SYMLINK}="/dev/thermal-board" +ENV{_IS_HELIOS64_FAN_}=="1", ENV{HELIOS64_SYMLINK}="/dev/fan-$env{_HELIOS64_FAN_}" + +# +ENV{IS_HELIOS64_HWMON}=="1", RUN+="/bin/ln -sf $env{HWMON_PATH} $env{HELIOS64_SYMLINK}" + +LABEL="helios64_hwmon_end" + diff --git a/machines/storage/s0/helios64/modules/bsp/90-helios64-ups.rules b/machines/storage/s0/helios64/modules/bsp/90-helios64-ups.rules new file mode 100644 index 0000000..b310f35 --- /dev/null +++ b/machines/storage/s0/helios64/modules/bsp/90-helios64-ups.rules @@ -0,0 +1,11 @@ +ACTION=="add", GOTO="helios64_ups_end" +ACTION=="remove", GOTO="helios64_ups_end" + +# Power loss event +ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTRS{online}=="0", RUN+="/usr/bin/systemctl start helios64-ups.timer" + +# Power restore event +ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTRS{online}=="1", RUN+="/usr/bin/systemctl stop helios64-ups.timer" + +LABEL="helios64_ups_end" + diff --git a/machines/storage/s0/helios64/modules/fancontrol.nix b/machines/storage/s0/helios64/modules/fancontrol.nix new file mode 100644 index 0000000..a04e829 --- /dev/null +++ b/machines/storage/s0/helios64/modules/fancontrol.nix @@ -0,0 +1,41 @@ +{ pkgs, ... }: +{ + hardware.fancontrol.enable = true; + hardware.fancontrol.config = '' + # Helios64 PWM Fan Control Configuration + # Temp source : /dev/thermal-cpu + INTERVAL=10 + FCTEMPS=/dev/fan-p6/pwm1=/dev/thermal-cpu/temp1_input /dev/fan-p7/pwm1=/dev/thermal-cpu/temp1_input + MINTEMP=/dev/fan-p6/pwm1=40 /dev/fan-p7/pwm1=40 + MAXTEMP=/dev/fan-p6/pwm1=80 /dev/fan-p7/pwm1=80 + MINSTART=/dev/fan-p6/pwm1=60 /dev/fan-p7/pwm1=60 + MINSTOP=/dev/fan-p6/pwm1=29 /dev/fan-p7/pwm1=29 + MINPWM=20 + ''; + + services.udev.packages = [ + # Fan control + (pkgs.callPackage ( + { stdenv, lib, coreutils }: + stdenv.mkDerivation { + name = "helios64-udev-fancontrol"; + + dontUnpack = true; + dontBuild = true; + + installPhase = '' + mkdir -p "$out/etc/udev/rules.d/"; + install -Dm644 "${./bsp/90-helios64-hwmon.rules}" \ + "$out/etc/udev/rules.d/90-helios64-hwmon.rules" + substituteInPlace "$out/etc/udev/rules.d/90-helios64-hwmon.rules" \ + --replace '/bin/ln' '${lib.getBin coreutils}/bin/ln' + ''; + + meta = with lib; { + description = "Udev rules for fancontrol for the Helios64"; + platforms = platforms.linux; + }; + } + ) {}) + ]; +} diff --git a/machines/storage/s0/helios64/modules/heartbeat.nix b/machines/storage/s0/helios64/modules/heartbeat.nix new file mode 100644 index 0000000..70aa33b --- /dev/null +++ b/machines/storage/s0/helios64/modules/heartbeat.nix @@ -0,0 +1,20 @@ +{ pkgs, lib, ... }: +{ + systemd.services.heartbeat = { + enable = true; + description = "Enable heartbeat & network activity led on Helios64"; + serviceConfig = { + Type = "oneshot"; + ExecStart = '' + ${lib.getBin pkgs.bash}/bin/bash -c 'echo heartbeat | ${lib.getBin pkgs.coreutils}/bin/tee /sys/class/leds/helios64\\:\\:status/trigger' + ${lib.getBin pkgs.bash}/bin/bash -c 'echo netdev | ${lib.getBin pkgs.coreutils}/bin/tee /sys/class/leds/helios64\\:blue\\:net/trigger' + ${lib.getBin pkgs.bash}/bin/bash -c 'echo eth0 | ${lib.getBin pkgs.coreutils}/bin/tee /sys/class/leds/helios64\\:blue\\:net/device_name' + ${lib.getBin pkgs.bash}/bin/bash -c 'echo 1 | ${lib.getBin pkgs.coreutils}/bin/tee /sys/class/leds/helios64\\:blue\\:net/link' + ${lib.getBin pkgs.bash}/bin/bash -c 'echo 1 | ${lib.getBin pkgs.coreutils}/bin/tee /sys/class/leds/helios64\\:blue\\:net/rx' + ${lib.getBin pkgs.bash}/bin/bash -c 'echo 1 | ${lib.getBin pkgs.coreutils}/bin/tee /sys/class/leds/helios64\\:blue\\:net/tx' + ''; + }; + after = [ "getty.target" ]; + wantedBy = [ "multi-user.target" ]; + }; +} diff --git a/machines/storage/s0/helios64/modules/ups.nix b/machines/storage/s0/helios64/modules/ups.nix new file mode 100644 index 0000000..2a2990c --- /dev/null +++ b/machines/storage/s0/helios64/modules/ups.nix @@ -0,0 +1,51 @@ +{ pkgs, ... }: +{ + systemd.services.helios64-ups = { + enable = true; + description = "Helios64 UPS Action"; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${pkgs.systemd}/bin/poweroff"; + }; + }; + + systemd.timers.helios64-ups = { + enable = true; + description = "Helios64 UPS Shutdown timer on power loss"; + # disabling the timer by default. Even though armbian enaled + # the timer by default through this, we don't, as we can't + # rely on the udev rules to disable it after a system switch. + # wantedBy = [ "multi-user.target" ]; + timerConfig = { + OnActiveSec = "10m"; + AccuracySec = "1s"; + Unit = "helios64-ups.service"; + }; + }; + # The udev rule that will trigger the above service. + services.udev.packages = [ + (pkgs.callPackage ( + { stdenv, lib, coreutils, systemd }: + stdenv.mkDerivation { + name = "helios64-udev-ups"; + + dontUnpack = true; + dontBuild = true; + + installPhase = '' + mkdir -p "$out/etc/udev/rules.d/"; + install -Dm644 "${./bsp/90-helios64-ups.rules}" \ + "$out/etc/udev/rules.d/90-helios64-ups.rules" + substituteInPlace "$out/etc/udev/rules.d/90-helios64-ups.rules" \ + --replace '/bin/ln' '${lib.getBin coreutils}/bin/ln' \ + --replace '/usr/bin/systemctl' '${lib.getBin systemd}/bin/systemctl' + ''; + + meta = with lib; { + description = "Udev rules for UPS for the Helios64"; + platforms = platforms.linux; + }; + } + ) {}) + ]; +} diff --git a/machines/storage/s0/helios64/modules/usbnet.nix b/machines/storage/s0/helios64/modules/usbnet.nix new file mode 100644 index 0000000..4736710 --- /dev/null +++ b/machines/storage/s0/helios64/modules/usbnet.nix @@ -0,0 +1,32 @@ +{ pkgs, ... }: + +{ + services.udev.packages = [ + # this one will set the usb net ethernet into the right mode + # and stop it from spamming the console. + (pkgs.callPackage ( + { stdenv, lib, coreutils }: + stdenv.mkDerivation { + name = "helios64-udev-usb-net"; + + dontUnpack = true; + dontBuild = true; + + installPhase = '' + mkdir -p "$out/etc/udev/rules.d/"; + install -Dm644 "${./bsp/50-usb-realtek-net.rules}" \ + "$out/etc/udev/rules.d/50-usb-realtek-net.rules" + install -Dm644 "${./bsp/70-keep-usb-lan-as-eth1.rules}" \ + "$out/etc/udev/rules.d/70-keep-usb-lan-as-eth1.rules" + substituteInPlace "$out/etc/udev/rules.d/50-usb-realtek-net.rules" \ + --replace '/bin/ln' '${lib.getBin coreutils}/bin/ln' + ''; + + meta = with lib; { + description = "Udev rules for the USB network interface for the Helios64"; + platforms = platforms.linux; + }; + } + ) {}) + ]; +} diff --git a/machines/storage/s0/helios64/overlay.nix b/machines/storage/s0/helios64/overlay.nix new file mode 100644 index 0000000..eb26a75 --- /dev/null +++ b/machines/storage/s0/helios64/overlay.nix @@ -0,0 +1,75 @@ +self: super: { + linux_5_10_helios64 = self.linux_5_10.override { + + kernelPatches = [ + { + name = "helios64-patch-set.patch"; + patch = self.fetchurl { + # v5.10.68..v5.10-helios64-2021-10-10 @ https://github.com/samueldr/linux + # Hosted as a pre-rendered patch because `fetchpatch` strips added files. + url = "https://gist.githubusercontent.com/samueldr/1a409f88f2107054c87a70403686b871/raw/abee3d5d5415c466f8111371b63f759f614547c6/helios64.patch"; + sha256 = "1gx2z345vb4r2mdfmydbzc5baj58rrn416rzb2fz7azxpyib5ym4"; + }; + } + { name = "115200 baud"; patch = ./115200baud.patch; } + ]; + + # Configuration mainly to remove unused platforms and things. + structuredExtraConfig = with self.lib.kernel; { + ARCH_ROCKCHIP = yes; + + ARCH_ACTIONS = no; + ARCH_AGILEX = no; + ARCH_SUNXI = no; + ARCH_ALPINE = no; + ARCH_BCM2835 = no; + ARCH_BERLIN = no; + ARCH_BRCMSTB = no; + ARCH_EXYNOS = no; + ARCH_K3 = no; + ARCH_LAYERSCAPE = no; + ARCH_LG1K = no; + ARCH_HISI = no; + ARCH_MEDIATEK = no; + ARCH_MESON = no; + ARCH_MVEBU = no; + ARCH_MXC = no; + ARCH_QCOM = no; + ARCH_RENESAS = no; + ARCH_S32 = no; + ARCH_SEATTLE = no; + ARCH_STRATIX10 = no; + ARCH_SYNQUACER = no; + ARCH_TEGRA = no; + ARCH_SPRD = no; + ARCH_THUNDER = no; + ARCH_THUNDER2 = no; + ARCH_UNIPHIER = no; + ARCH_VEXPRESS = no; + ARCH_VISCONTI = no; + ARCH_XGENE = no; + ARCH_ZX = no; + ARCH_ZYNQMP = no; + ARCH_RANDOM = no; + ARCH_R8A77995 = no; + ARCH_R8A77990 = no; + ARCH_R8A77950 = no; + ARCH_R8A77951 = no; + ARCH_R8A77965 = no; + ARCH_R8A77960 = no; + ARCH_R8A77961 = no; + ARCH_R8A77980 = no; + ARCH_R8A77970 = no; + ARCH_R8A774C0 = no; + ARCH_R8A774E1 = no; + ARCH_R8A774A1 = no; + ARCH_R8A774B1 = no; + ARCH_STACKWALK = no; + }; + }; + + # Force modules closure to be built even if some modules are missing + # (Workaround for a NixOS change in strictness) + makeModulesClosure = x: + super.makeModulesClosure (x // { allowMissing = true; }); +} diff --git a/machines/storage/s0/helios64/recommended.nix b/machines/storage/s0/helios64/recommended.nix new file mode 100644 index 0000000..99e554b --- /dev/null +++ b/machines/storage/s0/helios64/recommended.nix @@ -0,0 +1,8 @@ +{ lib, ... }: +{ + # Since 20.03, you must explicitly specify to use dhcp on an interface + networking.interfaces.eth0.useDHCP = lib.mkDefault true; + + # Helps with 4GiB of RAM + zramSwap.enable = lib.mkDefault true; +} diff --git a/machines/storage/s0/kernel.nix b/machines/storage/s0/kernel.nix deleted file mode 100644 index eb72164..0000000 --- a/machines/storage/s0/kernel.nix +++ /dev/null @@ -1,4776 +0,0 @@ -{ lib, buildLinux, linux_5_10, runCommandLocal, runCommand, fetchgit, ... }: -let - armbian = fetchgit { - url = https://github.com/armbian/build.git; - #ref = "master"; - rev = "ebb5f4ae7d6ce881fa18bd3fa598ca4605961dce"; - sha256 = "1w1s1i07qpf4wd8df1wkpyvrcw48dvvardifb72l60zkhysabnin"; - }; - patchSkipPattern = "general-(add|rockchip)-overlay|wifi-400[34]|board-renegade-dts-cleanup|PBP|nanopi|rockpi|rk3328|board-roc-rk3399-pc-fix-regulators|general-bluetooth-add-new-quirk|general-disable-mtu-validatio|rk3399-pci-rockchip-support-ep-gpio-undefined-case|rkvdec_nv15|spi"; - patch = runCommandLocal "rockchip64-current.patch" { src = armbian; } '' - runHook unpackPhase - cd $sourceRoot - for f in patch/kernel/rockchip64-current/* ; do - if [[ "$f" =~ ${patchSkipPattern} ]] ; then - echo "SKIP $f" - continue - fi - echo "USE $f" - cat "$f" >>$out - echo >>$out - done - ''; - src = runCommand "linux-rockchip64" {} '' - unpackFile ${linux_5_10.src} - cd linux*/ - for f in ${armbian}/patch/kernel/rockchip64-current/* ; do - if [[ "$f" =~ ${patchSkipPattern} ]] ; then - echo "SKIP $f" - continue - fi - echo "USE $f" - patch -p1 <"$f" - done - echo Copying. - cp -r . $out - ''; -in buildLinux { - inherit src; - inherit (linux_5_10) version modDirVersion; - autoModules = false; - kernelPatches = [ - #{ name = "rockchip64-current"; patch = patch; } - { name = "115200 baud"; patch = ./patches/kernel/115200baud.patch; } - ]; - # generated with: cat linux-rockchip64-current.config |grep -v "^#" |grep -v "^$"|sed s/^CONFIG_//g |sed s/=/\ /g - # - # Then need to drop all "" values and "(none)" or so. - # Also drop CRYPTO_AEGIS128_SIMD, as that won't build. - # Drop all CC_/GCC_/LD_/CLANG_ prefixed items. - # See https://github.com/NixOS/nixpkgs/commit/9b67ea9106102d882f53d62890468071900b9647 - # - # Drop these as well... - # - # SIGNED_PE_FILE_VERIFICATION y - # MODULE_SIG_KEY "certs/signing_key.pem" - # SYSTEM_TRUSTED_KEYRING y - # SYSTEM_EXTRA_CERTIFICATE y - # SYSTEM_EXTRA_CERTIFICATE_SIZE 4096 - # SECONDARY_TRUSTED_KEYRING y - # SYSTEM_BLACKLIST_KEYRING y - # - - # Disable these, as they'll spam the console otherwise. - # Something's wrong with the CDC_NCM driver. - # - # See also: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1832472 - # - # USB_NET_CDC_NCM n - # USB_NET_HUAWEI_CDC_NCM n - # USB_NET_CDC_MBIM n - - structuredExtraConfig = with lib.kernel; { - "IRQ_WORK" = yes; - "BUILDTIME_TABLE_SORT" = yes; - "THREAD_INFO_IN_TASK" = yes; - "INIT_ENV_ARG_LIMIT" = freeform "32"; - "SWAP" = yes; - "SYSVIPC" = yes; - "SYSVIPC_SYSCTL" = yes; - "POSIX_MQUEUE" = yes; - "POSIX_MQUEUE_SYSCTL" = yes; - "CROSS_MEMORY_ATTACH" = yes; - "USELIB" = yes; - "AUDIT" = yes; - "HAVE_ARCH_AUDITSYSCALL" = yes; - "AUDITSYSCALL" = yes; - "GENERIC_IRQ_PROBE" = yes; - "GENERIC_IRQ_SHOW" = yes; - "GENERIC_IRQ_SHOW_LEVEL" = yes; - "GENERIC_IRQ_EFFECTIVE_AFF_MASK" = yes; - "GENERIC_IRQ_MIGRATION" = yes; - "HARDIRQS_SW_RESEND" = yes; - "GENERIC_IRQ_CHIP" = yes; - "IRQ_DOMAIN" = yes; - "IRQ_SIM" = yes; - "IRQ_DOMAIN_HIERARCHY" = yes; - "GENERIC_MSI_IRQ" = yes; - "GENERIC_MSI_IRQ_DOMAIN" = yes; - "IRQ_MSI_IOMMU" = yes; - "HANDLE_DOMAIN_IRQ" = yes; - "IRQ_FORCED_THREADING" = yes; - "SPARSE_IRQ" = yes; - "GENERIC_IRQ_MULTI_HANDLER" = yes; - "GENERIC_TIME_VSYSCALL" = yes; - "GENERIC_CLOCKEVENTS" = yes; - "ARCH_HAS_TICK_BROADCAST" = yes; - "GENERIC_CLOCKEVENTS_BROADCAST" = yes; - "TICK_ONESHOT" = yes; - "NO_HZ_COMMON" = yes; - "NO_HZ_IDLE" = yes; - "NO_HZ" = yes; - "HIGH_RES_TIMERS" = yes; - "TICK_CPU_ACCOUNTING" = yes; - "SCHED_THERMAL_PRESSURE" = yes; - "BSD_PROCESS_ACCT" = yes; - "BSD_PROCESS_ACCT_V3" = yes; - "TASKSTATS" = yes; - "TASK_DELAY_ACCT" = yes; - "TASK_XACCT" = yes; - "TASK_IO_ACCOUNTING" = yes; - "TREE_RCU" = yes; - "SRCU" = yes; - "TREE_SRCU" = yes; - "TASKS_RCU_GENERIC" = yes; - "TASKS_RCU" = yes; - "TASKS_RUDE_RCU" = yes; - "TASKS_TRACE_RCU" = yes; - "RCU_STALL_COMMON" = yes; - "RCU_NEED_SEGCBLIST" = yes; - "BUILD_BIN2C" = yes; - "IKCONFIG" = yes; - "IKCONFIG_PROC" = yes; - "IKHEADERS" = module; - "LOG_BUF_SHIFT" = freeform "17"; - "LOG_CPU_MAX_BUF_SHIFT" = freeform "12"; - "PRINTK_SAFE_LOG_BUF_SHIFT" = freeform "13"; - "GENERIC_SCHED_CLOCK" = yes; - "ARCH_SUPPORTS_NUMA_BALANCING" = yes; - "CC_HAS_INT128" = yes; - "ARCH_SUPPORTS_INT128" = yes; - "NUMA_BALANCING" = yes; - "NUMA_BALANCING_DEFAULT_ENABLED" = yes; - "CGROUPS" = yes; - "PAGE_COUNTER" = yes; - "MEMCG" = yes; - "MEMCG_SWAP" = yes; - "MEMCG_KMEM" = yes; - "BLK_CGROUP" = yes; - "CGROUP_WRITEBACK" = yes; - "CGROUP_SCHED" = yes; - "FAIR_GROUP_SCHED" = yes; - "CFS_BANDWIDTH" = yes; - "CGROUP_PIDS" = yes; - "CGROUP_RDMA" = yes; - "CGROUP_FREEZER" = yes; - "CGROUP_HUGETLB" = yes; - "CPUSETS" = yes; - "PROC_PID_CPUSET" = yes; - "CGROUP_DEVICE" = yes; - "CGROUP_CPUACCT" = yes; - "CGROUP_PERF" = yes; - "CGROUP_BPF" = yes; - "SOCK_CGROUP_DATA" = yes; - "NAMESPACES" = yes; - "UTS_NS" = yes; - "TIME_NS" = yes; - "IPC_NS" = yes; - "USER_NS" = yes; - "PID_NS" = yes; - "NET_NS" = yes; - "SCHED_AUTOGROUP" = yes; - "RELAY" = yes; - "BLK_DEV_INITRD" = yes; - "RD_GZIP" = yes; - "RD_BZIP2" = yes; - "RD_LZMA" = yes; - "RD_XZ" = yes; - "RD_LZO" = yes; - "RD_LZ4" = yes; - "RD_ZSTD" = yes; - "BOOT_CONFIG" = yes; - "CC_OPTIMIZE_FOR_PERFORMANCE" = yes; - "SYSCTL" = yes; - "HAVE_UID16" = yes; - "SYSCTL_EXCEPTION_TRACE" = yes; - "BPF" = yes; - "EXPERT" = yes; - "UID16" = yes; - "MULTIUSER" = yes; - "SYSFS_SYSCALL" = yes; - "FHANDLE" = yes; - "POSIX_TIMERS" = yes; - "PRINTK" = yes; - "PRINTK_NMI" = yes; - "BUG" = yes; - "ELF_CORE" = yes; - "BASE_FULL" = yes; - "FUTEX" = yes; - "FUTEX_PI" = yes; - "HAVE_FUTEX_CMPXCHG" = yes; - "EPOLL" = yes; - "SIGNALFD" = yes; - "TIMERFD" = yes; - "EVENTFD" = yes; - "SHMEM" = yes; - "AIO" = yes; - "IO_URING" = yes; - "ADVISE_SYSCALLS" = yes; - "MEMBARRIER" = yes; - "KALLSYMS" = yes; - "KALLSYMS_ALL" = yes; - "KALLSYMS_BASE_RELATIVE" = yes; - "BPF_LSM" = yes; - "BPF_SYSCALL" = yes; - "ARCH_WANT_DEFAULT_BPF_JIT" = yes; - "BPF_JIT_DEFAULT_ON" = yes; - "ARCH_HAS_MEMBARRIER_SYNC_CORE" = yes; - "RSEQ" = yes; - "HAVE_PERF_EVENTS" = yes; - "PERF_EVENTS" = yes; - "VM_EVENT_COUNTERS" = yes; - "SLUB_DEBUG" = yes; - "SLUB" = yes; - "SLAB_MERGE_DEFAULT" = yes; - "SLUB_CPU_PARTIAL" = yes; - "SYSTEM_DATA_VERIFICATION" = yes; - "PROFILING" = yes; - "TRACEPOINTS" = yes; - "ARM64" = yes; - "64BIT" = yes; - "MMU" = yes; - "ARM64_PAGE_SHIFT" = freeform "12"; - "ARM64_CONT_SHIFT" = freeform "4"; - "ARCH_MMAP_RND_BITS_MIN" = freeform "18"; - "ARCH_MMAP_RND_BITS_MAX" = freeform "33"; - "ARCH_MMAP_RND_COMPAT_BITS_MIN" = freeform "11"; - "ARCH_MMAP_RND_COMPAT_BITS_MAX" = freeform "16"; - "STACKTRACE_SUPPORT" = yes; - "ILLEGAL_POINTER_VALUE" = freeform "0xdead000000000000"; - "LOCKDEP_SUPPORT" = yes; - "TRACE_IRQFLAGS_SUPPORT" = yes; - "GENERIC_BUG" = yes; - "GENERIC_BUG_RELATIVE_POINTERS" = yes; - "GENERIC_HWEIGHT" = yes; - "GENERIC_CSUM" = yes; - "GENERIC_CALIBRATE_DELAY" = yes; - "ZONE_DMA" = yes; - "ZONE_DMA32" = yes; - "ARCH_ENABLE_MEMORY_HOTPLUG" = yes; - "ARCH_ENABLE_MEMORY_HOTREMOVE" = yes; - "SMP" = yes; - "KERNEL_MODE_NEON" = yes; - "FIX_EARLYCON_MEM" = yes; - "PGTABLE_LEVELS" = freeform "4"; - "ARCH_SUPPORTS_UPROBES" = yes; - "ARCH_PROC_KCORE_TEXT" = yes; - "ARCH_SUNXI" = yes; - "ARCH_MESON" = yes; - "ARCH_ROCKCHIP" = yes; - "ARCH_S32" = yes; - "ARM64_WORKAROUND_CLEAN_CACHE" = yes; - "ARM64_ERRATUM_826319" = yes; - "ARM64_ERRATUM_827319" = yes; - "ARM64_ERRATUM_824069" = yes; - "ARM64_ERRATUM_819472" = yes; - "ARM64_ERRATUM_832075" = yes; - "ARM64_ERRATUM_834220" = yes; - "ARM64_ERRATUM_845719" = yes; - "ARM64_ERRATUM_843419" = yes; - "ARM64_ERRATUM_1024718" = yes; - "ARM64_ERRATUM_1418040" = yes; - "ARM64_WORKAROUND_SPECULATIVE_AT" = yes; - "ARM64_ERRATUM_1165522" = yes; - "ARM64_ERRATUM_1319367" = yes; - "ARM64_ERRATUM_1530923" = yes; - "ARM64_WORKAROUND_REPEAT_TLBI" = yes; - "ARM64_ERRATUM_1286807" = yes; - "ARM64_ERRATUM_1463225" = yes; - "ARM64_ERRATUM_1542419" = yes; - "CAVIUM_ERRATUM_22375" = yes; - "CAVIUM_ERRATUM_23144" = yes; - "CAVIUM_ERRATUM_23154" = yes; - "CAVIUM_ERRATUM_27456" = yes; - "CAVIUM_ERRATUM_30115" = yes; - "CAVIUM_TX2_ERRATUM_219" = yes; - "FUJITSU_ERRATUM_010001" = yes; - "HISILICON_ERRATUM_161600802" = yes; - "QCOM_FALKOR_ERRATUM_1003" = yes; - "QCOM_FALKOR_ERRATUM_1009" = yes; - "QCOM_QDF2400_ERRATUM_0065" = yes; - "QCOM_FALKOR_ERRATUM_E1041" = yes; - "SOCIONEXT_SYNQUACER_PREITS" = yes; - "ARM64_4K_PAGES" = yes; - "ARM64_VA_BITS_48" = yes; - "ARM64_VA_BITS" = freeform "48"; - "ARM64_PA_BITS_48" = yes; - "ARM64_PA_BITS" = freeform "48"; - "CPU_LITTLE_ENDIAN" = lib.mkForce yes; - "CPU_BIG_ENDIAN" = lib.mkForce no; - "SCHED_MC" = yes; - #"NR_CPUS" = freeform "256"; - "HOTPLUG_CPU" = yes; - "NUMA" = yes; - "NODES_SHIFT" = freeform "2"; - "USE_PERCPU_NUMA_NODE_ID" = yes; - "HAVE_SETUP_PER_CPU_AREA" = yes; - "NEED_PER_CPU_EMBED_FIRST_CHUNK" = yes; - "HOLES_IN_ZONE" = yes; - "HZ_250" = yes; - "HZ" = freeform "250"; - "SCHED_HRTICK" = yes; - "ARCH_SUPPORTS_DEBUG_PAGEALLOC" = yes; - "ARCH_SPARSEMEM_ENABLE" = yes; - "ARCH_SPARSEMEM_DEFAULT" = yes; - "ARCH_SELECT_MEMORY_MODEL" = yes; - "HAVE_ARCH_PFN_VALID" = yes; - "HW_PERF_EVENTS" = yes; - "SYS_SUPPORTS_HUGETLBFS" = yes; - "ARCH_WANT_HUGE_PMD_SHARE" = yes; - "ARCH_HAS_CACHE_LINE_SIZE" = yes; - "ARCH_ENABLE_SPLIT_PMD_PTLOCK" = yes; - "SECCOMP" = yes; - "PARAVIRT" = yes; - "KEXEC" = yes; - "XEN_DOM0" = yes; - "XEN" = yes; - "FORCE_MAX_ZONEORDER" = freeform "11"; - "UNMAP_KERNEL_AT_EL0" = yes; - "HARDEN_BRANCH_PREDICTOR" = yes; - "ARM64_SSBD" = yes; - "RODATA_FULL_DEFAULT_ENABLED" = yes; - "ARM64_TAGGED_ADDR_ABI" = yes; - "COMPAT" = yes; - "KUSER_HELPERS" = yes; - "ARMV8_DEPRECATED" = yes; - "SWP_EMULATION" = yes; - "CP15_BARRIER_EMULATION" = yes; - "SETEND_EMULATION" = yes; - "ARM64_HW_AFDBM" = yes; - "ARM64_PAN" = yes; - "ARM64_LSE_ATOMICS" = yes; - "ARM64_USE_LSE_ATOMICS" = yes; - "ARM64_VHE" = yes; - "ARM64_UAO" = yes; - "ARM64_RAS_EXTN" = yes; - "ARM64_CNP" = yes; - "ARM64_PTR_AUTH" = yes; - "CC_HAS_BRANCH_PROT_PAC_RET" = yes; - "CC_HAS_SIGN_RETURN_ADDRESS" = yes; - "AS_HAS_PAC" = yes; - "AS_HAS_CFI_NEGATE_RA_STATE" = yes; - "ARM64_AMU_EXTN" = yes; - "AS_HAS_ARMV8_4" = yes; - "ARM64_TLB_RANGE" = yes; - "ARM64_BTI" = yes; - "CC_HAS_BRANCH_PROT_PAC_RET_BTI" = yes; - "ARM64_E0PD" = yes; - "ARCH_RANDOM" = yes; - "ARM64_SVE" = yes; - "ARM64_MODULE_PLTS" = yes; - "RELOCATABLE" = yes; - "CC_HAVE_STACKPROTECTOR_SYSREG" = yes; - "STACKPROTECTOR_PER_TASK" = yes; - "EFI_STUB" = yes; - "EFI" = yes; - "DMI" = yes; - "SYSVIPC_COMPAT" = yes; - "ARCH_ENABLE_HUGEPAGE_MIGRATION" = yes; - "SUSPEND" = yes; - "SUSPEND_FREEZER" = yes; - "HIBERNATE_CALLBACKS" = yes; - "HIBERNATION" = yes; - "HIBERNATION_SNAPSHOT_DEV" = yes; - "PM_SLEEP" = yes; - "PM_SLEEP_SMP" = yes; - "PM" = yes; - "PM_CLK" = yes; - "PM_GENERIC_DOMAINS" = yes; - "PM_GENERIC_DOMAINS_SLEEP" = yes; - "PM_GENERIC_DOMAINS_OF" = yes; - "CPU_PM" = yes; - "ARCH_HIBERNATION_POSSIBLE" = yes; - "ARCH_HIBERNATION_HEADER" = yes; - "ARCH_SUSPEND_POSSIBLE" = yes; - "CPU_IDLE" = yes; - "CPU_IDLE_MULTIPLE_DRIVERS" = yes; - "CPU_IDLE_GOV_MENU" = yes; - "DT_IDLE_STATES" = yes; - "ARM_CPUIDLE" = yes; - "CPU_FREQ" = yes; - "CPU_FREQ_GOV_ATTR_SET" = yes; - "CPU_FREQ_GOV_COMMON" = yes; - "CPU_FREQ_STAT" = yes; - "CPU_FREQ_DEFAULT_GOV_ONDEMAND" = yes; - "CPU_FREQ_GOV_PERFORMANCE" = yes; - "CPU_FREQ_GOV_POWERSAVE" = yes; - "CPU_FREQ_GOV_USERSPACE" = yes; - "CPU_FREQ_GOV_ONDEMAND" = yes; - "CPU_FREQ_GOV_CONSERVATIVE" = yes; - "CPU_FREQ_GOV_SCHEDUTIL" = yes; - "CPUFREQ_DT" = module; - "CPUFREQ_DT_PLATDEV" = yes; - "ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM" = no; - "ARM_SCPI_CPUFREQ" = yes; - "ARM_SCPI_PROTOCOL" = yes; - "ARM_SCPI_POWER_DOMAIN" = yes; - "DMIID" = yes; - "ROCKCHIP_SIP" = yes; - "EFI_ESRT" = yes; - "EFI_PARAMS_FROM_FDT" = yes; - "EFI_RUNTIME_WRAPPERS" = yes; - "EFI_GENERIC_STUB" = yes; - "EFI_ARMSTUB_DTB_LOADER" = yes; - "EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER" = yes; - "EFI_CAPSULE_LOADER" = yes; - "EFI_EARLYCON" = yes; - "MESON_SM" = yes; - "ARM_PSCI_FW" = yes; - "HAVE_ARM_SMCCC" = yes; - "HAVE_ARM_SMCCC_DISCOVERY" = yes; - "ARM_SMCCC_SOC_ID" = yes; - "ARCH_SUPPORTS_ACPI" = yes; - "IRQ_BYPASS_MANAGER" = yes; - "VIRTUALIZATION" = yes; - "KVM" = yes; - "HAVE_KVM_IRQCHIP" = yes; - "HAVE_KVM_IRQFD" = yes; - "HAVE_KVM_IRQ_ROUTING" = yes; - "HAVE_KVM_EVENTFD" = yes; - "KVM_MMIO" = yes; - "HAVE_KVM_MSI" = yes; - "HAVE_KVM_CPU_RELAX_INTERCEPT" = yes; - "KVM_VFIO" = yes; - "HAVE_KVM_ARCH_TLB_FLUSH_ALL" = yes; - "KVM_GENERIC_DIRTYLOG_READ_PROTECT" = yes; - "HAVE_KVM_IRQ_BYPASS" = yes; - "HAVE_KVM_VCPU_RUN_PID_CHANGE" = yes; - "KVM_ARM_PMU" = yes; - "KVM_INDIRECT_VECTORS" = yes; - "ARM64_CRYPTO" = yes; - "CRYPTO_SHA256_ARM64" = yes; - "CRYPTO_SHA512_ARM64" = yes; - "CRYPTO_SHA1_ARM64_CE" = yes; - "CRYPTO_SHA2_ARM64_CE" = yes; - "CRYPTO_SHA3_ARM64" = module; - "CRYPTO_SM3_ARM64_CE" = module; - "CRYPTO_SM4_ARM64_CE" = module; - "CRYPTO_GHASH_ARM64_CE" = yes; - "CRYPTO_AES_ARM64" = yes; - "CRYPTO_AES_ARM64_CE" = yes; - "CRYPTO_AES_ARM64_CE_CCM" = yes; - "CRYPTO_AES_ARM64_CE_BLK" = yes; - "CRYPTO_AES_ARM64_NEON_BLK" = yes; - "CRYPTO_CHACHA20_NEON" = yes; - "CRYPTO_POLY1305_NEON" = module; - "CRYPTO_NHPOLY1305_NEON" = module; - "CRYPTO_AES_ARM64_BS" = yes; - "CRASH_CORE" = yes; - "KEXEC_CORE" = yes; - "JUMP_LABEL" = yes; - "UPROBES" = yes; - "HAVE_EFFICIENT_UNALIGNED_ACCESS" = yes; - "HAVE_KPROBES" = yes; - "HAVE_KRETPROBES" = yes; - "HAVE_FUNCTION_ERROR_INJECTION" = yes; - "HAVE_NMI" = yes; - "HAVE_ARCH_TRACEHOOK" = yes; - "HAVE_DMA_CONTIGUOUS" = yes; - "GENERIC_SMP_IDLE_THREAD" = yes; - "GENERIC_IDLE_POLL_SETUP" = yes; - "ARCH_HAS_FORTIFY_SOURCE" = yes; - "ARCH_HAS_KEEPINITRD" = yes; - "ARCH_HAS_SET_MEMORY" = yes; - "ARCH_HAS_SET_DIRECT_MAP" = yes; - "HAVE_ARCH_THREAD_STRUCT_WHITELIST" = yes; - "HAVE_ASM_MODVERSIONS" = yes; - "HAVE_REGS_AND_STACK_ACCESS_API" = yes; - "HAVE_RSEQ" = yes; - "HAVE_FUNCTION_ARG_ACCESS_API" = yes; - "HAVE_HW_BREAKPOINT" = yes; - "HAVE_PERF_REGS" = yes; - "HAVE_PERF_USER_STACK_DUMP" = yes; - "HAVE_ARCH_JUMP_LABEL" = yes; - "HAVE_ARCH_JUMP_LABEL_RELATIVE" = yes; - "MMU_GATHER_TABLE_FREE" = yes; - "MMU_GATHER_RCU_TABLE_FREE" = yes; - "ARCH_HAVE_NMI_SAFE_CMPXCHG" = yes; - "HAVE_ALIGNED_STRUCT_PAGE" = yes; - "HAVE_CMPXCHG_LOCAL" = yes; - "HAVE_CMPXCHG_DOUBLE" = yes; - "ARCH_WANT_COMPAT_IPC_PARSE_VERSION" = yes; - "HAVE_ARCH_SECCOMP_FILTER" = yes; - "SECCOMP_FILTER" = yes; - "HAVE_ARCH_STACKLEAK" = yes; - "HAVE_STACKPROTECTOR" = yes; - "STACKPROTECTOR" = yes; - "STACKPROTECTOR_STRONG" = yes; - "HAVE_CONTEXT_TRACKING" = yes; - "HAVE_VIRT_CPU_ACCOUNTING_GEN" = yes; - "HAVE_IRQ_TIME_ACCOUNTING" = yes; - "HAVE_ARCH_TRANSPARENT_HUGEPAGE" = yes; - "HAVE_ARCH_HUGE_VMAP" = yes; - "HAVE_MOD_ARCH_SPECIFIC" = yes; - "MODULES_USE_ELF_RELA" = yes; - "ARCH_HAS_ELF_RANDOMIZE" = yes; - "HAVE_ARCH_MMAP_RND_BITS" = yes; - "ARCH_MMAP_RND_BITS" = freeform "18"; - "HAVE_ARCH_MMAP_RND_COMPAT_BITS" = yes; - "ARCH_MMAP_RND_COMPAT_BITS" = freeform "11"; - "ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT" = yes; - "CLONE_BACKWARDS" = yes; - "OLD_SIGSUSPEND3" = yes; - "COMPAT_OLD_SIGACTION" = yes; - "COMPAT_32BIT_TIME" = yes; - "HAVE_ARCH_VMAP_STACK" = yes; - "VMAP_STACK" = yes; - "ARCH_HAS_STRICT_KERNEL_RWX" = yes; - "STRICT_KERNEL_RWX" = yes; - "ARCH_HAS_STRICT_MODULE_RWX" = yes; - "STRICT_MODULE_RWX" = yes; - "HAVE_ARCH_COMPILER_H" = yes; - "HAVE_ARCH_PREL32_RELOCATIONS" = yes; - "ARCH_USE_MEMREMAP_PROT" = yes; - "ARCH_HAS_RELR" = yes; - "ARCH_HAS_GCOV_PROFILE_ALL" = yes; - "HAVE_GCC_PLUGINS" = yes; - "RT_MUTEXES" = yes; - "BASE_SMALL" = freeform "0"; - "MODULES" = yes; - "MODULE_UNLOAD" = yes; - "MODULES_TREE_LOOKUP" = yes; - "BLOCK" = yes; - "BLK_SCSI_REQUEST" = yes; - "BLK_CGROUP_RWSTAT" = yes; - "BLK_DEV_BSG" = yes; - "BLK_DEV_BSGLIB" = yes; - "BLK_DEV_INTEGRITY" = yes; - "BLK_DEV_INTEGRITY_T10" = yes; - "BLK_DEV_ZONED" = yes; - "BLK_DEV_THROTTLING" = yes; - "BLK_WBT" = yes; - "BLK_WBT_MQ" = yes; - "BLK_DEBUG_FS" = yes; - "BLK_DEBUG_FS_ZONED" = yes; - "MSDOS_PARTITION" = yes; - "EFI_PARTITION" = yes; - "BLOCK_COMPAT" = yes; - "BLK_MQ_PCI" = yes; - "BLK_MQ_VIRTIO" = yes; - "BLK_PM" = yes; - "MQ_IOSCHED_DEADLINE" = yes; - "MQ_IOSCHED_KYBER" = yes; - "BFQ_GROUP_IOSCHED" = yes; - "PREEMPT_NOTIFIERS" = yes; - "PADATA" = yes; - "ASN1" = yes; - "UNINLINE_SPIN_UNLOCK" = yes; - "ARCH_SUPPORTS_ATOMIC_RMW" = yes; - "MUTEX_SPIN_ON_OWNER" = yes; - "RWSEM_SPIN_ON_OWNER" = yes; - "LOCK_SPIN_ON_OWNER" = yes; - "ARCH_USE_QUEUED_SPINLOCKS" = yes; - "QUEUED_SPINLOCKS" = yes; - "ARCH_USE_QUEUED_RWLOCKS" = yes; - "QUEUED_RWLOCKS" = yes; - "ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE" = yes; - "ARCH_HAS_SYSCALL_WRAPPER" = yes; - "FREEZER" = yes; - "BINFMT_ELF" = yes; - "COMPAT_BINFMT_ELF" = yes; - "ARCH_BINFMT_ELF_STATE" = yes; - "ARCH_HAVE_ELF_PROT" = yes; - "ARCH_USE_GNU_PROPERTY" = yes; - "ELFCORE" = yes; - "BINFMT_SCRIPT" = yes; - "BINFMT_MISC" = yes; - "COREDUMP" = yes; - "SELECT_MEMORY_MODEL" = yes; - "SPARSEMEM_MANUAL" = yes; - "SPARSEMEM" = yes; - "NEED_MULTIPLE_NODES" = yes; - "SPARSEMEM_EXTREME" = yes; - "SPARSEMEM_VMEMMAP_ENABLE" = yes; - "SPARSEMEM_VMEMMAP" = yes; - "HAVE_FAST_GUP" = yes; - "ARCH_KEEP_MEMBLOCK" = yes; - "MEMORY_ISOLATION" = yes; - "SPLIT_PTLOCK_CPUS" = freeform "4"; - "MEMORY_BALLOON" = yes; - "BALLOON_COMPACTION" = yes; - "COMPACTION" = yes; - "PAGE_REPORTING" = yes; - "MIGRATION" = yes; - "CONTIG_ALLOC" = yes; - "PHYS_ADDR_T_64BIT" = yes; - "BOUNCE" = yes; - "MMU_NOTIFIER" = yes; - "KSM" = yes; - "DEFAULT_MMAP_MIN_ADDR" = freeform "4096"; - "ARCH_SUPPORTS_MEMORY_FAILURE" = yes; - "TRANSPARENT_HUGEPAGE" = yes; - "TRANSPARENT_HUGEPAGE_MADVISE" = yes; - "CLEANCACHE" = yes; - "FRONTSWAP" = yes; - "CMA" = yes; - "CMA_AREAS" = freeform "7"; - "GENERIC_EARLY_IOREMAP" = yes; - "ARCH_HAS_PTE_DEVMAP" = yes; - "FRAME_VECTOR" = yes; - "ARCH_HAS_PTE_SPECIAL" = yes; - "NET" = yes; - "COMPAT_NETLINK_MESSAGES" = yes; - "NET_INGRESS" = yes; - "NET_EGRESS" = yes; - "NET_REDIRECT" = yes; - "SKB_EXTENSIONS" = yes; - "PACKET" = yes; - "PACKET_DIAG" = module; - "UNIX" = yes; - "UNIX_SCM" = yes; - "UNIX_DIAG" = module; - "TLS" = module; - "TLS_DEVICE" = yes; - "XFRM" = yes; - "XFRM_OFFLOAD" = yes; - "XFRM_ALGO" = module; - "XFRM_USER" = module; - "XFRM_INTERFACE" = module; - "XFRM_SUB_POLICY" = yes; - "XFRM_MIGRATE" = yes; - "XFRM_STATISTICS" = yes; - "XFRM_AH" = module; - "XFRM_ESP" = module; - "XFRM_IPCOMP" = module; - "NET_KEY" = module; - "NET_KEY_MIGRATE" = yes; - "XDP_SOCKETS" = yes; - "INET" = yes; - "IP_MULTICAST" = yes; - "IP_ADVANCED_ROUTER" = yes; - "IP_FIB_TRIE_STATS" = yes; - "IP_MULTIPLE_TABLES" = yes; - "IP_ROUTE_MULTIPATH" = yes; - "IP_ROUTE_VERBOSE" = yes; - "IP_ROUTE_CLASSID" = yes; - "NET_IPIP" = module; - "NET_IPGRE_DEMUX" = module; - "NET_IP_TUNNEL" = module; - "NET_IPGRE" = module; - "NET_IPGRE_BROADCAST" = yes; - "IP_MROUTE_COMMON" = yes; - "IP_MROUTE" = yes; - "IP_MROUTE_MULTIPLE_TABLES" = yes; - "IP_PIMSM_V1" = yes; - "IP_PIMSM_V2" = yes; - "SYN_COOKIES" = yes; - "NET_IPVTI" = module; - "NET_UDP_TUNNEL" = module; - "NET_FOU" = module; - "NET_FOU_IP_TUNNELS" = yes; - "INET_AH" = module; - "INET_ESP" = module; - "INET_ESP_OFFLOAD" = module; - "INET_IPCOMP" = module; - "INET_XFRM_TUNNEL" = module; - "INET_TUNNEL" = module; - "INET_DIAG" = module; - "INET_TCP_DIAG" = module; - "INET_UDP_DIAG" = module; - "INET_RAW_DIAG" = module; - "INET_DIAG_DESTROY" = yes; - "TCP_CONG_ADVANCED" = yes; - "TCP_CONG_BIC" = module; - "TCP_CONG_CUBIC" = yes; - "TCP_CONG_WESTWOOD" = module; - "TCP_CONG_HTCP" = module; - "TCP_CONG_HSTCP" = module; - "TCP_CONG_HYBLA" = module; - "TCP_CONG_VEGAS" = module; - "TCP_CONG_NV" = module; - "TCP_CONG_SCALABLE" = module; - "TCP_CONG_LP" = module; - "TCP_CONG_VENO" = module; - "TCP_CONG_YEAH" = module; - "TCP_CONG_ILLINOIS" = module; - "TCP_CONG_DCTCP" = module; - "TCP_CONG_CDG" = module; - "TCP_CONG_BBR" = module; - "DEFAULT_RENO" = yes; - "DEFAULT_TCP_CONG" = freeform "reno"; - "TCP_MD5SIG" = yes; - "IPV6" = yes; - "IPV6_ROUTER_PREF" = yes; - "IPV6_ROUTE_INFO" = yes; - "IPV6_OPTIMISTIC_DAD" = yes; - "INET6_AH" = module; - "INET6_ESP" = module; - "INET6_ESP_OFFLOAD" = module; - "INET6_IPCOMP" = module; - "IPV6_MIP6" = module; - "IPV6_ILA" = module; - "INET6_XFRM_TUNNEL" = module; - "INET6_TUNNEL" = module; - "IPV6_VTI" = module; - "IPV6_SIT" = module; - "IPV6_SIT_6RD" = yes; - "IPV6_NDISC_NODETYPE" = yes; - "IPV6_TUNNEL" = module; - "IPV6_GRE" = module; - "IPV6_FOU" = module; - "IPV6_FOU_TUNNEL" = module; - "IPV6_MULTIPLE_TABLES" = yes; - "IPV6_SUBTREES" = yes; - "IPV6_MROUTE" = yes; - "IPV6_MROUTE_MULTIPLE_TABLES" = yes; - "IPV6_PIMSM_V2" = yes; - "IPV6_SEG6_LWTUNNEL" = yes; - "IPV6_SEG6_HMAC" = yes; - "IPV6_SEG6_BPF" = yes; - "NETLABEL" = yes; - "NETWORK_SECMARK" = yes; - "NET_PTP_CLASSIFY" = yes; - "NETWORK_PHY_TIMESTAMPING" = yes; - "NETFILTER" = yes; - "NETFILTER_ADVANCED" = yes; - "BRIDGE_NETFILTER" = module; - "NETFILTER_INGRESS" = yes; - "NETFILTER_NETLINK" = module; - "NETFILTER_FAMILY_BRIDGE" = yes; - "NETFILTER_FAMILY_ARP" = yes; - "NETFILTER_NETLINK_ACCT" = module; - "NETFILTER_NETLINK_QUEUE" = module; - "NETFILTER_NETLINK_LOG" = module; - "NETFILTER_NETLINK_OSF" = module; - "NF_CONNTRACK" = module; - "NF_LOG_COMMON" = module; - "NF_LOG_NETDEV" = module; - "NETFILTER_CONNCOUNT" = module; - "NF_CONNTRACK_MARK" = yes; - "NF_CONNTRACK_SECMARK" = yes; - "NF_CONNTRACK_ZONES" = yes; - "NF_CONNTRACK_EVENTS" = yes; - "NF_CONNTRACK_TIMEOUT" = yes; - "NF_CONNTRACK_TIMESTAMP" = yes; - "NF_CONNTRACK_LABELS" = yes; - "NF_CT_PROTO_DCCP" = yes; - "NF_CT_PROTO_GRE" = yes; - "NF_CT_PROTO_SCTP" = yes; - "NF_CT_PROTO_UDPLITE" = yes; - "NF_CONNTRACK_AMANDA" = module; - "NF_CONNTRACK_FTP" = module; - "NF_CONNTRACK_H323" = module; - "NF_CONNTRACK_IRC" = module; - "NF_CONNTRACK_BROADCAST" = module; - "NF_CONNTRACK_NETBIOS_NS" = module; - "NF_CONNTRACK_SNMP" = module; - "NF_CONNTRACK_PPTP" = module; - "NF_CONNTRACK_SANE" = module; - "NF_CONNTRACK_SIP" = module; - "NF_CONNTRACK_TFTP" = module; - "NF_CT_NETLINK" = module; - "NF_CT_NETLINK_TIMEOUT" = module; - "NF_CT_NETLINK_HELPER" = module; - "NETFILTER_NETLINK_GLUE_CT" = yes; - "NF_NAT" = module; - "NF_NAT_AMANDA" = module; - "NF_NAT_FTP" = module; - "NF_NAT_IRC" = module; - "NF_NAT_SIP" = module; - "NF_NAT_TFTP" = module; - "NF_NAT_REDIRECT" = yes; - "NF_NAT_MASQUERADE" = yes; - "NETFILTER_SYNPROXY" = module; - "NF_TABLES" = module; - "NF_TABLES_INET" = yes; - "NF_TABLES_NETDEV" = yes; - "NFT_NUMGEN" = module; - "NFT_CT" = module; - "NFT_FLOW_OFFLOAD" = module; - "NFT_COUNTER" = module; - "NFT_CONNLIMIT" = module; - "NFT_LOG" = module; - "NFT_LIMIT" = module; - "NFT_MASQ" = module; - "NFT_REDIR" = module; - "NFT_NAT" = module; - "NFT_TUNNEL" = module; - "NFT_OBJREF" = module; - "NFT_QUEUE" = module; - "NFT_QUOTA" = module; - "NFT_REJECT" = module; - "NFT_REJECT_INET" = module; - "NFT_COMPAT" = module; - "NFT_HASH" = module; - "NFT_FIB" = module; - "NFT_FIB_INET" = module; - "NFT_XFRM" = module; - "NFT_SOCKET" = module; - "NFT_OSF" = module; - "NFT_TPROXY" = module; - "NFT_SYNPROXY" = module; - "NF_DUP_NETDEV" = module; - "NFT_DUP_NETDEV" = module; - "NFT_FWD_NETDEV" = module; - "NFT_FIB_NETDEV" = module; - "NF_FLOW_TABLE_INET" = module; - "NF_FLOW_TABLE" = module; - "NETFILTER_XTABLES" = module; - "NETFILTER_XT_MARK" = module; - "NETFILTER_XT_CONNMARK" = module; - "NETFILTER_XT_SET" = module; - "NETFILTER_XT_TARGET_AUDIT" = module; - "NETFILTER_XT_TARGET_CHECKSUM" = module; - "NETFILTER_XT_TARGET_CLASSIFY" = module; - "NETFILTER_XT_TARGET_CONNMARK" = module; - "NETFILTER_XT_TARGET_CONNSECMARK" = module; - "NETFILTER_XT_TARGET_CT" = module; - "NETFILTER_XT_TARGET_DSCP" = module; - "NETFILTER_XT_TARGET_HL" = module; - "NETFILTER_XT_TARGET_HMARK" = module; - "NETFILTER_XT_TARGET_IDLETIMER" = module; - "NETFILTER_XT_TARGET_LED" = module; - "NETFILTER_XT_TARGET_LOG" = module; - "NETFILTER_XT_TARGET_MARK" = module; - "NETFILTER_XT_NAT" = module; - "NETFILTER_XT_TARGET_NETMAP" = module; - "NETFILTER_XT_TARGET_NFLOG" = module; - "NETFILTER_XT_TARGET_NFQUEUE" = module; - "NETFILTER_XT_TARGET_NOTRACK" = module; - "NETFILTER_XT_TARGET_RATEEST" = module; - "NETFILTER_XT_TARGET_REDIRECT" = module; - "NETFILTER_XT_TARGET_MASQUERADE" = module; - "NETFILTER_XT_TARGET_TEE" = module; - "NETFILTER_XT_TARGET_TPROXY" = module; - "NETFILTER_XT_TARGET_TRACE" = module; - "NETFILTER_XT_TARGET_SECMARK" = module; - "NETFILTER_XT_TARGET_TCPMSS" = module; - "NETFILTER_XT_TARGET_TCPOPTSTRIP" = module; - "NETFILTER_XT_MATCH_ADDRTYPE" = module; - "NETFILTER_XT_MATCH_BPF" = module; - "NETFILTER_XT_MATCH_CGROUP" = module; - "NETFILTER_XT_MATCH_CLUSTER" = module; - "NETFILTER_XT_MATCH_COMMENT" = module; - "NETFILTER_XT_MATCH_CONNBYTES" = module; - "NETFILTER_XT_MATCH_CONNLABEL" = module; - "NETFILTER_XT_MATCH_CONNLIMIT" = module; - "NETFILTER_XT_MATCH_CONNMARK" = module; - "NETFILTER_XT_MATCH_CONNTRACK" = module; - "NETFILTER_XT_MATCH_CPU" = module; - "NETFILTER_XT_MATCH_DCCP" = module; - "NETFILTER_XT_MATCH_DEVGROUP" = module; - "NETFILTER_XT_MATCH_DSCP" = module; - "NETFILTER_XT_MATCH_ECN" = module; - "NETFILTER_XT_MATCH_ESP" = module; - "NETFILTER_XT_MATCH_HASHLIMIT" = module; - "NETFILTER_XT_MATCH_HELPER" = module; - "NETFILTER_XT_MATCH_HL" = module; - "NETFILTER_XT_MATCH_IPCOMP" = module; - "NETFILTER_XT_MATCH_IPRANGE" = module; - "NETFILTER_XT_MATCH_IPVS" = module; - "NETFILTER_XT_MATCH_L2TP" = module; - "NETFILTER_XT_MATCH_LENGTH" = module; - "NETFILTER_XT_MATCH_LIMIT" = module; - "NETFILTER_XT_MATCH_MAC" = module; - "NETFILTER_XT_MATCH_MARK" = module; - "NETFILTER_XT_MATCH_MULTIPORT" = module; - "NETFILTER_XT_MATCH_NFACCT" = module; - "NETFILTER_XT_MATCH_OSF" = module; - "NETFILTER_XT_MATCH_OWNER" = module; - "NETFILTER_XT_MATCH_POLICY" = module; - "NETFILTER_XT_MATCH_PHYSDEV" = module; - "NETFILTER_XT_MATCH_PKTTYPE" = module; - "NETFILTER_XT_MATCH_QUOTA" = module; - "NETFILTER_XT_MATCH_RATEEST" = module; - "NETFILTER_XT_MATCH_REALM" = module; - "NETFILTER_XT_MATCH_RECENT" = module; - "NETFILTER_XT_MATCH_SCTP" = module; - "NETFILTER_XT_MATCH_SOCKET" = module; - "NETFILTER_XT_MATCH_STATE" = module; - "NETFILTER_XT_MATCH_STATISTIC" = module; - "NETFILTER_XT_MATCH_STRING" = module; - "NETFILTER_XT_MATCH_TCPMSS" = module; - "NETFILTER_XT_MATCH_TIME" = module; - "NETFILTER_XT_MATCH_U32" = module; - "IP_SET" = module; - "IP_SET_MAX" = freeform "256"; - "IP_SET_BITMAP_IP" = module; - "IP_SET_BITMAP_IPMAC" = module; - "IP_SET_BITMAP_PORT" = module; - "IP_SET_HASH_IP" = module; - "IP_SET_HASH_IPMARK" = module; - "IP_SET_HASH_IPPORT" = module; - "IP_SET_HASH_IPPORTIP" = module; - "IP_SET_HASH_IPPORTNET" = module; - "IP_SET_HASH_IPMAC" = module; - "IP_SET_HASH_MAC" = module; - "IP_SET_HASH_NETPORTNET" = module; - "IP_SET_HASH_NET" = module; - "IP_SET_HASH_NETNET" = module; - "IP_SET_HASH_NETPORT" = module; - "IP_SET_HASH_NETIFACE" = module; - "IP_SET_LIST_SET" = module; - "IP_VS" = module; - "IP_VS_IPV6" = yes; - "IP_VS_TAB_BITS" = freeform "12"; - "IP_VS_PROTO_TCP" = yes; - "IP_VS_PROTO_UDP" = yes; - "IP_VS_PROTO_AH_ESP" = yes; - "IP_VS_PROTO_ESP" = yes; - "IP_VS_PROTO_AH" = yes; - "IP_VS_PROTO_SCTP" = yes; - "IP_VS_RR" = module; - "IP_VS_WRR" = module; - "IP_VS_LC" = module; - "IP_VS_WLC" = module; - "IP_VS_FO" = module; - "IP_VS_OVF" = module; - "IP_VS_LBLC" = module; - "IP_VS_LBLCR" = module; - "IP_VS_DH" = module; - "IP_VS_SH" = module; - "IP_VS_MH" = module; - "IP_VS_SED" = module; - "IP_VS_NQ" = module; - "IP_VS_SH_TAB_BITS" = freeform "8"; - "IP_VS_MH_TAB_INDEX" = freeform "12"; - "IP_VS_FTP" = module; - "IP_VS_NFCT" = yes; - "IP_VS_PE_SIP" = module; - "NF_DEFRAG_IPV4" = module; - "NF_SOCKET_IPV4" = module; - "NF_TPROXY_IPV4" = module; - "NF_TABLES_IPV4" = yes; - "NFT_REJECT_IPV4" = module; - "NFT_DUP_IPV4" = module; - "NFT_FIB_IPV4" = module; - "NF_TABLES_ARP" = yes; - "NF_FLOW_TABLE_IPV4" = module; - "NF_DUP_IPV4" = module; - "NF_LOG_ARP" = module; - "NF_LOG_IPV4" = module; - "NF_REJECT_IPV4" = module; - "NF_NAT_SNMP_BASIC" = module; - "NF_NAT_PPTP" = module; - "NF_NAT_H323" = module; - "IP_NF_IPTABLES" = module; - "IP_NF_MATCH_AH" = module; - "IP_NF_MATCH_ECN" = module; - "IP_NF_MATCH_RPFILTER" = module; - "IP_NF_MATCH_TTL" = module; - "IP_NF_FILTER" = module; - "IP_NF_TARGET_REJECT" = module; - "IP_NF_TARGET_SYNPROXY" = module; - "IP_NF_NAT" = module; - "IP_NF_TARGET_MASQUERADE" = module; - "IP_NF_TARGET_NETMAP" = module; - "IP_NF_TARGET_REDIRECT" = module; - "IP_NF_MANGLE" = module; - "IP_NF_TARGET_CLUSTERIP" = module; - "IP_NF_TARGET_ECN" = module; - "IP_NF_TARGET_TTL" = module; - "IP_NF_RAW" = module; - "IP_NF_SECURITY" = module; - "IP_NF_ARPTABLES" = module; - "IP_NF_ARPFILTER" = module; - "IP_NF_ARP_MANGLE" = module; - "NF_SOCKET_IPV6" = module; - "NF_TPROXY_IPV6" = module; - "NF_TABLES_IPV6" = yes; - "NFT_REJECT_IPV6" = module; - "NFT_DUP_IPV6" = module; - "NFT_FIB_IPV6" = module; - "NF_FLOW_TABLE_IPV6" = module; - "NF_DUP_IPV6" = module; - "NF_REJECT_IPV6" = module; - "NF_LOG_IPV6" = module; - "IP6_NF_IPTABLES" = module; - "IP6_NF_MATCH_AH" = module; - "IP6_NF_MATCH_EUI64" = module; - "IP6_NF_MATCH_FRAG" = module; - "IP6_NF_MATCH_OPTS" = module; - "IP6_NF_MATCH_HL" = module; - "IP6_NF_MATCH_IPV6HEADER" = module; - "IP6_NF_MATCH_MH" = module; - "IP6_NF_MATCH_RPFILTER" = module; - "IP6_NF_MATCH_RT" = module; - "IP6_NF_MATCH_SRH" = module; - "IP6_NF_TARGET_HL" = module; - "IP6_NF_FILTER" = module; - "IP6_NF_TARGET_REJECT" = module; - "IP6_NF_TARGET_SYNPROXY" = module; - "IP6_NF_MANGLE" = module; - "IP6_NF_RAW" = module; - "IP6_NF_SECURITY" = module; - "IP6_NF_NAT" = module; - "IP6_NF_TARGET_MASQUERADE" = module; - "IP6_NF_TARGET_NPT" = module; - "NF_DEFRAG_IPV6" = module; - "DECNET_NF_GRABULATOR" = module; - "NF_TABLES_BRIDGE" = module; - "NFT_BRIDGE_META" = module; - "NFT_BRIDGE_REJECT" = module; - "NF_LOG_BRIDGE" = module; - "NF_CONNTRACK_BRIDGE" = module; - "BRIDGE_NF_EBTABLES" = module; - "BRIDGE_EBT_BROUTE" = module; - "BRIDGE_EBT_T_FILTER" = module; - "BRIDGE_EBT_T_NAT" = module; - "BRIDGE_EBT_802_3" = module; - "BRIDGE_EBT_AMONG" = module; - "BRIDGE_EBT_ARP" = module; - "BRIDGE_EBT_IP" = module; - "BRIDGE_EBT_IP6" = module; - "BRIDGE_EBT_LIMIT" = module; - "BRIDGE_EBT_MARK" = module; - "BRIDGE_EBT_PKTTYPE" = module; - "BRIDGE_EBT_STP" = module; - "BRIDGE_EBT_VLAN" = module; - "BRIDGE_EBT_ARPREPLY" = module; - "BRIDGE_EBT_DNAT" = module; - "BRIDGE_EBT_MARK_T" = module; - "BRIDGE_EBT_REDIRECT" = module; - "BRIDGE_EBT_SNAT" = module; - "BRIDGE_EBT_LOG" = module; - "BRIDGE_EBT_NFLOG" = module; - "BPFILTER" = yes; - "BPFILTER_UMH" = module; - "IP_SCTP" = module; - "SCTP_DBG_OBJCNT" = yes; - "SCTP_DEFAULT_COOKIE_HMAC_MD5" = yes; - "SCTP_COOKIE_HMAC_MD5" = yes; - "SCTP_COOKIE_HMAC_SHA1" = yes; - "INET_SCTP_DIAG" = module; - "RDS" = module; - "RDS_TCP" = module; - "TIPC" = module; - "TIPC_MEDIA_UDP" = yes; - "TIPC_CRYPTO" = yes; - "TIPC_DIAG" = module; - "ATM" = module; - "ATM_CLIP" = module; - "ATM_CLIP_NO_ICMP" = yes; - "ATM_LANE" = module; - "ATM_MPOA" = module; - "ATM_BR2684" = module; - "ATM_BR2684_IPFILTER" = yes; - "L2TP" = module; - "L2TP_DEBUGFS" = module; - "L2TP_V3" = yes; - "L2TP_IP" = module; - "L2TP_ETH" = module; - "STP" = yes; - "GARP" = yes; - "MRP" = yes; - "BRIDGE" = module; - "BRIDGE_IGMP_SNOOPING" = yes; - "BRIDGE_VLAN_FILTERING" = yes; - "HAVE_NET_DSA" = yes; - "NET_DSA" = module; - "NET_DSA_TAG_8021Q" = module; - "NET_DSA_TAG_AR9331" = module; - "NET_DSA_TAG_BRCM_COMMON" = module; - "NET_DSA_TAG_BRCM" = module; - "NET_DSA_TAG_BRCM_PREPEND" = module; - "NET_DSA_TAG_GSWIP" = module; - "NET_DSA_TAG_DSA" = module; - "NET_DSA_TAG_EDSA" = module; - "NET_DSA_TAG_MTK" = module; - "NET_DSA_TAG_KSZ" = module; - "NET_DSA_TAG_RTL4_A" = module; - "NET_DSA_TAG_OCELOT" = module; - "NET_DSA_TAG_QCA" = module; - "NET_DSA_TAG_LAN9303" = module; - "NET_DSA_TAG_SJA1105" = module; - "NET_DSA_TAG_TRAILER" = module; - "VLAN_8021Q" = yes; - "VLAN_8021Q_GVRP" = yes; - "VLAN_8021Q_MVRP" = yes; - "DECNET" = module; - "DECNET_ROUTER" = yes; - "LLC" = yes; - "LLC2" = module; - "ATALK" = module; - "DEV_APPLETALK" = module; - "IPDDP" = module; - "IPDDP_ENCAP" = yes; - "X25" = module; - "LAPB" = module; - "PHONET" = module; - "6LOWPAN" = module; - "6LOWPAN_NHC" = module; - "6LOWPAN_NHC_DEST" = module; - "6LOWPAN_NHC_FRAGMENT" = module; - "6LOWPAN_NHC_HOP" = module; - "6LOWPAN_NHC_IPV6" = module; - "6LOWPAN_NHC_MOBILITY" = module; - "6LOWPAN_NHC_ROUTING" = module; - "6LOWPAN_NHC_UDP" = module; - "IEEE802154" = module; - "IEEE802154_NL802154_EXPERIMENTAL" = yes; - "IEEE802154_SOCKET" = module; - "IEEE802154_6LOWPAN" = module; - "MAC802154" = module; - "NET_SCHED" = yes; - "NET_SCH_CBQ" = module; - "NET_SCH_HTB" = module; - "NET_SCH_HFSC" = module; - "NET_SCH_ATM" = module; - "NET_SCH_PRIO" = module; - "NET_SCH_MULTIQ" = module; - "NET_SCH_RED" = module; - "NET_SCH_SFB" = module; - "NET_SCH_SFQ" = module; - "NET_SCH_TEQL" = module; - "NET_SCH_TBF" = module; - "NET_SCH_CBS" = module; - "NET_SCH_ETF" = module; - "NET_SCH_TAPRIO" = module; - "NET_SCH_GRED" = module; - "NET_SCH_DSMARK" = module; - "NET_SCH_NETEM" = module; - "NET_SCH_DRR" = module; - "NET_SCH_MQPRIO" = module; - "NET_SCH_SKBPRIO" = module; - "NET_SCH_CHOKE" = module; - "NET_SCH_QFQ" = module; - "NET_SCH_CODEL" = module; - "NET_SCH_FQ_CODEL" = module; - "NET_SCH_CAKE" = module; - "NET_SCH_FQ" = module; - "NET_SCH_HHF" = module; - "NET_SCH_PIE" = module; - "NET_SCH_FQ_PIE" = module; - "NET_SCH_INGRESS" = module; - "NET_SCH_PLUG" = module; - "NET_SCH_ETS" = module; - "NET_SCH_DEFAULT" = yes; - "DEFAULT_PFIFO_FAST" = yes; - "DEFAULT_NET_SCH" = freeform "pfifo_fast"; - "NET_CLS" = yes; - "NET_CLS_BASIC" = module; - "NET_CLS_TCINDEX" = module; - "NET_CLS_ROUTE4" = module; - "NET_CLS_FW" = module; - "NET_CLS_U32" = module; - "CLS_U32_PERF" = yes; - "CLS_U32_MARK" = yes; - "NET_CLS_RSVP" = module; - "NET_CLS_RSVP6" = module; - "NET_CLS_FLOW" = module; - "NET_CLS_CGROUP" = module; - "NET_CLS_BPF" = module; - "NET_CLS_FLOWER" = module; - "NET_CLS_MATCHALL" = module; - "NET_EMATCH" = yes; - "NET_EMATCH_STACK" = freeform "32"; - "NET_EMATCH_CMP" = module; - "NET_EMATCH_NBYTE" = module; - "NET_EMATCH_U32" = module; - "NET_EMATCH_META" = module; - "NET_EMATCH_TEXT" = module; - "NET_EMATCH_CANID" = module; - "NET_EMATCH_IPSET" = module; - "NET_EMATCH_IPT" = module; - "NET_CLS_ACT" = yes; - "NET_ACT_POLICE" = module; - "NET_ACT_GACT" = module; - "GACT_PROB" = yes; - "NET_ACT_MIRRED" = module; - "NET_ACT_SAMPLE" = module; - "NET_ACT_IPT" = module; - "NET_ACT_NAT" = module; - "NET_ACT_PEDIT" = module; - "NET_ACT_SIMP" = module; - "NET_ACT_SKBEDIT" = module; - "NET_ACT_CSUM" = module; - "NET_ACT_MPLS" = module; - "NET_ACT_VLAN" = module; - "NET_ACT_BPF" = module; - "NET_ACT_CONNMARK" = module; - "NET_ACT_CTINFO" = module; - "NET_ACT_SKBMOD" = module; - "NET_ACT_IFE" = module; - "NET_ACT_TUNNEL_KEY" = module; - "NET_ACT_CT" = module; - "NET_IFE_SKBMARK" = module; - "NET_IFE_SKBPRIO" = module; - "NET_IFE_SKBTCINDEX" = module; - "NET_SCH_FIFO" = yes; - "DCB" = yes; - "DNS_RESOLVER" = yes; - "BATMAN_ADV" = module; - "BATMAN_ADV_BATMAN_V" = yes; - "BATMAN_ADV_BLA" = yes; - "BATMAN_ADV_DAT" = yes; - "BATMAN_ADV_NC" = yes; - "BATMAN_ADV_MCAST" = yes; - "BATMAN_ADV_DEBUGFS" = yes; - "BATMAN_ADV_DEBUG" = yes; - "BATMAN_ADV_SYSFS" = yes; - "OPENVSWITCH" = module; - "OPENVSWITCH_GRE" = module; - "OPENVSWITCH_VXLAN" = module; - "OPENVSWITCH_GENEVE" = module; - "VSOCKETS" = module; - "VSOCKETS_DIAG" = module; - "VSOCKETS_LOOPBACK" = module; - "VIRTIO_VSOCKETS" = module; - "VIRTIO_VSOCKETS_COMMON" = module; - "NETLINK_DIAG" = module; - "MPLS" = yes; - "NET_MPLS_GSO" = module; - "MPLS_ROUTING" = module; - "MPLS_IPTUNNEL" = module; - "NET_NSH" = module; - "HSR" = module; - "NET_SWITCHDEV" = yes; - "NET_L3_MASTER_DEV" = yes; - "RPS" = yes; - "RFS_ACCEL" = yes; - "XPS" = yes; - "CGROUP_NET_PRIO" = yes; - "CGROUP_NET_CLASSID" = yes; - "NET_RX_BUSY_POLL" = yes; - "BQL" = yes; - "BPF_JIT" = yes; - "NET_FLOW_LIMIT" = yes; - "NET_PKTGEN" = module; - "NET_DROP_MONITOR" = yes; - "HAMRADIO" = yes; - "AX25" = module; - "AX25_DAMA_SLAVE" = yes; - "NETROM" = module; - "ROSE" = module; - "MKISS" = module; - "6PACK" = module; - "BPQETHER" = module; - "BAYCOM_SER_FDX" = module; - "BAYCOM_SER_HDX" = module; - "YAM" = module; - "CAN" = module; - "CAN_RAW" = module; - "CAN_BCM" = module; - "CAN_GW" = module; - "CAN_J1939" = module; - "CAN_VCAN" = module; - "CAN_VXCAN" = module; - "CAN_SLCAN" = module; - "CAN_DEV" = module; - "CAN_CALC_BITTIMING" = yes; - "CAN_GRCAN" = module; - "CAN_KVASER_PCIEFD" = module; - "CAN_XILINXCAN" = module; - "CAN_C_CAN" = module; - "CAN_C_CAN_PLATFORM" = module; - "CAN_C_CAN_PCI" = module; - "CAN_CC770" = module; - "CAN_CC770_ISA" = module; - "CAN_CC770_PLATFORM" = module; - "CAN_M_CAN" = module; - "CAN_M_CAN_PLATFORM" = module; - "CAN_M_CAN_TCAN4X5X" = module; - "CAN_PEAK_PCIEFD" = module; - "CAN_SJA1000" = module; - "CAN_EMS_PCI" = module; - "CAN_F81601" = module; - "CAN_KVASER_PCI" = module; - "CAN_PEAK_PCI" = module; - "CAN_PEAK_PCIEC" = yes; - "CAN_PLX_PCI" = module; - "CAN_SJA1000_ISA" = module; - "CAN_SJA1000_PLATFORM" = module; - "CAN_SOFTING" = module; - "CAN_HI311X" = module; - "CAN_MCP251X" = module; - "CAN_8DEV_USB" = module; - "CAN_EMS_USB" = module; - "CAN_ESD_USB2" = module; - "CAN_GS_USB" = module; - "CAN_KVASER_USB" = module; - "CAN_MCBA_USB" = module; - "CAN_PEAK_USB" = module; - "CAN_UCAN" = module; - "BT" = no; - "AF_RXRPC" = module; - "STREAM_PARSER" = yes; - "FIB_RULES" = yes; - "WIRELESS" = no; - "RFKILL" = module; - "RFKILL_LEDS" = yes; - "RFKILL_INPUT" = yes; - "RFKILL_GPIO" = module; - "NET_9P" = module; - "NET_9P_VIRTIO" = module; - "NET_9P_XEN" = module; - "CEPH_LIB" = module; - "CEPH_LIB_USE_DNS_RESOLVER" = yes; - "NFC" = no; - "PSAMPLE" = module; - "NET_IFE" = module; - "LWTUNNEL" = yes; - "LWTUNNEL_BPF" = yes; - "DST_CACHE" = yes; - "GRO_CELLS" = yes; - "SOCK_VALIDATE_XMIT" = yes; - "NET_SOCK_MSG" = yes; - "NET_DEVLINK" = yes; - "PAGE_POOL" = yes; - "FAILOVER" = module; - "ETHTOOL_NETLINK" = yes; - "HAVE_EBPF_JIT" = yes; - "ARM_AMBA" = yes; - "HAVE_PCI" = yes; - "PCI" = yes; - "PCI_DOMAINS" = yes; - "PCI_DOMAINS_GENERIC" = yes; - "PCI_SYSCALL" = yes; - "PCIEPORTBUS" = yes; - "PCIEAER" = yes; - "PCIEASPM" = yes; - "PCIEASPM_PERFORMANCE" = yes; - "PCIE_PME" = yes; - "PCI_MSI" = yes; - "PCI_MSI_IRQ_DOMAIN" = yes; - "PCI_QUIRKS" = yes; - "PCI_ATS" = yes; - "PCI_IOV" = yes; - "PCI_LABEL" = yes; - "HOTPLUG_PCI" = yes; - "PCIE_ROCKCHIP" = yes; - "PCIE_ROCKCHIP_HOST" = yes; - "PCIE_ROCKCHIP_EP" = yes; - "PCI_ENDPOINT" = yes; - "PCI_ENDPOINT_CONFIGFS" = yes; - "DEVTMPFS" = yes; - "DEVTMPFS_MOUNT" = yes; - "PREVENT_FIRMWARE_BUILD" = yes; - "FW_LOADER" = yes; - "FW_CACHE" = yes; - "WANT_DEV_COREDUMP" = yes; - "ALLOW_DEV_COREDUMP" = yes; - "DEV_COREDUMP" = yes; - "SYS_HYPERVISOR" = yes; - "GENERIC_CPU_AUTOPROBE" = yes; - "GENERIC_CPU_VULNERABILITIES" = yes; - "SOC_BUS" = yes; - "REGMAP" = yes; - "REGMAP_I2C" = yes; - "REGMAP_SPI" = module; - "REGMAP_W1" = module; - "REGMAP_MMIO" = yes; - "REGMAP_IRQ" = yes; - "REGMAP_SCCB" = module; - "DMA_SHARED_BUFFER" = yes; - "GENERIC_ARCH_TOPOLOGY" = yes; - "ARM_CCI" = yes; - "BRCMSTB_GISB_ARB" = yes; - "SUN50I_DE2_BUS" = yes; - "SUNXI_RSB" = module; - "VEXPRESS_CONFIG" = yes; - "MHI_BUS" = module; - "CONNECTOR" = yes; - "GNSS" = module; - "GNSS_SERIAL" = module; - "GNSS_MTK_SERIAL" = module; - "GNSS_SIRF_SERIAL" = module; - "GNSS_UBX_SERIAL" = module; - "MTD" = yes; - "MTD_OF_PARTS" = yes; - "MTD_BLKDEVS" = yes; - "MTD_BLOCK" = yes; - "MTD_CFI" = module; - "MTD_GEN_PROBE" = module; - "MTD_MAP_BANK_WIDTH_1" = yes; - "MTD_MAP_BANK_WIDTH_2" = yes; - "MTD_MAP_BANK_WIDTH_4" = yes; - "MTD_CFI_I1" = yes; - "MTD_CFI_I2" = yes; - "MTD_CFI_AMDSTD" = module; - "MTD_CFI_UTIL" = module; - "MTD_COMPLEX_MAPPINGS" = yes; - "MTD_SPI_NOR" = yes; - "MTD_SPI_NOR_USE_4K_SECTORS" = yes; - "MTD_HYPERBUS" = module; - "HBMC_AM654" = module; - "DTC" = yes; - "OF" = yes; - "OF_FLATTREE" = yes; - "OF_EARLY_FLATTREE" = yes; - "OF_KOBJ" = yes; - "OF_DYNAMIC" = yes; - "OF_ADDRESS" = yes; - "OF_IRQ" = yes; - "OF_NET" = yes; - "OF_MDIO" = yes; - "OF_RESERVED_MEM" = yes; - "OF_RESOLVE" = yes; - "OF_OVERLAY" = yes; - "OF_NUMA" = yes; - "OF_CONFIGFS" = yes; - "BLK_DEV" = yes; - "CDROM" = module; - "ZRAM" = module; - "ZRAM_WRITEBACK" = yes; - "BLK_DEV_UMEM" = module; - "BLK_DEV_LOOP" = yes; - "BLK_DEV_LOOP_MIN_COUNT" = freeform "8"; - "BLK_DEV_CRYPTOLOOP" = module; - "BLK_DEV_DRBD" = module; - "BLK_DEV_NBD" = module; - "BLK_DEV_SKD" = module; - "BLK_DEV_SX8" = module; - "BLK_DEV_RAM" = module; - "BLK_DEV_RAM_COUNT" = freeform "8"; - "BLK_DEV_RAM_SIZE" = freeform "4096"; - "ATA_OVER_ETH" = module; - "XEN_BLKDEV_FRONTEND" = yes; - "XEN_BLKDEV_BACKEND" = module; - "VIRTIO_BLK" = yes; - "BLK_DEV_RBD" = module; - "BLK_DEV_RSXX" = module; - "NVME_CORE" = yes; - "BLK_DEV_NVME" = yes; - "NVME_MULTIPATH" = yes; - "NVME_FABRICS" = module; - "NVME_FC" = module; - "NVME_TARGET" = module; - "NVME_TARGET_LOOP" = module; - "NVME_TARGET_FC" = module; - "PHANTOM" = module; - "TIFM_CORE" = module; - "TIFM_7XX1" = module; - "SRAM" = yes; - "XILINX_SDFEC" = module; - "MISC_RTSX" = module; - "EEPROM_AT24" = module; - "EEPROM_AT25" = module; - "EEPROM_LEGACY" = module; - "EEPROM_93CX6" = module; - "EEPROM_EE1004" = module; - "CB710_CORE" = module; - "CB710_DEBUG_ASSUMPTIONS" = yes; - "GENWQE" = module; - "GENWQE_PLATFORM_ERROR_RECOVERY" = freeform "0"; - "MISC_ALCOR_PCI" = module; - "MISC_RTSX_PCI" = module; - "MISC_RTSX_USB" = module; - "HABANA_AI" = module; - "SCSI_MOD" = yes; - "SCSI" = yes; - "SCSI_DMA" = yes; - "BLK_DEV_SD" = yes; - "BLK_DEV_SR" = module; - "CHR_DEV_SG" = module; - "SCSI_ISCSI_ATTRS" = module; - "SCSI_SAS_ATTRS" = yes; - "SCSI_SAS_LIBSAS" = yes; - "SCSI_SAS_ATA" = yes; - "SCSI_SAS_HOST_SMP" = yes; - "SCSI_LOWLEVEL" = yes; - "ISCSI_TCP" = module; - "SCSI_HISI_SAS" = yes; - "SCSI_FDOMAIN" = module; - "SCSI_FDOMAIN_PCI" = module; - "HAVE_PATA_PLATFORM" = yes; - "ATA" = yes; - "SATA_HOST" = yes; - "ATA_VERBOSE_ERROR" = yes; - "ATA_FORCE" = yes; - "SATA_PMP" = yes; - "SATA_AHCI" = yes; - "SATA_MOBILE_LPM_POLICY" = freeform "0"; - "SATA_AHCI_PLATFORM" = yes; - "AHCI_CEVA" = yes; - "AHCI_SUNXI" = module; - "AHCI_XGENE" = yes; - "AHCI_QORIQ" = yes; - "SATA_SIL24" = yes; - "ATA_SFF" = yes; - "ATA_BMDMA" = yes; - "PATA_PLATFORM" = yes; - "PATA_OF_PLATFORM" = yes; - "MD" = yes; - "BLK_DEV_MD" = module; - "MD_LINEAR" = module; - "MD_RAID0" = module; - "MD_RAID1" = module; - "MD_RAID10" = module; - "MD_RAID456" = module; - "MD_MULTIPATH" = module; - "MD_FAULTY" = module; - "MD_CLUSTER" = module; - "BCACHE" = yes; - "BLK_DEV_DM_BUILTIN" = yes; - "BLK_DEV_DM" = module; - "DM_BUFIO" = module; - "DM_BIO_PRISON" = module; - "DM_PERSISTENT_DATA" = module; - "DM_UNSTRIPED" = module; - "DM_CRYPT" = module; - "DM_SNAPSHOT" = module; - "DM_THIN_PROVISIONING" = module; - "DM_CACHE" = module; - "DM_CACHE_SMQ" = module; - "DM_WRITECACHE" = module; - "DM_ERA" = module; - "DM_CLONE" = module; - "DM_MIRROR" = module; - "DM_LOG_USERSPACE" = module; - "DM_RAID" = module; - "DM_ZERO" = module; - "DM_MULTIPATH" = module; - "DM_MULTIPATH_QL" = module; - "DM_MULTIPATH_ST" = module; - "DM_DELAY" = module; - "DM_DUST" = module; - "DM_UEVENT" = yes; - "DM_FLAKEY" = module; - "DM_VERITY" = module; - "DM_VERITY_FEC" = yes; - "DM_SWITCH" = module; - "DM_LOG_WRITES" = module; - "DM_INTEGRITY" = module; - "DM_ZONED" = module; - "TARGET_CORE" = module; - "TCM_IBLOCK" = module; - "TCM_FILEIO" = module; - "TCM_PSCSI" = module; - "TCM_USER2" = module; - "LOOPBACK_TARGET" = module; - "ISCSI_TARGET" = module; - "NETDEVICES" = yes; - "MII" = yes; - "NET_CORE" = yes; - "BONDING" = module; - "DUMMY" = module; - "WIREGUARD" = module; - "EQUALIZER" = module; - "IFB" = module; - "NET_TEAM" = module; - "NET_TEAM_MODE_BROADCAST" = module; - "NET_TEAM_MODE_ROUNDROBIN" = module; - "NET_TEAM_MODE_RANDOM" = module; - "NET_TEAM_MODE_ACTIVEBACKUP" = module; - "NET_TEAM_MODE_LOADBALANCE" = module; - "MACVLAN" = module; - "MACVTAP" = module; - "IPVLAN_L3S" = yes; - "IPVLAN" = module; - "IPVTAP" = module; - "VXLAN" = module; - "GENEVE" = module; - "GTP" = module; - "MACSEC" = module; - "NETCONSOLE" = module; - "NETCONSOLE_DYNAMIC" = yes; - "NETPOLL" = yes; - "NET_POLL_CONTROLLER" = yes; - "TUN" = yes; - "TAP" = module; - "TUN_VNET_CROSS_LE" = yes; - "VETH" = module; - "VIRTIO_NET" = module; - "NLMON" = module; - "NET_VRF" = module; - "ATM_DRIVERS" = yes; - "ATM_DUMMY" = module; - "ATM_TCP" = module; - "ATM_LANAI" = module; - "ATM_ENI" = module; - "ATM_NICSTAR" = module; - "ATM_IDT77252" = module; - "ATM_IDT77252_USE_SUNI" = yes; - "ATM_IA" = module; - "ATM_FORE200E" = module; - "ATM_FORE200E_TX_RETRY" = freeform "16"; - "ATM_FORE200E_DEBUG" = freeform "0"; - "ATM_HE" = module; - "ATM_SOLOS" = module; - "B53" = module; - "B53_SPI_DRIVER" = module; - "B53_MDIO_DRIVER" = module; - "B53_MMAP_DRIVER" = module; - "B53_SRAB_DRIVER" = module; - "B53_SERDES" = module; - "NET_DSA_BCM_SF2" = module; - "NET_DSA_LOOP" = module; - "NET_DSA_LANTIQ_GSWIP" = module; - "NET_DSA_MT7530" = module; - "NET_DSA_MV88E6060" = module; - "NET_DSA_MICROCHIP_KSZ_COMMON" = module; - "NET_DSA_MICROCHIP_KSZ9477" = module; - "NET_DSA_MICROCHIP_KSZ9477_I2C" = module; - "NET_DSA_MICROCHIP_KSZ9477_SPI" = module; - "NET_DSA_MICROCHIP_KSZ8795" = module; - "NET_DSA_MICROCHIP_KSZ8795_SPI" = module; - "NET_DSA_MV88E6XXX" = module; - "NET_DSA_MV88E6XXX_GLOBAL2" = yes; - "NET_DSA_AR9331" = module; - "NET_DSA_SJA1105" = module; - "NET_DSA_QCA8K" = module; - "NET_DSA_REALTEK_SMI" = module; - "NET_DSA_SMSC_LAN9303" = module; - "NET_DSA_SMSC_LAN9303_I2C" = module; - "NET_DSA_SMSC_LAN9303_MDIO" = module; - "NET_DSA_VITESSE_VSC73XX" = module; - "NET_DSA_VITESSE_VSC73XX_SPI" = module; - "NET_DSA_VITESSE_VSC73XX_PLATFORM" = module; - "ETHERNET" = yes; - "MDIO" = module; - "NET_VENDOR_3COM" = yes; - "NET_VENDOR_ADAPTEC" = yes; - "NET_VENDOR_AGERE" = yes; - "NET_VENDOR_ALACRITECH" = yes; - "NET_VENDOR_ALLWINNER" = yes; - "SUN4I_EMAC" = module; - "NET_VENDOR_ALTEON" = yes; - "NET_VENDOR_AMAZON" = yes; - "NET_VENDOR_AMD" = yes; - "AMD_XGBE" = yes; - "NET_VENDOR_AQUANTIA" = yes; - "AQTION" = module; - "NET_VENDOR_ARC" = yes; - "NET_VENDOR_ATHEROS" = yes; - "ATL2" = module; - "ATL1" = module; - "ATL1E" = module; - "ATL1C" = module; - "ALX" = module; - "NET_VENDOR_AURORA" = yes; - "NET_VENDOR_BROADCOM" = yes; - "B44" = module; - "B44_PCI_AUTOSELECT" = yes; - "B44_PCICORE_AUTOSELECT" = yes; - "B44_PCI" = yes; - "BCMGENET" = module; - "BNX2" = module; - "CNIC" = module; - "TIGON3" = module; - "TIGON3_HWMON" = yes; - "BNX2X" = module; - "BNX2X_SRIOV" = yes; - "SYSTEMPORT" = module; - "BNXT" = module; - "BNXT_SRIOV" = yes; - "BNXT_FLOWER_OFFLOAD" = yes; - "BNXT_HWMON" = yes; - "NET_VENDOR_BROCADE" = yes; - "BNA" = module; - "NET_VENDOR_CADENCE" = yes; - "MACB" = yes; - "MACB_USE_HWSTAMP" = yes; - "NET_VENDOR_CAVIUM" = yes; - "THUNDER_NIC_PF" = yes; - "THUNDER_NIC_BGX" = yes; - "THUNDER_NIC_RGX" = yes; - "CAVIUM_PTP" = yes; - "NET_VENDOR_CHELSIO" = yes; - "NET_VENDOR_CISCO" = yes; - "NET_VENDOR_CORTINA" = yes; - "NET_VENDOR_DEC" = yes; - "NET_VENDOR_DLINK" = yes; - "DL2K" = module; - "NET_VENDOR_EMULEX" = yes; - "NET_VENDOR_EZCHIP" = yes; - "NET_VENDOR_GOOGLE" = yes; - "NET_VENDOR_HISILICON" = yes; - "HIX5HD2_GMAC" = yes; - "HNS_MDIO" = yes; - "HNS" = yes; - "HNS_DSAF" = yes; - "HNS_ENET" = yes; - "NET_VENDOR_HUAWEI" = yes; - "NET_VENDOR_I825XX" = yes; - "NET_VENDOR_INTEL" = yes; - "E1000E" = yes; - "IGB" = yes; - "IGB_HWMON" = yes; - "IGBVF" = yes; - "NET_VENDOR_MARVELL" = yes; - "MVMDIO" = yes; - "SKY2" = yes; - "OCTEONTX2_MBOX" = module; - "OCTEONTX2_PF" = module; - "OCTEONTX2_VF" = module; - "NET_VENDOR_MELLANOX" = yes; - "NET_VENDOR_MICREL" = yes; - "NET_VENDOR_MICROCHIP" = yes; - "ENC28J60" = module; - "ENC28J60_WRITEVERIFY" = yes; - "NET_VENDOR_MICROSEMI" = yes; - "MSCC_OCELOT_SWITCH_LIB" = module; - "MSCC_OCELOT_SWITCH" = module; - "NET_VENDOR_MYRI" = yes; - "NET_VENDOR_NATSEMI" = yes; - "NET_VENDOR_NETERION" = yes; - "NET_VENDOR_NETRONOME" = yes; - "NET_VENDOR_NI" = yes; - "NET_VENDOR_8390" = yes; - "NET_VENDOR_NVIDIA" = yes; - "NET_VENDOR_OKI" = yes; - "NET_VENDOR_PACKET_ENGINES" = yes; - "NET_VENDOR_PENSANDO" = yes; - "IONIC" = module; - "NET_VENDOR_QLOGIC" = yes; - "NET_VENDOR_QUALCOMM" = yes; - "QCA7000" = module; - "QCA7000_UART" = module; - "QCOM_EMAC" = module; - "NET_VENDOR_RDC" = yes; - "NET_VENDOR_REALTEK" = yes; - "NET_VENDOR_RENESAS" = yes; - "NET_VENDOR_ROCKER" = yes; - "ROCKER" = module; - "NET_VENDOR_SAMSUNG" = yes; - "NET_VENDOR_SEEQ" = yes; - "NET_VENDOR_SOLARFLARE" = yes; - "NET_VENDOR_SILAN" = yes; - "NET_VENDOR_SIS" = yes; - "NET_VENDOR_SMSC" = yes; - "SMC91X" = yes; - "SMSC911X" = yes; - "NET_VENDOR_SOCIONEXT" = yes; - "NET_VENDOR_STMICRO" = yes; - "STMMAC_ETH" = module; - "STMMAC_PLATFORM" = module; - "DWMAC_GENERIC" = module; - "DWMAC_MESON" = module; - "DWMAC_ROCKCHIP" = module; - "DWMAC_SUNXI" = module; - "DWMAC_SUN8I" = module; - "NET_VENDOR_SUN" = yes; - "NET_VENDOR_SYNOPSYS" = yes; - "NET_VENDOR_TEHUTI" = yes; - "NET_VENDOR_TI" = yes; - "NET_VENDOR_VIA" = yes; - "NET_VENDOR_WIZNET" = yes; - "NET_VENDOR_XILINX" = yes; - "XILINX_AXI_EMAC" = module; - "XILINX_LL_TEMAC" = module; - "MDIO_DEVICE" = yes; - "MDIO_BUS" = yes; - "MDIO_DEVRES" = yes; - "MDIO_BCM_UNIMAC" = module; - "MDIO_BITBANG" = yes; - "MDIO_BUS_MUX" = yes; - "MDIO_BUS_MUX_MESON_G12A" = module; - "MDIO_BUS_MUX_MMIOREG" = yes; - "MDIO_BUS_MUX_MULTIPLEXER" = module; - "MDIO_CAVIUM" = yes; - "MDIO_I2C" = module; - "MDIO_IPQ8064" = module; - "MDIO_MSCC_MIIM" = module; - "MDIO_MVUSB" = module; - "MDIO_SUN4I" = module; - "MDIO_THUNDER" = yes; - "MDIO_XPCS" = module; - "PHYLINK" = yes; - "PHYLIB" = yes; - "SWPHY" = yes; - "LED_TRIGGER_PHY" = yes; - "SFP" = module; - "ADIN_PHY" = module; - "AMD_PHY" = module; - "AQUANTIA_PHY" = module; - "AX88796B_PHY" = module; - "BCM7XXX_PHY" = module; - "BCM87XX_PHY" = module; - "BCM_NET_PHYLIB" = module; - "BROADCOM_PHY" = module; - "BCM84881_PHY" = module; - "CICADA_PHY" = module; - "DAVICOM_PHY" = module; - "DP83TC811_PHY" = module; - "DP83848_PHY" = module; - "DP83869_PHY" = module; - "FIXED_PHY" = yes; - "ICPLUS_PHY" = module; - "LSI_ET1011C_PHY" = module; - "LXT_PHY" = module; - "MARVELL_PHY" = module; - "MARVELL_10G_PHY" = module; - "MESON_GXL_PHY" = module; - "MICREL_PHY" = yes; - "MICROCHIP_PHY" = module; - "MICROCHIP_T1_PHY" = module; - "NATIONAL_PHY" = module; - "AT803X_PHY" = module; - "QSEMI_PHY" = module; - "REALTEK_PHY" = module; - "ROCKCHIP_PHY" = yes; - "VITESSE_PHY" = module; - "PPP" = module; - "PPP_BSDCOMP" = module; - "PPP_DEFLATE" = module; - "PPP_FILTER" = yes; - "PPP_MPPE" = module; - "PPP_MULTILINK" = yes; - "PPPOATM" = module; - "PPPOE" = module; - "PPTP" = module; - "PPPOL2TP" = module; - "PPP_ASYNC" = module; - "PPP_SYNC_TTY" = module; - "SLIP" = module; - "SLHC" = module; - "SLIP_COMPRESSED" = yes; - "SLIP_SMART" = yes; - "SLIP_MODE_SLIP6" = yes; - "USB_NET_DRIVERS" = yes; - "USB_CATC" = module; - "USB_KAWETH" = module; - "USB_PEGASUS" = module; - "USB_RTL8150" = module; - "USB_RTL8152" = module; - "USB_LAN78XX" = module; - "USB_USBNET" = module; - "USB_NET_AX8817X" = module; - "USB_NET_AX88179_178A" = module; - "USB_NET_CDCETHER" = module; - "USB_NET_CDC_EEM" = module; - "USB_NET_CDC_NCM" = no; - "USB_NET_HUAWEI_CDC_NCM" = no; - "USB_NET_CDC_MBIM" = no; - "USB_NET_DM9601" = module; - "USB_NET_SR9700" = module; - "USB_NET_SR9800" = module; - "USB_NET_SMSC75XX" = module; - "USB_NET_SMSC95XX" = module; - "USB_NET_GL620A" = module; - "USB_NET_NET1080" = module; - "USB_NET_PLUSB" = module; - "USB_NET_MCS7830" = module; - "USB_NET_RNDIS_HOST" = module; - "USB_NET_CDC_SUBSET_ENABLE" = module; - "USB_NET_CDC_SUBSET" = module; - "USB_ALI_M5632" = yes; - "USB_AN2720" = yes; - "USB_BELKIN" = yes; - "USB_ARMLINUX" = yes; - "USB_EPSON2888" = yes; - "USB_KC2190" = yes; - "USB_NET_ZAURUS" = module; - "USB_NET_CX82310_ETH" = module; - "USB_NET_KALMIA" = module; - "USB_NET_QMI_WWAN" = module; - "USB_HSO" = module; - "USB_NET_INT51X1" = module; - "USB_CDC_PHONET" = module; - "USB_IPHETH" = module; - "USB_SIERRA_NET" = module; - "USB_VL600" = module; - "USB_NET_CH9200" = module; - "USB_NET_AQC111" = module; - "WLAN" = yes; - "WIRELESS_WDS" = yes; - "ATH_COMMON" = module; - "WLAN_VENDOR_ATH" = yes; - "ATH9K_HW" = module; - "ATH9K_COMMON" = module; - "ATH9K_BTCOEX_SUPPORT" = yes; - "ATH9K" = module; - "ATH9K_PCI" = yes; - "ATH9K_AHB" = yes; - "ATH9K_DYNACK" = yes; - "ATH9K_WOW" = yes; - "ATH9K_RFKILL" = yes; - "ATH9K_PCOEM" = yes; - "ATH9K_PCI_NO_EEPROM" = module; - "ATH9K_HTC" = module; - "CARL9170" = module; - "CARL9170_LEDS" = yes; - "CARL9170_WPC" = yes; - "ATH6KL" = module; - "ATH6KL_SDIO" = module; - "ATH6KL_USB" = module; - "AR5523" = module; - "WIL6210" = module; - "WIL6210_ISR_COR" = yes; - "WIL6210_DEBUGFS" = yes; - "ATH10K" = module; - "ATH10K_CE" = yes; - "ATH10K_PCI" = module; - "ATH10K_AHB" = yes; - "ATH10K_SDIO" = module; - "ATH10K_USB" = module; - "WLAN_VENDOR_ATMEL" = yes; - "ATMEL" = module; - "PCI_ATMEL" = module; - "AT76C50X_USB" = module; - "WLAN_VENDOR_BROADCOM" = yes; - "B43" = module; - "B43_BCMA" = yes; - "B43_SSB" = yes; - "B43_BUSES_BCMA_AND_SSB" = yes; - "B43_PCI_AUTOSELECT" = yes; - "B43_PCICORE_AUTOSELECT" = yes; - "B43_BCMA_PIO" = yes; - "B43_PIO" = yes; - "B43_PHY_G" = yes; - "B43_PHY_N" = yes; - "B43_PHY_LP" = yes; - "B43_PHY_HT" = yes; - "B43_LEDS" = yes; - "B43_HWRNG" = yes; - "B43LEGACY" = module; - "B43LEGACY_PCI_AUTOSELECT" = yes; - "B43LEGACY_PCICORE_AUTOSELECT" = yes; - "B43LEGACY_LEDS" = yes; - "B43LEGACY_HWRNG" = yes; - "B43LEGACY_DEBUG" = yes; - "B43LEGACY_DMA" = yes; - "B43LEGACY_PIO" = yes; - "B43LEGACY_DMA_AND_PIO_MODE" = yes; - "BRCMUTIL" = module; - "BRCMSMAC" = module; - "BRCMFMAC" = module; - "BRCMFMAC_PROTO_BCDC" = yes; - "BRCMFMAC_PROTO_MSGBUF" = yes; - "BRCMFMAC_SDIO" = yes; - "BRCMFMAC_USB" = yes; - "BRCMFMAC_PCIE" = yes; - "BRCM_TRACING" = yes; - "BRCMDBG" = yes; - "WLAN_VENDOR_CISCO" = yes; - "WLAN_VENDOR_INTEL" = yes; - "IPW2100" = module; - "LIBIPW" = module; - "WLAN_VENDOR_INTERSIL" = yes; - "WLAN_VENDOR_MARVELL" = yes; - "LIBERTAS_THINFIRM" = module; - "LIBERTAS_THINFIRM_USB" = module; - "MWL8K" = module; - "WLAN_VENDOR_MEDIATEK" = yes; - "MT7601U" = module; - "MT76_CORE" = module; - "MT76_LEDS" = yes; - "MT76_USB" = module; - "MT76x02_LIB" = module; - "MT76x02_USB" = module; - "MT76x0_COMMON" = module; - "MT76x0U" = module; - "MT76x0E" = module; - "MT76x2_COMMON" = module; - "MT76x2E" = module; - "MT76x2U" = module; - "MT7603E" = module; - "MT7615_COMMON" = module; - "MT7615E" = module; - "WLAN_VENDOR_MICROCHIP" = yes; - "WLAN_VENDOR_RALINK" = yes; - "RT2X00" = module; - "RT2400PCI" = module; - "RT2500PCI" = module; - "RT61PCI" = module; - "RT2800PCI" = module; - "RT2800PCI_RT33XX" = yes; - "RT2800PCI_RT35XX" = yes; - "RT2800PCI_RT53XX" = yes; - "RT2800PCI_RT3290" = yes; - "RT2500USB" = module; - "RT73USB" = module; - "RT2800USB" = module; - "RT2800USB_RT33XX" = yes; - "RT2800USB_RT35XX" = yes; - "RT2800USB_RT3573" = yes; - "RT2800USB_RT53XX" = yes; - "RT2800USB_RT55XX" = yes; - "RT2800_LIB" = module; - "RT2800_LIB_MMIO" = module; - "RT2X00_LIB_MMIO" = module; - "RT2X00_LIB_PCI" = module; - "RT2X00_LIB_USB" = module; - "RT2X00_LIB" = module; - "RT2X00_LIB_FIRMWARE" = yes; - "RT2X00_LIB_CRYPTO" = yes; - "RT2X00_LIB_LEDS" = yes; - "WLAN_VENDOR_REALTEK" = yes; - "RTL8180" = module; - "RTL8187" = module; - "RTL8187_LEDS" = yes; - "RTL_CARDS" = module; - "RTL8192CE" = module; - "RTL8192SE" = module; - "RTL8192DE" = module; - "RTL8723AE" = module; - "RTL8723BE" = module; - "RTL8188EE" = module; - "RTL8192EE" = module; - "RTL8821AE" = module; - "RTL8192CU" = module; - "RTLWIFI" = module; - "RTLWIFI_PCI" = module; - "RTLWIFI_USB" = module; - "RTL8192C_COMMON" = module; - "RTL8723_COMMON" = module; - "RTLBTCOEXIST" = module; - "RTL8XXXU" = module; - "RTW88" = module; - "WLAN_VENDOR_RSI" = yes; - "RSI_91X" = module; - "RSI_SDIO" = module; - "RSI_USB" = module; - "RSI_COEX" = yes; - "WLAN_VENDOR_ST" = yes; - "CW1200" = module; - "CW1200_WLAN_SDIO" = module; - "CW1200_WLAN_SPI" = module; - "WLAN_VENDOR_TI" = yes; - "WL1251" = module; - "WL1251_SPI" = module; - "WL1251_SDIO" = module; - "WL12XX" = module; - "WL18XX" = module; - "WLCORE" = module; - "WLCORE_SPI" = module; - "WLCORE_SDIO" = module; - "WILINK_PLATFORM_DATA" = yes; - "RTL8723DU" = module; - "RTL8723DS" = module; - "RTL8822BU" = module; - "RTL8188EU" = module; - "RTL8821CU" = module; - "88XXAU" = module; - "RTL8189FS" = module; - "RTL8189ES" = module; - "WLAN_VENDOR_ZYDAS" = yes; - "USB_ZD1201" = module; - "ZD1211RW" = module; - "WLAN_VENDOR_QUANTENNA" = yes; - "QTNFMAC" = module; - "QTNFMAC_PCIE" = module; - "MAC80211_HWSIM" = module; - "USB_NET_RNDIS_WLAN" = module; - "VIRT_WIFI" = module; - "WIMAX_I2400M" = module; - "WIMAX_I2400M_USB" = module; - "WIMAX_I2400M_DEBUG_LEVEL" = freeform "8"; - "IEEE802154_DRIVERS" = module; - "IEEE802154_FAKELB" = module; - "IEEE802154_AT86RF230" = module; - "IEEE802154_MRF24J40" = module; - "IEEE802154_CC2520" = module; - "IEEE802154_ATUSB" = module; - "IEEE802154_ADF7242" = module; - "IEEE802154_CA8210" = module; - "IEEE802154_MCR20A" = module; - "IEEE802154_HWSIM" = module; - "XEN_NETDEV_FRONTEND" = module; - "XEN_NETDEV_BACKEND" = module; - "VMXNET3" = module; - "NETDEVSIM" = module; - "NET_FAILOVER" = module; - "INPUT" = yes; - "INPUT_LEDS" = yes; - "INPUT_FF_MEMLESS" = module; - "INPUT_POLLDEV" = module; - "INPUT_MATRIXKMAP" = yes; - "INPUT_MOUSEDEV" = yes; - "INPUT_MOUSEDEV_PSAUX" = yes; - "INPUT_MOUSEDEV_SCREEN_X" = freeform "1024"; - "INPUT_MOUSEDEV_SCREEN_Y" = freeform "768"; - "INPUT_EVDEV" = yes; - "INPUT_KEYBOARD" = yes; - "KEYBOARD_ADC" = module; - "KEYBOARD_ADP5520" = module; - "KEYBOARD_ATKBD" = yes; - "KEYBOARD_QT1050" = module; - "KEYBOARD_GPIO" = yes; - "KEYBOARD_SUN4I_LRADC" = module; - "KEYBOARD_IQS62X" = module; - "KEYBOARD_CROS_EC" = yes; - "INPUT_MOUSE" = yes; - "MOUSE_PS2" = yes; - "MOUSE_PS2_ALPS" = yes; - "MOUSE_PS2_BYD" = yes; - "MOUSE_PS2_LOGIPS2PP" = yes; - "MOUSE_PS2_SYNAPTICS" = yes; - "MOUSE_PS2_SYNAPTICS_SMBUS" = yes; - "MOUSE_PS2_CYPRESS" = yes; - "MOUSE_PS2_TRACKPOINT" = yes; - "MOUSE_PS2_FOCALTECH" = yes; - "MOUSE_PS2_SMBUS" = yes; - "INPUT_TOUCHSCREEN" = no; - "INPUT_MISC" = yes; - "INPUT_MAX77650_ONKEY" = module; - "INPUT_GPIO_BEEPER" = module; - "INPUT_GPIO_DECODER" = module; - "INPUT_GPIO_VIBRA" = module; - "INPUT_AXP20X_PEK" = module; - "INPUT_UINPUT" = module; - "INPUT_RK805_PWRKEY" = yes; - "INPUT_XEN_KBDDEV_FRONTEND" = yes; - "INPUT_RAVE_SP_PWRBUTTON" = module; - "RMI4_CORE" = module; - "RMI4_I2C" = module; - "RMI4_SPI" = module; - "RMI4_SMB" = module; - "RMI4_F03" = yes; - "RMI4_F03_SERIO" = module; - "RMI4_2D_SENSOR" = yes; - "RMI4_F11" = yes; - "RMI4_F12" = yes; - "RMI4_F30" = yes; - "SERIO" = yes; - "SERIO_SERPORT" = module; - "SERIO_AMBAKMI" = yes; - "SERIO_LIBPS2" = yes; - "SERIO_SUN4I_PS2" = module; - "TTY" = yes; - "VT" = yes; - "CONSOLE_TRANSLATIONS" = yes; - "VT_CONSOLE" = yes; - "VT_CONSOLE_SLEEP" = yes; - "HW_CONSOLE" = yes; - "VT_HW_CONSOLE_BINDING" = yes; - "UNIX98_PTYS" = yes; - "LEGACY_PTYS" = yes; - "LEGACY_PTY_COUNT" = freeform "0"; - "LDISC_AUTOLOAD" = yes; - "SERIAL_EARLYCON" = yes; - "SERIAL_8250" = yes; - "SERIAL_8250_16550A_VARIANTS" = yes; - "SERIAL_8250_FINTEK" = yes; - "SERIAL_8250_CONSOLE" = yes; - "SERIAL_8250_DMA" = yes; - "SERIAL_8250_PCI" = module; - "SERIAL_8250_EXAR" = module; - "SERIAL_8250_NR_UARTS" = freeform "8"; - "SERIAL_8250_RUNTIME_UARTS" = freeform "8"; - "SERIAL_8250_DWLIB" = yes; - "SERIAL_8250_FSL" = yes; - "SERIAL_8250_DW" = yes; - "SERIAL_OF_PLATFORM" = yes; - "SERIAL_AMBA_PL010" = yes; - "SERIAL_AMBA_PL010_CONSOLE" = yes; - "SERIAL_AMBA_PL011" = yes; - "SERIAL_AMBA_PL011_CONSOLE" = yes; - "SERIAL_EARLYCON_ARM_SEMIHOST" = yes; - "SERIAL_MESON" = yes; - "SERIAL_MESON_CONSOLE" = yes; - "SERIAL_CORE" = yes; - "SERIAL_CORE_CONSOLE" = yes; - "SERIAL_JSM" = module; - "SERIAL_SIFIVE" = module; - "SERIAL_SCCNXP" = yes; - "SERIAL_SCCNXP_CONSOLE" = yes; - "SERIAL_SC16IS7XX_CORE" = module; - "SERIAL_SC16IS7XX" = module; - "SERIAL_SC16IS7XX_I2C" = yes; - "SERIAL_SC16IS7XX_SPI" = yes; - "SERIAL_ALTERA_JTAGUART" = module; - "SERIAL_ALTERA_UART" = module; - "SERIAL_ALTERA_UART_MAXPORTS" = freeform "4"; - "SERIAL_ALTERA_UART_BAUDRATE" = freeform "115200"; - "SERIAL_XILINX_PS_UART" = yes; - "SERIAL_XILINX_PS_UART_CONSOLE" = yes; - "SERIAL_ARC" = module; - "SERIAL_ARC_NR_PORTS" = freeform "1"; - "SERIAL_RP2" = module; - "SERIAL_RP2_NR_UARTS" = freeform "32"; - "SERIAL_FSL_LPUART" = module; - "SERIAL_FSL_LINFLEXUART" = module; - "SERIAL_CONEXANT_DIGICOLOR" = module; - "SERIAL_SPRD" = module; - "SERIAL_MCTRL_GPIO" = yes; - "SERIAL_NONSTANDARD" = yes; - "ROCKETPORT" = module; - "CYCLADES" = module; - "MOXA_INTELLIO" = module; - "MOXA_SMARTIO" = module; - "SYNCLINKMP" = module; - "SYNCLINK_GT" = module; - "ISI" = module; - "N_HDLC" = module; - "N_GSM" = module; - "NOZOMI" = module; - "NULL_TTY" = module; - "TRACE_ROUTER" = module; - "TRACE_SINK" = module; - "HVC_DRIVER" = yes; - "HVC_IRQ" = yes; - "HVC_XEN" = yes; - "HVC_XEN_FRONTEND" = yes; - "SERIAL_DEV_BUS" = yes; - "SERIAL_DEV_CTRL_TTYPORT" = yes; - "TTY_PRINTK" = module; - "TTY_PRINTK_LEVEL" = freeform "6"; - "VIRTIO_CONSOLE" = yes; - "HW_RANDOM" = module; - "HW_RANDOM_MESON" = module; - "HW_RANDOM_CAVIUM" = module; - "DEVMEM" = yes; - "DEVPORT" = yes; - "I2C" = yes; - "I2C_BOARDINFO" = yes; - "I2C_COMPAT" = yes; - "I2C_CHARDEV" = yes; - "I2C_MUX" = module; - "I2C_ARB_GPIO_CHALLENGE" = module; - "I2C_MUX_GPIO" = module; - "I2C_MUX_GPMUX" = module; - "I2C_MUX_LTC4306" = module; - "I2C_MUX_PCA9541" = module; - "I2C_MUX_PCA954x" = module; - "I2C_MUX_PINCTRL" = module; - "I2C_MUX_REG" = module; - "I2C_DEMUX_PINCTRL" = module; - "I2C_MUX_MLXCPLD" = module; - "I2C_HELPER_AUTO" = yes; - "I2C_SMBUS" = module; - "I2C_ALGOBIT" = yes; - "I2C_CADENCE" = module; - "I2C_CBUS_GPIO" = module; - "I2C_DESIGNWARE_CORE" = yes; - "I2C_DESIGNWARE_PLATFORM" = yes; - "I2C_MESON" = module; - "I2C_MV64XXX" = module; - "I2C_RK3X" = yes; - "I2C_DIOLAN_U2C" = module; - "I2C_ROBOTFUZZ_OSIF" = module; - "I2C_TAOS_EVM" = module; - "I2C_TINY_USB" = module; - "I2C_CROS_EC_TUNNEL" = yes; - "I2C_STUB" = module; - "I2C_SLAVE" = yes; - "I2C_SLAVE_EEPROM" = module; - "I3C" = module; - "CDNS_I3C_MASTER" = module; - "DW_I3C_MASTER" = module; - "SPI" = yes; - "SPI_MASTER" = yes; - "SPI_MEM" = yes; - "SPI_ALTERA" = module; - "SPI_AXI_SPI_ENGINE" = module; - "SPI_BITBANG" = module; - "SPI_CADENCE" = module; - "SPI_DESIGNWARE" = module; - "SPI_DW_PCI" = module; - "SPI_DW_MMIO" = module; - "SPI_NXP_FLEXSPI" = module; - "SPI_GPIO" = module; - "SPI_FSL_LIB" = module; - "SPI_FSL_SPI" = module; - "SPI_MESON_SPICC" = module; - "SPI_MESON_SPIFC" = module; - "SPI_OC_TINY" = module; - "SPI_PL022" = yes; - "SPI_ROCKCHIP" = yes; - "SPI_SUN4I" = module; - "SPI_SUN6I" = module; - "SPI_MXIC" = module; - "SPI_MUX" = module; - "SPI_SPIDEV" = module; - "SPI_LOOPBACK_TEST" = module; - "SPI_TLE62X0" = module; - "SPI_SLAVE" = yes; - "SPI_SLAVE_TIME" = module; - "SPI_SLAVE_SYSTEM_CONTROL" = module; - "SPI_DYNAMIC" = yes; - "SPMI" = yes; - "PPS" = yes; - "PPS_CLIENT_LDISC" = module; - "PPS_CLIENT_GPIO" = module; - "PTP_1588_CLOCK" = yes; - "DP83640_PHY" = module; - "PTP_1588_CLOCK_INES" = module; - "PTP_1588_CLOCK_IDT82P33" = module; - "PTP_1588_CLOCK_IDTCM" = module; - "PINCTRL" = yes; - "GENERIC_PINCTRL_GROUPS" = yes; - "PINMUX" = yes; - "GENERIC_PINMUX_FUNCTIONS" = yes; - "PINCONF" = yes; - "GENERIC_PINCONF" = yes; - "PINCTRL_AS3722" = module; - "PINCTRL_AXP209" = module; - "PINCTRL_ROCKCHIP" = yes; - "PINCTRL_SINGLE" = yes; - "PINCTRL_SX150X" = yes; - "PINCTRL_STMFX" = module; - "PINCTRL_MAX77620" = yes; - "PINCTRL_RK805" = yes; - "PINCTRL_SUNXI" = yes; - "PINCTRL_SUN5I" = yes; - "PINCTRL_SUN6I_A31" = yes; - "PINCTRL_SUN6I_A31_R" = yes; - "PINCTRL_SUN8I_A23" = yes; - "PINCTRL_SUN8I_A33" = yes; - "PINCTRL_SUN8I_A83T" = yes; - "PINCTRL_SUN8I_A83T_R" = yes; - "PINCTRL_SUN8I_A23_R" = yes; - "PINCTRL_SUN8I_H3" = yes; - "PINCTRL_SUN8I_H3_R" = yes; - "PINCTRL_SUN8I_V3S" = yes; - "PINCTRL_SUN9I_A80" = yes; - "PINCTRL_SUN9I_A80_R" = yes; - "PINCTRL_SUN50I_A64" = yes; - "PINCTRL_SUN50I_A64_R" = yes; - "PINCTRL_SUN50I_H5" = yes; - "PINCTRL_SUN50I_H6" = yes; - "PINCTRL_SUN50I_H6_R" = yes; - "PINCTRL_MESON" = yes; - "PINCTRL_MESON_GXBB" = yes; - "PINCTRL_MESON_GXL" = yes; - "PINCTRL_MESON8_PMX" = yes; - "PINCTRL_MESON_AXG" = yes; - "PINCTRL_MESON_AXG_PMX" = yes; - "PINCTRL_MESON_G12A" = yes; - "PINCTRL_MESON_A1" = yes; - "GPIOLIB" = yes; - "GPIOLIB_FASTPATH_LIMIT" = freeform "512"; - "OF_GPIO" = yes; - "GPIOLIB_IRQCHIP" = yes; - "GPIO_SYSFS" = yes; - "GPIO_GENERIC" = yes; - "GPIO_MAX730X" = module; - "GPIO_74XX_MMIO" = module; - "GPIO_ALTERA" = module; - "GPIO_CADENCE" = module; - "GPIO_DWAPB" = module; - "GPIO_EXAR" = module; - "GPIO_GENERIC_PLATFORM" = yes; - "GPIO_GRGPIO" = module; - "GPIO_HLWD" = module; - "GPIO_LOGICVC" = module; - "GPIO_MB86S7X" = module; - "GPIO_PL061" = yes; - "GPIO_SAMA5D2_PIOBU" = module; - "GPIO_SYSCON" = module; - "GPIO_XILINX" = yes; - "GPIO_AMD_FCH" = module; - "GPIO_ADP5588" = module; - "GPIO_ADNP" = module; - "GPIO_GW_PLD" = module; - "GPIO_MAX7300" = module; - "GPIO_MAX732X" = module; - "GPIO_PCA953X" = yes; - "GPIO_PCA953X_IRQ" = yes; - "GPIO_PCF857X" = module; - "GPIO_TPIC2810" = module; - "GPIO_ADP5520" = module; - "GPIO_BD70528" = module; - "GPIO_BD71828" = module; - "GPIO_MAX77620" = yes; - "GPIO_MAX77650" = module; - "GPIO_TQMX86" = module; - "GPIO_UCB1400" = module; - "GPIO_BT8XX" = module; - "GPIO_PCI_IDIO_16" = module; - "GPIO_PCIE_IDIO_24" = module; - "GPIO_RDC321X" = module; - "GPIO_74X164" = module; - "GPIO_MAX3191X" = module; - "GPIO_MAX7301" = module; - "GPIO_MC33880" = module; - "GPIO_PISOSR" = module; - "GPIO_XRA1403" = module; - "GPIO_MOCKUP" = module; - "W1" = module; - "W1_CON" = yes; - "W1_MASTER_MATROX" = module; - "W1_MASTER_DS2490" = module; - "W1_MASTER_DS2482" = module; - "W1_MASTER_DS1WM" = module; - "W1_MASTER_GPIO" = module; - "W1_MASTER_SGI" = module; - "W1_SLAVE_THERM" = module; - "W1_SLAVE_SMEM" = module; - "W1_SLAVE_DS2405" = module; - "W1_SLAVE_DS2408" = module; - "W1_SLAVE_DS2408_READBACK" = yes; - "W1_SLAVE_DS2413" = module; - "W1_SLAVE_DS2406" = module; - "W1_SLAVE_DS2423" = module; - "W1_SLAVE_DS2805" = module; - "W1_SLAVE_DS2430" = module; - "W1_SLAVE_DS2431" = module; - "W1_SLAVE_DS2433" = module; - "W1_SLAVE_DS2438" = module; - "W1_SLAVE_DS250X" = module; - "W1_SLAVE_DS2780" = module; - "W1_SLAVE_DS2781" = module; - "W1_SLAVE_DS28E04" = module; - "W1_SLAVE_DS28E17" = module; - "POWER_AVS" = yes; - "QCOM_CPR" = module; - "ROCKCHIP_IODOMAIN" = yes; - "POWER_RESET" = yes; - "POWER_RESET_BRCMSTB" = yes; - "POWER_RESET_VEXPRESS" = yes; - "POWER_RESET_XGENE" = yes; - "POWER_RESET_SYSCON" = yes; - "POWER_SUPPLY" = yes; - "POWER_SUPPLY_HWMON" = yes; - "GENERIC_ADC_BATTERY" = module; - "CHARGER_ADP5061" = module; - "BATTERY_CW2015" = module; - "BATTERY_DS2760" = module; - "BATTERY_DS2780" = module; - "BATTERY_DS2781" = module; - "BATTERY_DS2782" = module; - "BATTERY_LEGO_EV3" = module; - "BATTERY_SBS" = module; - "CHARGER_SBS" = module; - "MANAGER_SBS" = module; - "BATTERY_BQ27XXX" = module; - "BATTERY_BQ27XXX_I2C" = module; - "BATTERY_BQ27XXX_HDQ" = module; - "CHARGER_AXP20X" = module; - "BATTERY_AXP20X" = module; - "AXP20X_POWER" = module; - "AXP288_FUEL_GAUGE" = module; - "BATTERY_MAX17040" = module; - "BATTERY_MAX17042" = module; - "BATTERY_MAX1721X" = module; - "CHARGER_ISP1704" = module; - "CHARGER_GPIO" = module; - "CHARGER_LT3651" = module; - "CHARGER_DETECTOR_MAX14656" = module; - "CHARGER_MAX77650" = module; - "BATTERY_RT5033" = module; - "CHARGER_UCS1002" = module; - "CHARGER_BD70528" = module; - "HWMON" = yes; - "HWMON_VID" = module; - "SENSORS_AD7314" = module; - "SENSORS_AD7414" = module; - "SENSORS_AD7418" = module; - "SENSORS_ADM1021" = module; - "SENSORS_ADM1025" = module; - "SENSORS_ADM1026" = module; - "SENSORS_ADM1029" = module; - "SENSORS_ADM1031" = module; - "SENSORS_ADM1177" = module; - "SENSORS_ADM9240" = module; - "SENSORS_ADT7X10" = module; - "SENSORS_ADT7310" = module; - "SENSORS_ADT7410" = module; - "SENSORS_ADT7411" = module; - "SENSORS_ADT7462" = module; - "SENSORS_ADT7470" = module; - "SENSORS_ADT7475" = module; - "SENSORS_AS370" = module; - "SENSORS_ASC7621" = module; - "SENSORS_AXI_FAN_CONTROL" = module; - "SENSORS_ARM_SCPI" = module; - "SENSORS_ASPEED" = module; - "SENSORS_ATXP1" = module; - "SENSORS_DRIVETEMP" = module; - "SENSORS_DS620" = module; - "SENSORS_DS1621" = module; - "SENSORS_I5K_AMB" = module; - "SENSORS_F71805F" = module; - "SENSORS_F71882FG" = module; - "SENSORS_F75375S" = module; - "SENSORS_FTSTEUTATES" = module; - "SENSORS_GL518SM" = module; - "SENSORS_GL520SM" = module; - "SENSORS_G760A" = module; - "SENSORS_G762" = module; - "SENSORS_GPIO_FAN" = module; - "SENSORS_HIH6130" = module; - "SENSORS_IIO_HWMON" = module; - "SENSORS_IT87" = module; - "SENSORS_JC42" = module; - "SENSORS_POWR1220" = module; - "SENSORS_LINEAGE" = module; - "SENSORS_LTC2945" = module; - "SENSORS_LTC2947" = module; - "SENSORS_LTC2947_I2C" = module; - "SENSORS_LTC2947_SPI" = module; - "SENSORS_LTC2990" = module; - "SENSORS_LTC4151" = module; - "SENSORS_LTC4215" = module; - "SENSORS_LTC4222" = module; - "SENSORS_LTC4245" = module; - "SENSORS_LTC4260" = module; - "SENSORS_LTC4261" = module; - "SENSORS_MAX1111" = module; - "SENSORS_MAX16065" = module; - "SENSORS_MAX1619" = module; - "SENSORS_MAX1668" = module; - "SENSORS_MAX197" = module; - "SENSORS_MAX31722" = module; - "SENSORS_MAX31730" = module; - "SENSORS_MAX6621" = module; - "SENSORS_MAX6639" = module; - "SENSORS_MAX6642" = module; - "SENSORS_MAX6650" = module; - "SENSORS_MAX6697" = module; - "SENSORS_MAX31790" = module; - "SENSORS_MCP3021" = module; - "SENSORS_TC654" = module; - "SENSORS_ADCXX" = module; - "SENSORS_LM63" = module; - "SENSORS_LM70" = module; - "SENSORS_LM73" = module; - "SENSORS_LM75" = module; - "SENSORS_LM77" = module; - "SENSORS_LM78" = module; - "SENSORS_LM80" = module; - "SENSORS_LM83" = module; - "SENSORS_LM85" = module; - "SENSORS_LM87" = module; - "SENSORS_LM90" = module; - "SENSORS_LM92" = module; - "SENSORS_LM93" = module; - "SENSORS_LM95234" = module; - "SENSORS_LM95241" = module; - "SENSORS_LM95245" = module; - "SENSORS_PC87360" = module; - "SENSORS_PC87427" = module; - "SENSORS_NTC_THERMISTOR" = module; - "SENSORS_NCT6683" = module; - "SENSORS_NCT6775" = module; - "SENSORS_NCT7802" = module; - "SENSORS_NCT7904" = module; - "SENSORS_NPCM7XX" = module; - "SENSORS_OCC_P8_I2C" = module; - "SENSORS_OCC" = module; - "SENSORS_PCF8591" = module; - "PMBUS" = module; - "SENSORS_PMBUS" = module; - "SENSORS_ADM1275" = module; - "SENSORS_BEL_PFE" = module; - "SENSORS_IBM_CFFPS" = module; - "SENSORS_INSPUR_IPSPS" = module; - "SENSORS_IR35221" = module; - "SENSORS_IR38064" = module; - "SENSORS_IRPS5401" = module; - "SENSORS_ISL68137" = module; - "SENSORS_LM25066" = module; - "SENSORS_LTC2978" = module; - "SENSORS_LTC2978_REGULATOR" = yes; - "SENSORS_LTC3815" = module; - "SENSORS_MAX16064" = module; - "SENSORS_MAX20730" = module; - "SENSORS_MAX20751" = module; - "SENSORS_MAX31785" = module; - "SENSORS_MAX34440" = module; - "SENSORS_MAX8688" = module; - "SENSORS_PXE1610" = module; - "SENSORS_TPS40422" = module; - "SENSORS_TPS53679" = module; - "SENSORS_UCD9000" = module; - "SENSORS_UCD9200" = module; - "SENSORS_XDPE122" = module; - "SENSORS_ZL6100" = module; - "SENSORS_PWM_FAN" = module; - "SENSORS_SHT15" = module; - "SENSORS_SHT21" = module; - "SENSORS_SHT3x" = module; - "SENSORS_SHTC1" = module; - "SENSORS_SIS5595" = module; - "SENSORS_DME1737" = module; - "SENSORS_EMC1403" = module; - "SENSORS_EMC2103" = module; - "SENSORS_EMC6W201" = module; - "SENSORS_SMSC47M1" = module; - "SENSORS_SMSC47M192" = module; - "SENSORS_SMSC47B397" = module; - "SENSORS_SCH56XX_COMMON" = module; - "SENSORS_SCH5627" = module; - "SENSORS_SCH5636" = module; - "SENSORS_STTS751" = module; - "SENSORS_SMM665" = module; - "SENSORS_ADC128D818" = module; - "SENSORS_ADS7828" = module; - "SENSORS_ADS7871" = module; - "SENSORS_AMC6821" = module; - "SENSORS_INA209" = module; - "SENSORS_INA2XX" = module; - "SENSORS_INA3221" = module; - "SENSORS_TC74" = module; - "SENSORS_THMC50" = module; - "SENSORS_TMP102" = module; - "SENSORS_TMP103" = module; - "SENSORS_TMP108" = module; - "SENSORS_TMP401" = module; - "SENSORS_TMP421" = module; - "SENSORS_TMP513" = module; - "SENSORS_VEXPRESS" = module; - "SENSORS_VIA686A" = module; - "SENSORS_VT1211" = module; - "SENSORS_VT8231" = module; - "SENSORS_W83773G" = module; - "SENSORS_W83781D" = module; - "SENSORS_W83791D" = module; - "SENSORS_W83792D" = module; - "SENSORS_W83793" = module; - "SENSORS_W83795" = module; - "SENSORS_W83L785TS" = module; - "SENSORS_W83L786NG" = module; - "SENSORS_W83627HF" = module; - "SENSORS_W83627EHF" = module; - "THERMAL" = yes; - "THERMAL_STATISTICS" = yes; - "THERMAL_EMERGENCY_POWEROFF_DELAY_MS" = freeform "0"; - "THERMAL_HWMON" = yes; - "THERMAL_OF" = yes; - "THERMAL_WRITABLE_TRIPS" = yes; - "THERMAL_DEFAULT_GOV_STEP_WISE" = yes; - "THERMAL_GOV_FAIR_SHARE" = yes; - "THERMAL_GOV_STEP_WISE" = yes; - "THERMAL_GOV_BANG_BANG" = yes; - "THERMAL_GOV_USER_SPACE" = yes; - "CPU_THERMAL" = yes; - "CPU_FREQ_THERMAL" = yes; - "DEVFREQ_THERMAL" = yes; - "THERMAL_EMULATION" = yes; - "THERMAL_MMIO" = module; - "SUN8I_THERMAL" = module; - "ROCKCHIP_THERMAL" = yes; - "AMLOGIC_THERMAL" = yes; - "WATCHDOG" = yes; - "WATCHDOG_CORE" = yes; - "WATCHDOG_HANDLE_BOOT_ENABLED" = yes; - "WATCHDOG_OPEN_TIMEOUT" = freeform "0"; - "WATCHDOG_SYSFS" = yes; - "SOFT_WATCHDOG" = module; - "BD70528_WATCHDOG" = module; - "RAVE_SP_WATCHDOG" = module; - "DW_WATCHDOG" = yes; - "RN5T618_WATCHDOG" = module; - "SUNXI_WATCHDOG" = module; - "MESON_GXBB_WATCHDOG" = module; - "MESON_WATCHDOG" = module; - "PCIPCWATCHDOG" = module; - "WDTPCI" = module; - "USBPCWATCHDOG" = module; - "SSB_POSSIBLE" = yes; - "SSB" = module; - "SSB_SPROM" = yes; - "SSB_BLOCKIO" = yes; - "SSB_PCIHOST_POSSIBLE" = yes; - "SSB_PCIHOST" = yes; - "SSB_B43_PCI_BRIDGE" = yes; - "SSB_SDIOHOST_POSSIBLE" = yes; - "SSB_DRIVER_PCICORE_POSSIBLE" = yes; - "SSB_DRIVER_PCICORE" = yes; - "BCMA_POSSIBLE" = yes; - "BCMA" = module; - "BCMA_BLOCKIO" = yes; - "BCMA_HOST_PCI_POSSIBLE" = yes; - "BCMA_HOST_PCI" = yes; - "BCMA_DRIVER_PCI" = yes; - "MFD_CORE" = yes; - "MFD_SUN4I_GPADC" = module; - "MFD_AS3711" = yes; - "MFD_AS3722" = module; - "PMIC_ADP5520" = yes; - "MFD_AAT2870_CORE" = yes; - "MFD_AC100" = module; - "MFD_AXP20X" = module; - "MFD_AXP20X_RSB" = module; - "MFD_CROS_EC_DEV" = yes; - "MFD_IQS62X" = module; - "MFD_MAX77620" = yes; - "MFD_MAX77650" = module; - "UCB1400_CORE" = module; - "MFD_RDC321X" = module; - "MFD_RT5033" = module; - "MFD_RC5T583" = yes; - "MFD_RK808" = yes; - "MFD_RN5T618" = module; - "MFD_SEC_CORE" = yes; - "MFD_SUN6I_PRCM" = yes; - "MFD_SYSCON" = yes; - "MFD_WL1273_CORE" = module; - "MFD_LM3533" = module; - "MFD_TQMX86" = module; - "MFD_VX855" = module; - "MFD_ROHM_BD70528" = module; - "MFD_ROHM_BD71828" = module; - "MFD_STMFX" = module; - "MFD_VEXPRESS_SYSREG" = yes; - "RAVE_SP_CORE" = module; - "REGULATOR" = yes; - "REGULATOR_FIXED_VOLTAGE" = yes; - "REGULATOR_88PG86X" = module; - "REGULATOR_AAT2870" = module; - "REGULATOR_AS3711" = module; - "REGULATOR_AS3722" = module; - "REGULATOR_AXP20X" = module; - "REGULATOR_BD70528" = module; - "REGULATOR_BD71828" = module; - "REGULATOR_FAN53555" = yes; - "REGULATOR_GPIO" = yes; - "REGULATOR_MAX77620" = yes; - "REGULATOR_MAX77650" = module; - "REGULATOR_MCP16502" = module; - "REGULATOR_MP5416" = module; - "REGULATOR_MP8859" = module; - "REGULATOR_MP886X" = module; - "REGULATOR_MPQ7920" = module; - "REGULATOR_PWM" = yes; - "REGULATOR_QCOM_SPMI" = yes; - "REGULATOR_RC5T583" = module; - "REGULATOR_RK808" = yes; - "REGULATOR_RN5T618" = module; - "REGULATOR_ROHM" = module; - "REGULATOR_RT5033" = module; - "REGULATOR_S2MPS11" = yes; - "REGULATOR_SLG51000" = module; - "REGULATOR_SY8824X" = module; - "RC_CORE" = module; - "RC_MAP" = module; - "LIRC" = yes; - "RC_DECODERS" = yes; - "IR_NEC_DECODER" = module; - "IR_RC5_DECODER" = module; - "IR_RC6_DECODER" = module; - "IR_JVC_DECODER" = module; - "IR_SONY_DECODER" = module; - "IR_SANYO_DECODER" = module; - "IR_SHARP_DECODER" = module; - "IR_MCE_KBD_DECODER" = module; - "IR_XMP_DECODER" = module; - "IR_IMON_DECODER" = module; - "IR_RCMM_DECODER" = module; - "RC_DEVICES" = yes; - "RC_ATI_REMOTE" = module; - "IR_HIX5HD2" = module; - "IR_IMON" = module; - "IR_IMON_RAW" = module; - "IR_MCEUSB" = module; - "IR_MESON" = module; - "IR_REDRAT3" = module; - "IR_SPI" = module; - "IR_STREAMZAP" = module; - "IR_IGORPLUGUSB" = module; - "IR_IGUANA" = module; - "IR_TTUSBIR" = module; - "RC_LOOPBACK" = module; - "IR_GPIO_CIR" = module; - "IR_GPIO_TX" = module; - "IR_PWM_TX" = module; - "IR_SUNXI" = module; - "IR_SERIAL" = module; - "IR_SERIAL_TRANSMITTER" = yes; - "IR_SIR" = module; - "RC_XBOX_DVD" = module; - "CEC_CORE" = module; - "CEC_NOTIFIER" = yes; - "CEC_PIN" = yes; - "MEDIA_CEC_RC" = yes; - "CEC_PIN_ERROR_INJ" = yes; - "MEDIA_CEC_SUPPORT" = yes; - "USB_PULSE8_CEC" = module; - "USB_RAINSHADOW_CEC" = module; - "MEDIA_SUPPORT" = module; - "MEDIA_SUBDRV_AUTOSELECT" = yes; - "MEDIA_CAMERA_SUPPORT" = yes; - "MEDIA_ANALOG_TV_SUPPORT" = yes; - "MEDIA_DIGITAL_TV_SUPPORT" = yes; - "MEDIA_RADIO_SUPPORT" = yes; - "MEDIA_SDR_SUPPORT" = yes; - "MEDIA_PLATFORM_SUPPORT" = yes; - "MEDIA_TEST_SUPPORT" = yes; - "VIDEO_DEV" = module; - "MEDIA_CONTROLLER" = yes; - "DVB_CORE" = module; - "VIDEO_V4L2" = module; - "VIDEO_V4L2_I2C" = yes; - "VIDEO_V4L2_SUBDEV_API" = yes; - "VIDEO_FIXED_MINOR_RANGES" = yes; - "VIDEO_TUNER" = module; - "V4L2_H264" = module; - "V4L2_MEM2MEM_DEV" = module; - "V4L2_FWNODE" = module; - "VIDEOBUF_GEN" = module; - "VIDEOBUF_VMALLOC" = module; - "MEDIA_CONTROLLER_DVB" = yes; - "MEDIA_CONTROLLER_REQUEST_API" = yes; - "DVB_MMAP" = yes; - "DVB_NET" = yes; - "DVB_MAX_ADAPTERS" = freeform "8"; - "DVB_DYNAMIC_MINORS" = yes; - "TTPCI_EEPROM" = module; - "MEDIA_USB_SUPPORT" = yes; - "USB_VIDEO_CLASS" = module; - "USB_VIDEO_CLASS_INPUT_EVDEV" = yes; - "USB_GSPCA" = module; - "USB_M5602" = module; - "USB_STV06XX" = module; - "USB_GL860" = module; - "USB_GSPCA_BENQ" = module; - "USB_GSPCA_CONEX" = module; - "USB_GSPCA_CPIA1" = module; - "USB_GSPCA_DTCS033" = module; - "USB_GSPCA_ETOMS" = module; - "USB_GSPCA_FINEPIX" = module; - "USB_GSPCA_JEILINJ" = module; - "USB_GSPCA_JL2005BCD" = module; - "USB_GSPCA_KINECT" = module; - "USB_GSPCA_KONICA" = module; - "USB_GSPCA_MARS" = module; - "USB_GSPCA_MR97310A" = module; - "USB_GSPCA_NW80X" = module; - "USB_GSPCA_OV519" = module; - "USB_GSPCA_OV534" = module; - "USB_GSPCA_OV534_9" = module; - "USB_GSPCA_PAC207" = module; - "USB_GSPCA_PAC7302" = module; - "USB_GSPCA_PAC7311" = module; - "USB_GSPCA_SE401" = module; - "USB_GSPCA_SN9C2028" = module; - "USB_GSPCA_SN9C20X" = module; - "USB_GSPCA_SONIXB" = module; - "USB_GSPCA_SONIXJ" = module; - "USB_GSPCA_SPCA500" = module; - "USB_GSPCA_SPCA501" = module; - "USB_GSPCA_SPCA505" = module; - "USB_GSPCA_SPCA506" = module; - "USB_GSPCA_SPCA508" = module; - "USB_GSPCA_SPCA561" = module; - "USB_GSPCA_SPCA1528" = module; - "USB_GSPCA_SQ905" = module; - "USB_GSPCA_SQ905C" = module; - "USB_GSPCA_SQ930X" = module; - "USB_GSPCA_STK014" = module; - "USB_GSPCA_STK1135" = module; - "USB_GSPCA_STV0680" = module; - "USB_GSPCA_SUNPLUS" = module; - "USB_GSPCA_T613" = module; - "USB_GSPCA_TOPRO" = module; - "USB_GSPCA_TOUPTEK" = module; - "USB_GSPCA_TV8532" = module; - "USB_GSPCA_VC032X" = module; - "USB_GSPCA_VICAM" = module; - "USB_GSPCA_XIRLINK_CIT" = module; - "USB_GSPCA_ZC3XX" = module; - "USB_PWC" = module; - "USB_PWC_INPUT_EVDEV" = yes; - "VIDEO_CPIA2" = module; - "USB_ZR364XX" = module; - "USB_STKWEBCAM" = module; - "USB_S2255" = module; - "VIDEO_USBTV" = module; - "VIDEO_PVRUSB2" = module; - "VIDEO_PVRUSB2_SYSFS" = yes; - "VIDEO_PVRUSB2_DVB" = yes; - "VIDEO_HDPVR" = module; - "VIDEO_STK1160_COMMON" = module; - "VIDEO_STK1160" = module; - "VIDEO_GO7007" = module; - "VIDEO_GO7007_USB" = module; - "VIDEO_GO7007_LOADER" = module; - "VIDEO_GO7007_USB_S2250_BOARD" = module; - "VIDEO_AU0828" = module; - "VIDEO_AU0828_V4L2" = yes; - "VIDEO_AU0828_RC" = yes; - "VIDEO_CX231XX" = module; - "VIDEO_CX231XX_RC" = yes; - "VIDEO_CX231XX_ALSA" = module; - "VIDEO_CX231XX_DVB" = module; - "VIDEO_TM6000" = module; - "VIDEO_TM6000_ALSA" = module; - "VIDEO_TM6000_DVB" = module; - "DVB_USB" = module; - "DVB_USB_DIB3000MC" = module; - "DVB_USB_A800" = module; - "DVB_USB_DIBUSB_MB" = module; - "DVB_USB_DIBUSB_MB_FAULTY" = yes; - "DVB_USB_DIBUSB_MC" = module; - "DVB_USB_DIB0700" = module; - "DVB_USB_UMT_010" = module; - "DVB_USB_CXUSB" = module; - "DVB_USB_M920X" = module; - "DVB_USB_DIGITV" = module; - "DVB_USB_VP7045" = module; - "DVB_USB_VP702X" = module; - "DVB_USB_GP8PSK" = module; - "DVB_USB_NOVA_T_USB2" = module; - "DVB_USB_TTUSB2" = module; - "DVB_USB_DTT200U" = module; - "DVB_USB_OPERA1" = module; - "DVB_USB_AF9005" = module; - "DVB_USB_AF9005_REMOTE" = module; - "DVB_USB_PCTV452E" = module; - "DVB_USB_DW2102" = module; - "DVB_USB_CINERGY_T2" = module; - "DVB_USB_DTV5100" = module; - "DVB_USB_AZ6027" = module; - "DVB_USB_TECHNISAT_USB2" = module; - "DVB_USB_V2" = module; - "DVB_USB_AF9015" = module; - "DVB_USB_AF9035" = module; - "DVB_USB_ANYSEE" = module; - "DVB_USB_AU6610" = module; - "DVB_USB_AZ6007" = module; - "DVB_USB_CE6230" = module; - "DVB_USB_EC168" = module; - "DVB_USB_GL861" = module; - "DVB_USB_LME2510" = module; - "DVB_USB_MXL111SF" = module; - "DVB_USB_RTL28XXU" = module; - "DVB_USB_DVBSKY" = module; - "DVB_USB_ZD1301" = module; - "DVB_TTUSB_BUDGET" = module; - "DVB_TTUSB_DEC" = module; - "SMS_USB_DRV" = module; - "DVB_B2C2_FLEXCOP_USB" = module; - "DVB_AS102" = module; - "VIDEO_EM28XX" = module; - "VIDEO_EM28XX_V4L2" = module; - "VIDEO_EM28XX_ALSA" = module; - "VIDEO_EM28XX_DVB" = module; - "VIDEO_EM28XX_RC" = module; - "USB_AIRSPY" = module; - "USB_HACKRF" = module; - "USB_MSI2500" = module; - "RADIO_ADAPTERS" = yes; - "RADIO_TEA575X" = module; - "RADIO_SI470X" = module; - "USB_SI470X" = module; - "I2C_SI470X" = module; - "RADIO_SI4713" = module; - "USB_SI4713" = module; - "PLATFORM_SI4713" = module; - "I2C_SI4713" = module; - "USB_MR800" = module; - "USB_DSBR" = module; - "RADIO_MAXIRADIO" = module; - "RADIO_SHARK" = module; - "RADIO_SHARK2" = module; - "USB_KEENE" = module; - "USB_RAREMONO" = module; - "USB_MA901" = module; - "RADIO_TEA5764" = module; - "RADIO_SAA7706H" = module; - "RADIO_TEF6862" = module; - "RADIO_WL1273" = module; - "MEDIA_COMMON_OPTIONS" = yes; - "VIDEO_CX2341X" = module; - "VIDEO_TVEEPROM" = module; - "CYPRESS_FIRMWARE" = module; - "VIDEOBUF2_CORE" = module; - "VIDEOBUF2_V4L2" = module; - "VIDEOBUF2_MEMOPS" = module; - "VIDEOBUF2_DMA_CONTIG" = module; - "VIDEOBUF2_VMALLOC" = module; - "VIDEOBUF2_DMA_SG" = module; - "DVB_B2C2_FLEXCOP" = module; - "SMS_SIANO_MDTV" = module; - "SMS_SIANO_RC" = yes; - "V4L_MEM2MEM_DRIVERS" = yes; - "VIDEO_ROCKCHIP_RGA" = module; - "VIDEO_SUN8I_DEINTERLACE" = module; - "VIDEO_SUN8I_ROTATE" = module; - "DVB_PLATFORM_DRIVERS" = yes; - "SDR_PLATFORM_DRIVERS" = yes; - "SMS_SDIO_DRV" = module; - "MEDIA_ATTACH" = yes; - "VIDEO_IR_I2C" = module; - "VIDEO_TVAUDIO" = module; - "VIDEO_TDA7432" = module; - "VIDEO_TDA9840" = module; - "VIDEO_TDA1997X" = module; - "VIDEO_TEA6415C" = module; - "VIDEO_TEA6420" = module; - "VIDEO_MSP3400" = module; - "VIDEO_CS3308" = module; - "VIDEO_CS5345" = module; - "VIDEO_CS53L32A" = module; - "VIDEO_TLV320AIC23B" = module; - "VIDEO_UDA1342" = module; - "VIDEO_WM8775" = module; - "VIDEO_WM8739" = module; - "VIDEO_VP27SMPX" = module; - "VIDEO_SONY_BTF_MPX" = module; - "VIDEO_SAA6588" = module; - "VIDEO_ADV7180" = module; - "VIDEO_ADV7183" = module; - "VIDEO_ADV748X" = module; - "VIDEO_ADV7604" = module; - "VIDEO_ADV7604_CEC" = yes; - "VIDEO_ADV7842" = module; - "VIDEO_ADV7842_CEC" = yes; - "VIDEO_BT819" = module; - "VIDEO_BT856" = module; - "VIDEO_BT866" = module; - "VIDEO_KS0127" = module; - "VIDEO_ML86V7667" = module; - "VIDEO_SAA7110" = module; - "VIDEO_SAA711X" = module; - "VIDEO_TC358743" = module; - "VIDEO_TC358743_CEC" = yes; - "VIDEO_TVP514X" = module; - "VIDEO_TVP5150" = module; - "VIDEO_TVP7002" = module; - "VIDEO_TW2804" = module; - "VIDEO_TW9903" = module; - "VIDEO_TW9906" = module; - "VIDEO_TW9910" = module; - "VIDEO_VPX3220" = module; - "VIDEO_SAA717X" = module; - "VIDEO_CX25840" = module; - "VIDEO_SAA7127" = module; - "VIDEO_SAA7185" = module; - "VIDEO_ADV7170" = module; - "VIDEO_ADV7175" = module; - "VIDEO_ADV7343" = module; - "VIDEO_ADV7393" = module; - "VIDEO_AD9389B" = module; - "VIDEO_AK881X" = module; - "VIDEO_THS8200" = module; - "VIDEO_UPD64031A" = module; - "VIDEO_UPD64083" = module; - "VIDEO_SAA6752HS" = module; - "SDR_MAX2175" = module; - "VIDEO_THS7303" = module; - "VIDEO_M52790" = module; - "VIDEO_I2C" = module; - "VIDEO_ST_MIPID02" = module; - "VIDEO_APTINA_PLL" = module; - "VIDEO_SMIAPP_PLL" = module; - "VIDEO_HI556" = module; - "VIDEO_IMX214" = module; - "VIDEO_IMX219" = module; - "VIDEO_IMX258" = module; - "VIDEO_IMX274" = module; - "VIDEO_IMX290" = module; - "VIDEO_IMX319" = module; - "VIDEO_IMX355" = module; - "VIDEO_OV2640" = module; - "VIDEO_OV2659" = module; - "VIDEO_OV2680" = module; - "VIDEO_OV2685" = module; - "VIDEO_OV5640" = module; - "VIDEO_OV5645" = module; - "VIDEO_OV5647" = module; - "VIDEO_OV6650" = module; - "VIDEO_OV5670" = module; - "VIDEO_OV5675" = module; - "VIDEO_OV5695" = module; - "VIDEO_OV7251" = module; - "VIDEO_OV772X" = module; - "VIDEO_OV7640" = module; - "VIDEO_OV7670" = module; - "VIDEO_OV7740" = module; - "VIDEO_OV8856" = module; - "VIDEO_OV9640" = module; - "VIDEO_OV9650" = module; - "VIDEO_OV13858" = module; - "VIDEO_VS6624" = module; - "VIDEO_MT9M001" = module; - "VIDEO_MT9M032" = module; - "VIDEO_MT9M111" = module; - "VIDEO_MT9P031" = module; - "VIDEO_MT9T001" = module; - "VIDEO_MT9T112" = module; - "VIDEO_MT9V011" = module; - "VIDEO_MT9V032" = module; - "VIDEO_MT9V111" = module; - "VIDEO_SR030PC30" = module; - "VIDEO_NOON010PC30" = module; - "VIDEO_M5MOLS" = module; - "VIDEO_RJ54N1" = module; - "VIDEO_S5K6AA" = module; - "VIDEO_S5K6A3" = module; - "VIDEO_S5K4ECGX" = module; - "VIDEO_S5K5BAF" = module; - "VIDEO_SMIAPP" = module; - "VIDEO_ET8EK8" = module; - "VIDEO_S5C73M3" = module; - "VIDEO_AD5820" = module; - "VIDEO_AK7375" = module; - "VIDEO_DW9714" = module; - "VIDEO_DW9807_VCM" = module; - "VIDEO_ADP1653" = module; - "VIDEO_LM3560" = module; - "VIDEO_LM3646" = module; - "VIDEO_GS1662" = module; - "CXD2880_SPI_DRV" = module; - "MEDIA_TUNER" = no; - "VGA_ARB" = yes; - "VGA_ARB_MAX_GPUS" = freeform "16"; - "DRM" = no; - "LCD_CLASS_DEVICE" = no; - "BACKLIGHT_CLASS_DEVICE" = no; - "HDMI" = no; - "DUMMY_CONSOLE" = yes; - "DUMMY_CONSOLE_COLUMNS" = freeform "80"; - "DUMMY_CONSOLE_ROWS" = freeform "25"; - "SOUND" = no; - "SND" = no; - "HID" = yes; - "HID_BATTERY_STRENGTH" = yes; - "HIDRAW" = yes; - "UHID" = module; - "HID_GENERIC" = yes; - "HID_A4TECH" = module; - "HID_ACCUTOUCH" = module; - "HID_ACRUX" = module; - "HID_ACRUX_FF" = yes; - "HID_APPLE" = module; - "HID_APPLEIR" = module; - "HID_AUREAL" = module; - "HID_BELKIN" = module; - "HID_BETOP_FF" = module; - "HID_BIGBEN_FF" = module; - "HID_CHERRY" = module; - "HID_CHICONY" = module; - "HID_CORSAIR" = module; - "HID_COUGAR" = module; - "HID_MACALLY" = module; - "HID_PRODIKEYS" = module; - "HID_CMEDIA" = module; - "HID_CP2112" = module; - "HID_CREATIVE_SB0540" = module; - "HID_CYPRESS" = module; - "HID_DRAGONRISE" = module; - "DRAGONRISE_FF" = yes; - "HID_EMS_FF" = module; - "HID_ELAN" = module; - "HID_ELECOM" = module; - "HID_ELO" = module; - "HID_EZKEY" = module; - "HID_GEMBIRD" = module; - "HID_GFRM" = module; - "HID_GLORIOUS" = module; - "HID_HOLTEK" = module; - "HOLTEK_FF" = yes; - "HID_GOOGLE_HAMMER" = module; - "HID_GT683R" = module; - "HID_KEYTOUCH" = module; - "HID_KYE" = module; - "HID_UCLOGIC" = module; - "HID_WALTOP" = module; - "HID_VIEWSONIC" = module; - "HID_GYRATION" = module; - "HID_ICADE" = module; - "HID_ITE" = module; - "HID_JABRA" = module; - "HID_TWINHAN" = module; - "HID_KENSINGTON" = module; - "HID_LCPOWER" = module; - "HID_LED" = module; - "HID_LENOVO" = module; - "HID_LOGITECH" = module; - "HID_LOGITECH_DJ" = module; - "HID_LOGITECH_HIDPP" = module; - "LOGITECH_FF" = yes; - "LOGIRUMBLEPAD2_FF" = yes; - "LOGIG940_FF" = yes; - "LOGIWHEELS_FF" = yes; - "HID_MAGICMOUSE" = module; - "HID_MALTRON" = module; - "HID_REDRAGON" = module; - "HID_MICROSOFT" = module; - "HID_MONTEREY" = module; - "HID_MULTITOUCH" = module; - "HID_NTI" = module; - "HID_NTRIG" = module; - "HID_ORTEK" = module; - "HID_PANTHERLORD" = module; - "PANTHERLORD_FF" = yes; - "HID_PENMOUNT" = module; - "HID_PETALYNX" = module; - "HID_PICOLCD" = module; - "HID_PICOLCD_FB" = yes; - "HID_PICOLCD_BACKLIGHT" = yes; - "HID_PICOLCD_LCD" = yes; - "HID_PICOLCD_LEDS" = yes; - "HID_PICOLCD_CIR" = yes; - "HID_PLANTRONICS" = module; - "HID_PRIMAX" = module; - "HID_RETRODE" = module; - "HID_ROCCAT" = module; - "HID_SAITEK" = module; - "HID_SAMSUNG" = module; - "HID_SONY" = module; - "SONY_FF" = yes; - "HID_SPEEDLINK" = module; - "HID_STEAM" = module; - "HID_STEELSERIES" = module; - "HID_SUNPLUS" = module; - "HID_RMI" = module; - "HID_GREENASIA" = module; - "GREENASIA_FF" = yes; - "HID_SMARTJOYPLUS" = module; - "SMARTJOYPLUS_FF" = yes; - "HID_TIVO" = module; - "HID_TOPSEED" = module; - "HID_THINGM" = module; - "HID_THRUSTMASTER" = module; - "THRUSTMASTER_FF" = yes; - "HID_UDRAW_PS3" = module; - "HID_U2FZERO" = module; - "HID_WACOM" = module; - "HID_WIIMOTE" = module; - "HID_XINMO" = module; - "HID_ZEROPLUS" = module; - "ZEROPLUS_FF" = yes; - "HID_ZYDACRON" = module; - "HID_SENSOR_HUB" = module; - "HID_SENSOR_CUSTOM_SENSOR" = module; - "HID_ALPS" = module; - "HID_MCP2221" = module; - "USB_HID" = yes; - "HID_PID" = yes; - "USB_HIDDEV" = yes; - "I2C_HID" = module; - "USB_OHCI_LITTLE_ENDIAN" = yes; - "USB_SUPPORT" = yes; - "USB_COMMON" = yes; - "USB_LED_TRIG" = yes; - "USB_ULPI_BUS" = yes; - "USB_CONN_GPIO" = module; - "USB_ARCH_HAS_HCD" = yes; - "USB" = yes; - "USB_PCI" = yes; - "USB_ANNOUNCE_NEW_DEVICES" = yes; - "USB_DEFAULT_PERSIST" = yes; - "USB_OTG" = yes; - "USB_OTG_FSM" = module; - "USB_LEDS_TRIGGER_USBPORT" = yes; - "USB_AUTOSUSPEND_DELAY" = freeform "2"; - "USB_MON" = module; - "USB_XHCI_HCD" = yes; - "USB_XHCI_PCI" = yes; - "USB_XHCI_PLATFORM" = yes; - "USB_EHCI_HCD" = yes; - "USB_EHCI_ROOT_HUB_TT" = yes; - "USB_EHCI_TT_NEWSCHED" = yes; - "USB_EHCI_PCI" = yes; - "USB_EHCI_FSL" = module; - "USB_EHCI_HCD_PLATFORM" = yes; - "USB_OXU210HP_HCD" = module; - "USB_ISP116X_HCD" = module; - "USB_FOTG210_HCD" = module; - "USB_MAX3421_HCD" = module; - "USB_OHCI_HCD" = yes; - "USB_OHCI_HCD_PCI" = yes; - "USB_OHCI_HCD_PLATFORM" = yes; - "USB_HCD_BCMA" = module; - "USB_HCD_SSB" = module; - "USB_ACM" = module; - "USB_PRINTER" = module; - "USB_WDM" = module; - "USB_TMC" = module; - "USB_STORAGE" = yes; - "USB_STORAGE_REALTEK" = module; - "USB_STORAGE_DATAFAB" = module; - "USB_STORAGE_FREECOM" = module; - "USB_STORAGE_ISD200" = module; - "USB_STORAGE_USBAT" = module; - "USB_STORAGE_SDDR09" = module; - "USB_STORAGE_SDDR55" = module; - "USB_STORAGE_JUMPSHOT" = module; - "USB_STORAGE_ALAUDA" = module; - "USB_STORAGE_ONETOUCH" = module; - "USB_STORAGE_KARMA" = module; - "USB_STORAGE_CYPRESS_ATACB" = module; - "USB_STORAGE_ENE_UB6250" = module; - "USB_UAS" = module; - "USB_MDC800" = module; - "USB_MICROTEK" = module; - "USBIP_CORE" = module; - "USBIP_VHCI_HCD" = module; - "USBIP_VHCI_HC_PORTS" = freeform "8"; - "USBIP_VHCI_NR_HCS" = freeform "1"; - "USBIP_HOST" = module; - "USBIP_VUDC" = module; - "USB_DWC3" = yes; - "USB_DWC3_DUAL_ROLE" = yes; - "USB_DWC3_HAPS" = yes; - "USB_DWC3_MESON_G12A" = module; - "USB_DWC3_OF_SIMPLE" = yes; - "USB_DWC2" = yes; - "USB_DWC2_DUAL_ROLE" = yes; - "USB_DWC2_PCI" = module; - "USB_CHIPIDEA" = yes; - "USB_CHIPIDEA_UDC" = yes; - "USB_CHIPIDEA_HOST" = yes; - "USB_CHIPIDEA_PCI" = yes; - "USB_CHIPIDEA_MSM" = yes; - "USB_CHIPIDEA_IMX" = yes; - "USB_CHIPIDEA_GENERIC" = yes; - "USB_CHIPIDEA_TEGRA" = yes; - "USB_ISP1760" = yes; - "USB_ISP1760_HCD" = yes; - "USB_ISP1761_UDC" = yes; - "USB_ISP1760_DUAL_ROLE" = yes; - "USB_SERIAL" = module; - "USB_SERIAL_GENERIC" = yes; - "USB_SERIAL_SIMPLE" = module; - "USB_SERIAL_AIRCABLE" = module; - "USB_SERIAL_ARK3116" = module; - "USB_SERIAL_BELKIN" = module; - "USB_SERIAL_CH341" = module; - "USB_SERIAL_WHITEHEAT" = module; - "USB_SERIAL_DIGI_ACCELEPORT" = module; - "USB_SERIAL_CP210X" = module; - "USB_SERIAL_CYPRESS_M8" = module; - "USB_SERIAL_EMPEG" = module; - "USB_SERIAL_FTDI_SIO" = module; - "USB_SERIAL_VISOR" = module; - "USB_SERIAL_IPAQ" = module; - "USB_SERIAL_IR" = module; - "USB_SERIAL_EDGEPORT" = module; - "USB_SERIAL_EDGEPORT_TI" = module; - "USB_SERIAL_F81232" = module; - "USB_SERIAL_F8153X" = module; - "USB_SERIAL_GARMIN" = module; - "USB_SERIAL_IPW" = module; - "USB_SERIAL_IUU" = module; - "USB_SERIAL_KEYSPAN_PDA" = module; - "USB_SERIAL_KEYSPAN" = module; - "USB_SERIAL_KLSI" = module; - "USB_SERIAL_KOBIL_SCT" = module; - "USB_SERIAL_MCT_U232" = module; - "USB_SERIAL_METRO" = module; - "USB_SERIAL_MOS7720" = module; - "USB_SERIAL_MOS7840" = module; - "USB_SERIAL_MXUPORT" = module; - "USB_SERIAL_NAVMAN" = module; - "USB_SERIAL_PL2303" = module; - "USB_SERIAL_OTI6858" = module; - "USB_SERIAL_QCAUX" = module; - "USB_SERIAL_QUALCOMM" = module; - "USB_SERIAL_SPCP8X5" = module; - "USB_SERIAL_SAFE" = module; - "USB_SERIAL_SIERRAWIRELESS" = module; - "USB_SERIAL_SYMBOL" = module; - "USB_SERIAL_TI" = module; - "USB_SERIAL_CYBERJACK" = module; - "USB_SERIAL_XIRCOM" = module; - "USB_SERIAL_WWAN" = module; - "USB_SERIAL_OPTION" = module; - "USB_SERIAL_OMNINET" = module; - "USB_SERIAL_OPTICON" = module; - "USB_SERIAL_XSENS_MT" = module; - "USB_SERIAL_WISHBONE" = module; - "USB_SERIAL_SSU100" = module; - "USB_SERIAL_QT2" = module; - "USB_SERIAL_UPD78F0730" = module; - "USB_SERIAL_DEBUG" = module; - "USB_EMI62" = module; - "USB_EMI26" = module; - "USB_ADUTUX" = module; - "USB_SEVSEG" = module; - "USB_LEGOTOWER" = module; - "USB_LCD" = module; - "USB_CYPRESS_CY7C63" = module; - "USB_CYTHERM" = module; - "USB_IDMOUSE" = module; - "USB_FTDI_ELAN" = module; - "USB_APPLEDISPLAY" = module; - "APPLE_MFI_FASTCHARGE" = module; - "USB_SISUSBVGA" = module; - "USB_LD" = module; - "USB_TRANCEVIBRATOR" = module; - "USB_IOWARRIOR" = module; - "USB_TEST" = module; - "USB_EHSET_TEST_FIXTURE" = module; - "USB_ISIGHTFW" = module; - "USB_YUREX" = module; - "USB_EZUSB_FX2" = module; - "USB_HUB_USB251XB" = module; - "USB_HSIC_USB3503" = yes; - "USB_LINK_LAYER_TEST" = module; - "USB_CHAOSKEY" = module; - "USB_ATM" = module; - "USB_SPEEDTOUCH" = module; - "USB_CXACRU" = module; - "USB_UEAGLEATM" = module; - "USB_XUSBATM" = module; - "USB_PHY" = yes; - "NOP_USB_XCEIV" = yes; - "USB_ULPI" = yes; - "USB_ULPI_VIEWPORT" = yes; - "USB_GADGET" = yes; - "USB_GADGET_VBUS_DRAW" = freeform "2"; - "USB_GADGET_STORAGE_NUM_BUFFERS" = freeform "2"; - "U_SERIAL_CONSOLE" = yes; - "USB_SNP_CORE" = module; - "USB_AMD5536UDC" = module; - "USB_NET2280" = module; - "USB_GOKU" = module; - "USB_EG20T" = module; - "USB_MAX3420_UDC" = module; - "USB_LIBCOMPOSITE" = module; - "USB_F_ACM" = module; - "USB_F_SS_LB" = module; - "USB_U_SERIAL" = module; - "USB_U_ETHER" = module; - "USB_U_AUDIO" = module; - "USB_F_SERIAL" = module; - "USB_F_OBEX" = module; - "USB_F_NCM" = module; - "USB_F_ECM" = module; - "USB_F_PHONET" = module; - "USB_F_EEM" = module; - "USB_F_SUBSET" = module; - "USB_F_RNDIS" = module; - "USB_F_MASS_STORAGE" = module; - "USB_F_FS" = module; - "USB_F_UAC1" = module; - "USB_F_UAC2" = module; - "USB_F_UVC" = module; - "USB_F_MIDI" = module; - "USB_F_HID" = module; - "USB_F_PRINTER" = module; - "USB_F_TCM" = module; - "USB_CONFIGFS" = module; - "USB_CONFIGFS_SERIAL" = yes; - "USB_CONFIGFS_ACM" = yes; - "USB_CONFIGFS_OBEX" = yes; - "USB_CONFIGFS_NCM" = yes; - "USB_CONFIGFS_ECM" = yes; - "USB_CONFIGFS_ECM_SUBSET" = yes; - "USB_CONFIGFS_RNDIS" = yes; - "USB_CONFIGFS_EEM" = yes; - "USB_CONFIGFS_MASS_STORAGE" = yes; - "USB_CONFIGFS_F_LB_SS" = yes; - "USB_CONFIGFS_F_FS" = yes; - "USB_CONFIGFS_F_UAC1" = yes; - "USB_CONFIGFS_F_UAC2" = yes; - "USB_CONFIGFS_F_MIDI" = yes; - "USB_CONFIGFS_F_HID" = yes; - "USB_CONFIGFS_F_UVC" = yes; - "USB_CONFIGFS_F_PRINTER" = yes; - "USB_CONFIGFS_F_TCM" = yes; - "USB_ZERO" = module; - "USB_AUDIO" = module; - "USB_ETH" = module; - "USB_ETH_RNDIS" = yes; - "USB_ETH_EEM" = yes; - "USB_G_NCM" = module; - "USB_GADGETFS" = module; - "USB_FUNCTIONFS" = module; - "USB_FUNCTIONFS_ETH" = yes; - "USB_FUNCTIONFS_RNDIS" = yes; - "USB_FUNCTIONFS_GENERIC" = yes; - "USB_MASS_STORAGE" = module; - "USB_GADGET_TARGET" = module; - "USB_G_SERIAL" = module; - "USB_MIDI_GADGET" = module; - "USB_G_PRINTER" = module; - "USB_CDC_COMPOSITE" = module; - "USB_G_NOKIA" = module; - "USB_G_ACM_MS" = module; - "USB_G_MULTI" = module; - "USB_G_MULTI_RNDIS" = yes; - "USB_G_MULTI_CDC" = yes; - "USB_G_HID" = module; - "USB_G_WEBCAM" = module; - "USB_RAW_GADGET" = module; - "TYPEC" = module; - "TYPEC_TCPM" = module; - "TYPEC_TCPCI" = module; - "TYPEC_RT1711H" = module; - "TYPEC_FUSB302" = module; - "TYPEC_UCSI" = module; - "UCSI_CCG" = module; - "TYPEC_HD3SS3220" = module; - "TYPEC_TPS6598X" = module; - "TYPEC_MUX_PI3USB30532" = module; - "TYPEC_DP_ALTMODE" = module; - "USB_ROLE_SWITCH" = yes; - "MMC" = yes; - "PWRSEQ_EMMC" = yes; - "PWRSEQ_SD8787" = module; - "PWRSEQ_SIMPLE" = yes; - "MMC_BLOCK" = yes; - "MMC_BLOCK_MINORS" = freeform "32"; - "MMC_ARMMMCI" = yes; - "MMC_STM32_SDMMC" = yes; - "MMC_SDHCI" = yes; - "MMC_SDHCI_IO_ACCESSORS" = yes; - "MMC_SDHCI_PLTFM" = yes; - "MMC_SDHCI_OF_ARASAN" = yes; - "MMC_SDHCI_OF_ASPEED" = module; - "MMC_SDHCI_CADENCE" = yes; - "MMC_SDHCI_MILBEAUT" = module; - "MMC_MESON_GX" = module; - "MMC_MESON_MX_SDIO" = module; - "MMC_ALCOR" = module; - "MMC_SPI" = yes; - "MMC_DW" = yes; - "MMC_DW_PLTFM" = yes; - "MMC_DW_EXYNOS" = yes; - "MMC_DW_HI3798CV200" = module; - "MMC_DW_K3" = yes; - "MMC_DW_ROCKCHIP" = yes; - "MMC_REALTEK_PCI" = module; - "MMC_REALTEK_USB" = module; - "MMC_SUNXI" = module; - "MMC_CQHCI" = yes; - "MMC_HSQ" = module; - "MMC_SDHCI_XENON" = yes; - "MMC_SDHCI_AM654" = module; - "NEW_LEDS" = yes; - "LEDS_CLASS" = yes; - "LEDS_AN30259A" = module; - "LEDS_CR0014114" = module; - "LEDS_EL15203000" = module; - "LEDS_LM3532" = module; - "LEDS_LM3533" = module; - "LEDS_LM3692X" = module; - "LEDS_GPIO" = yes; - "LEDS_PWM" = module; - "LEDS_REGULATOR" = module; - "LEDS_ADP5520" = module; - "LEDS_MAX77650" = module; - "LEDS_SYSCON" = yes; - "LEDS_MLXREG" = module; - "LEDS_USER" = yes; - "LEDS_TRIGGERS" = yes; - "LEDS_TRIGGER_TIMER" = module; - "LEDS_TRIGGER_ONESHOT" = module; - "LEDS_TRIGGER_DISK" = yes; - "LEDS_TRIGGER_MTD" = yes; - "LEDS_TRIGGER_HEARTBEAT" = yes; - "LEDS_TRIGGER_BACKLIGHT" = module; - "LEDS_TRIGGER_CPU" = yes; - "LEDS_TRIGGER_ACTIVITY" = yes; - "LEDS_TRIGGER_GPIO" = module; - "LEDS_TRIGGER_DEFAULT_ON" = yes; - "LEDS_TRIGGER_TRANSIENT" = module; - "LEDS_TRIGGER_CAMERA" = module; - "LEDS_TRIGGER_PANIC" = yes; - "LEDS_TRIGGER_NETDEV" = module; - "LEDS_TRIGGER_PATTERN" = module; - "LEDS_TRIGGER_AUDIO" = module; - "EDAC_SUPPORT" = yes; - "EDAC" = yes; - "EDAC_LEGACY_SYSFS" = yes; - "EDAC_DMC520" = module; - "RTC_LIB" = yes; - "RTC_CLASS" = yes; - "RTC_HCTOSYS" = yes; - "RTC_HCTOSYS_DEVICE" = freeform "rtc0"; - "RTC_SYSTOHC" = yes; - "RTC_SYSTOHC_DEVICE" = freeform "rtc0"; - "RTC_NVMEM" = yes; - "RTC_INTF_SYSFS" = yes; - "RTC_INTF_PROC" = yes; - "RTC_INTF_DEV" = yes; - "RTC_DRV_AC100" = module; - "RTC_DRV_AS3722" = module; - "RTC_DRV_DS1307" = yes; - "RTC_DRV_MAX77686" = yes; - "RTC_DRV_RK808" = yes; - "RTC_DRV_ISL12026" = module; - "RTC_DRV_X1205" = module; - "RTC_DRV_PCF8523" = module; - "RTC_DRV_PCF85063" = module; - "RTC_DRV_PCF85363" = module; - "RTC_DRV_PCF8563" = module; - "RTC_DRV_PCF8583" = module; - "RTC_DRV_M41T80" = module; - "RTC_DRV_M41T80_WDT" = yes; - "RTC_DRV_BD70528" = module; - "RTC_DRV_BQ32K" = module; - "RTC_DRV_RC5T583" = module; - "RTC_DRV_RC5T619" = module; - "RTC_DRV_S35390A" = module; - "RTC_DRV_FM3130" = module; - "RTC_DRV_RX8010" = module; - "RTC_DRV_RX8581" = module; - "RTC_DRV_RX8025" = module; - "RTC_DRV_EM3027" = module; - "RTC_DRV_RV3028" = module; - "RTC_DRV_RV8803" = module; - "RTC_DRV_S5M" = module; - "RTC_DRV_SD3078" = module; - "RTC_DRV_M41T93" = module; - "RTC_DRV_M41T94" = module; - "RTC_DRV_DS1302" = module; - "RTC_DRV_DS1305" = module; - "RTC_DRV_DS1343" = module; - "RTC_DRV_DS1347" = module; - "RTC_DRV_DS1390" = module; - "RTC_DRV_MAX6916" = module; - "RTC_DRV_R9701" = module; - "RTC_DRV_RX4581" = module; - "RTC_DRV_RX6110" = module; - "RTC_DRV_RS5C348" = module; - "RTC_DRV_MAX6902" = module; - "RTC_DRV_PCF2123" = module; - "RTC_DRV_MCP795" = module; - "RTC_I2C_AND_SPI" = yes; - "RTC_DRV_DS3232" = module; - "RTC_DRV_DS3232_HWMON" = yes; - "RTC_DRV_PCF2127" = module; - "RTC_DRV_RV3029C2" = module; - "RTC_DRV_RV3029_HWMON" = yes; - "RTC_DRV_EFI" = yes; - "RTC_DRV_MESON_VRTC" = module; - "RTC_DRV_PL031" = yes; - "RTC_DRV_SUN6I" = yes; - "RTC_DRV_CADENCE" = module; - "RTC_DRV_HID_SENSOR_TIME" = module; - "DMADEVICES" = yes; - "ASYNC_TX_ENABLE_CHANNEL_SWITCH" = yes; - "DMA_ENGINE" = yes; - "DMA_VIRTUAL_CHANNELS" = module; - "DMA_OF" = yes; - "ALTERA_MSGDMA" = module; - "BCM_SBA_RAID" = module; - "DMA_SUN6I" = module; - "DW_AXI_DMAC" = module; - "FSL_QDMA" = module; - "HISI_DMA" = module; - "MV_XOR_V2" = yes; - "PL330_DMA" = yes; - "PLX_DMA" = module; - "QCOM_HIDMA_MGMT" = yes; - "QCOM_HIDMA" = yes; - "DW_EDMA" = module; - "DW_EDMA_PCIE" = module; - "SF_PDMA" = module; - "DMA_ENGINE_RAID" = yes; - "SYNC_FILE" = yes; - "DMABUF_SELFTESTS" = module; - "UIO" = module; - "VFIO_IOMMU_TYPE1" = yes; - "VFIO_VIRQFD" = yes; - "VFIO" = yes; - "VFIO_PCI" = yes; - "VFIO_PCI_MMAP" = yes; - "VFIO_PCI_INTX" = yes; - "VIRT_DRIVERS" = yes; - "VIRTIO" = yes; - "VIRTIO_MENU" = yes; - "VIRTIO_PCI" = yes; - "VIRTIO_PCI_LEGACY" = yes; - "VIRTIO_VDPA" = module; - "VIRTIO_BALLOON" = yes; - "VIRTIO_INPUT" = module; - "VIRTIO_MMIO" = yes; - "VDPA" = module; - "VDPA_SIM" = module; - "IFCVF" = module; - "VHOST_IOTLB" = module; - "VHOST_RING" = module; - "VHOST" = module; - "VHOST_MENU" = yes; - "VHOST_NET" = module; - "VHOST_SCSI" = module; - "VHOST_VDPA" = module; - "XEN_BALLOON" = yes; - "XEN_SCRUB_PAGES_DEFAULT" = yes; - "XEN_DEV_EVTCHN" = yes; - "XEN_BACKEND" = yes; - "XENFS" = yes; - "XEN_COMPAT_XENFS" = yes; - "XEN_SYS_HYPERVISOR" = yes; - "XEN_XENBUS_FRONTEND" = yes; - "XEN_GNTDEV" = yes; - "XEN_GRANT_DEV_ALLOC" = yes; - "SWIOTLB_XEN" = yes; - "XEN_SCSI_BACKEND" = module; - "XEN_PRIVCMD" = yes; - "XEN_EFI" = yes; - "XEN_AUTO_XLATE" = yes; - "XEN_FRONT_PGDIR_SHBUF" = module; - "STAGING" = yes; - "RTL8192U" = module; - "RTLLIB" = module; - "RTLLIB_CRYPTO_CCMP" = module; - "RTLLIB_CRYPTO_TKIP" = module; - "RTLLIB_CRYPTO_WEP" = module; - "RTL8192E" = module; - "RTL8723BS" = module; - "R8712U" = module; - "RTS5208" = module; - "VT6655" = module; - "VT6656" = module; - "AD9832" = module; - "AD9834" = module; - "FB_SM750" = module; - "STAGING_MEDIA" = yes; - "VIDEO_HANTRO" = module; - "VIDEO_HANTRO_ROCKCHIP" = yes; - "VIDEO_MESON_VDEC" = module; - "VIDEO_ROCKCHIP_VDEC" = module; - "VIDEO_SUNXI" = yes; - "VIDEO_SUNXI_CEDRUS" = module; - "PHY_ROCKCHIP_DPHY_RX0" = module; - "VIDEO_ROCKCHIP_ISP1" = module; - "VIDEO_USBVISION" = module; - "FB_TFT" = module; - "FB_TFT_AGM1264K_FL" = module; - "FB_TFT_BD663474" = module; - "FB_TFT_HX8340BN" = module; - "FB_TFT_HX8347D" = module; - "FB_TFT_HX8353D" = module; - "FB_TFT_HX8357D" = module; - "FB_TFT_ILI9163" = module; - "FB_TFT_ILI9320" = module; - "FB_TFT_ILI9325" = module; - "FB_TFT_ILI9340" = module; - "FB_TFT_ILI9341" = module; - "FB_TFT_ILI9481" = module; - "FB_TFT_ILI9486" = module; - "FB_TFT_PCD8544" = module; - "FB_TFT_RA8875" = module; - "FB_TFT_S6D02A1" = module; - "FB_TFT_S6D1121" = module; - "FB_TFT_SEPS525" = module; - "FB_TFT_SH1106" = module; - "FB_TFT_SSD1289" = module; - "FB_TFT_SSD1305" = module; - "FB_TFT_SSD1306" = module; - "FB_TFT_SSD1331" = module; - "FB_TFT_SSD1351" = module; - "FB_TFT_ST7735R" = module; - "FB_TFT_ST7789V" = module; - "FB_TFT_TINYLCD" = module; - "FB_TFT_TLS8204" = module; - "FB_TFT_UC1611" = module; - "FB_TFT_UC1701" = module; - "FB_TFT_UPD161704" = module; - "FB_TFT_WATTEROTT" = module; - "FUSB_30X" = module; - "FIELDBUS_DEV" = module; - "HMS_ANYBUSS_BUS" = module; - "WFX" = module; - "MFD_CROS_EC" = yes; - "CHROME_PLATFORMS" = yes; - "CROS_EC" = yes; - "CROS_EC_PROTO" = yes; - "CROS_EC_CHARDEV" = yes; - "CROS_EC_LIGHTBAR" = yes; - "CROS_EC_VBC" = yes; - "CROS_EC_DEBUGFS" = yes; - "CROS_EC_SENSORHUB" = yes; - "CROS_EC_SYSFS" = yes; - "CROS_EC_TYPEC" = module; - "CROS_USBPD_NOTIFY" = yes; - "HAVE_CLK" = yes; - "CLKDEV_LOOKUP" = yes; - "HAVE_CLK_PREPARE" = yes; - "COMMON_CLK" = yes; - "COMMON_CLK_RK808" = yes; - "COMMON_CLK_SCPI" = yes; - "COMMON_CLK_SI544" = module; - "COMMON_CLK_CS2000_CP" = yes; - "COMMON_CLK_S2MPS11" = yes; - "CLK_QORIQ" = yes; - "COMMON_CLK_XGENE" = yes; - "COMMON_CLK_PWM" = yes; - "COMMON_CLK_BD718XX" = module; - "COMMON_CLK_MESON_REGMAP" = yes; - "COMMON_CLK_MESON_DUALDIV" = yes; - "COMMON_CLK_MESON_MPLL" = yes; - "COMMON_CLK_MESON_PHASE" = module; - "COMMON_CLK_MESON_PLL" = yes; - "COMMON_CLK_MESON_SCLK_DIV" = module; - "COMMON_CLK_MESON_VID_PLL_DIV" = yes; - "COMMON_CLK_MESON_AO_CLKC" = yes; - "COMMON_CLK_MESON_EE_CLKC" = yes; - "COMMON_CLK_MESON_CPU_DYNDIV" = yes; - "COMMON_CLK_GXBB" = yes; - "COMMON_CLK_AXG" = yes; - "COMMON_CLK_AXG_AUDIO" = module; - "COMMON_CLK_G12A" = yes; - "CLK_SUNXI" = yes; - "CLK_SUNXI_CLOCKS" = yes; - "CLK_SUNXI_PRCM_SUN6I" = yes; - "CLK_SUNXI_PRCM_SUN8I" = yes; - "CLK_SUNXI_PRCM_SUN9I" = yes; - "SUNXI_CCU" = yes; - "SUN50I_A64_CCU" = yes; - "SUN50I_H6_CCU" = yes; - "SUN50I_H6_R_CCU" = yes; - "SUN8I_A83T_CCU" = yes; - "SUN8I_H3_CCU" = yes; - "SUN8I_DE2_CCU" = yes; - "SUN8I_R_CCU" = yes; - "TIMER_OF" = yes; - "TIMER_PROBE" = yes; - "CLKSRC_MMIO" = yes; - "ROCKCHIP_TIMER" = yes; - "ARM_ARCH_TIMER" = yes; - "ARM_ARCH_TIMER_EVTSTREAM" = yes; - "ARM_ARCH_TIMER_OOL_WORKAROUND" = yes; - "FSL_ERRATUM_A008585" = yes; - "HISILICON_ERRATUM_161010101" = yes; - "ARM64_ERRATUM_858921" = yes; - "SUN50I_ERRATUM_UNKNOWN1" = yes; - "MAILBOX" = yes; - "ARM_MHU" = yes; - "PLATFORM_MHU" = yes; - "ROCKCHIP_MBOX" = yes; - "SUN6I_MSGBOX" = yes; - "IOMMU_IOVA" = yes; - "IOMMU_API" = yes; - "IOMMU_SUPPORT" = yes; - "IOMMU_IO_PGTABLE" = yes; - "IOMMU_IO_PGTABLE_LPAE" = yes; - "OF_IOMMU" = yes; - "IOMMU_DMA" = yes; - "ROCKCHIP_IOMMU" = yes; - "ARM_SMMU" = yes; - "ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT" = yes; - "ARM_SMMU_V3" = yes; - "MESON_CANVAS" = module; - "MESON_CLK_MEASURE" = yes; - "MESON_GX_SOCINFO" = yes; - "MESON_GX_PM_DOMAINS" = yes; - "MESON_EE_PM_DOMAINS" = yes; - "MESON_SECURE_PM_DOMAINS" = yes; - "MESON_MX_SOCINFO" = yes; - "SOC_BRCMSTB" = yes; - "ROCKCHIP_GRF" = yes; - "ROCKCHIP_PM_DOMAINS" = yes; - "SUNXI_SRAM" = yes; - "VENDOR_FRIENDLYELEC" = yes; - "PM_DEVFREQ" = yes; - "DEVFREQ_GOV_SIMPLE_ONDEMAND" = yes; - "DEVFREQ_GOV_PERFORMANCE" = module; - "DEVFREQ_GOV_POWERSAVE" = module; - "DEVFREQ_GOV_USERSPACE" = module; - "DEVFREQ_GOV_PASSIVE" = module; - "ARM_RK3328_DMC_DEVFREQ" = yes; - "ARM_RK3399_DMC_DEVFREQ" = yes; - "PM_DEVFREQ_EVENT" = yes; - "DEVFREQ_EVENT_ROCKCHIP_DFI" = yes; - "EXTCON" = yes; - "EXTCON_PTN5150" = module; - "EXTCON_USB_GPIO" = yes; - "IIO" = yes; - "IIO_BUFFER" = yes; - "IIO_BUFFER_CB" = module; - "IIO_KFIFO_BUF" = yes; - "IIO_TRIGGERED_BUFFER" = yes; - "IIO_CONFIGFS" = module; - "IIO_TRIGGER" = yes; - "IIO_CONSUMERS_PER_TRIGGER" = freeform "2"; - "IIO_SW_DEVICE" = module; - "IIO_SW_TRIGGER" = module; - "ADIS16201" = module; - "ADIS16209" = module; - "ADXL345" = module; - "ADXL345_I2C" = module; - "ADXL345_SPI" = module; - "ADXL372" = module; - "ADXL372_SPI" = module; - "ADXL372_I2C" = module; - "BMA180" = module; - "BMA220" = module; - "BMA400" = module; - "BMA400_I2C" = module; - "BMA400_SPI" = module; - "BMC150_ACCEL" = module; - "BMC150_ACCEL_I2C" = module; - "BMC150_ACCEL_SPI" = module; - "DA280" = module; - "DA311" = module; - "DMARD06" = module; - "DMARD09" = module; - "DMARD10" = module; - "HID_SENSOR_ACCEL_3D" = module; - "IIO_ST_ACCEL_3AXIS" = module; - "IIO_ST_ACCEL_I2C_3AXIS" = module; - "IIO_ST_ACCEL_SPI_3AXIS" = module; - "KXSD9" = module; - "KXSD9_SPI" = module; - "KXSD9_I2C" = module; - "KXCJK1013" = module; - "MC3230" = module; - "MMA7455" = module; - "MMA7455_I2C" = module; - "MMA7455_SPI" = module; - "MMA7660" = module; - "MMA8452" = module; - "MMA9551_CORE" = module; - "MMA9551" = module; - "MMA9553" = module; - "MXC4005" = module; - "MXC6255" = module; - "SCA3000" = module; - "STK8312" = module; - "STK8BA50" = module; - "AD_SIGMA_DELTA" = module; - "AD7091R5" = module; - "AD7124" = module; - "AD7266" = module; - "AD7291" = module; - "AD7292" = module; - "AD7298" = module; - "AD7476" = module; - "AD7606" = module; - "AD7606_IFACE_PARALLEL" = module; - "AD7606_IFACE_SPI" = module; - "AD7766" = module; - "AD7768_1" = module; - "AD7791" = module; - "AD7793" = module; - "AD7887" = module; - "AD7923" = module; - "AD7949" = module; - "AD799X" = module; - "AXP20X_ADC" = module; - "AXP288_ADC" = module; - "LTC2496" = module; - "MESON_SARADC" = yes; - "RN5T618_ADC" = module; - "ROCKCHIP_SARADC" = yes; - "SUN4I_GPADC" = module; - "TI_ADC081C" = module; - "TI_ADC0832" = module; - "TI_ADC084S021" = module; - "TI_ADC12138" = module; - "TI_ADC108S102" = module; - "TI_ADC128S052" = module; - "TI_ADC161S626" = module; - "TI_ADS1015" = module; - "TI_ADS7950" = module; - "TI_ADS8344" = module; - "TI_ADS8688" = module; - "TI_ADS124S08" = module; - "XILINX_XADC" = module; - "HMC425" = module; - "BME680" = module; - "BME680_I2C" = module; - "BME680_SPI" = module; - "PMS7003" = module; - "SENSIRION_SGP30" = module; - "SPS30" = module; - "HID_SENSOR_IIO_COMMON" = module; - "HID_SENSOR_IIO_TRIGGER" = module; - "IIO_MS_SENSORS_I2C" = module; - "IIO_ST_SENSORS_I2C" = module; - "IIO_ST_SENSORS_SPI" = module; - "IIO_ST_SENSORS_CORE" = module; - "AD5686" = module; - "AD5686_SPI" = module; - "AD5696_I2C" = module; - "AD5758" = module; - "AD5770R" = module; - "LTC1660" = module; - "TI_DAC5571" = module; - "TI_DAC7311" = module; - "TI_DAC7612" = module; - "IIO_SIMPLE_DUMMY" = module; - "ADF4371" = module; - "ADIS16080" = module; - "ADIS16130" = module; - "ADIS16136" = module; - "ADIS16260" = module; - "ADXRS450" = module; - "BMG160" = module; - "BMG160_I2C" = module; - "BMG160_SPI" = module; - "FXAS21002C" = module; - "FXAS21002C_I2C" = module; - "FXAS21002C_SPI" = module; - "HID_SENSOR_GYRO_3D" = module; - "MPU3050" = module; - "MPU3050_I2C" = module; - "IIO_ST_GYRO_3AXIS" = module; - "IIO_ST_GYRO_I2C_3AXIS" = module; - "IIO_ST_GYRO_SPI_3AXIS" = module; - "ITG3200" = module; - "AM2315" = module; - "DHT11" = module; - "HDC100X" = module; - "HID_SENSOR_HUMIDITY" = module; - "HTS221" = module; - "HTS221_I2C" = module; - "HTS221_SPI" = module; - "HTU21" = module; - "SI7005" = module; - "SI7020" = module; - "ADIS16460" = module; - "FXOS8700" = module; - "FXOS8700_I2C" = module; - "FXOS8700_SPI" = module; - "IIO_ADIS_LIB" = module; - "IIO_ADIS_LIB_BUFFER" = yes; - "ADJD_S311" = module; - "ADUX1020" = module; - "AL3010" = module; - "AL3320A" = module; - "APDS9300" = module; - "APDS9960" = module; - "BH1750" = module; - "BH1780" = module; - "CM32181" = module; - "CM3232" = module; - "CM3323" = module; - "CM3605" = module; - "CM36651" = module; - "GP2AP002" = module; - "GP2AP020A00F" = module; - "IQS621_ALS" = module; - "SENSORS_ISL29018" = module; - "SENSORS_ISL29028" = module; - "ISL29125" = module; - "HID_SENSOR_ALS" = module; - "HID_SENSOR_PROX" = module; - "JSA1212" = module; - "RPR0521" = module; - "SENSORS_LM3533" = module; - "LTR501" = module; - "LV0104CS" = module; - "MAX44000" = module; - "MAX44009" = module; - "NOA1305" = module; - "OPT3001" = module; - "PA12203001" = module; - "SI1133" = module; - "SI1145" = module; - "STK3310" = module; - "ST_UVIS25" = module; - "ST_UVIS25_I2C" = module; - "ST_UVIS25_SPI" = module; - "TCS3414" = module; - "TCS3472" = module; - "SENSORS_TSL2563" = module; - "TSL2583" = module; - "TSL2772" = module; - "TSL4531" = module; - "US5182D" = module; - "VCNL4000" = module; - "VCNL4035" = module; - "VEML6030" = module; - "VEML6070" = module; - "VL6180" = module; - "ZOPT2201" = module; - "AK8974" = module; - "AK8975" = module; - "AK09911" = module; - "BMC150_MAGN" = module; - "BMC150_MAGN_I2C" = module; - "BMC150_MAGN_SPI" = module; - "MAG3110" = module; - "HID_SENSOR_MAGNETOMETER_3D" = module; - "MMC35240" = module; - "IIO_ST_MAGN_3AXIS" = module; - "IIO_ST_MAGN_I2C_3AXIS" = module; - "IIO_ST_MAGN_SPI_3AXIS" = module; - "SENSORS_HMC5843" = module; - "SENSORS_HMC5843_I2C" = module; - "SENSORS_HMC5843_SPI" = module; - "SENSORS_RM3100" = module; - "SENSORS_RM3100_I2C" = module; - "SENSORS_RM3100_SPI" = module; - "HID_SENSOR_INCLINOMETER_3D" = module; - "HID_SENSOR_DEVICE_ROTATION" = module; - "IIO_HRTIMER_TRIGGER" = module; - "IIO_INTERRUPT_TRIGGER" = module; - "IIO_TIGHTLOOP_TRIGGER" = module; - "IIO_SYSFS_TRIGGER" = module; - "IQS624_POS" = module; - "AD5272" = module; - "MAX5432" = module; - "MCP4018" = module; - "MCP41010" = module; - "BMP280" = module; - "BMP280_I2C" = module; - "BMP280_SPI" = module; - "DLHL60D" = module; - "DPS310" = module; - "HID_SENSOR_PRESS" = module; - "ICP10100" = module; - "ISL29501" = module; - "MB1232" = module; - "PING" = module; - "VL53L0X_I2C" = module; - "IQS620AT_TEMP" = module; - "LTC2983" = module; - "MAXIM_THERMOCOUPLE" = module; - "HID_SENSOR_TEMP" = module; - "MLX90614" = module; - "MLX90632" = module; - "TMP006" = module; - "TMP007" = module; - "TSYS01" = module; - "TSYS02D" = module; - "MAX31856" = module; - "PWM" = yes; - "PWM_SYSFS" = yes; - "PWM_CROS_EC" = module; - "PWM_MESON" = module; - "PWM_ROCKCHIP" = yes; - "PWM_SUN4I" = module; - "IRQCHIP" = yes; - "ARM_GIC" = yes; - "ARM_GIC_MAX_NR" = freeform "1"; - "ARM_GIC_V2M" = yes; - "ARM_GIC_V3" = yes; - "ARM_GIC_V3_ITS" = yes; - "ARM_GIC_V3_ITS_PCI" = yes; - "PARTITION_PERCPU" = yes; - "MESON_IRQ_GPIO" = yes; - "ARCH_HAS_RESET_CONTROLLER" = yes; - "RESET_CONTROLLER" = yes; - "RESET_MESON" = yes; - "RESET_MESON_AUDIO_ARB" = module; - "RESET_SIMPLE" = yes; - "RESET_SUNXI" = yes; - "GENERIC_PHY" = yes; - "GENERIC_PHY_MIPI_DPHY" = yes; - "PHY_XGENE" = yes; - "PHY_SUN4I_USB" = module; - "PHY_SUN6I_MIPI_DPHY" = module; - "PHY_SUN9I_USB" = module; - "PHY_SUN50I_USB3" = module; - "PHY_MESON8B_USB2" = module; - "PHY_MESON_GXL_USB2" = module; - "PHY_MESON_G12A_USB2" = module; - "PHY_MESON_G12A_USB3_PCIE" = module; - "PHY_MESON_AXG_PCIE" = yes; - "PHY_MESON_AXG_MIPI_PCIE_ANALOG" = yes; - "PHY_CADENCE_TORRENT" = module; - "PHY_CADENCE_DPHY" = module; - "PHY_CADENCE_SIERRA" = module; - "PHY_FSL_IMX8MQ_USB" = module; - "PHY_MIXEL_MIPI_DPHY" = module; - "PHY_MAPPHONE_MDM6600" = module; - "PHY_ROCKCHIP_DP" = yes; - "PHY_ROCKCHIP_EMMC" = yes; - "PHY_ROCKCHIP_INNO_HDMI" = yes; - "PHY_ROCKCHIP_INNO_USB2" = yes; - "PHY_ROCKCHIP_INNO_DSIDPHY" = module; - "PHY_ROCKCHIP_INNO_USB3" = yes; - "PHY_ROCKCHIP_PCIE" = yes; - "PHY_ROCKCHIP_TYPEC" = yes; - "PHY_ROCKCHIP_USB" = yes; - "PHY_SAMSUNG_USB2" = yes; - "ARM_CCI_PMU" = module; - "ARM_PMU" = yes; - "RAS" = yes; - "DAX" = yes; - "DEV_DAX" = module; - "NVMEM" = yes; - "NVMEM_SYSFS" = yes; - "NVMEM_SPMI_SDAM" = module; - "ROCKCHIP_EFUSE" = yes; - "ROCKCHIP_OTP" = module; - "NVMEM_SUNXI_SID" = module; - "MESON_EFUSE" = module; - "MESON_MX_EFUSE" = module; - "RAVE_SP_EEPROM" = module; - "MULTIPLEXER" = module; - "MUX_ADG792A" = module; - "MUX_ADGS1408" = module; - "MUX_GPIO" = module; - "MUX_MMIO" = module; - "PM_OPP" = yes; - "COUNTER" = module; - "FTM_QUADDEC" = module; - "MOST" = module; - "DCACHE_WORD_ACCESS" = yes; - "VALIDATE_FS_PARSER" = yes; - "FS_IOMAP" = yes; - "EXT2_FS" = yes; - "EXT2_FS_XATTR" = yes; - "EXT2_FS_POSIX_ACL" = yes; - "EXT2_FS_SECURITY" = yes; - "EXT3_FS" = yes; - "EXT3_FS_POSIX_ACL" = yes; - "EXT3_FS_SECURITY" = yes; - "EXT4_FS" = yes; - "EXT4_FS_POSIX_ACL" = yes; - "EXT4_FS_SECURITY" = yes; - "EXT4_KUNIT_TESTS" = module; - "JBD2" = yes; - "FS_MBCACHE" = yes; - "REISERFS_FS" = module; - "REISERFS_PROC_INFO" = yes; - "REISERFS_FS_XATTR" = yes; - "REISERFS_FS_POSIX_ACL" = yes; - "REISERFS_FS_SECURITY" = yes; - "JFS_FS" = module; - "JFS_POSIX_ACL" = yes; - "JFS_SECURITY" = yes; - "JFS_STATISTICS" = yes; - "XFS_FS" = module; - "XFS_QUOTA" = yes; - "XFS_POSIX_ACL" = yes; - "XFS_RT" = yes; - "GFS2_FS" = module; - "GFS2_FS_LOCKING_DLM" = yes; - "BTRFS_FS" = yes; - "BTRFS_FS_POSIX_ACL" = yes; - "NILFS2_FS" = module; - "ZONEFS_FS" = module; - "FS_DAX" = yes; - "FS_POSIX_ACL" = yes; - "EXPORTFS" = yes; - "EXPORTFS_BLOCK_OPS" = yes; - "FILE_LOCKING" = yes; - "MANDATORY_FILE_LOCKING" = yes; - "FS_ENCRYPTION" = yes; - "FS_ENCRYPTION_ALGS" = yes; - "FS_VERITY" = yes; - "FS_VERITY_BUILTIN_SIGNATURES" = yes; - "FSNOTIFY" = yes; - "DNOTIFY" = yes; - "INOTIFY_USER" = yes; - "FANOTIFY" = yes; - "FANOTIFY_ACCESS_PERMISSIONS" = yes; - "QUOTA" = yes; - "QUOTA_NETLINK_INTERFACE" = yes; - "PRINT_QUOTA_WARNING" = yes; - "QUOTA_TREE" = module; - "QFMT_V1" = module; - "QFMT_V2" = module; - "QUOTACTL" = yes; - "AUTOFS4_FS" = module; - "AUTOFS_FS" = module; - "FUSE_FS" = yes; - "CUSE" = module; - "VIRTIO_FS" = module; - "OVERLAY_FS" = yes; - "OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW" = yes; - "OVERLAY_FS_XINO_AUTO" = yes; - "FSCACHE" = module; - "FSCACHE_STATS" = yes; - "CACHEFILES" = module; - "ISO9660_FS" = module; - "JOLIET" = yes; - "ZISOFS" = yes; - "UDF_FS" = module; - "FAT_FS" = yes; - "MSDOS_FS" = module; - "VFAT_FS" = yes; - "FAT_DEFAULT_CODEPAGE" = freeform "437"; - "FAT_DEFAULT_IOCHARSET" = freeform "iso8859-1"; - "FAT_DEFAULT_UTF8" = yes; - "EXFAT_FS" = module; - "EXFAT_DEFAULT_IOCHARSET" = freeform "utf8"; - "NTFS_FS" = module; - "NTFS_RW" = yes; - "PROC_FS" = yes; - "PROC_VMCORE" = yes; - "PROC_SYSCTL" = yes; - "PROC_PAGE_MONITOR" = yes; - "PROC_CHILDREN" = yes; - "KERNFS" = yes; - "SYSFS" = yes; - "TMPFS" = yes; - "TMPFS_POSIX_ACL" = yes; - "TMPFS_XATTR" = yes; - "HUGETLBFS" = yes; - "HUGETLB_PAGE" = yes; - "MEMFD_CREATE" = yes; - "ARCH_HAS_GIGANTIC_PAGE" = yes; - "CONFIGFS_FS" = yes; - "EFIVAR_FS" = module; - "MISC_FILESYSTEMS" = yes; - "ORANGEFS_FS" = module; - "ADFS_FS" = module; - "AFFS_FS" = module; - "ECRYPT_FS" = yes; - "ECRYPT_FS_MESSAGING" = yes; - "HFS_FS" = module; - "HFSPLUS_FS" = module; - "BEFS_FS" = module; - "BFS_FS" = module; - "EFS_FS" = module; - "JFFS2_FS" = module; - "JFFS2_FS_DEBUG" = freeform "0"; - "JFFS2_FS_WRITEBUFFER" = yes; - "JFFS2_FS_XATTR" = yes; - "JFFS2_FS_POSIX_ACL" = yes; - "JFFS2_FS_SECURITY" = yes; - "JFFS2_COMPRESSION_OPTIONS" = yes; - "JFFS2_ZLIB" = yes; - "JFFS2_LZO" = yes; - "JFFS2_RTIME" = yes; - "JFFS2_CMODE_FAVOURLZO" = yes; - "CRAMFS" = module; - "CRAMFS_BLOCKDEV" = yes; - "CRAMFS_MTD" = yes; - "SQUASHFS" = yes; - "SQUASHFS_FILE_DIRECT" = yes; - "SQUASHFS_DECOMP_MULTI_PERCPU" = yes; - "SQUASHFS_XATTR" = yes; - "SQUASHFS_ZLIB" = yes; - "SQUASHFS_LZ4" = yes; - "SQUASHFS_LZO" = yes; - "SQUASHFS_XZ" = yes; - "SQUASHFS_ZSTD" = yes; - "SQUASHFS_4K_DEVBLK_SIZE" = yes; - "SQUASHFS_EMBEDDED" = yes; - "SQUASHFS_FRAGMENT_CACHE_SIZE" = freeform "3"; - "VXFS_FS" = module; - "MINIX_FS" = module; - "OMFS_FS" = module; - "HPFS_FS" = module; - "QNX4FS_FS" = module; - "QNX6FS_FS" = module; - "ROMFS_FS" = module; - "ROMFS_BACKED_BY_BLOCK" = yes; - "ROMFS_ON_BLOCK" = yes; - "PSTORE" = yes; - "PSTORE_DEFLATE_COMPRESS" = yes; - "PSTORE_LZ4HC_COMPRESS" = module; - "PSTORE_COMPRESS" = yes; - "PSTORE_DEFLATE_COMPRESS_DEFAULT" = yes; - "PSTORE_COMPRESS_DEFAULT" = freeform "deflate"; - "PSTORE_RAM" = module; - "SYSV_FS" = module; - "UFS_FS" = module; - "UFS_FS_WRITE" = yes; - "EROFS_FS" = module; - "EROFS_FS_XATTR" = yes; - "EROFS_FS_POSIX_ACL" = yes; - "EROFS_FS_SECURITY" = yes; - "NETWORK_FILESYSTEMS" = yes; - "NFS_FS" = module; - "NFS_V2" = module; - "NFS_V3" = module; - "NFS_V3_ACL" = yes; - "NFS_V4" = module; - "NFS_SWAP" = yes; - "NFS_V4_1" = yes; - "NFS_V4_2" = yes; - "PNFS_FILE_LAYOUT" = module; - "PNFS_BLOCK" = module; - "PNFS_FLEXFILE_LAYOUT" = module; - "NFS_V4_1_IMPLEMENTATION_ID_DOMAIN" = freeform "kernel.org"; - "NFS_V4_1_MIGRATION" = yes; - "NFS_V4_SECURITY_LABEL" = yes; - "NFS_FSCACHE" = yes; - "NFS_USE_KERNEL_DNS" = yes; - "NFS_DEBUG" = yes; - "NFS_DISABLE_UDP_SUPPORT" = yes; - "NFSD" = module; - "NFSD_V2_ACL" = yes; - "NFSD_V3" = yes; - "NFSD_V3_ACL" = yes; - "NFSD_V4" = yes; - "NFSD_PNFS" = yes; - "NFSD_BLOCKLAYOUT" = yes; - "NFSD_SCSILAYOUT" = yes; - "NFSD_FLEXFILELAYOUT" = yes; - "NFSD_V4_SECURITY_LABEL" = yes; - "GRACE_PERIOD" = module; - "LOCKD" = module; - "LOCKD_V4" = yes; - "NFS_ACL_SUPPORT" = module; - "NFS_COMMON" = yes; - "SUNRPC" = module; - "SUNRPC_GSS" = module; - "SUNRPC_BACKCHANNEL" = yes; - "SUNRPC_SWAP" = yes; - "RPCSEC_GSS_KRB5" = module; - "SUNRPC_DEBUG" = yes; - "CEPH_FS" = module; - "CEPH_FSCACHE" = yes; - "CEPH_FS_POSIX_ACL" = yes; - "CEPH_FS_SECURITY_LABEL" = yes; - "CIFS" = module; - "CIFS_STATS2" = yes; - "CIFS_ALLOW_INSECURE_LEGACY" = yes; - "CIFS_WEAK_PW_HASH" = yes; - "CIFS_UPCALL" = yes; - "CIFS_XATTR" = yes; - "CIFS_POSIX" = yes; - "CIFS_DEBUG" = yes; - "CIFS_DFS_UPCALL" = yes; - "CIFS_FSCACHE" = yes; - "CODA_FS" = module; - "AFS_FS" = module; - "AFS_FSCACHE" = yes; - "9P_FS" = module; - "9P_FSCACHE" = yes; - "9P_FS_POSIX_ACL" = yes; - "9P_FS_SECURITY" = yes; - "DLM" = module; - "UNICODE" = yes; - "IO_WQ" = yes; - "KEYS" = yes; - "KEYS_REQUEST_CACHE" = yes; - "PERSISTENT_KEYRINGS" = yes; - "ENCRYPTED_KEYS" = yes; - "KEY_DH_OPERATIONS" = yes; - "SECURITY" = yes; - "SECURITYFS" = yes; - "SECURITY_NETWORK" = yes; - "SECURITY_NETWORK_XFRM" = yes; - "SECURITY_PATH" = yes; - "LSM_MMAP_MIN_ADDR" = freeform "0"; - "HAVE_HARDENED_USERCOPY_ALLOCATOR" = yes; - "HARDENED_USERCOPY" = yes; - "HARDENED_USERCOPY_FALLBACK" = yes; - "FORTIFY_SOURCE" = yes; - "SECURITY_SELINUX" = yes; - "SECURITY_SELINUX_BOOTPARAM" = yes; - "SECURITY_SELINUX_DEVELOP" = yes; - "SECURITY_SELINUX_AVC_STATS" = yes; - "SECURITY_SELINUX_CHECKREQPROT_VALUE" = freeform "1"; - "SECURITY_SELINUX_SIDTAB_HASH_BITS" = freeform "9"; - "SECURITY_SELINUX_SID2STR_CACHE_SIZE" = freeform "256"; - "SECURITY_SMACK" = yes; - "SECURITY_SMACK_NETFILTER" = yes; - "SECURITY_SMACK_APPEND_SIGNALS" = yes; - "SECURITY_TOMOYO" = yes; - "SECURITY_TOMOYO_MAX_ACCEPT_ENTRY" = freeform "2048"; - "SECURITY_TOMOYO_MAX_AUDIT_LOG" = freeform "1024"; - "SECURITY_TOMOYO_POLICY_LOADER" = freeform "/sbin/tomoyo-init"; - "SECURITY_TOMOYO_ACTIVATION_TRIGGER" = freeform "/sbin/init"; - "SECURITY_APPARMOR" = yes; - "SECURITY_APPARMOR_HASH" = yes; - "SECURITY_APPARMOR_HASH_DEFAULT" = yes; - "SECURITY_YAMA" = yes; - "SECURITY_SAFESETID" = yes; - "INTEGRITY" = yes; - "INTEGRITY_SIGNATURE" = yes; - "INTEGRITY_ASYMMETRIC_KEYS" = yes; - "INTEGRITY_TRUSTED_KEYRING" = yes; - "INTEGRITY_PLATFORM_KEYRING" = yes; - "LOAD_UEFI_KEYS" = yes; - "INTEGRITY_AUDIT" = yes; - "DEFAULT_SECURITY_APPARMOR" = yes; - "LSM" = freeform "lockdown,yama,integrity,apparmor"; - "INIT_STACK_NONE" = yes; - "INIT_ON_ALLOC_DEFAULT_ON" = yes; - "XOR_BLOCKS" = yes; - "ASYNC_CORE" = module; - "ASYNC_MEMCPY" = module; - "ASYNC_XOR" = module; - "ASYNC_PQ" = module; - "ASYNC_RAID6_RECOV" = module; - "ASYNC_TX_DISABLE_PQ_VAL_DMA" = yes; - "ASYNC_TX_DISABLE_XOR_VAL_DMA" = yes; - "CRYPTO" = yes; - "CRYPTO_ALGAPI" = yes; - "CRYPTO_ALGAPI2" = yes; - "CRYPTO_AEAD" = yes; - "CRYPTO_AEAD2" = yes; - "CRYPTO_SKCIPHER" = yes; - "CRYPTO_SKCIPHER2" = yes; - "CRYPTO_HASH" = yes; - "CRYPTO_HASH2" = yes; - "CRYPTO_RNG" = yes; - "CRYPTO_RNG2" = yes; - "CRYPTO_RNG_DEFAULT" = yes; - "CRYPTO_AKCIPHER2" = yes; - "CRYPTO_AKCIPHER" = yes; - "CRYPTO_KPP2" = yes; - "CRYPTO_KPP" = yes; - "CRYPTO_ACOMP2" = yes; - "CRYPTO_MANAGER" = yes; - "CRYPTO_MANAGER2" = yes; - "CRYPTO_USER" = module; - "CRYPTO_MANAGER_DISABLE_TESTS" = yes; - "CRYPTO_GF128MUL" = yes; - "CRYPTO_NULL" = yes; - "CRYPTO_NULL2" = yes; - "CRYPTO_PCRYPT" = module; - "CRYPTO_CRYPTD" = yes; - "CRYPTO_AUTHENC" = yes; - "CRYPTO_SIMD" = yes; - "CRYPTO_ENGINE" = yes; - "CRYPTO_RSA" = yes; - "CRYPTO_DH" = yes; - "CRYPTO_ECC" = yes; - "CRYPTO_ECDH" = yes; - "CRYPTO_ECRDSA" = module; - "CRYPTO_CURVE25519" = module; - "CRYPTO_CCM" = yes; - "CRYPTO_GCM" = yes; - "CRYPTO_CHACHA20POLY1305" = yes; - "CRYPTO_AEGIS128" = module; - "CRYPTO_SEQIV" = yes; - "CRYPTO_ECHAINIV" = yes; - "CRYPTO_CBC" = yes; - "CRYPTO_CFB" = module; - "CRYPTO_CTR" = yes; - "CRYPTO_CTS" = yes; - "CRYPTO_ECB" = yes; - "CRYPTO_LRW" = module; - "CRYPTO_OFB" = module; - "CRYPTO_PCBC" = module; - "CRYPTO_XTS" = yes; - "CRYPTO_KEYWRAP" = module; - "CRYPTO_NHPOLY1305" = module; - "CRYPTO_ADIANTUM" = module; - "CRYPTO_ESSIV" = module; - "CRYPTO_CMAC" = yes; - "CRYPTO_HMAC" = yes; - "CRYPTO_XCBC" = yes; - "CRYPTO_VMAC" = yes; - "CRYPTO_CRC32C" = yes; - "CRYPTO_CRC32" = yes; - "CRYPTO_XXHASH" = yes; - "CRYPTO_BLAKE2B" = yes; - "CRYPTO_BLAKE2S" = module; - "CRYPTO_CRCT10DIF" = yes; - "CRYPTO_GHASH" = yes; - "CRYPTO_POLY1305" = yes; - "CRYPTO_MD4" = yes; - "CRYPTO_MD5" = yes; - "CRYPTO_MICHAEL_MIC" = yes; - "CRYPTO_RMD128" = yes; - "CRYPTO_RMD160" = yes; - "CRYPTO_RMD256" = yes; - "CRYPTO_RMD320" = yes; - "CRYPTO_SHA1" = yes; - "CRYPTO_SHA256" = yes; - "CRYPTO_SHA512" = yes; - "CRYPTO_SHA3" = yes; - "CRYPTO_SM3" = module; - "CRYPTO_STREEBOG" = module; - "CRYPTO_TGR192" = yes; - "CRYPTO_WP512" = yes; - "CRYPTO_AES" = yes; - "CRYPTO_AES_TI" = yes; - "CRYPTO_ANUBIS" = yes; - "CRYPTO_ARC4" = module; - "CRYPTO_BLOWFISH" = yes; - "CRYPTO_BLOWFISH_COMMON" = yes; - "CRYPTO_CAMELLIA" = yes; - "CRYPTO_CAST_COMMON" = yes; - "CRYPTO_CAST5" = yes; - "CRYPTO_CAST6" = yes; - "CRYPTO_DES" = yes; - "CRYPTO_FCRYPT" = yes; - "CRYPTO_KHAZAD" = yes; - "CRYPTO_SALSA20" = yes; - "CRYPTO_CHACHA20" = yes; - "CRYPTO_SEED" = yes; - "CRYPTO_SERPENT" = yes; - "CRYPTO_SM4" = module; - "CRYPTO_TEA" = yes; - "CRYPTO_TWOFISH" = yes; - "CRYPTO_TWOFISH_COMMON" = yes; - "CRYPTO_DEFLATE" = yes; - "CRYPTO_LZO" = yes; - "CRYPTO_842" = module; - "CRYPTO_LZ4" = module; - "CRYPTO_LZ4HC" = module; - "CRYPTO_ZSTD" = module; - "CRYPTO_ANSI_CPRNG" = module; - "CRYPTO_DRBG_MENU" = yes; - "CRYPTO_DRBG_HMAC" = yes; - "CRYPTO_DRBG_HASH" = yes; - "CRYPTO_DRBG_CTR" = yes; - "CRYPTO_DRBG" = yes; - "CRYPTO_JITTERENTROPY" = yes; - "CRYPTO_USER_API" = module; - "CRYPTO_USER_API_HASH" = module; - "CRYPTO_USER_API_SKCIPHER" = module; - "CRYPTO_USER_API_RNG" = module; - "CRYPTO_USER_API_AEAD" = module; - "CRYPTO_STATS" = yes; - "CRYPTO_HASH_INFO" = yes; - "CRYPTO_LIB_AES" = yes; - "CRYPTO_LIB_ARC4" = module; - "CRYPTO_LIB_BLAKE2S_GENERIC" = module; - "CRYPTO_LIB_BLAKE2S" = module; - "CRYPTO_ARCH_HAVE_LIB_CHACHA" = yes; - "CRYPTO_LIB_CHACHA_GENERIC" = yes; - "CRYPTO_LIB_CHACHA" = module; - "CRYPTO_LIB_CURVE25519_GENERIC" = module; - "CRYPTO_LIB_CURVE25519" = module; - "CRYPTO_LIB_DES" = yes; - "CRYPTO_LIB_POLY1305_RSIZE" = freeform "9"; - "CRYPTO_ARCH_HAVE_LIB_POLY1305" = module; - "CRYPTO_LIB_POLY1305_GENERIC" = yes; - "CRYPTO_LIB_POLY1305" = module; - "CRYPTO_LIB_CHACHA20POLY1305" = module; - "CRYPTO_LIB_SHA256" = yes; - "CRYPTO_HW" = yes; - "CRYPTO_DEV_ALLWINNER" = yes; - "CRYPTO_DEV_SUN4I_SS" = module; - "CRYPTO_DEV_SUN8I_CE" = module; - "CRYPTO_DEV_SUN8I_SS" = module; - "CRYPTO_DEV_ATMEL_I2C" = module; - "CRYPTO_DEV_ATMEL_ECC" = module; - "CRYPTO_DEV_ATMEL_SHA204A" = module; - "CRYPTO_DEV_NITROX" = module; - "CRYPTO_DEV_NITROX_CNN55XX" = module; - "CRYPTO_DEV_CAVIUM_ZIP" = module; - "CRYPTO_DEV_ROCKCHIP" = module; - "CRYPTO_DEV_VIRTIO" = module; - "CRYPTO_DEV_SAFEXCEL" = module; - "CRYPTO_DEV_CCREE" = module; - "CRYPTO_DEV_HISI_SEC" = module; - "CRYPTO_DEV_AMLOGIC_GXL" = yes; - "CRYPTO_DEV_AMLOGIC_GXL_DEBUG" = yes; - "ASYMMETRIC_KEY_TYPE" = yes; - "ASYMMETRIC_PUBLIC_KEY_SUBTYPE" = yes; - "X509_CERTIFICATE_PARSER" = yes; - "PKCS8_PRIVATE_KEY_PARSER" = module; - "PKCS7_MESSAGE_PARSER" = yes; - "PKCS7_TEST_KEY" = module; - "BINARY_PRINTF" = yes; - "RAID6_PQ" = yes; - "RAID6_PQ_BENCHMARK" = yes; - "LINEAR_RANGES" = yes; - "PACKING" = yes; - "BITREVERSE" = yes; - "HAVE_ARCH_BITREVERSE" = yes; - "GENERIC_STRNCPY_FROM_USER" = yes; - "GENERIC_STRNLEN_USER" = yes; - "GENERIC_NET_UTILS" = yes; - "CORDIC" = module; - "RATIONAL" = yes; - "GENERIC_PCI_IOMAP" = yes; - "ARCH_USE_CMPXCHG_LOCKREF" = yes; - "ARCH_HAS_FAST_MULTIPLIER" = yes; - "ARCH_USE_SYM_ANNOTATIONS" = yes; - "CRC_CCITT" = yes; - "CRC16" = yes; - "CRC_T10DIF" = yes; - "CRC_ITU_T" = yes; - "CRC32" = yes; - "CRC32_SLICEBY8" = yes; - "CRC64" = yes; - "CRC4" = module; - "CRC7" = yes; - "LIBCRC32C" = yes; - "CRC8" = module; - "XXHASH" = yes; - "AUDIT_GENERIC" = yes; - "AUDIT_ARCH_COMPAT_GENERIC" = yes; - "AUDIT_COMPAT_GENERIC" = yes; - "842_COMPRESS" = module; - "842_DECOMPRESS" = module; - "ZLIB_INFLATE" = yes; - "ZLIB_DEFLATE" = yes; - "LZO_COMPRESS" = yes; - "LZO_DECOMPRESS" = yes; - "LZ4_COMPRESS" = module; - "LZ4HC_COMPRESS" = module; - "LZ4_DECOMPRESS" = yes; - "ZSTD_COMPRESS" = yes; - "ZSTD_DECOMPRESS" = yes; - "DECOMPRESS_GZIP" = yes; - "DECOMPRESS_BZIP2" = yes; - "DECOMPRESS_LZMA" = yes; - "DECOMPRESS_XZ" = yes; - "DECOMPRESS_LZO" = yes; - "DECOMPRESS_LZ4" = yes; - "DECOMPRESS_ZSTD" = yes; - "GENERIC_ALLOCATOR" = yes; - "REED_SOLOMON" = module; - "REED_SOLOMON_ENC8" = yes; - "REED_SOLOMON_DEC8" = yes; - "REED_SOLOMON_ENC16" = yes; - "REED_SOLOMON_DEC16" = yes; - "TEXTSEARCH" = yes; - "TEXTSEARCH_KMP" = module; - "TEXTSEARCH_BM" = module; - "TEXTSEARCH_FSM" = module; - "INTERVAL_TREE" = yes; - "XARRAY_MULTI" = yes; - "ASSOCIATIVE_ARRAY" = yes; - "HAS_IOMEM" = yes; - "HAS_IOPORT_MAP" = yes; - "HAS_DMA" = yes; - "DMA_OPS" = yes; - "NEED_SG_DMA_LENGTH" = yes; - "NEED_DMA_MAP_STATE" = yes; - "ARCH_DMA_ADDR_T_64BIT" = yes; - "DMA_DECLARE_COHERENT" = yes; - "ARCH_HAS_SETUP_DMA_OPS" = yes; - "ARCH_HAS_TEARDOWN_DMA_OPS" = yes; - "ARCH_HAS_SYNC_DMA_FOR_DEVICE" = yes; - "ARCH_HAS_SYNC_DMA_FOR_CPU" = yes; - "ARCH_HAS_DMA_PREP_COHERENT" = yes; - "SWIOTLB" = yes; - "DMA_NONCOHERENT_MMAP" = yes; - "DMA_COHERENT_POOL" = yes; - "DMA_REMAP" = yes; - "DMA_DIRECT_REMAP" = yes; - "DMA_CMA" = yes; - "CMA_SIZE_SEL_MBYTES" = yes; - "CMA_ALIGNMENT" = freeform "8"; - "SGL_ALLOC" = yes; - "CPU_RMAP" = yes; - "DQL" = yes; - "GLOB" = yes; - "NLATTR" = yes; - "LRU_CACHE" = module; - "CLZ_TAB" = yes; - "IRQ_POLL" = yes; - "MPILIB" = yes; - "SIGNATURE" = yes; - "DIMLIB" = yes; - "LIBFDT" = yes; - "OID_REGISTRY" = yes; - "UCS2_STRING" = yes; - "HAVE_GENERIC_VDSO" = yes; - "GENERIC_GETTIMEOFDAY" = yes; - "GENERIC_VDSO_TIME_NS" = yes; - "FONT_SUPPORT" = yes; - "FONTS" = yes; - "FONT_8x8" = yes; - "FONT_8x16" = yes; - "FONT_ACORN_8x8" = yes; - "FONT_6x10" = yes; - "FONT_TER16x32" = yes; - "SG_SPLIT" = yes; - "SG_POOL" = yes; - "SBITMAP" = yes; - "PRINTK_TIME" = yes; - "CONSOLE_LOGLEVEL_DEFAULT" = freeform "7"; - "CONSOLE_LOGLEVEL_QUIET" = freeform "4"; - "MESSAGE_LOGLEVEL_DEFAULT" = freeform "4"; - "DYNAMIC_DEBUG" = yes; - "DYNAMIC_DEBUG_CORE" = yes; - "SYMBOLIC_ERRNAME" = yes; - "DEBUG_BUGVERBOSE" = yes; - "ENABLE_MUST_CHECK" = yes; - "FRAME_WARN" = freeform "2048"; - "SECTION_MISMATCH_WARN_ONLY" = yes; - "ARCH_WANT_FRAME_POINTERS" = yes; - "FRAME_POINTER" = yes; - "MAGIC_SYSRQ" = yes; - "MAGIC_SYSRQ_DEFAULT_ENABLE" = freeform "0x1"; - "MAGIC_SYSRQ_SERIAL" = yes; - "DEBUG_FS" = yes; - "DEBUG_FS_ALLOW_ALL" = yes; - "HAVE_ARCH_KGDB" = yes; - "ARCH_HAS_UBSAN_SANITIZE_ALL" = yes; - "DEBUG_KERNEL" = yes; - "DEBUG_MISC" = yes; - "ARCH_HAS_DEBUG_WX" = yes; - "GENERIC_PTDUMP" = yes; - "HAVE_DEBUG_KMEMLEAK" = yes; - "ARCH_HAS_DEBUG_VM_PGTABLE" = yes; - "ARCH_HAS_DEBUG_VIRTUAL" = yes; - "DEBUG_MEMORY_INIT" = yes; - "HAVE_ARCH_KASAN" = yes; - "HAVE_ARCH_KASAN_SW_TAGS" = yes; - "CC_HAS_KASAN_GENERIC" = yes; - "CC_HAS_WORKING_NOSANITIZE_ADDRESS" = yes; - "PANIC_ON_OOPS_VALUE" = freeform "0"; - "PANIC_TIMEOUT" = freeform "0"; - "TEST_LOCKUP" = module; - "SCHED_DEBUG" = yes; - "SCHED_INFO" = yes; - "DEBUG_PREEMPT" = yes; - "LOCK_DEBUGGING_SUPPORT" = yes; - "STACKTRACE" = yes; - "HAVE_DEBUG_BUGVERBOSE" = yes; - "RCU_CPU_STALL_TIMEOUT" = freeform "60"; - "RCU_TRACE" = yes; - "NOP_TRACER" = yes; - "HAVE_FUNCTION_TRACER" = yes; - "HAVE_FUNCTION_GRAPH_TRACER" = yes; - "HAVE_DYNAMIC_FTRACE" = yes; - "HAVE_DYNAMIC_FTRACE_WITH_REGS" = yes; - "HAVE_FTRACE_MCOUNT_RECORD" = yes; - "HAVE_SYSCALL_TRACEPOINTS" = yes; - "HAVE_C_RECORDMCOUNT" = yes; - "TRACE_CLOCK" = yes; - "RING_BUFFER" = yes; - "EVENT_TRACING" = yes; - "CONTEXT_SWITCH_TRACER" = yes; - "TRACING" = yes; - "TRACING_SUPPORT" = yes; - "FTRACE" = yes; - "BRANCH_PROFILE_NONE" = yes; - "UPROBE_EVENTS" = yes; - "BPF_EVENTS" = yes; - "DYNAMIC_EVENTS" = yes; - "PROBE_EVENTS" = yes; - "ARCH_HAS_DEVMEM_IS_ALLOWED" = yes; - "STRICT_DEVMEM" = yes; - "KUNIT" = module; - "ARCH_HAS_KCOV" = yes; - "CC_HAS_SANCOV_TRACE_PC" = yes; - "BACKTRACE_SELF_TEST" = module; - "RBTREE_TEST" = module; - "REED_SOLOMON_TEST" = module; - "INTERVAL_TREE_TEST" = module; - "PERCPU_TEST" = module; - "ASYNC_RAID6_TEST" = module; - "MEMTEST" = yes; - }; -} diff --git a/machines/storage/s0/patches/kernel/09e006cfb43e8ec38afe28278b210dab72e6cac8.patch b/machines/storage/s0/patches/kernel/09e006cfb43e8ec38afe28278b210dab72e6cac8.patch deleted file mode 100644 index 4d3f645..0000000 --- a/machines/storage/s0/patches/kernel/09e006cfb43e8ec38afe28278b210dab72e6cac8.patch +++ /dev/null @@ -1,437 +0,0 @@ -From 09e006cfb43e8ec38afe28278b210dab72e6cac8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= -Date: Wed, 14 Oct 2020 22:00:30 +0200 -Subject: arm64: dts: rockchip: Add basic support for Kobol's Helios64 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The hardware is described in detail on Kobol's wiki at -https://wiki.kobol.io/helios64/intro/. - -Up to now the following peripherals are working: - - - UART - - Micro-SD card - - eMMC - - ethernet port 1 - - status LED - - temperature sensor on i2c bus 2 - -Signed-off-by: Uwe Kleine-König -Link: https://lore.kernel.org/r/20201014200030.845759-3-uwe@kleine-koenig.org -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3399-kobol-helios64.dts | 372 +++++++++++++++++++++ - 2 files changed, 373 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts - -diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile -index 26661c7b736b7..28b26a874313e 100644 ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -26,6 +26,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-hugsun-x99.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-captain.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-v.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-kobol-helios64.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-leez-p710.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -new file mode 100644 -index 0000000000000..2a561be724b22 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -@@ -0,0 +1,387 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2020 Aditya Prayoga -+ */ -+ -+/* -+ * The Kobol Helios64 is a board designed to operate as a NAS and optionally -+ * ships with an enclosing that can host five 2.5" hard disks. -+ * -+ * See https://wiki.kobol.io/helios64/intro/ for further details. -+ */ -+ -+/dts-v1/; -+#include "rk3399.dtsi" -+#include "rk3399-opp.dtsi" -+ -+/ { -+ model = "Kobol Helios64"; -+ compatible = "kobol,helios64", "rockchip,rk3399"; -+ -+ avdd_1v8_s0: avdd-1v8-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "avdd_1v8_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ clkin_gmac: external-gmac-clock { -+ compatible = "fixed-clock"; -+ clock-frequency = <125000000>; -+ clock-output-names = "clkin_gmac"; -+ #clock-cells = <0>; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sys_grn_led_on &sys_red_led_on>; -+ -+ led-0 { -+ label = "helios64:green:status"; -+ gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; -+ }; -+ -+ led-1 { -+ label = "helios64:red:fault"; -+ gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ }; -+ -+ vcc1v8_sys_s0: vcc1v8-sys-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc1v8_sys_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc1v8_sys_s3>; -+ }; -+ -+ vcc3v0_sd: vcc3v0-sd { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; -+ regulator-name = "vcc3v0_sd"; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_pwr_h>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ vcc3v3_sys_s3: vcc_lan: vcc3v3-sys-s3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc12v_dcin: vcc12v-dcin { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_dcin"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ }; -+ -+ vcc12v_dcin_bkup: vcc12v-dcin-bkup { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_dcin_bkup"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ vin-supply = <&vcc12v_dcin>; -+ }; -+}; -+ -+/* -+ * The system doesn't run stable with cpu freq enabled, so disallow the lower -+ * frequencies until this problem is properly understood and resolved. -+ */ -+&cluster0_opp { -+ /delete-node/ opp00; -+ /delete-node/ opp01; -+ /delete-node/ opp02; -+ /delete-node/ opp03; -+ /delete-node/ opp04; -+}; -+ -+&cluster1_opp { -+ /delete-node/ opp00; -+ /delete-node/ opp01; -+ /delete-node/ opp02; -+ /delete-node/ opp03; -+ /delete-node/ opp04; -+ /delete-node/ opp05; -+ /delete-node/ opp06; -+}; -+ -+&cpu_b0 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_b1 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_l0 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l1 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l2 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l3 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&emmc_phy { -+ status = "okay"; -+}; -+ -+&gmac { -+ assigned-clock-parents = <&clkin_gmac>; -+ assigned-clocks = <&cru SCLK_RMII_SRC>; -+ clock_in_out = "input"; -+ phy-mode = "rgmii"; -+ phy-supply = <&vcc_lan>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&rgmii_pins &gphy_reset>; -+ rx_delay = <0x20>; -+ tx_delay = <0x28>; -+ snps,reset-active-low; -+ snps,reset-delays-us = <0 10000 50000>; -+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; -+ status = "okay"; -+}; -+ -+&i2c0 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <168>; -+ i2c-scl-falling-time-ns = <4>; -+ status = "okay"; -+ -+ rk808: pmic@1b { -+ compatible = "rockchip,rk808"; -+ reg = <0x1b>; -+ interrupt-parent = <&gpio0>; -+ interrupts = <10 IRQ_TYPE_LEVEL_LOW>; -+ clock-output-names = "xin32k", "rk808-clkout2"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int_l>; -+ vcc1-supply = <&vcc5v0_sys>; -+ vcc2-supply = <&vcc5v0_sys>; -+ vcc3-supply = <&vcc5v0_sys>; -+ vcc4-supply = <&vcc5v0_sys>; -+ vcc6-supply = <&vcc5v0_sys>; -+ vcc7-supply = <&vcc5v0_sys>; -+ vcc8-supply = <&vcc3v3_sys_s3>; -+ vcc9-supply = <&vcc5v0_sys>; -+ vcc10-supply = <&vcc5v0_sys>; -+ vcc11-supply = <&vcc5v0_sys>; -+ vcc12-supply = <&vcc3v3_sys_s3>; -+ vddio-supply = <&vcc3v0_s3>; -+ wakeup-source; -+ #clock-cells = <1>; -+ -+ regulators { -+ vdd_cpu_l: DCDC_REG2 { -+ regulator-name = "vdd_cpu_l"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <750000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc1v8_sys_s3: DCDC_REG4 { -+ regulator-name = "vcc1v8_sys_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcc_sdio_s0: LDO_REG4 { -+ regulator-name = "vcc_sdio_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3000000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ -+ vcc3v0_s3: LDO_REG8 { -+ regulator-name = "vcc3v0_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ }; -+ }; -+ -+ vdd_cpu_b: regulator@40 { -+ compatible = "silergy,syr827"; -+ reg = <0x40>; -+ fcs,suspend-voltage-selector = <1>; -+ regulator-name = "vdd_cpu_b"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-ramp-delay = <1000>; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+}; -+ -+&i2c2 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <160>; -+ i2c-scl-falling-time-ns = <30>; -+ status = "okay"; -+ -+ temp@4c { -+ compatible = "national,lm75"; -+ reg = <0x4c>; -+ }; -+}; -+ -+&io_domains { -+ audio-supply = <&vcc1v8_sys_s0>; -+ bt656-supply = <&vcc1v8_sys_s0>; -+ gpio1830-supply = <&vcc3v0_s3>; -+ sdmmc-supply = <&vcc_sdio_s0>; -+ status = "okay"; -+}; -+ -+&pcie0 { -+ num-lanes = <2>; -+ max-link-speed = <2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_prst &pcie_clkreqn_cpm>; -+ vpcie12v-supply = <&vcc12v_dcin>; -+ vpcie3v3-supply = <&pcie_power>; -+ vpcie1v8-supply = <&avdd_1v8_s0>; -+ vpcie0v9-supply = <&avdd_0v9_s0>; -+ status = "okay"; -+}; -+ -+&pcie_phy { -+ status = "okay"; -+}; -+ -+&pinctrl { -+ gmac { -+ gphy_reset: gphy-reset { -+ rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; -+ }; -+ }; -+ -+ leds { -+ sys_grn_led_on: sys-grn-led-on { -+ rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ sys_red_led_on: sys-red-led-on { -+ rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ vcc3v0-sd { -+ sdmmc0_pwr_h: sdmmc0-pwr-h { -+ rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmu1830-supply = <&vcc3v0_s3>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ mmc-hs200-1_8v; -+ non-removable; -+ vqmmc-supply = <&vcc1v8_sys_s0>; -+ status = "okay"; -+}; -+ -+&sdmmc { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; -+ disable-wp; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; -+ vmmc-supply = <&vcc3v0_sd>; -+ vqmmc-supply = <&vcc_sdio_s0>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; --- -cgit 1.2.3-1.el7 diff --git a/machines/storage/s0/patches/kernel/62dbf80fc581a8eed7288ed7aca24446054eb616.patch b/machines/storage/s0/patches/kernel/62dbf80fc581a8eed7288ed7aca24446054eb616.patch deleted file mode 100644 index 475388f..0000000 --- a/machines/storage/s0/patches/kernel/62dbf80fc581a8eed7288ed7aca24446054eb616.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 62dbf80fc581a8eed7288ed7aca24446054eb616 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= -Date: Mon, 2 Nov 2020 16:06:58 +0100 -Subject: dt-bindings: arm: rockchip: Add Kobol Helios64 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Document the new board by Kobol introduced recently in -rockchip/rk3399-kobol-helios64.dts. - -Signed-off-by: Uwe Kleine-König -Acked-by: Rob Herring -Link: https://lore.kernel.org/r/20201102150658.167161-1-uwe@kleine-koenig.org -Signed-off-by: Heiko Stuebner ---- - Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml -index 65b4cc2c63f7c..70fa4d98db564 100644 ---- a/Documentation/devicetree/bindings/arm/rockchip.yaml -+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml -@@ -381,6 +381,11 @@ properties: - - khadas,edge-v - - const: rockchip,rk3399 - -+ - description: Kobol Helios64 -+ items: -+ - const: kobol,helios64 -+ - const: rockchip,rk3399 -+ - - description: Mecer Xtreme Mini S6 - items: - - const: mecer,xms6 --- -cgit 1.2.3-1.el7 - diff --git a/machines/storage/s0/patches/kernel/add-board-helios64.patch b/machines/storage/s0/patches/kernel/add-board-helios64.patch deleted file mode 100644 index 8ffcacf..0000000 --- a/machines/storage/s0/patches/kernel/add-board-helios64.patch +++ /dev/null @@ -1,1183 +0,0 @@ -From 8f81af6941883fdc1d238d85bf282c2a61ffa349 Mon Sep 17 00:00:00 2001 -From: Aditya Prayoga -Date: Tue, 15 Sep 2020 20:04:22 +0700 -Subject: [PATCH] Add board Helios64 - -Signed-off-by: Aditya Prayoga ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3399-kobol-helios64.dts | 1084 +++++++++++++++++ - 2 files changed, 1085 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts - -diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile -index 473e14e12..b8e6e86e0 100644 ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -25,6 +25,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-inx.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-kd.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-kobol-helios64.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-hugsun-x99.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-captain.dtb -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -new file mode 100644 -index 000000000..fae17f416 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -@@ -0,0 +1,1150 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2020 Aditya Prayoga (aditya@kobol.io) -+ */ -+ -+/dts-v1/; -+#include -+#include -+#include -+#include -+#include "rk3399.dtsi" -+#include "rk3399-opp.dtsi" -+ -+/ { -+ model = "Helios64"; -+ compatible = "kobol,helios64", "rockchip,rk3399"; -+ -+ adc-keys { -+ compatible = "adc-keys"; -+ io-channels = <&saradc 1>; -+ io-channel-names = "buttons"; -+ keyup-threshold-microvolt = <1800000>; -+ poll-interval = <100>; -+ -+ user2-button { -+ label = "User Button 2"; -+ linux,code = ; -+ press-threshold-microvolt = <100000>; -+ }; -+ }; -+ -+ beeper: beeper { -+ compatible = "gpio-beeper"; -+ gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ clkin_gmac: external-gmac-clock { -+ compatible = "fixed-clock"; -+ clock-frequency = <125000000>; -+ clock-output-names = "clkin_gmac"; -+ #clock-cells = <0>; -+ }; -+ -+ vcc12v_dcin: vcc12v-dcin { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_dcin"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ }; -+ -+ vcc12v_dcin_bkup: vcc12v-dcin-bkup { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_dcin_bkup"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ vin-supply = <&vcc12v_dcin>; -+ }; -+ -+ vcc12v_hdd: vcc12v-hdd { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_hdd"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ /* switched by pmic_sleep */ -+ vcc1v8_sys_s0: vcc1v8-sys-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc1v8_sys_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc1v8_sys_s3>; -+ }; -+ -+ vcc0v9_s3: vcc0v9-s3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc0v9_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ avdd_0v9_s0: avdd-0v9-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "avdd_0v9_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc1v8_sys_s3>; -+ }; -+ -+ avdd_1v8_s0: avdd-1v8-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "avdd_1v8_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ pcie_power: pcie-power { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_pwr_en>; -+ regulator-name = "pcie_power"; -+ regulator-boot-on; -+ startup-delay-us = <10000>; -+ vin-supply = <&vcc5v0_perdev>; -+ }; -+ -+ vcc3v3_sys_s3: vcc_lan: vcc3v3-sys-s3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc3v0_sd: vcc3v0-sd { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v0_sd"; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ vcc5v0_usb: vcc5v0-usb { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb_en>; -+ regulator-name = "vcc5v0_usb"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_perdev>; -+ }; -+ -+ vcc5v0_typec: vcc5v0-typec-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&fusb0_vbus_en>; -+ regulator-name = "vcc5v0_typec"; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ vcc5v0_perdev: vcc5v0-perdev { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_perdev"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ vcc5v0_hdd: vcc5v0-hdd { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_hdd"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vdd_log: vdd-log { -+ compatible = "pwm-regulator"; -+ pwms = <&pwm2 0 25000 1>; -+ regulator-name = "vdd_log"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <830000>; -+ regulator-max-microvolt = <1400000>; -+ vin-supply = <&vcc5v0_sys>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ power_hdd_a: power-hdd-a { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hdd_a_power>; -+ regulator-name = "power_hdd_a"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; -+ -+ power_hdd_b: power-hdd-b { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hdd_b_power>; -+ regulator-name = "power_hdd_b"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; -+ -+ usblan_power: usblan-power { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&usb_lan_en>; -+ regulator-name = "usblan_power"; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ fan1: p7-fan { -+ compatible = "pwm-fan"; -+ pwms = <&pwm0 0 40000 0>; -+ cooling-min-state = <0>; -+ cooling-max-state = <3>; -+ #cooling-cells = <2>; -+ cooling-levels = <0 80 170 255>; -+ }; -+ -+ fan2: p6-fan { -+ compatible = "pwm-fan"; -+ pwms = <&pwm1 0 40000 0>; -+ cooling-min-state = <0>; -+ cooling-max-state = <3>; -+ #cooling-cells = <2>; -+ cooling-levels = <0 80 170 255>; -+ }; -+ -+ gpio-charger { -+ compatible = "gpio-charger"; -+ charger-type = "mains"; -+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; -+ charge-status-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ac_present_ap>, <&charger_status>; -+ }; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ autorepeat; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwrbtn>, <&user1btn>, <&wake_on_lan>; -+ -+ power { -+ debounce-interval = <100>; -+ gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; -+ label = "Power"; -+ linux,code = ; -+ wakeup-source; -+ }; -+ -+ user1-button { -+ debounce-interval = <100>; -+ gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; -+ label = "User Button 1"; -+ linux,code = ; -+ wakeup-source; -+ }; -+ }; -+ -+ hdmi_dp_sound: hdmi-dp-sound { -+ status = "okay"; -+ compatible = "rockchip,rk3399-hdmi-dp"; -+ rockchip,cpu = <&i2s2>; -+ rockchip,codec = <&cdn_dp>; -+ }; -+ -+ io_leds: io-gpio-leds { -+ status = "okay"; -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&network_act>, <&usb3_act>, -+ <&sata_act>, <&sata_err_led>; -+ -+ network { -+ label = "helios64:blue:net"; -+ gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "netdev"; -+ default-state = "off"; -+ }; -+ -+ sata { -+ label = "helios64:blue:hdd-status"; -+ gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "disk-activity"; -+ default-state = "off"; -+ }; -+ -+ sata_err1 { -+ label = "helios64:red:ata1-err"; -+ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err2 { -+ label = "helios64:red:ata2-err"; -+ gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err3 { -+ label = "helios64:red:ata3-err"; -+ gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err4 { -+ label = "helios64:red:ata4-err"; -+ gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err5 { -+ label = "helios64:red:ata5-err"; -+ gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ usb3 { -+ label = "helios64:blue:usb3"; -+ gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; -+ trigger-sources = <&int_hub_port1>, -+ <&int_hub_port2>, -+ <&int_hub_port3>; -+ linux,default-trigger = "usbport"; -+ default-state = "off"; -+ }; -+ }; -+ -+ pwmleds { -+ compatible = "pwm-leds"; -+ status = "okay"; -+ -+ power-led { -+ label = "helios64:blue:power-status"; -+ pwms = <&pwm3 0 2000000000 0>; -+ max-brightness = <255>; -+ }; -+ }; -+ -+ system_leds: system-gpio-leds { -+ status = "okay"; -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&system_led>; -+ -+ status-led { -+ label = "helios64::status"; -+ gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "none"; -+ default-state = "on"; -+ mode = <0x23>; -+ }; -+ -+ fault-led { -+ label = "helios64:red:fault"; -+ gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "panic"; -+ default-state = "keep"; -+ mode = <0x23>; -+ }; -+ }; -+}; -+ -+&cdn_dp { -+ status = "okay"; -+ extcon = <&fusb0>; -+ phys = <&tcphy0_dp>; -+}; -+ -+&cpu_l0 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l1 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l2 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l3 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_b0 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_b1 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&emmc_phy { -+ status = "okay"; -+}; -+ -+&gmac { -+ assigned-clocks = <&cru SCLK_RMII_SRC>; -+ assigned-clock-parents = <&clkin_gmac>; -+ clock_in_out = "input"; -+ phy-supply = <&vcc_lan>; -+ phy-mode = "rgmii"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&rgmii_pins &rgmii_phy_reset>; -+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; -+ snps,reset-active-low; -+ snps,reset-delays-us = <0 10000 50000>; -+ tx_delay = <0x28>; -+ rx_delay = <0x20>; -+ status = "okay"; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&i2c0 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <168>; -+ i2c-scl-falling-time-ns = <4>; -+ status = "okay"; -+ -+ rk808: pmic@1b { -+ compatible = "rockchip,rk808"; -+ reg = <0x1b>; -+ #clock-cells = <1>; -+ clock-output-names = "xin32k", "rk808-clkout2"; -+ interrupt-parent = <&gpio0>; -+ interrupts = <10 IRQ_TYPE_LEVEL_LOW>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int_l>; -+ rockchip,system-power-controller; -+ wakeup-source; -+ -+ vcc1-supply = <&vcc5v0_sys>; -+ vcc2-supply = <&vcc5v0_sys>; -+ vcc3-supply = <&vcc5v0_sys>; -+ vcc4-supply = <&vcc5v0_sys>; -+ vcc6-supply = <&vcc5v0_sys>; -+ vcc7-supply = <&vcc5v0_sys>; -+ vcc8-supply = <&vcc3v3_sys_s3>; -+ vcc9-supply = <&vcc5v0_sys>; -+ vcc10-supply = <&vcc5v0_sys>; -+ vcc11-supply = <&vcc5v0_sys>; -+ vcc12-supply = <&vcc3v3_sys_s3>; -+ vddio-supply = <&vcc3v0_s3>; -+ -+ regulators { -+ vdd_center: DCDC_REG1 { -+ regulator-name = "vdd_center"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1000000>; -+ regulator-ramp-delay = <6001>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <950000>; -+ }; -+ }; -+ -+ vdd_cpu_l: DCDC_REG2 { -+ regulator-name = "vdd_cpu_l"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <750000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr_s3: DCDC_REG3 { -+ regulator-name = "vcc_ddr_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc1v8_sys_s3: DCDC_REG4 { -+ regulator-name = "vcc1v8_sys_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ /* not used */ -+ vcc1v8_dvp: LDO_REG1 { -+ regulator-name = "vcc1v8_dvp"; -+ }; -+ -+ /* not used */ -+ vcc3v0_touch: LDO_REG2 { -+ regulator-name = "vcc3v0_touch"; -+ }; -+ -+ vcc1v8_s3: LDO_REG3 { -+ regulator-name = "vcc1v8_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcc_sdio_s0: LDO_REG4 { -+ regulator-name = "vcc_sdio_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ -+ /* not used */ -+ vcca3v0_codec: LDO_REG5 { -+ regulator-name = "vcca3v0_codec"; -+ }; -+ -+ vcc1v5_s3: LDO_REG6 { -+ regulator-name = "vcc1v5_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1500000>; -+ }; -+ }; -+ -+ /* not used */ -+ vcca1v8_codec: LDO_REG7 { -+ regulator-name = "vcca1v8_codec"; -+ }; -+ -+ vcc3v0_s3: LDO_REG8 { -+ regulator-name = "vcc3v0_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ -+ vcc3v3_sys_s0: SWITCH_REG1 { -+ regulator-name = "vcc3v3_sys_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* not used */ -+ vcc3v3_s0: SWITCH_REG2 { -+ regulator-name = "vcc3v3_s0"; -+ }; -+ }; -+ }; -+ -+ vdd_cpu_b: regulator@40 { -+ compatible = "silergy,syr827"; -+ reg = <0x40>; -+ fcs,suspend-voltage-selector = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vsel1_gpio>; -+ regulator-name = "vdd_cpu_b"; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-ramp-delay = <40000>; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: regulator@41 { -+ compatible = "silergy,syr828"; -+ reg = <0x41>; -+ fcs,suspend-voltage-selector = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vsel2_gpio>; -+ regulator-name = "vdd_gpu"; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-ramp-delay = <1000>; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+}; -+ -+&i2c2 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <160>; -+ i2c-scl-falling-time-ns = <30>; -+ status = "okay"; -+ -+ gpio-expander@20 { -+ compatible = "nxp,pca9555"; -+ reg = <0x20>; -+ gpio-controller; -+ #gpio-cells = <2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pca0_pins>; -+ interrupt-parent = <&gpio0>; -+ interrupts = <9 IRQ_TYPE_EDGE_FALLING>; -+ interrupt-controller; -+ #interrupt-cells = <2>; -+ vcc-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ temp@4c { -+ compatible = "onnn,lm75"; -+ reg = <0x4c>; -+ }; -+}; -+ -+&i2c4 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <160>; -+ i2c-scl-falling-time-ns = <30>; -+ status = "okay"; -+ -+ fusb0: typec-portc@22 { -+ compatible = "fcs,fusb302"; -+ reg = <0x22>; -+ interrupt-parent = <&gpio1>; -+ interrupts = ; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&fusb0_int>; -+ vbus-supply = <&vcc5v0_typec>; -+ -+ connector { -+ compatible = "usb-c-connector"; -+ label = "USB-C"; -+ power-role = "dual"; -+ data-role = "dual"; -+ try-power-role = "sink"; -+ source-pdos = ; -+ sink-pdos = ; -+ op-sink-microwatt = <5000000>; -+ -+ extcon-cables = <1 2 5 6 9 10 12 44>; -+ typec-altmodes = <0xff01 1 0x001c0000 1>; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port@0 { -+ reg = <0>; -+ usb_con_hs: endpoint { -+ remote-endpoint = <&u2phy0_typec_hs>; -+ }; -+ }; -+ port@1 { -+ reg = <1>; -+ usb_con_ss: endpoint { -+ remote-endpoint = <&tcphy0_typec_ss>; -+ }; -+ }; -+ port@2 { -+ reg = <2>; -+ usb_con_sbu: endpoint { -+ remote-endpoint = <&tcphy0_typec_dp>; -+ }; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+/* I2C on UEXT */ -+&i2c7 { -+ status = "okay"; -+}; -+ -+/* External I2C */ -+&i2c8 { -+ status = "okay"; -+}; -+ -+&i2s2 { -+ #sound-dai-cells = <0>; -+ status = "okay"; -+}; -+ -+&io_domains { -+ status = "okay"; -+ bt656-supply = <&vcc1v8_sys_s0>; -+ audio-supply = <&vcc1v8_sys_s0>; -+ sdmmc-supply = <&vcc_sdio_s0>; -+ gpio1830-supply = <&vcc3v0_s3>; -+}; -+ -+&pcie0 { -+ ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; -+ num-lanes = <2>; -+ max-link-speed = <2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_prst &pcie_clkreqn_cpm>; -+ vpcie12v-supply = <&vcc12v_dcin>; -+ vpcie3v3-supply = <&pcie_power>; -+ vpcie1v8-supply = <&avdd_1v8_s0>; -+ vpcie0v9-supply = <&avdd_0v9_s0>; -+ status = "okay"; -+}; -+ -+&pcie_phy { -+ status = "okay"; -+}; -+ -+&pinctrl { -+ buttons { -+ pwrbtn: pwrbtn { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ user1btn: usr1btn { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ charger { -+ ac_present_ap: ac-present-ap { -+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ charger_status: charger-status { -+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ fan { -+ fan1_sense: fan1-sense { -+ rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ fan2_sense: fan2-sense { -+ rockchip,pins = <4 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ fusb30x { -+ fusb0_int: fusb0-int { -+ rockchip,pins = -+ <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ fusb0_vbus_en: fusb0-vbus-en { -+ rockchip,pins = -+ <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ gmac { -+ rgmii_phy_reset: rgmii-phy-reset { -+ rockchip,pins = -+ <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; -+ }; -+ }; -+ -+ leds { -+ network_act: network-act { -+ rockchip,pins = -+ <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ usb3_act: usb3-act { -+ rockchip,pins = -+ <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ sata_act: sata-act { -+ rockchip,pins = -+ <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ system_led: sys-led { -+ rockchip,pins = -+ <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>, -+ <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ sata_err_led: sata-err-led { -+ rockchip,pins = -+ <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ misc { -+ pca0_pins: pca0-pins { -+ rockchip,pins = -+ <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wake_on_lan: wake-on-lan { -+ rockchip,pins = -+ <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pcie { -+ pcie_prst: pcie-prst { -+ rockchip,pins = -+ <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie_pwr_en: pcie-pwr-en { -+ rockchip,pins = -+ <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = -+ <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ vsel1_gpio: vsel1-gpio { -+ rockchip,pins = -+ <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ vsel2_gpio: vsel2-gpio { -+ rockchip,pins = -+ <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ power { -+ hdd_a_power: hdd-a-power { -+ rockchip,pins = -+ <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ hdd_b_power: hdd-b-power { -+ rockchip,pins = -+ <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vcc5v0_usb_en: vcc5v0-usb-en { -+ rockchip,pins = -+ <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ sdmmc0_pwr_h: sdmmc0-pwr-h { -+ rockchip,pins = -+ <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>; -+ }; -+ -+ usb_lan_en: usb-lan-en { -+ rockchip,pins = -+ <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmu1830-supply = <&vcc3v0_s3>; -+ status = "okay"; -+}; -+ -+&pwm0 { -+ status = "okay"; -+}; -+ -+&pwm1 { -+ status = "okay"; -+}; -+ -+&pwm2 { -+ status = "okay"; -+}; -+ -+&pwm3 { -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcc1v8_s3>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ mmc-hs200-1_8v; -+ // supports-emmc; -+ non-removable; -+ // disable-wp; -+ status = "okay"; -+ vqmmc-supply = <&vcc1v8_sys_s0>; -+}; -+ -+&sdmmc { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; // TODO: verify what needs to be done to use implicit CD definition -+ disable-wp; -+ // sd-uhs-sdr104; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; -+ vmmc-supply = <&vcc3v0_sd>; -+ vqmmc-supply = <&vcc_sdio_s0>; -+ status = "okay"; -+}; -+ -+&spi1 { -+ status = "okay"; -+}; -+ -+/* UEXT connector */ -+&spi2 { -+ status = "okay"; -+}; -+ -+&spi5 { -+ status = "okay"; -+}; -+ -+&tcphy0 { -+ extcon = <&fusb0>; -+ status = "okay"; -+}; -+ -+&tcphy0_dp { -+ port { -+ tcphy0_typec_dp: endpoint { -+ remote-endpoint = <&usb_con_sbu>; -+ }; -+ }; -+}; -+ -+&tcphy0_usb3 { -+ port { -+ tcphy0_typec_ss: endpoint { -+ remote-endpoint = <&usb_con_ss>; -+ }; -+ }; -+}; -+ -+&tcphy1 { -+ status = "okay"; -+}; -+ -+&tsadc { -+ /* tshut mode 0:CRU 1:GPIO */ -+ rockchip,hw-tshut-mode = <1>; -+ /* tshut polarity 0:LOW 1:HIGH */ -+ rockchip,hw-tshut-polarity = <1>; -+ status = "okay"; -+}; -+ -+&u2phy0 { -+ status = "okay"; -+ -+ u2phy0_otg: otg-port { -+ status = "okay"; -+ }; -+ -+ u2phy0_host: host-port { -+ phy-supply = <&vcc5v0_usb>; -+ status = "okay"; -+ }; -+ -+ port { -+ u2phy0_typec_hs: endpoint { -+ remote-endpoint = <&usb_con_hs>; -+ }; -+ }; -+}; -+ -+&u2phy1 { -+ status = "okay"; -+ -+ u2phy1_otg: otg-port { -+ status = "okay"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usbdrd3_0 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3_0 { -+ status = "okay"; -+ dr_mode = "otg"; -+}; -+ -+&usbdrd3_1 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3_1 { -+ status = "okay"; -+ dr_mode = "host"; -+ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ int_hub: hub@1 { -+ compatible = "usb2109,0815"; -+ reg = <1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ int_hub_port1: port@1 { -+ reg = <1>; -+ #trigger-source-cells = <0>; -+ }; -+ -+ int_hub_port2: port@2 { -+ reg = <2>; -+ #trigger-source-cells = <0>; -+ }; -+ -+ int_hub_port3: port@3 { -+ reg = <3>; -+ #trigger-source-cells = <0>; -+ }; -+ -+ usb_lan: device@4 { -+ compatible = "usbbda,8156"; -+ reg = <4>; -+ -+ #address-cells = <2>; -+ #size-cells = <0>; -+ -+ interface@0 { /* interface 0 of configuration 1 */ -+ compatible = "usbbda,8156.config1.0"; -+ reg = <0 1>; -+ }; -+ }; -+ }; -+}; -+ -+&vopb { -+ status = "okay"; -+}; -+ -+&vopb_mmu { -+ status = "okay"; -+}; -+ -+&vopl { -+ status = "okay"; -+}; -+ -+&vopl_mmu { -+ status = "okay"; -+}; -\ No newline at end of file --- -Created with Armbian build tools https://github.com/armbian/build diff --git a/machines/storage/s0/patches/kernel/fa67f2817ff2c9bb07472d30e58d904922f1a538.patch b/machines/storage/s0/patches/kernel/fa67f2817ff2c9bb07472d30e58d904922f1a538.patch deleted file mode 100644 index 499f64b..0000000 --- a/machines/storage/s0/patches/kernel/fa67f2817ff2c9bb07472d30e58d904922f1a538.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fa67f2817ff2c9bb07472d30e58d904922f1a538 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= -Date: Wed, 14 Oct 2020 22:00:29 +0200 -Subject: dt-bindings: vendor-prefixes: Add kobol prefix -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The prefix is already used in arm/armada-388-helios4.dts. - -Signed-off-by: Uwe Kleine-König -Acked-by: Rob Herring -Link: https://lore.kernel.org/r/20201014200030.845759-2-uwe@kleine-koenig.org -Signed-off-by: Heiko Stuebner ---- - Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml -index 2735be1a84709..259faf1b382c0 100644 ---- a/Documentation/devicetree/bindings/vendor-prefixes.yaml -+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml -@@ -553,6 +553,8 @@ patternProperties: - description: Kionix, Inc. - "^kobo,.*": - description: Rakuten Kobo Inc. -+ "^kobol,.*": -+ description: Kobol Innovations Pte. Ltd. - "^koe,.*": - description: Kaohsiung Opto-Electronics Inc. - "^kontron,.*": --- -cgit 1.2.3-1.el7 - diff --git a/machines/storage/s0/patches/kernel/helios64-remove-pcie-ep-gpios.patch b/machines/storage/s0/patches/kernel/helios64-remove-pcie-ep-gpios.patch deleted file mode 100644 index d7a9496..0000000 --- a/machines/storage/s0/patches/kernel/helios64-remove-pcie-ep-gpios.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e7e9a3a959927094d59b67f46ecc1c5d50190ce8 Mon Sep 17 00:00:00 2001 -From: Aditya Prayoga -Date: Tue, 15 Sep 2020 13:42:02 +0700 -Subject: [PATCH] Remove PCIE ep-gpios from Helios64 - -Signed-off-by: Aditya Prayoga ---- - arch/arm64/boot/dts/rockchip/rk3399-helios64.dts | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -index c065ba82d..002c93912 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts -@@ -721,7 +721,6 @@ - }; - - &pcie0 { -- ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; - num-lanes = <2>; - max-link-speed = <2>; - pinctrl-names = "default"; --- -Created with Armbian build tools https://github.com/armbian/build - diff --git a/machines/storage/s0/patches/kernel/rk3399-pci-rockchip-support-ep-gpio-undefined-case.patch b/machines/storage/s0/patches/kernel/rk3399-pci-rockchip-support-ep-gpio-undefined-case.patch deleted file mode 100644 index 95a6dd6..0000000 --- a/machines/storage/s0/patches/kernel/rk3399-pci-rockchip-support-ep-gpio-undefined-case.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 002593cfe8fc7539a6aa2dfb246d832e0b8b8516 Mon Sep 17 00:00:00 2001 -From: Aditya Prayoga -Date: Tue, 15 Sep 2020 13:29:45 +0700 -Subject: [PATCH] PCI: rockchip: support ep-gpio undefined case - -Signed-off-by: Aditya Prayoga ---- - drivers/pci/controller/pcie-rockchip.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/pci/controller/pcie-rockchip.c b/drivers/pci/controller/pcie-rockchip.c -index c53d1322a..e4f42591d 100644 ---- a/drivers/pci/controller/pcie-rockchip.c -+++ b/drivers/pci/controller/pcie-rockchip.c -@@ -119,9 +119,9 @@ int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip) - } - - if (rockchip->is_rc) { -- rockchip->ep_gpio = devm_gpiod_get(dev, "ep", GPIOD_OUT_HIGH); -+ rockchip->ep_gpio = devm_gpiod_get_optional(dev, "ep", GPIOD_OUT_HIGH); - if (IS_ERR(rockchip->ep_gpio)) { -- dev_err(dev, "missing ep-gpios property in node\n"); -+ dev_err(dev, "invalid ep-gpios property in node\n"); - return PTR_ERR(rockchip->ep_gpio); - } - } --- -Created with Armbian build tools https://github.com/armbian/build - diff --git a/machines/storage/s0/patches/uboot/115200baud.patch b/machines/storage/s0/patches/uboot/115200baud.patch deleted file mode 100644 index 476df41..0000000 --- a/machines/storage/s0/patches/uboot/115200baud.patch +++ /dev/null @@ -1,21 +0,0 @@ -From efb3ec2ca3a88530d45c593f051ec53f80a4c4d8 Mon Sep 17 00:00:00 2001 -From: Moritz Angermann -Date: Fri, 4 Dec 2020 17:00:03 +0800 -Subject: [PATCH] Update rk3399-helios64-u-boot.dtsi - ---- - arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi b/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi -index 27ea5eaa971..3a260c7e126 100644 ---- a/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi -@@ -16,7 +16,7 @@ - - chosen { - bootargs = "earlycon=uart8250,mmio32,0xff1a0000 earlyprintk"; -- stdout-path = "serial2:1500000n8"; -+ stdout-path = "serial2:115200n8"; - u-boot,spl-boot-order = "same-as-spl", &spiflash, &sdmmc, &sdhci; - }; diff --git a/machines/storage/s0/patches/uboot/add-board-helios64.patch b/machines/storage/s0/patches/uboot/add-board-helios64.patch deleted file mode 100644 index aac7635..0000000 --- a/machines/storage/s0/patches/uboot/add-board-helios64.patch +++ /dev/null @@ -1,2184 +0,0 @@ -From 0ad85609017068d93c0311c34438db4e43588090 Mon Sep 17 00:00:00 2001 -From: Aditya Prayoga -Date: Tue, 15 Sep 2020 18:41:54 +0700 -Subject: [PATCH] Patching something - -Signed-off-by: Aditya Prayoga ---- - arch/arm/dts/Makefile | 1 + - arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi | 140 +++ - arch/arm/dts/rk3399-kobol-helios64.dts | 1152 ++++++++++++++++++++++ - arch/arm/mach-rockchip/rk3399/Kconfig | 17 + - board/kobol/helios64/Kconfig | 24 + - board/kobol/helios64/MAINTAINERS | 6 + - board/kobol/helios64/Makefile | 5 + - board/kobol/helios64/helios64.c | 262 +++++ - board/kobol/helios64/sys_otp.c | 248 +++++ - board/kobol/helios64/sys_otp.h | 10 + - configs/helios64-rk3399_defconfig | 149 +++ - include/configs/helios64.h | 47 + - 12 files changed, 2061 insertions(+) - create mode 100644 arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi - create mode 100644 arch/arm/dts/rk3399-kobol-helios64.dts - create mode 100644 board/kobol/helios64/Kconfig - create mode 100644 board/kobol/helios64/MAINTAINERS - create mode 100644 board/kobol/helios64/Makefile - create mode 100644 board/kobol/helios64/helios64.c - create mode 100644 board/kobol/helios64/sys_otp.c - create mode 100644 board/kobol/helios64/sys_otp.h - create mode 100644 configs/helios64-rk3399_defconfig - create mode 100644 include/configs/helios64.h - -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 530d60bf..d9fd6cf1 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -122,6 +122,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \ - rk3399-ficus.dtb \ - rk3399-firefly.dtb \ - rk3399-gru-bob.dtb \ -+ rk3399-kobol-helios64.dtb \ - rk3399-khadas-edge.dtb \ - rk3399-khadas-edge-captain.dtb \ - rk3399-khadas-edge-v.dtb \ -diff --git a/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi b/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi -new file mode 100644 -index 00000000..2988a209 ---- /dev/null -+++ b/arch/arm/dts/rk3399-kobol-helios64-u-boot.dtsi -@@ -0,0 +1,140 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * Copyright (c) 2020 Aditya Prayoga (aditya@kobol.io) -+ */ -+ -+#include "rk3399-u-boot.dtsi" -+#include "rk3399-sdram-lpddr4-100.dtsi" -+/ { -+ aliases { -+ spi0 = &spi1; -+ spi1 = &spi2; -+ spi2 = &spi5; -+ ethernet0 = &gmac; -+ ethernet1 = &usb_lan; -+ }; -+ -+ chosen { -+ bootargs = "earlycon=uart8250,mmio32,0xff1a0000 earlyprintk"; -+ stdout-path = "serial2:1500000n8"; -+ u-boot,spl-boot-order = "same-as-spl", &spiflash, &sdmmc, &sdhci; -+ }; -+ -+ config { -+ u-boot,spl-payload-offset = <0x80000>; /* @ 512KB */ -+ }; -+}; -+ -+&gpio1 { -+ usb-mux-hs { -+ gpio-hog; -+ gpios = ; -+ output-low; -+ line-name = "USB_MUX_HS"; -+ }; -+ -+ usb-mux-oe { -+ gpio-hog; -+ gpios = ; -+ output-high; -+ line-name = "USB_MUX_OE#"; -+ }; -+ -+ soc-flash-wp { -+ gpio-hog; -+ gpios = ; -+ output-low; -+ line-name = "SOC_WP#"; -+ }; -+}; -+ -+&gpio2 { -+ sata-flash-wp { -+ gpio-hog; -+ gpios = ; -+ output-high; -+ line-name = "SATA_WP#_LV"; -+ }; -+}; -+ -+&gpio4 { -+ auto-on-en-d { -+ gpio-hog; -+ gpios = ; -+ output-low; -+ line-name = "AUTO_ON_EN_D"; -+ }; -+ -+ auto-on-en-clk { -+ gpio-hog; -+ gpios = ; -+ output-low; -+ line-name = "AUTO_ON_EN_CLK"; -+ }; -+ -+ board-rev-id-0 { -+ gpio-hog; -+ gpios = ; -+ input; -+ }; -+ -+ board-rev-id-1 { -+ gpio-hog; -+ gpios = ; -+ input; -+ }; -+}; -+ -+&int_hub { -+ compatible = "usb-hub"; -+ usb,device-class = ; -+}; -+ -+&pcie_prst { -+ rockchip,pins = -+ <2 RK_PD4 RK_FUNC_GPIO &pcfg_output_low>; -+}; -+ -+&pcie_pwr_en { -+ rockchip,pins = -+ <1 RK_PD0 RK_FUNC_GPIO &pcfg_output_low>; -+}; -+ -+&pinctrl { -+ usb { -+ usb_mux_hs: usb-mux-hs { -+ rockchip,pins = -+ <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ usb_mux_oe: usb-mux-oe { -+ rockchip,pins = -+ <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&power_hdd_a { -+ startup-delay-us = <10000000>; -+}; -+ -+&spi1 { -+ spiflash: flash@0 { -+ compatible = "jedec,spi-nor"; -+ reg = <0x0>; -+ spi-max-frequency = <25000000>; -+ status = "okay"; -+ m25p,fast-read; -+ u-boot,dm-pre-reloc; -+ }; -+}; -+ -+&vdd_center { -+ regulator-min-microvolt = <950000>; -+ regulator-max-microvolt = <950000>; -+ regulator-init-microvolt = <950000>; -+}; -+ -+&vdd_log { -+ regulator-init-microvolt = <900000>; -+}; -diff --git a/arch/arm/dts/rk3399-kobol-helios64.dts b/arch/arm/dts/rk3399-kobol-helios64.dts -new file mode 100644 -index 00000000..9d067505 ---- /dev/null -+++ b/arch/arm/dts/rk3399-kobol-helios64.dts -@@ -0,0 +1,1152 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2020 Aditya Prayoga (aditya@kobol.io) -+ */ -+ -+/dts-v1/; -+#include -+#include -+#include -+#include -+#include "rk3399.dtsi" -+#include "rk3399-opp.dtsi" -+ -+/ { -+ model = "Helios64"; -+ compatible = "kobol,helios64", "rockchip,rk3399"; -+ -+ adc-keys { -+ compatible = "adc-keys"; -+ io-channels = <&saradc 1>; -+ io-channel-names = "buttons"; -+ keyup-threshold-microvolt = <1800000>; -+ poll-interval = <100>; -+ -+ user2-button { -+ label = "User Button 2"; -+ linux,code = ; -+ press-threshold-microvolt = <100000>; -+ }; -+ }; -+ -+ beeper: beeper { -+ compatible = "gpio-beeper"; -+ gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ clkin_gmac: external-gmac-clock { -+ compatible = "fixed-clock"; -+ clock-frequency = <125000000>; -+ clock-output-names = "clkin_gmac"; -+ #clock-cells = <0>; -+ }; -+ -+ vcc12v_dcin: vcc12v-dcin { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_dcin"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ }; -+ -+ vcc12v_dcin_bkup: vcc12v-dcin-bkup { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_dcin_bkup"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ vin-supply = <&vcc12v_dcin>; -+ }; -+ -+ vcc12v_hdd: vcc12v-hdd { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc12v_hdd"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ /* switched by pmic_sleep */ -+ vcc1v8_sys_s0: vcc1v8-sys-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc1v8_sys_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc1v8_sys_s3>; -+ }; -+ -+ vcc0v9_s3: vcc0v9-s3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc0v9_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ avdd_0v9_s0: avdd-0v9-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "avdd_0v9_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc1v8_sys_s3>; -+ }; -+ -+ avdd_1v8_s0: avdd-1v8-s0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "avdd_1v8_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ pcie_power: pcie-power { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_pwr_en>; -+ regulator-name = "pcie_power"; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_perdev>; -+ }; -+ -+ vcc3v3_sys_s3: vcc_lan: vcc3v3-sys-s3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc3v0_sd: vcc3v0-sd { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ regulator-name = "vcc3v0_sd"; -+ gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_pwr_h>; -+ regulator-boot-on; -+ startup-delay-us = <20000>; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ vin-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ vcc5v0_usb: vcc5v0-usb { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb_en>; -+ regulator-name = "vcc5v0_usb"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_perdev>; -+ }; -+ -+ vcc5v0_typec: vcc5v0-typec-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&fusb0_vbus_en>; -+ regulator-name = "vcc5v0_typec"; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ vcc5v0_perdev: vcc5v0-perdev { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_perdev"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ vcc5v0_hdd: vcc5v0-hdd { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_hdd"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc12v_dcin_bkup>; -+ }; -+ -+ vdd_log: vdd-log { -+ compatible = "pwm-regulator"; -+ pwms = <&pwm2 0 25000 1>; -+ regulator-name = "vdd_log"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <830000>; -+ regulator-max-microvolt = <1400000>; -+ vin-supply = <&vcc5v0_sys>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ power_hdd_a: power-hdd-a { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hdd_a_power>; -+ regulator-name = "power_hdd_a"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; -+ -+ power_hdd_b: power-hdd-b { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hdd_b_power>; -+ regulator-name = "power_hdd_b"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; -+ -+ usblan_power: usblan-power { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&usb_lan_en>; -+ regulator-name = "usblan_power"; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ fan1: p7-fan { -+ compatible = "pwm-fan"; -+ pwms = <&pwm0 0 40000 0>; -+ cooling-min-state = <0>; -+ cooling-max-state = <3>; -+ #cooling-cells = <2>; -+ cooling-levels = <0 80 170 255>; -+ }; -+ -+ fan2: p6-fan { -+ compatible = "pwm-fan"; -+ pwms = <&pwm1 0 40000 0>; -+ cooling-min-state = <0>; -+ cooling-max-state = <3>; -+ #cooling-cells = <2>; -+ cooling-levels = <0 80 170 255>; -+ }; -+ -+ gpio-charger { -+ compatible = "gpio-charger"; -+ charger-type = "mains"; -+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; -+ charge-status-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ac_present_ap>, <&charger_status>; -+ }; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ autorepeat; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwrbtn>, <&user1btn>, <&wake_on_lan>; -+ -+ power { -+ debounce-interval = <100>; -+ gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; -+ label = "Power"; -+ linux,code = ; -+ wakeup-source; -+ }; -+ -+ user1-button { -+ debounce-interval = <100>; -+ gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; -+ label = "User Button 1"; -+ linux,code = ; -+ }; -+ }; -+ -+ hdmi_dp_sound: hdmi-dp-sound { -+ status = "okay"; -+ compatible = "rockchip,rk3399-hdmi-dp"; -+ rockchip,cpu = <&i2s2>; -+ rockchip,codec = <&cdn_dp>; -+ }; -+ -+ io_leds: io-gpio-leds { -+ status = "okay"; -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&network_act>, <&usb3_act>, -+ <&sata_act>, <&sata_err_led>; -+ -+ network { -+ label = "helios64:blue:net"; -+ gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "netdev"; -+ default-state = "off"; -+ }; -+ -+ sata { -+ label = "helios64:blue:hdd-status"; -+ gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "disk-activity"; -+ default-state = "off"; -+ }; -+ -+ sata_err1 { -+ label = "helios64:red:ata1-err"; -+ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err2 { -+ label = "helios64:red:ata2-err"; -+ gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err3 { -+ label = "helios64:red:ata3-err"; -+ gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err4 { -+ label = "helios64:red:ata4-err"; -+ gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ sata_err5 { -+ label = "helios64:red:ata5-err"; -+ gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>; -+ default-state = "keep"; -+ }; -+ -+ usb3 { -+ label = "helios64:blue:usb3"; -+ gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; -+ trigger-sources = <&int_hub_port1>, -+ <&int_hub_port2>, -+ <&int_hub_port3>; -+ linux,default-trigger = "usbport"; -+ default-state = "off"; -+ }; -+ }; -+ -+ pwmleds { -+ compatible = "pwm-leds"; -+ status = "okay"; -+ -+ power-led { -+ label = "helios64:blue:power-status"; -+ pwms = <&pwm3 0 2000000000 0>; -+ max-brightness = <255>; -+ }; -+ }; -+ -+ system_leds: system-gpio-leds { -+ status = "okay"; -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&system_led>; -+ -+ status-led { -+ label = "helios64::status"; -+ gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "none"; -+ default-state = "on"; -+ mode = <0x23>; -+ }; -+ -+ fault-led { -+ label = "helios64:red:fault"; -+ gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "panic"; -+ default-state = "keep"; -+ mode = <0x23>; -+ }; -+ }; -+}; -+ -+&cdn_dp { -+ status = "okay"; -+ extcon = <&fusb0>; -+ phys = <&tcphy0_dp>; -+}; -+ -+&cpu_l0 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l1 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l2 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l3 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_b0 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_b1 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_alert0 { -+ temperature = <80000>; -+}; -+ -+&cpu_alert1 { -+ temperature = <95000>; -+}; -+ -+&cpu_crit { -+ temperature = <100000>; -+}; -+ -+&emmc_phy { -+ status = "okay"; -+}; -+ -+&gmac { -+ assigned-clocks = <&cru SCLK_RMII_SRC>; -+ assigned-clock-parents = <&clkin_gmac>; -+ clock_in_out = "input"; -+ phy-supply = <&vcc_lan>; -+ phy-mode = "rgmii"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&rgmii_pins &rgmii_phy_reset>; -+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; -+ snps,reset-active-low; -+ snps,reset-delays-us = <0 10000 50000>; -+ tx_delay = <0x28>; -+ rx_delay = <0x20>; -+ status = "okay"; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&i2c0 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <168>; -+ i2c-scl-falling-time-ns = <4>; -+ status = "okay"; -+ -+ rk808: pmic@1b { -+ compatible = "rockchip,rk808"; -+ reg = <0x1b>; -+ #clock-cells = <1>; -+ clock-output-names = "xin32k", "rk808-clkout2"; -+ interrupt-parent = <&gpio0>; -+ interrupts = <10 IRQ_TYPE_LEVEL_LOW>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int_l>; -+ rockchip,system-power-controller; -+ wakeup-source; -+ -+ vcc1-supply = <&vcc5v0_sys>; -+ vcc2-supply = <&vcc5v0_sys>; -+ vcc3-supply = <&vcc5v0_sys>; -+ vcc4-supply = <&vcc5v0_sys>; -+ vcc6-supply = <&vcc5v0_sys>; -+ vcc7-supply = <&vcc5v0_sys>; -+ vcc8-supply = <&vcc3v3_sys_s3>; -+ vcc9-supply = <&vcc5v0_sys>; -+ vcc10-supply = <&vcc5v0_sys>; -+ vcc11-supply = <&vcc5v0_sys>; -+ vcc12-supply = <&vcc3v3_sys_s3>; -+ vddio-supply = <&vcc3v0_s3>; -+ -+ regulators { -+ vdd_center: DCDC_REG1 { -+ regulator-name = "vdd_center"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1000000>; -+ regulator-ramp-delay = <6001>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <950000>; -+ }; -+ }; -+ -+ vdd_cpu_l: DCDC_REG2 { -+ regulator-name = "vdd_cpu_l"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <750000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr_s3: DCDC_REG3 { -+ regulator-name = "vcc_ddr_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc1v8_sys_s3: DCDC_REG4 { -+ regulator-name = "vcc1v8_sys_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ /* not used */ -+ vcc1v8_dvp: LDO_REG1 { -+ regulator-name = "vcc1v8_dvp"; -+ }; -+ -+ /* not used */ -+ vcc3v0_touch: LDO_REG2 { -+ regulator-name = "vcc3v0_touch"; -+ }; -+ -+ vcc1v8_s3: LDO_REG3 { -+ regulator-name = "vcc1v8_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcc_sdio_s0: LDO_REG4 { -+ regulator-name = "vcc_sdio_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-state-mem { -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ /* not used */ -+ vcca3v0_codec: LDO_REG5 { -+ regulator-name = "vcca3v0_codec"; -+ }; -+ -+ vcc1v5_s3: LDO_REG6 { -+ regulator-name = "vcc1v5_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1500000>; -+ }; -+ }; -+ -+ /* not used */ -+ vcca1v8_codec: LDO_REG7 { -+ regulator-name = "vcca1v8_codec"; -+ }; -+ -+ vcc3v0_s3: LDO_REG8 { -+ regulator-name = "vcc3v0_s3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ -+ vcc3v3_sys_s0: SWITCH_REG1 { -+ regulator-name = "vcc3v3_sys_s0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_s0: SWITCH_REG2 { -+ regulator-name = "vcc3v3_s0"; -+ }; -+ }; -+ }; -+ -+ vdd_cpu_b: regulator@40 { -+ compatible = "silergy,syr827"; -+ reg = <0x40>; -+ fcs,suspend-voltage-selector = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vsel1_gpio>; -+ vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; -+ regulator-compatible = "fan53555-reg"; -+ regulator-name = "vdd_cpu_b"; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-ramp-delay = <1000>; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: regulator@41 { -+ compatible = "silergy,syr828"; -+ reg = <0x41>; -+ fcs,suspend-voltage-selector = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vsel2_gpio>; -+ vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>; -+ regulator-compatible = "fan53555-reg"; -+ regulator-name = "vdd_gpu"; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-ramp-delay = <1000>; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+}; -+ -+&i2c2 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <160>; -+ i2c-scl-falling-time-ns = <30>; -+ status = "okay"; -+ -+ gpio-expander@20 { -+ compatible = "nxp,pca9555"; -+ reg = <0x20>; -+ gpio-controller; -+ #gpio-cells = <2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pca0_pins>; -+ interrupt-parent = <&gpio0>; -+ interrupts = <9 IRQ_TYPE_EDGE_FALLING>; -+ interrupt-controller; -+ #interrupt-cells = <2>; -+ vcc-supply = <&vcc3v3_sys_s3>; -+ }; -+ -+ temp@4c { -+ compatible = "onnn,lm75"; -+ reg = <0x4c>; -+ vcc-supply = <&vcc3v3_sys_s0>; -+ }; -+}; -+ -+&i2c4 { -+ clock-frequency = <400000>; -+ i2c-scl-rising-time-ns = <160>; -+ i2c-scl-falling-time-ns = <30>; -+ status = "okay"; -+ -+ fusb0: typec-portc@22 { -+ /* For use with typec-fusb302 */ -+ compatible = "fcs,fusb302"; -+ reg = <0x22>; -+ interrupt-parent = <&gpio1>; -+ interrupts = ; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&fusb0_int>; -+ vbus-supply = <&vcc5v0_typec>; -+ status = "okay"; -+ -+ usb_con: connector { -+ compatible = "usb-c-connector"; -+ label = "USB-C"; -+ power-role = "dual"; -+ data-role = "dual"; -+ try-power-role = "sink"; -+ source-pdos = ; -+ sink-pdos = ; -+ op-sink-microwatt = <5000000>; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port@0 { -+ reg = <0>; -+ usb_con_hs: endpoint { -+ remote-endpoint = <&u2phy0_typec_hs>; -+ }; -+ }; -+ port@1 { -+ reg = <1>; -+ usb_con_ss: endpoint { -+ remote-endpoint = <&tcphy0_typec_ss>; -+ }; -+ }; -+ port@2 { -+ reg = <2>; -+ usb_con_sbu: endpoint { -+ remote-endpoint = <&tcphy0_typec_dp>; -+ }; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+/* I2C on UEXT */ -+&i2c7 { -+ status = "okay"; -+}; -+ -+/* External I2C */ -+&i2c8 { -+ status = "okay"; -+}; -+ -+&i2s2 { -+ #sound-dai-cells = <0>; -+ status = "okay"; -+}; -+ -+&io_domains { -+ status = "okay"; -+ bt656-supply = <&vcc1v8_sys_s0>; -+ audio-supply = <&vcc1v8_sys_s0>; -+ sdmmc-supply = <&vcc_sdio_s0>; -+ gpio1830-supply = <&vcc3v0_s3>; -+}; -+ -+&pcie0 { -+ ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; -+ num-lanes = <2>; -+ max-link-speed = <2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_prst &pcie_clkreqn_cpm>; -+ vpcie12v-supply = <&vcc12v_dcin>; -+ vpcie3v3-supply = <&pcie_power>; -+ vpcie1v8-supply = <&avdd_1v8_s0>; -+ vpcie0v9-supply = <&avdd_0v9_s0>; -+ status = "okay"; -+}; -+ -+&pcie_phy { -+ status = "okay"; -+}; -+ -+&pinctrl { -+ buttons { -+ pwrbtn: pwrbtn { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ user1btn: usr1btn { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ charger { -+ ac_present_ap: ac-present-ap { -+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ charger_status: charger-status { -+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ fan { -+ fan1_sense: fan1-sense { -+ rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ fan2_sense: fan2-sense { -+ rockchip,pins = <4 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ fusb30x { -+ fusb0_int: fusb0-int { -+ rockchip,pins = -+ <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ fusb0_vbus_en: fusb0-vbus-en { -+ rockchip,pins = -+ <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ gmac { -+ rgmii_phy_reset: rgmii-phy-reset { -+ rockchip,pins = -+ <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; -+ }; -+ }; -+ -+ leds { -+ network_act: network-act { -+ rockchip,pins = -+ <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ usb3_act: usb3-act { -+ rockchip,pins = -+ <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ sata_act: sata-act { -+ rockchip,pins = -+ <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ system_led: sys-led { -+ rockchip,pins = -+ <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>, -+ <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ sata_err_led: sata-err-led { -+ rockchip,pins = -+ <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_down>, -+ <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ misc { -+ pca0_pins: pca0-pins { -+ rockchip,pins = -+ <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wake_on_lan: wake-on-lan { -+ rockchip,pins = -+ <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pcie { -+ pcie_prst: pcie-prst { -+ rockchip,pins = -+ <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie_pwr_en: pcie-pwr-en { -+ rockchip,pins = -+ <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = -+ <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vsel1_gpio: vsel1-gpio { -+ rockchip,pins = -+ <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ vsel2_gpio: vsel2-gpio { -+ rockchip,pins = -+ <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ power { -+ hdd_a_power: hdd-a-power { -+ rockchip,pins = -+ <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ hdd_b_power: hdd-b-power { -+ rockchip,pins = -+ <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vcc5v0_usb_en: vcc5v0-usb-en { -+ rockchip,pins = -+ <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ sdmmc0_pwr_h: sdmmc0-pwr-h { -+ rockchip,pins = -+ ; -+ }; -+ -+ usb_lan_en: usb-lan-en { -+ rockchip,pins = -+ <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmu1830-supply = <&vcc3v0_s3>; -+ status = "okay"; -+}; -+ -+&pwm0 { -+ status = "okay"; -+}; -+ -+&pwm1 { -+ status = "okay"; -+}; -+ -+&pwm2 { -+ status = "okay"; -+}; -+ -+&pwm3 { -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcc1v8_s3>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ mmc-hs400-1_8v; -+ mmc-hs200-1_8v; -+ mmc-hs400-enhanced-strobe; -+ supports-emmc; -+ non-removable; -+ status = "okay"; -+}; -+ -+&sdmmc { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ disable-wp; -+ sd-uhs-sdr104; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; -+ vmmc-supply = <&vcc3v0_sd>; -+ vqmmc-supply = <&vcc_sdio_s0>; -+ status = "okay"; -+}; -+ -+&spi1 { -+ status = "okay"; -+}; -+ -+/* UEXT connector */ -+&spi2 { -+ status = "okay"; -+}; -+ -+&spi5 { -+ status = "okay"; -+}; -+ -+&tcphy0 { -+ extcon = <&fusb0>; -+ status = "okay"; -+}; -+ -+&tcphy0_dp { -+ port { -+ tcphy0_typec_dp: endpoint { -+ remote-endpoint = <&usb_con_sbu>; -+ }; -+ }; -+}; -+ -+&tcphy0_usb3 { -+ port { -+ tcphy0_typec_ss: endpoint { -+ remote-endpoint = <&usb_con_ss>; -+ }; -+ }; -+}; -+ -+&tcphy1 { -+ status = "okay"; -+}; -+ -+&tsadc { -+ /* tshut mode 0:CRU 1:GPIO */ -+ rockchip,hw-tshut-mode = <1>; -+ /* tshut polarity 0:LOW 1:HIGH */ -+ rockchip,hw-tshut-polarity = <1>; -+ status = "okay"; -+}; -+ -+&u2phy0 { -+ status = "okay"; -+ extcon = <&fusb0>; -+ -+ u2phy0_otg: otg-port { -+ status = "okay"; -+ -+ port { -+ u2phy0_typec_hs: endpoint { -+ remote-endpoint = <&usb_con_hs>; -+ }; -+ }; -+ }; -+ -+ u2phy0_host: host-port { -+ phy-supply = <&vcc5v0_usb>; -+ status = "okay"; -+ }; -+}; -+ -+&u2phy1 { -+ status = "okay"; -+ -+ u2phy1_otg: otg-port { -+ status = "okay"; -+ }; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usbdrd3_0 { -+ extcon = <&fusb0>; -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3_0 { -+ status = "okay"; -+ dr_mode = "otg"; -+}; -+ -+&usbdrd3_1 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3_1 { -+ status = "okay"; -+ dr_mode = "host"; -+ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ int_hub: hub@1 { -+ compatible = "usb2109,0815"; -+ reg = <1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ int_hub_port1: port@1 { -+ reg = <1>; -+ #trigger-source-cells = <0>; -+ }; -+ -+ int_hub_port2: port@2 { -+ reg = <2>; -+ #trigger-source-cells = <0>; -+ }; -+ -+ int_hub_port3: port@3 { -+ reg = <3>; -+ #trigger-source-cells = <0>; -+ }; -+ -+ usb_lan: device@4 { -+ compatible = "usbbda,8156"; -+ reg = <4>; -+ -+ #address-cells = <2>; -+ #size-cells = <0>; -+ -+ interface@0 { /* interface 0 of configuration 1 */ -+ compatible = "usbbda,8156.config1.0"; -+ reg = <0 1>; -+ }; -+ }; -+ }; -+}; -+ -+&vopb { -+ status = "okay"; -+}; -+ -+&vopb_mmu { -+ status = "okay"; -+}; -+ -+&vopl { -+ status = "okay"; -+}; -+ -+&vopl_mmu { -+ status = "okay"; -+}; -diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig -index 254b9c5b..5f89bf6e 100644 ---- a/arch/arm/mach-rockchip/rk3399/Kconfig -+++ b/arch/arm/mach-rockchip/rk3399/Kconfig -@@ -26,6 +26,22 @@ config TARGET_PINEBOOK_PRO_RK3399 - with 4Gb RAM, onboard eMMC, USB-C, a USB3 and USB2 port, - 1920*1080 screen and all the usual laptop features. - -+config TARGET_HELIOS64 -+ bool "Kobol Innovations Helios64" -+ select BOARD_LATE_INIT -+ help -+ Helios64 is a Network Attached Storage board based on Rockchip RK3399. -+ -+ Key features of the Helios64 include: -+ * on-board PCIe to 5 Ports SATA Controller JMB585 -+ * on-board USB 3.0 hub (3x USB 3.0 host) -+ * USB Type-C (Support DisplayPort Alt Mode) -+ * on-board 1 Gigabit Ethernet -+ * on-board 2.5 Gigabit Ethernet (Realtek RTL8156) -+ * on-board eMMC -+ * on-board LPDDR4 -+ * SPI, I2C, UART, GPIO -+ - config TARGET_PUMA_RK3399 - bool "Theobroma Systems RK3399-Q7 (Puma)" - help -@@ -151,6 +167,7 @@ endif # BOOTCOUNT_LIMIT - - source "board/firefly/roc-pc-rk3399/Kconfig" - source "board/google/gru/Kconfig" -+source "board/kobol/helios64/Kconfig" - source "board/pine64/pinebook-pro-rk3399/Kconfig" - source "board/pine64/rockpro64_rk3399/Kconfig" - source "board/rockchip/evb_rk3399/Kconfig" -diff --git a/board/kobol/helios64/Kconfig b/board/kobol/helios64/Kconfig -new file mode 100644 -index 00000000..644cdbd8 ---- /dev/null -+++ b/board/kobol/helios64/Kconfig -@@ -0,0 +1,24 @@ -+if TARGET_HELIOS64 -+ -+config SYS_BOARD -+ default "helios64" -+ -+config SYS_VENDOR -+ default "kobol" -+ -+config SYS_CONFIG_NAME -+ default "helios64" -+ -+config BOARD_SPECIFIC_OPTIONS # dummy -+ def_bool y -+ -+config ENV_SECT_SIZE -+ default 0x1000 if ENV_IS_IN_SPI_FLASH -+ -+config ENV_SIZE -+ default 0x8000 -+ -+config ENV_OFFSET -+ default 0x460000 if ENV_IS_IN_SPI_FLASH -+ -+endif -diff --git a/board/kobol/helios64/MAINTAINERS b/board/kobol/helios64/MAINTAINERS -new file mode 100644 -index 00000000..a9c88c79 ---- /dev/null -+++ b/board/kobol/helios64/MAINTAINERS -@@ -0,0 +1,6 @@ -+HELIOS64 BOARD -+M: Aditya Prayoga -+S: Maintained -+F: board/kobol/helios64/ -+F: include/configs/helios64.h -+F: configs/helios64_defconfig -diff --git a/board/kobol/helios64/Makefile b/board/kobol/helios64/Makefile -new file mode 100644 -index 00000000..ab34245a ---- /dev/null -+++ b/board/kobol/helios64/Makefile -@@ -0,0 +1,5 @@ -+# SPDX-License-Identifier: GPL-2.0+ -+# -+# Copyright (C) 2020 Aditya Prayoga -+ -+obj-y := helios64.o sys_otp.o -diff --git a/board/kobol/helios64/helios64.c b/board/kobol/helios64/helios64.c -new file mode 100644 -index 00000000..c7a0efa4 ---- /dev/null -+++ b/board/kobol/helios64/helios64.c -@@ -0,0 +1,262 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * (C) Copyright 2020 Aditya Prayoga (aditya@kobol.io) -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "sys_otp.h" -+ -+#ifndef CONFIG_TPL_BUILD -+int board_early_init_f(void) -+{ -+#ifdef CONFIG_SPL_BUILD -+#define GPIO0_BASE 0xff720000 -+#define GRF_BASE 0xff770000 -+ struct rk3399_grf_regs * const grf = (void *)GRF_BASE; -+ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; -+ -+ /* Turn ON status LED. At this stage, FDT & DM is not initialized yet */ -+ spl_gpio_output(gpio, GPIO(BANK_B, 4), 1); -+#endif -+ return 0; -+} -+#endif -+ -+#ifndef CONFIG_SPL_BUILD -+int board_early_init_r(void) -+{ -+ read_otp_data(); -+ return 0; -+} -+#endif -+ -+#ifdef CONFIG_MISC_INIT_R -+#define GRF_IO_VSEL_BT565_SHIFT 0 -+#define GRF_IO_VSEL_AUDIO_SHIFT 1 -+#define GRF_IO_VSEL_SDMMC_SHIFT 2 -+#define GRF_IO_VSEL_GPIO1830_SHIFT 3 -+ -+#define PMUGRF_CON0_VSEL_SHIFT 8 -+#define PMUGRF_CON0_PMU1830_VOL_SHIFT 9 -+static void setup_iodomain(void) -+{ -+ struct rk3399_grf_regs *grf = -+ syscon_get_first_range(ROCKCHIP_SYSCON_GRF); -+ struct rk3399_pmugrf_regs *pmugrf = -+ syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF); -+ -+ /* BT565 is in 1.8v domain */ -+ rk_setreg(&grf->io_vsel, 1 << GRF_IO_VSEL_BT565_SHIFT); -+ -+ /* AUDIO is in 1.8v domain */ -+ rk_setreg(&grf->io_vsel, 1 << GRF_IO_VSEL_AUDIO_SHIFT); -+ -+ /* SDMMC is in 3.0v domain */ -+ rk_setreg(&grf->io_vsel, 0 << GRF_IO_VSEL_SDMMC_SHIFT); -+ -+ /* GPIO1830 is in 3.0v domain */ -+ rk_setreg(&grf->io_vsel, 0 << GRF_IO_VSEL_GPIO1830_SHIFT); -+ -+ /* Set GPIO1 1.8v/3.0v source select to PMU1830_VOL */ -+ rk_setreg(&pmugrf->soc_con0, 1 << PMUGRF_CON0_VSEL_SHIFT); -+ rk_setreg(&pmugrf->soc_con0, 0 << PMUGRF_CON0_PMU1830_VOL_SHIFT); -+} -+ -+/* -+ * Swap mmc0 and mmc1 in boot_targets if booted from SD-Card. -+ * -+ * If bootsource is uSD-card we can assume that we want to use the -+ * SD-Card instead of the eMMC as first boot_target for distroboot. -+ * We only want to swap the defaults and not any custom environment a -+ * user has set. We exit early if a changed boot_targets environment -+ * is detected. -+ */ -+static int setup_boottargets(void) -+{ -+ const char *boot_device = -+ ofnode_read_chosen_string("u-boot,spl-boot-device"); -+ char *env_default, *env; -+ -+ if (!boot_device) { -+ debug("%s: /chosen/u-boot,spl-boot-device not set\n", -+ __func__); -+ return -1; -+ } -+ debug("%s: booted from %s\n", __func__, boot_device); -+ -+ env_default = env_get_default("boot_targets"); -+ env = env_get("boot_targets"); -+ if (!env) { -+ debug("%s: boot_targets does not exist\n", __func__); -+ return -1; -+ } -+ debug("%s: boot_targets current: %s - default: %s\n", -+ __func__, env, env_default); -+ -+ if (strcmp(env_default, env) != 0) { -+ debug("%s: boot_targets not default, don't change it\n", -+ __func__); -+ return 0; -+ } -+ -+ /* -+ * Only run, if booting from mmc1 (i.e. /mmc@fe320000) and -+ * only consider cases where the default boot-order first -+ * tries to boot from mmc0 (eMMC) and then from mmc1 -+ * (i.e. external SD). -+ * -+ * In other words: the SD card will be moved to earlier in the -+ * order, if U-Boot was also loaded from the SD-card. -+ */ -+ if (!strcmp(boot_device, "/mmc@fe320000")) { -+ char *mmc0, *mmc1; -+ -+ debug("%s: booted from SD-Card\n", __func__); -+ mmc0 = strstr(env, "mmc0"); -+ mmc1 = strstr(env, "mmc1"); -+ -+ if (!mmc0 || !mmc1) { -+ debug("%s: only one mmc boot_target found\n", __func__); -+ return -1; -+ } -+ -+ /* -+ * If mmc0 comes first in the boot order, we need to change -+ * the strings to make mmc1 first. -+ */ -+ if (mmc0 < mmc1) { -+ mmc0[3] = '1'; -+ mmc1[3] = '0'; -+ debug("%s: set boot_targets to: %s\n", __func__, env); -+ env_set("boot_targets", env); -+ } -+ } -+ -+ return 0; -+} -+ -+static void setup_leds(void) -+{ -+ struct udevice *dev; -+ -+ led_get_by_label("helios64::status", &dev); -+ led_set_state(dev, LEDST_OFF); -+ mdelay(250); -+ led_set_state(dev, LEDST_ON); -+} -+ -+int misc_init_r(void) -+{ -+ const u32 cpuid_offset = 0x7; -+ const u32 cpuid_length = 0x10; -+ u8 cpuid[cpuid_length]; -+ int ret; -+ -+ setup_iodomain(); -+ set_board_info(); -+ -+ ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid); -+ if (ret) -+ return ret; -+ -+ ret = rockchip_cpuid_set(cpuid, cpuid_length); -+ if (ret) -+ return ret; -+ -+ if (mac_read_from_otp()) -+ ret = rockchip_setup_macaddr(); -+ -+ setup_boottargets(); -+ setup_leds(); -+ -+ return ret; -+} -+#endif -+ -+#ifdef CONFIG_LAST_STAGE_INIT -+static void auto_power_enable(void) -+{ -+ struct gpio_desc *enable, *clock; -+ -+ if (gpio_hog_lookup_name("AUTO_ON_EN_D", &enable)) { -+ debug("Fail to get AUTO_ON_EN_D\n"); -+ return; -+ } -+ -+ if (gpio_hog_lookup_name("AUTO_ON_EN_CLK", &clock)) { -+ debug("Fail to get AUTO_ON_EN_CLK\n"); -+ return; -+ } -+ -+ dm_gpio_set_value(enable, 1); -+ dm_gpio_set_value(clock, 1); -+ mdelay(10); -+ dm_gpio_set_value(clock, 0); -+} -+ -+int last_stage_init(void) -+{ -+ auto_power_enable(); -+ -+#ifdef CONFIG_PCI -+ scsi_scan(true); -+#endif -+ -+ return 0; -+} -+#endif -+ -+#if defined(CONFIG_DISPLAY_BOARDINFO_LATE) -+int checkboard(void) -+{ -+ int major, minor; -+ -+ printf("Revision: "); -+ -+ if (!get_revision(&major, &minor)) -+ printf("%i.%i - %s\n", major, minor, get_variant()); -+ else -+ printf("UNKNOWN\n"); -+ -+ return 0; -+} -+#endif -+ -+#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) -+int ft_board_setup(void *blob, bd_t *bd) -+{ -+ char *env; -+ -+ env = env_get("board_rev"); -+ if (env) -+ fdt_setprop_string(blob, fdt_path_offset(blob, "/"), -+ "kobol,board-rev", env); -+ -+ env = env_get("cpuid#"); -+ if (env) -+ fdt_setprop_string(blob, fdt_path_offset(blob, "/"), -+ "kobol,cpu-id", env); -+ -+ return 0; -+} -+#endif -diff --git a/board/kobol/helios64/sys_otp.c b/board/kobol/helios64/sys_otp.c -new file mode 100644 -index 00000000..3a278346 ---- /dev/null -+++ b/board/kobol/helios64/sys_otp.c -@@ -0,0 +1,248 @@ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "sys_otp.h" -+ -+#define OTP_DEVICE_BUS 0 -+#define OTP_DEVICE_CS 0 -+#define MAX_NUM_PORTS 2 -+ -+enum board_variant { -+ BOARD_VARIANT_INVALID = 0, -+ BOARD_VARIANT_ENG_SAMPLE, -+ BOARD_VARIANT_4G_PROD_NO_ECC, -+ BOARD_VARIANT_MAX -+}; -+ -+struct __attribute__ ((__packed__)) otp_data_t { -+ u8 magic[8]; -+ u8 part_num[16]; -+ u8 variant; -+ u8 revision; -+ u8 serial_num[6]; -+ u8 mfg_year[2]; -+ u8 mfg_month; -+ u8 mfg_day; -+ u8 mac_addr[MAX_NUM_PORTS][6]; -+ u8 reserved[204]; -+ u32 checksum; -+} otp; -+ -+static struct spi_slave *slave; -+static int has_been_read = 0; -+static int data_valid = 0; -+ -+static inline int is_data_valid(void) -+{ -+ return data_valid; -+} -+ -+static inline int is_valid_header(void) -+{ -+ if ((otp.magic[0] == 'H') || (otp.magic[1] == '6') || -+ (otp.magic[2] == '4') || (otp.magic[3] == 'N') || -+ (otp.magic[4] == 'P') || (otp.magic[5] == 'V') || -+ (otp.magic[6] == '1') || (otp.magic[7] == 0)) -+ -+ return 1; -+ -+ return 0; -+} -+ -+static int init_system_otp(int bus, int cs) -+{ -+ int ret; -+ char name[30], *str; -+ struct udevice *dev; -+ -+ snprintf(name, sizeof(name), "generic_%d:%d", bus, cs); -+ str = strdup(name); -+ if (!str) -+ return -ENOMEM; -+ ret = spi_get_bus_and_cs(bus, cs, 25000000, CONFIG_DEFAULT_SPI_MODE, "spi_generic_drv", -+ str, &dev, &slave); -+ return ret; -+} -+ -+#ifdef DEBUG -+/** -+ * show_otp_data - display the contents of the OTP register -+ */ -+static void show_otp_data(void) -+{ -+ u32 i; -+ u32 crc; -+ -+ const char* var_str[BOARD_VARIANT_MAX] = { -+ "Invalid variant", -+ "Engineering Sample", -+ "Production - 4GB non ECC" -+ }; -+ -+ printf("\n"); -+ printf("Register dump: (%lu bytes)\n", sizeof(otp)); -+ for (i = 0; i < sizeof(otp); i++) { -+ if ((i % 16) == 0) -+ printf("%02X: ", i); -+ printf("%02X ", ((u8 *)&otp)[i]); -+ if (((i % 16) == 15) || (i == sizeof(otp) - 1)) -+ printf("\n"); -+ } -+ -+ if (!is_valid_header()) -+ return; -+ -+ printf("Part Number: %s\n", otp.part_num); -+ printf("Variant: %s\n", var_str[otp.variant]); -+ printf("Revision: %x.%x\n", (otp.revision & 0xf0) >> 4, otp.revision & 0x0f); -+ printf("Serial Number: %012llx\n", *((uint64_t*) otp.serial_num) & -+ 0xFFFFFFFFFFFF); -+ printf("Manufacturing Date: %02X-%02X-%04X (DD-MM-YYYY)\n", otp.mfg_day, -+ otp.mfg_month, *(u16*) otp.mfg_year); -+ -+ printf("1GbE MAC Address: %02X:%02X:%02X:%02X:%02X:%02X\n", -+ otp.mac_addr[0][0], otp.mac_addr[0][1], otp.mac_addr[0][2], -+ otp.mac_addr[0][3], otp.mac_addr[0][4], otp.mac_addr[0][5]); -+ -+ printf("2.5GbE MAC Address: %02X:%02X:%02X:%02X:%02X:%02X\n", -+ otp.mac_addr[1][0], otp.mac_addr[1][1], otp.mac_addr[1][2], -+ otp.mac_addr[1][3], otp.mac_addr[1][4], otp.mac_addr[1][5]); -+ -+ crc = crc32(0, (void *)&otp, sizeof(otp) - 4); -+ -+ if (crc == le32_to_cpu(otp.checksum)) -+ printf("CRC: %08x\n\n", le32_to_cpu(otp.checksum)); -+ else -+ printf("CRC: %08x (should be %08x)\n\n", -+ le32_to_cpu(otp.checksum), crc); -+ -+} -+#endif -+ -+int read_otp_data(void) -+{ -+ int ret; -+ u8 dout[5]; -+ -+ if (has_been_read) { -+ if (is_data_valid()) -+ return 0; -+ else -+ goto data_invalid; -+ } -+ -+ ret = init_system_otp(OTP_DEVICE_BUS, OTP_DEVICE_CS); -+ if (ret) -+ return ret; -+ -+ ret = spi_claim_bus(slave); -+ if (ret) { -+ debug("SPI: Failed to claim SPI bus: %d\n", ret); -+ return ret; -+ } -+ -+ dout[0] = 0x48; -+ dout[1] = 0x00; -+ dout[2] = 0x10; /* Security Register #1 */ -+ dout[3] = 0x00; -+ dout[4] = 0x00; /* Dummy Byte */ -+ -+ ret = spi_write_then_read(slave, dout, sizeof(dout), NULL, (u8 *)&otp, -+ sizeof(otp)); -+ -+ spi_release_bus(slave); -+#ifdef DEBUG -+ show_otp_data(); -+#endif -+ -+ has_been_read = (ret == 0) ? 1 : 0; -+ if (!is_valid_header()) -+ goto data_invalid; -+ -+ if (crc32(0, (void *)&otp, sizeof(otp) - 4) == -+ le32_to_cpu(otp.checksum)) -+ data_valid = 1; -+ -+ if (!is_data_valid()) -+ goto data_invalid; -+ -+ return 0; -+ -+data_invalid: -+ printf("Invalid board ID data!\n"); -+ return -1; -+} -+ -+int get_revision(int *major, int *minor) -+{ -+ if (!is_data_valid()) -+ return -1; -+ -+ *major = (otp.revision & 0xf0) >> 4; -+ *minor = otp.revision & 0x0f; -+ -+ return 0; -+} -+ -+const char *get_variant(void) -+{ -+ const char* var_str[BOARD_VARIANT_MAX] = { -+ "Unknown", -+ "Engineering Sample", -+ "4GB non ECC" -+ }; -+ -+ if ((otp.variant < BOARD_VARIANT_ENG_SAMPLE) || -+ (otp.variant >= BOARD_VARIANT_MAX)) -+ return var_str[0]; -+ -+ return var_str[otp.variant]; -+} -+ -+void set_board_info(void) -+{ -+ char env_str[13]; -+ -+ if (!is_data_valid()) -+ return; -+ -+ snprintf(env_str, sizeof(env_str), "%i.%i", (otp.revision & 0xf0) >> 4, otp.revision & 0x0f); -+ env_set("board_rev", env_str); -+ -+ sprintf(env_str, "%012llx", *((uint64_t*) otp.serial_num) & -+ 0xFFFFFFFFFFFF); -+ -+ env_set("serial#", env_str); -+} -+ -+int mac_read_from_otp(void) -+{ -+ unsigned int i; -+ int ret; -+ -+ if (!is_data_valid()) -+ return -1; -+ -+ for (i = 0; i < MAX_NUM_PORTS; i++) { -+ char enetvar[9]; -+ -+ sprintf(enetvar, i ? "eth%daddr" : "ethaddr", i); -+ -+ if (!is_valid_ethaddr(otp.mac_addr[i])) { -+ debug("Not valid %s!\n", enetvar); -+ continue; -+ } -+ -+ /* Only initialize environment variables that are blank -+ * (i.e. have not yet been set) -+ */ -+ if (!env_get(enetvar)) -+ eth_env_set_enetaddr(enetvar, otp.mac_addr[i]); -+ } -+ -+ return ret; -+} -diff --git a/board/kobol/helios64/sys_otp.h b/board/kobol/helios64/sys_otp.h -new file mode 100644 -index 00000000..61f6f3b3 ---- /dev/null -+++ b/board/kobol/helios64/sys_otp.h -@@ -0,0 +1,10 @@ -+#ifndef __HELIOS64_SYS_OTP_H -+#define __HELIOS64_SYS_OTP_H -+ -+int read_otp_data(void); -+void set_board_info(void); -+int get_revision(int *major, int *minor); -+const char *get_variant(void); -+int mac_read_from_otp(void); -+ -+#endif -diff --git a/configs/helios64-rk3399_defconfig b/configs/helios64-rk3399_defconfig -new file mode 100644 -index 00000000..62210055 ---- /dev/null -+++ b/configs/helios64-rk3399_defconfig -@@ -0,0 +1,149 @@ -+CONFIG_ARM=y -+CONFIG_ARCH_ROCKCHIP=y -+CONFIG_SYS_TEXT_BASE=0x00200000 -+CONFIG_SPL_GPIO_SUPPORT=y -+CONFIG_ENV_OFFSET=0x3F8000 -+CONFIG_ROCKCHIP_RK3399=y -+CONFIG_TARGET_HELIOS64=y -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEBUG_UART_BASE=0xFF1A0000 -+CONFIG_DEBUG_UART_CLOCK=24000000 -+CONFIG_SPL_SPI_FLASH_SUPPORT=y -+CONFIG_SPL_SPI_SUPPORT=y -+CONFIG_DEBUG_UART=y -+CONFIG_AHCI=y -+# CONFIG_ANDROID_BOOT_IMAGE is not set -+CONFIG_OF_BOARD_SETUP=y -+CONFIG_USE_PREBOOT=y -+CONFIG_CONSOLE_MUX=y -+CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y -+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-kobol-helios64.dtb" -+CONFIG_MISC_INIT_R=y -+CONFIG_VERSION_VARIABLE=y -+# CONFIG_DISPLAY_BOARDINFO is not set -+CONFIG_DISPLAY_BOARDINFO_LATE=y -+CONFIG_BOARD_TYPES=y -+CONFIG_BOARD_EARLY_INIT_F=y -+CONFIG_BOARD_EARLY_INIT_R=y -+CONFIG_LAST_STAGE_INIT=y -+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set -+CONFIG_SPL_STACK_R=y -+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 -+CONFIG_SPL_I2C_SUPPORT=y -+CONFIG_SPL_POWER_SUPPORT=y -+CONFIG_SPL_SPI_LOAD=y -+CONFIG_TPL=y -+CONFIG_CMD_CONFIG=y -+CONFIG_CMD_BOOTZ=y -+# CONFIG_BOOTM_PLAN9 is not set -+# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_BOOTM_VXWORKS is not set -+CONFIG_CMD_BOOTEFI_HELLO=y -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CRC32_VERIFY=y -+CONFIG_CMD_MD5SUM=y -+CONFIG_MD5SUM_VERIFY=y -+CONFIG_CMD_MEMINFO=y -+CONFIG_CMD_MX_CYCLIC=y -+CONFIG_CMD_SHA1SUM=y -+CONFIG_SHA1SUM_VERIFY=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_ADC=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_I2C=y -+CONFIG_CMD_MMC=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_POWEROFF=y -+CONFIG_CMD_READ=y -+CONFIG_CMD_SPI=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_ROCKUSB=y -+CONFIG_CMD_USB_MASS_STORAGE=y -+CONFIG_CMD_EFIDEBUG=y -+CONFIG_CMD_EXCEPTION=y -+CONFIG_CMD_TIME=y -+CONFIG_CMD_PMIC=y -+CONFIG_CMD_REGULATOR=y -+CONFIG_CMD_FS_UUID=y -+CONFIG_PARTITION_TYPE_GUID=y -+CONFIG_SPL_OF_CONTROL=y -+CONFIG_OF_LIVE=y -+CONFIG_DEFAULT_DEVICE_TREE="rk3399-kobol-helios64" -+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" -+CONFIG_ENV_IS_IN_MMC=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_IP_DEFRAG=y -+# CONFIG_DM_DEVICE_REMOVE is not set -+CONFIG_DEVRES=y -+CONFIG_SCSI_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SPL_FIRMWARE=y -+CONFIG_GPIO_HOG=y -+CONFIG_ROCKCHIP_GPIO=y -+CONFIG_DM_PCA953X=y -+CONFIG_I2C_SET_DEFAULT_BUS_NUM=y -+CONFIG_I2C_DEFAULT_BUS_NUMBER=0x8 -+CONFIG_SYS_I2C_ROCKCHIP=y -+CONFIG_LED=y -+CONFIG_LED_GPIO=y -+CONFIG_MISC=y -+CONFIG_ROCKCHIP_EFUSE=y -+CONFIG_ROCKCHIP_OTP=y -+CONFIG_SUPPORT_EMMC_RPMB=y -+CONFIG_MMC_IO_VOLTAGE=y -+CONFIG_SPL_MMC_IO_VOLTAGE=y -+CONFIG_MMC_UHS_SUPPORT=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_DW=y -+CONFIG_MMC_DW_ROCKCHIP=y -+CONFIG_MMC_SDHCI=y -+CONFIG_MMC_SDHCI_SDMA=y -+CONFIG_MMC_SDHCI_ROCKCHIP=y -+CONFIG_SPI_FLASH_WINBOND=y -+CONFIG_PHY_REALTEK=y -+CONFIG_DM_ETH=y -+CONFIG_DM_MDIO=y -+CONFIG_PHY_GIGE=y -+CONFIG_ETH_DESIGNWARE=y -+CONFIG_RGMII=y -+CONFIG_MII=y -+CONFIG_GMAC_ROCKCHIP=y -+CONFIG_PCI=y -+CONFIG_PHY_ROCKCHIP_INNO_USB2=y -+CONFIG_PHY_ROCKCHIP_TYPEC=y -+CONFIG_DM_PMIC_FAN53555=y -+CONFIG_PMIC_RK8XX=y -+CONFIG_SPL_DM_REGULATOR=y -+CONFIG_REGULATOR_PWM=y -+CONFIG_SPL_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_SPL_DM_REGULATOR_GPIO=y -+CONFIG_REGULATOR_RK8XX=y -+CONFIG_PWM_ROCKCHIP=y -+CONFIG_RAM_RK3399_LPDDR4=y -+CONFIG_DM_RESET=y -+CONFIG_SCSI=y -+CONFIG_DM_SCSI=y -+CONFIG_BAUDRATE=1500000 -+CONFIG_DEBUG_UART_SHIFT=2 -+CONFIG_ROCKCHIP_SPI=y -+CONFIG_SYSRESET=y -+CONFIG_SYSRESET_SYSCON=y -+CONFIG_DM_THERMAL=y -+CONFIG_USB=y -+# CONFIG_SPL_DM_USB is not set -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_DWC3=y -+CONFIG_USB_EHCI_HCD=y -+CONFIG_USB_EHCI_GENERIC=y -+CONFIG_USB_DWC3=y -+CONFIG_USB_DWC3_GENERIC=y -+CONFIG_USB_GADGET=y -+CONFIG_USB_FUNCTION_ROCKUSB=y -+CONFIG_USB_HOST_ETHER=y -+CONFIG_USB_ETHER_RTL8152=y -+CONFIG_SPL_TINY_MEMSET=y -+CONFIG_ERRNO_STR=y -+CONFIG_HEXDUMP=y -diff --git a/include/configs/helios64.h b/include/configs/helios64.h -new file mode 100644 -index 00000000..6fca9a6b ---- /dev/null -+++ b/include/configs/helios64.h -@@ -0,0 +1,47 @@ -+/* SPDX-License-Identifier: GPL-2.0+ */ -+/* -+ * (C) Copyright 2020 Aditya Prayoga -+ */ -+ -+#ifndef __HELIOS64_H -+#define __HELIOS64_H -+ -+#include -+ -+#define SDRAM_BANK_SIZE (2UL << 30) -+ -+#if defined(CONFIG_ENV_IS_IN_MMC) -+ #define CONFIG_SYS_MMC_ENV_DEV 0 -+#elif defined(CONFIG_ENV_IS_IN_SPI_FLASH) -+ #define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS -+ #define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS -+ #define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE -+ #define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED -+#endif -+ -+ -+#ifndef CONFIG_SPL_BUILD -+#if CONFIG_IS_ENABLED(SCSI) -+ -+ #define CONFIG_SYS_SCSI_MAX_SCSI_ID 5 -+ #define CONFIG_SYS_SCSI_MAX_LUN 1 -+ #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ -+ CONFIG_SYS_SCSI_MAX_LUN) -+ -+ #define BOOT_TARGET_SCSI(func) \ -+ func(SCSI, scsi, 0) -+#else -+ #define BOOT_TARGET_SCSI(func) -+#endif -+ -+#undef BOOT_TARGET_DEVICES -+#define BOOT_TARGET_DEVICES(func) \ -+ BOOT_TARGET_MMC(func) \ -+ BOOT_TARGET_USB(func) \ -+ BOOT_TARGET_SCSI(func) \ -+ BOOT_TARGET_PXE(func) \ -+ BOOT_TARGET_DHCP(func) -+ -+#endif -+ -+#endif --- -Created with Armbian build tools https://github.com/armbian/build -