Memory map extracted from ns430 VHDL
authorDan White <dan@whiteaudio.com>
Thu, 15 Dec 2011 23:56:58 +0000 (17:56 -0600)
committerDan White <dan@whiteaudio.com>
Thu, 15 Dec 2011 23:56:58 +0000 (17:56 -0600)
ns430-atoi.mmap [new file with mode: 0644]

diff --git a/ns430-atoi.mmap b/ns430-atoi.mmap
new file mode 100644 (file)
index 0000000..cb1e5bd
--- /dev/null
@@ -0,0 +1,305 @@
+;-------------------------------------------------------------------------\r
+; NS430 constants for AtoI processor version.\r
+;\r
+; This files contains the SFR definitions for the \r
+; MSP430 variant used in the AtoI processor\r
+; The hardware multiplier is the only perpherial compatabile\r
+; with the standard MSP 430.\r
+;\r
+; The bitfields are derived directly from the VHDL description.\r
+;-------------------------------------------------------------------------\r
+\r
+#PC_AFTER_RESET = 3000h\r
+\r
+memory map inferred from VHDL:\r
+0000 0000 000x xxxx xxxx *HWMult registers\r
+\r
+** CRC module\r
+0000 0000 000x xxx0 000x CRCDI\r
+0000 0000 0000 0000 0000 #CRCDI = 0000h\r
+0000 0000 0000 0000 0000 #CRCDI_L = 0000h\r
+0000 0000 0000 0000 0001 #CRCDI_H = 0001h\r
+0000 0000 000x xxx0 001x CRCDIRB\r
+0000 0000 0000 0000 0010 #CRCDIRB = 0002h\r
+0000 0000 0000 0000 0010 #CRCDIRB_L = 0002h\r
+0000 0000 0000 0000 0011 #CRCDIRB_H = 0002h\r
+0000 0000 000x xxx0 010x CRCINIRES\r
+0000 0000 0000 0000 0100 #CRCINIRES = 0004h\r
+0000 0000 0000 0000 0100 #CRCINIRES_L = 0004h\r
+0000 0000 0000 0000 0101 #CRCINIRES_L = 0005h\r
+0000 0000 000x xxx0 011x CRCRESR\r
+0000 0000 0000 0000 0110 #CRCRESR = 0006h\r
+0000 0000 0000 0000 0110 #CRCRESR_L = 0006h\r
+0000 0000 0000 0000 0111 #CRCRESR_L = 0007h\r
+\r
+** Mult module\r
+0000 0000 000x xxx1 000x MPY\r
+0000 0000 0001 0011 0000 #MPY = 0130h\r
+0000 0000 000x xxx1 001x MPS\r
+0000 0000 0001 0011 0010 #MPYS = 0132h\r
+0000 0000 000x xxx1 010x MAC\r
+0000 0000 0001 0011 0100 #MAC = 0134h\r
+0000 0000 000x xxx1 011x MACS\r
+0000 0000 0001 0011 0110 #MACS = 0136h\r
+0000 0000 000x xxx1 100x OP2\r
+0000 0000 0001 0011 1000 #OP2 = 0138h\r
+0000 0000 000x xxx1 101x RESLo\r
+0000 0000 0001 0011 1010 #RESLO = 013ah\r
+0000 0000 000x xxx1 110x RESHi\r
+0000 0000 0001 0011 1100 #RESHI = 013ch\r
+0000 0000 000x xxx1 111x SUMExt\r
+0000 0000 0001 0011 1110 #SUMEXT = 013eh\r
+\r
+0000 0000 001x xxxx xxxx na\r
+\r
+** AES module\r
+0000 0000 010x xxxx xxxx AES registers\r
+0000 0000 0100 0000 0000 AES_CR\r
+0000 0000 0100 0000 0000 #AES_CR = 0400h\r
+0000 0000 0100 0000 0010 AES_SR\r
+0000 0000 0100 0000 0010 #AES_SR = 0402h\r
+0000 0000 0100 0001 xxxx AES_STATE\r
+0000 0000 0100 0001 0000 #AES_STATE = 0410h\r
+                         #AES_STATE_SIZE = 0010h\r
+0000 0000 0111 000x xxxx AES_KEY\r
+0000 0000 0111 0000 0000 #AES_KEY = 0700h\r
+                         #AES_KEY_SIZE = 0020h\r
+0000 0000 0111 001x xxxx AES_EXPKEY (start)\r
+0000 0000 0111 0010 0000 #AES_EXPKEY = 0720h\r
+                         #AES_EXPKEY_SIZE = 00e0h\r
+0000 0000 011x xxxx xxxx AES_EXPKEY (range)\r
+\r
+** PIO module\r
+0000 0001 000x xxxx xxxx block start\r
+0000 0001 101x xxXX XXXx PIO\r
+0000 0001 101x xx00 000x PDSR_A\r
+0000 0001 1010 0000 0000 #PADSR = 1a00h\r
+0000 0001 101x xx00 001x PDSR_B\r
+0000 0001 1010 0000 0010 #PADSR = 1a02h\r
+0000 0001 101x xx00 010x OEN_A\r
+0000 0001 1010 0000 0100 #PAOEN = 1a04h\r
+0000 0001 101x xx00 011x OEN_B\r
+0000 0001 1010 0000 0110 #PBOEN = 1a06h\r
+0000 0001 101x xx00 100x ODR_A\r
+0000 0001 1010 0000 1000 #PAOUT = 1a08h\r
+0000 0001 101x xx00 101x ODR_B\r
+0000 0001 1010 0000 1000 #PBOUT = 1a0ah\r
+0000 0001 101x xx00 110x PER_A\r
+0000 0001 1010 0000 1100 #PAPER = 1a0ch\r
+0000 0001 101x xx00 111x PER_B\r
+0000 0001 1010 0000 1110 #PBPER = 1a0eh\r
+0000 0001 101x xx01 000x IER_A\r
+0000 0001 1010 0001 0000 #PAIER = 1a10h\r
+0000 0001 101x xx01 001x IER_B\r
+0000 0001 1010 0001 0010 #PBIER = 1a12h\r
+0000 0001 101x xx01 010x IMR_A\r
+0000 0001 1010 0001 0100 #PAIMR = 1a14h\r
+0000 0001 101x xx01 011x IMR_B\r
+0000 0001 1010 0001 0110 #PBIMR = 1a16h\r
+0000 0001 101x xx01 100x PPER_A\r
+0000 0001 1010 0001 1000 #PAPUE = 1a18h\r
+0000 0001 101x xx01 101x PPER_B\r
+0000 0001 1010 0001 1010 #PBPUE = 1a1ah\r
+0000 0001 101x xx01 110x TestDrv_B\r
+0000 0001 1010 0001 1100 #PBTSD = 1a1ch\r
+0000 0001 101x xx01 111x PBPSR\r
+0000 0001 1010 0001 1110 #PBPSR = 1a1eh\r
+0000 0001 101x xx10 000x PAOCEN\r
+0000 0001 1010 0010 0000 #PAOCEN = 1a20h\r
+0000 0001 101x xx10 001x PBOCEN\r
+0000 0001 1010 0010 0010 #PAOCEN = 1a22h\r
+\r
+** Timer module\r
+*** Timer0\r
+0000 0001 110x xxx0 XXXx *TIMER0\r
+0000 0001 110x xxx0 000x TMR0_CR\r
+0000 0001 1100 0000 0000 #TMR0_CR = 1c00h\r
+0000 0001 110x xxx0 001x TMR0_SR\r
+0000 0001 1100 0000 0010 #TMR0_SR = 1c02h\r
+0000 0001 110x xxx0 010x TMR0_CNT\r
+0000 0001 1100 0000 0100 #TMR0_CNT = 1c04h\r
+0000 0001 110x xxx0 011x TMR0_RA\r
+0000 0001 1100 0000 0110 #TMR0_RA = 1c06h\r
+0000 0001 110x xxx0 100x TMR0_RB\r
+0000 0001 1100 0000 1000 #TMR0_RB = 1c08h\r
+0000 0001 110x xxx0 101x TMR0_RC\r
+0000 0001 1100 0000 1010 #TMR0_RC = 1c0ah\r
+0000 0001 110x xxx0 110x TMR0_C1\r
+0000 0001 1100 0000 1100 #TMR0_CAP0 = 1c0ch\r
+0000 0001 110x xxx0 111x TMR0_C2\r
+0000 0001 1100 0000 1110 #TMR0_CAP1 = 1c0eh\r
+\r
+*** Timer1\r
+0000 0001 110x xxx1 XXXx *TIMER1\r
+0000 0001 110x xxx1 000x TMR1_CR\r
+0000 0001 1100 0001 0000 #TMR1_CR = 1c10h\r
+0000 0001 110x xxx1 001x TMR1_SR\r
+0000 0001 1100 0001 0010 #TMR1_SR = 1c12h\r
+0000 0001 110x xxx1 010x TMR1_CNT\r
+0000 0001 1100 0001 0100 #TMR1_CNT = 1c14h\r
+0000 0001 110x xxx1 011x TMR1_RA\r
+0000 0001 1100 0001 0110 #TMR1_RA = 1c16h\r
+0000 0001 110x xxx1 100x TMR1_RB\r
+0000 0001 1100 0001 1000 #TMR1_RB = 1c18h\r
+0000 0001 110x xxx1 101x TMR1_RC\r
+0000 0001 1100 0001 1010 #TMR1_RC = 1c1ah\r
+0000 0001 110x xxx1 110x TMR1_C1\r
+0000 0001 1100 0001 1100 #TMR1_CAP0 = 1c1ch\r
+0000 0001 110x xxx1 111x TMR1_C2\r
+0000 0001 1100 0001 1110 #TMR1_CAP1 = 1c1eh\r
+\r
+*** Timer2\r
+0000 0001 111x xxx0 XXXx *TIMER2\r
+0000 0001 111x xxx0 000x TMR2_CR\r
+0000 0001 1110 0000 0000 #TMR2_CR = 1e00h\r
+0000 0001 111x xxx0 001x TMR2_SR\r
+0000 0001 1110 0000 0010 #TMR2_SR = 1e02h\r
+0000 0001 111x xxx0 010x TMR2_CNT\r
+0000 0001 1110 0000 0100 #TMR2_CNT = 1e04h\r
+0000 0001 111x xxx0 011x TMR2_RA\r
+0000 0001 1110 0000 0110 #TMR2_RA = 1e06h\r
+0000 0001 111x xxx0 100x TMR2_RB\r
+0000 0001 1110 0000 1000 #TMR2_RB = 1e08h\r
+0000 0001 111x xxx0 101x TMR2_RC\r
+0000 0001 1110 0000 1010 #TMR2_RC = 1e0ah\r
+0000 0001 111x xxx0 110x TMR2_C1\r
+0000 0001 1110 0000 1100 #TMR2_CAP0 = 1e0ch\r
+0000 0001 111x xxx0 111x TMR2_C2\r
+0000 0001 1110 0000 1110 #TMR2_CAP1 = 1e0eh\r
+\r
+*** Timer3\r
+0000 0001 111x xxx1 XXXx *TIMER3\r
+0000 0001 111x xxx1 000x TMR3_CR\r
+0000 0001 1110 0001 0000 #TMR3_CR = 1e10h\r
+0000 0001 111x xxx1 001x TMR3_SR\r
+0000 0001 1110 0001 0010 #TMR3_SR = 1e12h\r
+0000 0001 111x xxx1 010x TMR3_CNT\r
+0000 0001 1110 0001 0100 #TMR3_CNT = 1e14h\r
+0000 0001 111x xxx1 011x TMR3_RA\r
+0000 0001 1110 0001 0110 #TMR3_RA = 1e16h\r
+0000 0001 111x xxx1 100x TMR3_RB\r
+0000 0001 1110 0001 1000 #TMR3_RB = 1e18h\r
+0000 0001 111x xxx1 101x TMR3_RC\r
+0000 0001 1110 0001 1010 #TMR3_RC = 1e1ah\r
+0000 0001 111x xxx1 110x TMR3_C1\r
+0000 0001 1110 0001 1100 #TMR3_CAP0 = 1e1ch\r
+0000 0001 111x xxx1 111x TMR3_C2\r
+0000 0001 1110 0001 1110 #TMR3_CAP1 = 1e1eh\r
+\r
+** SPI module\r
+*** SPI0\r
+0000 0010 000x xxxx XXXx *SPI\r
+0000 0010 000x xxxx 000x SPI0_CR\r
+0000 0010 0000 0000 0000 #SPI0_CR = 2000h\r
+0000 0010 000x xxxx 001x SPI0_RDR\r
+0000 0010 0000 0000 0010 #SPI0_RDR = 2002h\r
+0000 0010 000x xxxx 010x SPI0_TDR\r
+0000 0010 0000 0000 0100 #SPI0_TDR = 2004h\r
+0000 0010 000x xxxx 011x SPI0_SR\r
+0000 0010 0000 0000 0110 #SPI0_SR = 2006h\r
+\r
+*** SPI1\r
+0000 0010 000x xxxx 100x SPI1_CR\r
+0000 0010 0000 0000 1000 #SPI1_CR = 2008h\r
+0000 0010 000x xxxx 101x SPI1_RDR\r
+0000 0010 0000 0000 1010 #SPI1_RDR = 200ah\r
+0000 0010 000x xxxx 110x SPI1_TDR\r
+0000 0010 0000 0000 1100 #SPI1_TDR = 200ch\r
+0000 0010 000x xxxx 111x SPI1_SR\r
+0000 0010 0000 0000 1110 #SPI1_SR = 200eh\r
+\r
+** UART module\r
+*** UART0\r
+0000 0010 001x xxx0 XXXx *UART0\r
+0000 0010 001x xxx0 000x UART0_CR\r
+0000 0010 0010 0000 0000 #UART0_CR = 2200h\r
+0000 0010 001x xxx0 001x UART0_BCR\r
+0000 0010 0010 0000 0010 #UART0_BCR = 2202h\r
+0000 0010 001x xxx0 010x UART0_SR\r
+0000 0010 0010 0000 0100 #UART0_SR = 2204h\r
+0000 0010 001x xxx0 011x UART0_RDR\r
+0000 0010 0010 0000 0110 #UART0_RDR = 2206h\r
+0000 0010 001x xxx0 100x UART0_TDR\r
+0000 0010 0010 0000 1000 #UART0_TDR = 2208h\r
+\r
+*** UART1\r
+0000 0010 001x xxx1 XXXx *UART1\r
+0000 0010 001x xxx1 000x UART1_CR\r
+0000 0010 0010 0001 0000 #UART1_CR = 2210h\r
+0000 0010 001x xxx1 001x UART1_BCR\r
+0000 0010 0010 0001 0010 #UART1_BCR = 2212h\r
+0000 0010 001x xxx1 010x UART1_SR\r
+0000 0010 0010 0001 0100 #UART1_SR = 2214h\r
+0000 0010 001x xxx1 011x UART1_RDR\r
+0000 0010 0010 0001 0110 #UART1_RDR = 2216h\r
+0000 0010 001x xxx1 100x UART1_TDR\r
+0000 0010 0010 0001 1000 #UART1_TDR = 2218h\r
+\r
+** Interface module\r
+0000 0010 010x xxxx XXXx *Interf\r
+0000 0010 010x xxxx 000x ADC_CR\r
+0000 0010 0100 0000 0000 #ADC_CR = 2400h\r
+0000 0010 010x xxxx 001x GPIN0\r
+0000 0010 0100 0000 0010 #GPIN0 = 2402h\r
+0000 0010 010x xxxx 010x GPIN1\r
+0000 0010 0100 0000 0100 #GPIN1 = 2404h\r
+0000 0010 010x xxxx 011x GPOUT0\r
+0000 0010 0100 0000 0110 #GPOUT0 = 2406h\r
+0000 0010 010x xxxx 100x GPOUT1\r
+0000 0010 0100 0000 1000 #GPOUT1 = 2408h\r
+0000 0010 010x xxxx 101x GPOUT2\r
+0000 0010 0100 0000 1010 #GPOUT2 = 240ah\r
+0000 0010 010x xxxx 110x GPOUT3\r
+0000 0010 0100 0000 1100 #GPOUT3 = 240ch\r
+\r
+0000 0010 011x xxxx xxxx na\r
+0000 0010 100x xxxx xxxx na\r
+\r
+** I2C module\r
+*** I2C master\r
+0000 0010 101x xxxX XXXx I2C\r
+0000 0010 101x xxx0 000x I2CM_CR\r
+0000 0010 1010 0000 0000 #I2CM_CR = 2a00h\r
+0000 0010 101x xxx0 001x I2CM_TCFG\r
+0000 0010 1010 0000 0010 #I2CM_TCFG = 2a02h\r
+0000 0010 101x xxx0 010x I2CM_SR\r
+0000 0010 1010 0000 0100 #I2CM_SR = 2a04h\r
+0000 0010 101x xxx0 011x I2CM_WCR\r
+0000 0010 1010 0000 0110 #I2CM_WCR = 2a06h\r
+0000 0010 101x xxx0 100x I2CM_TDR_ST\r
+0000 0010 1010 0000 1000 #I2CM_TDR_ST = 2a08h\r
+0000 0010 101x xxx0 101x I2CM_TDR\r
+0000 0010 1010 0000 1010 #I2CM_TDR = 2a0ah\r
+0000 0010 101x xxx0 110x I2CM_TDR_SP\r
+0000 0010 1010 0000 1100 #I2CM_TDR_SP = 2a0ch\r
+0000 0010 101x xxx0 111x I2CM_RDR\r
+0000 0010 1010 0000 1110 #I2CM_RDR = 2a0eh\r
+\r
+*** I2C slave\r
+0000 0010 101x xxx1 000x I2CS_CR\r
+0000 0010 1010 0001 0000 #I2CS_CR = 2a10h\r
+0000 0010 101x xxx1 001x I2CS_SR\r
+0000 0010 1010 0001 0010 #I2CS_SR = 2a12h\r
+0000 0010 101x xxx1 010x I2CS_TDR\r
+0000 0010 1010 0001 0100 #I2CS_TDR = 2a14h\r
+0000 0010 101x xxx1 011x I2CS_RDR\r
+0000 0010 1010 0001 0110 #I2CS_RDR = 2a16h\r
+\r
+0000 0010 110x xxxx xxxx na\r
+0000 0010 111x xxxx xxxx na\r
+\r
+** ROM\r
+0000 0011 xxxx xxxx xxxx ROM\r
+0000 0011 0000 0000 0000 #ROMStart = 3000h\r
+                         #ROMSize = 0800h\r
+\r
+** SRAM (3x 8ki-words = 24ki-words = 48 kiB\r
+0000 01xx xxxx xxxx xxxx SRAM0\r
+0000 0100 0000 0000 0000 #RAMStart = 4000h\r
+                         #RAMSize = c000h\r
+0000 10xx xxxx xxxx xxxx SRAM1\r
+0000 11xx xxxx xxxx xxxx SRAM2\r
+0001 00xx xxxx xxxx xxxx SRAM3 ;not fabbed, but used in addr decoder\r
+0001 01xx xxxx xxxx xxxx SRAM4 ;not fabbed, but used in addr decoder\r
+0001 10xx xxxx xxxx xxxx SRAM5 ;not fabbed, but used in addr decoder\r
+\r