From 0184b772a92ce1cd5e0f51b80b1bca9d06c04c3d Mon Sep 17 00:00:00 2001 From: Woody Lin Date: Mon, 4 Sep 2023 09:58:01 +0800 Subject: [PATCH] init.debug.rc: enable etm/etm2dram when SJTAG is unlocked Enables the debug features required an unlocked SJTAG to the section `on property:ro.vendor.sjtag_ap_is_unlocked=true`, so they can be enabled when 1. PD is available on non-fused device on boot, or 2. PD is available after betterbug acquires it from the corp service. Bug: 299043634 Change-Id: I43f8364d7624af1d98b79afffeb1c6dc8bb6faf0 --- conf/init.check_ap_pd_auth.sh | 15 +++++++++++++++ conf/init.debug.rc | 11 +++++++++++ device.mk | 3 ++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 conf/init.check_ap_pd_auth.sh diff --git a/conf/init.check_ap_pd_auth.sh b/conf/init.check_ap_pd_auth.sh new file mode 100644 index 00000000..8175e754 --- /dev/null +++ b/conf/init.check_ap_pd_auth.sh @@ -0,0 +1,15 @@ +#!/vendor/bin/sh + +# This script sets up `ro.vendor.sjtag_ap_is_unlocked` for the non-fused +# device. For a fused device, this property should be set by +# betterbug->ss-restart-detector when PD is acquired. + +SJTAG_STATUS=0x$(cat /sys/devices/platform/sjtag_ap/interface/status) +SOFT_LOCK_BIT=4 +AUTH_PASS_BIT=8 + +# Unlocked or locked but auth passed. +if test "$((SJTAG_STATUS & (1 << SOFT_LOCK_BIT)))" = 0 -o \ + "$((SJTAG_STATUS & (1 << AUTH_PASS_BIT)))" != 0 ; then + setprop ro.vendor.sjtag_ap_is_unlocked true +fi diff --git a/conf/init.debug.rc b/conf/init.debug.rc index 019a514b..f86f224b 100644 --- a/conf/init.debug.rc +++ b/conf/init.debug.rc @@ -50,3 +50,14 @@ on property:persist.sys.device_provisioned=1 && property:ro.revision=PROTO1.1 start vendor.force_pkvm on property:persist.sys.device_provisioned=1 && property:ro.revision=EVT1.0 start vendor.force_pkvm + +service vendor.check_ap_pd_auth_sh /vendor/bin/init.check_ap_pd_auth.sh + class main + user root + group root system + oneshot + +# Enable etm/etm2dram when ramdump is enabled, and ap-sjtag is unlocked. +on property:ro.boot.ramdump=enabled && property:ro.vendor.sjtag_ap_is_unlocked=true + write /sys/devices/platform/exynos-etm/etm_on 1 + write /sys/devices/platform/etm2dram/arm 1 diff --git a/device.mk b/device.mk index e5920921..08e9ea1b 100644 --- a/device.mk +++ b/device.mk @@ -338,7 +338,8 @@ PRODUCT_COPY_FILES += \ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ - device/google/zuma/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc + device/google/zuma/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc \ + device/google/zuma/conf/init.check_ap_pd_auth.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.check_ap_pd_auth.sh PRODUCT_COPY_FILES += \ device/google/zuma/conf/init.freq.userdebug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.freq.userdebug.rc endif