[PATCH] arm64: configs: defconfig: Convert TISCI to modules

Nishanth Menon posted 1 patch 2 weeks, 1 day ago
arch/arm64/configs/defconfig | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
[PATCH] arm64: configs: defconfig: Convert TISCI to modules
Posted by Nishanth Menon 2 weeks, 1 day ago
Now that all relevant drivers have are ready, convert the
TISCI drivers to modules. This impacts all K3 platforms for
boot, recommendation (based on empirical evidence) is to use
deferred_probe_timeout=60 in kernel command line to allow for driver
probes to complete successfully based on the initrd used.

NET Savings: (Ubuntu Clang 23.0.0)
./scripts/bloat-o-meter vmlinux_previous vmlinux
add/remove: 4/380 grow/shrink: 0/5 up/down: 32/-143248 (-143216)

Signed-off-by: Nishanth Menon <nm@ti.com>
---

NOTE:
a) This patch is based off v7.3-rc1 and will create a merge conflict
  in linux-next (next-20260909), but the resolution is trivial (vs
  bd94bea7165be450903c6d64bbcb4862e36798f9).
b) Emperical experiments that Siddharth Vadapalli did,
  it seems like some driver probes might be taking much
  longer than the default deferred_probe_timeout of 10
  seconds that is used when CONFIG_MODULES=y. Testing log[1]
  a deferred_probe_timeout=60 seems to have worked fine.
c) Full bloatometer report is available in [1] as well.
d) related lore discussions[2]

[1] https://gist.github.com/nmenon/5f1587b373e6ca27170593010188d968
[2] https://lore.kernel.org/all/20260429-defconfig-v2-5-e4ed4186028b@oss.qualcomm.com/
    See headsup I gave on #linux-ti irc channel https://libera.catirclogs.org/linux-ti/2026-05-20
    https://lore.kernel.org/linux-arm-kernel/20240821110054.35u5ubgaogzjv6c4@rover/
    (original thread that triggered various changes)

Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
Cc: Vignesh Raghavendra <vigneshr@ti.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: alexander.sverdlin@siemens.com
Cc: jan.kiszka@siemens.com
Cc: ayush@beagleboard.org
Cc: robertcnelson@gmail.com
Cc: upstream@lists.phytec.de
Cc: francesco.dolcini@toradex.com
Cc: leonardo.costa@toradex.com
Cc: matthias.schiffer@ew.tq-group.com
Cc: stefano.r@variscite.com
Cc: eblanc@baylibre.com
Cc: msp@baylibre.com
Cc: thomas.richard@bootlin.com
Cc: miquel.raynal@bootlin.com
Cc: mwalle@kernel.org

 arch/arm64/configs/defconfig | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 6ec8d3a69c98..ed5aebf96080 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -267,6 +267,7 @@ CONFIG_RASPBERRYPI_FIRMWARE=y
 CONFIG_INTEL_STRATIX10_SERVICE=y
 CONFIG_INTEL_STRATIX10_RSU=m
 CONFIG_MTK_ADSP_IPC=m
+CONFIG_TI_SCI_PROTOCOL=m
 CONFIG_GOOGLE_FIRMWARE=y
 CONFIG_GOOGLE_CBMEM=m
 CONFIG_GOOGLE_COREBOOT_TABLE=m
@@ -1403,8 +1404,8 @@ CONFIG_DW_EDMA=m
 CONFIG_RCAR_DMAC=y
 CONFIG_RENESAS_USB_DMAC=m
 CONFIG_RZ_DMAC=y
-CONFIG_TI_K3_UDMA=y
-CONFIG_TI_K3_UDMA_GLUE_LAYER=y
+CONFIG_TI_K3_UDMA=m
+CONFIG_TI_K3_UDMA_GLUE_LAYER=m
 CONFIG_STM32_DMA3=m
 CONFIG_DMABUF_HEAPS=y
 CONFIG_DMABUF_HEAPS_SYSTEM=m
@@ -1456,7 +1457,7 @@ CONFIG_CLK_IMX8QXP=y
 CONFIG_CLK_IMX8ULP=y
 CONFIG_CLK_IMX93=y
 CONFIG_CLK_IMX95_BLK_CTL=y
-CONFIG_TI_SCI_CLK=y
+CONFIG_TI_SCI_CLK=m
 CONFIG_COMMON_CLK_MT8192_AUDSYS=y
 CONFIG_COMMON_CLK_MT8192_CAMSYS=y
 CONFIG_COMMON_CLK_MT8192_IMGSYS=y
@@ -1678,7 +1679,7 @@ CONFIG_QCOM_CPR=y
 CONFIG_QCOM_RPMHPD=y
 CONFIG_QCOM_RPMPD=y
 CONFIG_ROCKCHIP_PM_DOMAINS=y
