[OpenBIOS] [PATCH] SPARC32 : WIM register update delay
Blue Swirl
blauwirbel at gmail.com
Sat Jan 26 13:50:58 CET 2013
Thanks, applied.
On Tue, Jan 22, 2013 at 9:33 PM, Olivier DANET <odanet at caramail.com> wrote:
> The SparcV8 standard states, page 134 :
> "If any of the three instructions after a write state register instruction reads any field
> that was changed by the original write state register instruction, the contents of that
> field read by that instruction are undefined."
> The restore instruction depends on the %WIM register, three NOPs must be inserted.
>
> diff a/openbios-devel/arch/sparc32/wuf.S b/openbios-devel/arch/sparc32/wuf.S
> --- a/openbios-devel/arch/sparc32/wuf.S
> +++ b/openbios-devel/arch/sparc32/wuf.S
> @@ -121,7 +121,7 @@ fnwin_patch1: srl %t_wim, 7, %twin_tmp2
> fnwin_patch2: and %twin_tmp1, 0xff, %twin_tmp1
>
> wr %twin_tmp1, 0x0, %wim /* Make window 'I' invalid */
> -
> + WRITE_PAUSE
> restore %g0, %g0, %g0 /* Restore to window 'O' */
>
> /* Trapped from kernel, we trust that the kernel does not
>
> Signed-off-by: Olivier DANET <odanet at caramail.com>
More information about the OpenBIOS
mailing list