Port-m68k archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Intermediate step for new arch for lc040 compatibility
On Tue, 29 Apr 2025 15:40:34 Tetsuya Isaki wrote:
> At Tue, 29 Apr 2025 07:55:10 +1000,
>
> Nat Sloss wrote:
> > As opposed to 14 failures with this change (same for mc68030 with
> > fp emulation
> > and a full '040 in quemu).
>
> Have you confirmed that the atf tests you used have passed on real,
> known-good hardware?
>
> You cannot use QEMU for such a purpose.
> QEMU emulates 68040 as if it were 68040+6888x, which, of course,
> does not exist. (see also source code in qemu/target/m68k/)
>
> # In addition, QEMU 6888x emulation is not good quality. From
> # this viewpoint as well, you cannot use it as a test reference,
> # at least.
>
>
> By the way, we can see the 68040+6888x botch easily as follows:
> Build the kernel with this patch.
>
> ```
> --- src/sys/arch/virt68k/conf/GENERIC.orig
> +++ src/sys/arch/virt68k/conf/GENERIC
> @@ -32,13 +32,11 @@
> makeoptions COPY_SYMTAB=1
>
> # CPUs this kernel supports
> -options M68030
> options M68040
>
> maxusers 16
>
> # Needed on m68040 boards to emulate some missing FP instructions
> -options FPSP
>
> options DDB
> options DIAGNOSTIC
> ```
>
> Then, run virt68k on QEMU with this kernel.
>
> qv68k# dmesg -t | grep 680
> Qemu 9.2.2: MC68040+MMU+FPU, 4k+4k on-chip physical I/D caches
> qv68k# cat a.c
> #include <stdio.h>
> int main(int ac, char *av[])
> {
> float result;
> __asm__ volatile(
> "fmovecr #0,%%fp0;" /* fp0 <- pi */
> "fcos.x %%fp0,%%fp0;"
> "fmove.s %%fp0,%0"
>
> : "=d" (result)
>
> );
> printf("cos(pi)=%f\n", result);
> return 0;
> }
> qv68k# cc a.c
> qv68k# ./a.out
> cos(pi)=-1.000000
>
> QEMU/68040 ran unimplemented fcos (and fmovecr) instructions,
> without any software support (FPSP)!
> (In reality, if correctly emulated, you should probably see several
> unimplemented FP signals before you reach the login prompt.)
> ---
> Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>
Thank you for letting me know how qemu works in this regard - it explains the
failures I have seen.
Unfortunately all of my m68k machines have no fpu and I am relying heavily on
emultion (for m68k with fpu) in this instance.
Thanks for the info and looking at this,
Best regards,
Nat
Home |
Main Index |
Thread Index |
Old Index