Skip to content

Commit

Permalink
imx8qxp_var_som: Initial support for Android 13.0.0_1.2.0
Browse files Browse the repository at this point in the history
- Split the imx8qm and imx8qx specific files
- Add UUU scripts for imx8qxp platform
- Bug fixes for the imx8qm

Signed-off-by: Harshesh Valera <[email protected]>
  • Loading branch information
hj2006 committed Sep 27, 2023
1 parent 6452707 commit 752bc49
Show file tree
Hide file tree
Showing 12 changed files with 757 additions and 16 deletions.
6 changes: 3 additions & 3 deletions imx8q/som_mx8q/AndroidUboot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ build_imx_uboot()
MKIMAGE_PLATFORM=iMX8QX
SCFW_PLATFORM=8qx
ATF_PLATFORM=imx8qx
if [ `echo $2 | cut -d '-' -f2` = "c0" ] || [ "`echo $2 | cut -d '-' -f3`" = "c0" ]; then
REV=C0
else
if [ `echo $2 | cut -d '-' -f2` = "b0" ] || [ "`echo $2 | cut -d '-' -f3`" = "b0" ]; then
REV=B0
else
REV=C0
fi
if [ `echo $2 | rev | cut -d '-' -f1` = "uuu" ]; then
FLASH_TARGET=flash_spl
Expand Down
2 changes: 1 addition & 1 deletion imx8q/som_mx8q/BoardConfig.mk
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ else
endif
endif

BOARD_PREBUILT_DTBOIMAGE := $(OUT_DIR)/target/product/$(PRODUCT_DEVICE)/dtbo-imx8qm-var-som-lvds.img
#BOARD_PREBUILT_DTBOIMAGE := $(OUT_DIR)/target/product/$(PRODUCT_DEVICE)/dtbo-imx8qm-var-som-lvds.img

BOARD_USES_METADATA_PARTITION := true
BOARD_ROOT_EXTRA_FOLDERS += metadata
Expand Down
242 changes: 242 additions & 0 deletions imx8q/som_mx8q/init.imx8qm.init.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
import /vendor/etc/init/hw/init.${ro.hardware}.usb.rc
import /vendor/etc/init/hw/init.${ro.hardware}.${ro.boot.soc_type}.rc

on early-init
# mount the debugfs
mount debugfs none /sys/kernel/debug/ mode=0755

mount overlay overlay /vendor/etc ro lowerdir=/vendor/vendor_overlay_soc/${ro.boot.soc_type}/vendor/etc:/vendor/etc,override_creds=off
setprop vendor.all.car false

on early-init
start early_init_sh
# Due keymaster start very early so set prop here
# Also gatekeeper share same role for keymaster
setprop ro.hardware.keystore ${ro.boot.keystore}
setprop ro.hardware.gatekeeper ${ro.boot.keystore}
setprop vendor.storageproxyd ${ro.boot.keystore}
# Set the host name which used in console
export HOSTNAME imx8q-var-som

# Set the density to 160 dpi to match LCD.
setprop ro.sf.lcd_density 160

# Skip charger_not_need trigger for charger mode
on early-init && property:ro.boot.mode=charger
setprop vendor.skip.charger_not_need 1

on init && property:vendor.skip.charger_not_need=0
start watchdogd

# disable cursor blink for fbcon, if no splash screen support
write /sys/class/graphics/fbcon/cursor_blink 0

# deattch the fbcon as hdmi hotplug conflict with fbcon
write /sys/class/vtconsole/vtcon1/bind 0

chown system system /dev/cpuctl/top-app/cpu.uclamp.min
chmod 664 /dev/cpuctl/top-app/cpu.uclamp.min
chown system system /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive
chmod 664 /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive
chown system system /dev/cpuctl/foreground/cpu.uclamp.min
chmod 664 /dev/cpuctl/foreground/cpu.uclamp.min
chown system system /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive
chmod 664 /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive
chown system system /dev/cpuctl/rt/cpu.uclamp.min
chmod 664 /dev/cpuctl/rt/cpu.uclamp.min
chown system system /dev/cpuctl/rt/cpu.uclamp.latency_sensitive
chmod 664 /dev/cpuctl/rt/cpu.uclamp.latency_sensitive
chown system system /dev/cpuctl/background/cpu.uclamp.max
chmod 664 /dev/cpuctl/background/cpu.uclamp.max

# set default uclamp value for foreground/top-app/rt/background (only affects EAS)
write /dev/cpuctl/foreground/cpu.uclamp.min 20
write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/top-app/cpu.uclamp.min 50
write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/rt/cpu.uclamp.min 60
write /dev/cpuctl/rt/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/background/cpu.uclamp.max 50

on late-fs && property:vendor.storageproxyd=trusty && property:vendor.skip.charger_not_need=0
start storageproxyd
start vendor.oemlock-1-0

on late-fs && property:vendor.skip.charger_not_need=0
# Start keymaster/gatekeeper service
start vendor.gatekeeper-1-0-${ro.boot.keystore}
start vendor.keymint-${ro.boot.keystore}
setprop vendor.powerhal.init 1

# Wait for keymaster
exec_start wait_for_keymaster

mount_all /vendor/etc/fstab.nxp --late

on early-boot && property:vendor.skip.charger_not_need=0

setprop vendor.sys.hwc.disable 0
setprop vendor.2d.composition 0
setprop vendor.hwc.stretch.filter 1

# Default g2d [dpu|pxp|viv] lib to be used
setprop vendor.imx.default-g2d dpu

#viv sdk dir
setprop vendor.VIVANTE_SDK_DIR /vendor/etc/viv_sdk

# fsl omx graphic manager media framework property
setprop vendor.rw.VIDEO_RENDER_NAME video_render.surface
setprop vendor.media.fsl_codec.flag 7
setprop vendor.media.amphion_vpu.enable-tile 0

