From: Rouven Czerwinski <r.czerwinski@pengutronix.de>
To: Lucas Stach <l.stach@pengutronix.de>, barebox@lists.infradead.org
Subject: Re: [PATCH] Doc: i.MX: Document image structure for i.MX
Date: Tue, 17 Sep 2019 12:02:15 +0200 [thread overview]
Message-ID: <fff93ef5605ca77343a9c60b0b4335aa34d93331.camel@pengutronix.de> (raw)
In-Reply-To: <cf32aaa74d87b697e70a0e09635c110fc42a1a8a.camel@pengutronix.de>
On Tue, 2019-09-17 at 11:13 +0200, Lucas Stach wrote:
> On Di, 2019-09-17 at 10:48 +0200, Rouven Czerwinski wrote:
> > Document the image and load structure for i.MX6 and i.MX8MQ.
> >
> > Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
> > ---
> > Documentation/boards/imx.rst | 69
> > ++++++++++++++++++++++++++++++++++++
> > 1 file changed, 69 insertions(+)
> >
> > diff --git a/Documentation/boards/imx.rst
> > b/Documentation/boards/imx.rst
> > index 71cc6bb09a..7110492eba 100644
> > --- a/Documentation/boards/imx.rst
> > +++ b/Documentation/boards/imx.rst
> > @@ -142,6 +142,75 @@ It must be included in the board's flash
> > header:
> >
> > Analogous to HABv4 options and a template exist for HABv3.
> >
> > +Secure Boot on i.MX6
> > +--------------------
> > +
> > +The secure boot process on i.MX6 consist of the following image
> > constellation::
> > +
> > + 0x0 +---------------------------------+
> > + | Barebox Header |
> > + 0x400 +---------------------------------+ -
> > + | i.MX IVT Header | |
> > + | Boot Data +--+ |
> > + | CSF Pointer +--|-+ | Signed Area
> > + +---------------------------------+ | | |
> > + | Device Configuration Data (DCD) | | | |
> > + 0x1000 +---------------------------------+ | | |
> > + | Barebox Prebootloader (PBL) |<-+ | |
> > + +---------------------------------+ | |
> > + | Piggydata (Main Barebox Binary) | | |
> > + +---------------------------------+ | -
> > + | Command Sequence File (CSF) |<---+
> > + +---------------------------------+
> > +
> > +Here the Command Sequence File signs the complete Header, PBL and
> > piggy data
> > +file. This ensures that the whole barebox binary is authenticated.
> > This is
> > +possible since the DDR RAM is configured using the DCD and the
> > whole DDR memory
> > +area can be used to load data onto the device for authentication.
>
> That's not a universally true statement for all i.MX6 boards. There
> are
> quite a few that also do the two step loading with PBL in SRAM and
> DRAM
> setup from the PBL. But I'm not sure if and how we want to reflect
> this
> in the documentation.
Do we even support HAB on these boards? They would require the same
setup as done on the i.MX8MQ currently, I have not looked into boards
in the tree yet.
> > +The boot ROM loads the CSF area and barebox into memory and uses
> > the CSF to
> > +verify the complete barebox binary.
> > +
> > +Secure Boot on i.MX8MQ
> > +----------------------
> > +
> > +For i.MX8MQ the image has the following design::
> > +
> > + 0x0 +---------------------------------+
> > + | Barebox Header |
> > + +---------------------------------+
> > + | i.MX IVT Header |
> > + | HDMI Firmware (Signed by NXP) |
> > + +---------------------------------+ -
> > + | i.MX IVT Header | |
> > + | Boot Data +--+ |
> > + | CSF Pointer +--|-+ |
> > + +---------------------------------+ | | | Signed Area
> > + | Device Configuration Data (DCD) | | | |
> > + +---------------------------------+ | | |
> > + | Barebox Prebootloader (PBL) |<-+ | |
> > + | Piggydata Hash (SHA256) +----|-+ |
> > + +---------------------------------+ | | -
> > + | Command Sequence File (CSF) |<---+ |
> > + +---------------------------------+ | -
> > + | Piggydata (Main Barebox Binary) |<-----+ | Hashed Area
> > + +---------------------------------+ -
> > +
> > +In contrast to i.MX6, for the i.MX8MQ the piggydata can not be
> > signed together
> > +with the PBL binary. The DDR memory is initialized during the
> > start of the PBL,
> > +previous to this no access to the DDR memory is possible. Since
> > the Tightly
> > +Coupled Memory used for early startup on i.MX8MQ has only 256Kib,
> > the whole
> > +barebox can't be loaded and verified at once, since the complete
> > barebox with
> > +firmware has a size of ~500Kib.
>
> If experience tells us anything, then this value will probably grow
> quite a bit in the future. ;)
I'll switch this to >256Kib :-)
>
> > +
> > +The bootrom loads the HDMI firmware unconditionally, since it is
> > signed by NXP.
> > +Afterwards the Prebootloader (PBL) is loaded into SRAM and the
> > bootrom proceeds
> > +to verify the PBL according to the Command Sequence File (CSF).
> > The verified
> > +PBL initializes the ARM Trusted Firmware (TF-A) and DDR RAM. It
> > subsequently
> > +loads the piggydata from the SD card and calculates the sha256sum
> > of the
> "boot media" or similar, as Barebox can also be loaded from eMMC.
Totally correct, I'll fix this for v2.
> > +piggydata. This is compared to the sha256sum built into the PBL
> > during compile
> > +time, the PBL will only continue to boot if the sha256sum matches
> > the builtin
> > +sha256sum.
> > +
> > Using GPT on i.MX
> > ^^^^^^^^^^^^^^^^^
> >
>
>
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2019-09-17 10:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-17 8:48 Rouven Czerwinski
2019-09-17 9:13 ` Lucas Stach
2019-09-17 10:02 ` Rouven Czerwinski [this message]
2019-09-17 10:12 ` Sascha Hauer
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=fff93ef5605ca77343a9c60b0b4335aa34d93331.camel@pengutronix.de \
--to=r.czerwinski@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=l.stach@pengutronix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox