[U-Boot] Nokia N900: MTDPARTS_DEFAULT was removed in 43ede0bc (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT)

Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.

On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!

On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?

On Thu, Dec 27, 2018 at 08:09:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
OneNAND is probably still broken then, and should probably just be removed if so?
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?
You should construct and pass the final string as it doesn't look like it changes dynamically, right?

On Thursday 27 December 2018 14:12:35 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:09:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
OneNAND is probably still broken then, and should probably just be removed if so?
Now it even does not compile... I'm getting following error:
drivers/mtd/onenand/onenand_uboot.c: In function ‘onenand_init’: drivers/mtd/onenand/onenand_uboot.c:37:31: error: ‘CONFIG_SYS_ONENAND_BASE’ undeclared (first use in this function) onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/onenand/onenand_uboot.c:37:31: note: each undeclared identifier is reported only once for each function it appears in
After I applied
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index fe2ecf6c94..905bdee249 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -36,3 +36,6 @@ CONFIG_TWL4030_USB=y CONFIG_VIDEO=y CONFIG_CFB_CONSOLE_ANSI=y # CONFIG_VGA_AS_SINGLE_DEVICE is not set +CONFIG_CMD_ONENAND=y +CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_UBIFS=y
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?
You should construct and pass the final string as it doesn't look like it changes dynamically, right?
Yes, that is possible. But then definition for partitions would be at two places. Once in nokia_rx51_defconfig and second time in nokia_rx51.h

