Bit less adaptions than I thought that you have in the code. I assumed
that I would see some more locations in that patch where you already
removed code blocks with ifdef __rtems__. I wanted to have a look
especially at these parts. I expect that you will have some problems
with memories (like allocating or copying from/to I/O memory or some DMA
stuff). Please try to be really careful with that stuff. A lot of the
RTEMS implementations are quite a bit simplified or there have been
hacks during porting such parts.

For example sometimes you can replace some FreeBSD I/O memory operations
by just plain memory accesses. But sometimes (like for DMA) it is
necessary to think about them and add cache handling.

On 18/06/2019 21:53, Vijay Kumar Banerjee wrote:
> ---
>  Makefile.todo                                 |  41 +++++++
>  buildset/default.ini                          |   2 +
>  libbsd.py                                     | 100 ++++++++++++++++++
>  rtemsbsd/include/bsp/nexus-devices.h          |  13 ++-
>  .../machine/rtems-bsd-kernel-namespace.h      |  89 ++++++++++++++++
>  rtemsbsd/include/rtems/bsd/local/clknode_if.h |  92 ++++++++++++++++
>  rtemsbsd/include/rtems/bsd/local/fb_if.h      |  45 ++++++++
>  rtemsbsd/include/rtems/bsd/local/hdmi_if.h    |  71 +++++++++++++
>  rtemsbsd/local/clknode_if.c                   |  40 +++++++
>  rtemsbsd/local/fb_if.c                        |  30 ++++++
>  rtemsbsd/local/hdmi_if.c                      |  35 ++++++
>  rtemsbsd/sys/dev/iicbus/rtems-i2c.c           |   4 +-
>  12 files changed, 557 insertions(+), 5 deletions(-)
>  create mode 100644 rtemsbsd/include/rtems/bsd/local/clknode_if.h
>  create mode 100644 rtemsbsd/include/rtems/bsd/local/fb_if.h
>  create mode 100644 rtemsbsd/include/rtems/bsd/local/hdmi_if.h
>  create mode 100644 rtemsbsd/local/clknode_if.c
>  create mode 100644 rtemsbsd/local/fb_if.c
>  create mode 100644 rtemsbsd/local/hdmi_if.c
> 
> diff --git a/Makefile.todo b/Makefile.todo
> index 74188531..910f8c95 100644
> --- a/Makefile.todo
> +++ b/Makefile.todo
> @@ -45,6 +45,14 @@ GENERATED += $(LOCAL_INC)/sdhci_if.h
>  GENERATED += $(LOCAL_SRC)/sdhci_if.c
>  GENERATED += $(LOCAL_INC)/gpiobus_if.h
>  GENERATED += $(LOCAL_SRC)/gpiobus_if.c
> +GENERATED += $(LOCAL_INC)/iicbus_if.h
> +GENERATED += $(LOCAL_SRC)/iicbus_if.c
> +GENERATED += $(LOCAL_INC)/clknode_if.h
> +GENERATED += $(LOCAL_SRC)/clknode_if.c
> +GENERATED += $(LOCAL_INC)/hdmi_if.h
> +GENERATED += $(LOCAL_SRC)/hdmi_if.c
> +GENERATED += $(LOCAL_INC)/fb_if.h
> +GENERATED += $(LOCAL_SRC)/fb_if.c
>  GENERATED += rtemsbsd/include/machine/rtems-bsd-regdomain.h
>  GENERATED += rtemsbsd/rtems/rtems-bsd-regdomain.c
>  
> @@ -226,6 +234,39 @@ $(LOCAL_SRC)/iicbus_if.c: 
> $(FREEBSD_SRC)/sys/dev/iicbus/iicbus_if.m
>           -e 's|#include "iicbus_if.h"|#include 
> <rtems/bsd/local/iicbus_if.h>|'
>       mv iicbus_if.c $@
>  
> +$(LOCAL_INC)/clknode_if.h: $(FREEBSD_SRC)/sys/dev/extres/clk/clknode_if.m
> +     awk -f $(TOOLS)/makeobjops.awk $< -h
> +     mv clknode_if.h $@
> +
> +$(LOCAL_SRC)/clknode_if.c: $(FREEBSD_SRC)/sys/dev/extres/clk/clknode_if.m
> +     awk -f $(TOOLS)/makeobjops.awk $< -c
> +     sed -i clknode_if.c \
> +         -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \
> +         -e 's|#include "clknode_if.h"|#include 
> <rtems/bsd/local/clknode_if.h>|'
> +     mv clknode_if.c $@
> +
> +$(LOCAL_INC)/hdmi_if.h: $(FREEBSD_SRC)/sys/dev/hdmi/hdmi_if.m
> +     awk -f $(TOOLS)/makeobjops.awk $< -h
> +     mv hdmi_if.h $@
> +
> +$(LOCAL_SRC)/hdmi_if.c: $(FREEBSD_SRC)/sys/dev/hdmi/hdmi_if.m
> +     awk -f $(TOOLS)/makeobjops.awk $< -c
> +     sed -i hdmi_if.c \
> +         -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \
> +         -e 's|#include "hdmi_if.h"|#include <rtems/bsd/local/hdmi_if.h>|'
> +     mv hdmi_if.c $@
> +
> +$(LOCAL_INC)/fb_if.h: $(FREEBSD_SRC)/sys/dev/fb/fb_if.m
> +     awk -f $(TOOLS)/makeobjops.awk $< -h
> +     mv fb_if.h $@
> +
> +$(LOCAL_SRC)/fb_if.c: $(FREEBSD_SRC)/sys/dev/fb/fb_if.m
> +     awk -f $(TOOLS)/makeobjops.awk $< -c
> +     sed -i fb_if.c \
> +         -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \
> +         -e 's|#include "fb_if.h"|#include <rtems/bsd/local/fb_if.h>|'
> +     mv fb_if.c $@
> +
>  $(LOCAL_INC)/sdhci_if.h: $(FREEBSD_SRC)/sys/dev/sdhci/sdhci_if.m
>       awk -f $(TOOLS)/makeobjops.awk $< -h
>       mv sdhci_if.h $@
> diff --git a/buildset/default.ini b/buildset/default.ini
> index 4acb2368..b2ae6f32 100644
> --- a/buildset/default.ini
> +++ b/buildset/default.ini
> @@ -37,6 +37,8 @@ dev_usb_storage = on
>  dev_usb_wlan = off
>  dev_wlan_rtwn = off
>  iic = on
> +tda = on
> +fb_ti = on
>  dhcpcd = on
>  dpaa = on
>  evdev = on
> diff --git a/libbsd.py b/libbsd.py
> index 12d4c2ed..fab7a05d 100644
> --- a/libbsd.py
> +++ b/libbsd.py
> @@ -758,6 +758,7 @@ class iic(builder.Module):
>                  'sys/dev/iicbus/iicbus.h',
>                  'sys/dev/iicbus/iic.h',
>                  'sys/dev/iicbus/iiconf.h',
> +                'sys/arm/ti/ti_i2c.h',
>              ]
>          )
>          self.addKernelSpaceSourceFiles(
> @@ -766,6 +767,7 @@ class iic(builder.Module):
>                  'sys/dev/iicbus/iicbus.c',
>                  'sys/dev/iicbus/iiconf.c',
>                  'sys/dev/iicbus/ofw_iicbus.c',
> +                'sys/arm/ti/ti_i2c.c',
>              ],
>              mm.generator['source']()
>          )
> @@ -777,6 +779,102 @@ class iic(builder.Module):
>              mm.generator['source']()
>          )
>  
> +#
> +# TDA
> +#
> +class tda(builder.Module):

