| DRAM Block EMIF Module Description | Module Overview: This describes all the registers in the External Memory Interface (EMIF) Module. The Memory Controller is a BVCI peripheral. It contains the SRAM controller and SDRAM controller. Only one of the two controller can be active at the same time, because they are sharing address and data pins on the bulldog chip. |
| EMIF Module Register Summary | Register Name | Base Address | POR |
| EMIF_MEM_CTRL_ID | 0xFFFA0000 | 0x0000FB06 |
| EMIF_RD_CFG_CS0 - EMIF_RD_CFG_CS3 |
0xFFFA0020,
0xFFFA0024,
0xFFFA0028,
0xFFFA002C
|
0x00000000 |
| EMIF_WR_CFG_CS0 - EMIF_WR_CFG_CS3 |
0xFFFA0040,
0xFFFA0044,
0xFFFA0048,
0xFFFA004C
|
0x00000000 |
| EMIF_SELECT_CS0 - EMIF_SELECT_CS3 |
0xFFFA0060,
0xFFFA0064,
0xFFFA0068,
0xFFFA006C
|
0x00000000 |
| EMIF_INT_ROM_DISABLE | 0xFFFA6040 | 0x00000000 |
| EMIF_SDRAM_CONFIG | 0xFFFA6044 | 0x02F00038 |
| EMIF_SDRAM_MODE | 0xFFFA6048 | 0x00000031 |
| EMIF_MEM_CTRL_ID Register: | Mode: Normal | Address: 0xFFFA0000 | POR: 0x0000FB06 | |
| Register Overview: The Identification register (ID) provides a simple way to determine if the memory controller is provided in the ARC sub-system. The ID register identifies the ARC memory controller and its revision. | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | AREV | |||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | ANID | AID | ||||||||||||||
| Bit(s) | Mne | Access | Name | Field Description |
| 31:24 | RSV | RO | Reserved | These bits are reserved and should be set to zero. |
| 23:16 | AREV | RO | Revision | The revision number of the ARC memory controller. |
| 15:14 | RSV | RO | Reserved | These bits are reserved, they must be tied to 1. |
| 13:8 | ANID | RO | NEGATE_ID | 1's complement of the ID field. |
| 7:6 | RSV | RO | RSV | Constantly tied to 0. |
| 5:0 | AID | RO | CONFIG_ID | Configuration number. This number is set to 0x06 and indicates that the peripheral is the memory controller. |
| EMIF_RD_CFG_CS0 - EMIF_RD_CFG_CS3 Registers: | Mode: Normal |
Addresses: 0xFFFA0020, 0xFFFA0024, 0xFFFA0028, 0xFFFA002C |
POR: 0x00000000 | |
| Register Overview: There are 4 instances of this Read Configuration CSx. Each read configuration register configures the number of clock cycles for each phase of the external memory read for each of the memory device which are tied to Chip Select 0-3. | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | ARSTP | ARACS | ||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | ARHT | ARIT | ||||||||||||||
| Bit(s) | Mne | Access | Name | Field Description |
| 31:29 | RSV | R/W | Reserved | Reserved, always write this field to a zero. |
| 28:24 | ARSTP | R/W | Rsetup_Time | Number of clocks in the setup stage for read. |
| 23:21 | RSV | R/W | Reserved | Reserved, always write this field to a zero. |
| 20:16 | ARACS | R/W | Raccess_Time | Number of clocks in the access stage for read. |
| 15:13 | RSV | R/W | Reserved | Reserved, always write this field to a zero. |
| 12:8 | ARHT | R/W | Rhold_Time | Number of clocks in the hold stage for read. |
| 7:5 | RSV | R/W | Reserved | Reserved always write this field to a zero. |
| 4:0 | ARIT | R/W | Ridle_Time | Number of clocks in the Hi-Z stage (between back-t-back read). |
| EMIF_WR_CFG_CS0 - EMIF_WR_CFG_CS3 Registers: | Mode: Normal |
Addresses: 0xFFFA0040, 0xFFFA0044, 0xFFFA0048, 0xFFFA004C |
POR: 0x00000000 | |
| Register Overview: There are 4 instances of this Write Configuration CSx. Each write configuration register configures the number of clock cycles for each phase of the external memory read for each of the memory device which are tied to Chip Select 0-3. | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | AWSTP | AWACS | ||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | AWHT | ARIT | ||||||||||||||
| Bit(s) | Mne | Access | Name | Field Description |
| 31:29 | RSV | R/W | Reserved | This is reserved, and must be written to zero. |
| 28:24 | AWSTP | R/W | Wsetup_Time | Number of clocks in the setup stage for write. |
| 23:21 | RSV | R/W | Reserved | This is reserved, and must be written to zero. |
| 20:16 | AWACS | R/W | Waccess_Time | Number of clocks in the access stage for write. |
| 15:13 | RSV | R/W | Reserved | This is reserved, and must be written to zero. |
| 12:8 | AWHT | R/W | Whold_Time | Number of clocks in the hold stage for write. |
| 7:5 | RSV | R/W | Reserved | This is reserved, and must be written to zero. |
| 4:0 | ARIT | R/W | Widle_Time | Number of clocks in the Hi-Z stage (between back-t-back write). |
| EMIF_SELECT_CS0 - EMIF_SELECT_CS3 Registers: | Mode: Normal |
Addresses: 0xFFFA0060, 0xFFFA0064, 0xFFFA0068, 0xFFFA006C |
POR: 0x00000000 | |
| Register Overview: This register defines the decoding range and the interface width of each of the asynchronous memory components connected to CS[0:3] lines. | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | AMASK | |||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | ALOC | ADW | ||||||||||||||
| Bit(s) | Mne | Access | Name | Field Description |
| 31:24 | AMASK | R/W | Addr_Mask | This field represents the top 8 bits of the total available address space for the memory controller. If MASK is set to '0' (and by implication LOCATE (Lo_Cs field) is set to '0'), the whole address range is available for the Bulldog chip. |
| 23:16 | RSV | R/W | Reserved | This field is reserved for future use. |
| 15:8 | ALOC | R/W | Lo_Cs | Location of the chip select. The LOCATE (Lo_Cs) field represents the top 8 bits of the total available address space for the memory controller. Note: any bits that are '0' in the MASK field MUST be '0' in this field. |
| 7:1 | RSV | R/W | Reserved | This field is reserved for future use. |
| 0 | ADW | R/W | Data_Width |
1 bit field that describes the width of data bus.
Enumerations for teSelectCsDataWidth: |
| EMIF_INT_ROM_DISABLE Register: | Mode: Normal | Address: 0xFFFA6040 | POR: 0x00000000 | |
| Register Overview: This register disables the internal ROM access, if the internal ROM was selected at bootup. If the internal ROM was not selected, this register has no effect | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | ||||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | IRDIS | |||||||||||||||
| Bit(s) | Mne | Access | Name | Field Description |
| 31:1 | RSV | RO | Reserved | Reserved, always zero |
| 0 | IRDIS | R/W | Int_ROM_disable | Write '1' to disable the internal bootstrap ROM |
| EMIF_SDRAM_CONFIG Register: | Mode: Normal | Address: 0xFFFA6044 | POR: 0x02F00038 | |
| Register Overview: This register defines the characteristics of the SDRAM interface | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | IDONE | RFCNT | ||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | SRFSH | PWDN | TRCD | DB16 | QBANK | RWDTH | CWDTH | |||||||||
| EMIF_SDRAM_MODE Register: | Mode: Normal | Address: 0xFFFA6048 | POR: 0x00000031 | |
| Register Overview: This register defines the characteristics of the SDRAM chip behavior. More information can be found in the data sheet of any SDR (Single data rate) SDRAM devices | ||||
| Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Mne | ||||||||||||||||
| Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Mne | WBM | OPMDE | CASLT | BT | BL | |||||||||||