Hi Gabe, Yes it should use virtual addresses. I think the reason why we are using physical addresses is because usually semihosting is used in baremetal environments where virtual address *might* be identical to physical addresses (virtual memory is disabled). But since nothing stops semihosted environments to use virtual memory, we should move towards VirtProxy
Giacomo ________________________________ From: gem5-dev <[email protected]> on behalf of Gabe Black <[email protected]> Sent: 29 February 2020 01:33 To: gem5 Developer List <[email protected]> Subject: [gem5-dev] two ARM semihosting questions Hi ARM developers. I have two ARM semihosting questions: 1. What address space is the parameter pointer supposed to be in? They physical space, or whatever a load instruction would use at that point? The current implementation in gem5 seems to assume a physical pointer, but I'd always assumed virtual. If it's virtual it should be using getVirtProxy() and not getPhysProxy. Also the secure port proxy may need revamped a little to also do translation. 2. What scope is the state within the semihosting interface? Is it system level, or simulation level? Currently the state is tracked at system level which seems plausible, but since those are often and occasionally incorrect treated as equivalent I thought it best to check. Gabe _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
