[ixp1200] L3Fwd16 question

Charles Chiou cchiou at viosoft.com
Sat Jul 20 18:29:16 EDT 2002


Hi,

I am not very good in reading the microcode, and would appreciate very
much if someone could help me out here!

I have been trying to get the peth driver to run on the monta vista 2.4.18
kernel. So far, I think I have ported and run the control-plane apps and
libraies without any problem. (octmac.o, giga_drv.o, ue.o, rs_udebug,
rtmapp, and peth.o). However, I am not sure what to do with the microcode
on the data plane side.

It appears that the main difference between 2.3.99 and 2.4.18 kernel is
that they occupy different SDRAM location. So I made the modification to
the MV kernel by:
  1. Reserve 0xC600000 - 0xC8000000 for data-plane use
  2. Map 0xC6000000 - 0xC8000000 to the IO mem 0xD8000000 - 0xDA000000

I thought if I redefine the following:

#define SDRAM_NONCACHE_QWD_START 0xC00100  // 96MB
#define SDRAM_NONCACHE_QWD_END   0x400000  // 32MB

in the mem_map.h file of L3Fwd16, then the microcode should work fine.

Apparently, it seems that the RTM works, and the peth poller thread
receives packets from the microcode, but the packet content is not
correct. So the xmit and recv are not working... Is there something else I
should change in the mircocode too??

This is the output of the peth debug after a "ping" packet to port 0:

pethPoller: head= c4, tail= a0
pethPoller: nextDesc = a4, descFlags = 1f01
pethPoller: rewriting headTail: a400a0
pethPoller: unlocked queue
pethPoller: ingressPort = 0
unit: 0
pethRecv: descriptor = 0xc4
pethRecv: descFlags = 1f01, len = 32
ff ff ff ff 98 75 0b c0 08 00
06 04 98 75 0b c0 00 00 00 00
01 05 5f 7f 09 00 08 09 0e 0f
10 11 16 17 18 19 1e 1f 20 21
pethFreeDescriptor: descriptor = c4
pethFreeDescriptor: descriptor = c4

...

But I am expecting the data to be something like:

00 00 ca fe ba be 00 e0 98 75
0b c0 08 00 45 00 00 54 00 00
40 00 40 01 36 a0 01 02 01 01
01 02 01 05 08 00 50 b0 d9 41

...

Thanks,

Charles



More information about the ixp1200 mailing list