UART driver as kld - how?

Milan Obuch freebsd-hackers at dino.sk
Sat Nov 2 20:41:10 UTC 2019


On Mon, 28 Oct 2019 20:19:52 +0100
Milan Obuch <freebsd-hackers at dino.sk> wrote:

[ snip ]

> 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
>

After studying other uart_dev_xxx.c files I am able to create working
skeleton uart driver. I can compile it, kldload, and get some console
output. Right now, I hit another problem - uart framework is not
documented well, at least no man page is found in share/man directory.

My probe function is similar to that in uart_dev_snps.c file,
simplified, and I need to know what arguments should uart_bus_probe
function be invoked with. In many device drivers there are mostly
zeros, but this does not work for me.

Currently I am getting error 6, ENXIO, so I am not correctly attaching
my driver to device. Putting some printf here and there, I found test
at line 508, file uart_core.c, fails - sc->sc_class is null. Question
is, now, where and how should this field in this structure be
initialized...

I am sure I need docs/description for other functions as well, so if
anybody knows where good uart framework description could be found,
please advice. Or if somebody already has good understanding of it and
could help me with my issues, it wil be greatly appreciated.

Regards,
Milan


More information about the freebsd-hackers mailing list