Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jul 2018 14:27:14 +0530
From:      Rajesh Kumar <rajfbsd@gmail.com>
To:        freebsd-drivers@freebsd.org
Subject:   Any read materials to understand uart device driver architecture in FreeBSD.
Message-ID:  <CAAO%2BANMBNn9bJoYBq28nK-TaHZ05sPkrGfK7HadZSr8jVz6x%2BA@mail.gmail.com>

index | next in thread | raw e-mail

Hi,

I am trying to understand the uart device drivers architecture in FreeBSD.
I see the following set of file in sys/dev/uart.

a) uart_bus_xxxx -> one file each for acpi, pci, isa bus etc.,
b) uart_core - uart common routines
c) uart_cpu_xxxx -> one file each for x86, powerpc etc.,
d) uart_dev_xxxx -> I assume this is one file each for seperate uart IP's.
e) some other files.

Questions :
a) Is there any good read materials to understand the uart driver
architecutre (from code perspective) in FreeBSD?
b) If I need to write a new uart driver for a uart IP, what are the things
to do? I assume i need to have a seperate uart_dev_* file and need to add
that device ID in appropriate uart_bus_* file? what other things I need to
take care?
c) In uart_bus_acpi.c and uart_bus_isa.c, I see the definitions of
acpi_ns8250_ids and isa_ns8250_ids list.  Where are those ID's derived
from? I understand PNP ID, ACPI ID and PCI Vendor and Device ID, but not
sure about those above mentioned IDs?

Thanks,
Rajesh.


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAO%2BANMBNn9bJoYBq28nK-TaHZ05sPkrGfK7HadZSr8jVz6x%2BA>