diff options
author | Andrew Schultz <alschult@umich.edu> | 2004-02-13 18:15:04 -0500 |
---|---|---|
committer | Andrew Schultz <alschult@umich.edu> | 2004-02-13 18:15:04 -0500 |
commit | 092ec1978d3e1f01e9d1d6ce6f892c101f525682 (patch) | |
tree | 49e9027e35fc82dba7afb6731b4b5667d3ae826d /base | |
parent | 6391bfac543921e49469d74ea58de644d7a8f7cc (diff) | |
download | gem5-092ec1978d3e1f01e9d1d6ce6f892c101f525682.tar.xz |
Fix to remote debugger while in PAL
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
Fix to remote debugger while in PAL code
dev/pcidev.cc:
Remove extra debug printf
--HG--
extra : convert_revision : e64988846ad05cd3ddf47034d72d99dae3501591
Diffstat (limited to 'base')
-rw-r--r-- | base/remote_gdb.cc | 12 |
1 files changed, 5 insertions, 7 deletions
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))) { |