Hello. I am trying to atomically translate some virtual addresses in my prefetcher. The function I have defined for this purpose is:
Addr BFS::translateAddr(Addr vaddr, PacketPtr &pkt) { DPRINTF(BFS, "Entered translateAddr with vaddr: %#x\n", vaddr); RequestPtr req = std::make_shared<Request>( vaddr, blkSize, 0, requestorId, 0, pkt->req->contextId()); Fault f = tlb->translateAtomic(req, cache->system->threads[req->contextId()], BaseTLB::Read); if ( f != NoFault ) DPRINTF(BFS, "BFS Translation Failed.\n"); else { DPRINTF(BFS, "BFS translation succeded with paddr: %#x\n", req->getPaddr()); } return req->getPaddr(); } When executing this code in ARM SE mode, everything works fine. But in FS mode, I get this error: fatal: system.cpu.mmu.dtb.walker.dma: Unconnected port! I am sharing the last portion of the debug output with TLB flag: 1343690404500: system.cpu.dcache.prefetcher: Entered translateAddr with vaddr: 0x532d00 1343690404500: system.cpu.mmu.dtb: translateFs addr 0x532d00, mode 0, st2 0, scr 0 sctlr 0x3475d91d flags 0 tranType 0x0 1343690404500: system.cpu.mmu.dtb: TLB Miss: Starting hardware table walker for 0x532d00(91:0) 1343690404500: system.cpu.mmu.dtb.walker: Beginning table walk for address 0x532d00, TCR: 0x32b5593519 1343690404500: system.cpu.mmu.dtb.walker: - Selecting TTBR0 (AArch64) I am sure that my vaddr is a valid address. Can you please help me understanding the cause of the error? Thanks a lot. _______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s