summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2022-05-30 16:26:01 +0000
committerKhem Raj <raj.khem@gmail.com>2022-05-31 08:26:23 -0700
commit356b488fb06bcacb0aa553518442b2d9574f16af (patch)
treef97e566991d173da91400a983102bb289bd3a0fe
parentc8541a348232e99eb54bf49661966192fbf8a0c0 (diff)
downloadmeta-openembedded-356b488fb06bcacb0aa553518442b2d9574f16af.tar.gz
devmem2: the source and patches moved to github repo
To cleanup metadata and improve source code management, github repo was created here with all patches integrated: https://github.com/denix0/devmem2 Update recipe accordingly, bump the version while at it to distinguish from the original. Signed-off-by: Denys Dmytriyenko <denis@denix.org> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2.bb30
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch70
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2/0001-devmem2-support-different-page-sizes-at-run-time.patch35
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch91
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2_2.0.bb19
5 files changed, 19 insertions, 226 deletions
diff --git a/meta-oe/recipes-support/devmem2/devmem2.bb b/meta-oe/recipes-support/devmem2/devmem2.bb
deleted file mode 100644
index 70d4135216..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMARY = "Simple program to read/write from/to any location in memory"
2LICENSE = "GPL-2.0-or-later"
3LIC_FILES_CHKSUM = "file://devmem2.c;endline=38;md5=a9eb9f3890384519f435aedf986297cf"
4PR = "r7"
5
6SRC_URI = "https://bootlin.com/pub/mirror/devmem2.c;downloadfilename=devmem2-new.c \
7 file://devmem2-fixups-2.patch;apply=yes;striplevel=0 \
8 file://0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch \
9 file://0001-devmem2-support-different-page-sizes-at-run-time.patch \
10"
11
12S = "${WORKDIR}"
13
14CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
15
16python do_unpack:append() {
17 os.rename("devmem2-new.c", "devmem2.c")
18}
19
20do_compile() {
21 ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
22}
23
24do_install() {
25 install -d ${D}${bindir}
26 install devmem2 ${D}${bindir}
27}
28
29SRC_URI[md5sum] = "e23f236e94be4c429aa1ceac0f01544b"
30SRC_URI[sha256sum] = "3b15515693bae1ebd14d914e46d388edfec2175829ea1576a7a0c8606ebbe639"
diff --git a/meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch b/meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch
deleted file mode 100644
index 2a57f29891..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch
+++ /dev/null
@@ -1,70 +0,0 @@
1From 1360a907879dd24041797a3b709d49aeac2ab444 Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Tue, 29 May 2018 16:55:42 -0400
4Subject: [PATCH] devmem.c: ensure word is 32-bit and add support for 64-bit
5 long
6
7Signed-off-by: Denys Dmytriyenko <denys@ti.com>
8---
9 devmem2.c | 23 +++++++++++++++++------
10 1 file changed, 17 insertions(+), 6 deletions(-)
11
12diff --git a/devmem2.c b/devmem2.c
13index 5845381..68131b2 100644
14--- a/devmem2.c
15+++ b/devmem2.c
16@@ -39,6 +39,7 @@
17
18 #include <stdio.h>
19 #include <stdlib.h>
20+#include <stdint.h>
21 #include <unistd.h>
22 #include <string.h>
23 #include <errno.h>
24@@ -69,7 +70,7 @@ int main(int argc, char **argv) {
25 if(argc < 2) {
26 fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
27 "\taddress : memory address to act upon\n"
28- "\ttype : access operation type : [b]yte, [h]alfword, [w]ord\n"
29+ "\ttype : access operation type : [b]yte, [h]alfword, [w]ord, [l]ong\n"
30 "\tdata : data to be written\n\n",
31 argv[0]);
32 exit(1);
33@@ -103,9 +104,14 @@ int main(int argc, char **argv) {
34 read_result = *((unsigned short *) virt_addr);
35 break;
36 case 'w':
37- data_size = sizeof(unsigned long);
38+ data_size = sizeof(uint32_t);
39 virt_addr = fixup_addr(virt_addr, data_size);
40- read_result = *((unsigned long *) virt_addr);
41+ read_result = *((uint32_t *) virt_addr);
42+ break;
43+ case 'l':
44+ data_size = sizeof(uint64_t);
45+ virt_addr = fixup_addr(virt_addr, data_size);
46+ read_result = *((uint64_t *) virt_addr);
47 break;
48 default:
49 fprintf(stderr, "Illegal data type '%c'.\n", access_type);
50@@ -129,9 +135,14 @@ int main(int argc, char **argv) {
51 read_result = *((unsigned short *) virt_addr);
52 break;
53 case 'w':
54- virt_addr = fixup_addr(virt_addr, sizeof(unsigned long));
55- *((unsigned long *) virt_addr) = write_val;
56- read_result = *((unsigned long *) virt_addr);
57+ virt_addr = fixup_addr(virt_addr, sizeof(uint32_t));
58+ *((uint32_t *) virt_addr) = write_val;
59+ read_result = *((uint32_t *) virt_addr);
60+ break;
61+ case 'l':
62+ virt_addr = fixup_addr(virt_addr, sizeof(uint64_t));
63+ *((uint64_t *) virt_addr) = write_val;
64+ read_result = *((uint64_t *) virt_addr);
65 break;
66 }
67 sprintf(fmt_str, "Write at address 0x%%08lX (%%p): 0x%%0%dlX, "
68--
692.7.4
70
diff --git a/meta-oe/recipes-support/devmem2/devmem2/0001-devmem2-support-different-page-sizes-at-run-time.patch b/meta-oe/recipes-support/devmem2/devmem2/0001-devmem2-support-different-page-sizes-at-run-time.patch
deleted file mode 100644
index 0da0732c57..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2/0001-devmem2-support-different-page-sizes-at-run-time.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 0f6af48b2fbc71ec8abe862d3e9eb6da7b03538b Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Wed, 8 Aug 2018 14:38:00 -0400
4Subject: [PATCH] devmem2: support different page sizes at run-time
5
6Signed-off-by: Denys Dmytriyenko <denys@ti.com>
7---
8 devmem2.c | 4 ++--
9 1 file changed, 2 insertions(+), 2 deletions(-)
10
11diff --git a/devmem2.c b/devmem2.c
12index 68131b2..76af2d6 100644
13--- a/devmem2.c
14+++ b/devmem2.c
15@@ -53,8 +53,6 @@
16 #define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \
17 __LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0)
18
19-#define MAP_SIZE 4096UL
20-#define MAP_MASK (MAP_SIZE - 1)
21
22 static inline void *fixup_addr(void *addr, size_t size);
23
24@@ -66,6 +64,8 @@ int main(int argc, char **argv) {
25 int access_type = 'w';
26 char fmt_str[128];
27 size_t data_size;
28+ unsigned long MAP_SIZE = sysconf(_SC_PAGE_SIZE);
29+ unsigned long MAP_MASK = (MAP_SIZE - 1);
30
31 if(argc < 2) {
32 fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
33--
342.7.4
35
diff --git a/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch b/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
deleted file mode 100644
index 4517797fc7..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
+++ /dev/null
@@ -1,91 +0,0 @@
1--- devmem2.c 2004-08-05 01:55:25.000000000 +0200
2+++ devmem2_modif.c 2011-01-13 15:48:37.798799784 +0100
3@@ -45,12 +45,16 @@
4 #define MAP_SIZE 4096UL
5 #define MAP_MASK (MAP_SIZE - 1)
6
7+static inline void *fixup_addr(void *addr, size_t size);
8+
9 int main(int argc, char **argv) {
10 int fd;
11 void *map_base, *virt_addr;
12- unsigned long read_result, writeval;
13+ unsigned long read_result, write_val;
14 off_t target;
15 int access_type = 'w';
16+ char fmt_str[128];
17+ size_t data_size;
18
19 if(argc < 2) {
20 fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
21@@ -79,38 +83,51 @@
22 virt_addr = map_base + (target & MAP_MASK);
23 switch(access_type) {
24 case 'b':
25+ data_size = sizeof(unsigned char);
26+ virt_addr = fixup_addr(virt_addr, data_size);
27 read_result = *((unsigned char *) virt_addr);
28 break;
29 case 'h':
30+ data_size = sizeof(unsigned short);
31+ virt_addr = fixup_addr(virt_addr, data_size);
32 read_result = *((unsigned short *) virt_addr);
33 break;
34 case 'w':
35+ data_size = sizeof(unsigned long);
36+ virt_addr = fixup_addr(virt_addr, data_size);
37 read_result = *((unsigned long *) virt_addr);
38 break;
39 default:
40 fprintf(stderr, "Illegal data type '%c'.\n", access_type);
41 exit(2);
42 }
43- printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result);
44+ sprintf(fmt_str, "Read at address 0x%%08lX (%%p): 0x%%0%dlX\n", 2*data_size);
45+ printf(fmt_str, (unsigned long)target, virt_addr, read_result);
46 fflush(stdout);
47
48 if(argc > 3) {
49- writeval = strtoul(argv[3], 0, 0);
50+ write_val = strtoul(argv[3], 0, 0);
51 switch(access_type) {
52 case 'b':
53- *((unsigned char *) virt_addr) = writeval;
54+ virt_addr = fixup_addr(virt_addr, sizeof(unsigned char));
55+ *((unsigned char *) virt_addr) = write_val;
56 read_result = *((unsigned char *) virt_addr);
57 break;
58 case 'h':
59- *((unsigned short *) virt_addr) = writeval;
60+ virt_addr = fixup_addr(virt_addr, sizeof(unsigned short));
61+ *((unsigned short *) virt_addr) = write_val;
62 read_result = *((unsigned short *) virt_addr);
63 break;
64 case 'w':
65- *((unsigned long *) virt_addr) = writeval;
66+ virt_addr = fixup_addr(virt_addr, sizeof(unsigned long));
67+ *((unsigned long *) virt_addr) = write_val;
68 read_result = *((unsigned long *) virt_addr);
69 break;
70 }
71- printf("Written 0x%X; readback 0x%X\n", writeval, read_result);
72+ sprintf(fmt_str, "Write at address 0x%%08lX (%%p): 0x%%0%dlX, "
73+ "readback 0x%%0%dlX\n", 2*data_size, 2*data_size);
74+ printf(fmt_str, (unsigned long)target, virt_addr,
75+ write_val, read_result);
76 fflush(stdout);
77 }
78
79@@ -119,3 +136,12 @@
80 return 0;
81 }
82
83+static inline void *fixup_addr(void *addr, size_t size)
84+{
85+#ifdef FORCE_STRICT_ALIGNMENT
86+ unsigned long aligned_addr = (unsigned long)addr;
87+ aligned_addr &= ~(size - 1);
88+ addr = (void *)aligned_addr;
89+#endif
90+ return addr;
91+}
diff --git a/meta-oe/recipes-support/devmem2/devmem2_2.0.bb b/meta-oe/recipes-support/devmem2/devmem2_2.0.bb
new file mode 100644
index 0000000000..aee6bfe3da
--- /dev/null
+++ b/meta-oe/recipes-support/devmem2/devmem2_2.0.bb
@@ -0,0 +1,19 @@
1SUMMARY = "Simple program to read/write from/to any location in memory"
2LICENSE = "GPL-2.0-or-later"
3LIC_FILES_CHKSUM = "file://devmem2.c;endline=38;md5=a9eb9f3890384519f435aedf986297cf"
4
5SRC_URI = "git://github.com/denix0/devmem2.git;protocol=https;branch=main"
6SRCREV = "5b395a946894eb4f4ef5d07c80a50a88573a541e"
7
8S = "${WORKDIR}/git"
9
10CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
11
12do_compile() {
13 ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
14}
15
16do_install() {
17 install -d ${D}${bindir}
18 install devmem2 ${D}${bindir}
19}