SoCDescriptor holds anything related to chip's placement, locations , etc. Harvesting logic should be moved to it.
SoCDescriptor's constructor should accept Arch and harvesting info.
Try to remove harvesting related functions from tt_SiliconDriver.
Ones which are still needed should be accessed through tt_SiliconDriver::get_soc_descriptor()
Related to https://docs.google.com/drawings/d/1-m1azdsBqMA0A6ATYRMfkhyeuOJuGCEI62N5a96LXj0/edit?usp=sharing
SoCDescriptor holds anything related to chip's placement, locations , etc. Harvesting logic should be moved to it. SoCDescriptor's constructor should accept Arch and harvesting info. Try to remove harvesting related functions from tt_SiliconDriver. Ones which are still needed should be accessed through tt_SiliconDriver::get_soc_descriptor()