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 kuku929, 5 days ago

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:

  1. Linux: creates a new root bus with a new domain id.
  2. freebsd: creates a PCI-PCI bridge and exposes the disks in a secondary bus with a new domain id

here's the patch in freebsd: https://reviews.freebsd.org/D21383

comment:2 by waddlesplash, 5 days ago

Component: - GeneralDrivers

comment:3 by kuku929, 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 kuku929, 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?

comment:5 by waddlesplash, 2 days ago

We don't, no. In fact it's one of the oldest open tickets: #3.

Note: See TracTickets for help on using tickets.