Tool/software:
Dear TI Team,
We are encountering a critical issue during the initialization of the ICSSG Ethernet interfaces (icssgx-eth
) on our AM6548 platform when running Linux kernel version 6.12.
Problem Description:
During the icssg-prueth
driver's initialization sequence, an attempt to update the Rx Flow ID fails. The system logs report the following error:ERROR: Failed to update Rx Flow ID -22
Upon debugging the icssg_send_fdb_msg
function, we observe that a command is successfully sent to the PRU firmware. This command is identified as ICSSG_FW_MGMT_FDB_CMD_TYPE_RX_FLOW (0x05)
with param=0x10
. However, the PRU firmware consistently responds with a status=16
. The driver interprets this non-success status as an error, leading to the -22
error code (which corresponds to EINVAL
, or "Invalid argument").
Relevant Log Snippet:
[ 12.585715] icssg-prueth icssg0-eth: DEBUG: icssg_send_fdb_msg - entering for slice 1
[ 12.593657] icssg-prueth icssg0-eth: DEBUG: cmd header=0x81, type=0x5, seqnum=1, param=0x10
[ 12.602142] icssg-prueth icssg0-eth: DEBUG: cmd_args[0]=0x0, cmd_args[1]=0x0, cmd_args[2]=0x0
[ 12.610774] icssg-prueth icssg0-eth: DEBUG: icssg_queue_pop returned addr=0x834c
[ 12.618270] icssg-prueth icssg0-eth: DEBUG: Writing command to shared memory at addr=0x8350
[ 12.626750] icssg-prueth icssg0-eth: DEBUG: Pushing command to queue (slice 1)
[ 12.634060] icssg-prueth icssg0-eth: DEBUG: Waiting for firmware response...
[ 12.641215] icssg-prueth icssg0-eth: DEBUG: Got response at addr=0x834c
[ 12.647924] icssg-prueth icssg0-eth: DEBUG: Writing command to shared memory at addr=0x8350
[ 12.656413] icssg-prueth icssg0-eth: DEBUG: Command structure before memcpy: header=0x81, type=0x5, seqnum=1, param=0x10
[ 12.667414] icssg-prueth icssg0-eth: DEBUG: Command args: [0]=0x0, [1]=0x0, [2]=0x0
[ 12.675210] icssg-prueth icssg0-eth: DEBUG: Verified written command: header=0x81, type=0x5, seqnum=1, param=0x10
[ 12.685560] icssg-prueth icssg0-eth: DEBUG: Verified args: [0]=0x0, [1]=0x0, [2]=0x0
[ 12.693362] icssg-prueth icssg0-eth: DEBUG: Response - header=0x81, type=0x5, seqnum=1, status=16
[ 12.702322] icssg-prueth icssg0-eth: DEBUG: Returning buffer to pool
[ 12.708827] icssg-prueth icssg0-eth: DEBUG: icssg_send_fdb_msg completed successfully
[ 12.716788] icssg-prueth icssg0-eth: DEBUG: FDB response - seqnum: 1 (expected 1), status: 16
[ 12.725440] icssg-prueth icssg0-eth: ERROR: Failed to update Rx Flow ID -22 (flow_id_base=150, port=2)
Suspected Cause & Troubleshooting:
We suspect this issue is due to a compatibility mismatch between the icssg-prueth
driver in Linux kernel 6.12 and the PRU firmware loaded on the AM6548. The specific command, ICSSG_FW_MGMT_FDB_CMD_TYPE_RX_FLOW (0x05)
, was introduced or modified in kernel commit 9facce84f406
(https://github.com/torvalds/linux/commit/9facce84f4062f782ebde18daa7006a23d40b607#diff-17a60a35256de0708f6ac4275c44d0364058230e350558b9f2e3633ddba37e20).
To resolve this, we attempted to update the ti-linux-firmware
package to the version referenced in commit cdd233788b9a
(https://github.com/TexasInstruments/ti-linux-firmware/commit/cdd233788b9a8a2fe9fbc82d17e34d5ae32fdc3b). However, this update did not resolve the issue, and the firmware continues to respond with status=16
.
Questions for TI:
- Could you please provide the definitive meaning of
status=16
when returned by the AM6548 ICSSG PRU firmware in response to theICSSG_FW_MGMT_FDB_CMD_TYPE_RX_FLOW (0x05)
command? Does this status code indicate an invalid command, an unsupported feature, a parameter error, or another specific condition? - Where can we find comprehensive and up-to-date documentation for the AM6548 ICSSG PRU firmware, specifically detailing its command interface (
MGMT_CMD_TYPE
), command parameters, and all possible response status codes? - What is the officially recommended PRU firmware version for the AM6548 when running Linux kernel 6.12.x (or the closest supported kernel version)? Is there a specific firmware release that fully supports the
ICSSG_FW_MGMT_FDB_CMD_TYPE_RX_FLOW
command as expected by recent kernel drivers? - Any suggestions to resolve this issue?
Thank you for your time and assistance.
Sincerely,
Andy, Siemens AG