Changes

no edit summary
Line 1: Line 1:  
{{Infobox MMIO
 
{{Infobox MMIO
 
| arm = Full
 
| arm = Full
| base = 0x0d8b0800
+
| base = 0x0d8b0000
| len = 0x800
+
| len = 0x4000
 
| bits = 32
 
| bits = 32
 
| ppcirq = ???
 
| ppcirq = ???
Line 8: Line 8:  
}}
 
}}
   −
Similarly to the [[Hardware/Memory_Controller|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).<br>  
+
The AHM (AHB_MEM) was a custom bridge responsible for connecting the AHB bus to the [[Hardware/Memory Controller|Memory Controller]] in the old Hollywood's chipset.<br>
This controller is named AHMN (AHB memory XN?) by the IOSU.
+
The Latte hardware contains an enhanced version of this bridge dubbed AHMN which, not only extends the previous AHM design, but also implements a custom XN (eXecute Never) solution to compensate for the lack of XN bit support on the Starbuck (ARM926EJ-S).<br>
 +
 
 +
Registers with the '''AHM_*''' prefix pertain to the old, base hardware block. Registers with the '''AHMN_*''' prefix pertain to the new, enhanced hardware block.  
    
== Register List ==
 
== Register List ==
{{reglist|XN Controller}}
+
{{reglist|AHMN Controller}}
{{rld|0x0d8b0800|32|AHMN_CFGMEM0|AHMN configuration for MEM0 protection}}
+
{{rld|0x0d8b0000|32|AHM_PROTDDR|AHM configuration for DDR protection}}
{{rld|0x0d8b0804|32|AHMN_CFGMEM1|AHMN configuration for MEM1 protection}}
+
{{rld|0x0d8b0004|32|AHM_PROTSPL|AHM configuration for SPL protection}}
{{rld|0x0d8b0808|32|AHMN_CFGMEM2|AHMN configuration for MEM2 protection}}
+
{{rld|0x0d8b0008|32|AHM_RDBI|AHM read buffer invalidate mask}}
{{rld|0x0d8b080c|32|AHMN_RDBIMSK|AHMN read buffer invalidate mask}}
+
{{rld|0x0d8b0020|32|AHM_INTMSK|AHM interrupt mask}}
 +
{{rld|0x0d8b0030|32|AHM_INTSTS|AHM interrupt status}}
 +
{{rld|0x0d8b0800|32|AHMN_PROTMEM0|AHMN configuration for MEM0 protection}}
 +
{{rld|0x0d8b0804|32|AHMN_PROTMEM1|AHMN configuration for MEM1 protection}}
 +
{{rld|0x0d8b0808|32|AHMN_PROTMEM2|AHMN configuration for MEM2 protection}}
 +
{{rld|0x0d8b080c|32|AHMN_RDBI|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 status}}
 
{{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 status}}
+
{{rld|0x0d8b0850|32|AHMN_TRFSTS|AHMN 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)}}