ChorusOS 4.0 UltraSPARC-IIi Target Family Guide

ChorusOS 4.0 UltraSPARC-IIi Target Family Guide

This guide describes how to run the ChorusOSTM 4.0 product for the UltraSPARCTM-IIi processor family.

Preface

How This Guide is Organized

ChorusOS 4.0 UltraSPARC-IIi specific information is provided in the following major sections:

Related Books

See the ChorusOS 4.0 Installation Guide for Solaris Hosts for a description of the installation process of the ChorusOS 4.0 product on a host workstation running the SolarisTM operating environment. This document also describes how to set up a boot server running the Solaris operating environment.

See the ChorusOS 4.0 Introduction for a complete description of the ChorusOS 4.0 features.

Typographical Conventions

The following table describes the typographic changes used in this book.

Table 1-1 Typographical Conventions

Typeface or Symbol 

Meaning 

Example 

AaBbCc123

 The names of commands, files, and directories; on-screen computer output

Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.

AaBbCc123

 What you type, contrasted with on-screen computer outputmachine_name% su Password:

AaBbCc123

 Command-line placeholder: replace with a real name or value

To delete a file, type rm filename.

AaBbCc123

Book titles, new words or terms, or words to be emphasized. 

Read Chapter 6 in User's Guide.

These are called class options.

You must be root to do this.

Shell Prompts

The following table shows the default system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.

Table 1-2 Shell Prompts

Shell 

Prompt 

 C shell promptmachine_name%
 C shell superuser promptmachine_name#
 Bourne shell and Korn shell prompt$
 Bourne shell and Korn shell superuser prompt#

Ordering Sun Documents

Fatbrain.com, an Internet professional bookstore, stocks selected product documentation from Sun Microsystems, Inc.

For a list of documents and how to order them, visit the Sun Documentation Center on Fatbrain.com at http://www1.fatbrain.com/documentation/sun.

Accessing Sun Documentation Online

The docs.sun.comSM Web site enables you to access Sun technical documentation online. You can browse the docs.sun.com archive or search for a specific book title or subject. The URL is http://www.oracle.com/technetwork/indexes/documentation/index.html.

Obtaining Technical Support

Sun Support Access offerings are available exclusively to members of the Sun Developer Connection Program. To get free membership in the Sun Developer Connection Program, go to http://www.sun.com/developers. For more information or to purchase Sun Support Access offerings, visit: http://www.sun.com/developers/support or contact the Sun Developer Connection Program office near you.

Development Environment

The ChorusOS 4.0 product provides a host-target development environment. Applications are developed on a workstation (the host), and then downloaded and executed on a specific board (the target).

A cross development system is needed to build the applications that execute on the target board (see Section "Utilities").

SPARCTM/SolarisTM Reference Host Environments

Prerequisites for the Solaris host reference configuration are the following:

Cross Compiler

This development environment component is bundled with the ChorusOS 4.0 for UltraSPARC-IIi product:

The Chorus Cross Development System is based on the Experimental GNU Compiler System egcs 1.1.2 and binutils 2.9.1 and additional patches.

Graphical Debugger

This development environment component is bundled with the ChorusOS 4.0 for UltraSPARC-IIi product:

ChorusOS 4.0 Supported Features

The following table shows the ChorusOS kernel and operating system optional features that are available for the UltraSPARC-IIi processor family. The availability status of a feature, can be one of:

Y

The feature is supported, and is configurable with the configurator(1CC) command, or with the ews GUI configuration tool.

Please refer to the note at the end of the table for information about specific conditions, or restrictions, for a given supported feature.

Some of the features (such as MSDOSFS, FLASH, FS_MAPPER, for example) require specific low-level drivers. These features operate only on platforms which provide these drivers.

N

