From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stile Date: Thu, 07 Mar 2013 18:00:29 -0800 Subject: [U-Boot] mtdparts not agreeing wiht fw_printenv In-Reply-To: <20130307065257.7B3D8200520@gemini.denx.de> References: <1362532855.20183.135.camel@genx> <20130307065257.7B3D8200520@gemini.denx.de> Message-ID: <1362708029.30287.143.camel@genx> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Wolfgang Denk , On Thu, 2013-03-07 at 07:52 +0100, Wolfgang Denk wrote: > Dear John Stile, > > In message <1362532855.20183.135.camel@genx> you wrote: > > I am quite confused about partitions in my NAND flash. > > > > Linux can mount my rootfs, so partitions make sense to the kernel, but > > from the shell fw_printenv can't read the uboot environment, not matter > > what I use in /etc/fw_env.config. > > That means that all settings were incorrect. All settings where not incorrect. > > > dev: size erasesize name > > mtd0: 00020000 00020000 "bootstrap1" > > mtd1: 00040000 00020000 "uboot1" > > mtd2: 001a0000 00020000 "env1" > ^^^^^^ mtd2 > > mtd3: 00200000 00020000 "linux1" > > mtd4: 07c00000 00020000 "rootfs1" > > mtd5: 00020000 00020000 "bootstrap2" > > mtd6: 00040000 00020000 "uboot2" > > mtd7: 001a0000 00020000 "env2" > ^^^^^^ mtd7 > > mtd8: 00200000 00020000 "linux2" > > mtd9: 07c00000 00020000 "rootfs2" > > mtd10: 00004200 00000420 "bootstrap3" > > mtd11: 00004200 00000420 "env3" > ^^^^^^ mtd11 > > mtd12: 00039c00 00000420 "uboot3" > > mtd13: 00252000 00000420 "linux3" > > mtd14: 005ac000 00000420 "rootfs3" > > > What's that? This makes no sense to me - either you have a single copy > of the environment, or two (in case of redudant env). Three copies is > not a supported configuration. > > > I purposefully created more /dev/mtd devices than mtdparts would > > require, in order to find which partitions actually contain the uboot > > env. > > mtdparts does not "require" anything. You configure your systems as > needed, and then set mtdparts to match that setting. SO the setting > comes first (starting in your head or - probably better - on a sheet > of paper), and then you set mtdparts as needed. > Right. Even without the /dev/mtd character device files, the system boots. This post comes way after a lot of work on paper. > > /dev/mtd4 and /dev/mtd5 create binary equivalent dumps of env1 > > /dev/mtd14 and /dev/mtd15 create binary equivalent dumps of env2. > > The names and use of your partitions is in serious mismatch. Fix this > first! The problem turned out to be due to my /dev/mtd character device files had sequential minor numbers. > > /etc/fw_env.config does not like either of those, saying the crc does > > not checkout. > > > > /etc/fw_env.config: > > /dev/mtd2 0x0 0x20000 0x20000 > > /dev/mtd2 0x20000 0x20000 0x20000 > > Well, if you find the environment in /dev/mtd4 and /dev/mtd5, then you > should use these in the fw_env.config > > Best regards, > > Wolfgang Denk > Like I said, I think, even those did not work. When I created my /dev/mtd character device files to use even minor numbers, I was able to see my env in /dev/mtd2 /dev/mtd7 using od: od -t xz /dev/mtd2 od -t xz /dev/mtd7 And fw_printenv also worked. One site said read-write device will have even minor numbers. Since I am using a 2.6.30 kernel, without tmpdevfs, I rely on buildroot's target/generic/device_table_dev.txt to generate my devices, and it was there I had not set the proper values: # MTD stuff # /dev/mtd c 640 0 0 90 0 0 2 20 Thank you for your help.