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: 298314432
Change-Id: Ie834b587c130d749a33a87801113df03d5b3d29a
This commit is contained in:
Woody Lin 2023-09-04 09:58:01 +08:00 committed by Treehugger Robot
parent ddcc5d1185
commit 89b9a50820
3 changed files with 25 additions and 3 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

@ -39,7 +39,13 @@ on property:ro.revision=PROTO1.1
on property:ro.revision=EVT1.0
setprop debug.hypervisor.metrics_tag "hwrev_a0"
# Enable etm/etm2dram when ramdump is enabled.
on property:ro.boot.ramdump=enabled
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

@ -330,7 +330,8 @@ PRODUCT_COPY_FILES += \
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
device/google/gs201/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc
device/google/gs201/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc \
device/google/gs201/conf/init.check_ap_pd_auth.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.check_ap_pd_auth.sh
endif
# Recovery files