From: Christoph Lameter <clameter@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: [PATCH 5/6] Optional ZONE_DMA for x86_64
Date: Mon, 11 Sep 2006 22:27:55 +0000 [thread overview]
Message-ID: <20060911222755.4849.17749.sendpatchset@schroedinger.engr.sgi.com> (raw)
x86_64: optional ZONE_DMA/ZONE_DMA32
Allow the use to specify CONFIG_ZONE_DMA32 and CONFIG_ZONE_DMA (via
CONFIG_GENERIC_ISA_DMA).
If CONFIG_ZONE_DMA is off then devices requiring ISA DMA can no
longer be selected.
There are no drivers depending on CONFIG_ZONE_DMA32. If CONFIG_ZONE_DMA32
is not set then the system assumes that DMA devices are capable of
doing DMA to all of memory (which is mostly the case since most
x86_64 motherboards only allow a max of 4GB of memory and advanced
systems have DMA subsystems that handle I/O properly).
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Index: linux-2.6.18-rc6-mm1/arch/x86_64/mm/init.c
=================================--- linux-2.6.18-rc6-mm1.orig/arch/x86_64/mm/init.c 2006-09-11 16:06:41.705747849 -0500
+++ linux-2.6.18-rc6-mm1/arch/x86_64/mm/init.c 2006-09-11 16:08:13.190088058 -0500
@@ -406,9 +406,15 @@
#ifndef CONFIG_NUMA
void __init paging_init(void)
{
- unsigned long max_zone_pfns[MAX_NR_ZONES] = {MAX_DMA_PFN,
- MAX_DMA32_PFN,
- end_pfn};
+ unsigned long max_zone_pfns[MAX_NR_ZONES] = {
+#ifdef CONFIG_ZONE_DMA
+ MAX_DMA_PFN,
+#endif
+#ifdef CONFIG_ZONE_DMA32
+ MAX_DMA32_PFN,
+#endif
+ end_pfn
+ };
memory_present(0, 0, end_pfn);
sparse_init();
free_area_init_nodes(max_zone_pfns);
Index: linux-2.6.18-rc6-mm1/arch/x86_64/Kconfig
=================================--- linux-2.6.18-rc6-mm1.orig/arch/x86_64/Kconfig 2006-09-11 16:06:41.713561013 -0500
+++ linux-2.6.18-rc6-mm1/arch/x86_64/Kconfig 2006-09-11 16:10:45.369039566 -0500
@@ -24,10 +24,6 @@
bool
default y
-config ZONE_DMA32
- bool
- default y
-
config LOCKDEP_SUPPORT
bool
default y
@@ -73,10 +69,6 @@
bool
default y
-config GENERIC_ISA_DMA
- bool
- default y
-
config GENERIC_IOMAP
bool
default y
@@ -251,6 +243,24 @@
See <file:Documentation/mtrr.txt> for more information.
+config ZONE_DMA32
+ bool "32 Bit DMA Zone (only needed if memory >4GB)"
+ default y
+ help
+ Some x64 configurations have 32 bit DMA controllers that cannot
+ write to all of memory. If you have one of these and you have RAM
+ beyond the 4GB boundary then enable this option.
+
+config GENERIC_ISA_DMA
+ bool "ISA DMA zone (to support ISA legacy DMA)"
+ default y
+ help
+ If DMA for ISA boards needs to be supported then this option
+ needs to be enabled. An additional DMA zone for <16MB memory
+ will be created and memory below 16MB will be used for those
+ devices. If this is deselected then devices that use ISA
+ DMA will not be selectable.
+
config SMP
bool "Symmetric multi-processing support"
---help---
@@ -611,6 +621,7 @@
# we have no ISA slots, but we do have ISA-style DMA.
config ISA_DMA_API
bool
+ depends on GENERIC_ISA_DMA
default y
config GENERIC_PENDING_IRQ
Index: linux-2.6.18-rc6-mm1/arch/x86_64/kernel/Makefile
=================================--- linux-2.6.18-rc6-mm1.orig/arch/x86_64/kernel/Makefile 2006-09-11 16:06:41.726257405 -0500
+++ linux-2.6.18-rc6-mm1/arch/x86_64/kernel/Makefile 2006-09-11 16:08:13.214504197 -0500
@@ -7,9 +7,10 @@
obj-y := process.o signal.o entry.o traps.o irq.o \
ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_x86_64.o \
x8664_ksyms.o i387.o syscall.o vsyscall.o \
- setup64.o bootflag.o e820.o reboot.o quirks.o i8237.o \
+ setup64.o bootflag.o e820.o reboot.o quirks.o \
pci-dma.o pci-nommu.o alternative.o early-quirks.o
+obj-$(CONFIG_GENERIC_ISA_DMA) += i8237.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
obj-$(CONFIG_X86_MCE) += mce.o
obj-$(CONFIG_X86_MCE_INTEL) += mce_intel.o
next reply other threads:[~2006-09-11 22:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-11 22:27 Christoph Lameter [this message]
2006-09-12 6:40 ` [PATCH 5/6] Optional ZONE_DMA for x86_64 Andi Kleen
2006-09-12 11:11 ` Andi Kleen
2006-09-12 11:40 ` Matthew Wilcox
2006-09-12 17:28 ` Christoph Lameter
-- strict thread matches above, loose matches on Subject: below --
2006-09-11 22:30 [PATCH 0/8] Optional ZONE_DMA V1 Christoph Lameter
2006-09-11 22:30 ` [PATCH 5/6] Optional ZONE_DMA for x86_64 Christoph Lameter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060911222755.4849.17749.sendpatchset@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.