Hi Ohad, Today's linux-next merge of the remoteproc tree got conflicts in drivers/remoteproc/remoteproc_core.c between commits e981f6d41acd ("remoteproc: fix print format warnings") and 30338cf09f82 ("remoteproc: fix missing fault indication in error-path") from Linus' tree and commits 7826bf782364 ("remoteproc: Pass struct fw to load_segments and find_rsc_table"), a933c9f8ef8a ("remoteproc: Add function rproc_get_boot_addr") and 32d46fe7f468 ("remoteproc: Move Elf related functions to separate file") from the remoteproc tree. I fixed them up (see below) and can carry the fixes as necessary. -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc drivers/remoteproc/remoteproc_core.c index 66324ee,6779c2a..0000000 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@@ -1018,9 -789,7 +789,7 @@@ static int rproc_fw_boot(struct rproc * if (ret) return ret; - ehdr = (struct elf32_hdr *)fw->data; - - dev_info(dev, "Booting fw image %s, size %d\n", name, fw->size); + dev_info(dev, "Booting fw image %s, size %zd\n", name, fw->size); /* * if enabling an IOMMU isn't relevant for this rproc, this is @@@ -1032,19 -801,12 +801,14 @@@ return ret; } - /* - * The ELF entry point is the rproc's boot addr (though this is not - * a configurable property of all remote processors: some will always - * boot at a specific hardcoded address). - */ - rproc->bootaddr = ehdr->e_entry; + rproc->bootaddr = rproc_get_boot_addr(rproc, fw); /* look for the resource table */ - table = rproc_find_rsc_table(rproc, fw->data, fw->size, &tablesz); + table = rproc_find_rsc_table(rproc, fw, &tablesz); - if (!table) + if (!table) { + ret = -EINVAL; goto clean_up; + } /* handle fw resources which are required to boot rproc */ ret = rproc_handle_boot_rsc(rproc, table, tablesz);
Attachment:
pgpFF3tub_UJo.pgp
Description: PGP signature