home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!olivea!spool.mu.edu!uwm.edu!cs.utexas.edu!hermes.chpc.utexas.edu!news.utdallas.edu!corpgate!brtph560!batph8!news
- From: cullend@bnr.ca (Dave Cullen)
- Newsgroups: comp.os.linux
- Subject: Re: Floppy DMA, question and patch (?)
- Keywords: floppy,dma,patch,kernel,0.98.6,1MB,16MB,unofficial
- Message-ID: <1992Dec15.153610.25233@bnr.ca>
- Date: 15 Dec 92 15:36:10 GMT
- References: <If=DXGK00Vp3MDgVMZ@andrew.cmu.edu>
- Sender: news@bnr.ca (News Server Administrator)
- Reply-To: cullend@bnr.ca
- Distribution: na
- Organization: BNR, Inc., Atlanta
- Lines: 52
-
- In article <If=DXGK00Vp3MDgVMZ@andrew.cmu.edu>, fl0p+@andrew.cmu.edu (Frank T Lofaro) writes:
- |>
- |> Is the 1MB DMA restriction in the floppy code necessary, or can
- |> 386/486's handle 16MB DMA for the floppy? I have this patch (suggested
- |> to me in e-mail) that ups the limit to 16MB from 1MB, and it seems to
- |> work. This patch was made using 0.98.6, but should fit into just about
- |> anything. (its really small). I am not posting in to
- |> comp.os.linux.announce, since I am not sure that what it does is okay.
- |> It seems to work for me, so far... Well, here is the patch, for
- |> kernel/blk_drv/floppy.c. Sorry, you have to cd into kernel/blk_drv after
- |> cd'ing into the root of your source tree (I made the diff in that
- |> directory, and since it is unofficial, and I was in a hurry, I haven't
- |> had a chance to fix it.). Well anyway, here is the patch, for those that
- |> want to try it. *NO GUARANTEES THAT THIS WILL WORK. IT MIGHT EVEN CRASH
- |> YOUR SYSTEM OR DAMAGE FILES*. Hopefully, we will all hear soon if this
- |> change is okay.
- |>
- |> *** floppy.c.olddma Mon Dec 14 00:54:40 1992
- |> --- floppy.c Mon Dec 14 00:55:40 1992
- |> ***************
- |> *** 121,129 ****
- |>
- |> /*
- |> * The DMA channel used by the floppy controller cannot access data at
- |> ! * addresses >= 1MB
- |> */
- |> ! #define LAST_DMA_ADDR (0x100000 - BLOCK_SIZE)
- |>
- |> /*
- |> * globals used by 'result()'
- |> --- 121,129 ----
- |>
- |> /*
- |> * The DMA channel used by the floppy controller cannot access data at
- |> ! * addresses >= 16MB
- |> */
- |> ! #define LAST_DMA_ADDR (0x1000000 - BLOCK_SIZE)
- |>
- |> /*
- |> * globals used by 'result()'
-
- Sooner or later this will trash your system. DMA can be done up to
- 16MB but thep DMA page registers need to be programmed with the high
- 7 bits of the address. Currently the DMA page registers are never
- programmed in linux and just left the way the bios programmed them at 0.
-
- The DMA page registers are at I/O address 80H - 9FH. I don't remember
- which page register address corresponds with which DMA channel but I
- can look it up when I get home if anyone wants to know.
-
- David
-
-