[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAMuHMdVUWZcP1E-T7mu7txYODhRK0vmBRXXTs51vuBewZQj_kA@mail.gmail.com>
Date: Wed, 8 May 2024 13:46:35 +0200
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Finn Thain <fthain@...ux-m68k.org>
Cc: Joshua Thompson <funaho@...ai.org>, Stan Johnson <userm57@...oo.com>, linux-m68k@...ts.linux-m68k.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] m68k/mac: Fix reboot hang on Mac IIci
On Sat, May 4, 2024 at 6:43 AM Finn Thain <fthain@...ux-m68k.org> wrote:
> Calling mac_reset() on a Mac IIci does reset the system, but what
> follows is a POST failure that requires a manual reset to resolve.
> Avoid that by using the 68030 asm implementation instead of the C
> implementation.
>
> Apparently the SE/30 has a similar problem as it has used the asm
> implementation since before git. This patch extends that solution to
> other systems with a similar ROM.
>
> After this patch, the only systems still using the C implementation are
> 68040 systems where adb_type is either MAC_ADB_IOP or MAC_ADB_II. This
> implies a 1 MiB Quadra ROM.
>
> This now includes the Quadra 900/950, which previously fell through to
> the "should never get here" catch-all.
>
> Reported-and-tested-by: Stan Johnson <userm57@...oo.com>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Finn Thain <fthain@...ux-m68k.org>
> ---
> Tested on Mac IIci & IIfx, Quadra 630 & 650, Daystar Mac II, QEMU.
>
> Some corner cases remain problematic. For example, a stock Mac II or
> a Mac IIci with a 68040 accelerator will still use the C routine, because
> mac_reset() lacks an asm implementation for '020 and '040 systems.
LGTM, so
Reviewed-by: Geert Uytterhoeven <geert@...ux-m68k.org>
i.e. will queue in the m68k tree for v6.10.
> However, amiga_reset(), atari_reset() and mac_reset() do have a lot in
> common, which suggests that a generic asm reset function parameterized by
> final JMP location may be a useful refactoring. This would provide the
> '020 and '040 handling missing here and could potentially replace
> hp300_reset(), dn_dummy_reset() and q40_reset().
Sounds like a good idea!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68korg
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Powered by blists - more mailing lists