diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-11-26 21:42:50 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-11-26 21:42:50 +0100 |
| commit | eec442be4d2dd0a1630a820ee43220e635450aa7 (patch) | |
| tree | e1846794adb381aade4a20f0b6e753b3ac7b6924 /test/test_dt.c | |
| parent | 7870d56b155c2be73cdacfba94eeb893cd55628e (diff) | |
| download | fbos-eec442be4d2dd0a1630a820ee43220e635450aa7.tar.gz fbos-eec442be4d2dd0a1630a820ee43220e635450aa7.zip | |
test: Add a DT test for a VisionFive2 board
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'test/test_dt.c')
| -rw-r--r-- | test/test_dt.c | 41 |
1 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); } |
