<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qemu/qemu.git/linux-user/microblaze, branch master</title>
<subtitle>QEMU main repository</subtitle>
<id>https://git.landau.one/pub/scm/virt/qemu/qemu.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/'/>
<updated>2026-03-05T18:54:09+00:00</updated>
<entry>
<title>linux-user: make syscall emulation interruptible</title>
<updated>2026-03-05T18:54:09+00:00</updated>
<author>
<name>Florian Hofhammer</name>
<email>florian.hofhammer@epfl.ch</email>
</author>
<published>2026-03-05T10:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=9097087147cfc6b3f6412a67e07fd1f63a1ee325'/>
<id>urn:sha1:9097087147cfc6b3f6412a67e07fd1f63a1ee325</id>
<content type='text'>
The syscall emulation code previously wasn't interruptible via
cpu_loop_exit(), as this construct relies on a longjmp target that is not
live anymore in the syscall handling code. Consequently, longjmp() would
operate on a (potentially overwritten) stale jump buffer. This patch adds an additional
setjmp and the necessary handling around it to make longjmp() (and by
proxy cpu_loop_exit() safe to call even within a syscall context.

Reviewed-by: Warner Losh &lt;imp@bsdimp.com&gt;
Reviewed-by: Pierrick Bouvier &lt;pierrick.bouvier@linaro.org&gt;
Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Signed-off-by: Florian Hofhammer &lt;florian.hofhammer@epfl.ch&gt;
Link: https://lore.kernel.org/qemu-devel/20260305-setpc-v5-v7-3-4c3adba52403@epfl.ch
Signed-off-by: Pierrick Bouvier &lt;pierrick.bouvier@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/microblaze: Fix little-endianness binary</title>
<updated>2025-10-16T15:07:52+00:00</updated>
<author>
<name>Philippe Mathieu-Daudé</name>
<email>philmd@linaro.org</email>
</author>
<published>2025-10-06T15:36:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=91fc6d8101de97c588e0a4263cf4f6148b3e702a'/>
<id>urn:sha1:91fc6d8101de97c588e0a4263cf4f6148b3e702a</id>
<content type='text'>
MicroBlaze CPU model has a "little-endian" property, pointing to
the @endi internal field. Commit c36ec3a9655 ("hw/microblaze:
Explicit CPU endianness") took care of having all MicroBlaze
boards with an explicit default endianness, so later commit
415aae543ed ("target/microblaze: Consider endianness while
translating code") could infer the endianness at runtime from
the @endi field, and not a compile time via the TARGET_BIG_ENDIAN
definition. Doing so, we forgot to make the endianness explicit
on user emulation, so there all CPUs are started with the default
"little-endian=off" value, leading to breaking support for little
endian binaries:

  $ readelf -h ./hello-world-mbel
  ELF Header:
    Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
    Class:                             ELF32
    Data:                              2's complement, little endian

  $ qemu-microblazeel ./hello-world-mbel
  qemu: uncaught target signal 11 (Segmentation fault) - core dumped
  Segmentation fault (core dumped)

Fix by restoring the previous behavior of starting with the
builtin endianness of the binary:

  $ qemu-microblazeel ./hello-world-mbel
  Hello World

Cc: qemu-stable@nongnu.org
Fixes: 415aae543ed ("target/microblaze: Consider endianness while translating code")
Reported-by: Edgar E. Iglesias &lt;edgar.iglesias@gmail.com&gt;
Signed-off-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Reviewed-by: Edgar E. Iglesias &lt;edgar.iglesias@amd.com&gt;
Message-Id: &lt;20251006173350.17455-1-philmd@linaro.org&gt;
</content>
</entry>
<entry>
<title>bsd-user, linux-user: introduce qemu_process_cpu_events</title>
<updated>2025-09-17T17:00:56+00:00</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2025-08-29T14:53:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=758e5de501f78d4ef53a43e0c5a4783cd807b5be'/>
<id>urn:sha1:758e5de501f78d4ef53a43e0c5a4783cd807b5be</id>
<content type='text'>
Add a user-mode emulation version of the function.  More will be
added later, for now it is just process_queued_cpu_work.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>linux-user: Rename elf_check_arch</title>
<updated>2025-08-29T21:04:04+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-07-29T21:26:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=eb727cc45a352ff259c4c2d85456f0412e738d43'/>
<id>urn:sha1:eb727cc45a352ff259c4c2d85456f0412e738d43</id>
<content type='text'>
Rename to elf_check_machine to match ELF_MACHINE.
Remove the unnecessary definition for loongarch64.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user: Standardize on ELF_MACHINE not ELF_ARCH</title>
<updated>2025-08-29T21:04:04+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-07-29T21:23:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=e6b7635c9a33918c671e1f2ef4b17b5c2f279d66'/>
<id>urn:sha1:e6b7635c9a33918c671e1f2ef4b17b5c2f279d66</id>
<content type='text'>
PowerPC was the one outlier that defined both ELF_ARCH and
ELF_MACHINE; ELF_ARCH was defined incorrectly, necessitating
the definition of elf_check_arch.

However, the elf file header field in question is called
e_machine, so ELF_MACHINE is in fact the better name.

Mechanically change most target/target_elf.h files,
then adjust ppc/target_elf.h manually.

Do not provide a default for ELF_MACHINE.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user: Move elf parameters to microblaze/target_elf.h</title>
<updated>2025-08-29T21:04:04+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-07-29T20:38:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=db325955c715c4e4237b370cb65c03ca3414e60d'/>
<id>urn:sha1:db325955c715c4e4237b370cb65c03ca3414e60d</id>
<content type='text'>
Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/microblaze: Expand target_elf_gregset_t</title>
<updated>2025-08-29T21:04:04+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-08-28T01:55:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=e803a48c1ac72ed47b6490e3d7cf6b0cc7372e85'/>
<id>urn:sha1:e803a48c1ac72ed47b6490e3d7cf6b0cc7372e85</id>
<content type='text'>
Make use of the fact that target_elf_gregset_t is a proper structure.
Drop ELF_NREG, target_elf_greg_t, and tswapreg.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/microblaze: Fold target_pt_regs.r* to an array</title>
<updated>2025-08-29T21:04:04+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-08-28T05:28:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=e5c31ef558da16fb9cbb9e3a3c7247b60fdfd05b'/>
<id>urn:sha1:e5c31ef558da16fb9cbb9e3a3c7247b60fdfd05b</id>
<content type='text'>
Separately enumerating all 32 registers is not helpful.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/microblaze: Create target_ptrace.h</title>
<updated>2025-08-29T21:04:04+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-08-28T05:22:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=cf33264f19b566cda4b50ccfec9e87734b08971f'/>
<id>urn:sha1:cf33264f19b566cda4b50ccfec9e87734b08971f</id>
<content type='text'>
Move the target_pt_regs structure from target_syscall.h.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user: Move elf_core_copy_regs to microblaze/elfload.c</title>
<updated>2025-08-29T21:04:03+00:00</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2025-07-29T16:06:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/virt/qemu/qemu.git/commit/?id=e06b9c34eaa388e0503426c7831a2db977a472fd'/>
<id>urn:sha1:e06b9c34eaa388e0503426c7831a2db977a472fd</id>
<content type='text'>
Move elf_core_copy_regs to elfload.c.
Move HAVE_ELF_CORE_DUMP, ELF_NREGS, target_elf_gregset_t to target_elf.h.
For now, duplicate the definitions of target_elf_greg_t and tswapreg.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
</feed>
