<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/target/hppa/op_helper.c, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/target/hppa/op_helper.c?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/target/hppa/op_helper.c?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2022-08-19T13:59:14+00:00</updated>
<entry>
<title>target/hppa: Fix proberi instruction emulation for linux-user</title>
<updated>2022-08-19T13:59:14+00:00</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2022-08-16T07:58:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=6fab0c182dabaca5b3d56e60a8de3122ce9afbea'/>
<id>urn:sha1:6fab0c182dabaca5b3d56e60a8de3122ce9afbea</id>
<content type='text'>
The proberi assembler instruction checks the read/write access rights
for the page of a given address and shall return a value of 1 if the
test succeeds and a value of 0 on failure in the target register.

But when run in linux-user mode, qemu currently simply returns the
return code of page_check_range() which returns 0 on success and -1 on
failure, which is the opposite of what proberi should return.

Fix it by checking the return code of page_check_range() and return the
expected return value.

The easiest way to reproduce the issue is by running
"/lib/ld.so.1 --version" in a chroot which fails without this patch.
At startup of ld.so the __canonicalize_funcptr_for_compare() function is
used to resolve the function address out of a function descriptor, which
fails because proberi (due to the wrong return code) seems to indicate
that the given address isn't accessible.

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>compiler.h: replace QEMU_NORETURN with G_NORETURN</title>
<updated>2022-04-21T13:03:51+00:00</updated>
<author>
<name>Marc-André Lureau</name>
</author>
<published>2022-04-20T13:26:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=8905770b27be326d12a704629f3cb715642db6cc'/>
<id>urn:sha1:8905770b27be326d12a704629f3cb715642db6cc</id>
<content type='text'>
G_NORETURN was introduced in glib 2.68, fallback to G_GNUC_NORETURN in
glib-compat.

Note that this attribute must be placed before the function declaration
(bringing a bit of consistency in qemu codebase usage).

Signed-off-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
Reviewed-by: Daniel P. Berrangé &lt;berrange@redhat.com&gt;
Reviewed-by: Warner Losh &lt;imp@bsdimp.com&gt;
Message-Id: &lt;20220420132624.2439741-20-marcandre.lureau@redhat.com&gt;
</content>
</entry>
<entry>
<title>exec/exec-all: Move 'qemu/log.h' include in units requiring it</title>
<updated>2022-02-21T09:18:06+00:00</updated>
<author>
<name>Philippe Mathieu-Daudé</name>
</author>
<published>2022-02-07T08:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=cd6174843b0896c9e57176159b38ecba45bade0e'/>
<id>urn:sha1:cd6174843b0896c9e57176159b38ecba45bade0e</id>
<content type='text'>
Many files use "qemu/log.h" declarations but neglect to include
it (they inherit it via "exec/exec-all.h"). "exec/exec-all.h" is
a core component and shouldn't be used that way. Move the
"qemu/log.h" inclusion locally to each unit requiring it.

Signed-off-by: Philippe Mathieu-Daudé &lt;f4bug@amsat.org&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Acked-by: Thomas Huth &lt;thuth@redhat.com&gt;
Message-Id: &lt;20220207082756.82600-10-f4bug@amsat.org&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>hppa: Add support for an emulated TOC/NMI button.</title>
<updated>2022-02-02T17:46:42+00:00</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2022-01-05T22:09:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=4a4554c6c561971197dffc80d641dc17ee2314dd'/>
<id>urn:sha1:4a4554c6c561971197dffc80d641dc17ee2314dd</id>
<content type='text'>
Almost all PA-RISC machines have either a button that is labeled with 'TOC' or
a BMC/GSP function to trigger a TOC.  TOC is a non-maskable interrupt that is
sent to the processor.  This can be used for diagnostic purposes like obtaining
a stack trace/register dump or to enter KDB/KGDB in Linux.

This patch adds support for such an emulated TOC button.

It wires up the qemu monitor "nmi" command to trigger a TOC.  For that it
provides the hppa_nmi function which is assigned to the nmi_monitor_handler
function pointer.  When called it raises the EXCP_TOC hardware interrupt in the
hppa_cpu_do_interrupt() function.  The interrupt function then calls the
architecturally defined TOC function in SeaBIOS-hppa firmware (at fixed address
0xf0000000).

According to the PA-RISC PDC specification, the SeaBIOS firmware then writes
the CPU registers into PIM (processor internal memmory) for later analysis.  In
order to write all registers it needs to know the contents of the CPU "shadow
registers" and the IASQ- and IAOQ-back values. The IAOQ/IASQ values are
provided by qemu in shadow registers when entering the SeaBIOS TOC function.
This patch adds a new aritificial opcode "getshadowregs" (0xfffdead2) which
restores the original values of the shadow registers. With this opcode SeaBIOS
can store those registers as well into PIM before calling an OS-provided TOC
handler.

To trigger a TOC, switch to the qemu monitor with Ctrl-A C, and type in the
command "nmi".  After the TOC started the OS-debugger, exit the qemu monitor
with Ctrl-A C.

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>target/hppa: Fix atomic_store_3 for STBY</title>
<updated>2021-12-31T05:40:47+00:00</updated>
<author>
<name>Richard Henderson</name>
</author>
<published>2021-12-29T21:39:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=9f54dc1ce69045f1a5f9f2339b81274838901a3f'/>
<id>urn:sha1:9f54dc1ce69045f1a5f9f2339b81274838901a3f</id>
<content type='text'>
The parallel version of STBY did not take host endianness into
account, and also computed the incorrect address for STBY_E.

Bswap twice to handle the merge and store.  Compute mask inside
the function rather than as a parameter.  Force align the address,
rather than subtracting one.