setprop camera.disable_zsl_mode 1

# Tweak the mmc device read ahead buffer size
write /sys/block/mmcblk0/queue/read_ahead_kb 2048
write /sys/block/mmcblk1/queue/read_ahead_kb 2048

# Prepare for wifi
setprop wifi.interface wlan0
setprop wifi.direct.interface p2p0
setprop wifi.concurrent.interface wlan0


# Prepare for bluetooth
chmod 665 /sys/class/rfkill/rfkill1/state
chown bluetooth bluetooth /sys/class/rfkill/rfkill1/state
write /sys/class/rfkill/rfkill1/state 0
chown bluetooth bluetooth /sys/class/mmc_host/${ro.boot.btmmchost}/\${ro.boot.btmmchost}:0001/device
symlink /sys/class/mmc_host/${ro.boot.btmmchost}/${ro.boot.btmmchost}:0001/device /dev/bt_mmc
chmod 665 /dev/bt_mmc
chown bluetooth bluetooth /dev/bt_mmc

# Prepare for bluetooth
chmod 665 /sys/class/rfkill/rfkill1/state
chown bluetooth bluetooth /sys/class/rfkill/rfkill1/state
write /sys/class/rfkill/rfkill1/state 0

# Disable surfaceflinger back pressure propagate
setprop debug.sf.disable_backpressure 1

# Set tracefs permission to 755
chmod 0755 /sys/kernel/debug/tracing

# Default backlight device
setprop vendor.hw.backlight.dev "backlight"
# Chmod/chown FSL specific sys entry
chown system system /sys/class/backlight/backlight/brightness
chmod 0660 /sys/class/backlight/backlight/brightness

# Set light sensor threshold lux value
setprop vendor.ro.lightsensor.threshold 20

on boot && property:vendor.skip.charger_not_need=0
start audioserver
start mediadrm
start media
start drm

service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
-O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 \
-g@android:wpa_wlan0
interface aidl android.hardware.wifi.supplicant.ISupplicant/default
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot

# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin
service watchdogd /system/bin/watchdogd 10 20
class core
seclabel u:r:watchdogd:s0

# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/dumpstate -d -p -z
class main
disabled
oneshot
keycodes 114 115 116

on fs && property:vendor.skip.charger_not_need=0
# mount ext4 partitions
mount_all /vendor/etc/fstab.nxp --early

# Adjust parameters for dm-verity device
write /sys/block/dm-0/queue/read_ahead_kb 4096

# Update dm-verity state and set partition.*.verified properties
verity_update_state

on post-fs && property:vendor.skip.charger_not_need=0
# Set netd memlock rlimit to 8MB
setrlimit 8 8388608 8388608

# Turn on swap
swapon_all /vendor/etc/fstab.nxp

# Swap in only 1 page at a time
write /proc/sys/vm/page-cluster 0

# Grant permission for fetching available_pages info of statsd
chown system system /proc/pagetypeinfo
chmod 0440 /proc/pagetypeinfo

setprop vendor.sensor.trigger "hrtimer_trigger"
chown system system /config/iio/triggers/hrtimer
chmod 0770 /config/iio/triggers/hrtimer

chown system system /sys/devices/iio_sysfs_trigger/add_trigger
chmod 0660 /sys/devices/iio_sysfs_trigger/add_trigger
chown system system /sys/devices/iio_sysfs_trigger/remove_trigger
chmod 0660 /sys/devices/iio_sysfs_trigger/remove_trigger

on post-fs-data && property:vendor.skip.charger_not_need=0
setprop vold.post_fs_data_done 1

# tmp dir for opencl Compiler
setprop vendor.TMPDIR /data/vendor/.opencl-cache
mkdir /data/vendor/.opencl-cache 0771 system camera

# dir for g2d opencl bin
mkdir /data/vendor/.opencl-g2d-bin 0771 mediacodec camera

on zygote-start && property:vendor.skip.charger_not_need=0
# Create the directories used by the Wireless subsystem
mkdir /data/vendor/wifi 0771 wifi wifi
mkdir /data/vendor/wifi/wifi_dumps 0770 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi

service early_init_sh /vendor/bin/init.insmod.sh /vendor/etc/early.init.cfg vendor.all.early_init.ready
class main
user root
group root system
disabled
oneshot

on post-fs-data && property:vendor.storageproxyd=trusty && property:vendor.skip.charger_not_need=0
# create temp node for secure storage proxy
mkdir /data/vendor/ss 0700 system system
restart storageproxyd

# set freq coefficient to 3 for get better performance in i.MX8Q series SoC
on property:sys.boot_completed=1
write /sys/devices/system/cpu/cpufreq/schedutil/freq_coefficient 3

service storageproxyd /vendor/bin/storageproxyd -p /data/vendor/ss -r /dev/mmcblk0rpmb -d /dev/trusty-ipc-dev0
group system

on property:ro.boot.vendor.sysrq=1 && property:vendor.skip.charger_not_need=0
write /proc/sys/kernel/sysrq 1

# setenv append_bootargs androidboot.usb.debugging=1
on property:ro.boot.usb.debugging=1
setprop persist.sys.usb.config adb

on property:sys.boot_completed=1
write /sys/bus/platform/drivers/sdhci-esdhc-imx/unbind "${ro.boot.wifisdio}"
chmod 665 /sys/class/rfkill/rfkill0/state
chown system system /sys/class/rfkill/rfkill0/state
write /sys/class/rfkill/rfkill0/state 1
write /sys/bus/platform/drivers/sdhci-esdhc-imx/bind "${ro.boot.wifisdio}"
Loading

0 comments on commit 752bc49

Please sign in to comment.