i.MX9 support is straight forward: Just upload the whole image in one go. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- scripts/imx/imx-usb-loader.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/scripts/imx/imx-usb-loader.c b/scripts/imx/imx-usb-loader.c index ece4603b2b..91a15345a2 100644 --- a/scripts/imx/imx-usb-loader.c +++ b/scripts/imx/imx-usb-loader.c @@ -76,6 +76,7 @@ struct mach_id { unsigned short max_transfer; #define DEV_IMX 0 #define DEV_MXS 1 +#define DEV_IMX9 2 unsigned char dev_type; unsigned char hid_endpoint; }; @@ -214,6 +215,14 @@ static const struct mach_id imx_ids[] = { .header_type = HDR_MX53, .mode = MODE_HID, .max_transfer = 1024, + }, { + .vid = 0x1fc9, + .pid = 0x014e, + .name = "i.MX9", + .mode = MODE_HID, + .max_transfer = 1020, + .hid_endpoint = 1, + .dev_type = DEV_IMX9, }, }; @@ -1350,6 +1359,23 @@ static int process_header(struct usb_work *curr, unsigned char *buf, int cnt, return -ENODEV; } +static int imx9_load_file(struct usb_work *curr) +{ + void *buf; + size_t fsize = 0; + int ret; + + buf = read_file(curr->filename, &fsize); + if (!buf) + return -errno; + + ret = send_buf(buf, fsize); + if (ret) + return ret; + + return ret; +} + static int do_irom_download(struct usb_work *curr, int verify) { int ret; @@ -1649,6 +1675,9 @@ int main(int argc, char *argv[]) if (mach_id->dev_type == DEV_MXS) { ret = mxs_load_file(&w); goto out; + } else if (mach_id->dev_type == DEV_IMX9) { + ret = imx9_load_file(&w); + goto out; } if (!mach_id->hid_endpoint) { -- 2.39.2