PCI Question(s)

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.
quok
Member
Member
Posts: 490
Joined: Wed Oct 18, 2006 10:43 pm
Location: Kansas City, KS, USA

Re: PCI Question(s)

Post by quok »

quok wrote:The 3512 is a 2 port SATA2 controller that can handle JBOD, RAID 0 and 1.
Eh, seems I was wrong, the 3512 is SATA 1.0, so SATA-150, not SATA2, as discovered at the manufacturer's webpage about the 3512: http://www.sci-worx.com/products/product.aspx?id=29

Here's the page for the 3112: http://www.sci-worx.com/products/product.aspx?id=63

It seems the main differences are the 3512 is a smaller package (to be compliant with PCI 2.3), supports ATAPI devices, and is hot pluggable.

W00t, and here's there datasheet for the 3512: http://www.sci-worx.com/docs/SiI-DS-0102-D.pdf

It looks like there's also datasheets for the following Sil storage chips:
  • SiI0680A - PCI to 2 Port IDE/PATA
  • SiI3114 - PCI to 4 Port SATA150
  • SiI3124 - PCI/PCI-X to 4 Port SATA300
  • SiI3132 - PCI Express (1x) to 2 Port SATA300
  • SiI3531 - PCI Express (1x) to 1 Port SATA300
  • SiI3726 - 5 Drive SATA300
That's all their currently marketed SATA-to-PATA bridges, PATA controllers, SATA controllers, and SATA Port Multipliers, but none of their RAID Storage Processors. I haven't read any of the datasheets yet (I'm downloading them all now for safekeeping), but I imagine they're all similar enough that they could easily be handled by a single driver.

I hope someone finds this helpful. :)
User avatar
Omega
Member
Member
Posts: 250
Joined: Sun May 25, 2008 2:04 am
Location: United States
Contact:

Re: PCI Question(s)

Post by Omega »

Great find and good news; it appears this isn't going to be very hard after all. It differs only slightly from what I have already produced. I don't like the way many of the BSD functions are written, so I will take some time porting my own, as I haven't but a few of them written already and need to include them. I am on page 34 of 134 of that data sheet... haha... slow reader. So far it jives quite well with what I already have and expands on what I need, I love this data sheet... I giggle inside every time I learn something new whilst envisioning what crazy new thing I will do next.. haha. Well, at any rate; for those watching this thread, I should have something for you in a couple weeks, maybe three to four, due to labor day coming up and classes. I have a quiz next Tuesday and some other crap all school related drawing neigh (can I say neigh --OK, near), so bare with me. Just a heads up; however, this time around I am not going to put as much time in showing code. The reason is because my code will be for a specific driver and ONLY that driver (for now until release), so during ALPHA-BETA, which means that my code would be much too ?proprietary?, no... *custom* to post as an example for the masses. Therefore, I will post an abstract view of the PCI Bus and how to interact with DEVICES, not a device. This includes setup and usage. I will of course offer a more broad fully working example which I believe is destined for a BSD license; we will see. Thanks again for finding that data sheet man, you definitely rock hardcore!!
Free energy is indeed evil for it absorbs the light.
User avatar
Omega
Member
Member
Posts: 250
Joined: Sun May 25, 2008 2:04 am
Location: United States
Contact:

Re: PCI Question(s)

Post by Omega »

Hi. Been working on this driver very slowly as school has taken up a lot of my time, but I have some free time and wanted to ask a quick question:

Does this PCI stuff work as so:

Basically, I write to Base Address 0 (primary IO address) and read the response from Base Address 5 (Memory Address), right?

Thanks
Free energy is indeed evil for it absorbs the light.
Post Reply