aboutsummaryrefslogtreecommitdiffstats
path: root/nvdebug.h
diff options
context:
space:
mode:
Diffstat (limited to 'nvdebug.h')
-rw-r--r--nvdebug.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/nvdebug.h b/nvdebug.h
index fcc6cff..67f2111 100644
--- a/nvdebug.h
+++ b/nvdebug.h
@@ -935,7 +935,6 @@ static inline const char *pd_target_to_text(enum PD_TARGET t) {
935// 935//
936// V3 introduced with Hopper, but Hopper and Blackwell also support V2 936// V3 introduced with Hopper, but Hopper and Blackwell also support V2
937// 937//
938// FIXME: This structure is 32 bits, but PDE/PTEs are actually 64 bits!
939typedef union { 938typedef union {
940 // Page Directory Entry (PDE) 939 // Page Directory Entry (PDE)
941 struct { 940 struct {
@@ -943,6 +942,7 @@ typedef union {
943 bool is_volatile:1; 942 bool is_volatile:1;
944 uint32_t padding1:4; 943 uint32_t padding1:4;
945 uint32_t addr:24; 944 uint32_t addr:24;
945 uint32_t __unused1;
946 } __attribute__((packed)); 946 } __attribute__((packed));
947 // Page Table Entry (PTE) 947 // Page Table Entry (PTE)
948 struct { 948 struct {
@@ -954,8 +954,15 @@ typedef union {
954 bool is_readonly:1; 954 bool is_readonly:1;
955 bool atomics_disabled:1; 955 bool atomics_disabled:1;
956 uint32_t __addr:24; 956 uint32_t __addr:24;
957 uint32_t __unused2;
957 } __attribute__((packed)); 958 } __attribute__((packed));
958 uint32_t raw; 959 // For wide addresses in PTEs or PDEs; only used if target is SYS_MEM
960 struct {
961 uint32_t __overlap:8;
962 uint64_t addr_w:46;
963 uint32_t __unused3:10;
964 } __attribute__((packed));
965 uint64_t raw_w;
959} page_dir_entry_t; 966} page_dir_entry_t;
960 967
961// Page Directory Entry/Page Table Entry V1 type 968// Page Directory Entry/Page Table Entry V1 type