diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/Kconfig | 8 | ||||
-rw-r--r-- | common/filetype.c | 22 | ||||
-rw-r--r-- | common/resource.c | 2 |
3 files changed, 26 insertions, 6 deletions
diff --git a/common/Kconfig b/common/Kconfig index b7000c4d73..75aea460a3 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1099,6 +1099,13 @@ config DEBUG_IMX7D_UART Say Y here if you want barebox low-level debugging support on i.MX7D. +config DEBUG_IMX8MQ_UART + bool "i.MX8MQ Debug UART" + depends on ARCH_IMX8MQ + help + Say Y here if you want barebox low-level debugging support + on i.MX8MQ. + config DEBUG_VF610_UART bool "VF610 Debug UART" depends on ARCH_VF610 @@ -1163,6 +1170,7 @@ config DEBUG_IMX_UART_PORT DEBUG_IMX6Q_UART || \ DEBUG_IMX6SL_UART || \ DEBUG_IMX7D_UART || \ + DEBUG_IMX8MQ_UART || \ DEBUG_VF610_UART default 1 depends on ARCH_IMX diff --git a/common/filetype.c b/common/filetype.c index 444ec14cc4..bb807df721 100644 --- a/common/filetype.c +++ b/common/filetype.c @@ -65,7 +65,8 @@ static const struct filetype_str filetype_str[] = { [filetype_exe] = { "MS-DOS executable", "exe" }, [filetype_mxs_bootstream] = { "Freescale MXS bootstream", "mxsbs" }, [filetype_socfpga_xload] = { "SoCFPGA prebootloader image", "socfpga-xload" }, - [filetype_kwbimage_v1] = { "MVEBU kwbimage (v1)", "kwb" }, + [filetype_kwbimage_v0] = { "MVEBU kwbimage (v0)", "kwb0" }, + [filetype_kwbimage_v1] = { "MVEBU kwbimage (v1)", "kwb1" }, [filetype_android_sparse] = { "Android sparse image", "sparse" }, [filetype_arm64_linux_image] = { "ARM aarch64 Linux image", "aarch64-linux" }, }; @@ -302,10 +303,21 @@ enum filetype file_detect_type(const void *_buf, size_t bufsize) if ((buf8[0] == 0x5a || buf8[0] == 0x69 || buf8[0] == 0x78 || buf8[0] == 0x8b || buf8[0] == 0x9c) && buf8[0x1] == 0 && buf8[0x2] == 0 && buf8[0x3] == 0 && - buf8[0x8] == 1 && buf8[0x18] == 0 && buf8[0x1b] == 0 && - buf8[0x1c] == 0 && buf8[0x1d] == 0 && - (buf8[0x1e] == 0 || buf8[0x1e] == 1)) - return filetype_kwbimage_v1; + buf8[0x18] == 0 && buf8[0x1b] == 0 && buf8[0x1c] == 0) { + unsigned char sum = 0; + int i; + + for (i = 0; i <= 0x1e; ++i) + sum += buf8[i]; + + if (sum == buf8[0x1f] && buf8[0x8] == 0) + return filetype_kwbimage_v0; + + if (sum == buf8[0x1f] && + buf8[0x8] == 1 && buf8[0x1d] == 0 && + (buf8[0x1e] == 0 || buf8[0x1e] == 1)) + return filetype_kwbimage_v1; + } if (is_sparse_image(_buf)) return filetype_android_sparse; diff --git a/common/resource.c b/common/resource.c index e4bbe15fd7..abc0814d23 100644 --- a/common/resource.c +++ b/common/resource.c @@ -114,7 +114,7 @@ int release_region(struct resource *res) /* The root resource for the whole memory-mapped io space */ struct resource iomem_resource = { .start = 0, - .end = 0xffffffff, + .end = ~(resource_size_t)0, .name = "iomem", .children = LIST_HEAD_INIT(iomem_resource.children), }; |