CPU_ELAN(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

πŸ’– NAME πŸ’–

okay bestie, this is CPU_ELAN(4) from the i386 Kernel Interfaces Manual, and it's literally all about AMD Elan 520 CPU support. no cap, this page is the Elan girlie's whole personality. πŸ¦‹

✨ SYNOPSIS ✨

here's the lineup, verbatim, because we do not mess with the code:

options CPU_ELAN
options CPU_ELAN_PPS
options CPU_ELAN_XTAL
machdep.elan_gpio_config
machdep.elan_freq
options CPU_SOEKRIS

and the quick rundown:

  • options CPU_ELAN β€” turns on AMD Elan 520 CPU support.
  • options CPU_ELAN_PPS β€” enables precision timestamping, explained below bestie.
  • options CPU_ELAN_XTAL β€” sets the CPU clock crystal frequency in Hz, together with machdep.elan_freq.
  • machdep.elan_gpio_config β€” the sysctl(8) variable for configuring GPIO pins.
  • machdep.elan_freq β€” the sysctl(8) variable for the CPU clock crystal frequency in Hz; default is 33333333 Hz.
  • options CPU_SOEKRIS β€” adds extra tailoring for Soekris Engineering 45xx embedded computers.

🌸 DESCRIPTION 🌸

The options CPU_ELAN enables support for the AMD Elan 520 CPU. πŸ’…

A device /dev/elan-mmcr exports the MMCR register bank to userland using mmap(2). fancy, right? πŸ’–

The i8254 timer will be adjusted to the slightly unorthodox frequency 1189161 Hz (32768 * 45 * 25 / 31) employed by the Elan. not me doing math in public, but there it is. 😭

A timecounter named β€œELAN” is implemented using general purpose timer 2, but it will not be usable unless HZ is configured at 150 or higher. This timecounter is much better than the β€œi8254” timecounter and should be used at all times. periodt. πŸ‘‘

The machdep.elan_gpio_config sysctl(8) variable enables configuration of the GPIO pins of the CPU. The string must be exactly 32 characters long. here's the character lore:

  • - means the GPIO is unavailable.
  • l (lower-case ell) configures a led(4) device (active low).
  • L configures a led(4) device (active high).
  • . means no configuration for this GPIO.

These led(4) devices will be named /dev/led/gpio%d. For meaning of P, e and E, see under options CPU_ELAN_PPS. iykyk. πŸŽ€

The options CPU_ELAN_XTAL and the machdep.elan_freq sysctl(8) variable can be used to set the CPU clock crystal frequency in Hz. The default is 33333333 Hz. slay. ⭐

The options CPU_ELAN_PPS enables precision timestamping using the RFC2783 PPS-API via the /dev/elan-mmcr device. The resolution will be approximately 125 nsec and the precision Β± 125 nsec. (For 125 nsec read β€œ4 / CPU clock crystal frequency”.) πŸ’€

The input signal must be connected to the TMR1IN pin and a GPIO pin. The GPIO pin must be configured with a P in machdep.elan_gpio_config. πŸ¦‹

In addition, one GPIO pin can be configured with either e (active low) or E (active high) to become a β€œecho” output of the input signal.

bestie, please notice: this signal is not suitable for calibration. πŸ™ˆ

If the options CPU_SOEKRIS is given, the support will additionally be tailored to the Soekris Engineering 45xx series of embedded computers. The β€œerror” led will be configured (as /dev/led/error) and the GPIO pins which are not available will be disabled. iconic behavior honestly. 🫢

πŸ¦‹ SEE ALSO πŸ¦‹

⭐ HISTORY ⭐

The CPU_ELAN code first appeared in FreeBSD 4.7. vintage, lowkey. 🌈

πŸ‘‘ AUTHORS πŸ‘‘

Poul-Henning Kamp <phk@FreeBSD.org>


okay that's the whole page, bestie β€” source/version vibes: Debian, dated November 23, 2003, and the page is CPU_ELAN(4). slay, bye πŸ«ΆπŸ’…

πŸ“¦ where this page comes from