The feature is not supported.

 Feature Description Feature Name Availability
 Actor management 
   Dynamic actor loading management ACTOR_EXTENDED_MNGT Y
   User-mode extension support USER_MODE Y
   Dynamic libraries DYNAMIC_LIB Y
   Compressed file management GZ_FILE Y
 Scheduling 
  POSIX round-robin scheduling class ROUND_ROBIN Y
 Memory management 
   Virtual (user and supervisor) address space VIRTUAL_ADDRESS_SPACE Y
   On-demand paging ON_DEMAND_PAGING N
 Hot restart and persistent memory 
  Hot restart HOT_RESTART Y
 Inter-thread communication 
   Semaphores SEM Y
   Event flag sets EVENT Y
   Mutual exclusion lock supporting thread priority inversion avoidance RTMUTEX Y
 Time management 
   Periodic timers TIMER Y
   Thread and actor virtual timer VTIMER Y
   Date and time of day DATE Y
   Real-time clock RTC Y
 Inter-process communication 
   Location-transparent inter-process communication IPC Y
  Remote (inter-site) IPC support IPC_REMOTE Y
  Remote IPC communications medium IPC_REMOTE_COMM Y
   Mailbox-based communications mechanism MIPC Y
   POSIX 1003.1-compliant message queues POSIX_MQ Y
   POSIX 1003.1-compliant shared memory objects POSIX_SHM Y
 LAP 
  Local name server for LAP binding LAPBIND Y
  LAP validity-check option LAPSAFE Y
 Tools support 
   Message logging LOG Y
  Profiling and benchmark support PERF Y
  System Monitoring MON Y
  System debugging DEBUG_SYSTEMY [A flashed system image configured with DEBUG_SYSTEM enabled does not boot. The DEBUG_SYSTEM feature must be disabled.]
 C_INIT 
  Basic command interpreter on target LOCAL_CONSOLE Y
  Remote shell RSH Y
 File system options 
   Named pipes FIFOFS Y
   MS-DOS file system MSDOSFS Y
  NFS client NFS_CLIENT Y
  NFS server NFS_SERVER Y
  UFS file system UFS Y
 I/O management 
   Network packet filter BPF Y
  Swap support FS_MAPPER N
  Driver for IDE disk IDE_DISK N
  /dev/mem, /dev/kmem, /dev/null, /dev/zero DEV_MEM Y
  Support for RAM disk RAM_DISK Y
  Support for FLASH media FLASH Y
  Virtual TTY VTTY Y
  Driver for SCSI disk SCSI_DISK N
 Support for IPC IOM_IPC Y
 Support for OSI IOM_OSI Y
 Networking 
  Serial link IP SLIP Y
   POSIX 1003.1g-compliant sockets POSIX_SOCKETS Y
   Point-to-point protocols PPP Y
   Local sockets and pipes AF_LOCAL Y
 Administration 
   ChorusOS statistics ADMIN_CHORUSSTAT Y
  ifconfig administration command ADMIN_IFCONFIG Y
  mount administration command ADMIN_MOUNT Y
  rarp administration command ADMIN_RARP Y
  route administration command ADMIN_ROUTE Y
  shutdown administration command ADMIN_SHUTDOWN Y
  netstat administration command ADMIN_NETSTAT Y

Libraries

The ChorusOS operating system provides the elementary libraries indicated in the following list:

ChorusOS embedded library [The libebd.a, libcx.a, libm.a and libC.a libraries have been made thread-safe in order to support multithreaded actors.]

libebd.a

ChorusOS extended library

libcx.a

C++ library 

libC.a

X11 related client libraries (not thread safe) 

libX11.a, libXaw.a, libXext.a, libXmu.a, libXt.a

Specific BSD APIs (not thread safe) 

libbsd.a

The SunRPC library 

librpc.a

The mathematical library 

libm.a

The ``embedded'' C library [Included in libebd.a]

stdc.a

The microkernel ``visu'' library [This library is provided for the sake of backwards compatibility only. It is not documented. Its use is strongly discouraged.]

visu.a

Utilities

Target Utilities

The following utilities may be run on the target ChorusOS operating system:

Host Utilities

The following utilities may be run on the host machine:

Reference Hardware

ChorusOS 4.0 targets are described in this section from three different points of view:

Reference Processors and BSPs:

This subsection describes the processors on which the ChorusOS 4.0 product can run as well as the details of the BSPs included in the delivery

Reference Target Platforms:

This section describes all the target platforms which can be used as references in the context of Sun support contracts

Validated Reference Targets:

This section describes the precise platforms used to run the Sun QA tests; this may be useful, in case of bugs, as a hint or guide to help in identifying issues which are closely hardware related.

Reference Processors and BSPs

The ChorusOS 4.0 system for UltraSPARC-IIi supports the following processor:

The ChorusOS 4.0 system for UltraSPARC-IIi supports the following reference BSP:

cp1500 Reference BSP

Systems

The cp1500 reference BSP supports the following board:

Devices

The cp1500 reference BSP supports the following on board devices:

Device Id 

ChorusOS Driver 

/cpu (time base and decrementer) 

