Hello, Please review this series of patches.
Thanks, Niteesh. On Wed, Jul 15, 2020 at 3:14 PM Niteesh G. S. <niteesh...@gmail.com> wrote: > Hello, > > I would like to add some more information regarding these patches here. > > These patches are currently not meant to replace the OpenFirmWare API from > libBSD. > For these patches to be completely compatible with libBSD we must support > creating and > registering *xref's* since the drivers use the *xref* mechanism to create > a cross-reference > between the devices, they are handling and the node handles in FDT for > efficient translation. > > The current plan is to let libBSD initialize the *xref* structure during > its initialization. And have > RTEMS provide the openfirmware API. > i.e. > RTEMS will contain the openfirm.h and openfirm.c with FreeBSD independent > function > declarations and definitions. For functions like > > device_t OF_device_from_xref(phandle_t xref); > > phandle_t OF_xref_from_device(device_t dev); > > int OF_device_register_xref(phandle_t xref, device_t dev); > > which are dependent on FreeBSD we will have the declarations in RTEMS and > definitions > in FreeBSD. Though we have tried this with the pinmux driver more > extensive testing has > to done. > > To allow for definitions of the above function in openfirm.h(present in > RTEMS) we forward > declared the *device* structure. > > typedef struct device *device_t; > > If anyone doesn't like this solution please suggest an alternative > solution. > > Thanks, > Niteesh. > > > On Wed, Jul 15, 2020 at 12:02 PM G S Niteesh Babu <niteesh...@gmail.com> > wrote: > >> This commit move the bsp/fdt.h header to cpukit/include/rtems. >> The reason for this is, with inclusion of libfreebsd there are >> cases where their is need for bsp_fdt_get(). And with this >> header under bsps directory it is not possible to include it >> under a cpukit directory. >> --- >> bsps/include/bsp/fdt.h | 86 +++++++++++-------------------- >> cpukit/include/rtems/fdt.h | 69 +++++++++++++++++++++++++ >> spec/build/cpukit/librtemscpu.yml | 1 + >> 3 files changed, 100 insertions(+), 56 deletions(-) >> create mode 100644 cpukit/include/rtems/fdt.h >> >> diff --git a/bsps/include/bsp/fdt.h b/bsps/include/bsp/fdt.h >> index 4ed05b136c..4a7c3dfb24 100644 >> --- a/bsps/include/bsp/fdt.h >> +++ b/bsps/include/bsp/fdt.h >> @@ -1,67 +1,41 @@ >> -/* >> - * Copyright (c) 2015, 2017 embedded brains GmbH. All rights reserved. >> - * >> - * embedded brains GmbH >> - * Dornierstr. 4 >> - * 82178 Puchheim >> - * Germany >> - * <rt...@embedded-brains.de> >> - * >> - * The license and distribution terms for this file may be >> - * found in the file LICENSE in this distribution or at >> - * http://www.rtems.org/license/LICENSE. >> - */ >> - >> -#ifndef LIBBSP_SHARED_FDT_H >> -#define LIBBSP_SHARED_FDT_H >> - >> -#include <bsp.h> >> - >> -#ifdef __cplusplus >> -extern "C" { >> -#endif /* __cplusplus */ >> - >> -/* >> - * BSPs that implement the FDT support functions must define >> - * BSP_FDT_IS_SUPPORTED. >> - */ >> +/* SPDX-License-Identifier: BSD-2-Clause */ >> >> /** >> - * @brief Copies the specified source FDT to a dedicated global data >> area. >> + * @file >> * >> - * The source FDT is usually provided by a bootloader and may be located >> in a >> - * memory area that is used by the program. The low-level initialization >> - * should copy the FDT for later use. >> + * @ingroup RTEMSBSPsShared >> * >> - * The copy can be accessed by bsp_fdt_get(). >> - * >> - * @param[in] src The source FDT. >> */ >> -void bsp_fdt_copy(const void *src); >> >> -/** >> - * @brief Returns the FDT of the BSP. >> - * >> - * @return The FDT of the BSP. >> +/* >> + * Copyright (C) <2020>, Niteesh G S <niteesh...@gmail.com> >> + * >> + * Redistribution and use in source and binary forms, with or without >> + * modification, are permitted provided that the following conditions >> + * are met: >> + * 1. Redistributions of source code must retain the above copyright >> + * notice, this list of conditions and the following disclaimer. >> + * 2. Redistributions in binary form must reproduce the above copyright >> + * notice, this list of conditions and the following disclaimer in the >> + * documentation and/or other materials provided with the >> distribution. >> + * >> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS >> "AS IS" >> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >> THE >> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >> PURPOSE >> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS >> BE >> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR >> BUSINESS >> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER >> IN >> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR >> OTHERWISE) >> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED >> OF THE >> + * POSSIBILITY OF SUCH DAMAGE. >> */ >> -const void *bsp_fdt_get(void); >> >> -/** >> - * @brief Maps the interrupt number of the FDT to the interrupt vector >> used by >> - * the interrupt management. >> - * >> - * This function is used by the libbsd to implement the OFW_BUS_MAP_INTR >> bus >> - * method. >> - * >> - * @param[in] intr The FDT interrupt number cells. >> - * @param[in] icells The FDT interrupt cell count. >> - * >> - * @return The interrupt vector of the FDT interrupt number. >> - */ >> -uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells); >> +#ifndef LIBBSP_SHARED_FDT_H >> +#define LIBBSP_SHARED_FDT_H >> >> -#ifdef __cplusplus >> -} >> -#endif /* __cplusplus */ >> +#include <bsp.h> >> +#include <rtems/fdt.h> >> >> #endif /* LIBBSP_SHARED_FDT_H */ >> diff --git a/cpukit/include/rtems/fdt.h b/cpukit/include/rtems/fdt.h >> new file mode 100644 >> index 0000000000..149f7ff906 >> --- /dev/null >> +++ b/cpukit/include/rtems/fdt.h >> @@ -0,0 +1,69 @@ >> +/* >> + * Copyright (c) 2015, 2017 embedded brains GmbH. All rights reserved. >> + * >> + * embedded brains GmbH >> + * Dornierstr. 4 >> + * 82178 Puchheim >> + * Germany >> + * <rt...@embedded-brains.de> >> + * >> + * Modified by Niteesh G S <niteesh...@gmail.com> >> + * >> + * The license and distribution terms for this file may be >> + * found in the file LICENSE in this distribution or at >> + * http://www.rtems.org/license/LICENSE. >> + */ >> + >> +#ifndef RTEMS_FDT_H >> +#define RTEMS_FDT_H >> + >> +#include <rtems.h> >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif /* __cplusplus */ >> + >> +/* >> + * BSPs that implement the FDT support functions must define >> + * BSP_FDT_IS_SUPPORTED. >> + */ >> + >> +/** >> + * @brief Copies the specified source FDT to a dedicated global data >> area. >> + * >> + * The source FDT is usually provided by a bootloader and may be located >> in a >> + * memory area that is used by the program. The low-level initialization >> + * should copy the FDT for later use. >> + * >> + * The copy can be accessed by bsp_fdt_get(). >> + * >> + * @param[in] src The source FDT. >> + */ >> +void bsp_fdt_copy(const void *src); >> + >> +/** >> + * @brief Returns the FDT of the BSP. >> + * >> + * @return The FDT of the BSP. >> + */ >> +const void *bsp_fdt_get(void); >> + >> +/** >> + * @brief Maps the interrupt number of the FDT to the interrupt vector >> used by >> + * the interrupt management. >> + * >> + * This function is used by the libbsd to implement the OFW_BUS_MAP_INTR >> bus >> + * method. >> + * >> + * @param[in] intr The FDT interrupt number cells. >> + * @param[in] icells The FDT interrupt cell count. >> + * >> + * @return The interrupt vector of the FDT interrupt number. >> + */ >> +uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells); >> + >> +#ifdef __cplusplus >> +} >> +#endif /* __cplusplus */ >> + >> +#endif /* RTEMS_FDT_H */ >> diff --git a/spec/build/cpukit/librtemscpu.yml >> b/spec/build/cpukit/librtemscpu.yml >> index 2af315da71..403662b97d 100644 >> --- a/spec/build/cpukit/librtemscpu.yml >> +++ b/spec/build/cpukit/librtemscpu.yml >> @@ -105,6 +105,7 @@ install: >> - cpukit/include/rtems/extensionimpl.h >> - cpukit/include/rtems/fatal.h >> - cpukit/include/rtems/fb.h >> + - cpukit/include/rtems/fdt.h >> - cpukit/include/rtems/flashdisk.h >> - cpukit/include/rtems/framebuffer.h >> - cpukit/include/rtems/fs.h >> -- >> 2.17.1 >> >>
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel