/* * Address of indirect internal register to be accessed. A write to this * register initiates read or write access to the indirect registers in the * HAL2. Note that there af four indirect data registers for write access to * registers larger than 16 byte.
*/
#define H2_IAR_TYPE_M 0xF000 /* bits 15:12, type of functional */ /* block the register resides in */ /* 1=DMA Port */ /* 9=Global DMA Control */ /* 2=Bresenham */ /* 3=Unix Timer */ #define H2_IAR_NUM_M 0x0F00 /* bits 11:8 instance of the */ /* blockin which the indirect */ /* register resides */ /* If IAR_TYPE_M=DMA Port: */ /* 1=Synth In */ /* 2=AES In */ /* 3=AES Out */ /* 4=DAC Out */ /* 5=ADC Out */ /* 6=Synth Control */ /* If IAR_TYPE_M=Global DMA Control: */ /* 1=Control */ /* If IAR_TYPE_M=Bresenham: */ /* 1=Bresenham Clock Gen 1 */ /* 2=Bresenham Clock Gen 2 */ /* 3=Bresenham Clock Gen 3 */ /* If IAR_TYPE_M=Unix Timer: */ /* 1=Unix Timer */ #define H2_IAR_ACCESS_SELECT 0x0080 /* 1=read 0=write */ #define H2_IAR_PARAM 0x000C /* Parameter Select */ #define H2_IAR_RB_INDEX_M 0x0003 /* Read Back Index */ /* 00:word0 */ /* 01:word1 */ /* 10:word2 */ /* 11:word3 */ /* * HAL2 internal addressing * * The HAL2 has "indirect registers" (idr) which are accessed by writing to the * Indirect Data registers. Write the address to the Indirect Address register * to transfer the data. * * We define the H2IR_* to the read address and H2IW_* to the write address and * H2I_* to be fields in whatever register is referred to. * * When we write to indirect registers which are larger than one word (16 bit) * we have to fill more than one indirect register before writing. When we read * back however we have to read several times, each time with different Read * Back Indexes (there are defs for doing this easily).
*/
/* * Relay Control
*/ #define H2I_RELAY_C 0x9100 #define H2I_RELAY_C_STATE 0x01 /* state of RELAY pin signal */
/* DMA port enable */
#define H2I_DMA_PORT_EN 0x9104 #define H2I_DMA_PORT_EN_SY_IN 0x01 /* Synth_in DMA port */ #define H2I_DMA_PORT_EN_AESRX 0x02 /* AES receiver DMA port */ #define H2I_DMA_PORT_EN_AESTX 0x04 /* AES transmitter DMA port */ #define H2I_DMA_PORT_EN_CODECTX 0x08 /* CODEC transmit DMA port */ #define H2I_DMA_PORT_EN_CODECR 0x10 /* CODEC receive DMA port */
#define H2I_DMA_END 0x9108 /* global dma endian select */ #define H2I_DMA_END_SY_IN 0x01 /* Synth_in DMA port */ #define H2I_DMA_END_AESRX 0x02 /* AES receiver DMA port */ #define H2I_DMA_END_AESTX 0x04 /* AES transmitter DMA port */ #define H2I_DMA_END_CODECTX 0x08 /* CODEC transmit DMA port */ #define H2I_DMA_END_CODECR 0x10 /* CODEC receive DMA port */ /* 0=b_end 1=l_end */
#define H2I_DMA_DRV 0x910C /* global PBUS DMA enable */
#define H2I_SYNTH_C 0x1104 /* Synth DMA control */
#define H2I_AESRX_C 0x1204 /* AES RX dma control */
struct hal2_aes_regs {
u32 rx_stat[2]; /* Status registers */
u32 rx_cr[2]; /* Control registers */
u32 rx_ud[4]; /* User data window */
u32 rx_st[24]; /* Channel status data */
u32 tx_stat[1]; /* Status register */
u32 tx_cr[3]; /* Control registers */
u32 tx_ud[4]; /* User data window */
u32 tx_st[24]; /* Channel status data */
};
struct hal2_vol_regs {
u32 right; /* Right volume */
u32 left; /* Left volume */
};
struct hal2_syn_regs {
u32 _unused0[2];
u32 page; /* DOC Page register */
u32 regsel; /* DOC Register selection */
u32 dlow; /* DOC Data low */
u32 dhigh; /* DOC Data high */
u32 irq; /* IRQ Status */
u32 dram; /* DRAM Access */
};
#endif/* __HAL2_H */
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.