I could change the path form MMC to NAND when save the u-boot variable for help.
Re: how to change the u-boot environment to NAND when saveenv on i.MX28 coustom board
And I add NAND parameters to u-boot source code so I got the below result as log.
U-Boot 2009.08 (Oct 31 2013 - 20:23:53)
Freescale i.MX28 family
CPU: 454 MHz
BUS: 151 MHz
EMI: 205 MHz
GPMI: 24 MHz
DRAM: 64 MB
NAND: Manufacturer : Esmt (0x92)
Device Code : 0xf1
Cell Technology : SLC
Chip Size : 128 MiB
Pages per Block : 64
Page Geometry : 2048+64
ECC Strength : 4 bits
ECC Size : 512 B
Data Setup Time : 20 ns
Data Hold Time : 10 ns
Address Setup Time: 20 ns
GPMI Sample Delay : 6 ns
tREA : Unknown
tRLOH : Unknown
tRHOH : Unknown
Description : F59L1G81A
128 MiB
function nand_init
address of nand_info[0] = 0x41031f48
In: serial
Out: serial
Err: serial
Net: got MAC address from IIM: 00:04:00:00:00:00
FEC0
Hit any key to stop autoboot: 0
But I can't save the variable when saveenv. The log is
MX28 U-Boot > saveenv
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x140000000020000 -- 0% complete.
Writing to Nand... done
MX28 U-Boot >
I don't understand the eraseing address. (0x140000000020000)
When do saveenv command the function saveenv in u-boot/common/env_nand.c calls nand_erase_opts function in u-boot/drivers/mtd/nand/nand_util.c
I did the check the address erase.addr value in nand_erase_opts function.
The address erase.addr value is diffeent when call it.
Can help me?
I see you use U-boot 2009.08 , but I would recommend you to use 2013.10 instead.,
Then you build it like:
make mx28evk_nand_config
make
The 'mx28evk_nand' target stores the environment variables into the NAND flash.
You can follow these guidelines:
and
git.denx.de Git - u-boot.git/blob - board/freescale/mx28evk/README
Regards,
Fabio Estevam
Are you sure your ENV nand config setting right? There is one example in mx6q_arm2.h.
#define CONFIG_ENV_IS_IN_NAND 1
#define CONFIG_ENV_OFFSET 0x100000
Thanks raymond!
As you see the log my question. I don't understand the erasing address (address is too long) and 0% complete.
But the saveenv operaton is done. The variable after saveenv and reset was saved.
Thank you.