Port-amiga archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: AmigaOS 3.2 kickstart ROM crashing on NetBSD partitions (Was NetBSD/amiga sysinst)


On Fri, 24 Mar 2023, David Brownlee wrote:

> Potentially its "just" a matter of adjusting the stubs
> https://nxr.netbsd.org/xref/src/sys/arch/amiga/stand/bootblock/boot/libstubs.s
> used by the bootloader (which is built as a "normal" NetBSD binary
> then adjusted to be suitable for loading by AmigaOS
> https://nxr.netbsd.org/xref/src/sys/arch/amiga/stand/bootblock/ )
> ("just" is doing a lot of heavy lifting there)
> Any m68k coder up to a little assembly challenge and debugging? :) (It
> should be relatively quick to setup a host system to rebuild the
> NetBSD boot blocks and write them to an appropriate location in an hdf
> file if you're using UAE to debug - I can certainly help with that for
> anyone less familiar with the NetBSD side :)

Well, I spent my afternoon looking into this a bit, managed to cross-build
the Amiga miniroot in reasonable time (Ryzen 9 3900x to the rescue :P) and
even patch the bootblock with debug messages to my liking.

I was sure I've seen similar alerts already, waaay back when I first tried
NetBSD, and sure enough, I was right - and wrong at the same time. Turns
out, my Amiga 2000/Blizzard 2060 also throws all sorts of fun alerts when
trying to boot NetBSD, particularly the memory node/memory list parsing
code in bootblock's main.c, just before loarding the kernel. Having said
this, these are probably(?) unrelated to the issues we see with Kickstart
3.2. (The machine runs 3.1, v40.63, a.k.a. original C= ROM). I did not try
to fix those issues for now, just found out where they come from.

But while we're at it, I found another "fun" issue: If a certain SCSI
device is already set to synchronous mode by the Amiga-side
2060scsi.device on the Blizzard 2060 SCSI controller (FAS216 based),
before the kernel boots, the detection of the device set to synchronous
mode will fail with various funky phase errors, while the detection of
devices set to async mode will succeed. NetBSD then happily sets all
detected devices to 10MB/sec sync mode, and everything works.

Now the best part is - both devices, sync and async are actually just
virtual devices served by the same ZuluSCSI RP2040 board. :)

But I guess I stop playing with the real hardware now, and lets try to
repro this under UAE with KS 3.2 instead.


Home | Main Index | Thread Index | Old Index