From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Fri, 14 Dec 2012 12:10:43 -0600 Subject: [U-Boot] [PATCH v3] imls: Add support to list images in NAND device In-Reply-To: <50CAF214.8050608@st.com> (from vipin.kumar@st.com on Fri Dec 14 03:32:04 2012) References: <1355435941.14046.9@snotra> <50CAF214.8050608@st.com> Message-ID: <1355508643.4740.0@snotra> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 12/14/2012 03:32:04 AM, Vipin Kumar wrote: >>> + >>> + switch (genimg_get_format(buffer)) { >>> + case IMAGE_FORMAT_LEGACY: >>> + header = (const image_header_t *)buffer; >>> + len = image_get_image_size(header); >>> + >>> + ret = nand_imls_legacyimage(nand, >>> nand_dev, >>> + off, len); >>> + if (ret< 0&& ret != -ENOMEM) >>> + return ret; >>> + break; >>> +#if defined(CONFIG_FIT) >>> + case IMAGE_FORMAT_FIT: >>> + len = fit_get_size(buffer); >>> + ret = nand_imls_fitimage(nand, nand_dev, >>> + off, len); >>> + if (ret< 0&& ret != -ENOMEM) >>> + return ret; >>> + break; >>> +#endif >>> + } >> >> Do you really mean to return from the main imls function just because >> one image has an error? By "use return" I meant return from the >> subfunction. >> > > This return only corresponds to the situation when there is an error > returned from nand read routine. In that case, I don't think there is > any use reading the NAND any further. Just because one page has an uncorrectable error doesn't mean the entire NAND is bad. Note that this is different from what you currently do if you get an error on the initial read where you look for a header. Might want to bail out if you get an excessive amount of errors (particularly consecutive), though, suggesting that the NAND might not be working at all. The user probably doesn't want to wait for thousands of error messages to scroll by in that case. -Scott