All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v12 00/36] Refactor TI K3 R5, DSP and M4 Remoteproc Drivers
@ 2025-05-13  5:44 Beleswar Padhi
  2025-05-13  5:44 ` [PATCH v12 01/36] remoteproc: k3-r5: Drop check performed in k3_r5_rproc_{mbox_callback/kick} Beleswar Padhi
                   ` (36 more replies)
  0 siblings, 37 replies; 44+ messages in thread
From: Beleswar Padhi @ 2025-05-13  5:44 UTC (permalink / raw)
  To: andersson, mathieu.poirier
  Cc: afd, hnagalla, u-kumar1, jm, jan.kiszka, christophe.jaillet,
	jkangas, eballetbo, b-padhi, linux-remoteproc, linux-kernel

This series refactors a lot of functions & callbacks from
ti_k3_dsp_remoteproc.c, ti_k3_r5_remoteproc.c and ti_k3_m4_remoteproc.c
drivers. This is a consolidated and final series as part of the
refactoring of K3 remoteproc drivers. Below is the breakdown:
1. PATCHES #1-#4 fixes important bugs in R5 and DSP drivers before refactoring
them into a common driver.
2. PATCHES #5-#11 does the pre-cleanup and aligns R5, DSP, M4 data structures.
3. PATCHES #12-#36 does the actual refactoring R5, DSP and M4 drivers into
ti_k3_common.c driver.

NOTE:
This series supersedes below series:
https://lore.kernel.org/all/20250219091042.263819-1-b-padhi@ti.com/
https://lore.kernel.org/all/20250425104135.830255-1-b-padhi@ti.com/
https://lore.kernel.org/all/20250108063727.1416324-1-b-padhi@ti.com/

Testing Done:
1. Tested boot of R5Fs, C66x DSPs, C71x DSPs across Jacinto J7* devices in
remoteproc mode and IPC-Only mode.
2. Tested boot of M4F core _only_ in _AM62xx SK_ board in Remoteproc mode and
IPC-Only mode.
3. Tested Core stop and detach operations from sysfs for R5Fs, C66x DSPs, C71x
DSPs
4. Tested device removal paths by executing 'modprobe -r ti_k3_dsp_remoteproc'
and 'modprobe -r ti_k3_r5_remoteproc'.
5. Tested usecases where firmware not available at device probe time, but
later in sysfs, able to load firmware into a remotecore and start it. [R5Fs]
6. Tested that each patch in this series generates no new warnings/errors.
7. Tested IPC on AM64x EVM Device. [Thanks to Judith].
8. Tested compilation of the remoteproc drivers as modules.

v12: Changelog:
Mathieu:
1. Use data pointer to set num_mems in PATCHES [08/36] and [11/36].
2. Declare const before variables in PATCH [11/35].
3. Compile ti_k3_common driver with ti_k3_r5_remoteproc driver in PATCH [13/36].
General:
1. New patch: [04/36]. Fix the state detection logic in M4 driver to prevent
resetting the rproc in detach routine.
2. Update comments in ti_k3_common.{h/c} files to call out it is refactored out
of R5, DSP and M4 drivers in PATCHES [12/36] and [13/36].
3. Carry R/B Tags from Andrew throughout series.

Link to v11:
https://lore.kernel.org/all/20250425104135.830255-1-b-padhi@ti.com/

v11: Changelog:
1. New patches: [v11 15/35] and [v11 18/35].
Broken down rproc_reset() and rproc_release() refactoring patches into more
atomic changes.
2. Carried T/B on all patches from Judith.
3. Carried A/B on [PATCH v11 13/35] by Andrew.

Link to v10:
https://lore.kernel.org/all/20250417182001.3903905-1-b-padhi@ti.com/

v10: Changelog:
1. Re-ordered Bug Fixes to the start of the series, before starting pre-cleanup
and finally the actual refactor. [Andrew]
2. Broken down commits into more atomic changes for ease of review. [Andrew].
3. Updated commit messages to have uniform flow throughout the series.
4. Carried R/B tags in applicable patches.
5. Further patch specific changelog is attached with patches.

Link to v9:
https://lore.kernel.org/all/20250317120622.1746415-1-b-padhi@ti.com/

