All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/3] doc: imx: Add documentation for nandbcb command
Date: Fri, 14 Jun 2019 10:37:47 +0200	[thread overview]
Message-ID: <20190614103747.488328fa@jawa> (raw)
In-Reply-To: <20190614073535.12502-3-shyam.saini@amarulasolutions.com>

Hi Shyam,

> Signed-off-by: Shyam Saini <shyam.saini@amarulasolutions.com>
> ---
>  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: <http://lists.denx.de/pipermail/u-boot/attachments/20190614/747c9ecd/attachment.sig>

  reply	other threads:[~2019-06-14  8:37 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-14  7:35 [U-Boot] [PATCH v6 1/3] i.MX6: nand: add nandbcb command for imx Shyam Saini
2019-06-14  7:35 ` [U-Boot] [PATCH 2/3] configs: icorem6: Enable nandbcb command Shyam Saini
2019-06-14  7:35 ` [U-Boot] [PATCH 3/3] doc: imx: Add documentation for " Shyam Saini
2019-06-14  8:37   ` Lukasz Majewski [this message]
2019-06-18  7:57     ` Shyam Saini
2019-06-18  8:04       ` Lukasz Majewski
2019-06-18  8:28         ` Shyam Saini
2019-06-18  8:36           ` Lukasz Majewski
2019-07-20  8:46   ` sbabic at denx.de
2019-06-14  9:17 ` [U-Boot] [PATCH v6 1/3] i.MX6: nand: add nandbcb command for imx Igor Opaniuk
2019-06-18  7:54   ` Shyam Saini
2019-06-28 17:46     ` Parthiban Nallathambi
2019-07-20  8:47 ` sbabic at denx.de

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190614103747.488328fa@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.