]> git.dujemihanovic.xyz Git - u-boot.git/commit
rockchip: rk3588: disable force_jtag by default
authorQuentin Schulz <quentin.schulz@theobroma-systems.com>
Mon, 11 Mar 2024 12:01:54 +0000 (13:01 +0100)
committerKever Yang <kever.yang@rock-chips.com>
Wed, 13 Mar 2024 10:14:19 +0000 (18:14 +0800)
commit5d710738bb1e0ff2bb93ce7baf4c9691ce919b53
tree5ec81077db5e263147d4d4ae3100e0162bf9db65
parent74029381ccba1a1bc85cd05a1d108f92ffdd3716
rockchip: rk3588: disable force_jtag by default

Rockchip SoCs can automatically switch between jtag and sdmmc based on
the following rules:
- all the SDMMC pins including SDMMC_DET set as SDMMC function in GRF,
- force_jtag bit in GRF is 1,
- SDMMC_DET is low (no card detected),

Note that the BootROM may mux all SDMMC pins in their SDMMC function or
not, depending on the boot medium that were tried.

Because SDMMC_DET pin is not guaranteed to be used as an SD card card
detect pin, it could be low at boot or even switch at runtime, which
would enable the jtag function and render the SD card unusable.

This is the case for RK3588 Jaguar for example which has an SD card
connector without an SD card card detect signal and has SDMMC_DET
connected to ground.

Because enabling JTAG at runtime could be a security issue and also to
make sure that we have a consistent behavior on all boards by default,
let's disable this force_jtag feature.

However, let's make it easy to reenable it for debugging purposes by
hiding it behind a Kconfig symbol.

Note that soc_con[0] is reserved. But considering that it's way more
user-friendly to access soc_con1 from the TRM with soc_con[1] than
soc_con[0], and that soc_con0 would actually be located at 4 bytes
before soc_con1, let's just make soc_con0 part of the soc_con array.

Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
arch/arm/include/asm/arch-rockchip/grf_rk3588.h
arch/arm/mach-rockchip/Kconfig
arch/arm/mach-rockchip/rk3588/rk3588.c