xref: /openbmc/pldm/docs/pdr_implementation.md (revision 571d7d44635580ee7bb29e84ee3114c472d3fc61)
1# PDR Implementation
2
3While PLDM Platform Descriptor Records (PDRs) are mostly static information,
4they can vary across platforms and systems. For this reason, platform specific
5PDR information is encoded in platform specific JSON files. JSON files must be
6named based on the PDR type number. For example a state effecter PDR JSON file
7will be named 11.json. The JSON files may also include information to enable
8additional processing (apart from PDR creation) for specific PDR types, for eg
9mapping an effecter id to a D-Bus object.
10
11The PLDM responder implementation finds and parses PDR JSON files to create the
12PDR repository. Platform specific PDR modifications would likely just result in
13JSON updates. New PDR type support would require JSON updates as well as PDR
14generation code. The PDR generator is a map of PDR Type -> C++ lambda to create
15PDR entries for that type based on the JSON, and to update the central PDR repo.
16