FreeCalypso > hg > fc-linux-patch
comparison README @ 7:cfe0a9b081ec
add README
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 11 Dec 2023 08:24:49 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
6:00a3400668db | 7:cfe0a9b081ec |
---|---|
1 Patches to Linux kernel ftdi_sio driver: add support for USB device 0403:7152 | |
2 ============================================================================= | |
3 | |
4 The present repository contains many different versions (made to apply against | |
5 different versions of Linux kernel) of the same series of patches to ftdi_sio | |
6 driver: adding support for a new, previously unsupported USB-serial device, | |
7 distinctly identified by a new, previously unsupported USB ID code. This ID | |
8 code (a PID out of FTDI's VID) has been officially allocated by FTDI to | |
9 Falconia Partners LLC. | |
10 | |
11 Q: What is the physical hardware in question? | |
12 | |
13 A: The one hardware device that already exists physically and requires the | |
14 present series of patches is the 'C' configuration of FreeCalypso DUART28 | |
15 adapter. However, we expect to have other hardware products in the near | |
16 future that will have the same control signal wiring, require the same | |
17 special handling from the Linux kernel, share the same USB ID code and be | |
18 supported by the same patch. | |
19 | |
20 Q: What is so special about this family of USB-serial devices? | |
21 | |
22 A: All devices that may share the same USB ID code and will therefore be | |
23 automatically supported by the same patch have the same essential properties: | |
24 it is a two-channel FTDI device (FT2232D or FT2232H) with Channel A wired | |
25 normally (100% standard ttyUSB handling is appropriate), but special wiring | |
26 on Channel B. The latter channel on these devices is a hybrid UART+GPIO | |
27 entity: a ttyUSB device is needed (the same binary serial protocols that are | |
28 spoken over TxD/RxD lines on this device are also spoken over myriad other | |
29 standard serial ports), but this ttyUSB device needs to operate with a | |
30 special quirk. The quirk is that standard POSIX etc behavior for this one | |
31 particular ttyUSB device needs to be intentionally broken: the usual | |
32 automatic assertion of DTR & RTS upon ttyUSB device open MUST be suppressed | |
33 - but these two signals must still be controllable via explicit TIOCMBIS and | |
34 TIOCMBIC ioctls, issued by custom userspace tools. | |
35 | |
36 Q: What behavioral changes are effected by the present series of patches to | |
37 Linux kernel ftdi_sio driver? | |
38 | |
39 A: The only change is purely additive: USB device 0403:7152, previously | |
40 unsupported, becomes supported and recognized as needing the special quirk | |
41 described in the previous catechism. Absolutely no behavioral changes are | |
42 applied to anything else other than this one USB device. | |
43 | |
44 Q: If the change does nothing more than add support for a new USB device, why | |
45 is it not mainlined? | |
46 | |
47 A: I, Mychaela Nadezhda Falconia, the designer of the hardware in question and | |
48 the author of the present patches, made several good-faith attempts over the | |
49 years to get these patches mainlined. The first formal submission attempt | |
50 was made back in 2020, multiple revision iterations were made, responding to | |
51 each and every nitpick from maintainers, multiple different approaches were | |
52 tried - but in the end a most senior Linux kernel maintainer took the | |
53 attitude of "screw you" toward our users, declaring that the hardware device | |
54 will not be supported as a matter of ideological principle. | |
55 | |
56 For more detailed background information and a deeper analysis of the problem, | |
57 please read the following article: | |
58 | |
59 https://www.freecalypso.org/hg/freecalypso-docs/file/tip/Linux-DTR-RTS-flaw | |
60 | |
61 Instructions for end users | |
62 ========================== | |
63 | |
64 Any end user who wishes to make use of the optional boot control feature of | |
65 FreeCalypso DUART28, or wishes to use any of our planned future FreeCalypso | |
66 hardware devices with the same wiring must apply our DUART28C support patches | |
67 locally to their Linux kernel - or more precisely, to their ftdi_sio driver. | |
68 Patches are provided that apply cleanly to all mainline kernels since 5.10 (the | |
69 first version in which a basic, much less controversial prerequisite patch was | |
70 merged), and to some stable kernel lines going back to 4.4.y. Please see | |
71 LTS-versions article for a table showing which patch version goes with which | |
72 long-term-supported versions of Linux kernel. |