2016-05-23 |
socfpga: correct start vector when not using extra barebox header
...
The barebox ARM image has a 0x50 byte header that consists of:
Bytes 0x00 - 0x0a: Instruction(s) to jump to start of code
Bytes 0x20 - 0x2f: Signature and some other data
The rest of header is basically padding.
On SocFPGA, the ROM bootloader expects the 2nd stage bootloader
(barebox) to have a 0x40 byte header with the following fields:
Bytes 0x40 - 0x4b: Signature and some other data
Bytes 0x4c - 0x4f: Instruction to jump to start of code
These two headers are compatible, as everything defined in the SocFPGA
header is at a location that is padding the barebox header.
socfpga_mkimage has two methods for creating a SocFPGA image. One method
prepends an extra 512 byte header to the barebox image, which contains the
SoCFPGA header described above. The start vector at 0x4c is hard coded to
jump to offset 512, where the barebox header's start vector will be.
socfpga_mkimage can also not prepend this additional header and instead
modify the barebox header to be SoCFPGA compatible. But it only writes
bytes 0x40-0x4b and not the start vector at 0x4c, leaving that word as
padding. And so this image will not boot when the ROM bootloader runs it.
This changes the SoCFPGA header creator to write a correct start vector for
both methods. It will create a branch instruction at 0x4c that jumps to the
start of the barebox image, whether it be at offset 0 or offset 512 (or any
other location).
This makes SoCFPGA images without the extra header bootable.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Trent Piepho
authored
on 20 May 2016
Sascha Hauer
committed
on 23 May 2016
|
2016-05-09 |
Merge branch 'for-next/misc'
Sascha Hauer
committed
on 9 May 2016
|
Merge branch 'for-next/include-cleanup'
Sascha Hauer
committed
on 9 May 2016
|
Merge branch 'for-next/imx'
Sascha Hauer
committed
on 9 May 2016
|
2016-04-28 |
scripts: Add big endian conversion macros to endian.h
...
Some programs need the big endian macros, add them to andian.h
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 28 Apr 2016
|
scripts: imx-usb-loader: support set_bits/clear_bits
...
Now that we can use set_bits/clear_bits in the DCD tables, add support
for this in the imx-usb-loader aswell.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 28 Apr 2016
|
scripts: imx-usb-loader: make debug output more useful
...
- print write_memory message only in verbose mode, but in all
cases when memory is written
- print more information about the DCD section just executed
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 28 Apr 2016
|
scripts: imx: support set_bits/clear_bits
...
The i.MX SoCs support setting bits and clearing bits in their DCD table.
This adds commands for these in the imx-image tool.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 28 Apr 2016
|
2016-04-15 |
stdio: replace fprintf(stderr,...) with eprintf
...
We have a shortcut for fprintf(stderr, so use it. This is done to
be able to remove fprintf in the next step.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 15 Apr 2016
|
2016-04-14 |
scripts: imx-image: Fix image size in flash header for i.MX35
...
The i.MX35 needs additional 0x1000 byte. This quirk moved to the wrong
location during refactoring of imx-image for v2016.03.0.
Fixes: adade597593442 ""scripts: imx: Allow to create signed images")
Signed-off-by: Daniel Krueger <daniel.krueger@systec-electronic.com>
Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Alexander Stein
authored
on 13 Apr 2016
Sascha Hauer
committed
on 14 Apr 2016
|
2016-04-08 |
Merge branch 'for-next/imd'
Sascha Hauer
committed
on 8 Apr 2016
|
2016-04-06 |
scripts: imx: imx-image: Fix image size for HABv3 images
...
When the image contains CSF data we must add CSF_LEN to the image
size pointer.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 6 Apr 2016
|
2016-04-01 |
imd: rename imd_search_validate to imd_get
...
The name is more suitable for what the function does. Also let the
function return a pointer to the imd data found in the buffer.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 1 Apr 2016
|
scripts: Add scripts/include/ to include path for target programs
...
Programs compiled for the target need -I $(srctree)/scripts/include/ to
be able to include for example linux/err.h.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 1 Apr 2016
|
2016-02-12 |
scripts: make __init__.py nonempty
...
Otherwise they get removed by make distclean.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 12 Feb 2016
|
2016-02-08 |
Merge branch 'for-next/ratp'
Sascha Hauer
committed
on 8 Feb 2016
|
Merge branch 'for-next/hab'
Sascha Hauer
committed
on 8 Feb 2016
|
2016-02-04 |
scripts: imx-usb-loader: Do not zero out boot_data_ptr
...
This shouldn't be necessary. So far it didn't hurt either, but now
this invalidates the signature of the image, so keep the image
unmodified.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
Make: i.MX: Allow to pass config file to cmd_imx_image
...
Pass the config file to cmd_imx_image as arguments to make it more
flexible. Also add the possibility for another arg containing additional
options.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx-image: Allow to create HAB signed images suitable for USB upload
...
For USB upload we must execute the DCD table manually and
invalidate the DCD table in the uploaded image afterwards
to prevent the ROM from executing the DCD data again. Doing this
changes the image and thus also invalidates the signature. To
make HAB signed images suitable for USB upload possible we add an
option to create HAB signed images suitable for USB upload. With
this option the image is created like this:
- The image is created like usual, but with already invalidated DCD
data (DCD length is set to zero)
- This image is then signed using the CST
- After this the DCD data is made valid (Set DCD length to the real
length)
imx-usb-loader now finds valid DCD data, executes it and by invalidating
the DCD data it restores the state the image had during signing.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx-image: Factor out a read_file function
...
The same code will be used a second time in a followup patch, so
factor out a common function.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx-usb-loader: Use dcd len to invalidate dcd data
...
We invalidate the dcd data in the uploaded image since we already
processed it manually. To do so we have set the dcd pointer to 0.
Doing it this way prevents the ROM from executing the HAB code in
debug mode. Use the dcd length instead to invalidate the dcd data.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx: Generate signed images with imx-image
...
The imx-image tool can now generate signed images itself, so we can
switch to this mechanism:
- Move the CSF templates to header files which can be included by the
flash config files
- remove images/Makefile.imxhabv4 which is no longer necessary.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx: Allow to create signed images
...
This patch allows to call CST directly from imx-image to create signed
images. CST is called whenever the config file contains the hab <str>
commands which means a CSF is generated.
Calling CST requires some quirks. First of all CST returns successfully
whenever a CSF exists, no matter is the CSF actually contains something
sensible or not. So to detect if CST has been called successfully we
have to check if it generated output, not if it returned successfully.
Then CST uses csfsig.bin as a temporary file which breaks when the tool
is called multiple times at once, something which often happens in
parallel builds. We therefore have to lock accesses to this file using
flock().
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx: Create CSF files from imx config file
...
This is the first step to support creating signed images directly
with the imx-image tool. i.MX images must be signed using the Freescale
CST tool. CST needs informations already present in the imx-image tool,
so it's convenient to call CST directly from imx-image.
CST takes CSF files (Command Sequence Files) as input. This patch
supports generating CSF files from the imx-image configuration file.
This adds three new commands to the config file:
hab <str>: All options to the hab command are directly passed through to
the CSF.
hab_blocks: This generates the "Blocks =" line in the CSF. This is the
place where the CSF needs information which is contained in
the imx-image tool: The image size, the image filename and
the load address.
super_root_key <file>: For HABv3 the super root key hash is needed in
the i.MX flash header. This command is used to
specify the path to the super root key. Needed
for HABv3 only.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx-image: Support adding a Super Root Key to the image
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx-image: pass config data to add_header_*
...
Now that we have a config data struct we can pass it to add_header_*
to reduce the argument count.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
scripts: imx-image: move more variables to context data
...
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 4 Feb 2016
|
2016-02-02 |
scripts: imx: Drop double check
...
We have the same "if (*line == '\0')" check twice. Remove one of them.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 2 Feb 2016
|
scripts: imx-usb-loader: Add -s and -i options
...
Normally imx-usb-loader interprets and executes the DCD table from
an uploaded image and invalidates the DCD before uploading the image
itself to prevent the i.MX ROM code from executing it again. With HAB
signed images this is not possible since invalidating the DCD table
modifies the image which also makes the signature invalid.
To support this usecase add two new options to imx-usb-loader:
The -i option allows to pass in an external config file which can be
used to setup SDRAM. The DCD table in the image can then be made empty
so that the ROM does not see a second SDRAM setup.
The -s option allows to skip interpreting the DCD table in the image.
This may when some setup stuff is still in the images DCD table but
shall be executed by the ROM and not by imx-usb-loader.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sascha Hauer
committed
on 2 Feb 2016
|