AIOP toolchain?

Hi all, hi Matt,

these e200-cores in AIOP seem really powerful to me. IMHO they account for the bigger part (die-area) of DPAA2-logic in the LS1-SoC.

But I have a hard time to find a toolchain for them. Is NXPs Codewarrior for Advanced Packet Processing the only option? How about licensing, anyone know of an affordable option for non-commercial use?

Greets, Andreas

Yes, I believe the CodeWarrior toolchain is the only one available for the AIOP.

I guess someone could try and make PowerPC GCC or Clang/LLVM target them, but you will be missing some of the extra instructions/intrinsics that the MC/AIOP cores have.

The ‘service layer’ library and sample application code is on GitHub at least: GitHub - nxp-qoriq/aiopsl: DPAA2 Accelerated I_O Processing Service Layer.

I have been wanting to play with the AIOP myself but haven’t had the time yet.

Thank you Mathew, I can confirm now, these opcodes are a well kept secret. I did an extensive search for documenation … to no avail. I also checked NXPs “Compiler and Build Tools Source Package - GCC Power Architecture Toolchain for e200 Processores v1.2”. Has patches for e200, but not for e200z490. I checked NXPs and Linaros QEMU and binutils repos, nothing.

But all is not lost … the AIOPSL repo you mentioned has demo elf-binaries. These have symbol-tables, so they can be related to sources, and there are tons of hwaccel- and other unknown opcodes in there. I will have a closer look …

The CodeWarrior AIOP uses the old Metrowerks/“Classic” CodeWarrior PowerPC compiler, I think. So you won’t find a GNU toolchain for the e200z490.

You have probably seen this, but there is a list of the special intrinsics in slides 52-55 here:

O yes, I was aware if this list, there is another one in CWAPPBTR. In order to have gcc producing e200z490 code, we need the actual opcodes, which I found nowhere except in these elf-files. It’s a bit of guessing, but I feel I will be able to figure them out and yield a patch for ppc-opc.h.

What’s remarkable is that e200z490 uses VLE-opcodes throughout, it’s said it is not even able to run on uncompressed code, but the intrinsics seem to be uncompressed 32 bit opcodes.

BTW, do you know what happened to Linaro.org OpenDataPlane ambitions? Are there any ODP implementations available for fastpath/NAT/IPsec-offloading on QorIQ?