PPC(4)
π PPC(4) β the parallel port chipset driver, bestie edition π
okay so this is the ppc page from the Kernel Interfaces Manual (section 4, kernel interfaces, iykyk) β and yeah it's from the Debian distro of this manpage, dated March 5, 1998, we'll get to that at the end π
β¨ NAME β¨
ppc β the Parallel Port Chipset driver π¨οΈβ¨
πΈ SYNOPSIS πΈ
device ppc
In /boot/device.hints:
hint.ppc.0.at="isa"
hint.ppc.0.irq="7"
For one or more PPBUS busses:
device ppbus
π¦ DESCRIPTION π¦
So the ppc driver is the low-level support girlie for a whole bunch of parallel port chipsets, working underneath the ppbus(4) system. She's down there in the trenches fr fr π
During the probe phase, ppc goes around detecting parallel port chipsets and initializing private data according to their operating mode: COMPATIBLE, NIBBLE, PS/2, EPP, ECP and other mixed modes. And if a mode gets provided at startup through the flags variable of the boot interface, then the operating mode of the chipset is forced according to flags and whatever modes the hardware actually supports. no cap π
During the attach phase, ppc allocates a ppbus structure, initializes it, and calls the ppbus attach function. it's giving main character energy tbh π
β Supported flags β
bits 0-3: chipset forced mode(s) π
PPB_COMPATIBLE 0x0 /* Centronics compatible mode */
PPB_NIBBLE 0x1 /* reverse 4 bit mode */
PPB_PS2 0x2 /* PS/2 byte mode */
PPB_EPP 0x4 /* EPP mode, 32 bit */
PPB_ECP 0x8 /* ECP mode */
- And any mixed values, bestie β mix and match, she's flexible π
bit 4: EPP protocol (0EPP 1.9,1EPP 1.7)bit 5: activate IRQ (1IRQ disabled,0IRQ enabled) β yes the polarity is like that, don't come for me πbit 6: disable chipset specific detectionbit 7: disable FIFO detection
π Supported chipsets π
Some parallel port chipsets are explicitly supported, meaning detection and initialisation code was written according to their datasheets. obsessed with the diligence honestly π«Ά
- SMC
FDC37C665GTandFDC37C666GTchipsets - Natsemi
PC873xx-family (PC87332andPC87306) - Winbond
W83877xx-family (W83877FandW83877AF) - SMC-like chipsets with mixed modes (see
ppbus(4))
π§ Adding support to a new chipset π§
You may want to add support for the newest chipset your motherboard was sold with β like, she deserves to be seen too π
For the ISA bus, just retrieve the specs of the chipset and write the corresponding ppc_mychipset_detect() function. Then add an entry to the general purpose ppc_detect() function. that's it, that's the whole vibe β¨
Your ppc_mychipset_detect() function should ensure that if the mode field of the flags boot variable is not null, then:
- the operating mode is forced to the given mode, and
- no other mode is available, and
- the
ppb->ppb_avmfield contains the available modes of the chipset.
periodt π
π SEE ALSO π
ppbus(4), ppi(4), device.hints(5)
π HISTORY π
The ppc manual page first appeared in FreeBSD 3.0. a true icon, an OG, we stan a legend π
π«Ά AUTHORS π«Ά
This manual page was written by Nicolas Souchu. thank you for your service, king π«‘π
π BUGS π
The chipset detection process may corrupt your chipset configuration. π
Not me warning you about this β you may disable chipset specific detection by using the above flags (bit 6, bestie, go look π). Protect your chipset, protect your peace πΈ
and that's the whole page, fr fr π¦ this one came from Debian, with a date of March 5, 1998 β vintage, iconic, timeless. mwah πβ¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 1998, 1999, Nicolas Souchu
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms