Skip to content

Document Bus Drivers (PCI, USB, PCMCI, SMBus) - Value 5 #59

@LSantha

Description

@LSantha

Bus Drivers (PCI, USB, PCMCI, SMBus)

Document the Bus Drivers (PCI, USB, PCMCI, SMBus) JNode concept in the wiki.

Value: 5

Concept Summary

Subsystem for enumerating and managing bus devices. Bus Drivers implement the low-level protocols for PCI, USB, PCMCIA, and SMBus, providing device enumeration and resource management for those buses.

Key Files

  • core/src/driver/org/jnode/driver/bus/pci/PCIBus.java
  • core/src/driver/org/jnode/driver/bus/pci/PCIBusAPI.java

Occurrences

~500 references in bus packages

Wiki Status

NOT documented (Driver-Framework.md covers broadly)

Bridges

Device manager, Hardware enumeration, Resource management

Instructions

Skill to Use

Use the [[update-wiki|update-wiki skill]] (load with skill({ name: "update-wiki" })) for understanding JNode internals.

Context Research

Study the bus driver packages to understand how PCI, USB, PCMCIA, and SMBus enumeration works. Review how devices on each bus are discovered and registered with DeviceManager. Research the bus-specific protocols and how they differ.

Update index.md

  • Pages table: Add entry for Bus-Drivers.md
  • Concepts → Pages table: Add "Bus Drivers" mapping to [[Bus-Drivers]]
  • Source Path → Pages table: Add mappings for core/src/driver/org/jnode/driver/bus/
  • Task Routing table: Add relevant task route(s)

Task Routing Suggestions

  1. Bus enumeration debugging: Understanding bus drivers is key for device discovery issues
  2. Adding new bus type: Bus driver architecture knowledge is essential
  3. Resource allocation: Bus drivers manage resources for connected devices

Wiki Page Structure

# Bus Drivers

> Subsystem for enumerating and managing bus devices (PCI, USB, PCMCIA, SMBus).

## Overview
2-3 paragraph explanation of the bus driver subsystem, the different bus types supported, and how they integrate with DeviceManager.

## Key Components
| Class / File | Role |
|---|---|
| `core/src/driver/org/jnode/driver/bus/pci/PCIBus.java` | PCI bus driver implementation |
| `core/src/driver/org/jnode/driver/bus/` | Bus driver package |

## How It Works
Explanation of how each bus type (PCI, USB, PCMCIA, SMBus) is enumerated, how devices are discovered, and how they're registered with the device framework.

## Gotchas & Non-Obvious Behavior
- Different buses have different discovery mechanisms
- Resource conflicts on buses must be handled
- Hot-plug support varies by bus type

## Related Pages
- [[DeviceManager]]
- [[Device-Discovery]]
- [[Resource-Management]]

Related Concepts: PCI, USB, PCMCIA, SMBus, Hardware enumeration, Device discovery

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions