Author Topic: PCI host bridge for ARM9 CPU  (Read 5844 times)

0 Members and 1 Guest are viewing this topic.

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
PCI host bridge for ARM9 CPU
« on: March 23, 2014, 03:31:57 am »
Hi,

I'm looking for a way to connect an ARM926EJ-S or similar/newer core based CPU to 32-bit PCI target IC, or a PCI-enabled CPU.
In particular, I'm interested in possibility to connect something like AT91SAM9* MCU/CPU to SIL3114/3512 SATA controller.
This is not a real project yet, just probing the ground before stepping in.
All ICs should be in QFP-like hand-solderable packages, QFN is allowed as last resort, BGAs are definitely not.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 28624
  • Country: nl
    • NCT Developments
Re: PCI host bridge for ARM9 CPU
« Reply #1 on: March 23, 2014, 12:42:30 pm »
PLX (http://www.plxtech.com/) has all kinds of PCI bridges. They have been the 'goto company' for these kinds of problems for over a decade.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2617
  • Country: 00
    • My random blog.
Re: PCI host bridge for ARM9 CPU
« Reply #2 on: March 23, 2014, 02:23:08 pm »
there is also free FPGA PCI bridge
http://opencores.org/project,pci,home

PCI is synchronous, but afair there is no clock speed requirements (dont know about jitter, there are some setup/hold time requirements).
You could try bitbanging it for LOLz. I think you should be able to at least get to reading config from the pci card.

If all you want is SATA connected to your board just go USB route.
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Online abyrvalg

  • Frequent Contributor
  • **
  • Posts: 851
  • Country: es
Re: PCI host bridge for ARM9 CPU
« Reply #3 on: March 23, 2014, 03:07:38 pm »
Use IDE-SATA bridge IC (Marvell has some in QFP, seen in first SATA HDDs). AT91SAM9260 has CompactFlash support, which is the same bus as IDE.
 

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
Re: PCI host bridge for ARM9 CPU
« Reply #4 on: March 23, 2014, 07:05:07 pm »
PLX (http://www.plxtech.com/) has all kinds of PCI bridges. They have been the 'goto company' for these kinds of problems for over a decade.

Can I use PCI9054 with bus master function for this purpose? Will this be enough? Will this bridge work for point-to-point (one device on the bus) communication instead of full-blown PCI host bridge like ones that live in north bridges of PCs' motherboards? Haven't inspected PCI bus protocol in details yet, any quick information is valuable.
 

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
Re: PCI host bridge for ARM9 CPU
« Reply #5 on: March 23, 2014, 07:12:03 pm »
there is also free FPGA PCI bridge
http://opencores.org/project,pci,home

PCI is synchronous, but afair there is no clock speed requirements (dont know about jitter, there are some setup/hold time requirements).
You could try bitbanging it for LOLz. I think you should be able to at least get to reading config from the pci card.

If all you want is SATA connected to your board just go USB route.

You're reading my thoughts!  :)
This is the second hope, but I feel like if I decide to build the thing for real, I'll be bothered by power consumption issues quite a lot.
How good/bad FPGA solution can be in this regard in comparison to ASIC implementation like PLX ICs?
 

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
Re: PCI host bridge for ARM9 CPU
« Reply #6 on: March 23, 2014, 07:19:52 pm »
Use IDE-SATA bridge IC (Marvell has some in QFP, seen in first SATA HDDs). AT91SAM9260 has CompactFlash support, which is the same bus as IDE.
Well, quite an alternative I would say  :)
 

Online abyrvalg

  • Frequent Contributor
  • **
  • Posts: 851
  • Country: es
Re: PCI host bridge for ARM9 CPU
« Reply #7 on: March 24, 2014, 12:51:04 am »
What is your application? Why SATA? What speed requirements?
Your initial idea with SAM9+something-to-PCI+SIL3114 doesn't look well balanced: SIL3114 is overpowered compared to SAM9, but there will be no bus master mode (SAM9's bus doesn't allow that afaik) so this way is complex but not so efficient.
If you plan to run Linux, then USB should be an easiest way to access SATA drive (all drivers are ready made, should work immediately), but there can be speed issues: lower end (QFP) SAM9s have FS (12Mbit/s) USB host. Using IDE-SATA bridge may require some CompactFlash driver tweaking, but the bridge itself is fully transparent and requires no additional programming (actually you don't need to hunt for specific Marvell chip, any off the shelf IDE-SATA converter should work the same way).
 

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
Re: PCI host bridge for ARM9 CPU
« Reply #8 on: March 24, 2014, 07:30:01 am »
What is your application? Why SATA? What speed requirements?
The idea is to extend an existing embedded single board computer like SK-AT91SAM9XE512-SIM300 to a "geek version" of a portable computer with both high-level (USB/Eth/IDE/SATA) and low-level interfaces (I2C/SPI/UART/etc), bare I/O, plus whatever peripheral interfaces a typical top-level AVR or entry level ARM microcontroller would allow, all brought to user accessible connectors. A strong limitation of this solution is that is should be possible to build with hobby level technology (double sided boards, 8/7 mil traces).

In this regard the SATA is a very appreciable interface to have. Besides, I've managed to get few of those SiliconImage ICs just in case.

Speed requirements are minor, but the higher speed the better.

Your initial idea with SAM9+something-to-PCI+SIL3114 doesn't look well balanced: SIL3114 is overpowered compared to SAM9, but there will be no bus master mode (SAM9's bus doesn't allow that afaik) so this way is complex but not so efficient.
Yes, I know it's unbalanced, but this comes from a limited number of available parts that satisfy the hobby level technology limitation.

If you plan to run Linux, then USB should be an easiest way to access SATA drive (all drivers are ready made, should work immediately), but there can be speed issues: lower end (QFP) SAM9s have FS (12Mbit/s) USB host. Using IDE-SATA bridge may require some CompactFlash driver tweaking, but the bridge itself is fully transparent and requires no additional programming (actually you don't need to hunt for specific Marvell chip, any off the shelf IDE-SATA converter should work the same way).
That's true, but in this case the stability will depend on USB subsystem which is still have issues on modern PCs. Well, maybe I'm little biased about this.
« Last Edit: March 24, 2014, 11:15:34 am by Unixon »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 28624
  • Country: nl
    • NCT Developments
Re: PCI host bridge for ARM9 CPU
« Reply #9 on: March 24, 2014, 03:15:10 pm »
I'd go for a readily made module instead of messing around with processors which run out of steam before doing anything. I recently did a project around an iMX6 from Freescale on a module. That controller has hardware video decoding and 4 ARM CPUs running at up to 1GHz. Boards with these start at $170.

Hand soldering these kind of systems is also asking for problems. You end up with 0.5mm fine pitch TQFP and QFN parts. I solder those all the time (the footprints need to be modified for hand soldering though) but many hobbyists don't dare to take on such soldering jobs.

And forget about routing Sata lines on a 2 layer board. At speeds over 1.5Gb the layout and thickness of the substrate get really critical.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
Re: PCI host bridge for ARM9 CPU
« Reply #10 on: March 24, 2014, 04:22:15 pm »
I'd go for a readily made module instead of messing around with processors which run out of steam before doing anything. I recently did a project around an iMX6 from Freescale on a module. That controller has hardware video decoding and 4 ARM CPUs running at up to 1GHz. Boards with these start at $170.
Agree, but that's a completely different thing. If I would go for performance then pre-assembled processor/SoC modules are totally OK.
Indeed, I consider this a very practical approach, but in this case there will be less free space for modifications.

Currently I'm trying to investigate the limits of possible with hobbyist level technology before putting real effort into a project.

Hand soldering these kind of systems is also asking for problems. You end up with 0.5mm fine pitch TQFP and QFN parts. I solder those all the time (the footprints need to be modified for hand soldering though) but many hobbyists don't dare to take on such soldering jobs.
Any fine pitch QFPs and not-very-large QFNs are OK for me.

And forget about routing Sata lines on a 2 layer board. At speeds over 1.5Gb the layout and thickness of the substrate get really critical.
Here I must agree, these issues can kill a project.
 

Offline UnixonTopic starter

  • Frequent Contributor
  • **
  • Posts: 400
Re: PCI host bridge for ARM9 CPU
« Reply #11 on: March 26, 2014, 05:54:18 am »
The idea is to extend an existing embedded single board computer like SK-AT91SAM9XE512-SIM300 to a "geek version" of a portable computer with both high-level (USB/Eth/IDE/SATA) and low-level interfaces (I2C/SPI/UART/etc), bare I/O, plus whatever peripheral interfaces a typical top-level AVR or entry level ARM microcontroller would allow, all brought to user accessible connectors.

BTW, is it a bad idea? What do you think?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf