2008-02-07 12:39:52

by Hans J. Koch

[permalink] [raw]
Subject: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

From: Hans J Koch <[email protected]>
To: [email protected]
Cc: [email protected]
Cc: Greg KH <[email protected]>
Subject: arch/arm/Kconfig: Make UIO available on ARM architecture

Source drivers/uio/Kconfig to make UIO available in menuconfig if ARCH=arm.
I already posted this a few months ago, but it got lost somehow.

Signed-off-by: Hans J Koch <[email protected]>
---
arch/arm/Kconfig | 2 ++
1 file changed, 2 insertions(+)

Index: linux-2.6/arch/arm/Kconfig
===================================================================
--- linux-2.6.orig/arch/arm/Kconfig 2008-02-07 13:01:45.000000000 +0100
+++ linux-2.6/arch/arm/Kconfig 2008-02-07 13:18:22.000000000 +0100
@@ -1066,6 +1066,8 @@
config ARCH_SUSPEND_POSSIBLE
def_bool y

+source "drivers/uio/Kconfig"
+
endmenu

source "net/Kconfig"


2008-02-07 12:58:35

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 01:38:05PM +0100, Hans-J??rgen Koch wrote:
> From: Hans J Koch <[email protected]>
> To: [email protected]
> Cc: [email protected]
> Cc: Greg KH <[email protected]>
> Subject: arch/arm/Kconfig: Make UIO available on ARM architecture
>
> Source drivers/uio/Kconfig to make UIO available in menuconfig if ARCH=arm.
> I already posted this a few months ago, but it got lost somehow.

Any chance to make arm finally use drivers/Kconfig? It's a bit silly
that arm still is crapping around while even s390 uses it.

2008-02-07 13:01:26

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:
> On Thu, Feb 07, 2008 at 01:38:05PM +0100, Hans-J??rgen Koch wrote:
> > From: Hans J Koch <[email protected]>
> > To: [email protected]
> > Cc: [email protected]
> > Cc: Greg KH <[email protected]>
> > Subject: arch/arm/Kconfig: Make UIO available on ARM architecture
> >
> > Source drivers/uio/Kconfig to make UIO available in menuconfig if ARCH=arm.
> > I already posted this a few months ago, but it got lost somehow.
>
> Any chance to make arm finally use drivers/Kconfig? It's a bit silly
> that arm still is crapping around while even s390 uses it.
rmk said that it should be easy to check the amount of work needed to do so.
But I have not had time to look into it yet - hopefully someone
in ARM land could fix it.

Sam

2008-02-07 13:02:51

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 01:38:05PM +0100, Hans-J?rgen Koch wrote:
> From: Hans J Koch <[email protected]>
> To: [email protected]
> Cc: [email protected]
> Cc: Greg KH <[email protected]>
> Subject: arch/arm/Kconfig: Make UIO available on ARM architecture
>
> Source drivers/uio/Kconfig to make UIO available in menuconfig if ARCH=arm.
> I already posted this a few months ago, but it got lost somehow.
>
> Signed-off-by: Hans J Koch <[email protected]>
> ---
> arch/arm/Kconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> Index: linux-2.6/arch/arm/Kconfig
> ===================================================================
> --- linux-2.6.orig/arch/arm/Kconfig 2008-02-07 13:01:45.000000000 +0100
> +++ linux-2.6/arch/arm/Kconfig 2008-02-07 13:18:22.000000000 +0100
> @@ -1066,6 +1066,8 @@
> config ARCH_SUSPEND_POSSIBLE
> def_bool y
>
> +source "drivers/uio/Kconfig"
> +

Please place it in the same relative position in arch/arm/Kconfig as it
is found in drivers/Kconfig.

2008-02-07 13:13:19

by Hans J. Koch

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

Am Thu, 7 Feb 2008 13:02:23 +0000
schrieb Russell King - ARM Linux <[email protected]>:

>
> Please place it in the same relative position in arch/arm/Kconfig as
> it is found in drivers/Kconfig.

Argh, sorry. Here's the correct version:
============
From: Hans J Koch <[email protected]>
To: [email protected]
Cc: [email protected]
Cc: Greg KH <[email protected]>
Subject: arch/arm/Kconfig: Make UIO available on ARM architecture

Source drivers/uio/Kconfig to make UIO available in menuconfig if ARCH=arm.

Signed-off-by: Hans J Koch <[email protected]>
---
arch/arm/Kconfig | 2 ++
1 file changed, 2 insertions(+)

Index: linux-2.6/arch/arm/Kconfig
===================================================================
--- linux-2.6.orig/arch/arm/Kconfig 2008-02-07 13:57:58.000000000 +0100
+++ linux-2.6/arch/arm/Kconfig 2008-02-07 14:08:46.000000000 +0100
@@ -1159,6 +1159,8 @@

source "drivers/dca/Kconfig"

+source "drivers/uio/Kconfig"
+
endmenu

source "fs/Kconfig"

2008-02-07 14:27:06

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:
> On Thu, Feb 07, 2008 at 01:38:05PM +0100, Hans-J??rgen Koch wrote:
> > From: Hans J Koch <[email protected]>
> > To: [email protected]
> > Cc: [email protected]
> > Cc: Greg KH <[email protected]>
> > Subject: arch/arm/Kconfig: Make UIO available on ARM architecture
> >
> > Source drivers/uio/Kconfig to make UIO available in menuconfig if ARCH=arm.
> > I already posted this a few months ago, but it got lost somehow.
>
> Any chance to make arm finally use drivers/Kconfig? It's a bit silly
> that arm still is crapping around while even s390 uses it.

Are we finally going to allow architecture modifications to drivers/Kconfig?
The answer to your question is identical to the answer to that question.

2008-02-07 15:16:55

by Marcin Juszkiewicz

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

Dnia Thursday, 7 of February 2008, Sam Ravnborg napisa?:
> On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:

> > Any chance to make arm finally use drivers/Kconfig? It's a bit silly
> > that arm still is crapping around while even s390 uses it.

> rmk said that it should be easy to check the amount of work needed to
> do so. But I have not had time to look into it yet - hopefully someone
> in ARM land could fix it.

I looked at it and 'arch/arm/Kconfig' does not source few entries:

- of - does not appear on ARM if enabled
- macintosh - does not appear on ARM if enabled
- telephony - drivers for ISA/PCI/PCMCIA so can probably be used on some
ARM platforms
- infiniband - like above(?)
- edac - does not appear on ARM if enabled
- auxdisplay - basically it is for one LCD controller connected to x86
parallel port - safe to have it sourced on ARM
- uio

Including of 'drivers/mtd' depends on "ALIGNMENT_TRAP || !CPU_CP15_MMU".

Including of 'drivers/ide' depends on "PCMCIA || ARCH_CLPS7500 ||
ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_L7200 ||
ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 ||
ARCH_SHARK || FOOTBRIDGE || ARCH_IXP23XX" but 'drivers/ata' (which can be
used instead on PCMCIA enabled platforms) does not depend on such set.

Does it look like 'drivers/mtd' require extra check 'if ARM then check for
ALIGNMENT_TRAP || !CPU_CP15_MMU' and probably extra check
in 'drivers/ide'?

I hope this info will help (test in 2.6.24-git
488b5ec871191359b9b79262a3d48456dae7ea5f).

--
JID: hrw-jabber.org
OpenEmbedded developer/consultant

"To be or not to be that is the question.":
every programmer knows the answer $2b or (not $2b) is $ff.

2008-02-07 16:11:40

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 04:09:34PM +0100, Marcin Juszkiewicz wrote:
> Dnia Thursday, 7 of February 2008, Sam Ravnborg napisał:
> > On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:
>
> > > Any chance to make arm finally use drivers/Kconfig? It's a bit silly
> > > that arm still is crapping around while even s390 uses it.
>
> > rmk said that it should be easy to check the amount of work needed to
> > do so. But I have not had time to look into it yet - hopefully someone
> > in ARM land could fix it.
>
> I looked at it and 'arch/arm/Kconfig' does not source few entries:

diff -u arch/arm/Kconfig drivers/Kconfig shows the situation. This is
why I insist that new entries to arch/arm/Kconfig should be in the same
order as drivers/Kconfig.

> Including of 'drivers/mtd' depends on "ALIGNMENT_TRAP || !CPU_CP15_MMU".

It's this which is the main issue.

> Including of 'drivers/ide' depends on "PCMCIA || ARCH_CLPS7500 ||
> ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_L7200 ||
> ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 ||
> ARCH_SHARK || FOOTBRIDGE || ARCH_IXP23XX" but 'drivers/ata' (which can be
> used instead on PCMCIA enabled platforms) does not depend on such set.

IDE people insisted that we _will_ have that silly conditional for IDE.
I personally do not want it and would be happy to see it go - but I
don't have the authority to do that. Take this one up with Bart.

2008-02-07 20:23:39

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 04:05:58PM +0000, Russell King - ARM Linux wrote:
> On Thu, Feb 07, 2008 at 04:09:34PM +0100, Marcin Juszkiewicz wrote:
> > Dnia Thursday, 7 of February 2008, Sam Ravnborg napisał:
> > > On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:
> >
> > > > Any chance to make arm finally use drivers/Kconfig? It's a bit silly
> > > > that arm still is crapping around while even s390 uses it.
> >
> > > rmk said that it should be easy to check the amount of work needed to
> > > do so. But I have not had time to look into it yet - hopefully someone
> > > in ARM land could fix it.
> >
> > I looked at it and 'arch/arm/Kconfig' does not source few entries:
>
> diff -u arch/arm/Kconfig drivers/Kconfig shows the situation. This is
> why I insist that new entries to arch/arm/Kconfig should be in the same
> order as drivers/Kconfig.
>
> > Including of 'drivers/mtd' depends on "ALIGNMENT_TRAP || !CPU_CP15_MMU".
>
> It's this which is the main issue.
>
> > Including of 'drivers/ide' depends on "PCMCIA || ARCH_CLPS7500 ||
> > ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_L7200 ||
> > ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 ||
> > ARCH_SHARK || FOOTBRIDGE || ARCH_IXP23XX" but 'drivers/ata' (which can be
> > used instead on PCMCIA enabled platforms) does not depend on such set.
>
> IDE people insisted that we _will_ have that silly conditional for IDE.
> I personally do not want it and would be happy to see it go - but I
> don't have the authority to do that. Take this one up with Bart.

Both situations are trivially fixable by introducing
HAVE_IDE and HAVE_MTD.
See attached patch.

My quick scan told me that only S390 and UM did not
support IDE neither MTD.
ARM is the only one where IDE and MTD support is conditional
and the rest you select them unconditionally.

Does this look acceptable?

Sam

diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 01b10ab..46049fa 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -5,6 +5,8 @@
config ALPHA
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
help
The Alpha is a 64-bit general-purpose processor designed and
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e19e774..58c7eb4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -23,6 +23,16 @@ config ARM
config SYS_SUPPORTS_APM_EMULATION
bool

+# if PCMCIA is selected then we need IDE
+config ARM_PCMCIA
+ depends on PCMCIA
+ select HAVE_IDE
+
+# select MTD except in a few corner configuration cases
+config ARM_MTD
+ depends on ALIGNMENT_TRAP || !CPU_CP15_MMU
+ select HAVE_MTD
+
config GENERIC_GPIO
bool
default n
@@ -219,6 +229,7 @@ config ARCH_CLPS7500
select TIMER_ACORN
select ISA
select NO_IOPORT
+ select HAVE_IDE
help
Support for the Cirrus Logic PS7500FE system-on-a-chip.

