SUMMARY: Changing to 64 Bit kernel after OBP Upgrade

From: Mark A. Bialik (
Date: Tue Oct 10 2000 - 17:07:21 CDT

Well, the general consensus was to edit
and change


It seems there was a security problem with 64-bit kernels running on
CPU's <200

I've decided to stay away from the 64-Bit kernel since this will be a
firewall box, and I'm not 100% sure the vendor has even tested against

Thanks all for your help. Each reply is listed below.


Dan Anderson []

As I recall 1/170's have a CPU bug that precludes using 64 bit mode.
Ed Crotty []

i might not be able ot help you find the kernel on the cd but i do want
to give you a heads up about this note i have in my notes...

On the ultra 1 to boot 64-bit you need look at the
/platform/sun4u/boot.conf file and set the
following variable
you may also want to read the information in this

Lucia Gonzalez []

I am sending you the infodoc 18313 which explains it all.

In short - use the eeprom command and reboot
# eeprom boot-file=kernel/sparcv9/unix

If you want to revert the changes, use the eeprom command again and
(some apps want a 32bit kernel)
# eeprom boot-file=kernel/unix

to find at what type of kernel you are now
# isainfo -kv

Hope this helps,


SYNOPSIS: Enabling Solaris 7 64 bit O/S

Solaris 7 is loaded and has been running in 32-bit mode. The flashprom
banner has been turned off; therefore, there is no script assistance for
flashprom update. We wish to enable 64-bit OS at boot time.

Here's how:

The write-disable jumper must be moved on the system board to enable the
flashprom update. See the approprate documents to locate the jumper and
make it writable. Boot the OS in single user mode:

   boot -sw

The flashprom update is architechure specific. The update file is
in /usr/platform/`uname -i`/prom/`uname -i` in the form of an executable
shell script. (This can be derived from the /etc/init.d/flashprom
Execute this script to flash the prom:

   /sbin/sh /usr/platform/`uname -i`/lib/prom/`uname -i`

This updates the prom, however, the boot-file must be set to
kernel/sparcv9/unix to complete the 64-bit boot mode. Set the OBP
environment variable using the eeprom command, viz
    eeprom boot-file=kernel/sparcv9/unix

and reboot.

PRODUCT AREA: System Administration
Kevin Amorin []

OK> boot kernel/sparcv9/unix

should be able to do it.

double check to see which kernel you are running with "isainfo -kv"
Thomas Vincent []

There should be a 32-bit/64-bit option on Solaris 7, and Solaris 8.
Emanuel Almeida []

To find out if your machine can boot into 64 bit mode, enter

         # isalist

If you do not see "sparcv9", you will not be able to boot this system
into 64 bit mode.

Note: On Ultra systems with a CPU speed of 200 MHz or less, the file
/platform/sun4u/boot.conf must have the following line uncommented:


If this line was commented out when the system was booted, isalist will
list sparcv9 as an option, even if all packages for 64 bit support are

To see if you are currently in 64 or 32 bit mode, enter:

         # isainfo -v

If the output shows:

         64-bit sparcv9 applications
         32-bit sparc applications

then you are running 64 bit mode.

If the output shows:

         32-bit sparc applications

then you are booted into 32 bit mode.

To change modes, enter the following at the "ok>" prompt:

         To set up booting 32-bit mode:
                 setenv boot-file kernel/unix

         To set up booting 64-bit mode:
                 setenv boot-file kernel/sparcv9/unix
Logan Stout []

I dont know if th is is the "best" or correct method, but I would use
cd and do the upgrade option. Backup first of course, but everyohe here
beleives this will work just fine.
Dieter Gobbers []

I had that problem once ago, here is an excerpt from then "boot"

 64-bit SPARC
  Booting UltraSPARC Systems
     Certain platforms may need a firmware upgrade to run the
     64-bit kernel. See the Sun Hardware Platform Guide for
     details. If the 64-bit kernel packages are installed and
     boot detects that the platform needs a firmware upgrade to
     run 64-bit, boot displays a message on the console and
     chooses the 32-bit kernel as the default file instead.

     On systems containing 200MHz or lower UltraSPARC-1 proces-
     sors, it is possible for a user to run a 64-bit program
     designed to exploit a problem that could cause a processor
     to stall. Since 64-bit progams cannot run on the 32-bit

SunOS 5.7 Last change: 26 Mar 1998 13

Maintenance Commands boot(1M)

     kernel, the 32-bit kernel is chosen as the default file on
     these systems.

     The code sequence that exploits the problem is very unusual
     and is not likely to be generated by a compiler. Assembler
     code had to be specifically written to demonstrate the prob-
     lem. It is highly unlikely that a legitimate handwritten
     assembler routine would use this code sequence.

      Users willing to assume the risk that a user might acciden-
     tally or deliberately run a program that was designed to
     cause a processor to stall may choose to run the 64-bit ker-
     nel by modifying the boot policy file. Edit
     /platform/platform-name/boot.conf so that it contains an
     uncommented line with the variable named
     ALLOW_64BIT_KERNEL_ON_UltraSPARC_1_CPU set to the value true
     as shown in the example that follows:


     For more information, see the Sun Hardware Platform Guide.
Ryan Matteson []

edit /usr/platform/boot.conf
Tan Tshun Kiat []

During the OS installation, there's a check box for you to select under
the types of installation (Full plus OEM, Full, Basic?, etc).
Marv []

Wow, deja vu. I went through these same exact steps on the same
last week.

Anyway, man boot will tell you to look at /platform/sun4u/boot.conf
for the line that needs changing.
Detlev Habicht []

have a look at file /platform/sun4u/boot.conf and you find
an answer. :-)

P.S.: I had the same problem yesterday ...
Peter Keating []

I'm probably a bit late, given the usual speed of this list, but from
memory you want boot kernel/sparcv9/unix. I think you're booting 32bit
because the cpu is < 200MHz. This default can be altered by changing a
flag in a file (unfortunately the name of the file escapes me).
Marc Roger []

I think your problem is that 32 bit kernel is the default on 200 MHz or
less systems. This is explained in the booklet "SUN Hardware
guide" for Solaris 8.

The reason is a bug present on these lower-speed CPUs that may be
triggered (only by a malicious user) on 64-bit kernels but not on 32-bit

If you want to run 64-bit anyway (maybe unwise on a multi-user system),


in /platform/<platform-name>/boot.conf

and reboot.

U BEFORE POSTING please READ the FAQ located at
. and the list POLICY statement located at
A To submit questions/summaries to this list send your email message to:
A To unsubscribe from this list please send an email message to:
E and in the BODY type:
R unsubscribe sun-managers
S Or
. unsubscribe sun-managers original@subscription.address
L To view an archive of this list please visit:

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:14:19 CDT