3 ms·
> I'm reverse engineering the Apple M1 and haven't found any trustability issues yet ... except for assuming "EL3 seems to be missing" means "EL3 doesn't exist
by KirillPanov 5y ago
> I'm reverse engineering the Apple M1 and haven't found any trustability issues yet
... except for assuming "EL3 seems to be missing" means "EL3 doesn't exist" instead of "the bootrom dropped to EL2 before we got control".
Not saying I have any evidence to the contrary, nor is this in any way a criticism of your awesome work. Just saying that this will unfortunately remain forever unknowable unless Apple decides to volunteer information.
Personally, if I were Apple, instead of removing EL3 I would've left it in but unused, accessible only to code signed by Apple with the public key burned into silicon. As a way to mitigate currently-undiscovered silicon bugs.
- saagarjha 5y agoIncluding EL3 is not free, it requires silicon validation effort. Apple has no use for EL3, so it is gone. They have other ways to patch things anyways, though there are limitations. (FWIW, we also know there isn't an EL3 because we have the code the processor runs as it comes out of reset.)
- marcan_42 5y agoThe CPU ID registers say EL3 does not exist. Your argument is equivalent to "Apple might have backdoored the CPU". Well, yes. So might have every other CPU vendor. If EL3 were to exist, for starters, it would have no way to receive interrupts, as Apple uses both IRQ and FIQ for the OS (normally FIQ is used for EL3 on platforms with a secure monitor).
- KirillPanov 5y ago> The CPU ID registers say EL3 does not exist. Thank you for mentioning this. I retract my earlier (GP) comment. I didn't know that ARM chips self-declared their support for EL3 with register bits that could be read! But yes, they do: https://www.kernel.org/doc/html/latest/arm64/cpu-feature-registers.html https://www.kernel.org/doc/html/latest/arm64/cpu-feature-reg... These bits amount to Apple saying "there is no EL3" and constitute one of the few pieces of official documentation attributable to Apple. PS, if you're maintaining any kind of list of "why the M1 is more trustworthy than chip XYZ", the fact that there is a MSR-like bit declaring that the feature doesn't exist should definitely go on that list. Just to make it clear that EL3 not existing was something declared by the chip rather than assumed by the reverse engineers.