Fork us on GitHub Follow us on Google+ Follow us on Facebook Follow us on Twitter

Opened 7 years ago

Closed 6 years ago

#415 closed enhancement (fixed)

Convert the ATA block device driver into a regular DDF driver

Reported by: Jakub Jermář Owned by:
Priority: major Milestone: 0.6.0
Component: helenos/bd/ata Version: mainline
Keywords: gsoc12, gsoc13 Cc:
Blocker for: Depends on:
See also: #447

Description (last modified by Martin Decky)

Convert the current HelenOS ata_bd service into a full-fledged DDF driver and implement some of the missing features.

Details
The current ata_bd driver is in fact a service spawned by the user when he/she needs to use the ATA block devices. The driver can handle ATA disks and ATAPI CD-ROMs, to some degree. It supports CHS, 28-bit and 48-bit LBA addressing and only uses PIO transfers. There is no support for interrupts, DMA or any other fancy features such as S.M.A.R.T, removable media, etc. One invocation of the driver services a single controller on one of the four standard I/O base addresses, which can have up to two disks attached. The current driver is ISA-based.

The goal of this ticket is to use the old driver as an inspiration / foundation for the new driver, which should be implemented as a new driver process using the HelenOS Device Driver Framework (DDF). The new driver should be at least equally capable as the old one and could be perhaps further enhanced to support e.g. PCI, interrupts and DMA. By virtue of being a DDF driver, there will be no limit on the number of supported controllers as all controllers will be discovered automatically and paired with the driver by DDF.

What Gains and Benefits will this bring?
We have been gradually replacing our limited legacy drivers with a new class of drivers that use our new Device Driver Framework. This brings us a whole set of benefits, among which are automatic device discovery and configuration, and a unifying approach to writing device drivers. While we already have a non-DDF ATA driver, it makes a very good sense to convert it to use DDF too. The ATA block devices are still very common, especially in virtual environments and on older hardware.
Difficulty
Medium
Required skills
A successful applicant will have good skills of programming in the C language and the ability to learn and use HelenOS-specific I/O functions.
Documentation
Possible mentors
HelenOS Core Team, Jiri Svoboda

Change History (10)

comment:1 Changed 7 years ago by Jakub Jermář

Keywords: gsoc12 added
Type: defectenhancement

comment:2 Changed 7 years ago by Jakub Jermář

Milestone: 0.5.0

comment:3 Changed 7 years ago by Jakub Jermář

Description: modified (diff)

comment:4 Changed 7 years ago by Jakub Jermář

Description: modified (diff)

comment:5 Changed 7 years ago by Jiri Svoboda

Description: modified (diff)

comment:6 Changed 7 years ago by Jiri Svoboda

See also: #447

Until #447 is resolved, removing the non-DDF ATA driver will prevent the system from booting from a persistent file system stored on an ATA drive, which is currently possible.

comment:7 Changed 6 years ago by Jakub Jermář

Keywords: gsoc13 added

comment:8 Changed 6 years ago by Vojtech Horky

Description: modified (diff)

comment:9 Changed 6 years ago by Martin Decky

Description: modified (diff)

comment:10 Changed 6 years ago by Jiri Svoboda

Milestone: 0.5.1
Resolution: fixed
Status: newclosed

Fixed in mainline,1848, mainline,1850, mainline,1855, mainline,1856.

ata_bd is now a DDF-based driver. It is enumerated by isa on the four legacy I/O addresses. No other new features added.

Note: See TracTickets for help on using tickets.