Is there a reason why it's so hard to support newer M chips after supporting an older one? Like so much harder than supporting a new generation Intel or AMD chip doesn't seem too hard in comparison.
M1/M2 were pretty similar.
M3 had gigantic GPU changes.
M4 had some security stuff added, and M5 much more so. Not sure how/if those can be disabled. Others can be explain why this matters better than I can.
They change the arch and add new features all the time. In M4 they added new kernel protections which now they need to somehow emulate.
1) Intel and AMD help to implement support in Linux before their chips even ship. Actually a sanitized version of the Intel graphics ISA bspec is actually available to the OSS community too.
Apple on the other hand provides no support. The one nice thing they did do is allow their bootloader to boot non-apple signed OSes. They do not do this on iPhones, iPads, Apple TVs, Watches, or homepods btw.
2) The GPU ISA changes drastically and often. Its not entirely uncommon for the entire instruction set to change entirely within one generation. Every change to the ISA would require an entire round of new reverse engineering (I suspect, ive never reversed).
Because Intel/AMD regularly contribute kernel changes to maintain support for their own hardware, whereas Apple keeps making undocumented changes that Asahi has to reverse engineer.