sun:powerpc-(tb,dec)-timer 

/cpu 

sun:usparc-tick-timer 

/ric 

sun:usparc-ric-ric 

/sabre 

sun:usparc-sabre-pci 

/sabre/simba 

sun:(pci,ric)-simba-pci 

/sabre/simba/cheerio-ethernet 

sun:pci-cheerio-ether 

/sabre/simba/ebus (ebus bridge) 

sun:pci-ebus-(bus,isa) 

/sabre/simba/ebus/ns16550-1 (UART) 

sun:bus-ns16550-uart 

/sabre/simba/ebus/ns16550-2 (UART) 

sun:bus-ns16550-uart 

/sabre/simba-2 

sun:(pci,ric)-simba-pci 

/sabre/simba-2/dec21150 (cPCI bridge) 

not supported 

/sabre/simba/ebus/28f008 (system flash) 

not supported 

/sabre/simba/ebus/28f016 (user flash) 

not supported 

/sabre/simba/ebus/led (ready LED) 

not supported 

/sabre/simba/ebus/7seg (7-seg LED) 

not supported 

/sabre/simba/ebus/wdtimer (watchdog) 

not supported 

/sabre/simba/ebus/tempsensor 

not supported 

/sabre/simba/ebus/kbd (keyboard) 

not supported 

/sabre/simba/ebus/mouse 

not supported 

/sabre/simba/ebus/lpt (parallel) 

not supported 

/sabre/simba/ebus/fdd (floppy) 

not supported 

/sabre/simba/ebus/ide 

not supported 

/sabre/simba/ebus/tod (time of day) 

not supported 

/sabre/simba/ebus/nvram 

not supported 

/sabre/simba/sym53c875 (SCSI) 

not supported 

Reference Target Platforms

Reference target platforms are configurations to be used by customers covered by a Sun support contract.

SPARCengine Ultra CP1500 (Sun Microelectronics)

Type:

CompactPCI Board

Processors:

UltraSPARC-IIi (270-333 Mhz)

Main memory:

64-512 MB

L2 cache:

256-1024 MB

Bus bridges:

Asynchronous serial ports (38.4 Kbaud), 10/100BaseT Ethernet, Real-time clock, Timers

Devices:

Asynchronous serial ports (38.4 Kbaud), 10BaseT Ethernet, Timers

Firmware:

OpenBoot 3.10.x

Validated Reference Targets

This section describes the precise platform used to run the Sun QA tests

How to Build and Boot a System Image on the Target


Note -

UltraSPARC-IIi target systems do not boot archives directly, but instead require the inetboot application to boot.

As a result, the boot procedure that follows differs from the procedure described in the ChorusOS 4.0 Installation Guide for Solaris Hosts, and requires that you use a boot server that reads local files instead of the NISTM database.


Building a ChorusOS 4.0 System Image

The following procedure assumes that the ChorusOS 4.0 product has already been correctly installed on the host workstation. See the ChorusOS 4.0 Installation Guide for Solaris Hosts.

  1. Create and change to a build directory where you will build system images:


    $ mkdir build_dir
    $ cd build_dir
    
  2. Set an environment variable to use with the configure(1CC) command as a shortcut to the base directory.

    For example:

    Set the environment variable... 

    To the family-specific product directory. The default value is... 

    DIR

    /opt/SUNWconn/SEW/4.0/chorus-usparc 

  3. Make sure your PATH has been set correctly to include the directory install_dir/4.0/chorus-usparc/tools/host/bin, where the default install_dir is /opt/SUNWconn/SEW. Also make sure that your PATH includes /usr/openwin/bin, which contains the imake utility.

  4. Configure the build directory, using the configure(1CC) command:

    If you are building from a binary distribution:


    $ configure -b $DIR/kernel \ 
    $DIR/os \ 
    $DIR/tools \ 
    -s $DIR/src/nucleus/bsp/drv \ 
    $DIR/src/nucleus/bsp/usparc \ 
    $DIR/src/nucleus/bsp/usparc/cp1500 \ 
    $DIR/src/iom
    

    Note -

    The above command configures the build directory to include components installed during a "Default Install". It does not include optional components, such as the X library or code examples, that you may choose to install separately on Solaris host workstations. For example, in order to include everything in your build environment:


    $ configure -b $DIR/kernel \ 
    $DIR/os \ 
    $DIR/opt/X11 \ 
    $DIR/opt/jvm \ 
    $DIR/tools \ 
    -s $DIR/src/nucleus/bsp/drv \ 
    $DIR/src/nucleus/bsp/usparc \ 
    $DIR/src/nucleus/bsp/usparc/cp1500 \ 
    $DIR/src/iom \ 
    $DIR/src/opt/examples
    

    If you are building from the source distribution, see the ChorusOS 4.0 Production Guide.

    As a result of configuration, build_dir now contains a Makefile, which is used to generate the build environment, and a Paths file, which specifies paths to files required by and created in the build environment.

  5. Generate the build environment:


    $ make
    
  6. Build a system image:


    $ make chorus
    

    The resulting system image file is located in the build directory, build_dir and is called chorus.obp.


    Note -

    You can also make a smaller system image that includes only the operating system kernel:


    $ make kernonly
    

