[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/6] target-mips: add MDI semihosting
From: |
Nathan Froyd |
Subject: |
[Qemu-devel] [PATCH 0/6] target-mips: add MDI semihosting |
Date: |
Fri, 17 Jul 2009 13:33:16 -0700 |
This patch series adds semihosting for bare-metal 32-bit MIPS targets
that follows the MDI semihosting model used in MIPS's development
product.
The semihosting protocol works as follows:
- All semihosted calls go through _mdi_syscall, which in the absence of
simulator support, returns ENOSYS;
- The address of _mdi_syscall is stored in a special section, .sdeosabi;
- When an MDI semihosting-aware simulator is used, a breakpoint is
placed at _mdi_syscall;
- When this breakpoint is hit, the simulator performs the requested
action and returns control to the program.
Discovering the address of _mdi_syscall is straightforward when the
program is passed in via -kernel. We extended the ELF loader interface
slightly so that the caller could inspect the sections of the binary and
act on the contents of the sections if they so chose. Things are
slightly trickier when using QEMU as a GDB remote target, as the program
will not be provided via -kernel, but via `load' from within GDB. This
second method requires that we implement qSymbol support in the GDB
stub so we can directly ask GDB where _mdi_syscall is.
The patches have been built for {mips,mips64}-softmmu targets and tested
with the libstdc++ testsuite (which exercises things like read(),
write(), and lseek()).
-Nathan
- [Qemu-devel] [PATCH 0/6] target-mips: add MDI semihosting,
Nathan Froyd <=
- [Qemu-devel] [PATCH 1/6] sysemu: add section_callback argument to ELF loader, Nathan Froyd, 2009/07/17
- [Qemu-devel] [PATCH 5/6] enable --semihosting option for TARGET_MIPS, Nathan Froyd, 2009/07/17
- [Qemu-devel] [PATCH 4/6] target-mips: add MDI semihosting support to mipssim machine, Nathan Froyd, 2009/07/17
- [Qemu-devel] [PATCH 3/6] add implementation of MIPS semihosting, Nathan Froyd, 2009/07/17
- [Qemu-devel] [PATCH 2/6] add softmmu_target_strlen, Nathan Froyd, 2009/07/17
- [Qemu-devel] [PATCH 6/6] gdbstub: add qSymbol handling for TARGET_MIPS, Nathan Froyd, 2009/07/17