Generalize the function to system mode by using probe_access().

Cc: qemu-stable@nongnu.org
Tested-by: Helge Deller &lt;deller@gmx.de&gt;
Reported-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>exec: Use cpu_untagged_addr in g2h; split out g2h_untagged</title>
<updated>2021-02-16T11:04:53+00:00</updated>
<author>
<name>Richard Henderson</name>
</author>
<published>2021-02-12T18:48:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=3e8f1628e864201692aa28996f8f64f9761555af'/>
<id>urn:sha1:3e8f1628e864201692aa28996f8f64f9761555af</id>
<content type='text'>
Use g2h_untagged in contexts that have no cpu, e.g. the binary
loaders that operate before the primary cpu is created.  As a
colollary, target_mmap and friends must use untagged addresses,
since they are used by the loaders.

Use g2h_untagged on values returned from target_mmap, as the
kernel never applies a tag itself.

Use g2h_untagged on all pc values.  The only current user of
tags, aarch64, removes tags from code addresses upon branch,
so "pc" is always untagged.

Use g2h with the cpu context on hand wherever possible.

Use g2h_untagged in lock_user, which will be updated soon.

Reviewed-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Message-id: 20210212184902.1251044-13-richard.henderson@linaro.org
Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
</content>
</entry>
<entry>
<title>overall/alpha tcg cpus|hppa: Fix Lesser GPL version number</title>
<updated>2020-11-15T15:43:54+00:00</updated>
<author>
<name>Chetan Pant</name>
</author>
<published>2020-10-23T12:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=d6ea423635958b0aaa1d58462d1603fd35194acf'/>
<id>urn:sha1:d6ea423635958b0aaa1d58462d1603fd35194acf</id>
<content type='text'>
There is no "version 2" of the "Lesser" General Public License.
It is either "GPL version 2.0" or "Lesser GPL version 2.1".
This patch replaces all occurrences of "Lesser GPL version 2" with
"Lesser GPL version 2.1" in comment section.

Signed-off-by: Chetan Pant &lt;chetan4windows@gmail.com&gt;
Message-Id: &lt;20201023123353.19796-1-chetan4windows@gmail.com&gt;
Reviewed-by: Thomas Huth &lt;thuth@redhat.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>qemu/atomic.h: rename atomic_ to qatomic_</title>
<updated>2020-09-23T15:07:44+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2020-09-23T10:56:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=d73415a315471ac0b127ed3fad45c8ec5d711de1'/>
<id>urn:sha1:d73415a315471ac0b127ed3fad45c8ec5d711de1</id>
<content type='text'>
clang's C11 atomic_fetch_*() functions only take a C11 atomic type
pointer argument. QEMU uses direct types (int, etc) and this causes a
compiler error when a QEMU code calls these functions in a source file
that also included &lt;stdatomic.h&gt; via a system header file:

  $ CC=clang CXX=clang++ ./configure ... &amp;&amp; make
  ../util/async.c:79:17: error: address argument to atomic operation must be a pointer to _Atomic type ('unsigned int *' invalid)

Avoid using atomic_*() names in QEMU's atomic.h since that namespace is
used by &lt;stdatomic.h&gt;. Prefix QEMU's APIs with 'q' so that atomic.h
and &lt;stdatomic.h&gt; can co-exist. I checked /usr/include on my machine and
searched GitHub for existing "qatomic_" users but there seem to be none.

This patch was generated using:

  $ git grep -h -o '\&lt;atomic\(64\)\?_[a-z0-9_]\+' include/qemu/atomic.h | \
    sort -u &gt;/tmp/changed_identifiers
  $ for identifier in $(&lt;/tmp/changed_identifiers); do
        sed -i "s%\&lt;$identifier\&gt;%q$identifier%g" \
            $(git grep -I -l "\&lt;$identifier\&gt;")
    done

I manually fixed line-wrap issues and misaligned rST tables.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@redhat.com&gt;
Acked-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Message-Id: &lt;20200923105646.47864-1-stefanha@redhat.com&gt;
</content>
</entry>
<entry>
<title>softfloat: Name compare relation enum</title>
<updated>2020-05-19T15:41:45+00:00</updated>
<author>
<name>Richard Henderson</name>
</author>
<published>2020-05-05T17:22:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=71bfd65c5fcd72f8af2735905415c7ce4220f6dc'/>
<id>urn:sha1:71bfd65c5fcd72f8af2735905415c7ce4220f6dc</id>
<content type='text'>
Give the previously unnamed enum a typedef name.  Use it in the
prototypes of compare functions.  Use it to hold the results
of the compare functions.

Reviewed-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Reviewed-by: Philippe Mathieu-Daudé &lt;f4bug@amsat.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>target/hppa: Allow, but diagnose, LDCW aligned only mod 4</title>
<updated>2020-01-27T18:49:51+00:00</updated>
<author>
<name>Richard Henderson</name>
</author>
<published>2020-01-17T01:46:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=b1af755c33bf0d690553a5ccd93689dfd15a98e8'/>
<id>urn:sha1:b1af755c33bf0d690553a5ccd93689dfd15a98e8</id>
<content type='text'>
The PA-RISC 1.1 specification says that LDCW must be aligned mod 16
or the operation is undefined.  However, real hardware only generates
an unaligned access trap for unaligned mod 4.

Match real hardware, but diagnose with GUEST_ERROR a violation of
the specification.

At the same time fix a bug in the initialization of mop, where the
size was specified twice, and another to free the zero temporary.

Tested-by: Helge Deller &lt;deller@gmx.de&gt;
Reported-by: Helge Deller &lt;deller@gmx.de&gt;
Suggested-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
</feed>
