Add cm hardware abstration framework