diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-08-25 23:47:08 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-08-25 23:47:08 +0300 |
| commit | 5dfac4879ce5f34503ae7537eefd3fc48d6fa750 (patch) | |
| tree | 7ac25f1a14373ae08ea6aa2406d8f83026dba74a /include | |
| parent | b235f49f31d11e68019c42f48b6641c37e4c986e (diff) | |
| download | kmi-5dfac4879ce5f34503ae7537eefd3fc48d6fa750.tar.gz kmi-5dfac4879ce5f34503ae7537eefd3fc48d6fa750.zip | |
libfdt seems to work
At least as far as reading memory info, cool.
One issue I have is that .(ro)data is apparently accessed by absolute
addresses, so I need to know at which address the kernel is going to be
loaded. I would prefer completely position independent code, but if
that's not possible then eh.
Diffstat (limited to 'include')
| -rw-r--r-- | include/apos/link.lds.h | 8 | ||||
| -rw-r--r-- | include/apos/main.h | 2 | ||||
| -rw-r--r-- | include/fdt.h | 1 | ||||
| -rw-r--r-- | include/libfdt.h | 1 | ||||
| -rw-r--r-- | include/libfdt_env.h | 17 |
5 files changed, 20 insertions, 9 deletions
diff --git a/include/apos/link.lds.h b/include/apos/link.lds.h deleted file mode 100644 index ddb1f65..0000000 --- a/include/apos/link.lds.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef APOS_LINK_LDS_H -#define APOS_LINK_LDS_H - -#ifndef PM_KERN -#define PM_KERN 0 -#endif - -#endif /* APOS_LINK_LDS_H */ diff --git a/include/apos/main.h b/include/apos/main.h index 5292df7..15fff73 100644 --- a/include/apos/main.h +++ b/include/apos/main.h @@ -3,6 +3,6 @@ #include <apos/attrs.h> -#define __main __section(".text.start") __noinline +#define __main __section(".kernel.start") __noinline #endif /* APOS_MAIN_H */ diff --git a/include/fdt.h b/include/fdt.h new file mode 100644 index 0000000..9236a45 --- /dev/null +++ b/include/fdt.h @@ -0,0 +1 @@ +#include "../dtc/libfdt/fdt.h" diff --git a/include/libfdt.h b/include/libfdt.h new file mode 100644 index 0000000..65b3ca6 --- /dev/null +++ b/include/libfdt.h @@ -0,0 +1 @@ +#include "../dtc/libfdt/libfdt.h" diff --git a/include/libfdt_env.h b/include/libfdt_env.h new file mode 100644 index 0000000..166b558 --- /dev/null +++ b/include/libfdt_env.h @@ -0,0 +1,17 @@ +#ifndef LIBFDT_ENV_H +/* take over libfdt */ +#define LIBFDT_ENV_H + +#include <apos/types.h> +#include <apos/string.h> + +typedef int16_t fdt16_t; +typedef int32_t fdt32_t; +typedef int64_t fdt64_t; + +#define fdt32_to_cpu(x) be32_to_cpu(x) +#define cpu_to_fdt32(x) cpu_to_be32(x) +#define fdt64_to_cpu(x) be64_to_cpu(x) +#define cpu_to_fdt64(x) cpu_to_be64(x) + +#endif /* LIBFDT_ENV_H */ |
