Clicker Progression Report

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Clicker Progression Report

Post by Pype.Clicker »

yeah! i finally made it! when you now send a "read block 0" message to a block device, the service policy for "block" try to find out whether a driver is available or not for that device and load it if it wasn't ...

By the mean of feature demand and offer and features utility, the driver broker can automatically locate the best driver for a given device (that's a bit "rationale economic model", for those who know, but applied to device drivers :) ) ... all you have to say is:

atabus, ide driver: require "ataLBA"
atabus, ata device: support "ataLBA" (+32), support "ataUDMA" (+64)

and the broker will load the IDE driver properly.
if another driver had both ataLBA and ataUDMA, it would have been selected as its utility would have been 32+64=96 instead of 32 for a driver that solely implements LBA (i.e. requires it from the device or support it).

just a few more lines of code and i'll have my disk driver ready :)
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Clicker Progression Report

Post by Pype.Clicker »

Yeah, dudez! i got it!
my first sector read out of a IDE disk ever !

well, for now, it is not loaded at the right location in memory, but it is loaded nonetheless ...

Designing a good I/O requests queue for a multitasking environment is almost as complex as designing a scheduler itself, but i'm pretty proud of my design:

- any kind of command can be sent to the controller without changing the code that handle IRQs, because request have virtual function for issue()ing them and handle() them, thus you could extend my IDE driver to ATAPI command by just making another server that creates requests with setup/handle code for ATAPI :)

- requests can be handled() in any address space (not tested yet) because they map the buffers on demand ;)

- the requests scheduling is a hot-pluggable component, so you can decide to switch to another policy if you wish so (for instance because switching between interactive and batch mode :P )
Requests scheduling is also independent of the issue/handle of requests. It just needs to understand block numbers (for instance assume blocks with consecutive numbers can be accessed quicker than blocks that very different block numbers)

- the request scheduling policy can applied to any number of devices (so you can have the same policy for everything or different policies for different drives). By default FIFO policy is applied to all devices.

-- wooarf. n33d s0m3 sl33p, n0w ...

btw, i'd like to thanks Tim for his help & source code ... i finally not reused as much of it as i wished initially, but it was definitely a good HQ for operations.
slacker

Re:Clicker Progression Report

Post by slacker »

pype: do you use DMA/ ultra DMA to access IDE disks or port i/o?
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Clicker Progression Report

Post by Pype.Clicker »

no DMA yet ... because ISA dma is too hard to program for the "proof of concept" i'm trying here, and because i don't have the PCI support code needed for Ultra-DMA so far (moreover, BOCHS doesn't support ultradma afaik, so i would just end up with a component i would be unable to test :P)

But ultra-dma is planned (once i'll be sure the framework works) and i already have collected informations about how to do it.

So if someone has PCI support code, testmachine with UDMA drive and is willing to write an ultra-dma driver, clicker is ready to host your job ;)
Tim

Re:Clicker Progression Report

Post by Tim »

Sounds like you've got a pretty solid design there. Glad to hear that things are going well.

I've heard that Ultra DMA is pretty tricky to use, because it's not standardised -- each chipset has its own way of handling it.
slacker

Re:Clicker Progression Report

Post by slacker »

x86's need a new standard...everything would be alot more effecient
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Clicker Progression Report

Post by Pype.Clicker »

Tim Robinson wrote: I've heard that Ultra DMA is pretty tricky to use, because it's not standardised -- each chipset has its own way of handling it.
by looking at the linux sources, it didn't looked that unstandardized ... all i found weird was a "black list" with disk identifiers that the driver should refuse to use because of a bug in the way they handle ultra-dma ...
uri

Re:Clicker Progression Report

Post by uri »

There is www.t13.org/technical/e00149r0.pdf, a "standards proposal" for ATA host adapters. It includes a standardized DMA interface, but I don't know if it was adopted by the hardware maufacturers.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Clicker Progression Report

Post by Pype.Clicker »

it looks close to what i've read from intel's PIIX4 and linux drivers, but i need to compare with @home docs to be sure. Thanks for the link, though.

btw, if someone has a mirror of 0xfi.com dox, i would be interrested. the site looks being down ...
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Clicker Progression Report

Post by Solar »

slacker wrote: x86's need a new standard...everything would be alot more effecient
But then it wouldn't be x86 anymore, now would it?

There is nothing much speaking in favour of this architecture, except that it offers very good price / performance and availability. I strongly believe the computing world would be a better place without those...
Every good solution is obvious once you've found it.
Tim

Re:Clicker Progression Report

Post by Tim »

The cheapness and openness of the x86 architecture has done a great deal to make computing as pervasive as it is today. What other architecture could be so ubiquitous as to put a powerful computer in a large proportion of homes and offices?
slacker

Re:Clicker Progression Report

Post by slacker »

i think the architecture is all good and everything but i think there should be a printed and published standard out there for everything..
Tim

Re:Clicker Progression Report

Post by Tim »

There are published standards for most things, such as PCI, ATA/ATAPI, VGA, the CPU, etc. But devices such as newer video cards will never have published standards (at least not soon), because these specifications would release too many secrets to the industry.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Clicker Progression Report

Post by Solar »

Tim Robinson wrote: What other architecture could be so ubiquitous as to put a powerful computer in a large proportion of homes and offices?
A hen-and-egg problem.

When Microsoft stepped up to the plate, x86 was by no means "ubiquitous" or "powerful".

It was basically the unique market position Microsoft was allowed to take, thanks to the infamous IBM contract and the stunts they got away with in their OEM contracts.

From there, it was a tight feedback spiral between Microsoft and the hardware market.

What would have been the alternative? In the pre-Win95 era there were a number of strong contenders, especially Apple (68k/PPC).

(Honorable mention of the Amiga - 68k with PPC on the horizon - which however was already choking on Microsoft's death grip and management ignorance.)

What would have been different with two (or more) OS's, two (or more) hardware platforms?

Well, for one, I doubt the PCI "standard" would have become the mess it is, instead allowing to use PCI cards across x86/non-x86 platforms.

The only thing that would've been *really* different would have been the CPUs, since most of the rest is platform independant anyway. And I seriously doubt that Intel cares whether competition comes from Motorola or AMD.

What *would* have been different would have been a stronger drive towards OS usability. Most 80ies "home computer" OS had a better user experience than XP has today...
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Clicker Progression Report

Post by Pype.Clicker »

wow. seems like we have drifted a bit from a progression report ;)

btw i'm not sure the availability of a second OS (there were some, including OS/2, afaik) without the fact that DOS was shipped with virtually any PC sold by IBM or cloners.

Same apply for hardware alternative ? why would a new manufacturer decide to risk a new platform while there is a de-facto standard with a lot of people and software available for it and which it can clone at virtually no price (very low licence if any) ?
Post Reply