Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
In order to safely copy between disk and host memory through a
programming interface, DMS must be aware of the hardware disk block size
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Move to the buffer given to us if there it is a read, move from the
buffer given to us if it is a write
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduces reading and writing of SATA drives via a bufargs structure to
describe the buffer as well as its attributes
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Implements command slot allocation, command submission and the ATA
identify command
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
No need to overcomplicate things for now, just use a simple vm_alloc_frame() for
DMA allocations
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Instead of using bitfields to say which kind identification we are
doing, it is a better idea to just use the lookup type directly as it is
more scalable
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
As we rely on resetting the controller via GHC.HR, we'll need to
re-establish a link with each implemented port to actually bring them
online.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces this initial bring-up logic for ports on the HBA.
We have allocated the command headers and each FIS RX area for each
respective command slot. More work to be done but this lays the
groundwork
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Abort if the host controller does not support 64-bit addressing
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Here we ensure that the port is in a stopped state, we have also added
port descriptor lists to keep track of each port.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
The global host control register (described by section 3.1.2 in the AHCI
spec) has an HBA reset bit which resets *everything* to a known state.
This means that after the reset, we'll have to indicate to the HBA that
we want to speak to it over the AHCI interface. We do it once before the
reset if needed, then we do it again after.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces this initial ahci_init() logic by resetting HBA
state on startup.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the support for having PCI specific device
drivers while providing a tiny AHCI stub that logs the existence of the
host bus adapter. The PCI bus itself has a driver for enumerating the
devices and associating a specific driver to it, the device drivers
themselve must advertise themselves to the PCI driver.
Signed-off-by: Ian Moffett <ian@osmora.org>
|