2009-03-02 09:43:21

by Rogério Brito

[permalink] [raw]
Subject: Linux 2.6.29-rc6 bombs while compiling a kernel for a linkstation/kurobox

Hi there.

I tried to compile a new kernel for my (powerpc) Kurobox HD (an embedded
system that has a Freescale processor), but it seems that the
compilation fails, with both my usual config file and with the shipped
linkstation_defconfig file.

I get the following error during compilation (actually a
cross-compilation):

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
arch/powerpc/platforms/built-in.o: In function `linkstation_setup_arch':
linkstation.c:(.init.text+0x218): undefined reference to `physmap_set_partitions'
drivers/built-in.o:(__ksymtab+0x9f8): undefined reference to `physmap_set_partitions'
make: *** [.tmp_vmlinux1] Error 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

I didn't have such problems with, say, kernel 2.6.28. If anybody could
help, I would be glad to test any patches.

(Well, I already tried "blindly" adding an EXPORT_SYMBOL to
physmap_set_partitions under the mtd subtree, but it wasn't enough to
fix this issue).


Thanks in advance for any help, Rogério Brito.

--
Rogério Brito : rbrito@{mackenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org


2009-03-03 02:48:49

by Tony Breeds

[permalink] [raw]
Subject: Re: Linux 2.6.29-rc6 bombs while compiling a kernel for a linkstation/kurobox

On Mon, Mar 02, 2009 at 06:43:03AM -0300, Rogério Brito wrote:

<snip>

> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> arch/powerpc/platforms/built-in.o: In function `linkstation_setup_arch':
> linkstation.c:(.init.text+0x218): undefined reference to `physmap_set_partitions'
> drivers/built-in.o:(__ksymtab+0x9f8): undefined reference to `physmap_set_partitions'
> make: *** [.tmp_vmlinux1] Error 1
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> I didn't have such problems with, say, kernel 2.6.28. If anybody could
> help, I would be glad to test any patches.
>
> (Well, I already tried "blindly" adding an EXPORT_SYMBOL to
> physmap_set_partitions under the mtd subtree, but it wasn't enough to
> fix this issue).

Looks to me like you need to define CONFIG_MTD_PHYSMAP_COMPAT in your .config.


Yours Tony

2009-03-03 08:35:19

by Rogério Brito

[permalink] [raw]
Subject: [PATCH] powerpc: fix the defaults for the linkstation MTD device (was: Re: Linux 2.6.29-rc6 bombs while compiling a kernel for a linkstation/kurobox)

Hi, Tony and other people.

On Mar 03 2009, Tony Breeds wrote:
> On Mon, Mar 02, 2009 at 06:43:03AM -0300, Rogério Brito wrote:
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > arch/powerpc/platforms/built-in.o: In function `linkstation_setup_arch':
> > linkstation.c:(.init.text+0x218): undefined reference to `physmap_set_partitions'
> > drivers/built-in.o:(__ksymtab+0x9f8): undefined reference to `physmap_set_partitions'
> > make: *** [.tmp_vmlinux1] Error 1
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> Looks to me like you need to define CONFIG_MTD_PHYSMAP_COMPAT in your
> .config.

Right. This was the fix. The attached diff to update the defconfig is
included below.

Please, note that it wasn't sufficient to only to define
CONFIG_MTD_PHYSMAP_COMPAT.

The default values for CONFIG_MTD_PHYSMAP_{START,LEN,BANKWIDTH} weren't
correct (and, as a result, no MTD was detected on my kurobox and this
was a regression regarding 2.6.28).

This patch makes the compilation succeed and the MTD device work again.
Already tested and in production.


Signed-off-by: Rogério Brito <[email protected]>


---

--- linux/arch/powerpc/configs/linkstation_defconfig.old 2009-03-03 05:11:38.000000000 -0300
+++ linux/arch/powerpc/configs/linkstation_defconfig 2009-03-03 05:11:54.000000000 -0300
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.29-rc2
-# Mon Jan 26 15:35:29 2009
+# Linux kernel version: 2.6.29-rc6
+# Tue Mar 3 05:10:59 2009
#
# CONFIG_PPC64 is not set

@@ -71,6 +71,15 @@
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -88,6 +97,7 @@
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -153,11 +163,6 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_FREEZER is not set

#
@@ -294,7 +299,6 @@
#
# Networking options
#
-# CONFIG_NET_NS is not set
CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
@@ -560,7 +564,10 @@
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PHYSMAP_COMPAT=y
+CONFIG_MTD_PHYSMAP_START=0xffc00000
+CONFIG_MTD_PHYSMAP_LEN=0x400000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=1
# CONFIG_MTD_PHYSMAP_OF is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -617,13 +624,19 @@
# CONFIG_BLK_DEV_HD is not set
CONFIG_MISC_DEVICES=y
# CONFIG_PHANTOM is not set
-# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+CONFIG_EEPROM_LEGACY=m
+# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

@@ -1037,8 +1050,6 @@
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_EEPROM_AT24 is not set
-CONFIG_EEPROM_LEGACY=m
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCA9539 is not set


--
Rogério Brito : rbrito@{mackenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org

2009-03-04 00:08:12

by Guennadi Liakhovetski

[permalink] [raw]
Subject: Re: Linux 2.6.29-rc6 bombs while compiling a kernel for a linkstation/kurobox

On Mon, 2 Mar 2009, Rogério Brito wrote:

> Hi there.
>
> I tried to compile a new kernel for my (powerpc) Kurobox HD (an embedded
> system that has a Freescale processor), but it seems that the
> compilation fails, with both my usual config file and with the shipped
> linkstation_defconfig file.
>
> I get the following error during compilation (actually a
> cross-compilation):
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> arch/powerpc/platforms/built-in.o: In function `linkstation_setup_arch':
> linkstation.c:(.init.text+0x218): undefined reference to `physmap_set_partitions'
> drivers/built-in.o:(__ksymtab+0x9f8): undefined reference to `physmap_set_partitions'
> make: *** [.tmp_vmlinux1] Error 1
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Yes, linkstation and storcenter have to migrate to the "physmap-flash"
platform driver. For now you can define in your .config

CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_COMPAT=y
CONFIG_MTD_PHYSMAP_START=0xffc00000
CONFIG_MTD_PHYSMAP_LEN=0x400000
CONFIG_MTD_PHYSMAP_BANKWIDTH=1

(I hope the numbers are correct, just found them in my local tree, don't
remember any more what exactly they configure, please, double-check.) And
yes, it must be fixed in the mainline. I'll see if I find time for this,
maybe tomorrow (actually, already today.)

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer

2009-03-04 01:05:20

by Rogério Brito

[permalink] [raw]
Subject: Re: Linux 2.6.29-rc6 bombs while compiling a kernel for a linkstation/kurobox

On Mar 04 2009, Guennadi Liakhovetski wrote:
> Yes, linkstation and storcenter have to migrate to the "physmap-flash"
> platform driver. For now you can define in your .config
>
> CONFIG_MTD_PHYSMAP=y
> CONFIG_MTD_PHYSMAP_COMPAT=y
> CONFIG_MTD_PHYSMAP_START=0xffc00000
> CONFIG_MTD_PHYSMAP_LEN=0x400000
> CONFIG_MTD_PHYSMAP_BANKWIDTH=1

I did that already yesterday. Please, see my patch at
http://marc.info/?l=linux-kernel&m=123606933628020&w=4

And the entry at bugzilla:
http://bugzilla.kernel.org/show_bug.cgi?id=12811

> (I hope the numbers are correct, just found them in my local tree, don't
> remember any more what exactly they configure, please, double-check.)

Yes, I had them in my tree also. And it is tested already, up and
running and in production for 17 hours.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
rbrito@lutz:~$ uptime
22:03:16 up 17:06, 1 user, load average: 0.16, 0.03, 0.01
rbrito@lutz:~$
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

> And yes, it must be fixed in the mainline. I'll see if I find time for
> this, maybe tomorrow (actually, already today.)

Please, Cc me any relevant patches, as I'm not subscribed to all those
lists.


Regards, Rogério Brito.

