I saw edk2 PR to handle PPTT using ConfigurationManager framework.
How bit waste of potential CM is. Something what could be serious helper became yet another board specific code dump.
There should be CM->GeneratePPTT(data) function which either go through hardware to detect cores/caches/clusters/topology or gets it in a structure/object/array.
Instead is yet another code drop which generates whole PPTT by hand.