Small problem: Naming. Your module does a lot more than just importing
the TDA driver. You have EDID, Vesa and some other HDMI specific stuff.
So maybe `display` or `monitor` would be a better description.

> +
> +    def __init__(self, manager):
> +        super(tda, self).__init__(manager, type(self).__name__)
> +
> +    def generate(self):
> +        mm = self.manager
> +        self.addKernelSpaceHeaderFiles(
> +            [
> +                'sys/dev/extres/clk/clk.h',
> +                'sys/dev/hdmi/dwc_hdmi.h',
> +                'sys/dev/hdmi/dwc_hdmireg.h',
> +                'sys/dev/videomode/videomode.h',
> +                'sys/dev/videomode/edidvar.h',
> +                'sys/dev/videomode/edidreg.h',
> +                'sys/dev/videomode/ediddevs.h',
> +                'sys/dev/videomode/ediddevs_data.h',
> +                'sys/dev/videomode/vesagtf.h',
> +            ]
> +        )
> +        self.addKernelSpaceSourceFiles(
> +            [
> +                'sys/arm/ti/am335x/tda19988.c',
> +                'sys/dev/hdmi/dwc_hdmi.c',
> +                'sys/dev/hdmi/dwc_hdmi_fdt.c',
> +                'sys/dev/extres/clk/clk.c',
> +                'sys/dev/videomode/pickmode.c',
> +                'sys/dev/videomode/edid.c',
> +                'sys/dev/videomode/vesagtf.c',
> +                'sys/dev/videomode/videomode.c',
> +            ],
> +            mm.generator['source']()
> +        )
> +        self.addRTEMSSourceFiles(
> +            [
> +                'local/clknode_if.c',
> +                'local/hdmi_if.c',
> +            ],
> +            mm.generator['source']()
> +        )
> +
> +#
> +# FB_TI
> +#
> +class fb_ti(builder.Module):

Do you see an application where you can use this driver independent of
the TDA module? Otherwise I would suggest merging them into one.

