Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!cs.utexas.edu!uunet!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.sys.amiga.hardware Subject: Re: (was RAMSEY) 2nd SCSI controller Message-ID: <21088@cbmvax.commodore.com> Date: 30 Apr 91 23:02:00 GMT References: <1991Apr12.002442.3871@minyos.xx.rmit.oz.au> <1991Apr23.010944.10776@ariel.unm.edu> <20874@cbmvax.commodore.com> <41588@cup.portal.com> <20912@cbmvax.commodore.com> <1991Apr25.141228.8809@javelin.sim.es.com> Reply-To: daveh@cbmvax.commodore.com (Dave Haynie) Organization: Commodore, West Chester, PA Lines: 46 In article <1991Apr25.141228.8809@javelin.sim.es.com> blgardne@javelin.sim.es.com writes: >The problem is the Hardframe expects to DMA into Fast RAM starting at >$200000 (the Zorro II Auto-Config space), and the A3000 has no memory >there so the HF "gets terribly confused". It can be made to run by >restricting the HF to Chip RAM with the MASK parameter, but then it >slows down considerably. Actually, this problem exists/existed on several of the DMA driven controllers, since no one ever really considered it before the A3000 came along. The problem is something like this. Zorro II DMA devices have an inherent memory addressing restriction to deal with. They can't hit RAM out of the 24 bit address space, and can't usually do DMA to odd-word addresses. Good ones know these restrictions (include A2091 and Hardframe in this group). Since these devices aren't usually set up to handle programmed I/O very well, they typically like to have a chunk of private buffer memory set aside, that's in the 24 bit address space and properly aligned. Then, when presented with a problem address to transfer to, they can DMA into the private buffer and CopyMem() from it to the problem area. Not real efficient, but workable. The problem on the A3000 is, most of these drivers never considered a situation in which, at boot time, the only Fast memory available would be out of the 24 bit address space. So, while Chip RAM would work too, they wind up grabbing a chunk of the A3000's $07xxxxxx memory, which they can't actually get to. You can't use a MASK value to take care of this, since the buffer is private and it gets allocated before the FileSystem is initialized for each disk. The new A2091 ROMs may fix this, but it's no big deal. There's not a whole great need for A2091s or Hardframes in the A3000, given that a much better SCSI controller is built in. Incidently, in the aforementioned hard disk test, I brought up the A3000 with the $07xxxxxx memory unlinked (just boot real 1.3 for this). There was a Zorro II memory board for the Hardframe to use, the A2091 went into Chip RAM, and the A3000 controller went to the on-board fast RAM, once that and the A3000 device driver was loaded in. The main point of this was to make sure the bus arbiter would handle such a situation properly. The A3000 bus arbiter (part of Buster) actually has to take over the bus from the 68030 and give it to a Zorro II card once the 68030 is off, since the Zorro II bus can't see any Zorro III or Motherboard bus activity. >Blaine Gardner @ Evans & Sutherland 580 Arapeen Drive, SLC, Utah 84108 -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "That's me in the corner, that's me in the spotlight" -R.E.M.