diff options
Diffstat (limited to 'meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch')
-rw-r--r-- | meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch b/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch deleted file mode 100644 index 985e2bf1d9..0000000000 --- a/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch +++ /dev/null @@ -1,128 +0,0 @@ -From d432049f288c9acdc4a7caa729c68ceba3c5dca1 Mon Sep 17 00:00:00 2001 -From: Aaro Koskinen <aaro.koskinen@nokia.com> -Date: Thu, 25 Aug 2022 18:47:02 +0300 -Subject: [PATCH] devmem: add 128-bit width - -Add 128-bit width if the compiler provides the needed type. - -function old new delta -devmem_main 405 464 +59 -.rodata 109025 109043 +18 ------------------------------------------------------------------------------- -(add/remove: 0/0 grow/shrink: 2/0 up/down: 77/0) Total: 77 bytes - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d432049f288c9acdc4a7caa729c68ceba3c5dca1] - -Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> -Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> -Signed-off-by: Mingli Yu <mingli.yu@windriver.com> ---- - miscutils/devmem.c | 68 ++++++++++++++++++++++++++++++---------------- - 1 file changed, 44 insertions(+), 24 deletions(-) - -diff --git a/miscutils/devmem.c b/miscutils/devmem.c -index f9f0276bc..f21621bd6 100644 ---- a/miscutils/devmem.c -+++ b/miscutils/devmem.c -@@ -29,7 +29,6 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - { - void *map_base, *virt_addr; - uint64_t read_result; -- uint64_t writeval = writeval; /* for compiler */ - off_t target; - unsigned page_size, mapped_size, offset_in_page; - int fd; -@@ -64,9 +63,6 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - width = strchrnul(bhwl, (argv[2][0] | 0x20)) - bhwl; - width = sizes[width]; - } -- /* VALUE */ -- if (argv[3]) -- writeval = bb_strtoull(argv[3], NULL, 0); - } else { /* argv[2] == NULL */ - /* make argv[3] to be a valid thing to fetch */ - argv--; -@@ -96,28 +92,46 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - virt_addr = (char*)map_base + offset_in_page; - - if (!argv[3]) { -- switch (width) { -- case 8: -- read_result = *(volatile uint8_t*)virt_addr; -- break; -- case 16: -- read_result = *(volatile uint16_t*)virt_addr; -- break; -- case 32: -- read_result = *(volatile uint32_t*)virt_addr; -- break; -- case 64: -- read_result = *(volatile uint64_t*)virt_addr; -- break; -- default: -- bb_simple_error_msg_and_die("bad width"); -+#ifdef __SIZEOF_INT128__ -+ if (width == 128) { -+ unsigned __int128 rd = -+ *(volatile unsigned __int128 *)virt_addr; -+ printf("0x%016llX%016llX\n", -+ (unsigned long long)(uint64_t)(rd >> 64), -+ (unsigned long long)(uint64_t)rd -+ ); -+ } else -+#endif -+ { -+ switch (width) { -+ case 8: -+ read_result = *(volatile uint8_t*)virt_addr; -+ break; -+ case 16: -+ read_result = *(volatile uint16_t*)virt_addr; -+ break; -+ case 32: -+ read_result = *(volatile uint32_t*)virt_addr; -+ break; -+ case 64: -+ read_result = *(volatile uint64_t*)virt_addr; -+ break; -+ default: -+ bb_simple_error_msg_and_die("bad width"); -+ } -+// printf("Value at address 0x%"OFF_FMT"X (%p): 0x%llX\n", -+// target, virt_addr, -+// (unsigned long long)read_result); -+ /* Zero-padded output shows the width of access just done */ -+ printf("0x%0*llX\n", (width >> 2), (unsigned long long)read_result); - } --// printf("Value at address 0x%"OFF_FMT"X (%p): 0x%llX\n", --// target, virt_addr, --// (unsigned long long)read_result); -- /* Zero-padded output shows the width of access just done */ -- printf("0x%0*llX\n", (width >> 2), (unsigned long long)read_result); - } else { -+ /* parse VALUE */ -+#ifdef __SIZEOF_INT128__ -+ unsigned __int128 writeval = strtoumax(argv[3], NULL, 0); -+#else -+ uint64_t writeval = bb_strtoull(argv[3], NULL, 0); -+#endif - switch (width) { - case 8: - *(volatile uint8_t*)virt_addr = writeval; -@@ -135,6 +149,12 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - *(volatile uint64_t*)virt_addr = writeval; - // read_result = *(volatile uint64_t*)virt_addr; - break; -+#ifdef __SIZEOF_INT128__ -+ case 128: -+ *(volatile unsigned __int128 *)virt_addr = writeval; -+// read_result = *(volatile uint64_t*)virt_addr; -+ break; -+#endif - default: - bb_simple_error_msg_and_die("bad width"); - } --- -2.25.1 - |