In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Hardware/AHM controller"

From WiiUBrew
Jump to navigation Jump to search
Line 18: Line 18:
 
{{rld|0x0d8b080c|32|AHMN_RDBIMSK|AHMN read buffer invalidate mask}}
 
{{rld|0x0d8b080c|32|AHMN_RDBIMSK|AHMN read buffer invalidate mask}}
 
{{rld|0x0d8b0820|32|AHMN_INTMSK|AHMN interrupt mask}}
 
{{rld|0x0d8b0820|32|AHMN_INTMSK|AHMN interrupt mask}}
{{rld|0x0d8b0824|32|AHMN_INTSTS|AHMN interrupt state}}
+
{{rld|0x0d8b0824|32|AHMN_INTSTS|AHMN interrupt status}}
 
{{rld|0x0d8b0840|32|AHMN_UNK|Unknown}}
 
{{rld|0x0d8b0840|32|AHMN_UNK|Unknown}}
 
{{rld|0x0d8b0844|32|AHMN_UNK|Unknown}}
 
{{rld|0x0d8b0844|32|AHMN_UNK|Unknown}}
{{rld|0x0d8b0850|32|AHMN_TRFSTS|AHMN read/write transfer state}}
+
{{rld|0x0d8b0850|32|AHMN_TRFSTS|AHMN read/write transfer status}}
 
{{rld|0x0d8b0854|32|AHMN_WORKAROUND|Unknown}}
 
{{rld|0x0d8b0854|32|AHMN_WORKAROUND|Unknown}}
 
{{rld|0x0d8b0900...0x0d8b0980|32|AHMN_MEM0|Each register represents one block of MEM0 memory (block size depends on the AHMN configuration for MEM0)}}
 
{{rld|0x0d8b0900...0x0d8b0980|32|AHMN_MEM0|Each register represents one block of MEM0 memory (block size depends on the AHMN configuration for MEM0)}}

Revision as of 21:19, 19 November 2019

AHM controller
Access
EspressoNone
StarbuckFull
Registers
Base0x0d8b0800
Length0x800
Access size32 bits
Byte orderBig Endian
IRQs
Espresso???
Latte???
This box: view  talk  edit

Similarly to the memory controller block connected to the AHB, the Latte hardware implements a customized XN (eXecute Never) controller to compensate for the lack of XN bit support on the Starbuck (ARM926EJ-S).
This controller is named AHMN (AHB memory XN?) by the IOSU.

Register List

XN Controller
Address Bits Name Description
0x0d8b0800 32 AHMN_CFGMEM0 AHMN configuration for MEM0 protection
0x0d8b0804 32 AHMN_CFGMEM1 AHMN configuration for MEM1 protection
0x0d8b0808 32 AHMN_CFGMEM2 AHMN configuration for MEM2 protection
0x0d8b080c 32 AHMN_RDBIMSK AHMN read buffer invalidate mask
0x0d8b0820 32 AHMN_INTMSK AHMN interrupt mask
0x0d8b0824 32 AHMN_INTSTS AHMN interrupt status
0x0d8b0840 32 AHMN_UNK Unknown
0x0d8b0844 32 AHMN_UNK Unknown
0x0d8b0850 32 AHMN_TRFSTS AHMN read/write transfer status
0x0d8b0854 32 AHMN_WORKAROUND Unknown
0x0d8b0900...0x0d8b0980 32 AHMN_MEM0 Each register represents one block of MEM0 memory (block size depends on the AHMN configuration for MEM0)
0x0d8b0a00...0x0d8b0c00 32 AHMN_MEM1 Each register represents one block of MEM1 memory (block size depends on the AHMN configuration for MEM1)
0x0d8b0c00...0x0d8b1000 32 AHMN_MEM2 Each register represents one block of MEM2 memory (block size depends on the AHMN configuration for MEM2)

Register Details