Port-vax archive

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

Re: Race in MSCP (ra/rx) driver



Hi,

Den 2020-08-27 kl. 21:08, skrev Mouse:
On rereading, it occurs to me....

In simh, the initialization steps of the MSCP should be possible to
have instantaneous.  No reason to emulate that part of the
controller, is there?
Maybe.  There's comparably sloppy code out there in the init phase,
code that requires delays to work - see below.  And, depending on what
you count as "the initialization steps", what I quoted may count - that
was causing me trouble at ONLINE time.  That is, the command whose
response is being awaited there is an ONLINE command, which certainly
can be seen as part of initialization.

The boot-block code I mentioned, the code I didn't post a fix for
because modern NetBSD's version is so different I'm not sure whether it
has trouble, that bug strikes in response to setting the GO bit after
step 4 of initialization, which I would say counts as part of
initialization.  My fix there has two parts.  One is that the code
never set up the Qbus mapping registers (see below for more on that);
the other was the race.
The mapping registers are setup by ROM VMB as described in the docs, hence no need to do it again. Also, this code had a size constraint of boot block size, so not much error checking could be done. IIRC the init code comes from an assembler example code of UDA50 init I found somewhere (around 25 years ago).

Note that boot/xxboot had become quite ugly around year 2000 so I rewrote it.   It's quite different today.

-- Ragge




Home | Main Index | Thread Index | Old Index