Skip to content

Commit c03f94c

Browse files
committed
kboot: Handle ISP/SIO reserved firmware differences
The iova field is different, handle it with a flag. Signed-off-by: Hector Martin <[email protected]>
1 parent dd2d4e5 commit c03f94c

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/kboot.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@ static int dt_vram_reserved_region(const char *dcp_alias, const char *disp_alias
15731573
disp_reserved_regions_vram, &region, 1);
15741574
}
15751575

1576-
static int dt_reserve_asc_firmware(const char *adt_path, const char *fdt_path)
1576+
static int dt_reserve_asc_firmware(const char *adt_path, const char *fdt_path, bool remap)
15771577
{
15781578
int ret = 0;
15791579

@@ -1603,7 +1603,7 @@ static int dt_reserve_asc_firmware(const char *adt_path, const char *fdt_path)
16031603
unsigned int num_maps = segments_len / sizeof(*seg);
16041604

16051605
for (unsigned i = 0; i < num_maps; i++) {
1606-
u64 iova = seg->iova;
1606+
u64 iova = remap ? seg->remap : seg->iova;
16071607

16081608
char node_name[64];
16091609
snprintf(node_name, sizeof(node_name), "asc-firmware@%lx", seg->phys);
@@ -2216,13 +2216,13 @@ int kboot_prepare_dt(void *fdt)
22162216
return -1;
22172217
if (dt_disable_missing_devs("i2c", "i2c@", 8))
22182218
return -1;
2219-
if (dt_reserve_asc_firmware("/arm-io/sio", "sio"))
2219+
if (dt_reserve_asc_firmware("/arm-io/sio", "sio", true))
22202220
return -1;
22212221
if (dt_set_sio_fwdata())
22222222
return -1;
2223-
if (dt_set_isp_fwdata())
2223+
if (dt_reserve_asc_firmware("/arm-io/isp", "isp", false))
22242224
return -1;
2225-
if (dt_reserve_asc_firmware("/arm-io/isp", "isp"))
2225+
if (dt_set_isp_fwdata())
22262226
return -1;
22272227
#ifndef RELEASE
22282228
if (dt_transfer_virtios())

0 commit comments

Comments
 (0)