Files
android_device_nintendo_nx/initfiles/lkm_loader.sh
T
Aaron Kling bcbec1a902 Load foster lightbar module earlier
The light hal is currently not picking up the lightbar since the
module finishes loading after the hal starts.

Change-Id: I7fd77d1e93a1966d98879aa98ca565247d7479c0
2022-10-18 21:15:54 -05:00

316 lines
12 KiB
Bash

#!/vendor/bin/sh
# Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved.
#
# NVIDIA CORPORATION and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto. Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA CORPORATION is strictly prohibited.
scriptName=$0
# Read the Board/Platform name
hardwareName=$(getprop ro.hardware)
/vendor/bin/log -t "$scriptName" -p i "*** STARTING LKM LOADER FOR ***:" $hardwareName
do_insmod()
{
if [ -e "$1" ]; then
insmod $@ > /dev/kmsg 2>&1
fi
}
#====================================================================================
# Early load is for loading modules "on fs"
early_load()
{
# list of Vendor modules
# insmod /vendor/lib/modules/example1.ko
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM SoC-Vendor modules started"
do_insmod /vendor/lib/modules/pcie-tegra-dw.ko
do_insmod /vendor/lib/modules/pci-tegra.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM nvgpu started"
do_insmod /vendor/lib/modules/nvgpu.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM nvgpu completed"
do_insmod /vendor/lib/modules/libahci.ko
do_insmod /vendor/lib/modules/libahci_platform.ko
do_insmod /vendor/lib/modules/ahci_tegra.ko
# Realtek R8168 drivers
do_insmod /vendor/lib/modules/r8168.ko
# load COMMS drivers
do_insmod /vendor/lib/modules/bluedroid_pm.ko
if [ "`cat /proc/device-tree/brcmfmac_pcie_wlan/status`" = "okay" ]; then
/vendor/bin/log -t "wifiloader" -p i " Loading brcmfmac driver for wlan"
do_insmod /vendor/lib/modules/compat.ko
do_insmod /vendor/lib/modules/cy_cfg80211.ko
do_insmod /vendor/lib/modules/brcmutil.ko
do_insmod /vendor/lib/modules/brcmfmac.ko
elif [ "`cat /proc/device-tree/bcmdhd_pcie_wlan/status`" = "okay" ]; then
/vendor/bin/log -t "wifiloader" -p i " Loading bcmdhd_pcie driver for wlan"
do_insmod /vendor/lib/modules/cfg80211.ko
do_insmod /vendor/lib/modules/bcmdhd_pcie.ko
elif [ "`cat /proc/device-tree/bcmdhd_wlan/status`" = "okay" ]; then
/vendor/bin/log -t "wifiloader" -p i " Loading bcmdhd driver for wlan"
do_insmod /vendor/lib/modules/cfg80211.ko
do_insmod /vendor/lib/modules/bcmdhd.ko
fi
if [[ "$hardwareName" = +(porg*) ]]; then
do_insmod /vendor/lib/modules/btbcm.ko
do_insmod /vendor/lib/modules/btintel.ko
do_insmod /vendor/lib/modules/btrtl.ko
do_insmod /vendor/lib/modules/btusb.ko
fi
if [[ "$hardwareName" = "batuu" ]]; then
do_insmod /vendor/lib/modules/cfg80211.ko
do_insmod /vendor/lib/modules/rtl8821cu.ko
fi
# USB-to-serial driver
if [ "$hardwareName" != "sif" ]; then
do_insmod /vendor/lib/modules/usbserial.ko
do_insmod /vendor/lib/modules/ftdi_sio.ko
/vendor/bin/log -t "$scriptName" -p i "loading usb serial modules completed"
fi
/vendor/bin/log -t "$scriptName" -p i "loading vendor audio modules started"
# HDA audio driver
do_insmod /vendor/lib/modules/snd-hda-tegra.ko
# APE audio drivers
do_insmod /vendor/lib/modules/snd-soc-tegra-alt-utils.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-xbar.ko
do_insmod /vendor/lib/modules/tegra210-adma.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-admaif.ko
do_insmod /vendor/lib/modules/snd-soc-tegra-virt-alt-ivc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-adsp.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-sfc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-i2s.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-mixer.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-afc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-adx.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-amx.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-dmic.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-mvc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-ope.ko
/vendor/bin/log -t "$scriptName" -p i "loading vendor audio modules completed"
do_insmod /vendor/lib/modules/cpufreq_schedutil.ko
do_insmod /vendor/lib/modules/cpufreq_conservative.ko
do_insmod /vendor/lib/modules/cpufreq_powersave.ko
do_insmod /vendor/lib/modules/cpufreq_userspace.ko
do_insmod /vendor/lib/modules/cpufreq_ondemand.ko
# DEVFREQ governors
do_insmod /vendor/lib/modules/governor_userspace.ko
do_insmod /vendor/lib/modules/governor_pod_scaling.ko
do_insmod /vendor/lib/modules/governor_wmark_active.ko
# Security
do_insmod /vendor/lib/modules/echainiv.ko
do_insmod /vendor/lib/modules/af_alg.ko
do_insmod /vendor/lib/modules/algif_skcipher.ko
do_insmod /vendor/lib/modules/algif_hash.ko
do_insmod /vendor/lib/modules/cryptd.ko
do_insmod /vendor/lib/modules/crypto_simd.ko
do_insmod /vendor/lib/modules/ecc.ko
do_insmod /vendor/lib/modules/ecdsa_generic.ko
do_insmod /vendor/lib/modules/twofish_common.ko
do_insmod /vendor/lib/modules/twofish_generic.ko
do_insmod /vendor/lib/modules/ablk_helper.ko
do_insmod /vendor/lib/modules/ecdh_generic.ko
do_insmod /vendor/lib/modules/aes-ce-cipher.ko
do_insmod /vendor/lib/modules/aes-ce-ccm.ko
do_insmod /vendor/lib/modules/sha1-ce.ko
do_insmod /vendor/lib/modules/sha2-ce.ko
do_insmod /vendor/lib/modules/sha512-arm64.ko
do_insmod /vendor/lib/modules/aes-ce-blk.ko
do_insmod /vendor/lib/modules/gf128mul.ko
do_insmod /vendor/lib/modules/ghash-ce.ko
do_insmod /vendor/lib/modules/aes-neon-blk.ko
do_insmod /vendor/lib/modules/aes-neon-bs.ko
do_insmod /vendor/lib/modules/tegra-se.ko
do_insmod /vendor/lib/modules/tegra-se-elp.ko
do_insmod /vendor/lib/modules/tegra-se-nvhost.ko
do_insmod /vendor/lib/modules/tegra-cryptodev.ko
do_insmod /vendor/lib/modules/trusty.ko
do_insmod /vendor/lib/modules/trusty-irq.ko
do_insmod /vendor/lib/modules/virtio.ko
do_insmod /vendor/lib/modules/virtio_ring.ko
do_insmod /vendor/lib/modules/trusty-log.ko
do_insmod /vendor/lib/modules/trusty-ipc.ko
do_insmod /vendor/lib/modules/trusty-ote.ko
do_insmod /vendor/lib/modules/trusty-otf-iface.ko
do_insmod /vendor/lib/modules/trusty-mem.ko
do_insmod /vendor/lib/modules/trusty-virtio.ko
if [ "$hardwareName" = "foster_e_hdd" ]; then
do_insmod /vendor/lib/modules/tegra_cpc.ko
fi
# Peripheral
do_insmod /vendor/lib/modules/core.ko
do_insmod /vendor/lib/modules/input-cfboost.ko
do_insmod /vendor/lib/modules/pwm-tegra-pmc-blink.ko
do_insmod /vendor/lib/modules/pwm_fan.ko
do_insmod /vendor/lib/modules/therm_fan_est.ko
# Joycons (make sure to load after pwm_fan to avoid excessive fanspin!)
do_insmod /vendor/lib/modules/crc8.ko
do_insmod /vendor/lib/modules/joycon-serdev.ko
# TV tuner drivers
if [ "$hardwareName" != "sif" ]; then
do_insmod /vendor/lib/modules/videobuf-core.ko
do_insmod /vendor/lib/modules/videobuf-vmalloc.ko
do_insmod /vendor/lib/modules/videobuf-dvb.ko
do_insmod /vendor/lib/modules/tveeprom.ko
/vendor/bin/log -t "$scriptName" -p i "Early loading SoC-Vendor TV tuner modules completed"
fi
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM SoC-Vendor modules completed"
#--------------------------------------------------------------------------------
# list of ODM modules
# insmod /odm/lib/modules/example2.ko
# Upstream has these on odm, but we put all modules on vendor
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM Board-ODM modules started"
# Note: load backlight drivers at the earliest.
# backlight driver
if [[ "$hardwareName" != +(*foster*|*darcy*|sif) ]]; then
do_insmod /vendor/lib/modules/lp855x_bl.ko
fi
/vendor/bin/log -t "$scriptName" -p i "loading odm audio modules started"
do_insmod /vendor/lib/modules/snd-soc-rt5640.ko
do_insmod /vendor/lib/modules/snd-soc-rt5677-spi.ko
do_insmod /vendor/lib/modules/snd-soc-rt5677.ko
do_insmod /vendor/lib/modules/snd-soc-max98357a.ko
do_insmod /vendor/lib/modules/snd-soc-nau8825.ko
do_insmod /vendor/lib/modules/snd-soc-tegra-machine-driver.ko
/vendor/bin/log -t "$scriptName" -p i "loading odm audio modules completed"
if [[ "$hardwareName" != +(*foster*|*darcy*|sif) ]]; then
# Load Touchscreen module before touch service is invoked
do_insmod /vendor/lib/modules/rm31080a_ctrl.ko
do_insmod /vendor/lib/modules/rm31080a_ts.ko
# Load Sharp touch
do_insmod /vendor/lib/modules/lr388k7_ts.ko
fi
# Peripheral
do_insmod /vendor/lib/modules/ina230.ko
do_insmod /vendor/lib/modules/ina3221.ko
# Camera sensors
/vendor/bin/log -t "$scriptName" -p i "loading ODM Camera started"
if [[ "$hardwareName" != +(*foster*|*darcy*|sif) ]]; then
do_insmod /vendor/lib/modules/pca9570.ko
do_insmod /vendor/lib/modules/tc358840.ko
do_insmod /vendor/lib/modules/ov5693.ko
do_insmod /vendor/lib/modules/ov9281.ko
do_insmod /vendor/lib/modules/ov10823.ko
do_insmod /vendor/lib/modules/ov23850.ko
do_insmod /vendor/lib/modules/lc898212.ko
do_insmod /vendor/lib/modules/imx185.ko
do_insmod /vendor/lib/modules/imx219.ko
do_insmod /vendor/lib/modules/imx274.ko
fi
/vendor/bin/log -t "$scriptName" -p i "loading ODM Camera completed"
/vendor/bin/log -t "$scriptName" -p i "Loading vendor gpio timed keys module for early mode started"
do_insmod /vendor/lib/modules/gpio_timed_keys.ko
/vendor/bin/log -t "$scriptName" -p i "Loading vendor gpio timed keys module for early mode completed"
# TV tuner drivers
if [ "$hardwareName" != "sif" ]; then
do_insmod /vendor/lib/modules/lgdt3306a.ko
do_insmod /vendor/lib/modules/si2168.ko
do_insmod /vendor/lib/modules/si2157.ko
do_insmod /vendor/lib/modules/lgdt3305.ko
do_insmod /vendor/lib/modules/tda18272.ko
do_insmod /vendor/lib/modules/em28xx.ko
do_insmod /vendor/lib/modules/em28xx-dvb.ko
do_insmod /vendor/lib/modules/em28xx-rc.ko
do_insmod /vendor/lib/modules/cx25840.ko
do_insmod /vendor/lib/modules/cx2341x.ko
do_insmod /vendor/lib/modules/cx231xx.ko
do_insmod /vendor/lib/modules/cx231xx-dvb.ko
/vendor/bin/log -t "$scriptName" -p i "Early loading ODM TV tuner modules completed"
fi
if [[ $hardwareName = *"foster"* ]]; then
do_insmod /vendor/lib/modules/leds-cy8c.ko
fi
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM Board-ODM modules completed"
}
#===================================================================================
# Normal load is for loading on boot
normal_load()
{
# list of Vendor modules
# insmod /vendor/lib/modules/example1.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM SoC-Vendor modules started"
do_insmod /vendor/lib/modules/usb-storage.ko
#do_insmod /vendor/lib/modules/uas.ko
do_insmod /vendor/lib/modules/cdc-acm.ko
do_insmod /vendor/lib/modules/ozwpan.ko
do_insmod /vendor/lib/modules/hid-nvidia-blake.ko
do_insmod /vendor/lib/modules/hid-jarvis-remote.ko
do_insmod /vendor/lib/modules/hid-xinmo.ko
do_insmod /vendor/lib/modules/hid-betopff.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM SoC-Vendor modules completed"
#--------------------------------------------------------------------------------
# list of ODM modules
# insmod /odm/lib/modules/example2.ko
# Upstream has these on odm, but we put all modules on vendor
/vendor/bin/log -t "$scriptName" -p i "Loading LKM Board-ODM modules started"
# Load Sensor modules
/vendor/bin/log -t "$scriptName" -p i "loading ODM sensor started"
if [[ "$hardwareName" != +(*foster*|*darcy*|sif) ]]; then
do_insmod /vendor/lib/modules/nvs.ko
do_insmod /vendor/lib/modules/nvi-mpu.ko
do_insmod /vendor/lib/modules/nvi-ak89xx.ko
do_insmod /vendor/lib/modules/nvi-bmpX80.ko
do_insmod /vendor/lib/modules/nvs_a3g4250d.ko
do_insmod /vendor/lib/modules/nvs_ais328dq.ko
do_insmod /vendor/lib/modules/nvs_bh1730fvc.ko
do_insmod /vendor/lib/modules/nvs_cm3218.ko
do_insmod /vendor/lib/modules/nvs_dfsh.ko
fi
/vendor/bin/log -t "$scriptName" -p i "loading ODM sensor completed"
do_insmod /vendor/lib/modules/gps_wake.ko
/vendor/bin/log -t "$scriptName" -p i "loading comms modules completed"
/vendor/bin/log -t "$scriptName" -p i "Loading LKM Board-ODM modules completed"
}
#--------------------------------------------------------------------------------
# if [ "$1" = "recovery" ]; then
# Use BoardConfig.mk and init.recovery.lkm*.rc instead
if [ "$1" = "early" ]; then
early_load
else
normal_load
fi