Note that most of the time adding drivers isn't problematic. They are
linked in only if the application requests them (or if they are
referenced via nexus-devices.h). So no problem with a bigger group here.

> +
> +    def __init__(self, manager):
> +        super(fb_ti, self).__init__(manager, type(self).__name__)
> +
> +    def generate(self):
> +        mm = self.manager
> +        self.addKernelSpaceHeaderFiles(
> +            [
> +                'sys/sys/fbio.h',
> +                'sys/sys/power.h',
> +                'sys/sys/_eventhandler.h',
> +                'sys/sys/consio.h',
> +                'sys/sys/terminal.h',
> +                'sys/dev/fb/fbreg.h',
> +                'sys/dev/syscons/syscons.h',
> +                'sys/dev/vt/vt.h',
> +                'sys/arm/ti/am335x/am335x_lcd.h',
> +                'sys/arm/ti/am335x/am335x_pwm.h',
> +                'sys/dev/vt/hw/fb/vt_fb.h',
> +                'sys/arm/include/pmap.h',
> +                'sys/arm/include/vm.h',
> +                'sys/vm/vm.h',
> +                'sys/vm/pmap.h',
> +                'sys/dev/vt/colors/vt_termcolors.h',
> +                'sys/teken/teken.h',
> +                'sys/arm/include/bus.h',
> +            ]
> +        )
> +        self.addKernelSpaceSourceFiles(
> +            [
> +                'sys/dev/fb/fb.c',
> +                'sys/arm/ti/am335x/am335x_lcd.c',
> +                'sys/arm/ti/am335x/am335x_lcd_syscons.c',
> +                'sys/arm/ti/am335x/am335x_pwmss.c',
> +                'sys/arm/ti/am335x/am335x_ecap.c',
> +                'sys/dev/fb/fbd.c',
> +                'sys/dev/vt/hw/fb/vt_fb.c',
> +                'sys/dev/vt/hw/fb/vt_early_fb.c',
> +            ],
> +            mm.generator['source']()
> +        )
> +        self.addRTEMSSourceFiles(
> +            [
> +                'local/fb_if.c',
> +            ],
> +            mm.generator['source']()
> +        )
> +
>  #
>  # USB
>  #
> @@ -5134,6 +5232,8 @@ def load(mm):
>      mm.addModule(dev_input(mm))
>      mm.addModule(evdev(mm))
>      mm.addModule(iic(mm))
> +    mm.addModule(tda(mm))
> +    mm.addModule(fb_ti(mm))
>  
>      mm.addModule(dev_usb(mm))
>      mm.addModule(dev_usb_controller(mm))
> diff --git a/rtemsbsd/include/bsp/nexus-devices.h 
> b/rtemsbsd/include/bsp/nexus-devices.h
> index 97f6d2b2..27f42f38 100644
> --- a/rtemsbsd/include/bsp/nexus-devices.h
> +++ b/rtemsbsd/include/bsp/nexus-devices.h
> @@ -61,10 +61,17 @@ SYSINIT_DRIVER_REFERENCE(sdhci_ti, simplebus);
>  SYSINIT_DRIVER_REFERENCE(mmcsd, mmc);
>  SYSINIT_DRIVER_REFERENCE(cpsw, cpswss);
>  SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
> -SYSINIT_DRIVER_REFERENCE(rtems_i2c, simplebus);
> -SYSINIT_DRIVER_REFERENCE(ofw_iicbus, rtems_i2c);
> +SYSINIT_DRIVER_REFERENCE(am335x_lcd, simplebus);
> +SYSINIT_DRIVER_REFERENCE(am335x_pwmss, simplebus);

Where is the PWM module used? To generate some clock?

