[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: UART driver as kld - how?
From:       Milan Obuch <freebsd-hackers () dino ! sk>
Date:       2019-10-28 19:19:52
Message-ID: 20191028201952.20a92307 () zeta ! dino ! sk
[Download RAW message or body]

On Mon, 28 Oct 2019 12:10:05 -0700
Oleksandr Tymoshenko <gonzo@bluezbox.com> wrote:

> Milan Obuch (freebsd-hackers@dino.sk) wrote:

[ snip ]

> > Hi,
> > 
> > my problem is somewhere else - I am able to build kld, load and
> > unload it, but in all uart_dev_xxxx.c files I saw there are no
> > attach and detach function, so there must be something more to do.
> > On the other side, uart_core.o is already present in kernel, but
> > how should I make it work with newly loaded module? uart_bus_fdt.o
> > is linked in kernel too, and there are attach and detach function,
> > but how can my tables be added in list for it?  
> 
> From what I see in source code, UART drivers with FDT support are
> tied to the UART subsystem using  UART_FDT_CLASS_AND_DEVICE macro,
> that adds compat data (list of compatible strings for the driver
> with pointer to respective uart_class instance) to
> uart_fdt_class_and_device_set dataset. This dataset is then traversed
> by uart_fdt_find_device in uart_fdt_probe function.
> 
> You need:
> 
> - Add FDT node to device tree, with unique compatible property value
>   and "status" property set to "okay"
> - In you driver do something like:
> 
> static struct ofw_compat_data compat_data[] = {
>         {"xlnx,axilite",        (uintptr_t)&uart_axilite_class},
>         {NULL,                  (uintptr_t)NULL},
> };
> UART_FDT_CLASS_AND_DEVICE(compat_data);
> 
> xlnx,axilite in this case is just something I've just made up, you
> need to get the value from the vendor's DTS bindings documentation.
> 

Hi,

I found uart_dev_snps.c being somewhat near what I need. I am trying to
extract necessary bits from this and other files (what you wrote is
just one bit), it seems our docs are lacking in this area.

Regards,
Milan
_______________________________________________
freebsd-hackers@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic