📄 maestro3.h
字号:
#define ASSP_CONTROL_B 0xA4#define RESET_ASSP 0x00#define RUN_ASSP 0x01#define ENABLE_ASSP_CLOCK 0x00#define STOP_ASSP_CLOCK 0x10#define RESET_TOGGLE 0x40#define ASSP_CONTROL_C 0xA6#define ASSP_HOST_INT_ENABLE 0x01#define FM_ADDR_REMAP_DISABLE 0x02#define HOST_WRITE_PORT_ENABLE 0x08#define ASSP_HOST_INT_STATUS 0xAC#define DSP2HOST_REQ_PIORECORD 0x01#define DSP2HOST_REQ_I2SRATE 0x02#define DSP2HOST_REQ_TIMER 0x04// AC97 registers// XXX fix this crap up/*#define AC97_RESET 0x00*/#define AC97_VOL_MUTE_B 0x8000#define AC97_VOL_M 0x1F#define AC97_LEFT_VOL_S 8#define AC97_MASTER_VOL 0x02#define AC97_LINE_LEVEL_VOL 0x04#define AC97_MASTER_MONO_VOL 0x06#define AC97_PC_BEEP_VOL 0x0A#define AC97_PC_BEEP_VOL_M 0x0F#define AC97_SROUND_MASTER_VOL 0x38#define AC97_PC_BEEP_VOL_S 1/*#define AC97_PHONE_VOL 0x0C#define AC97_MIC_VOL 0x0E*/#define AC97_MIC_20DB_ENABLE 0x40/*#define AC97_LINEIN_VOL 0x10#define AC97_CD_VOL 0x12#define AC97_VIDEO_VOL 0x14#define AC97_AUX_VOL 0x16*/#define AC97_PCM_OUT_VOL 0x18/*#define AC97_RECORD_SELECT 0x1A*/#define AC97_RECORD_MIC 0x00#define AC97_RECORD_CD 0x01#define AC97_RECORD_VIDEO 0x02#define AC97_RECORD_AUX 0x03#define AC97_RECORD_MONO_MUX 0x02#define AC97_RECORD_DIGITAL 0x03#define AC97_RECORD_LINE 0x04#define AC97_RECORD_STEREO 0x05#define AC97_RECORD_MONO 0x06#define AC97_RECORD_PHONE 0x07/*#define AC97_RECORD_GAIN 0x1C*/#define AC97_RECORD_VOL_M 0x0F/*#define AC97_GENERAL_PURPOSE 0x20*/#define AC97_POWER_DOWN_CTRL 0x26#define AC97_ADC_READY 0x0001#define AC97_DAC_READY 0x0002#define AC97_ANALOG_READY 0x0004#define AC97_VREF_ON 0x0008#define AC97_PR0 0x0100#define AC97_PR1 0x0200#define AC97_PR2 0x0400#define AC97_PR3 0x0800#define AC97_PR4 0x1000#define AC97_RESERVED1 0x28#define AC97_VENDOR_TEST 0x5A#define AC97_CLOCK_DELAY 0x5C#define AC97_LINEOUT_MUX_SEL 0x0001#define AC97_MONO_MUX_SEL 0x0002#define AC97_CLOCK_DELAY_SEL 0x1F#define AC97_DAC_CDS_SHIFT 6#define AC97_ADC_CDS_SHIFT 11#define AC97_MULTI_CHANNEL_SEL 0x74/*#define AC97_VENDOR_ID1 0x7C#define AC97_VENDOR_ID2 0x7E*//* * ASSP control regs */#define DSP_PORT_TIMER_COUNT 0x06#define DSP_PORT_MEMORY_INDEX 0x80#define DSP_PORT_MEMORY_TYPE 0x82#define MEMTYPE_INTERNAL_CODE 0x0002#define MEMTYPE_INTERNAL_DATA 0x0003#define MEMTYPE_MASK 0x0003#define DSP_PORT_MEMORY_DATA 0x84#define DSP_PORT_CONTROL_REG_A 0xA2#define DSP_PORT_CONTROL_REG_B 0xA4#define DSP_PORT_CONTROL_REG_C 0xA6#define REV_A_CODE_MEMORY_BEGIN 0x0000#define REV_A_CODE_MEMORY_END 0x0FFF#define REV_A_CODE_MEMORY_UNIT_LENGTH 0x0040#define REV_A_CODE_MEMORY_LENGTH (REV_A_CODE_MEMORY_END - REV_A_CODE_MEMORY_BEGIN + 1)#define REV_B_CODE_MEMORY_BEGIN 0x0000#define REV_B_CODE_MEMORY_END 0x0BFF#define REV_B_CODE_MEMORY_UNIT_LENGTH 0x0040#define REV_B_CODE_MEMORY_LENGTH (REV_B_CODE_MEMORY_END - REV_B_CODE_MEMORY_BEGIN + 1)#define REV_A_DATA_MEMORY_BEGIN 0x1000#define REV_A_DATA_MEMORY_END 0x2FFF#define REV_A_DATA_MEMORY_UNIT_LENGTH 0x0080#define REV_A_DATA_MEMORY_LENGTH (REV_A_DATA_MEMORY_END - REV_A_DATA_MEMORY_BEGIN + 1)#define REV_B_DATA_MEMORY_BEGIN 0x1000#define REV_B_DATA_MEMORY_END 0x2BFF#define REV_B_DATA_MEMORY_UNIT_LENGTH 0x0080#define REV_B_DATA_MEMORY_LENGTH (REV_B_DATA_MEMORY_END - REV_B_DATA_MEMORY_BEGIN + 1)#define NUM_UNITS_KERNEL_CODE 16#define NUM_UNITS_KERNEL_DATA 2#define NUM_UNITS_KERNEL_CODE_WITH_HSP 16#define NUM_UNITS_KERNEL_DATA_WITH_HSP 5/* * Kernel data layout */#define DP_SHIFT_COUNT 7#define KDATA_BASE_ADDR 0x1000#define KDATA_BASE_ADDR2 0x1080#define KDATA_TASK0 (KDATA_BASE_ADDR + 0x0000)#define KDATA_TASK1 (KDATA_BASE_ADDR + 0x0001)#define KDATA_TASK2 (KDATA_BASE_ADDR + 0x0002)#define KDATA_TASK3 (KDATA_BASE_ADDR + 0x0003)#define KDATA_TASK4 (KDATA_BASE_ADDR + 0x0004)#define KDATA_TASK5 (KDATA_BASE_ADDR + 0x0005)#define KDATA_TASK6 (KDATA_BASE_ADDR + 0x0006)#define KDATA_TASK7 (KDATA_BASE_ADDR + 0x0007)#define KDATA_TASK_ENDMARK (KDATA_BASE_ADDR + 0x0008)#define KDATA_CURRENT_TASK (KDATA_BASE_ADDR + 0x0009)#define KDATA_TASK_SWITCH (KDATA_BASE_ADDR + 0x000A)#define KDATA_INSTANCE0_POS3D (KDATA_BASE_ADDR + 0x000B)#define KDATA_INSTANCE1_POS3D (KDATA_BASE_ADDR + 0x000C)#define KDATA_INSTANCE2_POS3D (KDATA_BASE_ADDR + 0x000D)#define KDATA_INSTANCE3_POS3D (KDATA_BASE_ADDR + 0x000E)#define KDATA_INSTANCE4_POS3D (KDATA_BASE_ADDR + 0x000F)#define KDATA_INSTANCE5_POS3D (KDATA_BASE_ADDR + 0x0010)#define KDATA_INSTANCE6_POS3D (KDATA_BASE_ADDR + 0x0011)#define KDATA_INSTANCE7_POS3D (KDATA_BASE_ADDR + 0x0012)#define KDATA_INSTANCE8_POS3D (KDATA_BASE_ADDR + 0x0013)#define KDATA_INSTANCE_POS3D_ENDMARK (KDATA_BASE_ADDR + 0x0014)#define KDATA_INSTANCE0_SPKVIRT (KDATA_BASE_ADDR + 0x0015)#define KDATA_INSTANCE_SPKVIRT_ENDMARK (KDATA_BASE_ADDR + 0x0016)#define KDATA_INSTANCE0_SPDIF (KDATA_BASE_ADDR + 0x0017)#define KDATA_INSTANCE_SPDIF_ENDMARK (KDATA_BASE_ADDR + 0x0018)#define KDATA_INSTANCE0_MODEM (KDATA_BASE_ADDR + 0x0019)#define KDATA_INSTANCE_MODEM_ENDMARK (KDATA_BASE_ADDR + 0x001A)#define KDATA_INSTANCE0_SRC (KDATA_BASE_ADDR + 0x001B)#define KDATA_INSTANCE1_SRC (KDATA_BASE_ADDR + 0x001C)#define KDATA_INSTANCE_SRC_ENDMARK (KDATA_BASE_ADDR + 0x001D)#define KDATA_INSTANCE0_MINISRC (KDATA_BASE_ADDR + 0x001E)#define KDATA_INSTANCE1_MINISRC (KDATA_BASE_ADDR + 0x001F)#define KDATA_INSTANCE2_MINISRC (KDATA_BASE_ADDR + 0x0020)#define KDATA_INSTANCE3_MINISRC (KDATA_BASE_ADDR + 0x0021)#define KDATA_INSTANCE_MINISRC_ENDMARK (KDATA_BASE_ADDR + 0x0022)#define KDATA_INSTANCE0_CPYTHRU (KDATA_BASE_ADDR + 0x0023)#define KDATA_INSTANCE1_CPYTHRU (KDATA_BASE_ADDR + 0x0024)#define KDATA_INSTANCE_CPYTHRU_ENDMARK (KDATA_BASE_ADDR + 0x0025)#define KDATA_CURRENT_DMA (KDATA_BASE_ADDR + 0x0026)#define KDATA_DMA_SWITCH (KDATA_BASE_ADDR + 0x0027)#define KDATA_DMA_ACTIVE (KDATA_BASE_ADDR + 0x0028)#define KDATA_DMA_XFER0 (KDATA_BASE_ADDR + 0x0029)#define KDATA_DMA_XFER1 (KDATA_BASE_ADDR + 0x002A)#define KDATA_DMA_XFER2 (KDATA_BASE_ADDR + 0x002B)#define KDATA_DMA_XFER3 (KDATA_BASE_ADDR + 0x002C)#define KDATA_DMA_XFER4 (KDATA_BASE_ADDR + 0x002D)#define KDATA_DMA_XFER5 (KDATA_BASE_ADDR + 0x002E)#define KDATA_DMA_XFER6 (KDATA_BASE_ADDR + 0x002F)#define KDATA_DMA_XFER7 (KDATA_BASE_ADDR + 0x0030)#define KDATA_DMA_XFER8 (KDATA_BASE_ADDR + 0x0031)#define KDATA_DMA_XFER_ENDMARK (KDATA_BASE_ADDR + 0x0032)#define KDATA_I2S_SAMPLE_COUNT (KDATA_BASE_ADDR + 0x0033)#define KDATA_I2S_INT_METER (KDATA_BASE_ADDR + 0x0034)#define KDATA_I2S_ACTIVE (KDATA_BASE_ADDR + 0x0035)#define KDATA_TIMER_COUNT_RELOAD (KDATA_BASE_ADDR + 0x0036)#define KDATA_TIMER_COUNT_CURRENT (KDATA_BASE_ADDR + 0x0037)#define KDATA_HALT_SYNCH_CLIENT (KDATA_BASE_ADDR + 0x0038)#define KDATA_HALT_SYNCH_DMA (KDATA_BASE_ADDR + 0x0039)#define KDATA_HALT_ACKNOWLEDGE (KDATA_BASE_ADDR + 0x003A)#define KDATA_ADC1_XFER0 (KDATA_BASE_ADDR + 0x003B)#define KDATA_ADC1_XFER_ENDMARK (KDATA_BASE_ADDR + 0x003C)#define KDATA_ADC1_LEFT_VOLUME (KDATA_BASE_ADDR + 0x003D)#define KDATA_ADC1_RIGHT_VOLUME (KDATA_BASE_ADDR + 0x003E)#define KDATA_ADC1_LEFT_SUR_VOL (KDATA_BASE_ADDR + 0x003F)#define KDATA_ADC1_RIGHT_SUR_VOL (KDATA_BASE_ADDR + 0x0040)#define KDATA_ADC2_XFER0 (KDATA_BASE_ADDR + 0x0041)#define KDATA_ADC2_XFER_ENDMARK (KDATA_BASE_ADDR + 0x0042)#define KDATA_ADC2_LEFT_VOLUME (KDATA_BASE_ADDR + 0x0043)#define KDATA_ADC2_RIGHT_VOLUME (KDATA_BASE_ADDR + 0x0044)#define KDATA_ADC2_LEFT_SUR_VOL (KDATA_BASE_ADDR + 0x0045)#define KDATA_ADC2_RIGHT_SUR_VOL (KDATA_BASE_ADDR + 0x0046)#define KDATA_CD_XFER0 (KDATA_BASE_ADDR + 0x0047) #define KDATA_CD_XFER_ENDMARK (KDATA_BASE_ADDR + 0x0048)#define KDATA_CD_LEFT_VOLUME (KDATA_BASE_ADDR + 0x0049)#define KDATA_CD_RIGHT_VOLUME (KDATA_BASE_ADDR + 0x004A)#define KDATA_CD_LEFT_SUR_VOL (KDATA_BASE_ADDR + 0x004B)#define KDATA_CD_RIGHT_SUR_VOL (KDATA_BASE_ADDR + 0x004C)#define KDATA_MIC_XFER0 (KDATA_BASE_ADDR + 0x004D)#define KDATA_MIC_XFER_ENDMARK (KDATA_BASE_ADDR + 0x004E)#define KDATA_MIC_VOLUME (KDATA_BASE_ADDR + 0x004F)#define KDATA_MIC_SUR_VOL (KDATA_BASE_ADDR + 0x0050)#define KDATA_I2S_XFER0 (KDATA_BASE_ADDR + 0x0051)#define KDATA_I2S_XFER_ENDMARK (KDATA_BASE_ADDR + 0x0052)#define KDATA_CHI_XFER0 (KDATA_BASE_ADDR + 0x0053)#define KDATA_CHI_XFER_ENDMARK (KDATA_BASE_ADDR + 0x0054)#define KDATA_SPDIF_XFER (KDATA_BASE_ADDR + 0x0055)#define KDATA_SPDIF_CURRENT_FRAME (KDATA_BASE_ADDR + 0x0056)#define KDATA_SPDIF_FRAME0 (KDATA_BASE_ADDR + 0x0057)#define KDATA_SPDIF_FRAME1 (KDATA_BASE_ADDR + 0x0058)#define KDATA_SPDIF_FRAME2 (KDATA_BASE_ADDR + 0x0059)#define KDATA_SPDIF_REQUEST (KDATA_BASE_ADDR + 0x005A)#define KDATA_SPDIF_TEMP (KDATA_BASE_ADDR + 0x005B)#define KDATA_SPDIFIN_XFER0 (KDATA_BASE_ADDR + 0x005C)#define KDATA_SPDIFIN_XFER_ENDMARK (KDATA_BASE_ADDR + 0x005D)#define KDATA_SPDIFIN_INT_METER (KDATA_BASE_ADDR + 0x005E)#define KDATA_DSP_RESET_COUNT (KDATA_BASE_ADDR + 0x005F)#define KDATA_DEBUG_OUTPUT (KDATA_BASE_ADDR + 0x0060)#define KDATA_KERNEL_ISR_LIST (KDATA_BASE_ADDR + 0x0061)#define KDATA_KERNEL_ISR_CBSR1 (KDATA_BASE_ADDR + 0x0062)#define KDATA_KERNEL_ISR_CBER1 (KDATA_BASE_ADDR + 0x0063)#define KDATA_KERNEL_ISR_CBCR (KDATA_BASE_ADDR + 0x0064)#define KDATA_KERNEL_ISR_AR0 (KDATA_BASE_ADDR + 0x0065)#define KDATA_KERNEL_ISR_AR1 (KDATA_BASE_ADDR + 0x0066)#define KDATA_KERNEL_ISR_AR2 (KDATA_BASE_ADDR + 0x0067)#define KDATA_KERNEL_ISR_AR3 (KDATA_BASE_ADDR + 0x0068)#define KDATA_KERNEL_ISR_AR4 (KDATA_BASE_ADDR + 0x0069)#define KDATA_KERNEL_ISR_AR5 (KDATA_BASE_ADDR + 0x006A)#define KDATA_KERNEL_ISR_BRCR (KDATA_BASE_ADDR + 0x006B)#define KDATA_KERNEL_ISR_PASR (KDATA_BASE_ADDR + 0x006C)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -