Opened 5 days ago
Last modified 2 days ago
#19423 new enhancement
[DRIVER] Intel Volume Management Device(VMD) support to Haiku
Reported by: | kuku929 | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Drivers | Version: | R1/beta5 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
Haiku does not have a driver for the Intel VMD Raid controller. Without this driver many systems fail to boot because no boot partitions are found. A simple fix for most systems is to disable the controller in BIOS. complete RAID support is not necessary to begin with. Registering the hidden root ports is enough to find the boot partition.
Change History (5)
comment:1 by , 5 days ago
comment:2 by , 5 days ago
Component: | - General → Drivers |
---|
comment:3 by , 2 days ago
What config mechanism should be used? mechanism 1 seems to be a safe option but both freebsd and linux implementations use pcie ecam. In this case, should I try for ecam first and use mech. 1 as a backup like X86PCIController?
comment:4 by , 2 days ago
The controller has two memory space BARs and I need to allocate resources for them in the init_driver() function.
Looking at bus_manager/pci_root.cpp, the root node calls a get_range()[provided by the controller] inside the InitDomainData() function .
Do I need to fill out the get_range() function in my controller for allocating the BARs required? From what I gather, the InitDomainData() function allocates only IO Port memory. In short, I need an alternative to the bus_alloc_resource_any() function in freebsd
Are there any examples in the kernel that allocate resources for memory space BARs?
Hello, I am working on adding the driver right now. Created the ticket so that we can discuss more about the implementation details. There are two (mostly similar) ways to go about this:
here's the patch in freebsd: https://reviews.freebsd.org/D21383