Configuring the Boot Server

Note -

The target system and boot server must be on the same subnet.

See the ChorusOS 4.0 Installation Guide for Solaris Hosts for instructions on how to enable TFTP and RARP services on the boot server.


  1. Become root on the boot server:


    $ su
    Password: root_password
    # 
  2. Copy the inetboot.sun4u file, install_dir/4.0/chorus-usparc/opt/unsupported/inetboot.sun4u where install_dir is /opt/SUNWconn/SEW by default, to the /tftpboot directory.

  3. Create a soft link from the inetboot.sun4u file to a file called /tftpboot/target_IP_address_in_hex.ChorusOS.4.0. For example, the file for the target system with IP address 129.157.197.88 is called 819DC558.ChorusOS.4.0, and is constructed as follows:

    • 129 in decimal translates to 81 in hexadecimal

    • 157 in decimal translates to 9D in hexadecimal

    • 197 in decimal translates to C5 in hexadecimal

    • 88 in decimal translates to 58 in hexadecimal

    • (optional) .ChorusOS.4.0 identifies the release, and is appended to the concatenation of the IP address expressed in hexadecimal.


    Note -

    The system first attempts to find the configuration file with the .ChorusOS.4.0 extension. If it fails to find one, however, it attempts to find a configuration file without the .ChorusOS.4.0 extension.


    To create the soft link for the above example:


    # ln -s /tftpboot/inetboot.sun4u 819DC558.ChorusOS.4.0
    
  4. Create a /tftpboot/export/root/target/platform/sun4u directory on the boot server.

  5. Copy the system image, chorus.obp, to the directory you just created.

  6. Edit /etc/bootparams to include the following, creating the file if it does not exist yet:

    target root=boot_server:/tftpboot/export/root/target
    

    Where target is the target system hostname and boot_server is the boot server hostname.

  7. Edit /etc/hosts to include the following:

    target_IP_address     target
    

    Where target_IP_address is the target IP address, such as 129.157.197.88, and target is the target system hostname.

  8. Edit /etc/ethers to include the following:

    target_Ethernet_address     target
    

    Where target_Ethernet_address is the target IP address such as 8:0:20:a7:d6:f3 and target is the target system hostname.

  9. Add the following line to /etc/dfs/dfstab:

    share -F nfs -o rw -d "ChorusOS boot"  /export/home
  10. Edit /etc/nsswitch.conf so that the hosts, ethers, and bootparams entries read files rather than NIS databases. For example:

    #
    # /etc/nsswitch.nis:
    #
    # An example file that could be copied over to /etc/nsswitch.conf; it
    # uses NIS (YP) in conjunction with files.
    #
    # "hosts:" and "services:" in this file are used only if the
    # /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
    
    # the following two lines obviate the "+" entry in /etc/passwd and /etc/group.
    passwd:     files nis
    group:      files nis
    
    # consult /etc "files" only if nis is down. 
    hosts:      files [NOTFOUND=return] nis
    networks:   nis [NOTFOUND=return] files
    protocols:  nis [NOTFOUND=return] files
    rpc:        nis [NOTFOUND=return] files
    ethers:     files [NOTFOUND=return] nis
    netmasks:   nis [NOTFOUND=return] files	
    bootparams: files [NOTFOUND=return] nis
    publickey:  nis [NOTFOUND=return] files
    
    netgroup:   nis
    
    automount:  files nis
    aliases:    files nis
    
    # for efficient getservbyname() avoid nis
    services:   files nis
    sendmailvars:   files
  11. Reboot the boot server.

Booting the Target System

    Boot the target by entering the following in the target system console:


    # ok boot net /platform/sun4u/chorus.obp