Sascha, > Can you confirm that the read ends in your nand driver? Does your nand > driver work properly? I can confirm the NAND driver is working fine in other circumstances. I have flashed a kernel zimage to NAND using DFU (at the kernel partition). Copied this zimage to RAM and booted it using bootz. LOG for Kernel booting : barebox 2010.09.0-00003-ge5727b1-dirty (Sep 27 2010 - 17:18:50) Board: STMicroelectronics EVB2065 with Cartesio Plus NAND device: Manufacturer ID: 0x2c, Chip ID: 0x48 (Micron NAND 2GiB 3,3V 8-bit) Scanning device for bad blocks Malloc space: 0x00860000 -> 0x00e60000 (size 6 MB) Stack space : 0x02000000 -> 0x02400000 (size 4 MB) Open /dev/env0 error 2 no valid environment found on /dev/env0. Using default environment Open /dev/defaultenv error 2 running /env/bin/init... not found EVB2065> ls . .. dev EVB2065> EVB2065> erase /dev/nand0 EVB2065> addpart /dev/nand0 4M(barebox)ro,2M(kernel)ro,-(root) EVB2065> nand -a /dev/nand0.kernel EVB2065> nand -a /dev/nand0.barebox EVB2065> dfu -V 1 -P 24 /dev/nand0.kernel.bb(barebox) dfu: register alt0(barebox) with device /dev/nand0.kernel.bb EVB2065> ls . .. dev EVB2065> cp /dev/nand0.kernel.bb /zimage EVB2065> bootz /zimage loaded zImage from /zimage with size 1188508 commandline: <NULL> arch_number: 2131 Linux version 2.6.32.16-svn2136 (singhg@HUMMER) (gcc version 4.2.4 (STMicroelectronics/Linux Base 4.2.4-55)) #2 PREEMPT Fri Sep 17 11:27:42 IST 2010 CPU: ARMv6-compatible processor [410fb764] revision 4 (ARMv7), cr=00c5387f CPU: VIPT aliasing data cache, VIPT aliasing instruction cache Machine: STMicroelectronics Cartesio Plus STA2065, EVB2065 Memory policy: ECC disabled, Data cache writeback Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 Kernel command line: root=/dev/ram0 console=ttyAMA1,115200n8 init=linuxrc consoleblank=0 .... Kernel booting from this NAND partition is also working after reboot. > Have you erased /dev/env0 before doing the dfu command? I erased the entire NAND device (erase /dev/nand0) before writing using the DFU command. Also I'm padding the barebox_default_env file to 4096 (my NAND page size), before flashing it. Regards Gaurav On Wed, Sep 29, 2010 at 1:18 PM, Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > Hi Gaurav, > > On Wed, Sep 29, 2010 at 12:20:20PM +0530, Gaurav Singh wrote: >> Hi all, >> Currently I'm trying to load a barebox environment image from NAND >> storage but can't load it correctly. >> >> I have given the path of my environment in the config : >> >> CONFIG_CONSOLE_FULL=y >> CONFIG_CONSOLE_ACTIVATE_FIRST=y >> # CONFIG_OF_FLAT_TREE is not set >> CONFIG_PARTITION=y >> CONFIG_DEFAULT_ENVIRONMENT=y >> CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/cartesio-evb2065/env/bin" >> >> After registering the NAND device I prepared a couple of Bad Block >> aware partitions : >> >> devfs_add_partition("nand0", 0x00000, 0x200000, PARTITION_FIXED, "self_raw"); >> dev_add_bb_dev("self_raw", "self0"); >> devfs_add_partition("nand0", 0x200000, 0x200000, PARTITION_FIXED, "env_raw"); >> dev_add_bb_dev("env_raw", "env0"); >> >> On compilation I get a barebox environment image - barebox_default_env. >> Flashed this image to the env0 partition via DFU - >> dfu -V 1 -P 24 /dev/env0 > > Have you tried doing a cp /dev/env0 /somefile at this point? > Have you erased /dev/env0 before doing the dfu command? > >> >> From host sent the barebox_default_env (the default_env file is page >> alinged) via DFU to the NAND. >> >> The flashing worked fine. >> >> But now when I re-boot the system : >> >> barebox 2010.09.0-00003-ge5727b1-dirty (Sep 27 2010 - 17:18:50) >> >> Board: STMicroelectronics EVB2065 with Cartesio Plus >> NAND device: Manufacturer ID: 0x2c, Chip ID: 0x48 (Micron NAND 2GiB 3,3V 8-bit) >> Scanning device for bad blocks >> Malloc space: 0x00860000 -> 0x00e60000 (size 6 MB) >> Stack space : 0x00850000 -> 0x00858000 (size 32 kB) >> >> >> This system is stuck at this point. Investigating further - I see that >> we are stuck at >> in the common/environment.c >> int envfs_load(char *filename, char *dir) >> { >> ... >> buf = xmalloc(size); >> buf_free = buf; >> ret = read(envfd, buf, size); - Stuck here >> >> I'm wondering why this read is failing. Could the developers shed some >> light on this ? > > Can you confirm that the read ends in your nand driver? Does your nand > driver work properly? > > Sascha > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox