summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2013-07-19 03:27:04 +0000
committergrehan <grehan@FreeBSD.org>2013-07-19 03:27:04 +0000
commit749888363db1320e1cc3818fcd71e411c3a955ca (patch)
treee4dd80ba19e005ead5dfb35b03225d5fb4926884 /sys/amd64
parentc8195f5331ccad33ad4e265362523f51b96abd5c (diff)
parent61d6ee86f76db7ef69b0748be4d4b6e14ffc7109 (diff)
downloadFreeBSD-src-749888363db1320e1cc3818fcd71e411c3a955ca.zip
FreeBSD-src-749888363db1320e1cc3818fcd71e411c3a955ca.tar.gz
IFC @ r253461
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/machdep.c30
-rw-r--r--sys/amd64/amd64/pmap.c1
-rw-r--r--sys/amd64/conf/GENERIC1
-rw-r--r--sys/amd64/conf/NOTES4
4 files changed, 36 insertions, 0 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index a1c61eb..7a39ef8 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -1228,6 +1228,36 @@ DB_SHOW_COMMAND(idt, db_show_idt)
ip++;
}
}
+
+/* Show privileged registers. */
+DB_SHOW_COMMAND(sysregs, db_show_sysregs)
+{
+ struct {
+ uint16_t limit;
+ uint64_t base;
+ } __packed idtr, gdtr;
+ uint16_t ldt, tr;
+
+ __asm __volatile("sidt %0" : "=m" (idtr));
+ db_printf("idtr\t0x%016lx/%04x\n",
+ (u_long)idtr.base, (u_int)idtr.limit);
+ __asm __volatile("sgdt %0" : "=m" (gdtr));
+ db_printf("gdtr\t0x%016lx/%04x\n",
+ (u_long)gdtr.base, (u_int)gdtr.limit);
+ __asm __volatile("sldt %0" : "=r" (ldt));
+ db_printf("ldtr\t0x%04x\n", ldt);
+ __asm __volatile("str %0" : "=r" (tr));
+ db_printf("tr\t0x%04x\n", tr);
+ db_printf("cr0\t0x%016lx\n", rcr0());
+ db_printf("cr2\t0x%016lx\n", rcr2());
+ db_printf("cr3\t0x%016lx\n", rcr3());
+ db_printf("cr4\t0x%016lx\n", rcr4());
+ db_printf("EFER\t%016lx\n", rdmsr(MSR_EFER));
+ db_printf("FEATURES_CTL\t%016lx\n", rdmsr(MSR_IA32_FEATURE_CONTROL));
+ db_printf("DEBUG_CTL\t%016lx\n", rdmsr(MSR_DEBUGCTLMSR));
+ db_printf("PAT\t%016lx\n", rdmsr(MSR_PAT));
+ db_printf("GSBASE\t%016lx\n", rdmsr(MSR_GSBASE));
+}
#endif
void
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index e1d373c..19be4e0 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -2234,6 +2234,7 @@ reclaim_pv_chunk(pmap_t locked_pmap, struct rwlock **lockp)
if (m_pc == NULL && free != NULL) {
m_pc = free;
free = (void *)m_pc->object;
+ m_pc->object = NULL;
/* Recycle a freed page table page. */
m_pc->wire_count = 1;
atomic_add_int(&cnt.v_wire_count, 1);
diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index f7bab39..17990a3 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -147,6 +147,7 @@ device arcmsr # Areca SATA II RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
+device hptnr # Highpoint DC7280, R750
device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device hpt27xx # Highpoint RocketRAID 27xx
device iir # Intel Integrated RAID
diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES
index 4d1f90f..7d58541 100644
--- a/sys/amd64/conf/NOTES
+++ b/sys/amd64/conf/NOTES
@@ -418,6 +418,10 @@ device hpt27xx
device hptmv
#
+# Highpoint DC7280 and R750.
+device hptnr
+
+#
# Highpoint RocketRAID. Supports RR172x, RR222x, RR2240, RR232x, RR2340,
# RR2210, RR174x, RR2522, RR231x, RR230x.
device hptrr
OpenPOWER on IntegriCloud