The Processor abstraction should use logic that allows for it to determine whether environment is capable of generating a device bitstream. If the environment is not capable of generating the bitstream, it should search in a particular location, and upon its absence report an error to the user that the bitstream needs to be generated with a build environment. Additionally, the logic regarding interfaces should perhaps be refined here as well. This may involve an expansion of the config.json schema (like an SoC identifier for probing /proc/cpuinfo or similar) as well as a sidecar utility to determine the most appropriate interface and verify the necessary resources (bitstream or the tools to build them) are available. This might best be accomplished as static functions for the Processor class or a public static/singleton object the class can communicate with.
The
Processorabstraction should use logic that allows for it to determine whether environment is capable of generating a device bitstream. If the environment is not capable of generating the bitstream, it should search in a particular location, and upon its absence report an error to the user that the bitstream needs to be generated with a build environment. Additionally, the logic regarding interfaces should perhaps be refined here as well. This may involve an expansion of theconfig.jsonschema (like an SoC identifier for probing/proc/cpuinfoor similar) as well as a sidecar utility to determine the most appropriate interface and verify the necessary resources (bitstream or the tools to build them) are available. This might best be accomplished as static functions for theProcessorclass or a public static/singleton object the class can communicate with.