I??m a newbie on the linux kernel. Now I am reading the source code of
Linux . I have a question in the following about ZONE_DMA.
In Linux , The Memory is divided to three zone. They are ZONE_DMA
??ZONE_NORMAL and ZONE_HIGHMEM. From the book of "Undstand the Linux
kernel ", the ZONE_DMA has the effect that the Direct Memory Access
(DMA) processors for old ISA buses have a strong limitation: they are
able to address only the first 16 MB of RAM. SO ,we must set a zone
for the DMA on ISA bus. And I suspect that the hardware has
developed so quickly .And in this days the ISA has been weeded out.
And so ,if we not defined the ZONE_DMA, is the system be effected? And
why not remove ZONE_DMA from the kernel . If it cann??t to do so??the
compatibility is the only reason?
Thanks
On Sunday 04 April 2010 12:21:54 am tek-life wrote:
> I??m a newbie on the linux kernel. Now I am reading the source code of
> Linux . I have a question in the following about ZONE_DMA.
>
>
> In Linux , The Memory is divided to three zone. They are ZONE_DMA
> ??ZONE_NORMAL and ZONE_HIGHMEM. From the book of "Undstand the Linux
> kernel ", the ZONE_DMA has the effect that the Direct Memory Access
> (DMA) processors for old ISA buses have a strong limitation: they are
> able to address only the first 16 MB of RAM. SO ,we must set a zone
> for the DMA on ISA bus. And I suspect that the hardware has
> developed so quickly .And in this days the ISA has been weeded out.
> And so ,if we not defined the ZONE_DMA, is the system be effected? And
> why not remove ZONE_DMA from the kernel . If it cann??t to do so??the
> compatibility is the only reason?
While ISA is gone as a true peripheral interconnect for new systems it does,
actually, still live on in a lot of systems that Linux still supports. While
those systems, generally, are running the same kernel and userspace they were
a decade ago I have no doubt that somebody might find an old machine and put
Linux on it - just because they could.
And that also discounts the non-IBM PC machines that are out there that Linux
also supports. While I don't know enough about them to say for sure, I am
quite certain that at least some of them are still using the ISA bus.
DRH
Am Sonntag, 4. April 2010 06:21:54 schrieb tek-life:
> In Linux , The Memory is divided to three zone. They are ZONE_DMA
> ??ZONE_NORMAL and ZONE_HIGHMEM. From the book of "Undstand the Linux
> kernel ", the ZONE_DMA has the effect that the Direct Memory Access
> (DMA) processors for old ISA buses have a strong limitation: they are
> able to address only the first 16 MB of RAM. SO ,we must set a zone
> for the DMA on ISA bus. And I suspect that the hardware has
> developed so quickly .And in this days the ISA has been weeded out.
Floppy disks & paralell ports still use DMA
Regards
Oliver
On Sun, Apr 04, 2010 at 12:21:54PM +0800, tek-life wrote:
> I’m a newbie on the linux kernel. Now I am reading the source code of
> Linux . I have a question in the following about ZONE_DMA.
>
>
> In Linux , The Memory is divided to three zone. They are ZONE_DMA
> 、ZONE_NORMAL and ZONE_HIGHMEM. From the book of "Undstand the Linux
> kernel ", the ZONE_DMA has the effect that the Direct Memory Access
> (DMA) processors for old ISA buses have a strong limitation: they are
> able to address only the first 16 MB of RAM. SO ,we must set a zone
> for the DMA on ISA bus. And I suspect that the hardware has
> developed so quickly .And in this days the ISA has been weeded out.
> And so ,if we not defined the ZONE_DMA, is the system be effected? And
> why not remove ZONE_DMA from the kernel . If it cann‘t to do so,the
> compatibility is the only reason?
There are a couple of reasons to keep ZONE_DMA. It is not used by ISA
device drivers exclusivly. Old style PCI devices may have small DMA
masks (so they could address between 16 MB and 4GB depending on the
device) too. Drivers for these devices often use ZONE_DMA as a fallback
if they can't allocate memory addressable by the device using
ZONE_NORMAL. So there is a use for ZONE_DMA with 32bit PCI too.
(And I also remember I have seen an AM2 board with an ISA slot for
embedded purposes too, so ISA is not completly dead)
Joerg
On Son, 2010-04-04 at 01:07 -0400, Daniel Hazelton wrote:
> On Sunday 04 April 2010 12:21:54 am tek-life wrote:
> > I’m a newbie on the linux kernel. Now I am reading the source code of
> > Linux . I have a question in the following about ZONE_DMA.
> >
> > In Linux , The Memory is divided to three zone. They are ZONE_DMA
> > 、ZONE_NORMAL and ZONE_HIGHMEM. From the book of "Undstand the Linux
> > kernel ", the ZONE_DMA has the effect that the Direct Memory Access
> > (DMA) processors for old ISA buses have a strong limitation: they are
> > able to address only the first 16 MB of RAM. SO ,we must set a zone
> > for the DMA on ISA bus. And I suspect that the hardware has
> > developed so quickly .And in this days the ISA has been weeded out.
That doesn't imply that the "old" systems and hardware vanishes (even
not quickly).
> > And so ,if we not defined the ZONE_DMA, is the system be effected? And
> > why not remove ZONE_DMA from the kernel . If it cann‘t to do so,the
> > compatibility is the only reason?
>
> While ISA is gone as a true peripheral interconnect for new systems it does,
> actually, still live on in a lot of systems that Linux still supports. While
> those systems, generally, are running the same kernel and userspace they were
> a decade ago I have no doubt that somebody might find an old machine and put
> Linux on it - just because they could.
>
> And that also discounts the non-IBM PC machines that are out there that Linux
> also supports. While I don't know enough about them to say for sure, I am
> quite certain that at least some of them are still using the ISA bus.
PC-104 has an ISA bus. And it is far from dead and currently deployed
for new systems.
Bernd
--
Bernd Petrovitsch Email : [email protected]
LUGA : http://www.luga.at
On Sun, Apr 18, 2010 at 01:04:30PM +0200, Bernd Petrovitsch wrote:
> On Son, 2010-04-04 at 01:07 -0400, Daniel Hazelton wrote:
> > On Sunday 04 April 2010 12:21:54 am tek-life wrote:
> > > I’m a newbie on the linux kernel. Now I am reading the source code of
> > > Linux . I have a question in the following about ZONE_DMA.
> > >
> > > In Linux , The Memory is divided to three zone. They are ZONE_DMA
> > > 、ZONE_NORMAL and ZONE_HIGHMEM. From the book of "Undstand the Linux
> > > kernel ", the ZONE_DMA has the effect that the Direct Memory Access
> > > (DMA) processors for old ISA buses have a strong limitation: they are
> > > able to address only the first 16 MB of RAM. SO ,we must set a zone
> > > for the DMA on ISA bus. And I suspect that the hardware has
> > > developed so quickly .And in this days the ISA has been weeded out.
>
> That doesn't imply that the "old" systems and hardware vanishes (even
> not quickly).
I have a 486 still running just fine with ISA (and VLB) only. Also LPC
is in fact ISA and is found in almost all modern PCs. Some even still
have parallel ports which I believe can do DMA, and they certainly could
still have a 16MB limit on them.
> > > And so ,if we not defined the ZONE_DMA, is the system be effected? And
> > > why not remove ZONE_DMA from the kernel . If it cann‘t to do so,the
> > > compatibility is the only reason?
> >
> > While ISA is gone as a true peripheral interconnect for new systems it does,
> > actually, still live on in a lot of systems that Linux still supports. While
> > those systems, generally, are running the same kernel and userspace they were
> > a decade ago I have no doubt that somebody might find an old machine and put
> > Linux on it - just because they could.
> >
> > And that also discounts the non-IBM PC machines that are out there that Linux
> > also supports. While I don't know enough about them to say for sure, I am
> > quite certain that at least some of them are still using the ISA bus.
>
> PC-104 has an ISA bus. And it is far from dead and currently deployed
> for new systems.
Yeah that's still around too.
--
Len Sorensen