Port-next68k archive

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

next68k: current issues



Hello all,

I am the maintainer of Previous (NeXT Computer Emulator). Mr. Engel might have already introduced me. We are trying to make NetBSD boot on emulated NeXT hardware and have run into some issues. I hope to have sorted out the problems that were inside Previous itself. Some issues left seem to be inside NetBSD:

1. Turbo VRAM: 
Obviously NetBSD uses the same addresses for Turbo NeXTcube and NeXTstation as for the non-Turbo ones. In fact the Turbos use different locations for their VRAM: 0x0C000000 (same for color and monochrome, only sizes vary)
If I hack Previous to have the VRAM at that location, NetBSD boots on all Turbo systems (color and monochrome).

2. Incomplete SCSI transfer:
The SCSI driver in the boot program (bootloader) seems to be a bit too restrictive when it comes to transfer length. I have the problem, that a shorter than expected inquiry reply causes the bootloader to fail. Inquiry message length varies between manufacturers and short messages should not cause an error. I think this could be fixed easily by setting next68k/stand/boot/scsi.c, line 446 from #if 1 to #if 0

    if (resid != 0)
    {
#if 1 <—— CHANGE THIS TO 0
      printf("WARNING: unexpected %d characters remain in DMA\n",resid);
	scsierror("DMA transfer incomplete");
	return -1;
#endif
    }

3. There seems to be an issue with the structure of SCSI disks (might also be a usage problem by me):
I do these steps:

A: disklabel -i /dev/sd0c
> a
> 4.2BSD
> [0c, 0s 0M]
> $
> W
> y
> Q

B: installboot -v /dev/rsd0c /usr/mdec/boot
C: newfs /dev/rsd0a

This leads to a disk that can be mounted and I can write and read files. But that disk can’t be used for booting, because the bootloader is overwritten by newfs. If I swap steps B and C I get a disk with broken filesystem, but the bootloader does work. Obviously installboot and newfs write to the same location and overwrite each others results.

On a valid disk with 512 byte blocks it should be (all numbers are in 512-byte-blocks):
Label: Block 0, 15, 30, 45 (4 copies)
Bootloader: Block 64, 192 (2 copies)
Front porch: 320 Blocks


I think issues 1 and 2 need to be fixed in NetBSD while issue 3 might just be a usage issue, but I’m not sure.

Best wishes,
Andreas



Home | Main Index | Thread Index | Old Index