@@ -231,6 +242,7 @@ config ARCH_CO285
bool "Co-EBSA285"
select FOOTBRIDGE
select FOOTBRIDGE_ADDIN
+ select HAVE_IDE
help
Support for Intel's EBSA285 companion chip.

@@ -255,6 +267,7 @@ config ARCH_EP93XX
config ARCH_FOOTBRIDGE
bool "FootBridge"
select FOOTBRIDGE
+ select HAVE_IDE
help
Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@ -293,6 +306,7 @@ config ARCH_IOP32X
depends on MMU
select PLAT_IOP
select PCI
+ select HAVE_IDE
help
Support for Intel's 80219 and IOP32X (XScale) family of
processors.
@@ -302,12 +316,14 @@ config ARCH_IOP33X
depends on MMU
select PLAT_IOP
select PCI
+ select HAVE_IDE
help
Support for Intel's IOP33X (XScale) family of processors.

config ARCH_IXP23XX
bool "IXP23XX-based"
depends on MMU
+ select HAVE_IDE
select PCI
help
Support for Intel's IXP23xx (XScale) family of processors.
@@ -325,12 +341,14 @@ config ARCH_IXP4XX
select GENERIC_GPIO
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
+ select HAVE_IDE
help
Support for Intel's IXP4XX (XScale) family of processors.

config ARCH_L7200
bool "LinkUp-L7200"
select FIQ
+ select HAVE_IDE
help
Say Y here if you intend to run this kernel on a LinkUp Systems
L7200 Software Development Board which uses an ARM720T processor.
@@ -385,6 +403,7 @@ config ARCH_PXA
depends on MMU
select ARCH_MTD_XIP
select GENERIC_GPIO
+ select HAVE_IDE
select HAVE_GPIO_LIB
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
@@ -400,6 +419,7 @@ config ARCH_RPC
select ARCH_MAY_HAVE_PC_FDC
select ISA_DMA_API
select NO_IOPORT
+ select HAVE_IDE
help
On the Acorn Risc-PC, Linux can support the internal IDE disk and
CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -411,12 +431,14 @@ config ARCH_SA1100
select ARCH_MTD_XIP
select GENERIC_GPIO
select GENERIC_TIME
+ select HAVE_IDE
help
Support for StrongARM 11x0 based boards.

config ARCH_S3C2410
bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
select GENERIC_GPIO
+ select HAVE_IDE
help
Samsung S3C2410X CPU based systems, such as the Simtec Electronics
BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
@@ -424,6 +446,7 @@ config ARCH_S3C2410

config ARCH_SHARK
bool "Shark"
+ select HAVE_IDE
select ISA
select ISA_DMA
select PCI
@@ -433,6 +456,7 @@ config ARCH_SHARK

config ARCH_LH7A40X
bool "Sharp LH7A40X"
+ select HAVE_IDE
help
Say Y here for systems based on one of the Sharp LH7A40X
System on a Chip processors. These CPUs include an ARM922T
@@ -1076,9 +1100,7 @@ source "drivers/base/Kconfig"

source "drivers/connector/Kconfig"

-if ALIGNMENT_TRAP || !CPU_CP15_MMU
source "drivers/mtd/Kconfig"
-endif

source "drivers/parport/Kconfig"

@@ -1090,12 +1112,7 @@ source "drivers/block/Kconfig"

source "drivers/misc/Kconfig"

-if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
- || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
- || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
- || ARCH_IXP23XX
source "drivers/ide/Kconfig"
-endif

source "drivers/scsi/Kconfig"

diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 28e0caf..1be1893 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -10,6 +10,8 @@ config AVR32
# With EMBEDDED=n, we get lots of stuff automatically selected
# that we usually don't need on AVR32.
select EMBEDDED
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
select HAVE_KPROBES
help
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index ba21e33..2c989e3 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -24,6 +24,8 @@ config RWSEM_XCHGADD_ALGORITHM
config BLACKFIN
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE

config ZONE_DMA
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 27b082a..13c40a1 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -54,6 +54,8 @@ config NO_IOPORT
config CRIS
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD

source "init/Kconfig"

diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 96f7d70..08f4332 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -5,6 +5,8 @@
config FRV
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD

config ZONE_DMA
bool
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index dc61222..5f12412 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -8,6 +8,8 @@ mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
config H8300
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD

config MMU
bool
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index b0de113..765c17a 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -15,6 +15,8 @@ config IA64
select ACPI if (!IA64_HP_SIM)
select PM if (!IA64_HP_SIM)
select ARCH_SUPPORTS_MSI
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
select HAVE_KPROBES
default y
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 795180b..4615ead 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -8,6 +8,8 @@ mainmenu "Linux/M32R Kernel Configuration"
config M32R
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE

config SBUS
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index ffabd01..182c798 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -5,6 +5,8 @@
config M68K
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD

config MMU
bool
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 6abbbb8..8008f4d 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -8,6 +8,8 @@ mainmenu "uClinux/68k (w/o MMU) Kernel Configuration"
config M68K
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD

config MMU
bool
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index ec78a57..13d36c8 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1,6 +1,8 @@
config MIPS
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
# Horrible source of confusion. Die, die, die ...
select EMBEDDED
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 028d8a0..8511f43 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -7,6 +7,8 @@ mainmenu "Linux/PA-RISC Kernel Configuration"

config PARISC
def_bool y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
help
The PA-RISC microprocessor is designed by Hewlett-Packard and used
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 8dcac0b..8038ab7 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -87,6 +87,8 @@ config ARCH_NO_VIRT_TO_BUS
config PPC
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
select HAVE_KPROBES

diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index 531156f..11ea57e 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -42,6 +42,8 @@ config GENERIC_CALIBRATE_DELAY
config PPC
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
select HAVE_KPROBES

diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 1c3a908..29890ac 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -8,6 +8,8 @@ mainmenu "Linux/SuperH Kernel Configuration"
config SUPERH
def_bool y
select EMBEDDED
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
help
The SuperH is a RISC processor targeted for use in embedded systems
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 99f8971..e51bbdd 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -62,6 +62,8 @@ config NR_CPUS
config SPARC
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE

# Identify this as a Sparc32 build
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index a8c6366..9d60b26 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -14,6 +14,8 @@ config SPARC
config SPARC64
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
help
SPARC is a family of RISC microprocessors designed and marketed by
Sun Microsystems, incorporated. This port covers the newer 64-bit
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
index ace479a..9317fd1 100644
--- a/arch/v850/Kconfig
+++ b/arch/v850/Kconfig
@@ -75,6 +75,8 @@ config MCA
config V850
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD

menu "Processor type and features"

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c95482b..cc20002 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -18,6 +18,8 @@ config X86_64
### Arch settings
config X86
def_bool y
+ select HAVE_IDE
+ select HAVE_MTD
select HAVE_OPROFILE
select HAVE_KPROBES

diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 5d5546c..e438ab2 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -14,6 +14,8 @@ config ZONE_DMA
config XTENSA
bool
default y
+ select HAVE_IDE
+ select HAVE_MTD
help
Xtensa processors are 32-bit RISC machines designed by Tensilica
primarily for embedded systems. These processors are both
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index ab8fb25..043c34a 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -4,10 +4,14 @@
# Andre Hedrick <[email protected]>
#

+# Select HAVE_IDE if IDE is supported
+config HAVE_IDE
+ def_bool n
+
menuconfig IDE
tristate "ATA/ATAPI/MFM/RLL support"
+ depends on HAVE_IDE
depends on BLOCK
- depends on HAS_IOMEM
---help---
If you say Y here, your kernel will be able to manage low cost mass
storage units such as ATA/(E)IDE and ATAPI units. The most common
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index e850334..9365d8b 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -1,8 +1,11 @@
# $Id: Kconfig,v 1.11 2005/11/07 11:14:19 gleixner Exp $

+# select if MTD is supported
+config HAVE_MTD
+ def_bool n
+
menuconfig MTD
tristate "Memory Technology Device (MTD) support"
- depends on HAS_IOMEM
help
Memory Technology Devices are flash, RAM and similar chips, often
used for solid state file systems on embedded devices. This option

2008-02-07 20:35:31

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 09:23:29PM +0100, Sam Ravnborg wrote:
> +# if PCMCIA is selected then we need IDE
> +config ARM_PCMCIA
> + depends on PCMCIA

Shouldn't this be:

def_bool PCMCIA

?

> + select HAVE_IDE

Also, should this be something ARM specific - if you have PCMCIA you could
have a CF card plugged in, so... There's nothing ARM specific about that.

> +
> +# select MTD except in a few corner configuration cases
> +config ARM_MTD
> + depends on ALIGNMENT_TRAP || !CPU_CP15_MMU

Ditto.

