From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Tue, 16 Jul 2013 10:19:07 +0200 Subject: [U-Boot] [PATCH v2] dfu, nand, ubi: add partubi alt settings for updating ubi partition In-Reply-To: <51E4FDBE.3020900@denx.de> References: <1373881752-22676-1-git-send-email-hs@denx.de> <1373950449-21686-1-git-send-email-hs@denx.de> <20130716094158.4e09e48b@amdc308.digital.local> <51E4FDBE.3020900@denx.de> Message-ID: <20130716101907.07cb18fb@amdc308.digital.local> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Heiko, > 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() ? Sounds like a good idea :-). I would prefer to encapsulate NAND (MMC) code at dfu_nand.c (dfu_mmc.c) file. > > bye, > Heiko -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group