[RTEMS-libBSD OFW v1] dev/ofw: Use RTEMS OFW FDT implementation

G S Niteesh Babu niteesh.gs at gmail.com
Wed Sep 16 17:07:28 UTC 2020


This commit modifies the OFW interface to the RTEMS FDT
implementation instead of the default FreeBSD.
---
 freebsd/sys/dev/ofw/openfirm.c                |  2 ++
 freebsd/sys/dev/ofw/openfirm.h                |  9 ++++++++
 .../machine/rtems-bsd-kernel-namespace.h      | 22 -------------------
 3 files changed, 11 insertions(+), 22 deletions(-)

diff --git a/freebsd/sys/dev/ofw/openfirm.c b/freebsd/sys/dev/ofw/openfirm.c
index 9cc7dbdc..30513ab2 100644
--- a/freebsd/sys/dev/ofw/openfirm.c
+++ b/freebsd/sys/dev/ofw/openfirm.c
@@ -333,6 +333,7 @@ OF_interpret(const char *cmd, int nreturns, ...)
  * Device tree functions
  */
 
+#ifndef __rtems__
 /* Return the next sibling of this node or 0. */
 phandle_t
 OF_peer(phandle_t node)
@@ -672,6 +673,7 @@ OF_xref_from_node(phandle_t node)
 		return (node);
 	return (xref);
 }
+#endif /* __rtems__ */
 
 device_t
 OF_device_from_xref(phandle_t xref)
diff --git a/freebsd/sys/dev/ofw/openfirm.h b/freebsd/sys/dev/ofw/openfirm.h
index f043197a..5df07258 100644
--- a/freebsd/sys/dev/ofw/openfirm.h
+++ b/freebsd/sys/dev/ofw/openfirm.h
@@ -64,7 +64,11 @@
 
 #include <sys/types.h>
 #include <machine/_bus.h>
+#ifdef __rtems__
+#include <ofw/ofw_compat.h>
+#endif /* __rtems__ */
 
+#ifndef __rtems__
 /*
  * Prototypes for Open Firmware Interface Routines
  */
@@ -72,6 +76,7 @@
 typedef uint32_t	ihandle_t;
 typedef uint32_t	phandle_t;
 typedef uint32_t	pcell_t;
+#endif /* __rtems__ */
 
 #ifdef _KERNEL
 #include <sys/malloc.h>
@@ -102,6 +107,7 @@ int		OF_test(const char *name);
 void		OF_printf(const char *fmt, ...);
 
 /* Device tree functions */
+#ifndef __rtems__
 phandle_t	OF_peer(phandle_t node);
 phandle_t	OF_child(phandle_t node);
 phandle_t	OF_parent(phandle_t node);
@@ -140,6 +146,7 @@ ssize_t		OF_package_to_path(phandle_t node, char *buf, size_t len);
  */
 phandle_t	OF_node_from_xref(phandle_t xref);
 phandle_t	OF_xref_from_node(phandle_t node);
+#endif /* __rtems__ */
 
 /*
  * When properties contain references to other nodes using xref handles it is
@@ -159,8 +166,10 @@ ssize_t		OF_read(ihandle_t instance, void *buf, size_t len);
 ssize_t		OF_write(ihandle_t instance, const void *buf, size_t len);
 int		OF_seek(ihandle_t instance, uint64_t where);
 
+#ifndef __rtems__
 phandle_t	OF_instance_to_package(ihandle_t instance);
 ssize_t		OF_instance_to_path(ihandle_t instance, char *buf, size_t len);
+#endif /* __rtems__ */
 int		OF_call_method(const char *method, ihandle_t instance,
 		    int nargs, int nreturns, ...);
 
diff --git a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
index 75b744a4..53944393 100644
--- a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
+++ b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
@@ -3044,42 +3044,20 @@
 #define	null_filtops _bsd_null_filtops
 #define	nullop _bsd_nullop
 #define	OF_call_method _bsd_OF_call_method
-#define	OF_canon _bsd_OF_canon
-#define	OF_child _bsd_OF_child
 #define	OF_claim _bsd_OF_claim
 #define	OF_close _bsd_OF_close
 #define	OF_device_from_xref _bsd_OF_device_from_xref
 #define	OF_device_register_xref _bsd_OF_device_register_xref
 #define	OF_enter _bsd_OF_enter
 #define	OF_exit _bsd_OF_exit
-#define	OF_finddevice _bsd_OF_finddevice
-#define	OF_getencprop _bsd_OF_getencprop
-#define	OF_getencprop_alloc _bsd_OF_getencprop_alloc
-#define	OF_getencprop_alloc_multi _bsd_OF_getencprop_alloc_multi
-#define	OF_getprop _bsd_OF_getprop
-#define	OF_getprop_alloc _bsd_OF_getprop_alloc
-#define	OF_getprop_alloc_multi _bsd_OF_getprop_alloc_multi
-#define	OF_getproplen _bsd_OF_getproplen
-#define	OF_hasprop _bsd_OF_hasprop
 #define	OF_init _bsd_OF_init
 #define	OF_install _bsd_OF_install
-#define	OF_instance_to_package _bsd_OF_instance_to_package
-#define	OF_instance_to_path _bsd_OF_instance_to_path
 #define	OF_interpret _bsd_OF_interpret
-#define	OF_nextprop _bsd_OF_nextprop
-#define	OF_node_from_xref _bsd_OF_node_from_xref
 #define	OF_open _bsd_OF_open
-#define	OF_package_to_path _bsd_OF_package_to_path
-#define	OF_parent _bsd_OF_parent
-#define	OF_peer _bsd_OF_peer
 #define	OF_printf _bsd_OF_printf
-#define	OF_prop_free _bsd_OF_prop_free
 #define	OF_read _bsd_OF_read
 #define	OF_release _bsd_OF_release
-#define	OF_searchencprop _bsd_OF_searchencprop
-#define	OF_searchprop _bsd_OF_searchprop
 #define	OF_seek _bsd_OF_seek
-#define	OF_setprop _bsd_OF_setprop
 #define	OF_test _bsd_OF_test
 #define	ofw_bus_assigned_addresses_to_rl _bsd_ofw_bus_assigned_addresses_to_rl
 #define	ofwbus_driver _bsd_ofwbus_driver
-- 
2.17.1



More information about the devel mailing list