> + select HAVE_MTD
> +
> config GENERIC_GPIO
> bool
> default n
> @@ -219,6 +229,7 @@ config ARCH_CLPS7500
> select TIMER_ACORN
> select ISA
> select NO_IOPORT
> + select HAVE_IDE
> help
> Support for the Cirrus Logic PS7500FE system-on-a-chip.
>
> @@ -231,6 +242,7 @@ config ARCH_CO285
> bool "Co-EBSA285"
> select FOOTBRIDGE
> select FOOTBRIDGE_ADDIN
> + select HAVE_IDE
> help
> Support for Intel's EBSA285 companion chip.
>
> @@ -255,6 +267,7 @@ config ARCH_EP93XX
> config ARCH_FOOTBRIDGE
> bool "FootBridge"
> select FOOTBRIDGE
> + select HAVE_IDE
> help
> Support for systems based on the DC21285 companion chip
> ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
> @@ -293,6 +306,7 @@ config ARCH_IOP32X
> depends on MMU
> select PLAT_IOP
> select PCI
> + select HAVE_IDE
> help
> Support for Intel's 80219 and IOP32X (XScale) family of
> processors.
> @@ -302,12 +316,14 @@ config ARCH_IOP33X
> depends on MMU
> select PLAT_IOP
> select PCI
> + select HAVE_IDE
> help
> Support for Intel's IOP33X (XScale) family of processors.
>
> config ARCH_IXP23XX
> bool "IXP23XX-based"
> depends on MMU
> + select HAVE_IDE
> select PCI
> help
> Support for Intel's IXP23xx (XScale) family of processors.
> @@ -325,12 +341,14 @@ config ARCH_IXP4XX
> select GENERIC_GPIO
> select GENERIC_TIME
> select GENERIC_CLOCKEVENTS
> + select HAVE_IDE
> help
> Support for Intel's IXP4XX (XScale) family of processors.
>
> config ARCH_L7200
> bool "LinkUp-L7200"
> select FIQ
> + select HAVE_IDE
> help
> Say Y here if you intend to run this kernel on a LinkUp Systems
> L7200 Software Development Board which uses an ARM720T processor.
> @@ -385,6 +403,7 @@ config ARCH_PXA
> depends on MMU
> select ARCH_MTD_XIP
> select GENERIC_GPIO
> + select HAVE_IDE
> select HAVE_GPIO_LIB
> select GENERIC_TIME
> select GENERIC_CLOCKEVENTS
> @@ -400,6 +419,7 @@ config ARCH_RPC
> select ARCH_MAY_HAVE_PC_FDC
> select ISA_DMA_API
> select NO_IOPORT
> + select HAVE_IDE
> help
> On the Acorn Risc-PC, Linux can support the internal IDE disk and
> CD-ROM interface, serial and parallel port, and the floppy drive.
> @@ -411,12 +431,14 @@ config ARCH_SA1100
> select ARCH_MTD_XIP
> select GENERIC_GPIO
> select GENERIC_TIME
> + select HAVE_IDE
> help
> Support for StrongARM 11x0 based boards.
>
> config ARCH_S3C2410
> bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
> select GENERIC_GPIO
> + select HAVE_IDE
> help
> Samsung S3C2410X CPU based systems, such as the Simtec Electronics
> BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
> @@ -424,6 +446,7 @@ config ARCH_S3C2410
>
> config ARCH_SHARK
> bool "Shark"
> + select HAVE_IDE
> select ISA
> select ISA_DMA
> select PCI
> @@ -433,6 +456,7 @@ config ARCH_SHARK
>
> config ARCH_LH7A40X
> bool "Sharp LH7A40X"
> + select HAVE_IDE
> help
> Say Y here for systems based on one of the Sharp LH7A40X
> System on a Chip processors. These CPUs include an ARM922T
> @@ -1076,9 +1100,7 @@ source "drivers/base/Kconfig"
>
> source "drivers/connector/Kconfig"
>
> -if ALIGNMENT_TRAP || !CPU_CP15_MMU
> source "drivers/mtd/Kconfig"
> -endif
>
> source "drivers/parport/Kconfig"
>
> @@ -1090,12 +1112,7 @@ source "drivers/block/Kconfig"
>
> source "drivers/misc/Kconfig"
>
> -if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
> - || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
> - || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
> - || ARCH_IXP23XX
> source "drivers/ide/Kconfig"
> -endif
>
> source "drivers/scsi/Kconfig"
>
> diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
> index 28e0caf..1be1893 100644
> --- a/arch/avr32/Kconfig
> +++ b/arch/avr32/Kconfig
> @@ -10,6 +10,8 @@ config AVR32
> # With EMBEDDED=n, we get lots of stuff automatically selected
> # that we usually don't need on AVR32.
> select EMBEDDED
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> select HAVE_KPROBES
> help
> diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
> index ba21e33..2c989e3 100644
> --- a/arch/blackfin/Kconfig
> +++ b/arch/blackfin/Kconfig
> @@ -24,6 +24,8 @@ config RWSEM_XCHGADD_ALGORITHM
> config BLACKFIN
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
>
> config ZONE_DMA
> diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
> index 27b082a..13c40a1 100644
> --- a/arch/cris/Kconfig
> +++ b/arch/cris/Kconfig
> @@ -54,6 +54,8 @@ config NO_IOPORT
> config CRIS
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
>
> source "init/Kconfig"
>
> diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
> index 96f7d70..08f4332 100644
> --- a/arch/frv/Kconfig
> +++ b/arch/frv/Kconfig
> @@ -5,6 +5,8 @@
> config FRV
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
>
> config ZONE_DMA
> bool
> diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
> index dc61222..5f12412 100644
> --- a/arch/h8300/Kconfig
> +++ b/arch/h8300/Kconfig
> @@ -8,6 +8,8 @@ mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
> config H8300
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
>
> config MMU
> bool
> diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
> index b0de113..765c17a 100644
> --- a/arch/ia64/Kconfig
> +++ b/arch/ia64/Kconfig
> @@ -15,6 +15,8 @@ config IA64
> select ACPI if (!IA64_HP_SIM)
> select PM if (!IA64_HP_SIM)
> select ARCH_SUPPORTS_MSI
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> select HAVE_KPROBES
> default y
> diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
> index 795180b..4615ead 100644
> --- a/arch/m32r/Kconfig
> +++ b/arch/m32r/Kconfig
> @@ -8,6 +8,8 @@ mainmenu "Linux/M32R Kernel Configuration"
> config M32R
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
>
> config SBUS
> diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
> index ffabd01..182c798 100644
> --- a/arch/m68k/Kconfig
> +++ b/arch/m68k/Kconfig
> @@ -5,6 +5,8 @@
> config M68K
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
>
> config MMU
> bool
> diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
> index 6abbbb8..8008f4d 100644
> --- a/arch/m68knommu/Kconfig
> +++ b/arch/m68knommu/Kconfig
> @@ -8,6 +8,8 @@ mainmenu "uClinux/68k (w/o MMU) Kernel Configuration"
> config M68K
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
>
> config MMU
> bool
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index ec78a57..13d36c8 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -1,6 +1,8 @@
> config MIPS
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> # Horrible source of confusion. Die, die, die ...
> select EMBEDDED
> diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> index 028d8a0..8511f43 100644
> --- a/arch/parisc/Kconfig
> +++ b/arch/parisc/Kconfig
> @@ -7,6 +7,8 @@ mainmenu "Linux/PA-RISC Kernel Configuration"
>
> config PARISC
> def_bool y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> help
> The PA-RISC microprocessor is designed by Hewlett-Packard and used
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 8dcac0b..8038ab7 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -87,6 +87,8 @@ config ARCH_NO_VIRT_TO_BUS
> config PPC
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> select HAVE_KPROBES
>
> diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
> index 531156f..11ea57e 100644
> --- a/arch/ppc/Kconfig
> +++ b/arch/ppc/Kconfig
> @@ -42,6 +42,8 @@ config GENERIC_CALIBRATE_DELAY
> config PPC
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> select HAVE_KPROBES
>
> diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
> index 1c3a908..29890ac 100644
> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -8,6 +8,8 @@ mainmenu "Linux/SuperH Kernel Configuration"
> config SUPERH
> def_bool y
> select EMBEDDED
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> help
> The SuperH is a RISC processor targeted for use in embedded systems
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index 99f8971..e51bbdd 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -62,6 +62,8 @@ config NR_CPUS
> config SPARC
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
>
> # Identify this as a Sparc32 build
> diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
> index a8c6366..9d60b26 100644
> --- a/arch/sparc64/Kconfig
> +++ b/arch/sparc64/Kconfig
> @@ -14,6 +14,8 @@ config SPARC
> config SPARC64
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> help
> SPARC is a family of RISC microprocessors designed and marketed by
> Sun Microsystems, incorporated. This port covers the newer 64-bit
> diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
> index ace479a..9317fd1 100644
> --- a/arch/v850/Kconfig
> +++ b/arch/v850/Kconfig
> @@ -75,6 +75,8 @@ config MCA
> config V850
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
>
> menu "Processor type and features"
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index c95482b..cc20002 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -18,6 +18,8 @@ config X86_64
> ### Arch settings
> config X86
> def_bool y
> + select HAVE_IDE
> + select HAVE_MTD
> select HAVE_OPROFILE
> select HAVE_KPROBES
>
> diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
> index 5d5546c..e438ab2 100644
> --- a/arch/xtensa/Kconfig
> +++ b/arch/xtensa/Kconfig
> @@ -14,6 +14,8 @@ config ZONE_DMA
> config XTENSA
> bool
> default y
> + select HAVE_IDE
> + select HAVE_MTD
> help
> Xtensa processors are 32-bit RISC machines designed by Tensilica
> primarily for embedded systems. These processors are both
> diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
> index ab8fb25..043c34a 100644
> --- a/drivers/ide/Kconfig
> +++ b/drivers/ide/Kconfig
> @@ -4,10 +4,14 @@
> # Andre Hedrick <[email protected]>
> #
>
> +# Select HAVE_IDE if IDE is supported
> +config HAVE_IDE
> + def_bool n
> +
> menuconfig IDE
> tristate "ATA/ATAPI/MFM/RLL support"
> + depends on HAVE_IDE
> depends on BLOCK
> - depends on HAS_IOMEM
> ---help---
> If you say Y here, your kernel will be able to manage low cost mass
> storage units such as ATA/(E)IDE and ATAPI units. The most common
> diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
> index e850334..9365d8b 100644
> --- a/drivers/mtd/Kconfig
> +++ b/drivers/mtd/Kconfig
> @@ -1,8 +1,11 @@
> # $Id: Kconfig,v 1.11 2005/11/07 11:14:19 gleixner Exp $
>
> +# select if MTD is supported
> +config HAVE_MTD
> + def_bool n
> +
> menuconfig MTD
> tristate "Memory Technology Device (MTD) support"
> - depends on HAS_IOMEM
> help
> Memory Technology Devices are flash, RAM and similar chips, often
> used for solid state file systems on embedded devices. This option

