Found this in the AIX newsgroup - as its from an IBM person I'd guess it was accurate
Alex
There are three layers you have to be concerned with:
(A) user-space (application)
(B) kernel
(C) h/w
Some combinations of 32/64 will work, some won't:
1 2 3 4 5 6 7 8
-- -- -- -- -- -- -- --
usr 32 32 32 32 64 64 64 64
ker 32 32 64 64 32 32 64 64
h/w 32 64 32 64 32 64 32 64
Combinations 3, 5, 7 are invalid.
Combinations 4, 8 require AIX 5.1 (for the 64-bit kernel).
(A) The 64-bit user-space support is provided by the bos.64bit
fileset and enabled with the 'smit load64bit' menu. You can
also test this by running the '/etc/methods/cfg64' command
(see the entry in /etc/inittab) and checking the return code.
(C) All recent pSeries boxes have a 64-bit CPUs, including:
* RS/6000 7013 Models S70, S7A
* RS/6000 7015 Models S70, S7A
* RS/6000 7017 Models S70, S7A, S80
* RS/6000 7025 Models H80, F80
* RS/6000 7026 Models H70, H80, M80
* RS/6000 7043 Models 260, 270
* RS/6000 7044 Models 170, 270
* pSeries 680 Model S85
* pSeries 640 Model B80
* pSeries 660 Model 6H1
* pSeries 620 Model 6F1
This list is from the AIX 5.1 /usr/lpp/bos/README file.
(B) This is also from the AIX 5.1 /usr/lpp/bos/README file:
It is possible to switch between the 32-bit and 64-bit kernels
without
reinstalling the operating system. This can be done by modifying
the
/usr/lib/boot/unix and /unix to be a symbolic link to the binary
for the
desired kernel, running the bosboot command to write a new system
boot
image, and rebooting. The path name of the 64-bit kernel is
/usr/lib/boot/unix_64 while the path names of the uniprocessor and
multiprocessor versions of the 32-bit kernel are
/usr/lib/boot/unix_up and
/usr/lib/boot/unix_mp.
In other words, do:
ln -fs /usr/lib/boot/unix_XX /usr/lib/boot/unix
ln -fs /usr/lib/boot/unix_XX /unix
bosboot -a
shutdown -Fr
where XX is:
up - when you want to switch to the 32-bit UP kernel,
e.g. 44P-170
mp - when you want to switch to the 32-bit MP kernel,
e.g. 44P-270
64 - when you want to switch to the 64-bit kernel
Be careful to not try and boot the unix_up kernel on an mp
system, or a unix_64 kernel on a 32-bit h/w. It will fail
and you'll have to use maintenance mode to fix it.
You can also write a small program like:
#include <sys/systemcfg.h>
#include <sys/utsname.h>
main ()
{
struct utsname myuname;
uname (&myuname);
printf (" \n");
printf ("Current Values \n");
printf ("-----------------\n");
printf ("aix version = %s \n", myuname.version);
printf ("__cpu64() = %i \n", __cpu64());
printf ("KERNEL_32 = %i \n", __KERNEL_32());
printf ("KERNEL_64 = %i \n", __KERNEL_64());
printf ("num cpus = %i \n", _system_configuration.ncpus);
printf ("proc arch = %i \n", _system_configuration.architecture);
printf ("-----------------\n");
printf (" \n");
}
to display important values.
Paul Landay