-CONFIG_TI_SCI_PM_DOMAINS=y
+CONFIG_TI_SCI_PM_DOMAINS=m
 CONFIG_ARM_IMX_BUS_DEVFREQ=y
 CONFIG_ARM_IMX8M_DDRC_DEVFREQ=m
 CONFIG_ARM_MEDIATEK_CCI_DEVFREQ=m
@@ -1745,15 +1746,15 @@ CONFIG_SL28CPLD_INTC=y
 CONFIG_XILINX_INTC=y
 CONFIG_QCOM_PDC=y
 CONFIG_QCOM_MPM=y
-CONFIG_TI_SCI_INTR_IRQCHIP=y
-CONFIG_TI_SCI_INTA_IRQCHIP=y
+CONFIG_TI_SCI_INTR_IRQCHIP=m
+CONFIG_TI_SCI_INTA_IRQCHIP=m
 CONFIG_RESET_GPIO=m
 CONFIG_RESET_IMX7=y
 CONFIG_RESET_QCOM_AOSS=y
 CONFIG_RESET_QCOM_PDC=m
 CONFIG_RESET_RZG2L_USBPHY_CTRL=y
 CONFIG_RESET_RZV2H_USB2PHY=m
-CONFIG_RESET_TI_SCI=y
+CONFIG_RESET_TI_SCI=m
 CONFIG_PHY_CAN_TRANSCEIVER=m
 CONFIG_PHY_NXP_PTN3222=m
 CONFIG_PHY_SNPS_EUSB2=m
-- 
2.47.0
Re: [PATCH] arm64: configs: defconfig: Convert TISCI to modules
Posted by Thomas Richard 22 hours ago
Hi Nishanth,

On 9/10/26 3:44 PM, Nishanth Menon wrote:
> Now that all relevant drivers have are ready, convert the
> TISCI drivers to modules. This impacts all K3 platforms for
> boot, recommendation (based on empirical evidence) is to use
> deferred_probe_timeout=60 in kernel command line to allow for driver
> probes to complete successfully based on the initrd used.
> 
It's maybe a bit late, but I did test your patch (linux next-20260923)
on J7200. Indeed with default deferred_probe_timeout value I got some
deferred probe.

[   16.869217] platform 2830000.serial: deferred probe pending: (reason
unknown)
[   16.869241] platform 24c0000.timer: deferred probe pending: (reason
unknown)

Using deferred_probe_timeout=60 fixes sometimes deferred probe for
24c0000.timer, but never not for 2830000.serial.

[   68.582069] platform 2830000.serial: deferred probe pending: (reason
unknown)
[   68.582094] platform 24c0000.timer: deferred probe pending: (reason
unknown)
[   68.582128] ti_sci_pm_domains
44083000.system-controller:power-controller: sync_state() pending due to
24c0000.timer
[   68.582144] ti_sci_pm_domains
44083000.system-controller:power-controller: sync_state() pending due to
2830000.serial

But switching all TISCI drivers to 'y' fixed them. Looks like an
ordering issue.

I also did test suspend-to-ram, it works as expected. Fun fact, doing a
suspend-to-ram allows to probe these 2 missing devices during resume. I
guess it confirms a timing/ordering issue during the boot. At the end of
the resume, no device anymore in /sys/kernel/debug/devices_deferred.

[  124.053571] Restarting tasks: Starting
[  124.053861] Restarting tasks: Done
[  124.053907] random: crng reseeded on system resumption
[  124.053970] PM: suspend exit
[  124.058833] 2830000.serial: ttyS0 MMIO:0x0000000002830000 (irq = 700,
base_baud = 3000000) is a 8250

Best Regards,
Thomas
Re: [PATCH] arm64: configs: defconfig: Convert TISCI to modules
Posted by Nishanth Menon 3 days ago
Hi Nishanth Menon,

On Thu, 10 Sep 2026 08:44:09 -0500, Nishanth Menon wrote:
> Now that all relevant drivers have are ready, convert the
> TISCI drivers to modules. This impacts all K3 platforms for
> boot, recommendation (based on empirical evidence) is to use
> deferred_probe_timeout=60 in kernel command line to allow for driver
> probes to complete successfully based on the initrd used.
> 
> NET Savings: (Ubuntu Clang 23.0.0)
> ./scripts/bloat-o-meter vmlinux_previous vmlinux
> add/remove: 4/380 grow/shrink: 0/5 up/down: 32/-143248 (-143216)
> 
> [...]

I have applied the following to branch ti-k3-config-next on [1].
Thank you!

[1/1] arm64: configs: defconfig: Convert TISCI to modules
      commit: e557da9b756dba66f9b1ae8bb27add2b7719baf4

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
https://ti.com/opensource