Re: [U-Boot] Can't read kernel if bad blocks are present in partition
Assuming you load the kernel to ram with tftp (and that AppKernel is an mtdparts partition in NAND), then you could do: nand erase.part AppKernel tftp $load_addr uImage crc32 $load_addr $filesize nand write.i $load_addr AppKernel $filesize nand read.i $load_addr AppKernel $filesize crc32 $load_addr $filesize To verify the CRCs match between what you load off tftp and what you read back from NAND. Everything works fine now. I now use nand write.i and nand read.i instead of nand write and nand.read. Does STLinux have a support contact? This list is for mainline U-Boot. Have you checked whether these chips are supported in current mainline U-Boot? It was just a misunderstanding of u-boot commands. Thank you guys for your help. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Can't read kernel if bad blocks are present in partition
Hi, Did you use nand write.i to write the kernel and nand read.i to read the kernel? the .i tells u-boot to skip bad blocks... No I use nand read $load_addr AppKernel cause I didn't know we can use nand read.i - help nand doesn't display this information. I tried nand read.i and now it works fine but I still can't boot the kernel cause its crc is wrong I will flash the kernel again with nand write.i and check if it works. That has been the default for a while now. Why use something as ancient as 1.3.1? Because my embedded linux distribution is STLinux which includes support for STM chips with this version of u-boot. Alex. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] Can't read kernel if bad blocks are present in partition
Hi, I'm working on a STM chip under linux and U-Boot 1.3.1. Here's my problem. To boot linux up I load the kernel stored in a NAND device. If a bad block is present in the nand I can't load the kernel. To store the kernel I first erase the partition and write the kernel image. During the erase stage, U-Boottells that a bad block has been skipped but everything's fine. NAND erase: device 0 offset 0x52, size 0x40 Skipping bad block at 0x005c Erasing at 0x90 -- 100% complete. OK When I write the kernel image, U-Boottells that everything's fine. NAND write: device 0 offset 0x52, size 0x40 4194304 bytes written: OK But when I try to read the kernel, it fails. NAND read: device 0 offset 0x52, size 0x1a4bff 1723391 bytes read: ERROR I though U-Boot was able to handle bad block when reading back data.. Did I forget to initialize something ? BEst regards. -- Best regards. Alexandre Gambier Fte Maximal France SAS ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] some question
Hello, Booting using the fdt blob at 0xc0 Uncompressing Kernel Image ... out of func inflateInit2 I backtraced the contents dumped and I found it died in function inflate which is defined in the file of lib/zlib.c and called in the file of lib/gunzip.c.But after that I don't know what I should to do. can any one give me some advice? Second,my flash size is 32MB, so I think the base address of my flash is 0xFE00, and the number of sector is 256,but if I use the configuration of this, it also enter the machine check, if I set the base address as 0xFF00 and the number of sector as 128, it can work, but if I type the flinfo ,the output is as follows: Hit any key to stop autoboot: 0 Did you check if the kernel is compressed using the correct algorithm ? ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] MTD partitions not mounted by the kernel
On 02/11/2011 10:06 AM, Wolfgang Denk wrote: Dear Alexandre Gambier, please do not top post / full quote; please read http://www.netmeister.org/news/learn2quote.html Sorry In message4d54eb92.7080...@ftemaximal.fr you wrote: I will try to write my own driver for my board. You almost certainly do not have to write any new driver. You just need to configure the existing ones for your hardware. Best regards, I will try to use physmap-flash for the NOR and gen_nand for the NAND. Wolfgang Denk ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] NOR sectors are not all protected as they should be.
Dear Wolfgang, Thanks for your reply and your help. On 02/09/2011 07:50 PM, Wolfgang Denk wrote: The first sectors #0,1,2,3 are protected and sectors #8,9 (U-Boot environment) are protected. It should be sectors #0,1,2,3,4,5,6,7 and sectors #8,9. No, it should not. Only the sectors that actually contain the U-Boot code and environment are protected. Obviously your image is small enough to fit in the first 4 sectors (= 256 KiB). Actually this is a perfectly normal size, and your reservation of 512 KiB was just a waste of memory. You can see that the following sectors are unused from the 'E' (= empty) flag. Even if the first 4 sectors are empty they are protected (see below). So the protected sectors are not selected depending on if U-Boot is burnt in them, isn't it ? Sector Start Addresses: A000 E RO A001 E RO A002 E RO A003 E RO A004 E A005 E A006 E A007 E A008 RO A009 E RO A00A E A00B E A00C E A00D E A00E E A00F E A010 E A011 E A012 E A013 E A014 E A015 E A016 E A017 E A018 E A019 E A01A E A01B E A01C E A01D E A01E E A01F E A020 E A021 E A022 E I know my image fit in 256KiB, my image is 220KiB that I reserved more space just in case for the future releases. When they don't contain any code, there is also no need to pretect them, right? It should be, but it's not completely true. Best regards. Best regards, Wolfgang Denk ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Can't erase or read NOR using mtd part-id
Dear Wolfgang, Thanks for this explanation. Best regards Alex On 02/09/2011 07:50 PM, Wolfgang Denk wrote: Dear Alexandre Gambier, In message4d52b843.5010...@ftemaximal.fr you wrote: I'm using u-boot to boot a Linux-based device. I created some MTD partitions for my NOR and NAND flashes. Here is the configuration: device nor0NOR, # parts = 4 #: namesizeoffset mask_flags 0: U-Boot 0x0008 0x 0 1: Environment 0x0002 0x0008 0 2: Kernel 0x0040 0x000a 0 3: FreeNOR 0x0036 0x004a 0 ... When I want to erase the U-Boot partition I can't use the command `erase U-Boot`, the following error occurs : incorrect device type in U-Boot. I must use the command `erase 1:0-7`. Is-it normal ? There are many ways to specify a flash area. When referring to MTD partitions, the synatx is device name,partition number, i. e. for the partition named U-Boot above you use erase nor0,0 So yes, the behaviour is normal. My second question is when I try to read the Environment partition with the command `md.b Environment 128` I get the following dump (which is not correct). 000e: 0e 40 ff e0 18 40 c0 cb 18 40 18 40 0c cb 03 61 .@...@...@.@...a ... Only very few commands (and only flash related ones) accept MTD partition specifications for addresses. md does not. What happpens here is that the argument Environment gets parsed as a hex number. Only the first character, 'E', can successfully be converted, then the conversion stops (without error message). Then you get the dump starting at 0x000E. Is-it normal as well ? Yes, it is. Best regards, Wolfgang Denk ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] NOR sectors are not all protected as they should be.
Ok. Thank you very much. On 02/10/2011 10:48 AM, Wolfgang Denk wrote: Dear Alexandre Gambier, In message4d539e01.6070...@ftemaximal.fr you wrote: waste of memory. You can see that the following sectors are unused from the 'E' (= empty) flag. Even if the first 4 sectors are empty they are protected (see below). So the protected sectors are not selected depending on if U-Boot is burnt in them, isn't it ? No, they are selected based on the real size of the (running) U-Boot image. Best regards, Wolfgang Denk ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] MTD partitions not mounted by the kernel
Hello, I use U-Boot 1.3.1 with a NOR and a NAND Flash. I created the following partitions with U-Boot. device nor0 NOR, # parts = 4 #: namesizeoffset mask_flags 0: U-Boot 0x0008 0x 0 1: Environment 0x0002 0x0008 0 2: Kernel 0x0040 0x000a 0 3: FreeNOR 0x0036 0x004a 0 device nand0 NAND, # parts = 2 #: namesizeoffset mask_flags 0: FS 0x0200 0x 0 1: FreeNAND0x0600 0x0200 0 active partition: nor0,0 - (U-Boot) 0x0008 @ 0x defaults: mtdids : nor0=NOR,nand0=NAND mtdparts: mtdparts=NOR:512k(U-Boot),128k(Environment),4M(Kernel),-(FreeNOR);NAND:32M(FS),-(FreeNAND) I checked the support for MTD devices and for the MTD command line in the kernel config. here is my bootargs environment variable : bootargs=console=ttyAS0,115200 mem=128M root=/dev/nfs nfsroot=192.168.1.60:/tftpboot/stlinux/skyworth/rootfs ip=192.168.1.111:192.168.1.60:192.168.1.1:255.255.255.0 mtdparts=NOR:512k(U-Boot),128k(Environment),4M(Kernel),-(FreeNOR);NAND:32M(FS),-(FreeNAND) The problem is that once my system is running the MTD devices in /dev are not created and the file /proc/mtd is empty. Is my command line wrong ? Thanks in advance. Alex ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] MTD partitions not mounted by the kernel
Dear Wolfgang, I tried to put some printk in the MTD driver and it seems that the parse_mtd_partitions function is never called... I will try to find what's wrong with my kernel configuration. alex On 02/10/2011 03:59 PM, Wolfgang Denk wrote: Dear Alexandre Gambier, In message4d53f9fa.2070...@ftemaximal.fr you wrote: mtdids : nor0=NOR,nand0=NAND ... mtdparts=NOR:512k(U-Boot),128k(Environment),4M(Kernel),-(FreeNOR);NAND:32M(FS),-(FreeNAND) ... The problem is that once my system is running the MTD devices in /dev are not created and the file /proc/mtd is empty. Is my command line wrong ? I think so. Most probably your kernel uses different identifiers instead of NOR and NAND. Check the kernel boot messages! Best regards, Wolfgang Denk ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] MTD partitions not mounted by the kernel
Hello Andreas, Thanks for this explanation. I will try to write my own driver for my board. Best regards alex On 02/10/2011 07:24 PM, Andreas Pretzsch wrote: Am Donnerstag, den 10.02.2011, 17:04 +0100 schrieb Alexandre Gambier: Dear Wolfgang, I tried to put some printk in the MTD driver and it seems that the parse_mtd_partitions function is never called... parse_mtd_partitions() is called from the mapping drivers. See e.g. linux/drivers/mtd/maps/ and linux/drivers/mtd/nand/. The mtd-id provided in kernel-cmdline has to match the name of the mapping driver, e.g. physmap-flash in case of drivers/mtd/maps/physmap.c. See linux/drivers/mtd/cmdlinepart.c for the format. Your spec looks fine, presumably beside NOR and NAND names. I will try to find what's wrong with my kernel configuration. You'll need CONFIG_MTD_PARTITIONS and CONFIG_MTD_CMDLINE_PARTS. Also check /proc/cmdline that it's really passed and not overwritten by hardcoded kernel commandline (CONFIG_CMDLINE_BOOL not set). alex On 02/10/2011 03:59 PM, Wolfgang Denk wrote: Dear Alexandre Gambier, In message4d53f9fa.2070...@ftemaximal.fr you wrote: mtdids : nor0=NOR,nand0=NAND ... mtdparts=NOR:512k(U-Boot),128k(Environment),4M(Kernel),-(FreeNOR);NAND:32M(FS),-(FreeNAND) ... The problem is that once my system is running the MTD devices in /dev are not created and the file /proc/mtd is empty. Is my command line wrong ? I think so. Most probably your kernel uses different identifiers instead of NOR and NAND. Check the kernel boot messages! Best regards, Wolfgang Denk ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] Can't erase or read NOR using mtd part-id
Hello, I'm using u-boot to boot a Linux-based device. I created some MTD partitions for my NOR and NAND flashes. Here is the configuration: device nor0 NOR, # parts = 4 #: namesizeoffset mask_flags 0: U-Boot 0x0008 0x 0 1: Environment 0x0002 0x0008 0 2: Kernel 0x0040 0x000a 0 3: FreeNOR 0x0036 0x004a 0 device nand0 NAND, # parts = 2 #: namesizeoffset mask_flags 0: FS 0x0200 0x 0 1: FreeNAND0x0600 0x0200 0 active partition: nor0,0 - (U-Boot) 0x0008 @ 0x defaults: mtdids : nor0=NOR,nand0=NAND mtdparts: mtdparts=NOR:512k(U-Boot),128k(Environment),4M(Kernel),-(FreeNOR);NAND:32M(FS),-(FreeNAND) When I want to erase the U-Boot partition I can't use the command `erase U-Boot`, the following error occurs : incorrect device type in U-Boot. I must use the command `erase 1:0-7`. Is-it normal ? My second question is when I try to read the Environment partition with the command `md.b Environment 128` I get the following dump (which is not correct). 000e: 0e 40 ff e0 18 40 c0 cb 18 40 18 40 0c cb 03 61 .@...@...@.@...a 001e: a5 e0 18 40 01 21 1f e0 18 40 ff cb 18 40 ff cb ...@.!...@...@.. 002e: 18 40 ff cb 03 64 b5 c7 03 69 92 6a a8 39 b4 da .@...d...i.j.9.. 003e: b6 db 90 3a 29 08 49 29 f6 e0 18 40 10 cb 18 40 ...:).I)...@...@ 004e: 18 40 03 61 00 e2 01 e3 18 43 01 e0 3c 31 22 21 .@.a.C..1! 005e: 0f 88 fb 8f 01 70 80 e0 18 40 18 40 18 40 03 61 .p...@.@.@.a 006e: f6 e0 18 40 10 cb 18 40 18 40 12 20 40 e0 18 40...@...@.@. @..@ 007e: 18 40 03 cb 18 40 80 cb 03 61 f7 e0 18 40 10 cb .@...@...a...@.. 008e: 18 40 18 40 12 20 90 e0 18 40 18 40 18 40 03 61.@.@. ...@.@.@.a 009e: f6 e0 18 40 10 cb 18 40 02 cb 18 40 12 20 40 e0 ...@...@...@. @. 00ae: 18 40 18 40 03 cb 18 40 80 cb 03 61 f7 e0 18 40 .@.@...@...a...@ 00be: 10 cb 18 40 02 cb 18 40 12 20 88 e0 18 40 18 40...@...@. ...@.@ 00ce: 18 40 03 61 f6 e0 18 40 10 cb 18 40 01 cb 18 40 .@.a...@...@...@ 00de: 12 20 48 e0 18 40 18 40 03 cb 18 40 80 cb 03 61. H..@.@...@...a 00ee: f7 e0 18 40 10 cb 18 40 01 cb 18 40 12 20 98 e0 ...@...@...@. .. 00fe: 18 40 18 40 18 40 03 61 f6 e0 18 40 10 cb 18 40 .@.@.@.a...@...@ 010e: 03 cb 18 40 12 20 48 e0 18 40 18 40 03 cb 18 40...@. H..@.@...@ 011e: 80 cb 03 61 f7 e0 18 40 10 cb 18 40 03 cb 18 40 ...a...@...@...@ 012e: 12 20 a0 e0 18 40 18 40. ...@.@ If use the command `md.b 0xA008 128` I get the right dump... a008: 0e c8 12 74 62 6f 6f 74 64 65 6c 61 79 3d 31 30 ...tbootdelay=10 a0080010: 00 62 61 75 64 72 61 74 65 3d 31 31 35 32 30 30 .baudrate=115200 a0080020: 00 62 6f 61 72 64 3d 73 6b 79 77 6f 72 74 68 00 .board=skyworth. a0080030: 6d 6f 6e 69 74 6f 72 5f 62 61 73 65 3d 30 78 41 monitor_base=0xA a0080040: 30 30 30 30 30 30 30 00 6d 6f 6e 69 74 6f 72 5f 000.monitor_ a0080050: 6c 65 6e 3d 30 78 30 30 30 38 30 30 30 30 00 6d len=0x0008.m a0080060: 6f 6e 69 74 6f 72 5f 73 65 63 3d 31 3a 30 2d 37 onitor_sec=1:0-7 a0080070: 00 6c 6f 61 64 5f 61 64 64 72 3d 30 78 38 30 30 .load_addr=0x800 a0080080: 30 30 30 30 30 00 65 74 68 61 64 64 72 3d 30 30 0.ethaddr=00 a0080090: 3a 30 65 3a 65 62 3a 30 30 3a 33 34 3a 62 63 00 :0e:eb:00:34:bc. a00800a0: 73 65 72 76 65 72 69 70 3d 31 39 32 2e 31 36 38 serverip=192.168 a00800b0: 2e 31 2e 36 30 00 69 70 61 64 64 72 3d 31 39 32 .1.60.ipaddr=192 a00800c0: 2e 31 36 38 2e 31 2e 31 31 30 00 66 69 72 73 74 .168.1.110.first a00800d0: 5f 69 6e 69 74 3d 6d 74 64 20 64 65 6c 20 61 6c_init=mtd del al a00800e0: 6c 3b 72 75 6e 20 65 72 61 73 65 5f 6e 6f 72 3bl;run erase_nor; a00800f0: 6d 74 64 20 64 65 66 61 75 6c 74 3b 73 61 76 65mtd default;save a0080100: 65 6e 76 3b 72 75 6e 20 75 70 64 61 74 65 5f 75env;run update_u a0080110: 62 6f 6f 74 00 65 72 61 73 65 5f 6e 6f 72 3d 70 boot.erase_nor=p a0080120: 72 6f 74 65 63 74 20 6frotect o Is-it normal as well ? Thanls in advance for your help. Alex. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] NOR sectors are not all protected as they should be.
Hello, I'm using U-Boot with a NOR and a NAND Flash. U-Boot is stored into the NOR flash. The NOR flash is setup as : 0xA000 - 0xA008 - 512k - 8 sectors - reserved for U-Boot.bin 0xA008 - 0xA00A - 128k - 2 sectors - reserved for U-Boot environment If I use the command `flinfo` to see which sectors are protected I see this... Sector Start Addresses: A000 RO A001 RO A002 RO A003 RO A004 E A005 E A006 E A007 E A008 RO A009 E RO A00A E A00B E A00C E A00D E A00E E A00F E A010 E A011 E A012 E A013 E A014 E A015 E A016 E A017 E A018 E A019 E A01A E A01B E A01C E A01D E A01E E A01F E A020 E A021 E A022 E A023 E A024 E A025 E A026 E A027 E A028 E A029 E A02A E A02B E A02C E A02D E A02E E A02F E A030 E A031 E A032 E A033 E A034 E A035 E A036 E A037 E A038 E A039 E A03A E A03B E A03C E A03D E A03E E A03F E A040 E A041 E A042 E A043 E A044 E A045 E A046 E A047 E A048 E A049 E A04A E A04B E A04C E A04D E A04E E A04F E A050 E A051 E A052 E A053 E A054 E A055 E A056 E A057 E A058 E A059 E A05A E A05B E A05C E A05D E A05E E A05F E A060 E A061 E A062 E A063 E A064 E A065 E A066 E A067 E A068 E A069 E A06A E A06B E A06C E A06D E A06E E A06F E A070 E A071 E A072 E A073 E A074 E A075 E A076 E A077 E A078 E A079 E A07A E A07B E A07C E A07D E A07E E A07F E The first sectors #0,1,2,3 are protected and sectors #8,9 (U-Boot environment) are protected. It should be sectors #0,1,2,3,4,5,6,7 and sectors #8,9. I had a looked into U-Boot source to find a constant that defines how many sectors should be protected for the monitor but I didn't find it. I guess U-Boot protect these sectors during the boot sequence. What constant must be defined to protect all of the sectors (#0,1,2,3,4,5,6,7) ? thanks in advance. Alex ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Can't erase or read NOR using mtd part-id
Hello, thanks for your reply. I'm running u-boot 1.3.1. I got it from STLinux. I will try to set CONFIG_JFFS2. But does it mean it will erase the partition using JFFS2 ? Will it support to read and write the environment settings with this file format ? Alex On 02/09/2011 05:10 PM, Alexander Stein wrote: Hello, On Wednesday 09 February 2011, 16:52:35 Alexandre Gambier wrote: I'm using u-boot to boot a Linux-based device. Which version og u-boot are you running? I created some MTD partitions for my NOR and NAND flashes. Here is the configuration: device nor0NOR, # parts = 4 #: namesizeoffset mask_flags 0: U-Boot 0x0008 0x 0 1: Environment 0x0002 0x0008 0 2: Kernel 0x0040 0x000a 0 3: FreeNOR 0x0036 0x004a 0 device nand0NAND, # parts = 2 #: namesizeoffset mask_flags 0: FS 0x0200 0x 0 1: FreeNAND0x0600 0x0200 0 active partition: nor0,0 - (U-Boot) 0x0008 @ 0x defaults: mtdids : nor0=NOR,nand0=NAND mtdparts: mtdparts=NOR:512k(U-Boot),128k(Environment),4M(Kernel),-(FreeNOR);NAND:32M( FS),-(FreeNAND) When I want to erase the U-Boot partition I can't use the command `erase U-Boot`, the following error occurs : incorrect device type in U-Boot. I must use the command `erase 1:0-7`. Is-it normal ? Some old version also had to set CONFIG_JFFS2 to get erase friends to accept mtdparts. HTH Alexander ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot