diff --git a/AndroidBoard.mk b/AndroidBoard.mk
index fcd669e..f40f2cf 100644
--- a/AndroidBoard.mk
+++ b/AndroidBoard.mk
@@ -13,6 +13,7 @@
# limitations under the License.
INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
+KERNEL_OUT ?= $(PRODUCT_OUT)/obj/KERNEL_OBJ
ifneq ($(TARGET_PREBUILT_KERNEL),)
DTB_PATH := $(dir $(TARGET_PREBUILT_KERNEL))
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 119b5f3..159400e 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -43,7 +43,7 @@ TARGET_OTA_ASSERT_DEVICE := nx,nx_tab
TARGET_BOARD_INFO_FILE := device/nintendo/nx/board-info.txt
# Manifest
-DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += device/nintendo/nx/manifests/device_framework_matrix.xml
+#DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += device/nintendo/nx/manifests/device_framework_matrix.xml
# Bluetooth
TARGET_VENDOR_PROP += device/nintendo/nx/bluetooth.prop
@@ -85,7 +85,7 @@ TARGET_KERNEL_SOURCE := vendor/nvidia/$(TARGET_KERNEL_PLATFORM_TARGET)
BOARD_KERNEL_IMAGE_NAME := Image.gz
endif
BOARD_KERNEL_CMDLINE := firmware_class.path=/vendor/firmware cpufreq.default_governor=performance cma=512MB nouveau.atomic=1
-include device/nvidia/foster/modules-ack.mk
+include device/nintendo/nx/modules-ack.mk
endif
# Kernel Image Parameters
@@ -108,11 +108,13 @@ TARGET_RELEASETOOLS_EXTENSIONS := device/nintendo/nx/releasetools
VENDOR_SECURITY_PATCH := 2024-12-05
# SELinux
-BOARD_VENDOR_SEPOLICY_DIRS += device/nintendo/nx/sepolicy/vendor
+ifneq ($(filter 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
+BOARD_VENDOR_SEPOLICY_DIRS += device/nvidia/foster/sepolicy/vendor
SELINUX_IGNORE_NEVERALLOWS := true
# Include Joycond sepolicy if present
-include hardware/nintendo/joycond/joycond-sepolicy.mk
+endif
# Treble
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
diff --git a/bootfiles/android_boot.ack.txt b/bootfiles/android_boot.ack.txt
new file mode 100644
index 0000000..ff3a3b2
--- /dev/null
+++ b/bootfiles/android_boot.ack.txt
@@ -0,0 +1,249 @@
+# Set defaults for missing env variables.
+setenv boot_dir ${prefix}
+test -n ${loader_rev} || setenv loader_rev 0
+test -n ${id} || setenv id SWANDR
+test -n ${emmc} || setenv emmc 0
+test -n ${fbconsole} || setenv fbconsole 9
+test -n ${uart_port} || setenv uart_port 0
+test -n ${earlycon} || setenv earlycon 0
+test -n ${r2p_action} || setenv r2p_action bootloader
+test -n ${autoboot} || setenv autoboot 0
+test -n ${autoboot_list} || setenv autoboot_list 0
+
+# Set logging params for each serial type.
+setenv uarta "no_console_suspend console=ttyS0,115200,8n1 loglevel=8 androidboot.console=ttyS0"
+setenv uartb "no_console_suspend console=ttyS1,115200,8n1 loglevel=8 androidboot.console=ttyS1"
+setenv uartc "no_console_suspend console=ttyS2,115200,8n1 loglevel=8 androidboot.console=ttyS2"
+setenv no_args "console=null"
+setenv usblg "usb_logging loglevel=8"
+setenv uarta_early "earlycon=uart,mmio32,0x70006000"
+setenv uartb_early "earlycon=uart,mmio32,0x70006040"
+setenv uartc_early "earlycon=uart,mmio32,0x70006200"
+
+# Set important addresses.
+setenv kernload 0xA0000000
+setenv initaddr 0x92000000
+setenv fdtrload 0xA8000000
+setenv fdtraddr 0x8d000000
+
+# Set temp addresses.
+setenv enviraddr 0x8d100000
+setenv fdtovaddr 0x8d200000
+
+
+# L4T Loader check. Min rev 4.
+if test "${loader_rev}" < 4; then echoe Old L4T Loader! Update bootloader folder!; echoe Rebooting in 10s..; sleep 10; reset; fi
+
+
+# Set SoC info.
+if test ${t210b01} = 1; then setenv plat_info T210B01; else setenv plat_info T210; fi
+
+# Set SKU info. Frig is used instead of Fric for compatibility reasons.
+if test ${sku} = 0; then setenv sku_info ODIN; setenv sku_rev a00; setenv variant odin
+elif test ${sku} = 1; then setenv sku_info ODIN; setenv sku_rev b01; setenv variant modin
+elif test ${sku} = 2; then setenv sku_info VALI; setenv sku_rev a00; setenv variant vali
+elif test ${sku} = 3; then setenv sku_info FRIG; setenv sku_rev a00; setenv variant fric
+fi
+
+# Print platform info.
+echo PLAT: ${plat_info} SKU: ${sku_info}
+echo Serial: ${device_serial_restricted}
+echo BT MAC: ${device_bt_mac}
+echo WF MAC: ${device_wifi_mac}
+
+
+# Set MMC device.
+setenv mmcnum 1
+if test ${emmc} = 1; then
+ echoe emmc enabled
+ setenv mmcnum 0
+fi
+mmc dev ${mmcnum}
+
+# Load Kernel.
+if gpio input 190 && test ${recovery} = "0"; then
+ # Normal Kernel.
+ if part start mmc ${mmcnum} boot boot_start; then echo Boot partition found
+ else echoe Boot partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
+ part size mmc ${mmcnum} boot boot_size
+else
+ # Recovery.
+ if part start mmc ${mmcnum} recovery boot_start; then echo Recovery partition found
+ else echoe Recovery partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
+ part size mmc ${mmcnum} recovery boot_size
+
+ echo Applying WAR: USB3 required for recovery
+ setenv usb3_enable 1
+fi
+mmc read ${kernload} ${boot_start} ${boot_size};
+
+# Load DT img.
+if part start mmc ${mmcnum} dtb dtb_start; then echo DTB partition found
+else echoe DTB partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
+part size mmc ${mmcnum} dtb dtb_size
+mmc read ${fdtrload} ${dtb_start} ${dtb_size}
+
+# Check for Super.
+if part start mmc ${mmcnum} super super_start; then echo Super partition found
+else echoe Super partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
+
+# Get DT from image.
+if dtimg load ${fdtrload} ${sku} ${fdtraddr} fdtrsize; then echo Device Tree for SKU ${sku_info} loaded
+else echoe Device Tree load for SKU ${sku_info} failed!; echoe Rebooting in 10s..; sleep 10; reset; fi
+
+# Load dtb and resize to fit overlays.
+fdt addr ${fdtraddr} ${fdtrsize}
+fdt resize 16384
+
+
+# Dtb sanity checks.
+if test ${sku_info} != ${fdt_id_text} -o ${sku_rev} != ${fdt_rev}; then
+ echoe Device Tree loaded not correct! (SKU: ${fdt_id_text}, Rev: ${fdt_rev})
+ echoe Expected SKU: ${sku_info}, Rev: ${sku_rev}
+ echoe Rebooting in 10s..; sleep 10; reset
+fi
+
+
+# Patch dtb with overlays if they exist.
+if test -n ${dtb_overlays}; then
+ echo loading dtb overlays: ${dtb_overlays}
+ for ov in ${dtb_overlays}; do
+ echo Setting ${ov}...
+ # Check if DT overlay and apply it.
+ if load mmc ${devnum}:${distro_bootpart} ${fdtovaddr} ${boot_dir}/overlays/${ov}.dtbo; then
+ if fdt apply ${fdtovaddr}; then echo Successfully loaded ${ov}.dtbo...
+ else echoe Overlay ${ov}.dtbo loading failed!; echoe Rebooting in 10s..; sleep 10; reset; fi
+ fi
+ done
+fi
+
+# UART Logging.
+if test ${uart_port} = 1; then
+ echoe UART-A logging enabled
+ setenv bootargs_extra ${bootargs_extra} ${uarta}
+ fdt set /serial@70006000 compatible nvidia,tegra20-uart
+ fdt set /serial@70006000 status okay
+
+ if test ${earlycon} = 1; then
+ echoe Early logging enabled
+ setenv bootargs_extra ${bootargs_extra} ${uarta_early}
+ fdt set /serial@70006000 reset-names noreset
+ fi
+elif test ${uart_port} = 2; then
+ echoe UART-B logging enabled
+ setenv bootargs_extra ${bootargs_extra} ${uartb}
+ fdt set /serial@70006040 compatible nvidia,tegra20-uart
+ fdt set /serial@70006040/joyconr status disabled
+
+ if test ${earlycon} = 1; then
+ echoe Early logging enabled
+ setenv bootargs_extra ${bootargs_extra} ${uartb_early}
+ fdt set /serial@70006040 reset-names noreset
+ fi
+elif test ${uart_port} = 3; then
+ echoe UART-C logging enabled
+ setenv bootargs_extra ${bootargs_extra} ${uartc}
+ fdt set /serial@70006200 compatible nvidia,tegra20-uart
+ fdt set /serial@70006200/joyconl status disabled
+
+ if test ${earlycon} = 1; then
+ echoe Early logging enabled
+ setenv bootargs_extra ${bootargs_extra} ${uartc_early}
+ fdt set /serial@70006200 reset-names noreset
+ fi
+else
+ setenv bootargs_extra ${bootargs_extra} ${no_args}
+fi
+
+# USB Serial Logging.
+if test ${uart_port} = 4; then setenv bootargs_extra ${usblg} ${bootargs_extra}; echoe USB Serial logging enabled; fi
+
+# Disable Joycon Rails.
+if test ${jc_rail_disable} = 1; then
+ echoe Joycon Rails disabled
+ fdt set /serial@70006040 status disabled
+ fdt set /serial@70006040/joyconr status disabled
+ fdt set /serial@70006200 status disabled
+ fdt set /serial@70006200/joyconl status disabled
+fi
+
+# Disable CEC.
+if test ${sku} = 2 -o ${cec_disable} = 1; then setenv bootargs_extra ${bootargs_extra} "androidboot.cec_disable=1"; fi
+
+# Disable Touch panel tuning.
+if test ${touch_skip_tuning} = 1; then setenv bootargs_extra ${bootargs_extra} "ftm4.skip_tuning=1"; fi
+
+# Disable Bluetooth ERTM.
+if test ${bt_ertm_disable} = 1; then setenv bootargs_extra ${bootargs_extra} "bluetooth.disable_ertm=1"; fi
+
+
+# Enable eMMC.
+if test ${emmc} = 1; then
+ fdt set /mmc@700b0600 status okay
+ fdt set /firmware/android boot_devices 700b0600.mmc
+
+ # Check if eMMC is initialized in 1-bit mode.
+ if test "${mmc_1bit}" = 1; then
+ echoe eMMC is initialized in 1-bit mode!
+ fdt set /mmc@700b0600 bus-width <0x1>
+ fdt set /mmc@700b0600 uhs-mask <0x7F>
+ fi
+else
+ fdt set /firmware/android boot_devices 700b0000.mmc
+fi
+
+# Check if SD is initialized in 1-bit mode.
+if test "${sd_1bit}" = 1; then
+ echoe SD Card is initialized in 1-bit mode!
+ fdt set /mmc@700b0600 bus-width <0x1>
+ fdt set /mmc@700b0600 uhs-mask <0x7F>
+fi
+
+# Set serial number.
+if test -n ${device_serial_restricted}; then fdt set / serial-number ${device_serial_restricted}; fi
+
+# Load mac address info file from sd
+if fatload mmc 1:1 ${enviraddr} switchroot/joycon_mac.ini; then
+ if ini "joycon_00" ${enviraddr}; then echo Found Joycon Pairing Info; else echoe Malformed joycon_mac.ini!; fi
+ if test -n "${host}" -a "${host}" = "00:00:00:00:00:00"; then ini "joycon_01" ${enviraddr}; fi
+fi
+
+# Set BT mac.
+if test ! -n "${bt_mac}"; then
+ if test -n "${host}" -a "${host}" != "00:00:00:00:00:00"; then setenv bt_mac ${host}; else setenv bt_mac ${device_bt_mac}; fi;
+fi
+
+# Set Wi-Fi mac. Use BT MAC with FF as the last byte.
+if test ! -n "${wifi_mac}"; then
+ if test -n "${host}" -a "${host}" != "00:00:00:00:00:00"; then setexpr wifi_mac sub "\:..$" ":FF" ${host}; else setenv wifi_mac ${device_wifi_mac}; fi;
+fi
+
+echo CAL0 BT MAC: ${bt_mac}
+echo CAL0 WF MAC: ${wifi_mac}
+
+# Import to DT.
+fdt set /chosen nvidia,wifi-mac ${wifi_mac}
+fdt set /chosen nvidia,bluetooth-mac ${bt_mac}
+
+
+# Set kernel cmdline.
+setenv bootargs ${bootargs_extra} "ro init=/init firmware_class.path=/vendor/firmware \
+ pmc_r2p.enabled=1 pmc_r2p.action=${r2p_action} \
+ pmc_r2p.param1=${autoboot} pmc_r2p.param2=${autoboot_list} \
+ fbcon=map:${fbconsole} consoleblank=0 \
+ latency_allowance.ptsa_rework \
+ nvdec_enabled=0 tegra_fbmem=0x800000@0xf5a00000 \
+ androidboot.bootloader=${blver} androidboot.hardware=nx \
+ androidboot.hardware.sku=${variant} androidboot.serialno=${device_serial_restricted} \
+ androidboot.modem=none androidboot.dtb_idx=${sku} "
+
+# Boot kernel.
+echo Launching Kernel!
+bootm ${kernload} ${kernload} ${fdtraddr}
+
+echoe Failed to launch Kernel!
+echoe
+echoe Rebooting in 10s..
+
+sleep 10
+reset
diff --git a/build/tasks/bootloader.mk b/build/tasks/bootloader.mk
index 1e1711f..5840133 100644
--- a/build/tasks/bootloader.mk
+++ b/build/tasks/bootloader.mk
@@ -42,7 +42,13 @@ $(PRODUCT_OUT)/bl33.bin: $(_uboot_bin)
u-boot-dtb: $(PRODUCT_OUT)/bl33.bin
endif # TARGET_TEGRA_UBOOT
-_uscript_input := $(abspath $(NX_BOOTFILES_PATH)/android_boot.txt)
+ifneq ($(filter 4.9, $(TARGET_KERNEL_VERSION)),)
+NX_BOOTSCRIPT ?= android_boot.txt
+else
+NX_BOOTSCRIPT ?= android_boot.ack.txt
+endif
+
+_uscript_input := $(abspath $(NX_BOOTFILES_PATH)/$(NX_BOOTSCRIPT))
_uscript_archive := $(call intermediates-dir-for,EXECUTABLES,boot.scr)/boot.scr
$(_uscript_archive): $(_uscript_input)
@mkdir -p $(dir $@)
diff --git a/device.mk b/device.mk
index 02334ef..f6f27eb 100644
--- a/device.mk
+++ b/device.mk
@@ -16,25 +16,31 @@
TARGET_TEGRA_VARIANT ?= common
-TARGET_TEGRA_BT ?= bcm
-TARGET_TEGRA_CAMERA := rel-shield-r
-TARGET_TEGRA_CEC := aosp
-TARGET_TEGRA_CPL := none
TARGET_KERNEL_VERSION ?= 4.9
TARGET_TEGRA_KEYSTORE := software
TARGET_TEGRA_LIGHT ?= lineage
-TARGET_TEGRA_POWER := perfmgr
-TARGET_TEGRA_SENSORS := iio
-TARGET_TEGRA_SENSOR_FEATURES := accelerometer gyroscope light
-TARGET_TEGRA_THERMAL ?= lineage
+#TARGET_TEGRA_THERMAL ?= lineage
TARGET_TEGRA_UBOOT := prebuilt
-TARGET_TEGRA_WIDEVINE ?= rel-shield-r
-TARGET_TEGRA_WIFI ?= bcm
+TARGET_TEGRA_POWER := perfmgr
TARGET_ATV_FORCE_1080_SCALING := false
ifneq ($(filter 4.9, $(TARGET_KERNEL_VERSION)),)
-TARGET_TEGRA_MEMTRACK ?= rel-shield-r
+TARGET_TEGRA_BT ?= bcm
+TARGET_TEGRA_CAMERA ?= rel-shield-r
+TARGET_TEGRA_CEC := aosp
+TARGET_TEGRA_CPL := none
+TARGET_TEGRA_SENSORS := iio
+TARGET_TEGRA_SENSOR_FEATURES := accelerometer gyroscope light
+TARGET_TEGRA_WIDEVINE ?= rel-shield-r
+TARGET_TEGRA_WIFI ?= bcm
+else
+TARGET_TEGRA_FIRMWARE_BRANCH ?= linux-firmware
+TARGET_AUDIO_HAL := baylibre
+TARGET_TV_HDMI_CEC_HAL :=
+PRODUCT_COPY_FILES += \
+ device/nintendo/nx/initfiles/ack.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ack.rc \
+ device/nintendo/nx/initfiles/init.recovery.ack.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.ack.rc
endif
include device/nvidia/t210-common/t210.mk
@@ -48,7 +54,7 @@ else
PRODUCT_CHARACTERISTICS := tablet
endif
-PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true
+PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false
$(call inherit-product, frameworks/native/build/tablet-7in-xhdpi-2048-dalvik-heap.mk)
@@ -78,10 +84,21 @@ PRODUCT_PACKAGES += \
init.sensors.nx.rc \
init.vali.rc
+ifneq ($(filter 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
ifneq ($(TARGET_TEGRA_CPL),none)
PRODUCT_PACKAGES += \
power.nx.rc
endif
+endif
+
+ifeq ($(TARGET_POWER_HAL),perfmgr-lineage)
+ifeq ($(TARGET_GRAPHICS),mesa)
+PRODUCT_PACKAGES += \
+ powerhint.nouveau.json
+PRODUCT_PROPERTY_OVERRIDES += \
+ vendor.powerhal.config=powerhint.nouveau.json
+endif
+endif
# Permissions
PRODUCT_COPY_FILES += \
@@ -97,16 +114,19 @@ PRODUCT_COPY_FILES += \
endif
# Audio
-PRODUCT_PACKAGES += \
- audio_effects.xml \
- audio_policy_configuration.xml \
- nvaudio_conf.xml
+ifeq ($(TARGET_AUDIO_HAL),baylibre)
+PRODUCT_COPY_FILES += \
+ device/nvidia/tegra-common/nvaudio/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml
+endif
# Bluetooth
+ifeq ($(TARGET_TEGRA_BT),bcm)
$(call soong_config_set,brcm_libbt,bdroid_buildcfg_include_dir,device/nintendo/nx/comms)
$(call soong_config_set,brcm_libbt,custom_bt_config,//device/nintendo/nx:vnd_nx.txt)
+endif
# CEC
+ifneq ($(filter 4.9, $(TARGET_KERNEL_VERSION)),)
PRODUCT_COPY_FILES := $(filter-out frameworks/native/data/etc/android.hardware.hdmi.cec.xml%android.hardware.hdmi.cec.xml,$(PRODUCT_COPY_FILES))
PRODUCT_COPY_FILES += \
@@ -115,6 +135,7 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
nx_cec.rc \
cec_disable.xml
+endif
# Device Settings
# TEMP
@@ -141,10 +162,12 @@ endif
PRODUCT_PACKAGES += \
excluded-input-devices.xml
+ifneq ($(filter 4.9, $(TARGET_KERNEL_VERSION)),)
# Joycons
PRODUCT_PACKAGES += \
android.hardware.nintendo.joycond-service \
jc_setup
+endif
# Kernel Modules
ifneq ($(filter 4.9, $(TARGET_KERNEL_VERSION)),)
@@ -170,21 +193,9 @@ PRODUCT_COPY_FILES += \
device/nintendo/nx/initfiles/lkm.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/lkm.rc
endif
-# Media config
-PRODUCT_PACKAGES += \
- media_codecs.xml \
- media_codecs_performance.xml \
- media_profiles_V1_0.xml \
- enctune.conf
-
# Partitions
$(call inherit-product, $(SRC_TARGET_DIR)/product/non_ab_device.mk)
-# Power
-PRODUCT_COPY_FILES += \
- system/core/libprocessgroup/profiles/cgroups_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \
- system/core/libprocessgroup/profiles/task_profiles_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
-
# PHS
ifneq ($(TARGET_TEGRA_PHS),)
PRODUCT_PACKAGES += \
@@ -195,16 +206,25 @@ endif
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += persist.vendor.recovery_update=true
# Shipping API
+ifneq ($(filter 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
+PRODUCT_COPY_FILES += \
+ system/core/libprocessgroup/profiles/cgroups_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \
+ system/core/libprocessgroup/profiles/task_profiles_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
+
$(call inherit-product, $(SRC_TARGET_DIR)/product/product_launched_with_l.mk)
+else
+PRODUCT_SHIPPING_API_LEVEL := 36
+endif
# Thermal
ifneq ($(TARGET_TEGRA_THERMAL),)
-ifeq ($(filter 3.10 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
-TARGET_TEGRA_THERMAL_SUFFIX ?= .ack
+ifneq ($(filter 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
+PRODUCT_COPY_FILES += \
+ device/nintendo/nx/thermal/thermalhal.nx.xml:$(TARGET_COPY_OUT_VENDOR)/etc/thermalhal.nx.xml
+else
+PRODUCT_COPY_FILES += \
+ device/nintendo/nx/thermal/thermalhal.nx.ack.xml:$(TARGET_COPY_OUT_VENDOR)/etc/thermalhal.nx.xml
endif
-
-PRODUCT_PACKAGES += \
- thermalhal.nx$(TARGET_TEGRA_THERMAL_SUFFIX).xml
endif
# WiFi
diff --git a/initfiles/ack.rc b/initfiles/ack.rc
new file mode 100644
index 0000000..dc9f6a6
--- /dev/null
+++ b/initfiles/ack.rc
@@ -0,0 +1,14 @@
+on init
+ stop watchdogd
+
+on early-init
+ write /sys/kernel/debug/bpmp/debug/clk/emc/min_rate 2133000000
+
+on early-fs
+ wait /dev/dri/card0 10
+
+# Override and disable watchdog
+service watchdogd /system/bin/true
+ override
+ disabled
+ user root
diff --git a/initfiles/init.nx.rc b/initfiles/init.nx.rc
index 954ffad..23356c2 100644
--- a/initfiles/init.nx.rc
+++ b/initfiles/init.nx.rc
@@ -19,9 +19,9 @@ import /vendor/etc/init/hw/init.sensors.nx.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.sku}.rc
on init
- setprop ro.surface_flinger.primary_display_orientation ORIENTATION_270
+ #setprop ro.surface_flinger.primary_display_orientation ORIENTATION_270
setprop ro.boot.secureos none
- setprop vendor.powerhal.config powerhint.${ro.boot.hardware.sku}.json
+ #setprop vendor.powerhal.config powerhint.${ro.boot.hardware.sku}.json
on fs
mount_all /vendor/etc/fstab.nx
diff --git a/initfiles/init.recovery.ack.rc b/initfiles/init.recovery.ack.rc
new file mode 100644
index 0000000..8a15937
--- /dev/null
+++ b/initfiles/init.recovery.ack.rc
@@ -0,0 +1,3 @@
+on early-init
+ mount debugfs debugfs /sys/kernel/debug mode=0755
+ write /sys/kernel/debug/bpmp/debug/clk/emc/min_rate 2133000000
diff --git a/initfiles/init.recovery.nx.rc b/initfiles/init.recovery.nx.rc
index 7ad3277..60bc896 100644
--- a/initfiles/init.recovery.nx.rc
+++ b/initfiles/init.recovery.nx.rc
@@ -13,6 +13,8 @@
# limitations under the License.
import init.recovery.usb.rc
+import init.recovery.ack.rc
on init
+ setprop ro.minui.pixel_format "BGRA_8888"
setprop ro.minui.default_rotation "ROTATION_LEFT"
diff --git a/lineage.mk b/lineage.mk
index 092d44d..81fa595 100644
--- a/lineage.mk
+++ b/lineage.mk
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-TARGET_TEGRA_POWER ?= lineage
-
# Boot Animation
TARGET_SCREEN_HEIGHT := 1920
TARGET_SCREEN_WIDTH := 1080
diff --git a/media/Android.bp b/media/Android.bp
deleted file mode 100644
index cf57b98..0000000
--- a/media/Android.bp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2024 The LineageOS Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-prebuilt_etc {
- name: "audio_effects.xml",
- src: "audio_effects.xml",
- vendor: true,
-}
-
-prebuilt_etc {
- name: "audio_policy_configuration.xml",
- src: "audio_policy_configuration.xml",
- vendor: true,
-}
-
-prebuilt_etc {
- name: "nvaudio_conf.xml",
- src: "nvaudio_conf.xml",
- vendor: true,
-}
-
-prebuilt_etc {
- name: "media_codecs.xml",
- src: "media_codecs.xml",
- device_specific: true, // odm
-}
-
-prebuilt_etc {
- name: "media_codecs_performance.xml",
- src: "media_codecs_performance.xml",
- device_specific: true, // odm
-}
-
-prebuilt_etc {
- name: "media_profiles_V1_0.xml",
- src: "media_profiles_V1_0.xml",
- vendor: true,
-}
-
-prebuilt_etc {
- name: "enctune.conf",
- src: "enctune.conf",
- vendor: true,
-}
diff --git a/media/audio_effects.xml b/media/audio_effects.xml
deleted file mode 100644
index 38183af..0000000
--- a/media/audio_effects.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/media/audio_policy_configuration.xml b/media/audio_policy_configuration.xml
deleted file mode 100644
index 8a5c0fe..0000000
--- a/media/audio_policy_configuration.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - Speaker
-
- Speaker
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/media/enctune.conf b/media/enctune.conf
deleted file mode 100644
index 94e09e4..0000000
--- a/media/enctune.conf
+++ /dev/null
@@ -1,45 +0,0 @@
-H264:
-Settings_1080P
-IMinQP 5
-IMaxQP 30
-PMinQP 10
-PMaxQP 51
-VBR 1
-QualityLevel low
-level 41
-packettype 0
-FrameSkip 0
-IntraOnlyMode 0
-UseConstrainedBP 0
-SliceLevelEncode 0
-END
-
-Settings_720P
-IMinQP 5
-IMaxQP 30
-PMinQP 10
-PMaxQP 51
-VBR 1
-level 32
-QualityLevel low
-packettype 0
-FrameSkip 0
-IntraOnlyMode 0
-UseConstrainedBP 0
-SliceLevelEncode 0
-END
-
-Settings_Default
-IMinQP 5
-IMaxQP 30
-PMinQP 10
-PMaxQP 51
-VBR 1
-QualityLevel low
-packettype 0
-FrameSkip 0
-IntraOnlyMode 0
-UseConstrainedBP 0
-SliceLevelEncode 0
-END
-
diff --git a/media/media_codecs.xml b/media/media_codecs.xml
deleted file mode 100644
index 7aaf12c..0000000
--- a/media/media_codecs.xml
+++ /dev/null
@@ -1,268 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/media/media_codecs_performance.xml b/media/media_codecs_performance.xml
deleted file mode 100644
index 59449a5..0000000
--- a/media/media_codecs_performance.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/media/media_profiles_V1_0.xml b/media/media_profiles_V1_0.xml
deleted file mode 100644
index 5cac160..0000000
--- a/media/media_profiles_V1_0.xml
+++ /dev/null
@@ -1,342 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/media/nvaudio_conf.xml b/media/nvaudio_conf.xml
deleted file mode 100644
index 53172b2..0000000
--- a/media/nvaudio_conf.xml
+++ /dev/null
@@ -1,239 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modules-ack.mk b/modules-ack.mk
index 61740af..7c11af5 100644
--- a/modules-ack.mk
+++ b/modules-ack.mk
@@ -36,10 +36,6 @@ BOARD_VENDOR_KERNEL_MODULES_LOAD += \
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
brcmfmac-wcc
-# Realtek ethernet
-BOARD_VENDOR_KERNEL_MODULES_LOAD += \
- r8169
-
# Tegra cec
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
tegra_cec
@@ -64,18 +60,14 @@ BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd-soc-tegra210-dmic \
snd-soc-tegra210-mvc \
snd-soc-tegra210-ope \
- snd-soc-tegra-audio-graph-card
+ snd-soc-tegra-audio-graph-card \
+ snd-soc-rt5640
# Nvidia Controllers
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
hid-nvidia-shield \
hid-nvidia-shield-oot
-# JoyCons
-BOARD_VENDOR_KERNEL_MODULES_LOAD += \
- joycon-serdev \
- hid-nintendo
-
# Copy to boot
BOOT_KERNEL_MODULES := \
system_heap.ko \
@@ -98,7 +90,6 @@ BOOT_KERNEL_MODULES := \
max77812-regulator.ko \
gpio-pca953x.ko \
tegra20-apb-dma.ko \
- tegra210-emc.ko \
phy-tegra-xusb.ko \
xhci-tegra.ko \
tegra-xudc.ko \
@@ -109,16 +100,17 @@ BOOT_KERNEL_MODULES := \
pwm-fan.ko \
pwm-regulator.ko \
tegra-soctherm.ko \
- lm90.ko \
cqhci.ko \
sdhci-tegra.ko \
- simplefb.ko \
host1x.ko \
drm_display_helper.ko \
drm_dp_aux_bus.ko \
tegra-drm.ko \
+ panel-jdi-58-1440-810.ko \
panel-nx-dsi.ko \
- pwm_bl.ko
+ pwm_bl.ko \
+ bm92txx.ko \
+ ftm4.ko
# Load in first stage boot
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \
@@ -129,6 +121,7 @@ BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \
spi-tegra114 \
spi-tegra210-quad \
bq24190_charger \
+ bq27xxx_battery_i2c \
rtc-tegra \
gpio-tegra \
max77620 \
@@ -138,7 +131,7 @@ BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \
max77812-regulator \
gpio-pca953x \
tegra20-apb-dma \
- tegra210-emc \
+ phy-tegra-xusb \
xhci-tegra \
tegra-xudc \
usb-conn-gpio \
@@ -147,8 +140,21 @@ BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \
pwm-fan \
pwm-regulator \
tegra-soctherm \
- lm90 \
sdhci-tegra \
- simplefb \
tegra-drm \
- pwm_bl
+ panel-nx-dsi \
+ pwm_bl \
+ bm92txx \
+ ftm4
+
+# Copy to recovery
+RECOVERY_KERNEL_MODULES := \
+ $(BOOT_KERNEL_MODULES) \
+ hid-nvidia-shield.ko \
+ hid-nvidia-shield-oot.ko
+
+# Load in recovery
+BOARD_RECOVERY_KERNEL_MODULES_LOAD := \
+ $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD) \
+ hid-nvidia-shield \
+ hid-nvidia-shield-oot
diff --git a/properties.mk b/properties.mk
index e94ef93..e7bde45 100644
--- a/properties.mk
+++ b/properties.mk
@@ -15,11 +15,13 @@ PRODUCT_SYSTEM_EXT_PROPERTIES += \
atv.setup.bt_remote_pairing=false
# Graphics
+ifneq ($(filter 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
PRODUCT_PROPERTY_OVERRIDES += \
debug.sf.latch_unsignaled=1 \
ro.surface_flinger.force_hwc_copy_for_virtual_displays=true \
ro.surface_flinger.max_frame_buffer_acquired_buffers=3 \
ro.surface_flinger.max_virtual_display_dimension=4096
+endif
# HWC
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/thermal/Android.bp b/thermal/Android.bp
deleted file mode 100644
index 536717d..0000000
--- a/thermal/Android.bp
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2024 The LineageOS Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-prebuilt_etc {
- name: "thermalhal.nx.xml",
- src: "thermalhal.nx.xml",
- vendor: true,
-}
-
-prebuilt_etc {
- name: "thermalhal.nx.ack.xml",
- src: "thermalhal.nx.ack.xml",
- vendor: true,
-}
diff --git a/thermal/thermalhal.nx.ack.xml b/thermal/thermalhal.nx.ack.xml
index 3e24a6c..cf32612 100644
--- a/thermal/thermalhal.nx.ack.xml
+++ b/thermal/thermalhal.nx.ack.xml
@@ -29,7 +29,7 @@ Attributes for cpu-usages
-
+