[U-Boot] [PATCH] Revert 'rockchip: mkimage: remove placeholder functions from rkimage'
Guillaume Gardet
guillaume.gardet at free.fr
Mon Jun 26 08:08:50 UTC 2017
Le 22/06/2017 à 18:19, Dr. Philipp Tomsich a écrit :
> Guillaume,
>
>> On 22 Jun 2017, at 10:11, Guillaume GARDET <guillaume.gardet at free.fr> wrote:
>>
>> Revert commit 253c60a557d6740f15169a1f15772d7e64928d9b as it breaks the
>> return value of 'mkimage -T rkimage' and print the following error:
>> './tools/mkimage: Can't print header for Rockchip Boot Image support: Success’
> If you revert the underlying change, then 'dumpimage -l spl.img’ will break for all
> Rockchip rksd/rkspi images (see the original commit message for details why it
> is necessary).
>
> E.g. with the change in question reverted:
> ptomsich at android:~/rk3399/u-boot$ tools/dumpimage -l spl-3368.img
> ptomsich at android:~/rk3399/u-boot$
> With the change in question in place:
> ptomsich at android:~/rk3399/u-boot$ tools/dumpimage -l spl-3368.img
> Image Type: Rockchip RK33 (SD/MMC) boot image
> Data Size: 28672 bytes
> ptomsich at android:~/rk3399/u-boot$
>
> Looks like correctly doing this is even more involved in the imagetool framework
> than meets the eye, as you error is coming from:
>> /* Print the image information by processing image header */
>> if (tparams->print_header)
>> tparams->print_header (ptr);
>> else {
>> fprintf (stderr, "%s: Can't print header for %s: %s\n",
>> params.cmdname, tparams->name, strerror(errno));
>> exit (EXIT_FAILURE);
>> }
>
> So you might want to check whether adding but just the print_header
> function works for you—the verify should be a sufficient guard for the
> dumpimage case.
>
> A yet better solution would be to implement verify_header/print_header
> in a useful way for the rkimage type as well …
I am not familiar with RK, so I cannot implement this.
We should find a solution quite quickly since the release is not so far. Later, we could implement missing functions if wanted.
Could you propose a fix to your commit which is working for you, please?
Guillaume
>
> Regards,
> Philipp.
>
>> Signed-off-by: Guillaume GARDET <guillaume.gardet at free.fr>
>>
>> Cc: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> Cc: Simon Glass <sjg at chromium.org>
>> Cc: Tom Rini <trini at konsulko.com>
>>
>> ---
>> tools/rkimage.c | 21 ++++++++++++++++++---
>> 1 file changed, 18 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/rkimage.c b/tools/rkimage.c
>> index 9880b1569f..44d098c775 100644
>> --- a/tools/rkimage.c
>> +++ b/tools/rkimage.c
>> @@ -13,6 +13,16 @@
>>
>> static uint32_t header;
>>
>> +static int rkimage_verify_header(unsigned char *buf, int size,
>> + struct image_tool_params *params)
>> +{
>> + return 0;
>> +}
>> +
>> +static void rkimage_print_header(const void *buf)
>> +{
>> +}
>> +
>> static void rkimage_set_header(void *buf, struct stat *sbuf, int ifd,
>> struct image_tool_params *params)
>> {
>> @@ -23,6 +33,11 @@ static void rkimage_set_header(void *buf, struct stat *sbuf, int ifd,
>> rkcommon_rc4_encode_spl(buf, 4, params->file_size);
>> }
>>
>> +static int rkimage_extract_subimage(void *buf, struct image_tool_params *params)
>> +{
>> + return 0;
>> +}
>> +
>> static int rkimage_check_image_type(uint8_t type)
>> {
>> if (type == IH_TYPE_RKIMAGE)
>> @@ -40,10 +55,10 @@ U_BOOT_IMAGE_TYPE(
>> 4,
>> &header,
>> rkcommon_check_params,
>> - NULL,
>> - NULL,
>> + rkimage_verify_header,
>> + rkimage_print_header,
>> rkimage_set_header,
>> - NULL,
>> + rkimage_extract_subimage,
>> rkimage_check_image_type,
>> NULL,
>> NULL
>> --
>> 2.12.3
>>
>
More information about the U-Boot
mailing list