Fix to remote debugger while in PAL
authorAndrew Schultz <alschult@umich.edu>
Fri, 13 Feb 2004 23:15:04 +0000 (18:15 -0500)
committerAndrew Schultz <alschult@umich.edu>
Fri, 13 Feb 2004 23:15:04 +0000 (18:15 -0500)
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

arch/alpha/vtophys.cc
base/remote_gdb.cc
dev/pcidev.cc

index 5e14b06d3cb66546ee94acf7fd378c55a6199c9f..784c4af7e94d42b23572063f97aabc6073068196 100644 (file)
@@ -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;
index e20800d1217272440286e4babd734718f3f92a52..7b73d60e9a9f754371fbb20f5e6926514d3a0e20 100644 (file)
@@ -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))) {
index c0358cd5afd77df5bb4f2c92e3504a991aca2005..5566341154f917e1ab082e823c09664bccc60fdd 100644 (file)
@@ -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));