Page:
HW:Apple Instructions
Pages
"When will Asahi Linux be done?"
Apple Platform Security Crash Course
Apple Silicon Subsystems
Broken Software
Codenames
Devices
Differences with other platforms
Display Controllers
Distro:Boot process guide
Distro:Differences from Arch Linux ARM
FAQ
FW:ADT
Feature Support
Glossary
HW: Clocks
HW: SPRR and GXF
HW:AGX
HW:AIC
HW:ANE
HW:AOP
HW:APCIe
HW:ARM System Registers Dumps
HW:ARM System Registers
HW:ASC
HW:AVD
HW:Apple Instructions
HW:CPU debug registers
HW:Debug USB
HW:GPIO
HW:MacBook Pro keyboard backlight (FPWM0)
HW:Memory map
HW:SEP
HW:SMC
HW:SMP spin up
HW:USB PD
HW:WDT
Home
Installing Gentoo with LiveCD
Introduction to Apple Silicon
Kernel config notes for distros
Low level serial debug
M1 Series Feature Support
M1 vs. PC Boot
M2 Series Feature Support
M3 Series Feature Support
Open OS Ecosystem on Apple Silicon Macs
Partitioning cheatsheet
Project:References
RE:Kernelcache
Reference Asahi kernel config
SW:AGX driver notes
SW:Alternative Distros
SW:Boot
SW:DT bindings
SW:Getting started
SW:Hypervisor
SW:Keyboard Layouts
SW:MachO Boot Protocol
SW:NVRAM
SW:Speakers Test Cases
SW:Speakers
SW:Storage
SW:Ubuntu Asahi Gambas
SW:Ubuntu Asahi Godot
SW:Ubuntu Asahi Mesa
SW:Ubuntu Asahi Qemu
Software known to have issues with 16k page size
Tethered Boot Setup (For Developers)
Tethered boot setup on macOS
Trivia
U Boot
Undoing early speaker support hacks
Yaks in need of shaving
m1n1:Developer Guide
m1n1:User Guide
macOS Sonoma Boot Failures
perf on M1 systems
0
HW:Apple Instructions
TrungNguyen1909 edited this page 2022-11-04 19:18:29 -04:00
Apple proprietary instructions seem to be in the 0x0020xxxx range.
00200000 - 002007ff MUL53, see https://gist.github.com/TrungNguyen1909/5b323edda9a21550a1621af506e8ce5f
00200800 | rD << 5 | rS wkdmc, compress memory page
- rS is the source page address (page-aligned, bottom bits ignored)
- rD is the destination compressed data address (64b aligned, bottom bits ignored)
- Status/info gets returned in rS.
00200c00 | rD << 5 | rS wkdmd, uncompress memory page
- rS is the source compressed data address (64b aligned, bottom bits ignored)
- rD is the destination compressed data address (page-aligned, bottom bits ignored)
- Status/info gets returned in rS.
00201000 - 002012df AMX, see https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f
If AMX is not enabled (default), these fault with ESR_EL2 = 0xfe000003
..222~23f "hole" of unknown instructions
002012e0 - 0020143f Faults with unknown instruction
*00201400 gexit, Exit guarded mode. Used by macOS; must need some enable (faults by default).
*00201420 | imm5 genter, Enter guarded mode. Used by macOS; must need some enable (faults by default).
imm5 stored in ESR_GLx[5:0]
00201440 | rA at_as1elx, Translate address. Returns in the same register:
[63:56] MAIR attributes for translation (not index!)
[??:12] Physical address
[11:00] Flags/status/etc. 0x80x = unmapped, x varies depending on PT level that faulted?
This seems to be the same as the PAR_EL1 system register, used as the output for the *official* ARM translate address instructions.
00201460 sdsb osh
00201461 sdsb nsh
00201462 sdsb ish - used by iBoot trampoline
00201463 sdsb sy
00201464 ~ Faults with unknown instruction
Feature Support:
Project related:
Platform documentation:
For users:
For developers:
- Yaks in need of shaving (HELP WANTED!)
- Tethered Boot Setup (For Developers)
- m1n1:User Guide Boot loader
- Hypervisor
- U-Boot
- Devicetree bindings
- Open OS ecosystem on Apple Silicon Macs
Wiki for the Asahi Linux project: https://asahilinux.org/