lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 333/667] m68k: math-emu: Fix dependencies of math emulation support
    Date
    From: Geert Uytterhoeven <geert@linux-m68k.org>

    [ Upstream commit ed6bc6bf0a7d75e80eb1df883c09975ebb74e590 ]

    If CONFIG_M54xx=y, CONFIG_MMU=y, and CONFIG_M68KFPU_EMU=y:

    {standard input}:272: Error: invalid instruction for this architecture; needs 68000 or higher (68000 [68ec000, 68hc000, 68hc001, 68008, 68302, 68306, 68307, 68322, 68356], 68010, 68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060], cpu32 [68330, 68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349, 68360], fidoa [fido]) -- statement `sub.b %d1,%d3' ignored
    {standard input}:609: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `bfextu 4(%a1){%d0,#8},%d0' ignored
    {standard input}:752: Error: operands mismatch -- statement `mulu.l 4(%a0),%d3:%d0' ignored
    {standard input}:1155: Error: operands mismatch -- statement `divu.l %d0,%d3:%d7' ignored

    The math emulation support code is intended for 68020 and higher, and
    uses several instructions or instruction modes not available on coldfire
    or 68000.

    Originally, the dependency of M68KFPU_EMU on MMU was fine, as MMU
    support was only available on 68020 or higher. But this assumption
    was broken by the introduction of MMU support for M547x and M548x.

    Drop the dependency on MMU, as the code should work fine on 68020 and up
    without MMU (which are not yet supported by Linux, though).
    Add dependencies on M68KCLASSIC (to rule out Coldfire) and FPU (kernel
    has some type of floating-point support --- be it hardware or software
    emulated, to rule out anything below 68020).

    Fixes: 1f7034b9616e6f14 ("m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reviewed-by: Greg Ungerer <gerg@linux-m68k.org>
    Link: https://lore.kernel.org/r/18c34695b7c95107f60ccca82a4ff252f3edf477.1652446117.git.geert@linux-m68k.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/m68k/Kconfig.cpu | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu
    index 277d61a09463..29558055c71b 100644
    --- a/arch/m68k/Kconfig.cpu
    +++ b/arch/m68k/Kconfig.cpu
    @@ -338,7 +338,7 @@ comment "Processor Specific Options"

    config M68KFPU_EMU
    bool "Math emulation support"
    - depends on MMU
    + depends on M68KCLASSIC && FPU
    help
    At some point in the future, this will cause floating-point math
    instructions to be emulated by the kernel on machines that lack a
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 21:12    [W:3.379 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site