38#ifndef __DEV_ARM_SMMU_V3_DEFS_HH__
39#define __DEV_ARM_SMMU_V3_DEFS_HH__
297 Bitfield<51, 4> ttb0;
298 Bitfield<60> hwu0g59;
299 Bitfield<61> hwu0g60;
300 Bitfield<62> hwu0g61;
301 Bitfield<63> hwu0g62;
308 Bitfield<51, 4> ttb1;
309 Bitfield<60> hwu1g59;
310 Bitfield<61> hwu1g60;
311 Bitfield<62> hwu1g61;
312 Bitfield<63> hwu1g62;
365 Bitfield<31, 12> ssid;
366 Bitfield<47, 32> vmid;
367 Bitfield<63, 48> asid;
368 Bitfield<63, 32> sid;
375 Bitfield<4, 0> range;
376 Bitfield<63, 12> address;
380 uint64_t addr()
const
382 uint64_t address = (uint64_t)(dw1.address) << 12;
#define BitUnion64(name)
Use this to define conveniently sized values overlayed with bitfields.
#define EndBitUnion(name)
This closes off the class and union started by the above macro.
SignedBitfield< 31, 16 > sh1
SignedBitfield< 15, 0 > sh0
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
@ STE_CONFIG_STAGE1_AND_2
BitUnion64(DWORD0) Bitfield< 5
BitUnion64(DWORD0) Bitfield< 7
Bitfield< 51, 6 > s1ctxptr
Bitfield< 37, 32 > s2t0sz
BitUnion64(DWORD1) Bitfield< 1
Bitfield< 49, 48 > privcfg
Bitfield< 35, 32 > memattr
Bitfield< 51, 50 > instcfg
Bitfield< 40, 37 > alloccfg
Bitfield< 63, 59 > s1cdmax
EndBitUnion(DWORD0) DWORD0 dw0
BitUnion64(DWORD0) Bitfield< 0 > valid
uint8_t _secure_regs[SMMU_SECURE_SZ]
uint8_t data[SMMU_REG_SIZE]