Subject: Various..
To: None <amiga@netbsd.org>
From: Tim Newsham <newsham@zang.kcc.hawaii.edu>
List: amiga
Date: 11/11/1994 10:25:26
(1)
I have found that none of the kernels I build without the options:

	options         "M68040"        # support for 040
	options         FPSP            # MC68040 floating point support

work.  The problem is, I have an '030.  My '030 is on an old
GVP accelerator + SCSI card.  Its a card that has an MMU and an FPU
and a 32MHz 030 chip.  

(On a side note does anyone know anything
about this card?  Last time I tried to use the scsi on this card
with NetBSD it didnt work (back in january) but I'd like to take
the time to get it work now since my other scsi is so slow and
bounced to 16bit ram first).

What happens when I boot one of these kernels is I get a grey screen
but no text is ever printed.  I didnt notice any problems in the
kernel in _start and amiga_init() with M68040 undefined.


(2)
My scsi driver is slow, but not this slow!!

	newsham# dd if=/dev/rsd1a of=/dev/null count=1000
	1000+0 records in
	1000+0 records out
	512000 bytes transferred in 6 secs (85333 bytes/sec)

I know for a fact that I can read files off of the disk at faster
than 85k/sec and I dont think the speedup can be attributed to
cache because I'm on a low-RAM system.  Why is this so slow?
Btw.  I have my scsi bus on a GVP-SeriesII SCSI + RAM.

(3)
I whipped up a small audio driver with LKM.  Basically it just
copies data in to a chipmem buffer and calls the play_sample()
function so it doesnt support a stream of data, just a single
sample of up to the defined buffer size.  As far as I can tell
an audio driver would have to patch the cc.c handling and probably
would want to implement the ite's bell function for it.  I doubt
I'll be the one to do this.

The reason I brought this up is I found a few problems.
in arch/amiga/amiga/cc.c:play_sampe():

        /* load the channels */
        for (ch = 0; ch < 4; ch++) {
                if ((dmabits & (ch << ch)) == 0)
                        continue;
                custom.aud[ch].len = len;

The "ch << ch" should read "1 << ch".  This causes the channel
selection to work incorrectly (not at all for channel 0).
 
I also noticed that play_sample() doesnt allways play the sample
the correct number of times.  Sometimes the sample is played
1 time less than the requested count. With the ite bell this isnt 
noticed since the sample is played so many times but with a long 
sample played once or twice you notice that often its not played
at all or played only once when it should be played twice.  I
havent tracked down what is happening here.

                               Tim N.