Conceptual
Login

Drivers for Hardware That Cannot Announce Itself

Devices soldered into a board have no bus to enumerate them, so firmware describes them in a device tree: a node giving the hardware's address, its interrupt, and a compatible string naming what it is. A platform driver publishes a table of those strings and is probed when a matching node exists. The Rust interface is deliberately the same shape as the card-bus one, probe, id table, device-managed resources, which is the point: learn one bus and the others are mostly renaming. Most drivers on phones, routers and single-board computers are this kind.

Questions this Concept answers

  • Why do devices soldered onto a board need a device tree at all, when card-bus devices do not?