aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-08-25 23:47:08 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2021-08-25 23:47:08 +0300
commit5dfac4879ce5f34503ae7537eefd3fc48d6fa750 (patch)
tree7ac25f1a14373ae08ea6aa2406d8f83026dba74a /include
parentb235f49f31d11e68019c42f48b6641c37e4c986e (diff)
downloadkmi-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.h8
-rw-r--r--include/apos/main.h2
-rw-r--r--include/fdt.h1
-rw-r--r--include/libfdt.h1
-rw-r--r--include/libfdt_env.h17
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 */