From 1aac36f788834699b6891aea7a83eb950bd5e8f6 Mon Sep 17 00:00:00 2001 From: stefan Date: Sat, 8 Apr 2023 20:42:18 -0400 Subject: no idea whot i changed lol --- sys/dev/fdt/fdt.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 sys/dev/fdt/fdt.c (limited to 'sys/dev/fdt') diff --git a/sys/dev/fdt/fdt.c b/sys/dev/fdt/fdt.c new file mode 100644 index 0000000..4b132e2 --- /dev/null +++ b/sys/dev/fdt/fdt.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +void +fdt_walk(struct fdt_header *header) +{ + if (fdt_uint32(header->magic) != FDT_HEADER_MAGIC) { + printf("corrupted or invalid fdt"); + } + printf("parsing fdt @%p...\n", header); + printf("header->totalsize: %d\n", fdt_uint32(header->totalsize)); + printf("header->off_dt_struct: %d\n", fdt_uint32(header->off_dt_struct)); + printf("header->off_dt_strings: %d\n", fdt_uint32(header->off_dt_strings)); + printf("header->off_mem_rsvmap: %d\n", fdt_uint32(header->off_mem_rsvmap)); + printf("header->version: %d\n", fdt_uint32(header->version)); + printf("header->last_comp_version: %d\n", fdt_uint32(header->last_comp_version)); + printf("header->boot_cpuid_phys: %d\n", fdt_uint32(header->boot_cpuid_phys)); + printf("header->size_dt_strings: %d\n", fdt_uint32(header->size_dt_strings)); + printf("header->size_dt_struct: %d\n", fdt_uint32(header->size_dt_struct)); + + uint8_t *dts = header + fdt_uint32(header->off_dt_struct) + sizeof(uint32_t); + uint8_t *dtstr = header + fdt_uint32(header->off_dt_strings); + printf("parsing dt struct @%p...\n", dts); + printf(dts); +} + -- cgit v1.2.3