Up to 256 sets of address segment registers are available. The actual number of registers is set by a core parameter at configuration time, and can be read in the N_ADDR_SEGS register.
Address segments registers are located in consecutive registers starting at address 0x1000. There are four registers for each address segment. The registers for address segment <s> are located at the address 0x1000 + <s>*0x10 + (0x0, 0x4, 0x8, 0xC), where <s> goes from 0 up to (N_ADDR_SEGS-1). The highest possible address segment register address, for address segment 255, is 0x1FFC.
Registers for unimplemented address segments read as zero.
Each address segment has the following set of four registers:
Address | Name | RW | Default Value | Description |
---|---|---|---|---|
0x1000 + <s>*0x10 | SEG<s>_BASE0 | RO | From params | Address segment <s> base address LSBs |
0x1004 + <s>*0x10 | SEG<s>_BASE1 | RO | From params | Address segment <s> base address MSBs |
0x1008 + <s>*0x10 | SEG<s>_SIZE | RO | From params | Address segment <s> size |
0x100C + <s>*0x10 | SEG<s>_PERM | RO | From params | Address segment <s> permissions |