On 28/1/21 4:25 am, Niteesh G. S. wrote: > Date: Fri, 22 Jan 2021 04:28:37 +1100 > From: Chris Johns <chr...@rtems.org <mailto:chr...@rtems.org>> > To: devel@rtems.org <mailto:devel@rtems.org> > Subject: Re: [patch libBSD] dev/ofw: Use RTEMS OFW FDT implementation > Message-ID: <d2cca4d0-f1fc-b93f-c30e-0c95ce4b4...@rtems.org > <mailto:d2cca4d0-f1fc-b93f-c30e-0c95ce4b4...@rtems.org>> > Content-Type: text/plain; charset=utf-8 > > On 20/1/21 7:31 pm, G S Niteesh Babu wrote: > > This commit modifies the OFW interface to the RTEMS FDT > > implementation instead of the default FreeBSD. > > Which branch? > > Did you mean which commit? If not can you please rephrase your question? > RTEMS OFW API implemented in this commit: > https://git.rtems.org/rtems/commit/?id=9d2ed41fcb1dc635ce7d689c60cdf374f2394dbd > <https://git.rtems.org/rtems/commit/?id=9d2ed41fcb1dc635ce7d689c60cdf374f2394dbd>
This is for the rtems.git repo and the patch being reviewed is for the rtems-libbsd.git repo. We have 2 active branches in that repo. Which branch is this patch for? > Is this patch dependent on the changes to rtems.git? > > > Yes. This patch depends on the previously committed patch > https://lists.rtems.org/pipermail/devel/2020-December/063644.html > <https://lists.rtems.org/pipermail/devel/2020-December/063644.html> OK. > Are the kernel versions ofthe functions built for all bsps? > > Which BSPs have been built to test the changes? > > > I tested the changes with Beagle BSP and xilinx_zynq_a9_qemu. Great and thanks however libbsd builds for powerpc etc and this is not covered by that testing. I have not looked into the rtems.git patch to know if it is common to all bsps. > My concnern is these calls are currently available to all BSPs in libbsd > and may > not be in rtems.git. > > > If I understand the question correctly, my previous answer should have > answered > this. Hmm, well I must have missed it or I did not understand because I have asked again. > But once again, An RTEMS OFW API is already available in the master branch. > This > patch removes the functions which have been implemented in RTEMS. We provide > FreeBSD compatibility using ofw_compat.h. > https://git.rtems.org/rtems/tree/bsps/include/ofw/ofw_compat.h > <https://git.rtems.org/rtems/tree/bsps/include/ofw/ofw_compat.h> Yeap I understand this ... > > > --- > > freebsd/sys/dev/ofw/openfirm.c | 2 ++ > > freebsd/sys/dev/ofw/openfirm.h | 9 ++++++++ > > Why do we need to keep these files in libbsd? > > > Some functions cannot be implemented in RTEMS since they depend > on the FreeBSD driver infrastructure. So I have left them here. All functions > which are independent of the FreeBSD stuff are moved into RTEMS from > FreeBSD. For this change to proceed I need you to: 1. Post here the name of a BSP, if any exist, that does not build the rtems.git version of the OFW functions. If all BSPs build these functions please say so. 2. A report from you that the BSP listed in 1, if there is one, builds _and_ libbsd for that BSP also builds with the patch we are reviewing. > > > .../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 > > How did you create this changes? > > In RTEMS, there is ofw_compat.h > https://git.rtems.org/rtems/tree/bsps/include/ofw/ofw_compat.h > <https://git.rtems.org/rtems/tree/bsps/include/ofw/ofw_compat.h> > to provide compatibility between FreeBSD OFW API and RTEMS OFW API. Huh? The segment of the patch I commented under is for rtems-bsd-kernel-namespace.h. I am specifically asking how that fragment of the posted patch was created. Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel