Complexity of SoCs nowadays is orders of magnitude larger than ten years ago. Also a lot of IP blocks are taken in from third parties. And there’s a lot of specialised hardware blocks, which needs specialised software to make it available in the generic frameworks. Basically, more hardware means more software, more software means more time, but the time to market pressure is shrinking. Because of this, TI asks itself if everything has to go upstream (immediately). OTOH there is a relatively small window of time when it is important for TI to make design wins to prove the chip, and the software has the most opportunity (budget) to do things in that window only.
- Don’t wait for hardware to start developing software (cfr. AArch64).
- Software issues have to be taken into account while developing the hardware.
- Shared engineering: SoC support is not just developed by TI, e.g. AMP-IPC is generic and should be developed by neutral parties e.g. Linux foundation, Linaro.
Must continue upstreaming the software, but start it earlier (again before the HW is ready).
Complexity has led to ARM mess, but it’s getting cleaned up.
- Device tree
- clock framework
“It’s too hard for our customers to understand the hardware enough so they can make the software.”