~/talk

How Not to Write X86 Platform Drivers

links:none on file
slides:none on file

MinnowBoard work shows why x86 board files break the platform: a 462‑line board description hardcodes GPIO, LEDs and buttons and doesn’t scale. UART clocks required DMI matching to pick 48MHz vs 50MHz; MAC address storage uses an EFI variable and firmware writes the PCI config so drivers need no change; the PHY needed a PCI subsystem ID plus a per‑board platform init callback to flip reset, set 2ns RGMII delay and disable hibernate. ACPI with an _PRP method supplies named GPIO properties and lets upstream drivers reuse existing code; most fixes land in 3.12, GPIO board files remain rejected.

AI-written summary · about

  1. 0:00Start
  2. 6:45MinnowBoard: Overview
  3. 9:18MinnowBoard: GPIO
  4. 14:54MinnowBoard: Board-Files Bad
  5. 16:35MinnowBoard: UART
  6. 18:02MinnowBoard: Ethernet PHY
  7. 24:35MinnowBoard: Ethernet MAC
  8. 27:19Lessons: Platform
  9. 28:54Lessons: Complexity
  10. 35:16Lessons: It's Not About You!
  11. 36:15Agenda
  12. 36:33Take 2: GPIO Revisited
  13. 37:01Take 2: Identification and Description
  14. 43:01Take 2: ACPI Device Enumeration
  15. 45:33Take 2: ACPI Device Description
  16. 47:14Next Steps
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.