v9: Changelog:
1. Added R5 cleanup & refactoring along with existing DSP, M4 refactoring into
this series. [Andrew]
2. Dropped Mailbox level IPC checks across R5, DSP, M4 drivers in IPC-only mode.
[Andrew] 

Link to v8:
https://lore.kernel.org/all/20250103101231.1508151-1-b-padhi@ti.com/

v8: Changelog:
1. Broken down refactoring into patches, each patch dealing with one function
for ease in review. [Andrew]

Links to older versions:
v7: https://lore.kernel.org/all/20240202175538.1705-1-hnagalla@ti.com/
v6: https://lore.kernel.org/all/20230913111644.29889-1-hnagalla@ti.com/
v5: https://lore.kernel.org/all/20230808044529.25925-1-hnagalla@ti.com/
v4: https://lore.kernel.org/all/20230801141117.2559-1-hnagalla@ti.com/
v3: https://lore.kernel.org/all/20230302171450.1598576-1-martyn.welch@collabora.com/
v2: https://lore.kernel.org/all/20230301111323.1532479-4-martyn.welch@collabora.com/
v1: https://lore.kernel.org/all/20220110040650.18186-1-hnagalla@ti.com/

Thanks,
Beleswar

Beleswar Padhi (34):
  remoteproc: k3-r5: Refactor sequential core power up/down operations
  remoteproc: k3-m4: Don't assert reset in detach routine
  remoteproc: k3-r5: Re-order internal memory initialization functions
  remoteproc: k3-r5: Re-order k3_r5_release_tsp() function
  remoteproc: k3-r5: Refactor Data Structures to Align with DSP and M4
  remoteproc: k3-r5: Use k3_r5_rproc_mem_data structure for memory info
  remoteproc: k3-{m4/dsp}: Add a void ptr member in rproc internal
    struct
  remoteproc: k3-m4: Add pointer to rproc struct within k3_m4_rproc
  remoteproc: k3-m4: Use k3_rproc_mem_data structure for memory info
  remoteproc: k3: Refactor shared data structures
  remoteproc: k3: Refactor mailbox rx_callback functions into common
    driver
  remoteproc: k3: Refactor .kick rproc ops into common driver
  remoteproc: k3-dsp: Correct Reset logic for devices without lresets
  remoteproc: k3-m4: Introduce central function to put rproc into reset
  remoteproc: k3: Refactor rproc_reset() implementation into common
    driver
  remoteproc: k3-dsp: Correct Reset deassert logic for devices w/o
    lresets
  remoteproc: k3-m4: Introduce central function to release rproc from
    reset
  remoteproc: k3: Refactor rproc_release() implementation into common
    driver
  remoteproc: k3-m4: Ping the mbox while acquiring the channel
  remoteproc: k3: Refactor rproc_request_mbox() implementations into
    common driver
  remoteproc: k3-dsp: Don't override rproc ops in IPC-only mode
  remoteproc: k3-dsp: Assert local reset during .prepare callback
  remoteproc: k3: Refactor .prepare rproc ops into common driver
  remoteproc: k3: Refactor .unprepare rproc ops into common driver
  remoteproc: k3: Refactor .start rproc ops into common driver
  remoteproc: k3: Refactor .stop rproc ops into common driver
  remoteproc: k3: Refactor .attach rproc ops into common driver
  remoteproc: k3: Refactor .detach rproc ops into common driver
  remoteproc: k3: Refactor .get_loaded_rsc_table ops into common driver
  remoteproc: k3: Refactor .da_to_va rproc ops into common driver
  remoteproc: k3: Refactor of_get_memories() functions into common
    driver
  remoteproc: k3: Refactor mem_release() functions into common driver
  remoteproc: k3: Refactor reserved_mem_init() functions into common
    driver
  remoteproc: k3: Refactor release_tsp() functions into common driver

Siddharth Vadapalli (2):
  remoteproc: k3-r5: Drop check performed in
    k3_r5_rproc_{mbox_callback/kick}
  remoteproc: k3-dsp: Drop check performed in
    k3_dsp_rproc_{mbox_callback/kick}

 drivers/remoteproc/Makefile               |    6 +-
 drivers/remoteproc/ti_k3_common.c         |  551 +++++++++++
 drivers/remoteproc/ti_k3_common.h         |  118 +++
 drivers/remoteproc/ti_k3_dsp_remoteproc.c |  616 +------------
 drivers/remoteproc/ti_k3_m4_remoteproc.c  |  583 +-----------
 drivers/remoteproc/ti_k3_r5_remoteproc.c  | 1018 +++++++--------------
 6 files changed, 1088 insertions(+), 1804 deletions(-)
 create mode 100644 drivers/remoteproc/ti_k3_common.c
 create mode 100644 drivers/remoteproc/ti_k3_common.h

