flat assembler
Message board for the users of flat assembler.

Index > OS Construction > Make assembly SSD driver

Author
Thread Post new topic Reply to topic
Fulgurance



Joined: 27 Nov 2017
Posts: 276
Fulgurance 27 Feb 2019, 21:44
Hello, when i search on OsDev website, i don't found any page about SSD driver.
Do you know any article about how to make SSD driver ?
Post 27 Feb 2019, 21:44
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20422
Location: In your JS exploiting you and your system
revolution 27 Feb 2019, 21:53
The driver is usually named for the interface. So you will need a SATA driver, or a PATA driver, or USB driver, etc.

The commands for SSDs and HDDs are basically the same. There are a few exceptions like TRIM which doesn't make sense for HDDs, and SEEK which doesn't make sense for SSDs.

And the SSD/HDD interfaces are also basically the same for self contained drives. Although some of the small M2 form factors might be different.
Post 27 Feb 2019, 21:53
View user's profile Send private message Visit poster's website Reply with quote
BAiC



Joined: 22 Mar 2011
Posts: 272
Location: California
BAiC 27 Feb 2019, 22:13
as revolution pointed out SSDs can be encased behind a SATA interface however there is also something more recent known as NVMe which is an SSD over PCIe

https://en.wikipedia.org/wiki/NVM_Express

the technical papers are available here:
https://nvmexpress.org

the documentation is quite complicated. that said; it's A LOT better than the native SATA spec. I still haven't written an SATA driver but I am considering an NVMe driver,
Post 27 Feb 2019, 22:13
View user's profile Send private message Visit poster's website Reply with quote
Fulgurance



Joined: 27 Nov 2017
Posts: 276
Fulgurance 15 Mar 2019, 20:51
Okay, and when i use AHCI, how i see if sata disk is an SSD ?
Post 15 Mar 2019, 20:51
View user's profile Send private message Reply with quote
BAiC



Joined: 22 Mar 2011
Posts: 272
Location: California
BAiC 16 Mar 2019, 15:12
AHCI is a controller for SATA compliant devices. it wouldn't specify whether the device is an SSD or HDD. since SATA is an extension of the ATA specification you'd have to read the "IDENTIFY DEVICE" data structure to find information about the device. I read the ATA spec out of curiosity and found the "Nominal media rotation rate" field which states the device is a solid state device when the field is 0x0001.

_________________
byte me.
Post 16 Mar 2019, 15:12
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.