Floppy disks don't work with FreeBSD 9.0
John Baldwin
jhb at freebsd.org
Fri Mar 30 16:43:52 UTC 2012
On Wednesday, March 28, 2012 3:57:37 pm Thomas Laus wrote:
> > Hi.
> >
> > I'm a bit short on free machines, so the closest I can get right now
> > is my everyday machine running from sources cvsupped from
> > RELENG_8 3.rd of March:
> >
> I 'csuped' to FreeBSD 9.0-STABLE today and still had the same problem. This
> computer has normal floppy disk operation when using FreeBSD 8.3-RC1 and
> doesn't have any fd functionality with FreeBSD 9.0-STABLE. I entered a
> Problem Report in the system today.
>
> Thanks for all of the help, we'll let the development team take if from
here.
I just fixed a bug in HEAD yesterday where bounce buffers for ISA DMA were
broken in 9. Can you try that change out?
Author: jhb
Date: Thu Mar 29 18:58:02 2012
New Revision: 233675
URL: http://svn.freebsd.org/changeset/base/233675
Log:
Restore proper use of bounce buffers for ISA DMA. When locking was
added, the call to pmap_kextract() was moved up, and as a result the
code never updated the physical address to use for DMA if a bounce
buffer was used. Restore the earlier location of pmap_kextract() so
it takes bounce buffers into account.
Tested by: kargl
MFC after: 1 week
Modified:
head/sys/x86/isa/isa_dma.c
Modified: head/sys/x86/isa/isa_dma.c
==============================================================================
--- head/sys/x86/isa/isa_dma.c Thu Mar 29 17:50:01 2012 (r233674)
+++ head/sys/x86/isa/isa_dma.c Thu Mar 29 18:58:02 2012 (r233675)
@@ -237,8 +237,6 @@ isa_dmastart(int flags, caddr_t addr, u_
caddr_t newaddr;
int dma_range_checked;
- /* translate to physical */
- phys = pmap_extract(kernel_pmap, (vm_offset_t)addr);
dma_range_checked = isa_dmarangecheck(addr, nbytes, chan);
#ifdef DIAGNOSTIC
@@ -281,6 +279,9 @@ isa_dmastart(int flags, caddr_t addr, u_
addr = newaddr;
}
+ /* translate to physical */
+ phys = pmap_extract(kernel_pmap, (vm_offset_t)addr);
+
if (flags & ISADMA_RAW) {
dma_auto_mode |= (1 << chan);
} else {
--
John Baldwin
More information about the freebsd-stable
mailing list