doubao_chat/include_lib/driver/cpu/wl82/asm/csfr.h

357 lines
12 KiB
C

//*********************************************************************************//
// Module name : csfr.h //
// Description : q32DSP core sfr define //
// By Designer : zequan_liu //
// Dat changed : //
//*********************************************************************************//
#ifndef __Q32DSP_CSFR__
#define __Q32DSP_CSFR__
#undef ___RW
#undef ___RO
#undef ___WO
#undef ___u8
#undef ___u16
#undef ___u32
#undef map_adr
#define ___RW volatile // read write
#define ___RO volatile const // only read
#define ___WO volatile // only write
#define ___u8(x) unsigned char(x); char(reserved_1_##x); char(reserved_2_##x); char(reserved_3_##x)
#define ___u16(x) unsigned short(x); short(reserved_1_##x)
#define ___u32(x) unsigned int(x)
#define ___s8(x) char(x); char(reserved_1_##x); char(reserved_2_##x); char(reserved_3_##x)
#define ___s16(x) short(x); short(reserved_1_##x)
#define ___s32(x) int(x)
#define map_adr(grp, adr) ((64 * grp + adr) * 4) // grp(0x0-0xff), adr(0x0-0x3f)
//*********************************************************************************
//
// hcore control sfr
//
//*********************************************************************************
#define csfr_base 0x1ee0000
//............. 0x0000 - 0x00ff............
typedef struct {
___RO ___u32(SOFT_INT);
___WO ___u32(SOFT_SET);
___WO ___u32(SOFT_CLR);
___RW ___u32(CON);
} JL_CMNG_TypeDef;
#define JL_CMNG_BASE (csfr_base + map_adr(0x00, 0x00))
#define JL_CMNG ((JL_CMNG_TypeDef *)JL_CMNG_BASE)
//............. 0x0100 - 0x01ff............
typedef struct {
___RW ___u32(CON);
___RW ___u32(KEY);
} JL_SDTAP_TypeDef;
#define JL_SDTAP_BASE (csfr_base + map_adr(0x01, 0x00))
#define JL_SDTAP ((JL_SDTAP_TypeDef *)JL_SDTAP_BASE)
//............. 0x0200 - 0x02ff............
typedef struct {
___RW ___u32(MBISTCTL);
___RO ___u32(MBISTSOGO);
} JL_MBIS_TypeDef;
#define JL_MBIS_BASE (csfr_base + map_adr(0x02, 0x00))
#define JL_MBIS ((JL_MBIS_TypeDef *)JL_MBIS_BASE)
//............. 0x0300 - 0x03ff............
typedef struct {
___RW ___u32(CON);
___RW ___u32(PAGE_END); //page number - 1
} JL_HMEM_TypeDef;
#define JL_HMEM_BASE (csfr_base + map_adr(0x03, 0x00))
#define JL_HMEM ((JL_HMEM_TypeDef *)JL_HMEM_BASE)
//............. 0x0400 - 0x04ff............
typedef struct {
___RW ___u32(CON);
___RW ___u32(CADR);
___RW ___u32(CONST);
___RW ___u32(TEST1);
} JL_FFT_TypeDef;
#define JL_FFT_BASE (csfr_base + map_adr(0x04, 0x00))
#define JL_FFT ((JL_FFT_TypeDef *)JL_FFT_BASE)
//*********************************************************************************
//
// corex2 sfr
//
//*********************************************************************************
//---------------------------------------------//
// corex2 define
//---------------------------------------------//
#define corex2_sfr_offset 0x400
#define corex2_sfr_base (csfr_base + 0xe000)
#define corex2(n) ((JL_TypeDef_corex2 *)(corex2_sfr_base + corex2_sfr_offset*n))
typedef struct {
/* 00 */ ___RW ___u32(C0_CON);
/* 01 */ ___RW ___u32(C1_CON);
/* 02 */ ___RW ___u32(CACHE_CON);
/* 03 */ ___RW ___u32(DCACHE_WAY);
/* 04 */ ___RW ___u32(ICACHE_WAY);
/* 05 */ ___RW ___u32(RING_OSC);
/* */ ___RO ___u32(REV_80_3[0x80 - 0x5 - 1]);
/* 80 */ ___RW ___u32(C0_IF_UACNTL);
/* 81 */ ___RW ___u32(C0_IF_UACNTH);
/* 82 */ ___RW ___u32(C0_RD_UACNTL);
/* 83 */ ___RW ___u32(C0_RD_UACNTH);
/* 84 */ ___RW ___u32(C0_WR_UACNTL);
/* 85 */ ___RW ___u32(C0_WR_UACNTH);
/* 86 */ ___RW ___u32(C0_TL_CKCNTL);
/* 87 */ ___RW ___u32(C0_TL_CKCNTH);
/* 88 */ ___RW ___u32(C1_IF_UACNTL);
/* 89 */ ___RW ___u32(C1_IF_UACNTH);
/* 8a */ ___RW ___u32(C1_RD_UACNTL);
/* 8b */ ___RW ___u32(C1_RD_UACNTH);
/* 8c */ ___RW ___u32(C1_WR_UACNTL);
/* 8d */ ___RW ___u32(C1_WR_UACNTH);
/* 8e */ ___RW ___u32(C1_TL_CKCNTL);
/* 8f */ ___RW ___u32(C1_TL_CKCNTH);
/* 90 */ ___RW ___u32(DBG_WR_EN);
/* 91 */ ___RO ___u32(DBG_MSG);
/* 92 */ ___RW ___u32(DBG_MSG_CLR);
/* */ ___RO ___u32(REV_9c_92[0xa0 - 0x92 - 1]);
/* a0 */ ___RW ___u32(WR_LIMIT0_H);
/* a1 */ ___RW ___u32(WR_LIMIT1_H);
/* a2 */ ___RW ___u32(WR_LIMIT2_H);
/* a3 */ ___RW ___u32(WR_LIMIT3_H);
/* a4 */ ___RW ___u32(WR_LIMIT4_H);
/* a5 */ ___RW ___u32(WR_LIMIT5_H);
/* a6 */ ___RW ___u32(WR_LIMIT6_H);
/* a7 */ ___RW ___u32(WR_LIMIT7_H);
/* */ ___RO ___u32(REV_b0_a7[0xb0 - 0xa7 - 1]);
/* b0 */ ___RW ___u32(WR_LIMIT0_L);
/* b1 */ ___RW ___u32(WR_LIMIT1_L);
/* b2 */ ___RW ___u32(WR_LIMIT2_L);
/* b3 */ ___RW ___u32(WR_LIMIT3_L);
/* b4 */ ___RW ___u32(WR_LIMIT4_L);
/* b5 */ ___RW ___u32(WR_LIMIT5_L);
/* b6 */ ___RW ___u32(WR_LIMIT6_L);
/* b7 */ ___RW ___u32(WR_LIMIT7_L);
/* */ ___RO ___u32(REV_c0_b7[0xc0 - 0xb7 - 1]);
/* c0 */ ___RW ___u32(WR_ALLOW_ID0);
/* c1 */ ___RW ___u32(WR_ALLOW_ID1);
/* c2 */ ___RW ___u32(WR_ALLOW_ID2);
/* c3 */ ___RW ___u32(WR_ALLOW_ID3);
/* c4 */ ___RW ___u32(WR_ALLOW_ID4);
/* c5 */ ___RW ___u32(WR_ALLOW_ID5);
/* c6 */ ___RW ___u32(WR_ALLOW_ID6);
/* c7 */ ___RW ___u32(WR_ALLOW_ID7);
/* */ ___RO ___u32(REV_d0_c7[0xd0 - 0xc7 - 1]);
/* d0 */ ___RW ___u32(DBG_EN);
/* d1 */ ___RW ___u32(DBG_CON);
/* d2 */ ___RW ___u32(C0_WR_LIMIT_EN);
/* d3 */ ___RW ___u32(C1_WR_LIMIT_EN);
/* d4 */ ___RW ___u32(PRP_WR_LIMIT_EN);
/* d5 */ ___RW ___u32(PRP_WR_ALLOW_EN);
/* d6 */ ___RW ___u32(PRP_OUTLIM_ERR_EN);
/* */ ___RO ___u32(REV_d8_d5[0xd8 - 0xd6 - 1]);
/* d8 */ ___RO ___u32(C0_WR_LIMIT_ERR_NUM);
/* d9 */ ___RO ___u32(C1_WR_LIMIT_ERR_NUM);
/* da */ ___RO ___u32(PRP_WR_LIMIT_ERR_NUM);
/* db */ ___RO ___u32(PRP_WR_LIMIT_ID);
/* dc */ ___RO ___u32(AXI_RD_INV_ID);
/* dd */ ___RO ___u32(AXI_WR_INV_ID);
/* de */ ___RO ___u32(PRP_MMU_ERR_WID);
/* df */ ___RO ___u32(PRP_MMU_ERR_RID);
/* */ ___RO ___u32(REV_e0_de[0xe0 - 0xdf - 1]);
/* e0 */ ___RW ___u32(PC_LIMIT0_H);
/* e1 */ ___RW ___u32(PC_LIMIT0_L);
/* e2 */ ___RW ___u32(PC_LIMIT1_H);
/* e3 */ ___RW ___u32(PC_LIMIT1_L);
} JL_TypeDef_corex2;
//*********************************************************************************
//
// q32DSP_sfr
//
//*********************************************************************************
//---------------------------------------------//
// q32DSP define
//---------------------------------------------//
#define q32DSP_sfr_offset 0x200
#define q32DSP_sfr_base (csfr_base + 0xf000)
#define q32DSP_cpu_base (q32DSP_sfr_base + 0x00)
#define q32DSP_mpu_base (q32DSP_sfr_base + 0x80)
#define q32DSP(n) ((JL_TypeDef_q32DSP *)(q32DSP_sfr_base + q32DSP_sfr_offset*n))
#define q32DSP_mpu(n) ((JL_TypeDef_q32DSP_MPU *)(q32DSP_mpu_base + q32DSP_sfr_offset*n))
//---------------------------------------------//
// q32DSP core sfr
//---------------------------------------------//
typedef struct {
/* 00 */ ___RO ___u32(DR00);
/* 01 */ ___RO ___u32(DR01);
/* 02 */ ___RO ___u32(DR02);
/* 03 */ ___RO ___u32(DR03);
/* 04 */ ___RO ___u32(DR04);
/* 05 */ ___RO ___u32(DR05);
/* 06 */ ___RO ___u32(DR06);
/* 07 */ ___RO ___u32(DR07);
/* 08 */ ___RO ___u32(DR08);
/* 09 */ ___RO ___u32(DR09);
/* 0a */ ___RO ___u32(DR10);
/* 0b */ ___RO ___u32(DR11);
/* 0c */ ___RO ___u32(DR12);
/* 0d */ ___RO ___u32(DR13);
/* 0e */ ___RO ___u32(DR14);
/* 0f */ ___RO ___u32(DR15);
/* 10 */ ___RO ___u32(RETI);
/* 11 */ ___RO ___u32(RETE);
/* 12 */ ___RO ___u32(RETX);
/* 13 */ ___RO ___u32(RETS);
/* 14 */ ___RO ___u32(SR04);
/* 15 */ ___RO ___u32(PSR);
/* 16 */ ___RO ___u32(CNUM);
/* 17 */ ___RO ___u32(SR07);
/* 18 */ ___RO ___u32(SR08);
/* 19 */ ___RO ___u32(SR09);
/* 1a */ ___RO ___u32(SR10);
/* 1b */ ___RO ___u32(ICFG);
/* 1c */ ___RO ___u32(USP);
/* 1d */ ___RO ___u32(SSP);
/* 1e */ ___RO ___u32(SP);
/* 1f */ ___RO ___u32(PCRS);
/* 20 */ ___RW ___u32(BPCON);
/* 21 */ ___RW ___u32(BSP);
/* 22 */ ___RW ___u32(BP0);
/* 23 */ ___RW ___u32(BP1);
/* 24 */ ___RW ___u32(BP2);
/* 25 */ ___RW ___u32(BP3);
/* 26 */ ___WO ___u32(CMD_PAUSE);
/* */ ___RO ___u32(REV_30_26[0x30 - 0x26 - 1]);
/* 30 */ ___RW ___u32(PMU_CON);
/* */ ___RO ___u32(REV_34_30[0x34 - 0x30 - 1]);
/* 34 */ ___RW ___u32(EMU_CON);
/* 35 */ ___RW ___u32(EMU_MSG);
/* 36 */ ___RW ___u32(EMU_SSP_H);
/* 37 */ ___RW ___u32(EMU_SSP_L);
/* 38 */ ___RW ___u32(EMU_USP_H);
/* 39 */ ___RW ___u32(EMU_USP_L);
/* */ ___RO ___u32(REV_3b_39[0x3b - 0x39 - 1]);
/* 3b */ ___RW ___u8(TTMR_CON);
/* 3c */ ___RW ___u32(TTMR_CNT);
/* 3d */ ___RW ___u32(TTMR_PRD);
/* 3e */ ___RW ___u32(BANK_CON);
/* 3f */ ___RW ___u32(BANK_NUM);
/* 40 */ ___RW ___u32(ICFG00);
/* 41 */ ___RW ___u32(ICFG01);
/* 42 */ ___RW ___u32(ICFG02);
/* 43 */ ___RW ___u32(ICFG03);
/* 44 */ ___RW ___u32(ICFG04);
/* 45 */ ___RW ___u32(ICFG05);
/* 46 */ ___RW ___u32(ICFG06);
/* 47 */ ___RW ___u32(ICFG07);
/* 48 */ ___RW ___u32(ICFG08);
/* 49 */ ___RW ___u32(ICFG09);
/* 4a */ ___RW ___u32(ICFG10);
/* 4b */ ___RW ___u32(ICFG11);
/* 4c */ ___RW ___u32(ICFG12);
/* 4d */ ___RW ___u32(ICFG13);
/* 4e */ ___RW ___u32(ICFG14);
/* 4f */ ___RW ___u32(ICFG15);
/* 50 */ ___RW ___u32(ICFG16);
/* 51 */ ___RW ___u32(ICFG17);
/* 52 */ ___RW ___u32(ICFG18);
/* 53 */ ___RW ___u32(ICFG19);
/* 54 */ ___RW ___u32(ICFG20);
/* 55 */ ___RW ___u32(ICFG21);
/* 56 */ ___RW ___u32(ICFG22);
/* 57 */ ___RW ___u32(ICFG23);
/* 58 */ ___RW ___u32(ICFG24);
/* 59 */ ___RW ___u32(ICFG25);
/* 5a */ ___RW ___u32(ICFG26);
/* 5b */ ___RW ___u32(ICFG27);
/* 5c */ ___RW ___u32(ICFG28);
/* 5d */ ___RW ___u32(ICFG29);
/* 5e */ ___RW ___u32(ICFG30);
/* 5f */ ___RW ___u32(ICFG31);
/* 60 */ ___RO ___u32(IPND0);
/* 61 */ ___RO ___u32(IPND1);
/* 62 */ ___RO ___u32(IPND2);
/* 63 */ ___RO ___u32(IPND3);
/* 64 */ ___RO ___u32(IPND4);
/* 65 */ ___RO ___u32(IPND5);
/* 66 */ ___RO ___u32(IPND6);
/* 67 */ ___RO ___u32(IPND7);
/* 68 */ ___WO ___u32(ILAT_SET);
/* 69 */ ___WO ___u32(ILAT_CLR);
/* 6a */ ___RW ___u32(IPMASK);
/* */ ___RO ___u32(REV_70_6a[0x70 - 0x6a - 1]);
/* 70 */ ___RW ___u32(ETM_CON);
/* 71 */ ___RO ___u32(ETM_PC0);
/* 72 */ ___RO ___u32(ETM_PC1);
/* 73 */ ___RO ___u32(ETM_PC2);
/* 74 */ ___RO ___u32(ETM_PC3);
/* 75 */ ___RW ___u32(WP0_ADRH);
/* 76 */ ___RW ___u32(WP0_ADRL);
/* 77 */ ___RW ___u32(WP0_DATH);
/* 78 */ ___RW ___u32(WP0_DATL);
/* 79 */ ___RW ___u32(WP0_PC);
} JL_TypeDef_q32DSP;
#undef ___RW
#undef ___RO
#undef ___WO
#undef ___u8
#undef ___u16
#undef ___u32
#undef map_adr
#endif
//*********************************************************************************//
// //
// end of this module //
// //
//*********************************************************************************//