[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Microblaze + uCLinux+ SATA+ PCI



Hi,

Sheikh M.Farhan wrote:

This is my second attempt to get some help from this mailing list. My problem is a bit complex and having no previous exposure to microblaze and uCLinux, it makes my problem even worst.

I hope your have an understanding boss or supervisor - your project is certainly possible, but complex with fiddly implementation details.

I am working on an embedded storage system with real time data acquisition with storage on SATA HDD. The embedded system houses a Spartan 3 xc3s1000 FPGA, SATA controller (Silicon Image Sil3512), microcontroller, SATA HDD and A/D. I am supposed to store real time data at 40 MBytes/sec on the SATA HDD and later on retrieve the stored data. For that I have to have a File Management Sytem on board. Actually it is this need of FAT that has made me explore microblaze and uCLinux. I am exploring the possibility of putting microblaze on my FPGA, porting uCLinux on it and using FAT support of it to access SATA HDD.
The problems I am facing and need guidance on are:

Sounds like fun.

*The SATA controller that I am using talks through PCI interface. That means, I have to implement PCI interface on the FPGA side as well. This will be accomplished by using PCI bridge available at open-cores.org <http://open-cores.org>.

In principle, this is fine. You will need to interface the PCI core to the MicroBlaze OPB bus.

*The second problem is, I need to have the Linux driver for the controller, hopefully this will be arranged from Silicon Image.

SI devices seem to be pretty well supported with Linux drivers, this shouldn't be a big deal.

*The third problem is, how to get all these things integrated? Is it possible what I am saying?

This third problem is really your entire project. All of the constituent pieces exist, your job is to tie them all together.

Take it one step at a time. Break it into manageable pieces. Make good diagrams of the system architecture. Identify the distinct pieces of hardware and software. Think about the interfaces between these components. Some of these interfaces are already defined for you - for example the Linux PCI layer is standard code. You'll just to do some low level work to add support for the opencores PCI bridge.

Be sure, 40Mbyte/sec will be a challenge. You will almost certainly need to use DMA to achieve this, and so that will impact your interfacing of the opencores PCI bridge to the MicroBlaze/OPB (your interface will need to be DMA / bus master capable). Once you have a better understandign of your system architecture, you will want to do some rough calculations of bandwidth requierd at various parts in the system, to see if it is feasible.

I hope this helps.

Regards,

John

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/