On Thursday 27 December 2018 20:32:56 Pali Rohár wrote:
On Thursday 27 December 2018 14:12:35 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:09:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
OneNAND is probably still broken then, and should probably just be removed if so?
Now it even does not compile... I'm getting following error:
drivers/mtd/onenand/onenand_uboot.c: In function ‘onenand_init’: drivers/mtd/onenand/onenand_uboot.c:37:31: error: ‘CONFIG_SYS_ONENAND_BASE’ undeclared (first use in this function) onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/onenand/onenand_uboot.c:37:31: note: each undeclared identifier is reported only once for each function it appears in
After I applied
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index fe2ecf6c94..905bdee249 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -36,3 +36,6 @@ CONFIG_TWL4030_USB=y CONFIG_VIDEO=y CONFIG_CFB_CONSOLE_ANSI=y # CONFIG_VGA_AS_SINGLE_DEVICE is not set +CONFIG_CMD_ONENAND=y +CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_UBIFS=y
Compilation is definitely broken in U-Boot.
$ git grep CONFIG_SYS_ONENAND_BASE include/configs/nokia_rx51.h:#define CONFIG_SYS_ONENAND_BASE ONENAND_MAP
$ git grep ONENAND_MAP arch/arm/include/asm/arch-omap3/cpu.h:#define ONENAND_MAP 0x20000000 /* OneNand addr */
I applied following patch and then compilation succeeded.
diff --git a/arch/arm/mach-omap2/mem-common.c b/arch/arm/mach-omap2/mem-common.c index ff1e3125a0..aca834d0f3 100644 --- a/arch/arm/mach-omap2/mem-common.c +++ b/arch/arm/mach-omap2/mem-common.c @@ -138,7 +138,7 @@ void set_gpmc_cs0(int flash_type) #if defined(CONFIG_CMD_ONENAND) case MTD_DEV_TYPE_ONENAND: gpmc_regs = gpmc_regs_onenand; - base = CONFIG_SYS_ONENAND_BASE; + base = 0x20000000; size = GPMC_SIZE_128M; break; #endif diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index fe2ecf6c94..7f817a57cc 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -36,3 +36,11 @@ CONFIG_TWL4030_USB=y CONFIG_VIDEO=y CONFIG_CFB_CONSOLE_ANSI=y # CONFIG_VGA_AS_SINGLE_DEVICE is not set +CONFIG_MTD_DEVICE=y +CONFIG_MTDIDS_DEFAULT="onenand0=onenand" +CONFIG_MTDPARTS_DEFAULT="mtdparts=onenand:128k(bootloader)ro,384k(config),256k(log),2m(kernel),2m(initfs),-(rootfs)" +CONFIG_CMD_ONENAND=y +CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_MTD=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBIFS=y diff --git a/drivers/mtd/onenand/onenand_uboot.c b/drivers/mtd/onenand/onenand_uboot.c index c15ec9df07..5f2b094dfc 100644 --- a/drivers/mtd/onenand/onenand_uboot.c +++ b/drivers/mtd/onenand/onenand_uboot.c @@ -34,7 +34,7 @@ void onenand_init(void) /* It's used for some board init required */ err = onenand_board_init(&onenand_mtd); #else - onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; + onenand_chip.base = (void *) 0x20000000; #endif
if (!err && !(onenand_scan(&onenand_mtd, 1))) {
Looks like that OneNand & UBI code is working, at least in qemu. I have not tested real N900 device yet. But UBIFS does not work :-( See tests below.
Nokia RX-51 # onenand info Muxed OneNAND 256MB 1.8V 16-bit (0x40) OneNAND version = 0x0121
Nokia RX-51 # mtd list List of MTD devices: * onenand0 - type: Unknown - block size: 0x20000 bytes - min I/O: 0x800 bytes - OOB size: 64 bytes - OOB available: 20 bytes - 0x000000000000-0x000010000000 : "onenand0" - 0x000000000000-0x000000020000 : "bootloader" - 0x000000020000-0x000000080000 : "config" - 0x000000080000-0x0000000c0000 : "log" - 0x0000000c0000-0x0000002c0000 : "kernel" - 0x0000002c0000-0x0000004c0000 : "initfs" - 0x0000004c0000-0x000010000000 : "rootfs"
Nokia RX-51 # mtd dump bootloader Reading 2048 byte(s) at offset 0x00000000
Dump 2048 data bytes from 0x0: 0x00000000: dc 21 00 00 00 00 20 40 0a 00 00 ea 4e 4f 4c 4f 0x00000010: 58 6c 64 72 14 0e 00 00 00 00 20 40 09 00 00 00 ...
Nokia RX-51 # ubi part rootfs ubi0: attaching mtd6 ubi0: scanning is finished ubi0: volume 0 ("rootfs") re-sized from 1870 to 1966 LEBs ubi0: attached mtd6 (name "rootfs", size 251 MiB) ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512 ubi0: VID header offset: 512 (aligned 512), data offset: 2048 ubi0: good PEBs: 2010, bad PEBs: 0, corrupted PEBs: 0 ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128 ubi0: max/mean erase counter: 1/1, WL threshold: 4096, image sequence number: 1 ubi0: available PEBs: 0, total reserved PEBs: 2010, PEBs reserved for bad PEB handling: 40
Nokia RX-51 # ubi info l Volume information dump: vol_id 0 reserved_pebs 1966 alignment 1 data_pad 0 vol_type 3 name_len 6 usable_leb_size 129024 used_ebs 1966 used_bytes 253661184 last_eb_bytes 129024 corrupted 0 upd_marker 0 name rootfs Volume information dump: vol_id 2147479551 reserved_pebs 2 alignment 1 data_pad 0 vol_type 3 name_len 13 usable_leb_size 129024 used_ebs 2 used_bytes 258048 last_eb_bytes 2 corrupted 0 upd_marker 0 name layout volume
Nokia RX-51 # ubifsmount rootfs UBIFS error (pid: 1): cannot open "rootfs", error -22 Error reading superblock on volume 'rootfs' errno=-22! ...
Nokia RX-51 # ubifsmount ubi0:rootfs Error reading superblock on volume 'ubi0:rootfs' errno=-22! ...
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?
You should construct and pass the final string as it doesn't look like it changes dynamically, right?
Yes, that is possible. But then definition for partitions would be at two places. Once in nokia_rx51_defconfig and second time in nokia_rx51.h

On Thu, Dec 27, 2018 at 08:32:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 14:12:35 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:09:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
OneNAND is probably still broken then, and should probably just be removed if so?
Now it even does not compile... I'm getting following error:
drivers/mtd/onenand/onenand_uboot.c: In function ‘onenand_init’: drivers/mtd/onenand/onenand_uboot.c:37:31: error: ‘CONFIG_SYS_ONENAND_BASE’ undeclared (first use in this function) onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/onenand/onenand_uboot.c:37:31: note: each undeclared identifier is reported only once for each function it appears in
After I applied
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index fe2ecf6c94..905bdee249 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -36,3 +36,6 @@ CONFIG_TWL4030_USB=y CONFIG_VIDEO=y CONFIG_CFB_CONSOLE_ANSI=y # CONFIG_VGA_AS_SINGLE_DEVICE is not set +CONFIG_CMD_ONENAND=y +CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_UBIFS=y
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?
You should construct and pass the final string as it doesn't look like it changes dynamically, right?
Yes, that is possible. But then definition for partitions would be at two places. Once in nokia_rx51_defconfig and second time in nokia_rx51.h
It shouldn't be in nokia_rx51.h at all, it needs to be migrated to nokia_rx51_defconfig and any comments about where/why put into the existing board README, thanks!

On Thursday 27 December 2018 15:53:06 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:32:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 14:12:35 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:09:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
Hello, it seems that MTD partition definitions for Nokia N900 were removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT).
See diff: http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h...
Can you bring them back?
Note that those PART*_* macros are used not only for constructing MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
OneNAND is probably still broken then, and should probably just be removed if so?
Now it even does not compile... I'm getting following error:
drivers/mtd/onenand/onenand_uboot.c: In function ‘onenand_init’: drivers/mtd/onenand/onenand_uboot.c:37:31: error: ‘CONFIG_SYS_ONENAND_BASE’ undeclared (first use in this function) onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/onenand/onenand_uboot.c:37:31: note: each undeclared identifier is reported only once for each function it appears in
After I applied
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index fe2ecf6c94..905bdee249 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -36,3 +36,6 @@ CONFIG_TWL4030_USB=y CONFIG_VIDEO=y CONFIG_CFB_CONSOLE_ANSI=y # CONFIG_VGA_AS_SINGLE_DEVICE is not set +CONFIG_CMD_ONENAND=y +CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_UBIFS=y
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?
You should construct and pass the final string as it doesn't look like it changes dynamically, right?
Yes, that is possible. But then definition for partitions would be at two places. Once in nokia_rx51_defconfig and second time in nokia_rx51.h
It shouldn't be in nokia_rx51.h at all, it needs to be migrated to nokia_rx51_defconfig and any comments about where/why put into the existing board README, thanks!
As wrote, reason is that those definitions are used also for regenerating OMAP N900 atags for Linux kernel. See:
http://git.denx.de/?p=u-boot.git;a=blob;f=board/nokia/rx51/rx51.c;h=76f6ede3...
OMAP_TAG_PARTITION_CONFIG is macro which takes partition name, size in bytes, offset in bytes and mask (use for indicating RO).
But CONFIG_MTDPARTS_DEFAULT is one string which contains everything concatenated and so...
And input for OMAP_TAG_PARTITION_CONFIG and CONFIG_MTDPARTS_DEFAULT was generated from PART*_* macros which are there:
http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/nokia_rx51.h;h=453...
If you have an idea how to solve this problem, you can try it...

On Thu, Dec 27, 2018 at 10:01:43PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 15:53:06 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:32:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 14:12:35 Tom Rini wrote:
On Thu, Dec 27, 2018 at 08:09:56PM +0100, Pali Rohár wrote:
On Thursday 27 December 2018 13:57:59 Tom Rini wrote:
On Thu, Dec 27, 2018 at 07:52:54PM +0100, Pali Rohár wrote:
> Hello, it seems that MTD partition definitions for Nokia N900 were > removed in commit 43ede0bca7fc1590b623832b743213b818257a27 (Kconfig: > Migrate MTDIDS_DEFAULT / MTDPARTS_DEFAULT). > > See diff: > http://git.denx.de/?p=u-boot.git;a=blobdiff;f=include/configs/nokia_rx51.h;h... > > Can you bring them back? > > Note that those PART*_* macros are used not only for constructing > MTDPARTS_DEFAULT, but also for OMAP Nokia N900 atags, which are needed > for booting Maemo 5.
Yes, please update the defconfig file with whatever needs to be in the option there, thanks!
Looking at it... and it is problematic.
At time when Nokia N900 code was put into U-Boot mainline repository, UBIFS and OneNand code in U-Boot was broken. Therefore I added only #ifdef switch to enable MTD support optionally. Ideally once, OneNand is in U-Boot fixed, then it can be enabled. I do not know what is current state.
OneNAND is probably still broken then, and should probably just be removed if so?
Now it even does not compile... I'm getting following error:
drivers/mtd/onenand/onenand_uboot.c: In function ‘onenand_init’: drivers/mtd/onenand/onenand_uboot.c:37:31: error: ‘CONFIG_SYS_ONENAND_BASE’ undeclared (first use in this function) onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/onenand/onenand_uboot.c:37:31: note: each undeclared identifier is reported only once for each function it appears in
After I applied
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index fe2ecf6c94..905bdee249 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -36,3 +36,6 @@ CONFIG_TWL4030_USB=y CONFIG_VIDEO=y CONFIG_CFB_CONSOLE_ANSI=y # CONFIG_VGA_AS_SINGLE_DEVICE is not set +CONFIG_CMD_ONENAND=y +CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_UBIFS=y
And definition for MTD was not moved out of nokia_rx51.h file to nokia_rx51_defconfig. But if you look at old definition of MTDPART_DEFAULT it is composed from other macros in that nokia_rx51.h file.
So I cannot move it for obvious reason to nokia_rx51_defconfig, without including nokia_rx51.h in nokia_rx51_defconfig file. So how to solve this problem?
You should construct and pass the final string as it doesn't look like it changes dynamically, right?
Yes, that is possible. But then definition for partitions would be at two places. Once in nokia_rx51_defconfig and second time in nokia_rx51.h
It shouldn't be in nokia_rx51.h at all, it needs to be migrated to nokia_rx51_defconfig and any comments about where/why put into the existing board README, thanks!
As wrote, reason is that those definitions are used also for regenerating OMAP N900 atags for Linux kernel. See:
http://git.denx.de/?p=u-boot.git;a=blob;f=board/nokia/rx51/rx51.c;h=76f6ede3...
OMAP_TAG_PARTITION_CONFIG is macro which takes partition name, size in bytes, offset in bytes and mask (use for indicating RO).
But CONFIG_MTDPARTS_DEFAULT is one string which contains everything concatenated and so...
And input for OMAP_TAG_PARTITION_CONFIG and CONFIG_MTDPARTS_DEFAULT was generated from PART*_* macros which are there:
http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/nokia_rx51.h;h=453...
If you have an idea how to solve this problem, you can try it...
As I believe we're in the middle of removing the only current board that did run-time setting of mtdparts/etc, I think you're just going to have to live with doing it twice, and should move the second instance into rx51.c to make life easier down the line. Thanks!
participants (2)
-
Pali Rohár
-
Tom Rini