summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/alpha/vtophys.cc2
-rw-r--r--base/remote_gdb.cc12
-rw-r--r--dev/pcidev.cc1
3 files changed, 6 insertions, 9 deletions
diff --git a/arch/alpha/vtophys.cc b/arch/alpha/vtophys.cc
index 5e14b06d3..784c4af7e 100644
--- a/arch/alpha/vtophys.cc
+++ b/arch/alpha/vtophys.cc
@@ -96,7 +96,7 @@ vtophys(ExecContext *xc, Addr vaddr)
{
Addr ptbr = xc->regs.ipr[AlphaISA::IPR_PALtemp20];
Addr paddr = 0;
- if (PC_PAL(vaddr)) {
+ if (PC_PAL(vaddr) || vaddr < 0x10000) {
paddr = vaddr & ~ULL(1);
} else if (!ptbr) {
paddr = vaddr;
diff --git a/base/remote_gdb.cc b/base/remote_gdb.cc
index e20800d12..7b73d60e9 100644
--- a/base/remote_gdb.cc
+++ b/base/remote_gdb.cc
@@ -332,23 +332,21 @@ RemoteGDB::acc(Addr va, size_t len)
last_va = alpha_round_page(va + len);
do {
- if (va < ALPHA_K0SEG_BASE) {
- DPRINTF(GDBAcc, "acc: Mapping is invalid %#x < K0SEG\n", va);
- return false;
- }
-
- if (va < ALPHA_K1SEG_BASE) {
+ if (va >= ALPHA_K0SEG_BASE && va < ALPHA_K1SEG_BASE) {
if (va < (ALPHA_K0SEG_BASE + pmem->size())) {
DPRINTF(GDBAcc, "acc: Mapping is valid K0SEG <= "
"%#x < K0SEG + size\n", va);
return true;
} else {
- DPRINTF(GDBAcc, "acc: Mapping is invalid %#x < K0SEG\n",
+ DPRINTF(GDBAcc, "acc: Mapping invalid %#x > K0SEG + size\n",
va);
return false;
}
}
+ if (PC_PAL(va) || va < 0x10000)
+ return true;
+
Addr ptbr = context->regs.ipr[AlphaISA::IPR_PALtemp20];
pte = kernel_pte_lookup(pmem, ptbr, va);
if (!pte || !entry_valid(pmem->phys_read_qword(pte))) {
diff --git a/dev/pcidev.cc b/dev/pcidev.cc
index c0358cd5a..556634115 100644
--- a/dev/pcidev.cc
+++ b/dev/pcidev.cc
@@ -91,7 +91,6 @@ PciDev::ReadConfig(int offset, int size, uint8_t *data)
case sizeof(uint8_t):
memcpy((uint8_t*)data, config.data + offset, sizeof(uint8_t));
- printf("data: %#x\n", *(uint8_t*)(config.data + offset));
DPRINTF(PCIDEV,
"read device: %#x function: %#x register: %#x data: %#x\n",
Device, Function, offset, *(uint8_t*)(config.data + offset));