IA64 Resources

IA64 is a very steep learning curve. I recommend that you start with volume 1 of the Intel IA64 architecture manuals to get a feel for the hardware design. You do not need a real IA64 box to get started, there is an emulator available from HP, see the master site below.

URLs for kernel.org point to the .AU mirror. That can only be accessed from Australia and New Zealand, if you are overseas then use a local mirror.

The master site for Linux on IA64 is http://www.linuxia64.org/.

IA64 is only supported for 2.4 kernels so get the latest 2.4 kernel.

Even with the latest kernel, you may need to apply the latest IA64 patches.

Run time architecture defines the conventions for register usage. Large chunks of the Linux IA64 code will make no sense without this manual.

HP has some useful programs and documentation.

IA64 needs bleeding edge modutils and ksymoops.

If you are just investigating IA64 then the toolchain that comes with the HP emulator is good enough. Follow the instructions in the emulator. OTOH if you need a bleeding edge tool chain then Cygnus maintain a working IA64 toolchain snapshot. I have been using snap-001024 in cross compile mode, compiling on Pentium with a target of IA64. This script takes the untarred Cygnus snap-001024 tree and builds the cross compiler.

set -e
cd $top
rm -rf $s
mkdir -p $s
rm -f snapshot-current-cross
ln -s $s snapshot-current-cross
cd snap-$date
find src -type d \
\( \
-name CVS \
-o -path src/cgen \
-o -path src/dejagnu \
-o -path src/expect \
-o -path src/gcc/ch \
-o -path src/gcc/cp \
-o -path src/gcc/f \
-o -path src/gcc/java \
-o -path src/gcc/objc \
-o -path src/gcc/testsuite/g77.f-torture \
-o -path src/gcc/testsuite/gcc.dg \
-o -path src/gcc/testsuite/gcc.failure \
-o -path src/gcc/testsuite/gcc.misc-tests \
-o -path src/gcc/testsuite/g++.dg \
-o -path src/gcc/testsuite/g++.old-deja \
-o -path src/gcc/testsuite/lib \
-o -path src/itcl \
-o -path src/libchill \
-o -path src/libf2c \
-o -path src/libgloss \
-o -path src/libgui \
-o -path src/libio \
-o -path src/libobjc \
-o -path src/libstdc++ \
-o -path src/libstdc++-v3 \
-o -path src/newlib \
-o -path src/tcl \
-o -path src/texinfo \
-o -path src/texinfo \
-o -path src/tix \
-o -path src/tk \
-o -path src/winsup \
-o -path src/xiberty \
-o -path src/zlib \
-o -path src/zlib/nt \
-o -path src/zlib/os2 \
\) -prune -o -print | cpio -pmda $s

cd $s
#for i in $top/src-*-path-cross
#	patch -p1 < $i
rm -fr src-objdir
mkdir src-objdir
cd src-objdir
../src/configure --prefix=$s/install --target=ia64-unknown-linux --disable-gdbtk
make all install

To compile the kernel with the above Cygnus toolchain,

    make ARCH=ia64 CROSS_COMPILE=/build/kaos/snapshot-current-cross/install/bin/ia64-unknown-linux- xxx
xxx is menuconfig, vmlinux, modules, clean etc. IA64 makes vmlinux, not bzImage.

©Keith Owens O. C. Software P/L 2000