1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-09-17 14:57:22 +03:00

samsung-serranove: Init

Implements compatibility for Samsung Galaxy S4 Mini (Value Edition) a.k.a samsung-serranove (not to be confused with serranoldd and serannolte!)
This commit is contained in:
Jacob Hrbek 2024-04-15 00:09:49 +02:00
parent 5455e4455b
commit 5568bcb940
No known key found for this signature in database
GPG Key ID: 667F0DAFAF09BA2B
5 changed files with 641 additions and 9 deletions

View File

@ -0,0 +1,6 @@
= Samsung Galaxy S4 Mini Value Edition
include::_support/common.inc[]
== Device-specific notes
none

View File

@ -0,0 +1,90 @@
{ config, lib, pkgs, ... }:
# Based in part on device-samsung-serranove from pmbootstrap
# REVIEW(Krey): Please advice on how to handle these firmware requirements:
# * Requires a firmware for GPU/WiFi/BT/Modem/Video
# ** firmware-qcom-adreno-a300 -- Appears to be obtainable from linux-firmware: https://gitlab.com/postmarketOS/pmaports/-/commit/96f2ad2fac39bf9c38a822f5a4369adb3e2fdda2
# ** msm-firmware-loader -- https://gitlab.com/postmarketOS/pmaports/-/tree/master/main/msm-firmware-loader
# ** firmware-samsung-serranove-wcnss-nv -- https://gitlab.com/postmarketOS/pmaports/-/blob/master/device/community/firmware-samsung-serranove/APKBUILD
{
mobile.device.name = "samsung-serranove";
mobile.device.identity = {
name = "Galaxy S4 Mini Value Edition";
manufacturer = "Samsung";
};
# The hardware supports aarch64-*, but the firmware was never updated from armv7 -> Disfunctional GPU/WiFi/BT/Modem/Video on aarch64-*
mobile.system.system = "armv7l-linux";
mobile.hardware = {
soc = "qualcomm-msm8916";
ram = 1024 * 1.5;
# The panel is wired backwards so renders as XY mirrored which needs to be managed in software (https://gitlab.com/postmarketOS/pmaports/-/issues/1340)
screen = {
width = 540; height = 960;
};
};
# TODO(Krey): Figure out the firmware
# mobile.boot.stage-1.firmware = [
# qcom-video-firmware
# ];
mobile.boot.stage-1.kernel = {
package = pkgs.callPackage ./kernel { };
modular = true; # REVIEW(Krey): Unsure..
modules = [
"panel-samsung-s6e88a0-ams427ap24"
"msm" # DRM module
"zinitix"
"rt5033"
"rt5033-charger"
];
};
# mobile.device.firmware = pkgs.callPackage ./firmware {};
# Firmware is not enabled by default since it requires manually providing unredistributable files.
mobile.device.enableFirmware = false;
mobile.system.android.device_name = "samsung-serranove";
mobile.system.android = {
bootimg.flash = {
offset_base = "0x80000000";
offset_kernel = "0x00008000";
offset_ramdisk = "0x02000000";
offset_second = "0x00f00000";
offset_tags = "0x01e00000";
pagesize = "2048";
};
# appendDTB = [
# "dtbs/qcom/sdm625-motorola-potter.dtb"
# ];
};
# RFC(krey->samueldr): The boot partition on this device is 225.7M, should we use this?
# mobile.boot.stage-1.compression = lib.mkDefault "xz";
mobile.usb = {
mode = "gadgetfs"; # REVIEW(Krey): Unsure..
idVendor = "0x04e8"; # Samsung Electronics Co., Ltd
idProduct = "6860"; # something not "D001", to distinguish nixos from fastboot/lk2nd
# REVIEW(Krey): Unsure..
gadgetfs.functions = {
rndis = "rndis.usb0";
adb = "ffs.adb";
};
};
mobile.system.type = "android";
mobile.system.android.flashingMethod = "lk2nd";
mobile.kernel.structuredConfig = [
(helpers: with helpers; {
CC_OPTIMIZE_FOR_PERFORMANCE = no;
CC_OPTIMIZE_FOR_SIZE = yes;
})
];
}

View File

