Deleted Added
sdiff udiff text old ( 4996:e827e57a01f9 ) new ( 4997:e7380529bd2d )
full compact
1/*
2 * Copyright (c) 2001-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 521 unchanged lines hidden (view full) ---

530 e = lookup(vaddr, part_id, false, context);
531 }
532
533 if (e == NULL || !e->valid) {
534 writeTagAccess(vaddr, context);
535 if (real)
536 return new InstructionRealTranslationMiss;
537 else
538 return new FastInstructionAccessMMUMiss;
539 }
540
541 // were not priviledged accesing priv page
542 if (!priv && e->pte.priv()) {
543 writeTagAccess(vaddr, context);
544 writeSfsr(false, ct, false, PrivViolation, asi);
545 return new InstructionAccessException;
546 }

--- 192 unchanged lines hidden (view full) ---

739 e = lookup(vaddr, part_id, real, context);
740
741 if (e == NULL || !e->valid) {
742 writeTagAccess(vaddr, context);
743 DPRINTF(TLB, "TLB: DTB Failed to find matching TLB entry\n");
744 if (real)
745 return new DataRealTranslationMiss;
746 else
747 return new FastDataAccessMMUMiss;
748
749 }
750
751 if (!priv && e->pte.priv()) {
752 writeTagAccess(vaddr, context);
753 writeSfsr(vaddr, write, ct, e->pte.sideffect(), PrivViolation, asi);
754 return new DataAccessException;
755 }

--- 92 unchanged lines hidden (view full) ---

848regAccessOk:
849handleMmuRegAccess:
850 DPRINTF(TLB, "TLB: DTB Translating MM IPR access\n");
851 req->setMmapedIpr(true);
852 req->setPaddr(req->getVaddr());
853 return NoFault;
854};
855
856Tick
857DTB::doMmuRegRead(ThreadContext *tc, Packet *pkt)
858{
859 Addr va = pkt->getAddr();
860 ASI asi = (ASI)pkt->req->getAsi();
861 uint64_t temp;
862
863 DPRINTF(IPR, "Memory Mapped IPR Read: asi=%#X a=%#x\n",

--- 406 unchanged lines hidden (view full) ---

1270doMmuWriteError:
1271 panic("need to impl DTB::doMmuRegWrite() got asi=%#x, va=%#x d=%#x\n",
1272 (uint32_t)pkt->req->getAsi(), pkt->getAddr(), data);
1273 }
1274 pkt->makeAtomicResponse();
1275 return tc->getCpuPtr()->cycles(1);
1276}
1277
1278void
1279DTB::GetTsbPtr(ThreadContext *tc, Addr addr, int ctx, Addr *ptrs)
1280{
1281 uint64_t tag_access = mbits(addr,63,13) | mbits(ctx,12,0);
1282 ITB * itb = tc->getITBPtr();
1283 ptrs[0] = MakeTsbPtr(Ps0, tag_access,
1284 c0_tsb_ps0,
1285 c0_config,

--- 150 unchanged lines hidden ---