target/sparc: Check for transaction failures in MXCC stream ASI accesses
commit776095d3cd751a58469b68f652c1ab6785f63652
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 1 Aug 2019 18:30:08 +0000 (1 19:30 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 17 Sep 2019 11:01:00 +0000 (17 12:01 +0100)
tree43535ce626eff6d8c7b0d357ed4ba99163f250f6
parentb9f5fdad49c74583dcf9fcba0805b148e3992e13
target/sparc: Check for transaction failures in MXCC stream ASI accesses

Currently the ld/st_asi helper functions make calls to the
ld*_phys() and st*_phys() functions for those ASIs which
imply direct accesses to physical addresses. These implicitly
rely on the unassigned_access hook to cause them to generate
an MMU fault if the access fails.

Switch to using the address_space_* functions instead, which
return a MemTxResult that we can check. This means that when
we switch SPARC over to using the do_transaction_failed hook
we'll still get the same MMU faults we did before.

This commit converts the ASIs which do MXCC stream source
and destination accesses.

It's not clear to me whether raising an MMU fault like this
is the correct behaviour if we encounter a bus error, but
we retain the same behaviour that the old unassigned_access
hook would implement.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 20190801183012.17564-4-peter.maydell@linaro.org
target/sparc/ldst_helper.c