--
Rogério Brito : rbrito@{mackenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org

2009-03-04 07:46:52

by Guennadi Liakhovetski

[permalink] [raw]
Subject: Re: [PATCH] powerpc: fix the defaults for the linkstation MTD device (was: Re: Linux 2.6.29-rc6 bombs while compiling a kernel for a linkstation/kurobox)

On Tue, 3 Mar 2009, Rogério Brito wrote:

> Hi, Tony and other people.
>
> On Mar 03 2009, Tony Breeds wrote:
> > On Mon, Mar 02, 2009 at 06:43:03AM -0300, Rogério Brito wrote:
> > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > > arch/powerpc/platforms/built-in.o: In function `linkstation_setup_arch':
> > > linkstation.c:(.init.text+0x218): undefined reference to `physmap_set_partitions'
> > > drivers/built-in.o:(__ksymtab+0x9f8): undefined reference to `physmap_set_partitions'
> > > make: *** [.tmp_vmlinux1] Error 1
> > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> >
> > Looks to me like you need to define CONFIG_MTD_PHYSMAP_COMPAT in your
> > .config.
>
> Right. This was the fix. The attached diff to update the defconfig is
> included below.
>
> Please, note that it wasn't sufficient to only to define
> CONFIG_MTD_PHYSMAP_COMPAT.
>
> The default values for CONFIG_MTD_PHYSMAP_{START,LEN,BANKWIDTH} weren't
> correct (and, as a result, no MTD was detected on my kurobox and this
> was a regression regarding 2.6.28).
>
> This patch makes the compilation succeed and the MTD device work again.
> Already tested and in production.

No, I don't think this is a proper fix. Remember, the kernel has to at
least compile not only with defconfigs, but with all valid configurations.
So, at the very least you would also have to

static void __init linkstation_setup_arch(void)
{
struct device_node *np;
-#ifdef CONFIG_MTD_PHYSMAP
+#ifdef CONFIG_MTD_PHYSMAP_COMPAT
physmap_set_partitions(linkstation_physmap_partitions,
ARRAY_SIZE(linkstation_physmap_partitions));
#endif

in linkstation.c. In fact, this is a fix, not changing defconfig, which
actually strictly speaking is not necessary. If only it fixes a
regression, that defconfig used to provide mtd devices, now it no longer
does.

But even this I don't think is a proper fix. A proper fix would be to
remove flash definitions from linkstation.c completely. Maybe we should
add them to kuroboxH?.dts, similar to mgcoge.dts and define
CONFIG_MTD_PHYSMAP_OF, or we can define CONFIG_MTD_CMDLINE_PARTS and rely
on the user providing a map on the command line. I don't know what is the
currently preferred way, Kumar? Notice, while fixing linkstation, one
should also fix storcenter.

Thanks
Guennadi

> Signed-off-by: Rogério Brito <[email protected]>
>
>
> ---
>
> --- linux/arch/powerpc/configs/linkstation_defconfig.old 2009-03-03 05:11:38.000000000 -0300
> +++ linux/arch/powerpc/configs/linkstation_defconfig 2009-03-03 05:11:54.000000000 -0300
> @@ -1,7 +1,7 @@
> #
> # Automatically generated make config: don't edit
> -# Linux kernel version: 2.6.29-rc2
> -# Mon Jan 26 15:35:29 2009
> +# Linux kernel version: 2.6.29-rc6
> +# Tue Mar 3 05:10:59 2009
> #
> # CONFIG_PPC64 is not set
>
> @@ -71,6 +71,15 @@
> # CONFIG_BSD_PROCESS_ACCT is not set
> # CONFIG_TASKSTATS is not set
> # CONFIG_AUDIT is not set
> +
> +#
> +# RCU Subsystem
> +#
> +CONFIG_CLASSIC_RCU=y
> +# CONFIG_TREE_RCU is not set
> +# CONFIG_PREEMPT_RCU is not set
> +# CONFIG_TREE_RCU_TRACE is not set
> +# CONFIG_PREEMPT_RCU_TRACE is not set
> CONFIG_IKCONFIG=y
> CONFIG_IKCONFIG_PROC=y
> CONFIG_LOG_BUF_SHIFT=14
> @@ -88,6 +97,7 @@
> # CONFIG_IPC_NS is not set
> # CONFIG_USER_NS is not set
> # CONFIG_PID_NS is not set
> +# CONFIG_NET_NS is not set
> CONFIG_BLK_DEV_INITRD=y
> CONFIG_INITRAMFS_SOURCE=""
> CONFIG_CC_OPTIMIZE_FOR_SIZE=y
> @@ -153,11 +163,6 @@
> # CONFIG_DEFAULT_CFQ is not set
> # CONFIG_DEFAULT_NOOP is not set
> CONFIG_DEFAULT_IOSCHED="anticipatory"
> -CONFIG_CLASSIC_RCU=y
> -# CONFIG_TREE_RCU is not set
> -# CONFIG_PREEMPT_RCU is not set
> -# CONFIG_TREE_RCU_TRACE is not set
> -# CONFIG_PREEMPT_RCU_TRACE is not set
> # CONFIG_FREEZER is not set
>
> #
> @@ -294,7 +299,6 @@
> #
> # Networking options
> #
> -# CONFIG_NET_NS is not set
> CONFIG_COMPAT_NET_DEV_OPS=y
> CONFIG_PACKET=y
> CONFIG_PACKET_MMAP=y
> @@ -560,7 +564,10 @@
> #
> # CONFIG_MTD_COMPLEX_MAPPINGS is not set
> CONFIG_MTD_PHYSMAP=y
> -# CONFIG_MTD_PHYSMAP_COMPAT is not set
> +CONFIG_MTD_PHYSMAP_COMPAT=y
> +CONFIG_MTD_PHYSMAP_START=0xffc00000
> +CONFIG_MTD_PHYSMAP_LEN=0x400000
> +CONFIG_MTD_PHYSMAP_BANKWIDTH=1
> # CONFIG_MTD_PHYSMAP_OF is not set
> # CONFIG_MTD_INTEL_VR_NOR is not set
> # CONFIG_MTD_PLATRAM is not set
> @@ -617,13 +624,19 @@
> # CONFIG_BLK_DEV_HD is not set
> CONFIG_MISC_DEVICES=y
> # CONFIG_PHANTOM is not set
> -# CONFIG_EEPROM_93CX6 is not set
> # CONFIG_SGI_IOC4 is not set
> # CONFIG_TIFM_CORE is not set
> # CONFIG_ICS932S401 is not set
> # CONFIG_ENCLOSURE_SERVICES is not set
> # CONFIG_HP_ILO is not set
> # CONFIG_C2PORT is not set
> +
> +#
> +# EEPROM support
> +#
> +# CONFIG_EEPROM_AT24 is not set
> +CONFIG_EEPROM_LEGACY=m
> +# CONFIG_EEPROM_93CX6 is not set
> CONFIG_HAVE_IDE=y
> # CONFIG_IDE is not set
>
> @@ -1037,8 +1050,6 @@
> # Miscellaneous I2C Chip support
> #
> # CONFIG_DS1682 is not set
> -# CONFIG_EEPROM_AT24 is not set
> -CONFIG_EEPROM_LEGACY=m
> # CONFIG_SENSORS_PCF8574 is not set
> # CONFIG_PCF8575 is not set
> # CONFIG_SENSORS_PCA9539 is not set
>
>
> --
> Rogério Brito : rbrito@{mackenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
> http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
> Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org
> --
> 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/
>

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer

2009-03-04 21:46:31

by Rogério Brito

[permalink] [raw]
Subject: Re: [PATCH] powerpc: fix the defaults for the linkstation MTD device

On Mar 04 2009, Guennadi Liakhovetski wrote:
> On Tue, 3 Mar 2009, Rogério Brito wrote:
> > Please, note that it wasn't sufficient to only to define
> > CONFIG_MTD_PHYSMAP_COMPAT.
> >
> > The default values for CONFIG_MTD_PHYSMAP_{START,LEN,BANKWIDTH} weren't
> > correct (and, as a result, no MTD was detected on my kurobox and this
> > was a regression regarding 2.6.28).
> >
> > This patch makes the compilation succeed and the MTD device work again.
> > Already tested and in production.
>
> No, I don't think this is a proper fix.

Indeed. I agree completely. I just don't know if the changes to 2.6.29
would be a good thing at this point in time. I guess that a proper fix
can be made by the next merge window.

> Remember, the kernel has to at least compile not only with defconfigs,
> but with all valid configurations.

That is, of course, the right thing to do. Unfortunately, the programs
are not exactly in that good shape. :-(

We all know that the kernel is a critical part of the operating system,
but it probably fails with "valid configurations" (how do we tell one?)
if we issue a randconfig or something like that.

Proving correctness is something that we should do, but it gets quite
hard with very big projects like the kernel (no, this isn't an excuse
for not doing it), and, as a consequence, We have to draw the line
somewhere and do quite a good amount of regression testing.

That's the easiest path to achieve something slightly closer to being
correct (emphasis on the "easiest" part) and I humbly think that it is a
good thing that lusers (me! me! me!) are testing less widely used kernel
settings.

> So, at the very least you would also have to
>
> static void __init linkstation_setup_arch(void)
> {
> struct device_node *np;
> -#ifdef CONFIG_MTD_PHYSMAP
> +#ifdef CONFIG_MTD_PHYSMAP_COMPAT
> physmap_set_partitions(linkstation_physmap_partitions,
> ARRAY_SIZE(linkstation_physmap_partitions));
> #endif
>
> in linkstation.c. In fact, this is a fix, not changing defconfig, which
> actually strictly speaking is not necessary. If only it fixes a
> regression, that defconfig used to provide mtd devices, now it no longer
> does.

Right.

> But even this I don't think is a proper fix.

Agreed.

> A proper fix would be to remove flash definitions from linkstation.c
> completely. Maybe we should add them to kuroboxH?.dts, similar to
> mgcoge.dts and define CONFIG_MTD_PHYSMAP_OF, or we can define
> CONFIG_MTD_CMDLINE_PARTS and rely on the user providing a map on the
> command line. I don't know what is the currently preferred way, Kumar?
> Notice, while fixing linkstation, one should also fix storcenter.

I know nothing about the storcenter, owning just a Kurobox HD.

But, yes, I'm not exactly sure where to hardcode the settings. If on the
C code (is linkstation.c used by any other hardware?), if in the config
file or in the device tree file. It sounds to me like the most
reasonable choice would be to:

* have it in the device tree file, if the data is fixed for each type of
machine.

* have it in the .config file, if those data change among the same
type of hardware, so that the user doesn't have to mess with the
device tree sources (which can break parsing them etc).


Regards, Rogério Brito.

--
Rogério Brito : rbrito@{mackenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org

2009-03-05 23:25:28

by Guennadi Liakhovetski

[permalink] [raw]
Subject: [PATCH] powerpc: fix linkstation and storcenter compilation breakage

Defining flash partition table in platform code is deprecated, and due to
recent changes linkstation and storcenter do not compile any more with
their default configurations because of undefined references to
physmap_set_partitions(). Instead of fixing them by using the correct
kernel configuration macro in preprocessor conditional, remove partition
table definitions altogether. Instead add support for partition definition
on the command-line and in device tree to the default configurations.

Signed-off-by: Guennadi Liakhovetski <[email protected]>
---
Kumar, could you push this up ASAP, please? This fixes

[Bug #12811] undefined reference to `physmap_set_partitions' on powerpc

diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index aa5855a..15900dc 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.29-rc2
-# Mon Jan 26 15:35:29 2009
+# Linux kernel version: 2.6.29-rc6
+# Fri Mar 6 00:07:38 2009
#
# CONFIG_PPC64 is not set

@@ -71,6 +71,15 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -88,6 +97,7 @@ CONFIG_NAMESPACES=y
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -153,11 +163,6 @@ CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_FREEZER is not set

#
@@ -294,7 +299,6 @@ CONFIG_NET=y
#
# Networking options
#
-# CONFIG_NET_NS is not set
CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
@@ -508,8 +512,8 @@ CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_OF_PARTS=y
# CONFIG_MTD_AR7_PARTS is not set

#
@@ -587,7 +591,6 @@ CONFIG_MTD_PHYSMAP=y
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_QINFO_PROBE is not set

#
# UBI - Unsorted block images
@@ -617,13 +620,19 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
# CONFIG_BLK_DEV_HD is not set
CONFIG_MISC_DEVICES=y
# CONFIG_PHANTOM is not set
-# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+CONFIG_EEPROM_LEGACY=m
+# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

@@ -839,6 +848,7 @@ CONFIG_R8169=y
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
# CONFIG_JME is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
@@ -1037,8 +1047,6 @@ CONFIG_I2C_MPC=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_EEPROM_AT24 is not set
-CONFIG_EEPROM_LEGACY=m
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index 86512c8..9490346 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.29-rc2
-# Mon Jan 26 15:35:46 2009
+# Linux kernel version: 2.6.29-rc6
+# Fri Mar 6 00:09:08 2009
#
# CONFIG_PPC64 is not set

@@ -71,6 +71,15 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_GROUP_SCHED=y
@@ -144,11 +153,6 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_FREEZER is not set

#
@@ -377,8 +381,8 @@ CONFIG_MTD=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_OF_PARTS=y
# CONFIG_MTD_AR7_PARTS is not set

#
@@ -452,7 +456,6 @@ CONFIG_MTD_PHYSMAP=y
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_QINFO_PROBE is not set

#
# UBI - Unsorted block images
@@ -478,13 +481,19 @@ CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_HD is not set
CONFIG_MISC_DEVICES=y
# CONFIG_PHANTOM is not set
-# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
CONFIG_IDE=y

@@ -677,6 +686,7 @@ CONFIG_R8169=y
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
# CONFIG_JME is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
@@ -818,8 +828,6 @@ CONFIG_I2C_MPC=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_LEGACY is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCA9539 is not set
@@ -1159,6 +1167,7 @@ CONFIG_JFFS2_RTIME=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_EXPORTFS=m

#
# Partition Types
diff --git a/arch/powerpc/platforms/embedded6xx/linkstation.c b/arch/powerpc/platforms/embedded6xx/linkstation.c
index 2ca7be6..244f997 100644
--- a/arch/powerpc/platforms/embedded6xx/linkstation.c
+++ b/arch/powerpc/platforms/embedded6xx/linkstation.c
@@ -12,7 +12,6 @@

#include <linux/kernel.h>
#include <linux/initrd.h>
-#include <linux/mtd/physmap.h>
#include <linux/of_platform.h>

#include <asm/time.h>
@@ -22,39 +21,6 @@

#include "mpc10x.h"

-static struct mtd_partition linkstation_physmap_partitions[] = {
- {
- .name = "mtd_firmimg",
- .offset = 0x000000,
- .size = 0x300000,
- },
- {
- .name = "mtd_bootcode",
- .offset = 0x300000,
- .size = 0x070000,
- },
- {
- .name = "mtd_status",
- .offset = 0x370000,
- .size = 0x010000,
- },
- {
- .name = "mtd_conf",
- .offset = 0x380000,
- .size = 0x080000,
- },
- {
- .name = "mtd_allflash",
- .offset = 0x000000,
- .size = 0x400000,
- },
- {
- .name = "mtd_data",
- .offset = 0x310000,
- .size = 0x0f0000,
- },
-};
-
static __initdata struct of_device_id of_bus_ids[] = {
{ .type = "soc", },
{ .compatible = "simple-bus", },
@@ -99,10 +65,6 @@ static int __init linkstation_add_bridge(struct device_node *dev)
static void __init linkstation_setup_arch(void)
{
struct device_node *np;
-#ifdef CONFIG_MTD_PHYSMAP
- physmap_set_partitions(linkstation_physmap_partitions,
- ARRAY_SIZE(linkstation_physmap_partitions));
-#endif

/* Lookup PCI host bridges */
for_each_compatible_node(np, "pci", "mpc10x-pci")
diff --git a/arch/powerpc/platforms/embedded6xx/storcenter.c b/arch/powerpc/platforms/embedded6xx/storcenter.c
index 8864e48..613070e 100644
--- a/arch/powerpc/platforms/embedded6xx/storcenter.c
+++ b/arch/powerpc/platforms/embedded6xx/storcenter.c
@@ -14,7 +14,6 @@
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/initrd.h>
-#include <linux/mtd/physmap.h>
#include <linux/of_platform.h>

#include <asm/system.h>
@@ -26,32 +25,6 @@
#include "mpc10x.h"


-#ifdef CONFIG_MTD_PHYSMAP
-static struct mtd_partition storcenter_physmap_partitions[] = {
- {
- .name = "kernel",
- .offset = 0x000000,
- .size = 0x170000,
- },
- {
- .name = "rootfs",
- .offset = 0x170000,
- .size = 0x590000,
- },
- {
- .name = "uboot",
- .offset = 0x700000,
- .size = 0x040000,
- },
- {
- .name = "config",
- .offset = 0x740000,
- .size = 0x0c0000,
- },
-};
-#endif
-
-
static __initdata struct of_device_id storcenter_of_bus[] = {
{ .name = "soc", },
{},
@@ -96,11 +69,6 @@ static void __init storcenter_setup_arch(void)
{
struct device_node *np;

-#ifdef CONFIG_MTD_PHYSMAP
- physmap_set_partitions(storcenter_physmap_partitions,
- ARRAY_SIZE(storcenter_physmap_partitions));
-#endif
-
/* Lookup PCI host bridges */
for_each_compatible_node(np, "pci", "mpc10x-pci")
storcenter_add_bridge(np);