@ -0,0 +1,505 @@
#
# Defconfig for msm8916 from https://github.com/msm8916-mainline/linux/commit/6cc2342c6a7227a05ca94c836df42d5ba273eef2
# Linux/arm 6.7-rc4 Kernel Configuration
#
# cat arch/arm64/configs/msm8916_defconfig arch/arm/configs/msm8916_defconfig.part > arch/arm/configs/msm8916_defconfig
CONFIG_LOCALVERSION="-serranove"
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_AUDIT=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
CONFIG_USER_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_PROFILING=y
CONFIG_ARCH_QCOM=y
# CONFIG_AMPERE_ERRATUM_AC03_CPU_38 is not set
# CONFIG_ARM64_ERRATUM_832075 is not set
# CONFIG_ARM64_ERRATUM_834220 is not set
# CONFIG_ARM64_ERRATUM_1742098 is not set
# CONFIG_ARM64_ERRATUM_1024718 is not set
# CONFIG_ARM64_ERRATUM_1418040 is not set
# CONFIG_ARM64_ERRATUM_1165522 is not set
# CONFIG_ARM64_ERRATUM_1319367 is not set
# CONFIG_ARM64_ERRATUM_1530923 is not set
# CONFIG_ARM64_ERRATUM_2441007 is not set
# CONFIG_ARM64_ERRATUM_1286807 is not set
# CONFIG_ARM64_ERRATUM_1463225 is not set
# CONFIG_ARM64_ERRATUM_1542419 is not set
# CONFIG_ARM64_ERRATUM_1508412 is not set
# CONFIG_ARM64_ERRATUM_2051678 is not set
# CONFIG_ARM64_ERRATUM_2077057 is not set
# CONFIG_ARM64_ERRATUM_2658417 is not set
# CONFIG_ARM64_ERRATUM_2054223 is not set
# CONFIG_ARM64_ERRATUM_2067961 is not set
# CONFIG_ARM64_ERRATUM_2441009 is not set
# CONFIG_ARM64_ERRATUM_2645198 is not set
# CONFIG_ARM64_ERRATUM_2966298 is not set
# CONFIG_CAVIUM_ERRATUM_22375 is not set
# CONFIG_CAVIUM_ERRATUM_23154 is not set
# CONFIG_CAVIUM_ERRATUM_27456 is not set
# CONFIG_CAVIUM_ERRATUM_30115 is not set
# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set
# CONFIG_FUJITSU_ERRATUM_010001 is not set
# CONFIG_HISILICON_ERRATUM_161600802 is not set
# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set
# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set
# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set
# CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set
# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set
# CONFIG_ROCKCHIP_ERRATUM_3588001 is not set
# CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_CLUSTER=y
CONFIG_SCHED_SMT=y
CONFIG_NR_CPUS=8
CONFIG_HOTPLUG_CPU=y
CONFIG_HZ_300=y
CONFIG_COMPAT=y
# CONFIG_ARM64_HW_AFDBM is not set
# CONFIG_ARM64_PAN is not set
# CONFIG_ARM64_USE_LSE_ATOMICS is not set
# CONFIG_ARM64_RAS_EXTN is not set
# CONFIG_ARM64_CNP is not set
# CONFIG_ARM64_PTR_AUTH is not set
# CONFIG_ARM64_AMU_EXTN is not set
# CONFIG_ARM64_TLB_RANGE is not set
# CONFIG_ARM64_BTI is not set
# CONFIG_ARM64_E0PD is not set
# CONFIG_ARM64_SVE is not set
CONFIG_RANDOMIZE_BASE=y
# CONFIG_EFI is not set
# CONFIG_SUSPEND is not set
CONFIG_PM=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_PSCI_CPUIDLE=y
CONFIG_ARM_QCOM_SPM_CPUIDLE=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_QCOM_CPUFREQ_NVMEM=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_COMPAT_BRK is not set
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_CMA=y
CONFIG_LRU_GEN=y
CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IPV6=m
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
CONFIG_IP_VS=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_QRTR=y
CONFIG_QRTR_SMD=y
CONFIG_QRTR_TUN=m
CONFIG_BT=y
CONFIG_BT_HIDP=m
CONFIG_BT_LEDS=y
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_QCOMSMD=m
CONFIG_CFG80211=y
CONFIG_MAC80211=y
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=y
CONFIG_NFC=m
CONFIG_NFC_NCI=m
CONFIG_NFC_NXP_NCI=m
CONFIG_NFC_NXP_NCI_I2C=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_QCOM_EBI2 is not set
CONFIG_OF_OVERLAY=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_QCOM_FASTRPC=m
CONFIG_SCSI=y
# CONFIG_SCSI_PROC_FS is not set
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_MD=y
CONFIG_NETDEVICES=y
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_VXLAN=m
CONFIG_TUN=m
CONFIG_VETH=m
CONFIG_RMNET=m
CONFIG_USB_USBNET=m
CONFIG_WCN36XX=m
CONFIG_WWAN=y
CONFIG_QCOM_BAM_DMUX=m
CONFIG_RPMSG_WWAN_CTRL=m
CONFIG_INPUT_EVDEV=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_MATRIX=m
CONFIG_KEYBOARD_TM2_TOUCHKEY=m
# CONFIG_MOUSE_PS2 is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_TOUCHSCREEN_CYTTSP5=m
CONFIG_TOUCHSCREEN_HIMAX_HX852X=m
CONFIG_TOUCHSCREEN_MMS114=m
CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
CONFIG_TOUCHSCREEN_MSG2638=m
CONFIG_TOUCHSCREEN_IMAGIS=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_STMFTS=m
CONFIG_TOUCHSCREEN_ZINITIX=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PM8941_PWRKEY=y
CONFIG_INPUT_PM8XXX_VIBRATOR=m
CONFIG_INPUT_GPIO_VIBRA=m
CONFIG_INPUT_REGULATOR_HAPTIC=m
CONFIG_INPUT_PWM_VIBRA=m
CONFIG_RMI4_CORE=m
CONFIG_RMI4_I2C=m
CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
# CONFIG_SERIO is not set
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_SERIAL_MSM=y
CONFIG_SERIAL_MSM_CONSOLE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_HW_RANDOM=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=y
CONFIG_I2C_GPIO=y
CONFIG_I2C_QCOM_CCI=m
CONFIG_I2C_QUP=y
CONFIG_SPI=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_QUP=y
CONFIG_SPI_SPIDEV=m
CONFIG_SPMI=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_PINCTRL_MSM=y
CONFIG_PINCTRL_MSM8916=y
CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_QCOM_PON=y
CONFIG_BATTERY_MAX17042=m
CONFIG_SMB1360=m
CONFIG_BATTERY_PM8916_BMS_VM=m
CONFIG_CHARGER_PM8916_LBC=m
CONFIG_BATTERY_RT5033=m
CONFIG_CHARGER_RT5033=m
CONFIG_THERMAL=y
CONFIG_CPU_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
CONFIG_THERMAL_EMULATION=y
CONFIG_QCOM_TSENS=y
CONFIG_QCOM_SPMI_TEMP_ALARM=y
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_SYSFS=y
CONFIG_QCOM_WDT=y
CONFIG_PM8916_WATCHDOG=y
CONFIG_MFD_SPMI_PMIC=y
CONFIG_MFD_RT5033=m
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_QCOM_SMD_RPM=y
CONFIG_REGULATOR_QCOM_SPMI=y
CONFIG_REGULATOR_RT5033=m
CONFIG_REGULATOR_TPS65132=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_PLATFORM_SUPPORT=y
CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_QCOM_CAMSS=m
CONFIG_VIDEO_QCOM_VENUS=m
CONFIG_DRM=y
CONFIG_DRM_MSM=m
# CONFIG_DRM_MSM_MDP4 is not set
# CONFIG_DRM_MSM_DPU is not set
# CONFIG_DRM_MSM_DP is not set
# CONFIG_DRM_MSM_DSI_20NM_PHY is not set
# CONFIG_DRM_MSM_DSI_28NM_8960_PHY is not set
# CONFIG_DRM_MSM_DSI_14NM_PHY is not set
# CONFIG_DRM_MSM_DSI_10NM_PHY is not set
# CONFIG_DRM_MSM_DSI_7NM_PHY is not set
# CONFIG_DRM_MSM_HDMI is not set
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0=m
CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
CONFIG_DRM_PANEL_MSM8916_GENERATED=m
CONFIG_DRM_DISPLAY_CONNECTOR=m
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_PANEL_MIPI_DBI=m
CONFIG_DRM_SIMPLEDRM=y
CONFIG_FB=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_ALOOP=m
CONFIG_SND_SOC=y
CONFIG_SND_SOC_QCOM=m
CONFIG_SND_SOC_APQ8016_SBC=m
CONFIG_SND_SOC_QDSP6=m
CONFIG_SND_SOC_QDSP6_Q6VOICE=m
CONFIG_SND_SOC_AK4375=m
CONFIG_SND_SOC_AW8738=m
CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_TFA989X=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_HSIC_USB3503=y
CONFIG_USB_GADGET=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS_MULTICOLOR=y
CONFIG_LEDS_AW2013=m
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_IS31FL319X=m
CONFIG_LEDS_KTD2692=m
CONFIG_LEDS_SGM3140=m
CONFIG_LEDS_KTD202X=m
CONFIG_LEDS_QCOM_LPG=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_PM8XXX=y
CONFIG_DMADEVICES=y
CONFIG_QCOM_BAM_DMA=y
CONFIG_COMMON_CLK_QCOM=y
CONFIG_QCOM_A53PLL=y
CONFIG_QCOM_CLK_APCS_MSM8916=y
CONFIG_QCOM_CLK_SMD_RPM=y
CONFIG_MSM_GCC_8916=y
CONFIG_MSM_GCC_8939=y
CONFIG_HWSPINLOCK=y
CONFIG_HWSPINLOCK_QCOM=y
# CONFIG_FSL_ERRATUM_A008585 is not set
# CONFIG_HISILICON_ERRATUM_161010101 is not set
# CONFIG_ARM64_ERRATUM_858921 is not set
CONFIG_MAILBOX=y
CONFIG_QCOM_APCS_IPC=y
CONFIG_ARM_SMMU=y
CONFIG_QCOM_IOMMU=y
CONFIG_REMOTEPROC=y
CONFIG_REMOTEPROC_CDEV=y
CONFIG_QCOM_Q6V5_MSS=m
CONFIG_QCOM_SYSMON=y
CONFIG_QCOM_WCNSS_PIL=m
CONFIG_RPMSG_CHAR=y
CONFIG_RPMSG_CTRL=y
CONFIG_RPMSG_QCOM_SMD=y
CONFIG_QCOM_MEMSHARE_QMI_SERVICE=m
CONFIG_QCOM_RMTFS_MEM=y
CONFIG_QCOM_SMEM=y
CONFIG_QCOM_SMD_RPM=y
CONFIG_QCOM_SMP2P=y
CONFIG_QCOM_SMSM=y
CONFIG_QCOM_SOCINFO=y
CONFIG_QCOM_STATS=y
CONFIG_QCOM_WCNSS_CTRL=m
CONFIG_QCOM_APR=m
CONFIG_QCOM_CPR=y
CONFIG_QCOM_RPMPD=y
CONFIG_PM_DEVFREQ=y
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
CONFIG_DEVFREQ_GOV_POWERSAVE=y
CONFIG_DEVFREQ_GOV_USERSPACE=y
CONFIG_DEVFREQ_GOV_PASSIVE=m
CONFIG_EXTCON_QCOM_SPMI_MISC=y
CONFIG_EXTCON_SM5502=y
CONFIG_EXTCON_USB_GPIO=y
CONFIG_IIO=y
CONFIG_IIO_TRIGGERED_BUFFER=y
CONFIG_BMC150_ACCEL=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
CONFIG_KXCJK1013=m
CONFIG_QCOM_SPMI_VADC=y
CONFIG_BMG160=m
CONFIG_BMI160_I2C=m
CONFIG_INV_MPU6050_I2C=m
CONFIG_IIO_ST_LSM6DSX=m
CONFIG_CM3323=m
CONFIG_LTR501=m
CONFIG_STK3310=m
CONFIG_TSL2772=m
CONFIG_AK8975=m
CONFIG_BMC150_MAGN_I2C=m
CONFIG_IIO_ST_MAGN_3AXIS=m
CONFIG_YAMAHA_YAS530=m
CONFIG_PWM=y
CONFIG_PWM_CLK=y
CONFIG_QCOM_MPM=y
CONFIG_PHY_QCOM_USB_HS=y
CONFIG_ARM_CCI_PMU=m
# CONFIG_NVMEM_SYSFS is not set
CONFIG_NVMEM_QCOM_QFPROM=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_FANOTIFY=y
CONFIG_QUOTA=y
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=m
CONFIG_VFAT_FS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_CONFIGFS_FS=y
CONFIG_PSTORE=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_RAM=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_CRYPTO_BLAKE2B=m
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_CHACHA20_NEON=m
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_POLY1305_NEON=m
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
CONFIG_CRYPTO_SHA512_ARM64_CE=y
CONFIG_CRYPTO_AES_ARM64=y
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_BS=y
CONFIG_CRYPTO_SM4_ARM64_CE_BLK=m
CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=m
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_DEV_QCE=y
CONFIG_CRYPTO_DEV_QCOM_RNG=y
CONFIG_LIBCRC32C=y
CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_DEBUG_FS=y
CONFIG_PERF_EVENTS=y
CONFIG_ARCH_MSM8916=y
# CONFIG_CACHE_L2X0 is not set
# CONFIG_ARM_ERRATA_643719 is not set
CONFIG_SMP=y
CONFIG_ARM_PSCI=y
CONFIG_HZ_300=y
CONFIG_HIGHMEM=y
# CONFIG_ATAGS is not set
CONFIG_VFP=y
CONFIG_NEON=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_ARM_CRYPTO=y
CONFIG_CRYPTO_SHA1_ARM_NEON=y
CONFIG_CRYPTO_SHA1_ARM_CE=y
CONFIG_CRYPTO_SHA2_ARM_CE=y
CONFIG_CRYPTO_SHA512_ARM=y
CONFIG_CRYPTO_BLAKE2S_ARM=y
CONFIG_CRYPTO_BLAKE2B_NEON=m
CONFIG_CRYPTO_AES_ARM=y
CONFIG_CRYPTO_AES_ARM_BS=y
CONFIG_CRYPTO_AES_ARM_CE=y
CONFIG_CRYPTO_GHASH_ARM_CE=y
CONFIG_CRYPTO_CRC32_ARM_CE=y
CONFIG_CRYPTO_POLY1305_ARM=m
CONFIG_CRYPTO_CURVE25519_NEON=m
CONFIG_POWER_RESET=y
CONFIG_POWER_SUPPLY=y
CONFIG_STRICT_DEVMEM=y
# msm8909
CONFIG_ARCH_MSM8909=y
CONFIG_PINCTRL_MSM8909=y
CONFIG_MSM_GCC_8909=y