> +SYSINIT_DRIVER_REFERENCE(ti_iic, simplebus);
> +SYSINIT_DRIVER_REFERENCE(iicbus, ti_iic);
> +SYSINIT_DRIVER_REFERENCE(ofw_iicbus, ti_iic);
> +//SYSINIT_DRIVER_REFERENCE(rtems_i2c, simplebus);
> +//SYSINIT_DRIVER_REFERENCE(ofw_iicbus, rtems_i2c);
> +//SYSINIT_DRIVER_REFERENCE(iicbus, rtems_i2c);
> +SYSINIT_DRIVER_REFERENCE(fbd, am335x_lcd);
> +SYSINIT_DRIVER_REFERENCE(tda, iicbus);
>  SYSINIT_DRIVER_REFERENCE(iic, iicbus);
> -SYSINIT_DRIVER_REFERENCE(iicbus, rtems_i2c);
>  #ifdef RTEMS_BSD_MODULE_NET80211
>  SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);
>  SYSINIT_MODULE_REFERENCE(wlan_ratectl_none);
> diff --git a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h 
> b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
> index 235c9886..45c9f31a 100644
> --- a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
> +++ b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
> @@ -46,6 +46,10 @@
>  #define      altq_remove _bsd_altq_remove
>  #define      altq_remove_queue _bsd_altq_remove_queue
>  #define      altqs_inactive_open _bsd_altqs_inactive_open
> +#define      am335x_dummysw _bsd_am335x_dummysw
> +#define      am335x_lcd_syscons_setup _bsd_am335x_lcd_syscons_setup
> +#define      am335x_pwm_config_ecap _bsd_am335x_pwm_config_ecap
> +#define      am335x_pwmss_driver _bsd_am335x_pwmss_driver
>  #define      arp_announce_ifaddr _bsd_arp_announce_ifaddr
>  #define      arp_ifinit _bsd_arp_ifinit
>  #define      arprequest _bsd_arprequest
> @@ -563,7 +567,53 @@
>  #define      clean_unrhdrl _bsd_clean_unrhdrl
>  #define      ClearCheckNewLink _bsd_ClearCheckNewLink
>  #define      clear_unrhdr _bsd_clear_unrhdr
> +#define      clk_disable _bsd_clk_disable
> +#define      clkdom_create _bsd_clkdom_create
> +#define      clkdom_dump _bsd_clkdom_dump
> +#define      clkdom_finit _bsd_clkdom_finit
> +#define      clkdom_get_by_dev _bsd_clkdom_get_by_dev
> +#define      clkdom_set_ofw_mapper _bsd_clkdom_set_ofw_mapper
> +#define      clkdom_unlock _bsd_clkdom_unlock
> +#define      clkdom_xlock _bsd_clkdom_xlock
> +#define      clk_enable _bsd_clk_enable
> +#define      clk_get_by_id _bsd_clk_get_by_id
> +#define      clk_get_by_name _bsd_clk_get_by_name
> +#define      clk_get_by_ofw_index _bsd_clk_get_by_ofw_index
> +#define      clk_get_by_ofw_index_prop _bsd_clk_get_by_ofw_index_prop
> +#define      clk_get_by_ofw_name _bsd_clk_get_by_ofw_name
> +#define      clk_get_freq _bsd_clk_get_freq
> +#define      clk_get_name _bsd_clk_get_name
> +#define      clk_get_parent _bsd_clk_get_parent
>  #define      clk_intr_event _bsd_clk_intr_event
> +#define      clknode_class _bsd_clknode_class
> +#define      clknode_create _bsd_clknode_create
> +#define      clknode_disable _bsd_clknode_disable
> +#define      clknode_enable _bsd_clknode_enable
> +#define      clknode_find_by_id _bsd_clknode_find_by_id
> +#define      clknode_find_by_name _bsd_clknode_find_by_name
> +#define      clknode_get_device _bsd_clknode_get_device
> +#define      clknode_get_flags _bsd_clknode_get_flags
> +#define      clknode_get_freq _bsd_clknode_get_freq
> +#define      clknode_get_name _bsd_clknode_get_name
> +#define      clknode_get_parent _bsd_clknode_get_parent
> +#define      clknode_get_parent_idx _bsd_clknode_get_parent_idx
> +#define      clknode_get_parent_names _bsd_clknode_get_parent_names
> +#define      clknode_get_parents_num _bsd_clknode_get_parents_num
> +#define      clknode_get_softc _bsd_clknode_get_softc
> +#define      clknode_init_parent_idx _bsd_clknode_init_parent_idx
> +#define      clknode_register _bsd_clknode_register
> +#define      clknode_set_freq _bsd_clknode_set_freq
> +#define      clknode_set_parent_by_idx _bsd_clknode_set_parent_by_idx
> +#define      clknode_set_parent_by_name _bsd_clknode_set_parent_by_name
> +#define      clknode_stop _bsd_clknode_stop
> +#define      clk_parse_ofw_clk_name _bsd_clk_parse_ofw_clk_name
> +#define      clk_parse_ofw_out_names _bsd_clk_parse_ofw_out_names
> +#define      clk_release _bsd_clk_release
> +#define      clk_set_assigned _bsd_clk_set_assigned
> +#define      clk_set_freq _bsd_clk_set_freq
> +#define      clk_set_parent_by_clk _bsd_clk_set_parent_by_clk
> +#define      clk_stop _bsd_clk_stop
> +#define      clk_test_freq _bsd_clk_test_freq
>  #define      comp_algo_deflate _bsd_comp_algo_deflate
>  #define      comp_algorithm_lookup _bsd_comp_algorithm_lookup
>  #define      config_intrhook_disestablish _bsd_config_intrhook_disestablish
> @@ -775,6 +825,9 @@
>  #define      drbr_needs_enqueue_drv _bsd_drbr_needs_enqueue_drv
>  #define      driver_module_handler _bsd_driver_module_handler
>  #define      dwc_driver _bsd_dwc_driver
> +#define      dwc_hdmi_get_edid _bsd_dwc_hdmi_get_edid
> +#define      dwc_hdmi_init _bsd_dwc_hdmi_init
> +#define      dwc_hdmi_set_videomode _bsd_dwc_hdmi_set_videomode
>  #define      dwc_otg_attach _bsd_dwc_otg_attach
>  #define      dwc_otg_detach _bsd_dwc_otg_detach
>  #define      dwc_otg_driver _bsd_dwc_otg_driver
> @@ -1087,6 +1140,13 @@
>  #define      e1000_write_vfta_generic _bsd_e1000_write_vfta_generic
>  #define      e1000_write_vfta_i350 _bsd_e1000_write_vfta_i350
>  #define      e1000_write_xmdio_reg _bsd_e1000_write_xmdio_reg
> +#define      edid_is_valid _bsd_edid_is_valid
> +#define      edid_nproducts _bsd_edid_nproducts
> +#define      edid_nvendors _bsd_edid_nvendors
> +#define      edid_parse _bsd_edid_parse
> +#define      edid_print _bsd_edid_print
> +#define      edid_products _bsd_edid_products
> +#define      edid_vendors _bsd_edid_vendors
>  #define      ehci_detach _bsd_ehci_detach
>  #define      ehci_get_port_speed_hostc _bsd_ehci_get_port_speed_hostc
>  #define      ehci_get_port_speed_portsc _bsd_ehci_get_port_speed_portsc
> @@ -1208,6 +1268,16 @@
>  #define      eventhandler_find_list _bsd_eventhandler_find_list
>  #define      eventhandler_prune_list _bsd_eventhandler_prune_list
>  #define      eventhandler_register _bsd_eventhandler_register
> +#define      fb_commonioctl _bsd_fb_commonioctl
> +#define      fbd_devclass _bsd_fbd_devclass
> +#define      fbd_driver _bsd_fbd_driver
> +#define      fbd_list _bsd_fbd_list
> +#define      fbd_register _bsd_fbd_register
> +#define      fb_dump_adp_info _bsd_fb_dump_adp_info
> +#define      fb_dump_mode_info _bsd_fb_dump_mode_info
> +#define      fbd_unregister _bsd_fbd_unregister
> +#define      fb_list_head _bsd_fb_list_head
> +#define      fb_type _bsd_fb_type
>  #define      fdt_addrsize_cells _bsd_fdt_addrsize_cells
>  #define      fdt_data_get _bsd_fdt_data_get
>  #define      fdt_data_to_res _bsd_fdt_data_to_res
> @@ -2732,6 +2802,7 @@
>  #define      m_checkalignment _bsd_m_checkalignment
>  #define      m_clget _bsd_m_clget
>  #define      m_cljget _bsd_m_cljget
> +#define      M_CLOCK _bsd_M_CLOCK
>  #define      m_collapse _bsd_m_collapse
>  #define      m_copyback _bsd_m_copyback
>  #define      m_copydata _bsd_m_copydata
> @@ -3442,6 +3513,8 @@
>  #define      pgsigio _bsd_pgsigio
>  #define      phashinit _bsd_phashinit
>  #define      phashinit_flags _bsd_phashinit_flags
> +#define      pick_mode_by_dotclock _bsd_pick_mode_by_dotclock
> +#define      pick_mode_by_ref _bsd_pick_mode_by_ref
>  #define      pipe_dtor _bsd_pipe_dtor
>  #define      pipe_named_ctor _bsd_pipe_named_ctor
>  #define      pipeselwakeup _bsd_pipeselwakeup
> @@ -4614,6 +4687,7 @@
>  #define      soreceive_generic _bsd_soreceive_generic
>  #define      soreserve _bsd_soreserve
>  #define      sorflush _bsd_sorflush
> +#define      sort_modes _bsd_sort_modes
>  #define      sosend _bsd_sosend
>  #define      sosend_dgram _bsd_sosend_dgram
>  #define      sosend_generic _bsd_sosend_generic
> @@ -4722,6 +4796,7 @@
>  #define      sysctl_handle_uma_zone_max _bsd_sysctl_handle_uma_zone_max
>  #define      sysctl___hw _bsd_sysctl___hw
>  #define      sysctl___hw_bus _bsd_sysctl___hw_bus
> +#define      sysctl___hw_clock _bsd_sysctl___hw_clock
>  #define      sysctl___hw_fdt _bsd_sysctl___hw_fdt
>  #define      sysctl___hw_pci _bsd_sysctl___hw_pci
>  #define      sysctl___hw_sdhci _bsd_sysctl___hw_sdhci
> @@ -5450,6 +5525,20 @@
>  #define      uuid_ether_add _bsd_uuid_ether_add
>  #define      uuid_ether_del _bsd_uuid_ether_del
>  #define      vht80_chan_ranges _bsd_vht80_chan_ranges
> +#define      vesagtf_mode _bsd_vesagtf_mode
> +#define      vesagtf_mode_params _bsd_vesagtf_mode_params
> +#define      vid_allocate _bsd_vid_allocate
> +#define      vid_configure _bsd_vid_configure
> +#define      videomode_count _bsd_videomode_count
> +#define      videomode_list _bsd_videomode_list
> +#define      vid_find_adapter _bsd_vid_find_adapter
> +#define      vid_get_adapter _bsd_vid_get_adapter
> +#define      vid_get_switch _bsd_vid_get_switch
> +#define      vid_init_struct _bsd_vid_init_struct
> +#define      vid_register _bsd_vid_register
> +#define      vid_release _bsd_vid_release
> +#define      vidsw _bsd_vidsw
> +#define      vid_unregister _bsd_vid_unregister
>  #define      vlan_cookie_p _bsd_vlan_cookie_p
>  #define      vlan_devat_p _bsd_vlan_devat_p
>  #define      vlan_input_p _bsd_vlan_input_p
> diff --git a/rtemsbsd/include/rtems/bsd/local/clknode_if.h 
> b/rtemsbsd/include/rtems/bsd/local/clknode_if.h
> new file mode 100644
> index 00000000..97f4c956
> --- /dev/null
> +++ b/rtemsbsd/include/rtems/bsd/local/clknode_if.h
> @@ -0,0 +1,92 @@
> +/*
> + * This file is @generated automatically.
> + * Do not modify anything in here by hand.
> + *
> + * Created from source file
> + *   freebsd-org/sys/dev/extres/clk/clknode_if.m
> + * with
> + *   makeobjops.awk
> + *
> + * See the source file for legal information
> + */
> +
> +
> +#ifndef _clknode_if_h_
> +#define _clknode_if_h_
> +
> +
> +struct clknode;
> +
> +/** @brief Unique descriptor for the CLKNODE_INIT() method */
> +extern struct kobjop_desc clknode_init_desc;
> +/** @brief A function implementing the CLKNODE_INIT() method */
> +typedef int clknode_init_t(struct clknode *clk, device_t dev);
> +
> +static __inline int CLKNODE_INIT(struct clknode *clk, device_t dev)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_init);
> +     rc = ((clknode_init_t *) _m)(clk, dev);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the CLKNODE_RECALC_FREQ() method */
> +extern struct kobjop_desc clknode_recalc_freq_desc;
> +/** @brief A function implementing the CLKNODE_RECALC_FREQ() method */
> +typedef int clknode_recalc_freq_t(struct clknode *clk, uint64_t *freq);
> +
> +static __inline int CLKNODE_RECALC_FREQ(struct clknode *clk, uint64_t *freq)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_recalc_freq);
> +     rc = ((clknode_recalc_freq_t *) _m)(clk, freq);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the CLKNODE_SET_FREQ() method */
> +extern struct kobjop_desc clknode_set_freq_desc;
> +/** @brief A function implementing the CLKNODE_SET_FREQ() method */
> +typedef int clknode_set_freq_t(struct clknode *clk, uint64_t fin,
> +                               uint64_t *fout, int flags, int *done);
> +
> +static __inline int CLKNODE_SET_FREQ(struct clknode *clk, uint64_t fin,
> +                                     uint64_t *fout, int flags, int *done)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_freq);
> +     rc = ((clknode_set_freq_t *) _m)(clk, fin, fout, flags, done);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the CLKNODE_SET_GATE() method */
> +extern struct kobjop_desc clknode_set_gate_desc;
> +/** @brief A function implementing the CLKNODE_SET_GATE() method */
> +typedef int clknode_set_gate_t(struct clknode *clk, bool enable);
> +
> +static __inline int CLKNODE_SET_GATE(struct clknode *clk, bool enable)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_gate);
> +     rc = ((clknode_set_gate_t *) _m)(clk, enable);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the CLKNODE_SET_MUX() method */
> +extern struct kobjop_desc clknode_set_mux_desc;
> +/** @brief A function implementing the CLKNODE_SET_MUX() method */
> +typedef int clknode_set_mux_t(struct clknode *clk, int idx);
> +
> +static __inline int CLKNODE_SET_MUX(struct clknode *clk, int idx)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_mux);
> +     rc = ((clknode_set_mux_t *) _m)(clk, idx);
> +     return (rc);
> +}
> +
> +#endif /* _clknode_if_h_ */
> diff --git a/rtemsbsd/include/rtems/bsd/local/fb_if.h 
> b/rtemsbsd/include/rtems/bsd/local/fb_if.h
> new file mode 100644
> index 00000000..7b97028f
> --- /dev/null
> +++ b/rtemsbsd/include/rtems/bsd/local/fb_if.h
> @@ -0,0 +1,45 @@
> +/*
> + * This file is @generated automatically.
> + * Do not modify anything in here by hand.
> + *
> + * Created from source file
> + *   freebsd-org/sys/dev/fb/fb_if.m
> + * with
> + *   makeobjops.awk
> + *
> + * See the source file for legal information
> + */
> +
> +
> +#ifndef _fb_if_h_
> +#define _fb_if_h_
> +
> +/** @brief Unique descriptor for the FB_PIN_MAX() method */
> +extern struct kobjop_desc fb_pin_max_desc;
> +/** @brief A function implementing the FB_PIN_MAX() method */
> +typedef int fb_pin_max_t(device_t dev, int *npins);
> +
> +static __inline int FB_PIN_MAX(device_t dev, int *npins)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)dev)->ops,fb_pin_max);
> +     rc = ((fb_pin_max_t *) _m)(dev, npins);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the FB_GETINFO() method */
> +extern struct kobjop_desc fb_getinfo_desc;
> +/** @brief A function implementing the FB_GETINFO() method */
> +typedef struct fb_info * fb_getinfo_t(device_t dev);
> +
> +static __inline struct fb_info * FB_GETINFO(device_t dev)
> +{
> +     kobjop_t _m;
> +     struct fb_info * rc;
> +     KOBJOPLOOKUP(((kobj_t)dev)->ops,fb_getinfo);
> +     rc = ((fb_getinfo_t *) _m)(dev);
> +     return (rc);
> +}
> +
> +#endif /* _fb_if_h_ */
> diff --git a/rtemsbsd/include/rtems/bsd/local/hdmi_if.h 
> b/rtemsbsd/include/rtems/bsd/local/hdmi_if.h
> new file mode 100644
> index 00000000..fc23c801
> --- /dev/null
> +++ b/rtemsbsd/include/rtems/bsd/local/hdmi_if.h
> @@ -0,0 +1,71 @@
> +/*
> + * This file is @generated automatically.
> + * Do not modify anything in here by hand.
> + *
> + * Created from source file
> + *   freebsd-org/sys/dev/hdmi/hdmi_if.m
> + * with
> + *   makeobjops.awk
> + *
> + * See the source file for legal information
> + */
> +
> +
> +#ifndef _hdmi_if_h_
> +#define _hdmi_if_h_
> +
> +
> +#include <sys/eventhandler.h>
> +
> +typedef void (*hdmi_event_hook)(void *, device_t, int);
> +EVENTHANDLER_DECLARE(hdmi_event, hdmi_event_hook);
> +
> +#define HDMI_EVENT_CONNECTED 0
> +
> +/** @brief Unique descriptor for the HDMI_GET_EDID() method */
> +extern struct kobjop_desc hdmi_get_edid_desc;
> +/** @brief A function implementing the HDMI_GET_EDID() method */
> +typedef int hdmi_get_edid_t(device_t dev, uint8_t **edid,
> +                            uint32_t *edid_length);
> +
> +static __inline int HDMI_GET_EDID(device_t dev, uint8_t **edid,
> +                                  uint32_t *edid_length)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_get_edid);
> +     rc = ((hdmi_get_edid_t *) _m)(dev, edid, edid_length);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the HDMI_SET_VIDEOMODE() method */
> +extern struct kobjop_desc hdmi_set_videomode_desc;
> +/** @brief A function implementing the HDMI_SET_VIDEOMODE() method */
> +typedef int hdmi_set_videomode_t(device_t dev,
> +                                 const struct videomode *videomode);
> +
> +static __inline int HDMI_SET_VIDEOMODE(device_t dev,
> +                                       const struct videomode *videomode)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_set_videomode);
> +     rc = ((hdmi_set_videomode_t *) _m)(dev, videomode);
> +     return (rc);
> +}
> +
> +/** @brief Unique descriptor for the HDMI_ENABLE() method */
> +extern struct kobjop_desc hdmi_enable_desc;
> +/** @brief A function implementing the HDMI_ENABLE() method */
> +typedef int hdmi_enable_t(device_t dev, int onoff);
> +
> +static __inline int HDMI_ENABLE(device_t dev, int onoff)
> +{
> +     kobjop_t _m;
> +     int rc;
> +     KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_enable);
> +     rc = ((hdmi_enable_t *) _m)(dev, onoff);
> +     return (rc);
> +}
> +
> +#endif /* _hdmi_if_h_ */
> diff --git a/rtemsbsd/local/clknode_if.c b/rtemsbsd/local/clknode_if.c
> new file mode 100644
> index 00000000..6f1c0ba3
> --- /dev/null
> +++ b/rtemsbsd/local/clknode_if.c
> @@ -0,0 +1,40 @@
> +#include <machine/rtems-bsd-kernel-space.h>
> +
> +/*
> + * This file is @generated automatically.
> + * Do not modify anything in here by hand.
> + *
> + * Created from source file
> + *   freebsd-org/sys/dev/extres/clk/clknode_if.m
> + * with
> + *   makeobjops.awk
> + *
> + * See the source file for legal information
> + */
> +
> +#include <sys/param.h>
> +#include <sys/queue.h>
> +#include <sys/kernel.h>
> +#include <sys/kobj.h>
> +#include <rtems/bsd/local/clknode_if.h>
> +
> +struct kobjop_desc clknode_init_desc = {
> +     0, { &clknode_init_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc clknode_recalc_freq_desc = {
> +     0, { &clknode_recalc_freq_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc clknode_set_freq_desc = {
> +     0, { &clknode_set_freq_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc clknode_set_gate_desc = {
> +     0, { &clknode_set_gate_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc clknode_set_mux_desc = {
> +     0, { &clknode_set_mux_desc, (kobjop_t)kobj_error_method }
> +};
> +
> diff --git a/rtemsbsd/local/fb_if.c b/rtemsbsd/local/fb_if.c
> new file mode 100644
> index 00000000..ceb57e4b
> --- /dev/null
> +++ b/rtemsbsd/local/fb_if.c
> @@ -0,0 +1,30 @@
> +#include <machine/rtems-bsd-kernel-space.h>
> +
> +/*
> + * This file is @generated automatically.
> + * Do not modify anything in here by hand.
> + *
> + * Created from source file
> + *   freebsd-org/sys/dev/fb/fb_if.m
> + * with
> + *   makeobjops.awk
> + *
> + * See the source file for legal information
> + */
> +
> +#include <sys/param.h>
> +#include <sys/queue.h>
> +#include <sys/kernel.h>
> +#include <sys/kobj.h>
> +#include <sys/bus.h>
> +#include <sys/fbio.h>
> +#include <rtems/bsd/local/fb_if.h>
> +
> +struct kobjop_desc fb_pin_max_desc = {
> +     0, { &fb_pin_max_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc fb_getinfo_desc = {
> +     0, { &fb_getinfo_desc, (kobjop_t)kobj_error_method }
> +};
> +
> diff --git a/rtemsbsd/local/hdmi_if.c b/rtemsbsd/local/hdmi_if.c
> new file mode 100644
> index 00000000..847f7d4d
> --- /dev/null
> +++ b/rtemsbsd/local/hdmi_if.c
> @@ -0,0 +1,35 @@
> +#include <machine/rtems-bsd-kernel-space.h>
> +
> +/*
> + * This file is @generated automatically.
> + * Do not modify anything in here by hand.
> + *
> + * Created from source file
> + *   freebsd-org/sys/dev/hdmi/hdmi_if.m
> + * with
> + *   makeobjops.awk
> + *
> + * See the source file for legal information
> + */
> +
> +#include <sys/param.h>
> +#include <sys/queue.h>
> +#include <sys/kernel.h>
> +#include <sys/kobj.h>
> +#include <sys/bus.h>
> +#include <dev/videomode/videomode.h>
> +#include <dev/videomode/edidvar.h>
> +#include <rtems/bsd/local/hdmi_if.h>
> +
> +struct kobjop_desc hdmi_get_edid_desc = {
> +     0, { &hdmi_get_edid_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc hdmi_set_videomode_desc = {
> +     0, { &hdmi_set_videomode_desc, (kobjop_t)kobj_error_method }
> +};
> +
> +struct kobjop_desc hdmi_enable_desc = {
> +     0, { &hdmi_enable_desc, (kobjop_t)kobj_error_method }
> +};
> +
> diff --git a/rtemsbsd/sys/dev/iicbus/rtems-i2c.c 
> b/rtemsbsd/sys/dev/iicbus/rtems-i2c.c
> index 61881e74..5dfd4ab8 100644
> --- a/rtemsbsd/sys/dev/iicbus/rtems-i2c.c
> +++ b/rtemsbsd/sys/dev/iicbus/rtems-i2c.c
> @@ -211,5 +211,5 @@ static driver_t rtems_i2c_driver = {
>  
>  static devclass_t rtems_i2c_devclass;
>  DRIVER_MODULE(rtems_i2c, simplebus, rtems_i2c_driver, rtems_i2c_devclass, 0, 
> 0);
> -DRIVER_MODULE(iicbus, rtems_i2c, iicbus_driver, iicbus_devclass, 0, 0);
> -DRIVER_MODULE(ofw_iicbus, rtems_i2c, ofw_iicbus_driver, ofw_iicbus_devclass, 
> 0, 0);
> +//DRIVER_MODULE(iicbus, rtems_i2c, iicbus_driver, iicbus_devclass, 0, 0);
> +//DRIVER_MODULE(ofw_iicbus, rtems_i2c, ofw_iicbus_driver, 
> ofw_iicbus_devclass, 0, 0);
> 

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to