From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Tue, 16 Jul 2013 10:01:02 +0200 Subject: [U-Boot] [PATCH v2] dfu, nand, ubi: add partubi alt settings for updating ubi partition In-Reply-To: <20130716094158.4e09e48b@amdc308.digital.local> References: <1373881752-22676-1-git-send-email-hs@denx.de> <1373950449-21686-1-git-send-email-hs@denx.de> <20130716094158.4e09e48b@amdc308.digital.local> Message-ID: <51E4FDBE.3020900@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Lukasz, Am 16.07.2013 09:41, schrieb Lukasz Majewski: > Hi Heiko, > >> updating an ubi partition needs a completely erased mtd partition, >> see: >> http://lists.infradead.org/pipermail/linux-mtd/2011-May/035416.html >> >> So, add partubi alt setting for the dfu_alt_info environment >> variable to mark this partition as an ubi partition. In case we >> update an ubi partition, we erase after flashing the image into the >> partition, the remaining sektors. >> >> Signed-off-by: Heiko Schocher >> Cc: Pantelis Antoniou >> Cc: Tom Rini >> Cc: Lukasz Majewski >> Cc: Kyungmin Park >> Cc: Marek Vasut >> Cc: Wolfgang Denk >> >> --- >> >> - This patch is also a good starting point to fix up updating ubi, as >> we currently use "nand erase" for erasing the sektors. This is >> not the prefered way for writing an ubi image, see: >> http://www.linux-mtd.infradead.org/faq/ubi.html#L_flash_img >> >> This must be fixed ... we have no "ubiformat" in u-boot, or? >> >> - changes for v2: >> - do not use spread = 1 for nand_erase_opts, to prevent >> errormessage if there are bad blocks in the erase range. >> --- >> drivers/dfu/dfu.c | 30 +++++++++++++++++++++++++++++- >> drivers/dfu/dfu_nand.c | 26 ++++++++++++++++++++++++++ >> include/dfu.h | 2 ++ >> 3 Dateien ge?ndert, 57 Zeilen hinzugef?gt(+), 1 Zeile entfernt(-) >> >> diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c >> index 0521752..7ba7026 100644 >> --- a/drivers/dfu/dfu.c >> +++ b/drivers/dfu/dfu.c >> @@ -23,6 +23,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> #include >> @@ -176,6 +177,34 @@ int dfu_write(struct dfu_entity *dfu, void *buf, >> int size, int blk_seq_num) ret = dfu->flush_medium(dfu); >> printf("\nDFU complete CRC32: 0x%08x\n", dfu->crc); >> >> + /* in case of ubi partition, erase rest of the >> partition */ >> + if (dfu->ubi == 1) { >> + int ret; >> + nand_info_t *nand; >> + /* erase complete partition */ >> + nand_erase_options_t opts; >> + >> + if (nand_curr_device< 0 || >> + nand_curr_device>= >> CONFIG_SYS_MAX_NAND_DEVICE || > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - this config won't be defined at > devices, which don't have NAND memory (like Trats). > Due to that Trats board is not building. > > Please remove memory type dependent code from the common dfu code. Oh... Hmm... maybe I move this code to drivers/dfu/dfu_nand.c and make there a dfu_nand_flush() ? bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany