HW_AHBPROT
HW_AHB[1]
HW_AHB steht für Hardware Advanced High-performance Bus und ist Teil der Advanced Microcontroller Bus Architecture (AMBA) von ARM Limited (ARM).
Der AHB unterstützt:
- mehrere Bus-Master
- burst transfers
- split transactions
- pipelined operations
- single-cycle bus master handover
- single clock operation
- non-tristate implementation
- große Busbreiten (64/128 Bit)
HW_AHB-Zugriff
Wenn die HW_AHB-Protection (HW_AHBPROT) deaktiviert wird, wird voller Zugriff auf die gesamte Hardware der Wii gewährt. Dafür wird kein cIOS benötigt, der Homebrewkanal deaktiviert HW_AHBPROT und diese Deaktivierung bleibt bestehen, wenn eine Homebrew das IOS nicht neu lädt.
MEMPROT
Mit deaktivierter HW_AHBPROT ist es möglich, MEMPROT (Memory Protection) zu deaktivieren. Das IOS reserviert den oberen Teil von MEM2 für seine eigene Nutzung[2] - dadurch können temporäre Patches auf das IOS angewendet werden, inklusive Signatur-, NAND- und ES-Patches.
Geschichte
Auf der Suche nach einer Lösung für ein Problem innerhalb von BootMii, bei dem die Buttons in BootMii/IOS nicht funktionierten, stieß bushing von Team Twiizers auf das "Access Rights" Bit in der TMD einer WAD, die am Ende der Herstellung einer Wii verwendet wird.[3] Wird dieses Bit gesetzt, so wird der komplette Zugriff auf die gesamte Hardware direkt vom PPC aus gewährt. Bushing vermutete, dass dies das Testen der Hardware vereinfacht haben soll. Der Homebrewkanal hat ebenfalls dieses Bit ab v1.0.8 gesetzt und ermöglicht es so jeder Applikation, die über den HBC gestartet wird, HW_AHBPROT zu deaktivieren. Dies hat den Vorteil, dass kein gepatchtes IOS mehr benötigt wird, da jede Anwendung das aktuelle IOS selbst temporär patchen kann.
In früheren Versionen des Homebrewkanals führte die Deaktivierung von HW_AHBPROT zu Abstürzen, wenn die Internetverbindung noch nicht initialisiert war. Dieses Problem wurde später mit einem neuen Patch "ES_SET_AHBPROT" behoben - wird ein IOS (üblicherweise das IOS36 und IOS236) mit diesem Patch geladen, wird HW_AHBPROT auch für jedes weitere geladene IOS deaktiviert.
Einzelnachweise