Hi, I have been trying the VERA package for IXP1200. I have a couple of questions and would really appreciate it if you could respond to them. I followed the instructions and got everything to build, changed jumper settings, update firmware, etc. The IPmm demo program works when IXP1200 is plugged into a PC PCI in passive backplane. Now, I am trying to use the libraries to compile a standalone application instead of using a linux host to download. I compile using a big-endian arm cross-compiler. I am getting some errors in Libcii (fmt.c), as well as ethernet port initialization, and systimer and a few other initialization routines. Has anybody successfully compiled IPmm or others to run as a standalone (with cygmon as boot loader) in big-endian mode? Are there any firmware-specific or big/little-endian portion of the libraries that needs to be ported? Thanks so much! Regards, Charles
On Sun, Apr 14, 2002 at 09:24:31PM -0700, Charles Chiou wrote:
Hi,
I have been trying the VERA package for IXP1200. I have a couple of questions and would really appreciate it if you could respond to them.
Now, I am trying to use the libraries to compile a standalone application instead of using a linux host to download. I compile using a big-endian arm cross-compiler. I am getting some errors in Libcii (fmt.c), as well as ethernet port initialization, and systimer and a few other initialization routines. Has anybody successfully compiled IPmm or others to run as a standalone (with cygmon as boot loader) in big-endian mode? Are there any firmware-specific or big/little-endian portion of the libraries that needs to be ported?
We chose little-endian for VERA for simplicity: IXP1200 powers up in little-endian mode, the PCI bus is little-endian, and the Pentium is little-endian. That said, it shouldn't be too hard to make the libraries endian-agnostic where they currently are not. We have been writing the code with the idea that someday we might consider running big-endian. For now, it hasn't been an issue for us. Therefore, there are no-doubt places in the code which assume little-endian and will need to be updated. Dealing with the VERA firmware/start-up code is trickier. Sometime after powering-up into little-endian mode, the IXP1200 will need to switch to big-endian mode. As far as I know, no one has tried to get the VERA application code to run using the stock IXP1200 firmware. Scott
Hi, I am working on a project to adapt the VERA code (mainly the IPmm) to run on IXP1200's strongarm Linux in big-endian. This way, there will be no PCI interface to a Pentium host. I want to map the 8-port MAC controller to a logical network device in the kernel and treat them as normal ethernet devices. What is the best way to hook up (interrupt) to "packet receive" in Libixprouter or Runtime, so that the driver can be noified when a packet is avialable? Assumming that the cache table is empty and everything is a miss requiring an external forwarding... Thanks! Charles
On Wed, May 01, 2002 at 11:26:04AM -0700, Charles Chiou wrote:
I am working on a project to adapt the VERA code (mainly the IPmm) to run on IXP1200's strongarm Linux in big-endian. This way, there will be no PCI interface to a Pentium host. I want to map the 8-port MAC controller to a logical network device in the kernel and treat them as normal ethernet devices. What is the best way to hook up (interrupt) to "packet receive" in Libixprouter or Runtime, so that the driver can be noified when a packet is avialable? Assumming that the cache table is empty and everything is a miss requiring an external forwarding...
I'm not quite sure what you are looking for. The VERA Linux device driver runs on the host on the other side of the PCI bus and communicates with the custom VERA firmware that one must put into the board's flash memory. Since it seems that you want to run Linux on the StrongARM, this device driver won't help. I didn't write the microengine code, but we don't really have a device driver running on the StrongARM to interact with the microengines, per se. Also, our IXP1200 environment is little-endian. There is an unknown amount of work required to test and make sure it also works when compiled for big-endian operation. Scott
participants (2)
-
Charles Chiou
-
Scott C. Karlin