mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
76 lines
2.2 KiB
Diff
76 lines
2.2 KiB
Diff
From 37395f3e04361de2e142d242a4b00dd5cd35d54c Mon Sep 17 00:00:00 2001
|
|
From: Jonas Karlman <jonas@kwiboo.se>
|
|
Date: Wed, 29 Jan 2025 22:36:29 +0000
|
|
Subject: [PATCH 43/51] rockchip: mkimage: Print boot0 and boot1 parameters
|
|
|
|
The v2 image format embeds boot0 and boot1 parameters, the vendor tool
|
|
boot_merger may write these parameters based on the rkboot miniall.ini
|
|
files.
|
|
|
|
E.g. a RK3576 boot image may contain a boot1 parameter that signals
|
|
BootROM or vendor blobs to use 1 GHz instead of the regular 24 MHz rate
|
|
for the high precision timer.
|
|
|
|
Add support for printing boot0 and boot1 parameters, e.g.:
|
|
|
|
> tools/mkimage -l rk3576_idblock_v1.09.107.img
|
|
Rockchip Boot Image (v2)
|
|
Boot1 2: 0x100
|
|
Image 1: 4096 @ 0x1000
|
|
- Load address: 0x3ffc0000
|
|
Image 2: 77824 @ 0x2000
|
|
- Load address: 0x3ff81000
|
|
Image 3: 262144 @ 0x15000
|
|
|
|
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
|
---
|
|
tools/rkcommon.c | 18 +++++++++++++++++-
|
|
1 file changed, 17 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/tools/rkcommon.c b/tools/rkcommon.c
|
|
index b2820062d04..ff00e57a5f5 100644
|
|
--- a/tools/rkcommon.c
|
|
+++ b/tools/rkcommon.c
|
|
@@ -62,6 +62,8 @@ struct image_entry {
|
|
* @boot_flag: [3:0] hash type (0:none, 1:sha256, 2:sha512)
|
|
* @images: images
|
|
* @hash: hash or signature for header info
|
|
+ *
|
|
+ * Other fields are not used by U-Boot
|
|
*/
|
|
struct header0_info_v2 {
|
|
uint32_t magic;
|
|
@@ -69,7 +71,9 @@ struct header0_info_v2 {
|
|
uint16_t size;
|
|
uint16_t num_images;
|
|
uint32_t boot_flag;
|
|
- uint8_t reserved1[104];
|
|
+ uint8_t reserved1[32];
|
|
+ uint32_t boot0_param[10];
|
|
+ uint32_t boot1_param[8];
|
|
struct image_entry images[4];
|
|
uint8_t reserved2[1064];
|
|
uint8_t hash[512];
|
|
@@ -493,6 +497,18 @@ static void rkcommon_print_header_v2(const struct header0_info_v2 *hdr)
|
|
|
|
printf("Rockchip Boot Image (v2)\n");
|
|
|
|
+ for (i = 0; i < ARRAY_SIZE(hdr->boot0_param); i++) {
|
|
+ val = le32_to_cpu(hdr->boot0_param[i]);
|
|
+ if (val)
|
|
+ printf("Boot0 %d: 0x%x\n", i, val);
|
|
+ }
|
|
+
|
|
+ for (i = 0; i < ARRAY_SIZE(hdr->boot1_param); i++) {
|
|
+ val = le32_to_cpu(hdr->boot1_param[i]);
|
|
+ if (val)
|
|
+ printf("Boot1 %d: 0x%x\n", i, val);
|
|
+ }
|
|
+
|
|
for (i = 0; i < le16_to_cpu(hdr->num_images); i++) {
|
|
printf("Image %u: %u @ 0x%x\n",
|
|
le32_to_cpu(hdr->images[i].counter),
|
|
--
|
|
2.34.1
|
|
|