View File

@ -0,0 +1,19 @@
{ mobile-nixos
, fetchFromGitHub
, ...
}:
mobile-nixos.kernel-builder {
version = "6.7-rc4";
configfile = ./config.arm;
src = fetchFromGitHub {
owner = "msm8916-mainline";
repo = "linux";
rev = "6cc2342c6a7227a05ca94c836df42d5ba273eef2"; # branch msm8916/6.7-rc4
# TODO(Krey): Needs to be adjusted
sha256 = "sha256-mWd6FsGCPzC2DTQ23WxgItsq5gHdoPMXEMOhH5C3p2g=";
};
isModular = true;
}

View File

@ -10,6 +10,7 @@ let
;
cfg = config.mobile.hardware.socs;
anyQualcomm = lib.any (v: v) [
cfg.qualcomm-msm8916.enable
cfg.qualcomm-msm8940.enable
cfg.qualcomm-msm8939.enable
cfg.qualcomm-msm8953.enable
@ -29,6 +30,11 @@ in
default = false;
description = lib.mdDoc "enable when SOC is APQ80641AA";
};
hardware.socs.qualcomm-msm8916.enable = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "enable when SOC is msm8916";
};
hardware.socs.qualcomm-msm8940.enable = mkOption {
type = types.bool;
default = false;
@ -77,56 +83,62 @@ in
};
config = mkMerge [
{
mobile = mkIf cfg.qualcomm-msm8916.enable {
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-msm8940.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-msm8939.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-msm8953.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-msm8996.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-msm8998.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-sc7180.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
};
}
{
mobile = mkIf cfg.qualcomm-sdm660.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}
{
mobile = mkIf cfg.qualcomm-sdm845.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
boot.boot-control.enable = mkDefault true;
};
}
{
mobile = mkIf cfg.qualcomm-sm6125.enable {
system.system = "aarch64-linux";
system.system = lib.mkDefault "aarch64-linux";
quirks.fb-refresher.enable = true;
};
}