PlatformManager Exploration
Platform exploration is the process of discovering and setting up all devices on the platform based on the configuration file.
Exploration Workflow
- Load Configuration: Read platform-specific JSON config
- Package Management: Install BSP RPM and load kernel modules
- Discover Root PmUnit: Start from the root PmUnit (typically SCM)
- Recursive Exploration:
- Read IDPROM to identify PmUnit type
- Create PCI sub-devices (from FPGA)
- Create I2C devices
- Create symbolic links in
/run/devmap/ - Explore child slots recursively
- Publish Versions: Read and publish firmware/hardware versions
- Report Status: Log results and publish ODS counters
Exploration Status and Errors
Exploration status and errors can be found in platform_manager_service.thrift under ExplorationStatus and ExplorationError.
Querying Exploration Results
Via Thrift API
Other FBOSS services can query exploration results programmatically using the Service API:
getLastPMStatus()- Returns exploration status and failed devices mapgetAllPmUnits()- Returns all discovered PmUnits with their status
Via Logs
Exploration results are logged at INFO level:
Successfully explored <platform_name>...
Errors are logged at WARNING or ERROR level with device paths and error messages.