-- 
2.34.1


^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2025-05-20 17:27 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-13  5:44 [PATCH v12 00/36] Refactor TI K3 R5, DSP and M4 Remoteproc Drivers Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 01/36] remoteproc: k3-r5: Drop check performed in k3_r5_rproc_{mbox_callback/kick} Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 02/36] remoteproc: k3-dsp: Drop check performed in k3_dsp_rproc_{mbox_callback/kick} Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 03/36] remoteproc: k3-r5: Refactor sequential core power up/down operations Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 04/36] remoteproc: k3-m4: Don't assert reset in detach routine Beleswar Padhi
2025-05-16 15:45   ` Mathieu Poirier
2025-05-17 13:23     ` Beleswar Prasad Padhi
2025-05-19 14:37       ` Mathieu Poirier
2025-05-20  5:06         ` Beleswar Prasad Padhi
2025-05-20 12:17           ` Hari Nagalla
2025-05-20  9:07       ` Martyn Welch
2025-05-13  5:44 ` [PATCH v12 05/36] remoteproc: k3-r5: Re-order internal memory initialization functions Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 06/36] remoteproc: k3-r5: Re-order k3_r5_release_tsp() function Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 07/36] remoteproc: k3-r5: Refactor Data Structures to Align with DSP and M4 Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 08/36] remoteproc: k3-r5: Use k3_r5_rproc_mem_data structure for memory info Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 09/36] remoteproc: k3-{m4/dsp}: Add a void ptr member in rproc internal struct Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 10/36] remoteproc: k3-m4: Add pointer to rproc struct within k3_m4_rproc Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 11/36] remoteproc: k3-m4: Use k3_rproc_mem_data structure for memory info Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 12/36] remoteproc: k3: Refactor shared data structures Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 13/36] remoteproc: k3: Refactor mailbox rx_callback functions into common driver Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 14/36] remoteproc: k3: Refactor .kick rproc ops " Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 15/36] remoteproc: k3-dsp: Correct Reset logic for devices without lresets Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 16/36] remoteproc: k3-m4: Introduce central function to put rproc into reset Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 17/36] remoteproc: k3: Refactor rproc_reset() implementation into common driver Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 18/36] remoteproc: k3-dsp: Correct Reset deassert logic for devices w/o lresets Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 19/36] remoteproc: k3-m4: Introduce central function to release rproc from reset Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 20/36] remoteproc: k3: Refactor rproc_release() implementation into common driver Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 21/36] remoteproc: k3-m4: Ping the mbox while acquiring the channel Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 22/36] remoteproc: k3: Refactor rproc_request_mbox() implementations into common driver Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 23/36] remoteproc: k3-dsp: Don't override rproc ops in IPC-only mode Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 24/36] remoteproc: k3-dsp: Assert local reset during .prepare callback Beleswar Padhi
2025-05-13  5:44 ` [PATCH v12 25/36] remoteproc: k3: Refactor .prepare rproc ops into common driver Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 26/36] remoteproc: k3: Refactor .unprepare " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 27/36] remoteproc: k3: Refactor .start " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 28/36] remoteproc: k3: Refactor .stop " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 29/36] remoteproc: k3: Refactor .attach " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 30/36] remoteproc: k3: Refactor .detach " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 31/36] remoteproc: k3: Refactor .get_loaded_rsc_table " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 32/36] remoteproc: k3: Refactor .da_to_va rproc " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 33/36] remoteproc: k3: Refactor of_get_memories() functions " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 34/36] remoteproc: k3: Refactor mem_release() " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 35/36] remoteproc: k3: Refactor reserved_mem_init() " Beleswar Padhi
2025-05-13  5:45 ` [PATCH v12 36/36] remoteproc: k3: Refactor release_tsp() " Beleswar Padhi
2025-05-20 17:27 ` [PATCH v12 00/36] Refactor TI K3 R5, DSP and M4 Remoteproc Drivers Mathieu Poirier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.