Go to the documentation of this file.
29 #ifndef __DEV_NET_SINICREG_HH__
30 #define __DEV_NET_SINICREG_HH__
36 #define __SINIC_REG32(NAME, VAL) static const uint32_t NAME = (VAL);
37 #define __SINIC_REG64(NAME, VAL) static const uint64_t NAME = (VAL);
39 #define __SINIC_VAL32(NAME, OFFSET, WIDTH) \
40 static const uint32_t NAME##_width = WIDTH; \
41 static const uint32_t NAME##_offset = OFFSET; \
42 static const uint32_t NAME##_mask = (1 << WIDTH) - 1; \
43 static const uint32_t NAME = ((1 << WIDTH) - 1) << OFFSET; \
44 static inline uint32_t get_##NAME(uint32_t reg) \
45 { return (reg & NAME) >> OFFSET; } \
46 static inline uint32_t set_##NAME(uint32_t reg, uint32_t val) \
47 { return (reg & ~NAME) | ((val << OFFSET) & NAME); }
49 #define __SINIC_VAL64(NAME, OFFSET, WIDTH) \
50 static const uint64_t NAME##_width = WIDTH; \
51 static const uint64_t NAME##_offset = OFFSET; \
52 static const uint64_t NAME##_mask = (1ULL << WIDTH) - 1; \
53 static const uint64_t NAME = ((1ULL << WIDTH) - 1) << OFFSET; \
54 static inline uint64_t get_##NAME(uint64_t reg) \
55 { return (reg & NAME) >> OFFSET; } \
56 static inline uint64_t set_##NAME(uint64_t reg, uint64_t val) \
57 { return (reg & ~NAME) | ((val << OFFSET) & NAME); }
198 { 4,
true,
true,
"Config" },
199 { 4,
false,
true,
"Command" },
200 { 4,
true,
true,
"IntrStatus" },
201 { 4,
true,
true,
"IntrMask" },
202 { 4,
true,
false,
"RxMaxCopy" },
203 { 4,
true,
false,
"TxMaxCopy" },
204 { 4,
true,
false,
"ZeroCopySize" },
205 { 4,
true,
false,
"ZeroCopyMark" },
206 { 4,
true,
false,
"VirtualCount" },
207 { 4,
true,
false,
"RxMaxIntr" },
208 { 4,
true,
false,
"RxFifoSize" },
209 { 4,
true,
false,
"TxFifoSize" },
210 { 4,
true,
false,
"RxFifoLow" },
211 { 4,
true,
false,
"TxFifoLow" },
212 { 4,
true,
false,
"RxFifoHigh" },
213 { 4,
true,
false,
"TxFifoHigh" },
214 { 8,
true,
true,
"RxData" },
216 { 8,
true,
false,
"RxDone" },
218 { 8,
true,
false,
"RxWait" },
220 { 8,
true,
true,
"TxData" },
222 { 8,
true,
false,
"TxDone" },
224 { 8,
true,
false,
"TxWait" },
226 { 8,
true,
false,
"HwAddr" },
228 { 8,
true,
false,
"RxStatus" },
232 return info[daddr / 4];
238 if (daddr > registers::Size)
251 #endif // __DEV_NET_SINICREG_HH__
GEM5_DEPRECATED_NAMESPACE(Regs, registers)
__SINIC_VAL64(RxData_Vaddr, 60, 1) __SINIC_VAL64(RxData_Len
bool regValid(Addr daddr)
__SINIC_REG32(Config, 0x00) __SINIC_REG32(Command
__SINIC_VAL32(Config_ZeroCopy, 12, 1) __SINIC_VAL32(Config_DelayCopy
static const int VirtualMask
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
static const int VirtualShift
const registers::Info & regInfo(Addr daddr)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Generated on Tue Sep 7 2021 14:53:46 for gem5 by doxygen 1.8.17