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