2008-02-07 21:19:41

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 08:29:40PM +0000, Russell King - ARM Linux wrote:
> On Thu, Feb 07, 2008 at 09:23:29PM +0100, Sam Ravnborg wrote:
> > +# if PCMCIA is selected then we need IDE
> > +config ARM_PCMCIA
> > + depends on PCMCIA
>
> Shouldn't this be:
>
> def_bool PCMCIA
yes - thanks.

>
> ?
>
> > + select HAVE_IDE
>
> Also, should this be something ARM specific - if you have PCMCIA you could
> have a CF card plugged in, so... There's nothing ARM specific about that.

So we can replace the above with this:
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index 519b4ff..8b22281 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -38,6 +38,7 @@ config PCMCIA_DEBUG
config PCMCIA
tristate "16-bit PCMCIA support"
select CRC32
+ select HAVE_IDE
default y
---help---
This option enables support for 16-bit PCMCIA cards. Most older

Makes sense.

>
> > +
> > +# select MTD except in a few corner configuration cases
> > +config ARM_MTD
> > + depends on ALIGNMENT_TRAP || !CPU_CP15_MMU
>
> Ditto.
Yes.

Sam

2008-02-08 09:04:48

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture


On Thu, 2008-02-07 at 21:23 +0100, Sam Ravnborg wrote:
> Both situations are trivially fixable by introducing
> HAVE_IDE and HAVE_MTD.
> See attached patch.

HAVE_MTD is wrong. The actual problem we're trying to solve is that when
the architecture lacks alignment fixups, certain patterns of write
access to 16-bit or 32-bit NOR flash arrays are broken. So it's not
'MTD' which should be conditional -- but only certain configurations of
NOR flash, which could perhaps be prevented by disallowing any of the
MTD_MAP_BANK_WIDTH_* options other than MTD_MAP_BANK_WIDTH_1 from being
set.

And it's not just an ARM-specific problem; a number of our MMU-less
architectures also lack alignment traps now. It _used_ to be the case
that platforms without alignment fixups were simply considered to be
broken -- if the hardware didn't support unaligned access, either
natively or through traps, it just wasn't supported by Linux. But since
that isn't really the case any more, perhaps we should seek a better
option than just disabling certain functionality (or _not_ disabling it,
in the case of the network stack, and just kind of praying that it works
even though we don't really think it does).

We could add get_unaligned() in certain places in the code, but that
isn't ideal for the majority of architectures. What we really want, I
suppose, is get_something_which_may_be_but_probably_is_not_unaligned().

With a better name.

--
dwmw2

2008-02-08 09:56:33

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Fri, Feb 08, 2008 at 09:04:13AM +0000, David Woodhouse wrote:
> On Thu, 2008-02-07 at 21:23 +0100, Sam Ravnborg wrote:
> > Both situations are trivially fixable by introducing
> > HAVE_IDE and HAVE_MTD.
> > See attached patch.
>
> HAVE_MTD is wrong.

If we are serious about allowing ARM to use drivers/Kconfig, then let's
not get distracted by perfection - by trying to do too many changes in
one go.

If, today, we conditionalise MTD or IDE on a certain set of symbols,
then those conditions should be preserved in the first step - it should
be a 1:1 translation.

Later, if there's a need to improve it (as you're suggesting) that should
be a *separate* change.

2008-02-08 10:18:52

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture


