124,127d123
< #include "config/full_system.hh"
< #if FULL_SYSTEM
< #include "arch/alpha/vtophys.hh"
< #endif
132a129
> #include "arch/alpha/vtophys.hh"
144a142
> #include "sim/full_system.hh"
161,164c159,160
< #if !FULL_SYSTEM
< panic("acc function needs to be rewritten for SE mode\n");
< #else
< Addr last_va;
---
> if (FullSystem) {
> Addr last_va;
166,167c162,163
< va = TruncPage(va);
< last_va = RoundPage(va + len);
---
> va = TruncPage(va);
> last_va = RoundPage(va + len);
169,178c165,175
< do {
< if (IsK0Seg(va)) {
< if (va < (K0SegBase + pmem->size())) {
< DPRINTF(GDBAcc, "acc: Mapping is valid K0SEG <= "
< "%#x < K0SEG + size\n", va);
< return true;
< } else {
< DPRINTF(GDBAcc, "acc: Mapping invalid %#x > K0SEG + size\n",
< va);
< return false;
---
> do {
> if (IsK0Seg(va)) {
> if (va < (K0SegBase + pmem->size())) {
> DPRINTF(GDBAcc, "acc: Mapping is valid K0SEG <= "
> "%#x < K0SEG + size\n", va);
> return true;
> } else {
> DPRINTF(GDBAcc, "acc: Mapping invalid %#x "
> "> K0SEG + size\n", va);
> return false;
> }
180d176
< }
182,188c178,184
< /**
< * This code says that all accesses to palcode (instruction
< * and data) are valid since there isn't a va->pa mapping
< * because palcode is accessed physically. At some point this
< * should probably be cleaned up but there is no easy way to
< * do it.
< */
---
> /**
> * This code says that all accesses to palcode (instruction
> * and data) are valid since there isn't a va->pa mapping
> * because palcode is accessed physically. At some point this
> * should probably be cleaned up but there is no easy way to
> * do it.
> */
190,191c186,187
< if (PcPAL(va) || va < 0x10000)
< return true;
---
> if (PcPAL(va) || va < 0x10000)
> return true;
193,201c189,197
< Addr ptbr = context->readMiscRegNoEffect(IPR_PALtemp20);
< PageTableEntry pte =
< kernel_pte_lookup(context->getPhysProxy(), ptbr, va);
< if (!pte.valid()) {
< DPRINTF(GDBAcc, "acc: %#x pte is invalid\n", va);
< return false;
< }
< va += PageBytes;
< } while (va < last_va);
---
> Addr ptbr = context->readMiscRegNoEffect(IPR_PALtemp20);
> PageTableEntry pte =
> kernel_pte_lookup(context->getPhysPort(), ptbr, va);
> if (!pte.valid()) {
> DPRINTF(GDBAcc, "acc: %#x pte is invalid\n", va);
> return false;
> }
> va += PageBytes;
> } while (va < last_va);
203,205c199,203
< DPRINTF(GDBAcc, "acc: %#x mapping is valid\n", va);
< return true;
< #endif
---
> DPRINTF(GDBAcc, "acc: %#x mapping is valid\n", va);
> return true;
> } else {
> panic("acc function needs to be rewritten for SE mode\n");
> }
317,324d314
<
< bool
< RemoteGDB::insertHardBreak(Addr addr, size_t len)
< {
< warn_once("Breakpoints do not work in Alpha PAL mode.\n"
< " See PCEventQueue::doService() in cpu/pc_event.cc.\n");
< return BaseRemoteGDB::insertHardBreak(addr, len);
< }