right now, the way this is organized is basically "we have crates with different system components, and each crate contains arch specific modules for different platforms". it would probably make more sense to have an abstract HAL crate that provides the traits/abstract API each system architecture must provide, and then a crate for each platform broken down into modules for various hw components. this would make it easier to provide one single cross-platform HAL API to the kernel.
right now, the way this is organized is basically "we have crates with different system components, and each crate contains arch specific modules for different platforms". it would probably make more sense to have an abstract HAL crate that provides the traits/abstract API each system architecture must provide, and then a crate for each platform broken down into modules for various hw components. this would make it easier to provide one single cross-platform HAL API to the kernel.