Hi,

On Sun, 6 Dec 2015 12:01:08 +1100
"Brendan Simon (eTRIX)" <brendan.si...@etrix.com.au> wrote:

> Hi,
> 
> I'm using a Digilent ZedBoard with a Xilinx Zynq 7020 SoC.  The kernel
> is from Analog Devices and is a fork of 4.0.0 (according to the Makefile).
> 
> I am struggling to work out the fw_env.config file required to use with
> fw_printenv/fw_saveenv.
> fw_printenv continually gives me CRC error and uses the defaults.
> 
> Google hasn't provided much assistance, with some people reporting that
> the settings required are different to what /proc/mtd shows.
> 
> Here is info from /proc/mtd and my /etc/fw_env.config.
> 
> root@bjs:~# cat
> /proc/mtd                                                                     
>                             
> 
> dev:    size   erasesize  name
> mtd0: 00500000 00010000 "boot"
> mtd1: 00020000 00010000 "bootenv"
> mtd2: 00020000 00010000 "config"
> mtd3: 00a80000 00010000 "image"
> mtd4: 01040000 00010000 "spare"
> 
> root@bjs:~# cat
> /etc/fw_env.config                                                            
>                                      
> 
> # Configuration file for fw_(printenv/setenv) utility.
> # Up to two entries are valid, in this case the redundant
> # environment sector is assumed present.
> # MTD device name       Device offset   Env. size       Flash sector size
> #         /dev/mtd1               0x0000          0x20000         0x40000
> #         /dev/mtd1               0x0000          0x20000         0x20000
> #         /dev/mtd1               0x0000          0x20000         0x10000
> #         /dev/mtd2               0x0000          0x20000         0x40000
> #         /dev/mtd2               0x0000          0x20000         0x20000
>          /dev/mtd2               0x0000          0x20000         0x10000
> 
> Does anyone have any insight into what the correct fw_env.config
> settings should be from the above info?

Using /dev/mtd2 in /etc/fw_env.config might be wrong. First, you need to figure
out which mtd partition contains the sectors with U-Boot environment variables.
According to /proc/mtd info it could be the mtd1, if the mtd partitions layout
under linux is correct. To check it, just run

  dd if=/dev/mtd1 | hexdump -C

If the dumped data looks like environment variables, e.g.

  00000000  a5 72 49 1b 01 61 64 64  63 6f 6e 73 3d 73 65 74  |.rI..addcons=set|
  00000010  65 6e 76 20 62 6f 6f 74  61 72 67 73 20 24 7b 62  |env bootargs ${b|
  00000020  6f 6f 74 61 72 67 73 7d  20 63 6f 6e 73 6f 6c 65  |ootargs} console|
  00000030  3d 24 7b 63 6f 6e 73 6f  6c 65 7d 2c 24 7b 62 61  |=${console},${ba|
  ...

then the mtd1 device is correct. Use it in fw_env.config.
To determine other parameters for fw_env.config you need to check the
used environment configuration in the U-Boot source, in the board's config
file (include/configs/zyng_zed.h, include/configs/zynq-common.h). Search
for CONFIG_ENV_SIZE, CONFIG_ENV_SECT_SIZE and CONFIG_ENV_OFFSET macros.

> How can I find out the correct settings.  Is there a command in u-boot
> itself which will report the correct information?

for ZedBoard, you probably can not. It depends on the U-Boot configuration.
If the "mtd" command support is compiled in and the "mtdparts" environment
variable is set properly, then it could be possible to output some
info.

HTH,

Anatolij
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to