Adding TDA4VM SoC platform support #311
Replies: 2 comments 2 replies
-
|
I've started analyzing the TDA4VM (K3 architecture) boot flow and platform requirements for the Bao port. I have a few architectural questions before I begin implementation. Question 1: Heterogeneous Core Support ScopeThe TDA4VM has the following cores in the main domain:
Since U-Boot hands off to Bao on an A72 core (main domain), I'm planning to initially support both the A72 cores. As far as I have seen in other supported platforms, only one of the architectures run the hypervisor, the others not being managed by bao. Should I follow the same approach here as well, or is there an interest in R5F support? Question 2: TISCI Protocol Implementation StrategyTI K3 requires communication with the DMSC (Device Management and Security Control) subsystem via TISCI protocol for resource management. This requires a Secure Proxy driver and TISCI message handling. U-Boot has a complete TISCI implementation (
Please let me know if this approach seems reasonable, or if you'd prefer a different perspective. |
Beta Was this translation helpful? Give feedback.
-
|
Pull Request corresponding to this discussion -> #320 (putting it up here for reference) Initial implementation for the A72 cluster is implemented, and needs to be tested for boot and driver sanity checks. Any changes and design/implementation feedback requested in the review will be addressed as soon as possible. Following the boot checks, I had another question to ask. In the current config structure that is exposed to the user, we take in the number of interrupts and the interrupt IDs that needs to be mapped per guest (eventually per core). Now this works perfectly fine for SoCs, where the peripheral to GIC lines are already in place, and only the provided SPI IDs need to be registered. But in the case of TI's Jacinto series, in addition with the GIC configurations, we also need to configure interrupt paths. This would require the user to provide the peripheral ID as well, along with the SPI line. The interrupt line follows the following path to the processor: The first thing that comes to my mind would be to directly add a field in the config to get the peripheral IDs, and use them from the platform hook to configure the routes. But on second thought, does it make sense to pollute the main config struct itself, or do I expose another TI specific struct, maybe guarded by a macro, to get these? What do you have to say? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Creating this discussion thread to track progress and discussions/decisions taken during the TDA4VM platform support addition
Beta Was this translation helpful? Give feedback.
All reactions