aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2024-11-26 21:42:50 +0100
committerMiquel Sabaté Solà <mikisabate@gmail.com>2024-11-26 21:42:50 +0100
commiteec442be4d2dd0a1630a820ee43220e635450aa7 (patch)
treee1846794adb381aade4a20f0b6e753b3ac7b6924
parent7870d56b155c2be73cdacfba94eeb893cd55628e (diff)
downloadfbos-eec442be4d2dd0a1630a820ee43220e635450aa7.tar.gz
fbos-eec442be4d2dd0a1630a820ee43220e635450aa7.zip
test: Add a DT test for a VisionFive2 board
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
-rw-r--r--test/test_dt.c41
-rw-r--r--test/testdata/vf2.dtbbin0 -> 41088 bytes
2 files changed, 35 insertions, 6 deletions
diff --git a/test/test_dt.c b/test/test_dt.c
index 1eb9751..f606d2e 100644
--- a/test/test_dt.c
+++ b/test/test_dt.c
@@ -4,32 +4,61 @@
#include <fbos/dt.h>
-int main(void)
+void dt_info_from(const char *const path, struct dt_info *info)
{
- FILE *fh = fopen("./test/testdata/qemu.dtb", "rb");
+ FILE *fh = fopen(path, "rb");
assert(fh);
fseek(fh, 0, SEEK_END);
long fsize = ftell(fh);
rewind(fh);
- uint32_t *contents = malloc((unsigned long)fsize + 1);
- fread(contents, (unsigned long)fsize, sizeof(uint32_t *), fh);
+ char *contents = malloc((unsigned long)fsize + 1);
+ assert(contents);
+
+ fread(contents, (unsigned long)fsize, sizeof(char), fh);
fclose(fh);
contents[fsize] = 0;
+ get_dt_info((uint32_t *)contents, info);
+ free(contents);
+}
+
+void test_qemu(void)
+{
struct dt_info info = {
.cpu_freq = 0,
.initrd_start = 0,
.initrd_end = 0,
};
- get_dt_info(contents, &info);
- free(contents);
+
+ dt_info_from("./test/testdata/qemu.dtb", &info);
assert(info.initrd_start == 0x84200000);
assert(info.initrd_end == 0x84200c00);
assert(info.cpu_freq == 0x989680);
+}
+
+void test_vf2(void)
+{
+ struct dt_info info = {
+ .cpu_freq = 0,
+ .initrd_start = 0,
+ .initrd_end = 0,
+ };
+
+ dt_info_from("./test/testdata/vf2.dtb", &info);
+
+ assert(info.initrd_start == 0x46100000);
+ assert(info.initrd_end == 0x47139ce3);
+ assert(info.cpu_freq == 0x3d0900);
+}
+
+int main(void)
+{
+ test_qemu();
+ test_vf2();
exit(0);
}
diff --git a/test/testdata/vf2.dtb b/test/testdata/vf2.dtb
new file mode 100644
index 0000000..9dbf194
--- /dev/null
+++ b/test/testdata/vf2.dtb
Binary files differ