lowrisc/registers/
edn_regs.rs1use kernel::utilities::registers::ReadWrite;
13use kernel::utilities::registers::{register_bitfields, register_structs};
14pub const EDN_PARAM_NUM_ALERTS: u32 = 2;
16pub const EDN_PARAM_REG_WIDTH: u32 = 32;
18
19register_structs! {
20 pub EdnRegisters {
21 (0x0000 => pub(crate) intr_state: ReadWrite<u32, INTR::Register>),
23 (0x0004 => pub(crate) intr_enable: ReadWrite<u32, INTR::Register>),
25 (0x0008 => pub(crate) intr_test: ReadWrite<u32, INTR::Register>),
27 (0x000c => pub(crate) alert_test: ReadWrite<u32, ALERT_TEST::Register>),
29 (0x0010 => pub(crate) regwen: ReadWrite<u32, REGWEN::Register>),
31 (0x0014 => pub(crate) ctrl: ReadWrite<u32, CTRL::Register>),
33 (0x0018 => pub(crate) boot_ins_cmd: ReadWrite<u32, BOOT_INS_CMD::Register>),
35 (0x001c => pub(crate) boot_gen_cmd: ReadWrite<u32, BOOT_GEN_CMD::Register>),
37 (0x0020 => pub(crate) sw_cmd_req: ReadWrite<u32, SW_CMD_REQ::Register>),
39 (0x0024 => pub(crate) sw_cmd_sts: ReadWrite<u32, SW_CMD_STS::Register>),
41 (0x0028 => pub(crate) reseed_cmd: ReadWrite<u32, RESEED_CMD::Register>),
43 (0x002c => pub(crate) generate_cmd: ReadWrite<u32, GENERATE_CMD::Register>),
45 (0x0030 => pub(crate) max_num_reqs_between_reseeds: ReadWrite<u32, MAX_NUM_REQS_BETWEEN_RESEEDS::Register>),
47 (0x0034 => pub(crate) recov_alert_sts: ReadWrite<u32, RECOV_ALERT_STS::Register>),
49 (0x0038 => pub(crate) err_code: ReadWrite<u32, ERR_CODE::Register>),
51 (0x003c => pub(crate) err_code_test: ReadWrite<u32, ERR_CODE_TEST::Register>),
53 (0x0040 => pub(crate) main_sm_state: ReadWrite<u32, MAIN_SM_STATE::Register>),
55 (0x0044 => @END),
56 }
57}
58
59register_bitfields![u32,
60 pub(crate) INTR [
62 EDN_CMD_REQ_DONE OFFSET(0) NUMBITS(1) [],
63 EDN_FATAL_ERR OFFSET(1) NUMBITS(1) [],
64 ],
65 pub(crate) ALERT_TEST [
66 RECOV_ALERT OFFSET(0) NUMBITS(1) [],
67 FATAL_ALERT OFFSET(1) NUMBITS(1) [],
68 ],
69 pub(crate) REGWEN [
70 REGWEN OFFSET(0) NUMBITS(1) [],
71 ],
72 pub(crate) CTRL [
73 EDN_ENABLE OFFSET(0) NUMBITS(4) [],
74 BOOT_REQ_MODE OFFSET(4) NUMBITS(4) [],
75 AUTO_REQ_MODE OFFSET(8) NUMBITS(4) [],
76 CMD_FIFO_RST OFFSET(12) NUMBITS(4) [],
77 ],
78 pub(crate) BOOT_INS_CMD [
79 BOOT_INS_CMD OFFSET(0) NUMBITS(32) [],
80 ],
81 pub(crate) BOOT_GEN_CMD [
82 BOOT_GEN_CMD OFFSET(0) NUMBITS(32) [],
83 ],
84 pub(crate) SW_CMD_REQ [
85 SW_CMD_REQ OFFSET(0) NUMBITS(32) [],
86 ],
87 pub(crate) SW_CMD_STS [
88 CMD_RDY OFFSET(0) NUMBITS(1) [],
89 CMD_STS OFFSET(1) NUMBITS(1) [],
90 ],
91 pub(crate) RESEED_CMD [
92 RESEED_CMD OFFSET(0) NUMBITS(32) [],
93 ],
94 pub(crate) GENERATE_CMD [
95 GENERATE_CMD OFFSET(0) NUMBITS(32) [],
96 ],
97 pub(crate) MAX_NUM_REQS_BETWEEN_RESEEDS [
98 MAX_NUM_REQS_BETWEEN_RESEEDS OFFSET(0) NUMBITS(32) [],
99 ],
100 pub(crate) RECOV_ALERT_STS [
101 EDN_ENABLE_FIELD_ALERT OFFSET(0) NUMBITS(1) [],
102 BOOT_REQ_MODE_FIELD_ALERT OFFSET(1) NUMBITS(1) [],
103 AUTO_REQ_MODE_FIELD_ALERT OFFSET(2) NUMBITS(1) [],
104 CMD_FIFO_RST_FIELD_ALERT OFFSET(3) NUMBITS(1) [],
105 EDN_BUS_CMP_ALERT OFFSET(12) NUMBITS(1) [],
106 ],
107 pub(crate) ERR_CODE [
108 SFIFO_RESCMD_ERR OFFSET(0) NUMBITS(1) [],
109 SFIFO_GENCMD_ERR OFFSET(1) NUMBITS(1) [],
110 SFIFO_OUTPUT_ERR OFFSET(2) NUMBITS(1) [],
111 EDN_ACK_SM_ERR OFFSET(20) NUMBITS(1) [],
112 EDN_MAIN_SM_ERR OFFSET(21) NUMBITS(1) [],
113 EDN_CNTR_ERR OFFSET(22) NUMBITS(1) [],
114 FIFO_WRITE_ERR OFFSET(28) NUMBITS(1) [],
115 FIFO_READ_ERR OFFSET(29) NUMBITS(1) [],
116 FIFO_STATE_ERR OFFSET(30) NUMBITS(1) [],
117 ],
118 pub(crate) ERR_CODE_TEST [
119 ERR_CODE_TEST OFFSET(0) NUMBITS(5) [],
120 ],
121 pub(crate) MAIN_SM_STATE [
122 MAIN_SM_STATE OFFSET(0) NUMBITS(9) [],
123 ],
124];
125
126