J784S4XEVM: Update ETH port configuration at runtime

Part Number: J784S4XEVM

Hello Team,
I'd like to reconfigure existing eth port configuration (speed/role) at runtime.

We have a very similar use case to the author of the given post:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1570064/am6442-freertos-ethernet-programmable-forced-speed-and-duplex-on-power-up

We would like to implement a static (forced) network configuration that can be configured with a specific role (master/slave) and speed (100/1000 Mbps).
Our system boots up with a default configuration, and then we'd like to reconfigure the Ethernet port to use the configuration stored in a JSON file. The user will be able to use the interface after this reconfiguration finishes.
At the PHY level we use RTL9010, which is not a TI core, however driver seems to be working fine.

We tried passing the extended configuration using Enet calls  ENET_PER_IOCTL_CLOSE_PORT_LINK/OPEN_PORT_LINK (with the new values). The low-level initialization worked fine - the media converter correctly detected the connection to the PHY - but SSH, ping, and other higher-level functions did not work.

I suspect that the SoC-side SerDes/SGMII for CPSW9G ports is configured only once at boot (EthFwBoard_init with ETHFW_BOARD_SERDES_CONFIG) and is never re-init'd on reopen, so the SoC<->PHY SGMII link fails to re-align: the line side links (media converter) but no frames cross -> SSH/ping is dead.

Does TI provide an API to support this type of runtime reconfiguration? If so, is there a code example we can refer to?