linux-headers/arch/e2k/include/asm/nbsr_v6_regs.h

302 lines
5.7 KiB
C

#pragma once
/* HC monitors */
#define HC_MCR 0x360
#define HC_MID 0x364
#define HC_MAR0_LO 0x368
#define HC_MAR0_HI 0x36c
#define HC_MAR1_LO 0x370
#define HC_MAR1_HI 0x374
/* IOMMU monitors - all processors */
#define IOMMU_MCR 0x3c0
#define IOMMU_MID 0x3c4
#define IOMMU_MAR0_LO 0x3c8
#define IOMMU_MAR0_HI 0x3cc
#define IOMMU_MAR1_LO 0x3d0
#define IOMMU_MAR1_HI 0x3d4
/* Additional IOMMU monitors - e2c3 only.
* EDBC_IOMMU_* registers are used only to broadcast
* writing into ED{26-31}_IOMMU_* registers. */
#define EDBC_IOMMU_MCR 0x50c0
#define EDBC_IOMMU_MID 0x50c4
#define EDBC_IOMMU_MAR0_LO 0x50c8
#define EDBC_IOMMU_MAR0_HI 0x50cc
#define EDBC_IOMMU_MAR1_LO 0x50d0
#define EDBC_IOMMU_MAR1_HI 0x50d4
#define ED26_IOMMU_MCR 0x5d40
#define ED26_IOMMU_MID 0x5d44
#define ED26_IOMMU_MAR0_LO 0x5d48
#define ED26_IOMMU_MAR0_HI 0x5d4c
#define ED26_IOMMU_MAR1_LO 0x5d50
#define ED26_IOMMU_MAR1_HI 0x5d54
#define ED27_IOMMU_MCR 0x5dc0
#define ED27_IOMMU_MID 0x5dc4
#define ED27_IOMMU_MAR0_LO 0x5dc8
#define ED27_IOMMU_MAR0_HI 0x5dcc
#define ED27_IOMMU_MAR1_LO 0x5dd0
#define ED27_IOMMU_MAR1_HI 0x5dd4
#define ED28_IOMMU_MCR 0x5e40
#define ED28_IOMMU_MID 0x5e44
#define ED28_IOMMU_MAR0_LO 0x5e48
#define ED28_IOMMU_MAR0_HI 0x5e4c
#define ED28_IOMMU_MAR1_LO 0x5e50
#define ED28_IOMMU_MAR1_HI 0x5e54
#define ED29_IOMMU_MCR 0x5ec0
#define ED29_IOMMU_MID 0x5ec4
#define ED29_IOMMU_MAR0_LO 0x5ec8
#define ED29_IOMMU_MAR0_HI 0x5ecc
#define ED29_IOMMU_MAR1_LO 0x5ed0
#define ED29_IOMMU_MAR1_HI 0x5ed4
#define ED30_IOMMU_MCR 0x5f40
#define ED30_IOMMU_MID 0x5f44
#define ED30_IOMMU_MAR0_LO 0x5f48
#define ED30_IOMMU_MAR0_HI 0x5f4c
#define ED30_IOMMU_MAR1_LO 0x5f50
#define ED30_IOMMU_MAR1_HI 0x5f54
#define ED31_IOMMU_MCR 0x5fc0
#define ED31_IOMMU_MID 0x5fc4
#define ED31_IOMMU_MAR0_LO 0x5fc8
#define ED31_IOMMU_MAR0_HI 0x5fcc
#define ED31_IOMMU_MAR1_LO 0x5fd0
#define ED31_IOMMU_MAR1_HI 0x5fd4
/* MC monitors */
#define MC_CH 0x400
#define MC_CFG 0x418
#define MC_OPMB 0x424
#define MC_ECC 0x440
#define MC_STATUS 0x44c
#define MC_MON_CTL 0x450
#define MC_MON_CTR0 0x454
#define MC_MON_CTR1 0x458
#define MC_MON_CTRext 0x45c
/* HMU monitors */
#define HMU_MIC 0xd00
#define HMU_MCR 0xd14
#define HMU0_INT 0xd40
#define HMU0_MAR0_LO 0xd44
#define HMU0_MAR0_HI 0xd48
#define HMU0_MAR1_LO 0xd4c
#define HMU0_MAR1_HI 0xd50
#define HMU1_INT 0xd70
#define HMU1_MAR0_LO 0xd74
#define HMU1_MAR0_HI 0xd78
#define HMU1_MAR1_LO 0xd7c
#define HMU1_MAR1_HI 0xd80
#define HMU2_INT 0xda0
#define HMU2_MAR0_LO 0xda4
#define HMU2_MAR0_HI 0xda8
#define HMU2_MAR1_LO 0xdac
#define HMU2_MAR1_HI 0xdb0
#define HMU3_INT 0xdd0
#define HMU3_MAR0_LO 0xdd4
#define HMU3_MAR0_HI 0xdd8
#define HMU3_MAR1_LO 0xddc
#define HMU3_MAR1_HI 0xde0
/* PREPIC monitors */
#define PREPIC_MCR 0x8070
#define PREPIC_MID 0x8074
#define PREPIC_MAR0_LO 0x8080
#define PREPIC_MAR0_HI 0x8084
#define PREPIC_MAR1_LO 0x8090
#define PREPIC_MAR1_HI 0x8094
/*
* HC monitor control register (HC_MCR)
*/
typedef union {
struct {
u32 v0 : 1;
u32 __unused1 : 1;
u32 es0 : 6;
u32 v1 : 1;
u32 __unused2 : 1;
u32 es1 : 6;
u32 __unused3 : 16;
};
u32 word;
} e2k_hc_mcr_t;
/*
* HC monitor ID register (HC_MID)
*/
typedef union {
struct {
u32 id0 : 16;
u32 id1 : 16;
};
u32 word;
} e2k_hc_mid_t;
/*
* IOMMU monitor control register (IOMMU_MCR)
*/
typedef union {
struct {
u32 v0 : 1;
u32 __unused1 : 1;
u32 es0 : 6;
u32 v1 : 1;
u32 __unused2 : 1;
u32 es1 : 6;
u32 __unused3 : 16;
};
u32 word;
} e2k_iommu_mcr_t;
/*
* IOMMU monitor ID register (IOMMU_MID)
*/
typedef union {
struct {
u32 id0 : 16;
u32 id1 : 16;
};
u32 word;
} e2k_iommu_mid_t;
/*
* MC status register (MC_STATUS)
*/
typedef union {
struct {
u32 ecc_err : 1;
u32 ddrint_err : 1;
u32 phyccm_par_err : 1;
u32 dmem_par_err : 1;
u32 bridge_par_err : 1;
u32 phy_interrupt : 1;
u32 phy_init_complete : 1;
u32 dfi_par_err : 1;
u32 meminit_finish : 1;
u32 mon0_of : 1;
u32 mon1_of : 1;
u32 dfi_err : 1;
u32 dfi_err_info : 1;
u32 par_alert_delay : 6;
u32 rst_done : 1;
u32 wrcrc_aleert_delay : 6;
u32 __unused : 6;
};
u32 word;
} e2k_mc_status_t;
/*
* MC channel select register (MC_CH)
*/
typedef union {
struct {
u32 n : 4;
u32 __unused : 28;
};
u32 word;
} e2k_mc_ch_t;
/*
* MC monitor control register (MC_MON_CTL)
*/
typedef union {
struct {
u32 rst0 : 1;
u32 rst1 : 1;
u32 frz0 : 1;
u32 frz1 : 1;
u32 ld0 : 1;
u32 ld1 : 1;
u32 es0 : 5;
u32 es1 : 5;
u32 lb0 : 8;
u32 lb1 : 8;
};
struct {
u32 __pad : 16;
u32 ba0 : 2;
u32 bg0 : 2;
u32 cid0 : 3;
u32 all0 : 1;
u32 ba1 : 2;
u32 bg1 : 2;
u32 cid1 : 3;
u32 all1 : 1;
};
u32 word;
} e2k_mc_mon_ctl_t;
/*
* MC monitor #0,1 counter high (MC_MON_CTRext)
*/
typedef union {
u16 cnt[2];
u32 word;
} e2k_mc_mon_ctrext_t;
/*
* HMU memory interleaving control register (HMU_MIC)
*/
typedef union {
struct {
u32 mcil_bit0 : 6;
u32 mcil_bit1 : 6;
u32 mcil_bit2 : 6;
u32 mcil_bit3 : 6;
u32 mcen : 8;
};
u32 word;
} e2k_hmu_mic_t;
/*
* HMU monitor control register (HMU_MCR)
*/
typedef union {
struct {
u32 v0 : 1;
u32 __unused1 : 1;
u32 es0 : 6;
u32 v1 : 1;
u32 __unused2 : 1;
u32 es1 : 6;
u32 flt0_off : 1;
u32 flt0_rqid : 7;
u32 flt0_cid : 1;
u32 flt0_bid : 1;
u32 flt0_xid : 1;
u32 flt1_off : 1;
u32 flt1_node : 2;
u32 flt1_rnode : 1;
u32 __unused3 : 1;
};
u32 word;
} e2k_hmu_mcr_t;
/*
* PREPIC monitor control register (PREPIC_MCR)
*/
typedef union {
struct {
u32 vc0 : 1;
u32 __unused1 : 1;
u32 es0 : 6;
u32 vc1 : 1;
u32 __unused2 : 1;
u32 es1 : 6;
u32 __unused3 : 16;
};
u32 word;
} e2k_prepic_mcr_t;
/*
* PREPIC monitor ID register (PREPIC_MID)
*/
typedef union {
struct {
u32 id0 : 16;
u32 id1 : 16;
};
u32 word;
} e2k_prepic_mid_t;