On Fri, 2008-02-08 at 09:45 +0000, Russell King - ARM Linux wrote:
> If we are serious about allowing ARM to use drivers/Kconfig, then let's
> not get distracted by perfection - by trying to do too many changes in
> one go.
>
> If, today, we conditionalise MTD or IDE on a certain set of symbols,
> then those conditions should be preserved in the first step - it should
> be a 1:1 translation.

That makes some sense. Currently you have:

if ALIGNMENT_TRAP || !CPU_CP15_MMU
source "drivers/mtd/Kconfig"
endif

> Later, if there's a need to improve it (as you're suggesting) that should
> be a *separate* change.

We can certainly improve the behaviour later, it's true -- it's not the
end of the world if we continue to have the whole of the MTD layer
turned off on platforms with alignment problems for now.

But still, it's HAVE_UNALIGNED_ACCESS which we want to depend on, not a
newly-invented HAVE_MTD. And there are other places we really ought to
be depending on HAVE_UNALIGNED_ACCESS too.

--
dwmw2

2008-02-08 10:34:38

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Fri, Feb 08, 2008 at 10:18:31AM +0000, David Woodhouse wrote:
> But still, it's HAVE_UNALIGNED_ACCESS which we want to depend on, not a
> newly-invented HAVE_MTD. And there are other places we really ought to
> be depending on HAVE_UNALIGNED_ACCESS too.

That would be misleading though - !CPU_CP15_MMU does not mean we support
unaligned accesses. It means that we may have no way to support fixing
up unaligned accesses.

2008-02-08 10:44:00

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture


On Fri, 2008-02-08 at 10:23 +0000, Russell King - ARM Linux wrote:
> That would be misleading though - !CPU_CP15_MMU does not mean we
> support unaligned accesses. It means that we may have no way to
> support fixing up unaligned accesses.

Doesn't that mean you should disallow MTD (or at least 16-bit NOR flash)
if !CPU_CP15_MMU, then? But at the moment you allow it?

--
dwmw2

2008-02-08 10:56:28

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Fri, Feb 08, 2008 at 10:43:42AM +0000, David Woodhouse wrote:
> On Fri, 2008-02-08 at 10:23 +0000, Russell King - ARM Linux wrote:
> > That would be misleading though - !CPU_CP15_MMU does not mean we
> > support unaligned accesses. It means that we may have no way to
> > support fixing up unaligned accesses.
>
> Doesn't that mean you should disallow MTD (or at least 16-bit NOR flash)
> if !CPU_CP15_MMU, then? But at the moment you allow it?

Ask Hyok or Greg Ungerer.

2008-02-08 10:58:44

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Fri, 2008-02-08 at 09:04 +0000, David Woodhouse wrote:
> We could add get_unaligned() in certain places in the code, but that
> isn't ideal for the majority of architectures.

Actually, we already did that, despite the fact that it isn't optimal.
So there's no need to omit anything MTD-related from ARM builds whether
we have alignment fixup support or not.

--
dwmw2

2008-02-08 18:46:56

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Fri, Feb 08, 2008 at 10:58:29AM +0000, David Woodhouse wrote:
> On Fri, 2008-02-08 at 09:04 +0000, David Woodhouse wrote:
> > We could add get_unaligned() in certain places in the code, but that
> > isn't ideal for the majority of architectures.
>
> Actually, we already did that, despite the fact that it isn't optimal.
> So there's no need to omit anything MTD-related from ARM builds whether
> we have alignment fixup support or not.
Just so I do not get you wrong...
What you say above is that the following code:

if ALIGNMENT_TRAP || !CPU_CP15_MMU
source "drivers/mtd/Kconfig"
endif

Here we do not need to have the "if ..."
and can source drivers/mtd/Kconfig unconditional for arm?

Sam

2008-02-08 18:52:31

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture


On Fri, 2008-02-08 at 19:46 +0100, Sam Ravnborg wrote:
> Here we do not need to have the "if ..."
> and can source drivers/mtd/Kconfig unconditional for arm?

Yes.

--
dwmw2

2008-02-09 11:39:36

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Thu, Feb 07, 2008 at 09:23:29PM +0100, Sam Ravnborg wrote:
> On Thu, Feb 07, 2008 at 04:05:58PM +0000, Russell King - ARM Linux wrote:
> > On Thu, Feb 07, 2008 at 04:09:34PM +0100, Marcin Juszkiewicz wrote:
> > > Dnia Thursday, 7 of February 2008, Sam Ravnborg napisał:
> > > > On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:
> > >
> > > > > Any chance to make arm finally use drivers/Kconfig? It's a bit silly
> > > > > that arm still is crapping around while even s390 uses it.
> > >
> > > > rmk said that it should be easy to check the amount of work needed to
> > > > do so. But I have not had time to look into it yet - hopefully someone
> > > > in ARM land could fix it.
> > >
> > > I looked at it and 'arch/arm/Kconfig' does not source few entries:
> >
> > diff -u arch/arm/Kconfig drivers/Kconfig shows the situation. This is
> > why I insist that new entries to arch/arm/Kconfig should be in the same
> > order as drivers/Kconfig.
> >
> > > Including of 'drivers/mtd' depends on "ALIGNMENT_TRAP || !CPU_CP15_MMU".
> >
> > It's this which is the main issue.
> >
> > > Including of 'drivers/ide' depends on "PCMCIA || ARCH_CLPS7500 ||
> > > ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_L7200 ||
> > > ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 ||
> > > ARCH_SHARK || FOOTBRIDGE || ARCH_IXP23XX" but 'drivers/ata' (which can be
> > > used instead on PCMCIA enabled platforms) does not depend on such set.
> >
> > IDE people insisted that we _will_ have that silly conditional for IDE.
> > I personally do not want it and would be happy to see it go - but I
> > don't have the authority to do that. Take this one up with Bart.
>
> Both situations are trivially fixable by introducing
> HAVE_IDE and HAVE_MTD.
> See attached patch.
>
> My quick scan told me that only S390 and UM did not
> support IDE neither MTD.
> ARM is the only one where IDE and MTD support is conditional
> and the rest you select them unconditionally.

