[U-Boot] Question about fw_printenv settings
Detlev Zundel
dzu at denx.de
Wed Mar 10 11:22:31 CET 2010
Hi Joe,
> Hi,
>
> I have problems with fw_env.config in NOR flash.
> Would anyone please help me solve it? Thanks.
>
> In my board config:
>
> ifdef CONFIG_NAND
> #define CFG_NO_FLASH
> #define CONFIG_ENV_IS_IN_NAND 1
> #define CONFIG_ENV_OFFSET 0x400000 /* add for 2008.10 */
> #define CONFIG_ENV_OFFSET_REDUND 0x404000
> #define CONFIG_ENV_SIZE 0x4000
> #else
> #define CONFIG_ENV_IS_IN_FLASH 1
> #define CONFIG_ENV_ADDR (CFG_FLASH_BASE + 0x000c0000)
> #define PHYS_FLASH_SIZE 0x1000000 /* 16 MB */
> #define CONFIG_ENV_SIZE 0x20000
> #define CONFIG_ENV_SECT_SIZE 0x20000
> #define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE)
> #endif
Maybe you want to reconsider these settings after fixing your current
problem. The idea that we have an CONFIG_ENV_SIZE additionally to
CONFIG_ENV_SECT_SIZE is so that we can define an environment _smaller_
than a whole sector. This speeds up U-Boot when calculating the CRC
over the environment. With your settings, U-Boot will need to read the
whole 128k for this calculation.
> # cat /proc/mtd
> dev: size erasesize name
> mtd0: 00dc0000 00020000 "Linux"
> mtd1: 00100000 00020000 "User"
> mtd2: 00100000 00020000 "Boot"
Are you sure these partitions are correct? The sizes add to 15.75 MiB
whereas above a comment says 16 MiB nor flash. Also the header above
says that the first environment is at the FLASH_BASE + 768k and the
second at FLASH_BASE + 896k. If the partitions here are all on nor in
linear order, the environments would be somewhere in mtd0...
> My fw_env.config setting:
> /dev/mtd2 0x400000 0x20000 0x20000
How did you arrive at these settings? The second column is the offset
into the mtd device. So you put 4 MiB there although mtd2 is only 1
MiB.
> but it doesn't work :(
> #fw_printenv
> Read error on /dev/mtd2: Success
More information about the U-Boot
mailing list