diff options
-rw-r--r-- | arch/alpha/vtophys.cc | 2 | ||||
-rw-r--r-- | base/remote_gdb.cc | 12 | ||||
-rw-r--r-- | dev/pcidev.cc | 1 |
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)); |