Skip to contentSkip to conversation

Walnut user-space software problem

DISCUSSION Joe Dery 3 participants 3 messages Feb 13, 2001

lore
Share & tools
lore

Joe Dery

author
#0 lore raw

My senior design group is working with a IBM Walnut board with the 200 MHz 405GP r3. We have the linux kernel and target filesystem taken from the Nov. 26, 2000 sources. The board boots Linux from NFS flawlessly after compilation using the CDK 1.0 8xx toolkit.

Our project objectives include compiling the ITU-T G.723.1 (Voice over IP) standard C source code. We are (again) using the powerpc-linux-gcc included with the MV CDK 1.0 tools for PowerPC 8xx-based machines.

I understand that an updated devkit is available, but since our budget cannot touch the subscription fees needed to obtain the MontaVista toolkit for the 405GP.

Enough background already. The problem arises in that when we compile the VoIP source code and run it on the PowerPC, the output of the encoder and decoder is wrong. When the same code is compiled for our host machine (using i386 gcc) the output is ok. This C code involves a lot of speed-oriented fixed-point mathematics - that is, a lot of multiplies and shifts (to avoid divides) Just searching for the >> and << operators in the kernel source doesn't bring up much. So to me this may be the culprit. Sorry to make this so vague - I am just hoping that someone has seen problems with math/DSP oriented programs before and can suggest something!

Also, I wanted to verify the size of the variable types in the gcc compiler for the PowerPC. Please correct me if I'm wrong.

int - 32 bit signed integer
short - 16 bit signed integer

I am also curious if this could be caused by the Revision C errata. However, I am not sure of that errata's nature or the methods of work-around.

Thanks for any help you can provide in advance!
Joe Dery
[email protected]

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#1 lore raw
Quoted 7 lines · Joe Dery

My senior design group is working with a IBM Walnut board with the 200 MHz 405GP r3. We have the linux kernel and target filesystem taken from the Nov. 26, 2000 sources. The board boots Linux from NFS flawlessly after compilation using the CDK 1.0 8xx toolkit.

Quoted 8 lines

Our project objectives include compiling the ITU-T G.723.1 (Voice over IP) standard C source code. We are (again) using the powerpc-linux-gcc included with the MV CDK 1.0 tools for PowerPC 8xx-based machines.

I understand that an updated devkit is available, but since our budget cannot touch the subscription fees needed to obtain the MontaVista toolkit for the 405GP.

I have put the 405GP tool chain (compiler, linker, etc) and a stripped down set of files for the target system out on the MontaVista ftp site, but haven't had time to update my web page to point to them and document their usage. If you are willing to put up with the pain of this lack of documentation, here is the basic info...

The files are on ftp.mvista.com (login as "ftp") in the pub/CDK/1.0/latest/ppc_4xx/ directory. The files are actually from the 1.2 CDK, but I didn't update the documentation to reflect that fact, or to note which RPMs I included and which I excluded.

Since you are using a Rev C Walnut, you need to uninstall a few RPMS

    rpm -e hhl-ppc_4xx-walnut-lsp-2.4.0-test2-1.2.1-1
    rpm -e hhl-ppc_4xx-walnut-lsp-binaries-2.4.0-test2
    rpm -e --nodeps hhl-ppc_4xx-glibc-2.1.3-2

and install a replacement

    rpm -ivh hhl-ppc_4xx-glibc-2.1.3-2_PPC405RevC.noarch.rpm
Quoted 17 lines

Enough background already. The problem arises in that when we compile the VoIP source code and run it on the PowerPC, the output of the encoder and decoder is wrong. When the same code is compiled for our host machine (using i386 gcc) the output is ok. This C code involves a lot of speed-oriented fixed-point mathematics - that is, a lot of multiplies and shifts (to avoid divides) Just searching for the >> and << operators in the kernel source doesn't bring up much. So to me this may be the culprit. Sorry to make this so vague - I am just hoping that someone has seen problems with math/DSP oriented programs before and can suggest something!

Also, I wanted to verify the size of the variable types in the gcc compiler for the PowerPC. Please correct me if I'm wrong.

Quoted 6 lines

int - 32 bit signed integer
short - 16 bit signed integer

I am also curious if this could be caused by the Revision C errata. However, I am not sure of that errata's nature or the methods of work-around.

You really want to move forward to the rev D 405GP. The workarounds in the kernel for the rev C are not 100% effective.

Quoted 4 lines

Thanks for any help you can provide in advance!
Joe Dery
[email protected]

-Frank
--
Frank Rowand <[email protected]>
MontaVista Software, Inc

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#2 lore raw
Quoted 2 lines · Frank Rowand

You really want to move forward to the rev D 405GP. The workarounds in the kernel for the rev C are not 100% effective.

Now you tell me :-). I've been struggling with cache related problems for several weeks trying to get the software merged into the latest tree.........

	-- Dan

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/