Quick status on this.
I have submitted a corrected patch containing only the
HAVE_IDE stuff via kbuild.git and considering the
comment from David the mtd bits are trivial done.
So I expect someone that better can check the arm stuff
to do the final conversion bits to introduce drivers/Kconfig
when kbuild.git hits mainline.

Sam

2008-02-11 08:26:38

by Hans J. Koch

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

Am Thu, 7 Feb 2008 14:12:36 +0100
schrieb Hans-Jürgen Koch <[email protected]>:

AFAICT, this patch was neither rejected nor applied. It generated a
long thread about changing the whole ARM Kconfig system. I feel not
qualified to do that, but I still want UIO available on ARM ;-)
What can I do to help?

Thanks,
Hans

> From: Hans J Koch <[email protected]>
> To: [email protected]
> Cc: [email protected]
> Cc: Greg KH <[email protected]>
> Subject: arch/arm/Kconfig: Make UIO available on ARM architecture
>
> Source drivers/uio/Kconfig to make UIO available in menuconfig if
> ARCH=arm.
>
> Signed-off-by: Hans J Koch <[email protected]>
> ---
> arch/arm/Kconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> Index: linux-2.6/arch/arm/Kconfig
> ===================================================================
> --- linux-2.6.orig/arch/arm/Kconfig 2008-02-07
> 13:57:58.000000000 +0100 +++ linux-2.6/arch/arm/Kconfig
> 2008-02-07 14:08:46.000000000 +0100 @@ -1159,6 +1159,8 @@
>
> source "drivers/dca/Kconfig"
>
> +source "drivers/uio/Kconfig"
> +
> endmenu
>
> source "fs/Kconfig"
>
> --
> To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2008-02-11 14:39:19

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture

On Mon, Feb 11, 2008 at 09:25:47AM +0100, Hans-J?rgen Koch wrote:
> Am Thu, 7 Feb 2008 14:12:36 +0100
> schrieb Hans-J?rgen Koch <[email protected]>:
>
> AFAICT, this patch was neither rejected nor applied. It generated a
> long thread about changing the whole ARM Kconfig system. I feel not
> qualified to do that, but I still want UIO available on ARM ;-)
> What can I do to help?

I think we can just do like this. That will bring in a few device
drives that does not make much sense on arm but does it matter?

And we are then in sync with the rest of the archs.

Sam

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9619c43..64629dd 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1087,91 +1087,7 @@ endmenu

source "net/Kconfig"

-menu "Device Drivers"
-
-source "drivers/base/Kconfig"
-
-source "drivers/connector/Kconfig"
-
-if ALIGNMENT_TRAP || !CPU_CP15_MMU
-source "drivers/mtd/Kconfig"
-endif
-
-source "drivers/parport/Kconfig"
-
-source "drivers/pnp/Kconfig"
-
-source "drivers/block/Kconfig"
-
-# misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4
-
-source "drivers/misc/Kconfig"
-
-source "drivers/ide/Kconfig"
-
-source "drivers/scsi/Kconfig"
-
-source "drivers/ata/Kconfig"
-
-source "drivers/md/Kconfig"
-
-source "drivers/message/fusion/Kconfig"
-
-source "drivers/ieee1394/Kconfig"
-
-source "drivers/message/i2o/Kconfig"
-
-source "drivers/net/Kconfig"
-
-source "drivers/isdn/Kconfig"
-
-# input before char - char/joystick depends on it. As does USB.
-
-source "drivers/input/Kconfig"
-
-source "drivers/char/Kconfig"
-
-source "drivers/i2c/Kconfig"
-
-source "drivers/spi/Kconfig"
-
-source "drivers/gpio/Kconfig"
-
-source "drivers/w1/Kconfig"
-
-source "drivers/power/Kconfig"
-
-source "drivers/hwmon/Kconfig"
-
-source "drivers/watchdog/Kconfig"
-
-source "drivers/ssb/Kconfig"
-
-#source "drivers/l3/Kconfig"
-
-source "drivers/mfd/Kconfig"
-
-source "drivers/media/Kconfig"
-
-source "drivers/video/Kconfig"
-
-source "sound/Kconfig"
-
-source "drivers/hid/Kconfig"
-
-source "drivers/usb/Kconfig"
-
-source "drivers/mmc/Kconfig"
-
-source "drivers/leds/Kconfig"
-
-source "drivers/rtc/Kconfig"
-
-source "drivers/dma/Kconfig"
-
-source "drivers/dca/Kconfig"
-
-endmenu
+source "drivers/Kconfig"

source "fs/Kconfig"

2008-02-12 01:52:17

by Greg Ungerer

[permalink] [raw]
Subject: Re: [PATCH] arch/arm/Kconfig: Make UIO available on ARM architecture


Russell King - ARM Linux wrote:
> On Fri, Feb 08, 2008 at 10:43:42AM +0000, David Woodhouse wrote:
>> On Fri, 2008-02-08 at 10:23 +0000, Russell King - ARM Linux wrote:
>>> That would be misleading though - !CPU_CP15_MMU does not mean we
>>> support unaligned accesses. It means that we may have no way to
>>> support fixing up unaligned accesses.
>> Doesn't that mean you should disallow MTD (or at least 16-bit NOR flash)
>> if !CPU_CP15_MMU, then? But at the moment you allow it?
>
> Ask Hyok or Greg Ungerer.

I would agree that it means disabling 16-bit NOR flash, but the 8-bit
case should be fine right?

A complete disable of MTD seems like overkill. A more fine grained
approach would be better.

Regards
Greg



------------------------------------------------------------------------
Greg Ungerer -- Chief Software Dude EMAIL: [email protected]
Secure Computing Corporation PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com