Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Jun 2023 20:14:21 +0200
From:      John Hay <john@sanren.ac.za>
To:        freebsd-drivers@freebsd.org
Subject:   driver for OCP TAP TimeCard
Message-ID:  <CAGv8uaqfkAtECQy5jn=sXqR--dZYzVEuNkNhsxp9nAJe_=JhSQ@mail.gmail.com>

index | next in thread | raw e-mail

[-- Attachment #1 --]
Hi,

I'm thinking of writing a driver for the OCP TAP TimeCard, so I'm looking
for ideas on how to approach it.

The card is basically a PCIe card with a Xilinx FPGA at the core. It
implements a counter that is synchronised / disciplined to TAI using one or
more onboard GPS modules. The oscillator is also modular and can be
anything from a lowly free running temperature compensated oscillator
(TCXO), to oven controlled oscillators (OCXO), Rubidium and Cesium modules
that will discipline themselves to the GPS PPS signal.

Apart from the counter and other related functions, it also makes four
16550 UARTs, a I2C master, quad SPI master (same as the
dev/xilinx/axi_quad_spi) available. The quad SPI is to reprogram the Xilinx
flash, the UARTS to access the GPS and other modules that have a UART and
the I2C to access onboard sensors. They are all memory mapped inside a
single bar, 64k appart. It also has MSI interrupts with a seperate vector
for each function.

The "standard" functions (UART, I2C and SPI) are what I am wondering about.
One way to make them available is something like what the puc driver did. I
also saw dev/xilinx/xlnx_pcib.c that uses ofw and fdt, that might be a way,
but that seems to be more geared towards the embedded processors. So I was
wondering if there are other ways that might be better.

If you want to, you can read more about the card at the links below:
https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card
And the programming at:
https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card/FPGA/Open-Source/Implementation/Xilinx/TimeCard

Regards

John
--
John Hay

[-- Attachment #2 --]
<div dir="ltr"><div>Hi,</div><div><br></div><div>I&#39;m thinking of writing a driver for the OCP TAP TimeCard, so I&#39;m looking for ideas on how to approach it.</div><div><br></div><div>The card is basically a PCIe card with a Xilinx FPGA at the core. It implements a counter that is synchronised / disciplined to TAI using one or more onboard GPS modules. The oscillator is also modular and can be anything from a lowly free running temperature compensated oscillator (TCXO), to oven controlled oscillators (OCXO), Rubidium and Cesium modules that will discipline themselves to the GPS PPS signal.</div><div><br></div><div>Apart from the counter and other related functions, it also makes four 16550 UARTs, a I2C master, quad SPI master (same as the dev/xilinx/axi_quad_spi) available. The quad SPI is to reprogram the Xilinx flash, the UARTS to access the GPS and other modules that have a UART and the I2C to access onboard sensors. They are all memory mapped inside a single bar, 64k appart. It also has MSI interrupts with a seperate vector for each function.<br></div><div><br></div><div>The &quot;standard&quot; functions (UART, I2C and SPI) are what I am wondering about. One way to make them available is something like what the puc driver did. I also saw dev/xilinx/xlnx_pcib.c that uses ofw and fdt, that might be a way, but that seems to be more geared towards the embedded processors. So I was wondering if there are other ways that might be better.</div><div><div><br></div><div>If you want to, you can read more about the card at the links below:</div><div><a href="https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card">https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card</a></div><div>And the programming at:</div><div><a href="https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card/FPGA/Open-Source/Implementation/Xilinx/TimeCard">https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card/FPGA/Open-Source/Implementation/Xilinx/TimeCard</a></div><div><br></div></div><div>Regards</div><div><br></div><div>John</div><div>--</div><div>John Hay<br></div></div>
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGv8uaqfkAtECQy5jn=sXqR--dZYzVEuNkNhsxp9nAJe_=JhSQ>