After a month of reverse-engineering, we’re excited to release documentation on the Valhall instruction set, available as a PDF. The findings are summarized in an XML architecture description for machine consumption. In tandem with the documentation, we’ve developed a Valhall assembler and disassembler as a reverse-engineering aid.
Valhall is the fourth Arm Mali architecture and the fifth Mali instruction set. It is implemented in the Arm Mali-G78, the most recently released Mali hardware, and Valhall will continue to be implemented in Mali products yet to come.
Excellent and important work.
It is excellent work. Ayssa continuing to deliver on Arm graphics support as always.
However, it’s also infuriating that this work is necessary. I really cannot understand the necessity for secrecy behind the programming interface for the Mali designs. If you want to know everything about an Arm CPU core design you just go to the website and download a PDF, but for some reason we have to have this pathetic veil of secrecy around the GPU? It makes absolutely no sense.
Jeeves,
Indeed. It’s the way corporations work, trade secrets are valuable and depriving others is valuable too. I use “valuable” in the purely greedy sense of the word, because we all know that it results in tons of redundant effort, overhead and resource inefficiency for society. Yet those things are valuable in the business sense as long as it’s someone else’s redundant effort, overhead, and inefficiency, it’s better for themselves.
Anyways, I’m thankful for what these guys doing, but you’re right it should be necessary and it is a shame they have to do it. There are legal concerns with using reverse engineered information, and another problem is that hardware designers have the upper hand since they can start incorporating cryptographic mechanisms to lock developers down further. Obviously all of this redundant effort could be time put to better use solving other problems and collectively we would all be better off. It is what it is 🙁
Because ARM, Nvidia, AMD etc do not sell a chip with an instruction set, they sell a hardware-accelerated OpenGL/OpenGLES/Direct3D implementation. This means they consider the hardware+driver combination a black-box that runs the high-level API calls. Think of those Java feature phones of the early to mid 2000s which run Javabyte code packaged in jar packages, and how they wouldn’t reveal the instruction set of the underlying CPU, as a close example. Which means ARM, Nvidia, AMD etc consider the ISA a proprietary secret so they’ll make it harder for everybody to reverse-engineer their precious drivers.