FreeCalypso > hg > freecalypso-hwlab
view linux-patch/README @ 99:2e35070d289f
fc-simtool: savebin command implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 25 Jan 2021 00:14:19 +0000 |
parents | d7a1e7a6d6ba |
children | 95c2a67e1219 |
line wrap: on
line source
This directory contains several versions of the Linux kernel ftdi_sio driver patch that adds support for FreeCalypso DUART28C adapter, i.e., the optional configuration of DUART28 with boot control outputs. The version in the orig-202007 directory was produced at the end of 2020-07, when DUART28 hardware was still being designed; this original version of the patch was created to test the idea and to prove it working (using a generic FT2232D board and an oscilloscope), and it was created with the mindset of a hardware engineer, rather than that of Linux kernel maintainers. This original patch version was made against kernel version 4.4.14 (the version used by the Mother), and it predates all later mainline submission and integration attempts. A patch series against then-current mainline was submitted to ftdi_sio driver maintainer Johan Hovold in 2020-09 for inclusion in mainline Linux. The preliminary patch adding support for FreeCalypso JTAG+UART USB ID codes was readily accepted and has since been propagated to several stable kernel branches (4.4.240, 4.9.240, 4.14.202, 4.19.152, 5.4.72, 5.8.16, 5.9.1 and mainline 5.10), but this patch by itself does not help in any way with DUART28C support. The remaining two patches from the original 2020-09 patch series (a preliminary patch fixing an oversight in the quirk interface and then the main patch of interest) were met with resistance, however, and the goal of bringing DUART28C support into mainline Linux is still in limbo as of 2020-12. Johan (the ftdi_sio driver maintainer who was the target of our initial pressure campaign to get the needed driver quirk accepted) has now proposed a generalized version of Mother Mychaela's original idea; this generalized version is just as good for our purposes because in the end it still recognizes our custom USB ID and sets the quirk flag which we require, but it also helps other potential users who may have similar needs, but who work with "any" serial port rather than a custom USB ID. The current version as of this writing of Johan's patch series implementing his proposed generalized solution is this one: https://lore.kernel.org/linux-serial/X8iuCXYhOBVMGvXv@localhost/T/ However, the comments in that thread indicate that the maintainers seem intent on delaying this integration until 5.12 merge window if not even later, thus we are still months away from any hope of resolution. Because We The End Users cannot be expected to put our lives on hold and just sit and wait for kernel maintainers to get their act together, we need some immediate solution for our use right now - and the minpatch-* series presented here is our current best offering for end user purposes. 3 end user patch series versions are presented in minpatch-4.4.14, minpatch-4.4.240 and minpatch-4.9.240. 4.4.240 and 4.9.240 already include the preliminary JTAG+UART USB ID code support patch (which serves mainly as an anchor marking the place where the new DUART28C USB ID code needs to go in ftdi_sio_ids.h and in the ftdi_sio.c ID code table), but 4.4.14 predates this patch by a few years, thus minpatch-4.4.14 includes a backport of this preliminary patch as well. After this preliminary patch, each minpatch-* version includes the quirk port_probe patch and the main patch adding DUART28C support with the needed quirk. These latter patches are the closest version we have to what we are hoping to see eventually merged into mainline, and they have already undergone rounds of revision in response to maintainer Johan's criticism - but this "minimal patch" version is limited to just the ftdi_sio driver, not extending into more generic layers, hence the actual quirk flag is implemented inside ftdi_sio, not fully generalized like it is in the version which we are hoping to see merged into mainline in future months/years.