[ixp1200] Embedded Linux, board initialization and loading microengines

Robert Klima robert at tvk.rwth-aachen.de
Mon Jun 2 06:34:54 EDT 2003


Hi together,

this question goes to everyone using embedded linux on the
enp-2505 which has an ixp1200 and one IXF440 onboard. Hope
there are some. ;)

I am currently coding an MPLS-Router based on above hardware.
To keep it fast and profiling simple I am handling all tasks
in the microengines and therefore want to avoid ACEs. When
switching from simulation, which worked fine, to hardware
debugging I ran into trouble. Though receival of packets worked
fine in simulation the code keeps waiting for mpackets when doing
hardware debugging.
The following loop (from Johnson and Kunze) keeps going forever :
do {
  csr_read((void *)&rcv_ready_bits, rcv_rdy_lo, 1, ctx_swap);
} while ( !(rcv_ready_bits & (1 << port_num)) );

The SDK was instructed to "start ports" and IX-Bus-Config is
64Bit, 1-2 MACs. To prepare the Hardware for Debugging I ran
bootixp and after that insmod ue.o; insmod octmac.o; rs_udebug;
Its definitely no hardware or cabling problem as the supplied
l3forwarding_example (./ixstart) works fine.

When instead of the above preparations loading an ace-example
with (debug mode 1 - Download and debug via workbench) and
inserting my own code debugging works as expected.
This leads to the following questions :

*** Question start here :-)

What (else) has to be done to properly initialize the hardware ?
Tried some ioctls() on octmac.o but could not find a promising
sequence due to a lack of documentation on that subject.

To configure a bunch of machines I have been looking for alternative
ways to inject the microcode. A program/library that can be used to
load+start the microengines would be of great interest. Though some
libraries have functions with promising names there are too many
and docomentation is to sparse to start guessing.

Any suggestions are welcome. Thanks a lot in advance.

Yours, Robert.

--------------------------------------------------------------------------
Here some information on the Hard-/Software in use :

> WARNING: IXF440 MAC Address Initialzation failed. sts =  130                  
> Press space bar to stop auto-boot...                                          
>   0                                                                           
> Flash download mode is 1                                                      
                                                                              
> Cygmon, the Cygnus ROM monitor.                                               
> Cygmon was written by Robert Richardson and Bob Manson of Cygnus Solutions    
> Copyright(c) 1997, 1998, 1999 Cygnus Solutions                                
>                                                                              
> Version: release 2.04                                                         
> This image was built on Fri Feb 22 16:35:14 PST 2002                          
>                                                                              
> CPU: IXP1200 StrongARM(R) Microprocessor rev. C0                              
> Board: Intel(R) PA1104 Network Processor Base Card                            
> StrongARM is a Registered Trademark of Advanced RISC Machines Limited.        
> Intel is a Registered Trademark of Intel Corporation                          
> Other Brands and Trademarks are the property of their respective owners.      
> Waiting for host based download                                               

Kernel in use :
> Linux ixp_target 2.3.99-pre3-rmk3-np2 #235 Fri Feb 21 13:51:33 CET 2003 armv4b

Software:
  IXA SDK 2.01a
  IXA Education Workstation (CD from 05/28/2002)

--------------------------------------------------------------------------

-- 
There are three ways to get something done:
        (1) Do it yourself.
        (2) Hire someone to do it for you.
        (3) Forbid your kids to do it.




More information about the ixp1200 mailing list