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
This commit is contained in:
Woody Lin 2023-09-04 09:58:01 +08:00
parent 5030b8465a
commit 0184b772a9
3 changed files with 28 additions and 1 deletions

View file

@ -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

View file

@ -50,3 +50,14 @@ on property:persist.sys.device_provisioned=1 && property:ro.revision=PROTO1.1
start vendor.force_pkvm start vendor.force_pkvm
on property:persist.sys.device_provisioned=1 && property:ro.revision=EVT1.0 on property:persist.sys.device_provisioned=1 && property:ro.revision=EVT1.0
start vendor.force_pkvm 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

View file

@ -338,7 +338,8 @@ PRODUCT_COPY_FILES += \
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \ 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 += \ PRODUCT_COPY_FILES += \
device/google/zuma/conf/init.freq.userdebug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.freq.userdebug.rc device/google/zuma/conf/init.freq.userdebug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.freq.userdebug.rc
endif endif