From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Fri, 14 Jun 2019 10:37:47 +0200 Subject: [U-Boot] [PATCH 3/3] doc: imx: Add documentation for nandbcb command In-Reply-To: <20190614073535.12502-3-shyam.saini@amarulasolutions.com> References: <20190614073535.12502-1-shyam.saini@amarulasolutions.com> <20190614073535.12502-3-shyam.saini@amarulasolutions.com> Message-ID: <20190614103747.488328fa@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Shyam, > Signed-off-by: Shyam Saini > --- > doc/imx/common/imx6.txt | 74 > +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 > insertions(+) > > diff --git a/doc/imx/common/imx6.txt b/doc/imx/common/imx6.txt > index eab88353f6..0b5061128c 100644 > --- a/doc/imx/common/imx6.txt > +++ b/doc/imx/common/imx6.txt > @@ -88,3 +88,77 @@ Reading bank 4: > > Word 0x00000002: 9f027772 00000004 > > +NAND Boot on i.MX6 with SPL support > +-------------------------------------- > + > +Writing/updating boot image in nand device is not straight forward in > +i.MX6 platform and it requires boot control block(BCB) to be > configured. + > +BCB contains two data structures, Firmware Configuration Block(FCB) > and +Discovered Bad Block Table(DBBT). FCB has nand timings, DBBT > search area, +and firmware. See IMX6DQRM Section 8.5.2.2 > +for more information. > + > +We can't use 'nand write' command to write SPL/firmware image > directly +like other platforms does. So we need special setup to > write BCB block +as per IMX6QDL reference manual 'nandbcb update' > command do that job. + > +for nand boot, up on reset bootrom look for FCB structure in > +first block's if FCB found the nand timings are loaded for > +further reads. once FCB read done, DTTB will be loaded and > +finally firmware will be loaded which is boot image. > + > +cmd_nandbcb will create FCB these structures > +by taking mtd partition as an example. I think that the above sentence has a wrong order. Could you rewrite it? > +- initial code will erase entire partition > +- followed by FCB setup, like first 2 blocks for FCB/DBBT write, > + and next block for FW1/SPL > +- write firmware at FW1 block and > +- finally write fcb/dttb in first 2 block. > + > +Typical NAND BCB layout: > +======================= > + > + no.of blocks = partition size / erasesize > + no.of fcb/dbbt blocks = 2 > + FW1 offset = no.of fcb/dbbt > + > +block 0 1 2 > + ------------------------------- > + |FCB/DBBT 0|FCB/DBBT 1| FW 1 | > + -------------------------------- > + > +On summary, nandbcb update will > +- erase the entire partition > +- create BCB by creating 2 FCB/BDDT block followed by > + 1 FW blocks based on partition size and erasesize. > +- fill FCB/DBBT structures > +- write FW/SPL in FW1 > +- write FCB/DBBT in first 2 blocks > + > +step-1: write SPL > + > +icorem6qdl> ext4load mmc 0:1 $loadaddr SPL > +39936 bytes read in 10 ms (3.8 MiB/s) > + > +icorem6qdl> nandbcb update $loadaddr spl $filesize > +device 0 offset 0x0, size 0x9c00 > +Erasing at 0x1c0000 -- 100% complete. > +NAND fw write: 0x80000 offset, 0xb000 bytes written: OK > + > +step-2: write u-boot-dtb.img > + > +icorem6qdl> nand erase.part uboot > + > +NAND erase.part: device 0 offset 0x200000, size 0x200000 > +Erasing at 0x3c0000 -- 100% complete. > +OK > + > +icorem6qdl> ext4load mmc 0:1 $loadaddr u-boot-dtb.img > +589094 bytes read in 37 ms (15.2 MiB/s) > + > +icorem6qdl> nand write ${loadaddr} uboot ${filesize} > + > +NAND write: device 0 offset 0x200000, size 0x8fd26 > + 589094 bytes written: OK > +icorem6qdl> Would it be possible to provide nandbcb show command (I guess that I can dump it with plain nand read)? It would present the FCB/DBBT structure. Do you think it is needed/feasible ? Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: