ChorusOS 4.0 PowerPC 60x/750 Target Family Guide

ChorusOS 4.0 PowerPC 60x/750 Target Family Guide

This guide describes how to run the ChorusOSTM 4.0 product for the PowerPC 60x/750 processor family.

Preface

How This Guide is Organized

ChorusOS 4.0 PowerPC 60x/750 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 Installation Guide for Windows NT Hosts for a description of the installation process of the ChorusOS 4.0 product on a host workstation running Windows NT 4.0.

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:

PC/Windows NT Reference Host Environment

The Windows NT host reference configuration is as follows:


Note -

The serial line used for debugging with XRAY can only be used at 9600 bauds.


Cross Compiler

This development environment component is bundled with the ChorusOS 4.0 for PowerPC 60x/750 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 PowerPC 60x/750 product:

ChorusOS 4.0 Supported Features

The following table shows the ChorusOS kernel and operating system optional features that are available for the PowerPC 60x/750 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_LIBY [Limitation: the binaries making up the executing image of an actor (main program and dynamic libraries) must hold in a 32MB address range. Even if their total size is less than 32 MB, this is not garanteed in flat mode or for supervisor actors.]
   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_SPACEY [If the value for VIRTUAL_ADDRESS_SPACE is true, the value for ON_DEMAND_PAGING is true. If the value for VIRTUAL_ADDRESS_SPACE is false, the value for ON_DEMAND_PAGING is false.]
   On-demand paging ON_DEMAND_PAGINGY
 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 Y
  Driver for IDE disk IDE_DISK Y
  /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 Y
 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 PowerPC 60x/750 supports the following processors:

The ChorusOS 4.0 system for PowerPC 60x/750 supports the following reference BSPs:

genesis2 Reference BSP

Systems

The genesis2 reference BSP supports the following VME CPU boards (with additional MVME712 or MVME761 transition module - Motorola MCG), and ATX mother boards:

Devices

The genesis2 reference BSP supports the following on board devices:

Device Id 

ChorusOS Driver 

/cpu (time base and decrementer) 

sun:powerpc-(tb,dec)-timer 

/flash (FLASH memory) 

not supported 

/raven (PCI bridge) 

sun:powerpc-raven-pci 

/raven/cl-gd54xx (VGA) [VGA is only present on MVME3600.]

not supported 

/raven/dec21140 (on board ethernet) 

sun:pci-dec21x4x-ether 

/raven/ncr53c825 (SCSI HBA) 

 

 

/raven/ncr53c825/disk@t,l (SCSI disks) 

where t is the SCSI TARGET number 

where l is the LUN number 

sun:pci-ncr53c8xx-scsi_hba 

sun:scsi_hba-generic-scsi 

sun:scsi-disk-BSD 

/raven/ncr53c825/xxx (SCSI other) 

not supported 

/raven/universe (VME bridge) [The genesis2 BSP does not provide general purpose VME bus support. However, a minimal subset of the VME functionality is exported to the IPC layer for the sole purpose of enabling Chorus/IPC communication over the VME backplane.] [VME bridge is not present on MTX boards.]

not supported 

/raven/w83c553 (ISA bridge) 

sun:pci-w83c553-isa 

/raven/w83c553-ide (IDE disk) 

sun:pci-w83c553-ide_hba 

/raven/w83c553-ide (IDE other) 

not supported 

/raven/w83c553/fdd (floppy) 

not supported 

/raven/w83c553/kbd (keyboard) 

not supported 

/raven/w83c553/lpt (parallel) 

not supported 

/raven/w83c553/m48t559 (RTC) 

sun:bus-m48txx-(nvram, rtc) 

/raven/w83c553/m48t559 (NVRAM) 

sun:bus-m48txx-(nvram, rtc) 

/raven/w83c553/mouse (mouse) 

not supported 

/raven/w83c553/ns16550-1(UART) 

sun:bus-ns16550-uart 

/raven/w83c553/ns16550-2 (UART) 

sun:bus-ns16550-uart 

/raven/w83c553/z85230-1 (UART) 

sun:bus-z85230-uart 

/raven/w83c553/z85230-1 (HDLC) 

not supported 

/raven/w83c553/z85230-2 (UART) 

sun:bus-z85230-uart 

/raven/w83c553/z85230-2 (HDLC) 

not supported 

mcp750 Reference BSP

Systems

The mcp750 reference BSP supports the following CompactPCI CPU board:

Devices

The mcp750 reference BSP supports the following on board devices:

Device Id 

ChorusOS Driver 

/cpu (time base and decrementer) 

sun:powerpc-(tb,dec)-timer 

/flash (FLASH memory) 

not supported 

/raven (PCI bridge) 

sun:powerpc-raven-pci 

/raven/dec21140 (on board ethernet) 

sun:pci-dec21x4x-ether 

/raven/dec21154 (PCI-PCI bridge) 

sun:pci-dec2115x-pci 

/raven/vt82c586b (ISA bridge) 

sun:pci-vt82c586-(bus,isa) 

/raven/vt82c586b/m48t559 (RTC) 

sun:bus-m48txx-(nvram,rtc) 

/raven/vt82c586b/m48t559 (NVRAM) 

sun:bus-m48txx-(nvram,rtc) 

/raven/vt82c586b/fdd (floppy) 

not supported 

/raven/vt82c586b/kbd (keyboard) 

not supported 

/raven/vt82c586b/lpt (parallel) 

not supported 

/raven/vt82c586b/mouse (mouse) 

not supported 

/raven/vt82c586b/ns16550-1 (UART) 

sun:bus-ns16550-uart 

/raven/vt82c586b/ns16550-2 (UART) 

sun:bus-ns16550-uart 

/raven/vt82c586b/z85230-1 (UART) 

not supported 

/raven/vt82c586b/z85230-1 (HDLC) 

not supported 

/raven/vt82c586b/z85230-2 (UART) 

not supported 

/raven/vt82c586b/z85230-2 (HDLC) 

not supported 

/raven/vt82c586b-usb 

not supported 

/raven/vt82c586b-ide (IDE disk) 

not supported 

/raven/vt82c586b-ide (IDE other) 

not supported 

Reference Target Platforms

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

MVME2300/2600/3600 Series (Motorola/MCG)

Type:

VME Board

Processors:

MPC603/604 (200-333 MHz)

Main memory:

16-64 MB

L2 cache:

0-512 KB

Bus bridges:

Processor to PCI, PCI to VME, PCI to ISA

Devices:

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

Firmware:

PPC1-Bug version 3.2/3.3

MTX603/604 Series (Motorola/MCG)

Type:

ATX Motherboard

Processors:

MPC603e/604e (100-300 MHz)

Main memory:

16-32 MB

L2 cache:

0-256 KB

Bus bridges:

Processor to PCI, PCI to ISA

Devices:

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

Firmware:

PPC1-Bug version 3.3

MVME2700 (Motorola/MCG)

Type:

VME Board

Processor:

MPC750 (233-366 Mhz)

Main memory:

16-64 MB

L2 cache:

1 MB

Bus bridges:

Processor to PCI, PCI to VME, PCI to ISA

Devices:

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

Firmware:

PPC1-Bug version 3.3

MCP750 (Motorola/MCG)

Type:

CompactPCI System Board

Processor:

MPC750 (233-366 Mhz)

Main memory:

32-64 MB

L2 cache:

1 MB

Bus Bridges:

Processor to PCI, PCI to cPCI, PCI to ISA

Devices:

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

Firmware:

PPC1-Bug version 3.7

Validated Reference Targets

This section describes the precise platforms used to run the Sun QA tests.

How to Build and Boot a System Image on the Target

The procedures below concern PowerPC target systems such as genesis2 or mcp750 reference platforms.

Building a ChorusOS 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 or the ChorusOS 4.0 Installation Guide for Windows NT Hosts for instructions.

  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:

    Set the environment variable... 

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

    DIR

    /opt/SUNWconn/SEW/4.0/chorus-powerpc 

    on a Solaris host 

    DIR

    /c/cygnus/cygwin-b20/Chorus/opt/SUNWconn/SEW/4.0/chorus-powerpc 

    on a Windows NT host 

  3. Make sure your PATH has been set correctly to include the directory install_dir/4.0/chorus-powerpc/tools/host/bin where the default install_dir is /opt/SUNWconn/SEW.

    If your host is running the Solaris operating environment, also make sure that your PATH includes /usr/openwin/bin, which contains the imake utility.

    If your host is running Windows NT, also make sure that your PATH includes /usr/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/powerpc \ 
    $DIR/src/nucleus/bsp/powerpc/genesis2 \ 
    $DIR/src/iom
    

    Depending on the target system architecture, you may need to enter $DIR/src/nucleus/bsp/powerpc/mcp750 instead of $DIR/src/nucleus/bsp/powerpc/genesis2 as the next to last argument.


    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/powerpc \ 
    $DIR/src/nucleus/bsp/powerpc/genesis2 \ 
    $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.RAM.


    Note -

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


    $ make kernonly
    

Placing the System Image on the Boot Server

Note -

The standard way to boot a system image built on a Windows NT host workstation is to copy the system image to a Solaris boot server and boot from the Solaris system. See the ChorusOS 4.0 Installation Guide for Solaris Hosts for instructions on how to configure the boot server.


  1. Copy the system image to the boot server.

    For example, on a Solaris host workstation:


    $ rcp chorus.RAM boot_server:/tftpboot
    

    Or, on a Windows NT host workstation, using the Cygwin tools:


    $ rcp -b chorus.RAM boot_server.user:/tftpboot
    

    The -b option causes rcp to transfer the system image as a binary file rather than an ASCII file, which is the default.

    It is assumed that the user has access to perform this copy on the Solaris boot_server system and therefore that the user is the same on the Windows NT host and on the Solaris boot server .

  2. Verify that everyone has at least read access to the system image on the boot server.

    For example, on a Solaris host workstation:


    $ rlogin boot_server
    Password: password_for_user
    $ ls -l /tftpboot/chorus.RAM
    -rwxr-xr-x   1 user    group     1613824 Dec 15 17:33 chorus.RAM*

    As rlogin(1) is not available as part of the Cygwin tools, you should use the Windows NT Telnet application to log in from the Windows NT host to the boot server. You can run Telnet by selecting Start | Programs | Accessories | Telnet from the Start menu.

Booting the Target System Using PPC1-Bug Firmware
  1. Restart the target system.

  2. Change the network configuration of the target system through the target system console:


    PPC1-Bug> niot
    Controller LUN =00? 
    Device LUN     =00? 
    Node Control Memory Address =01F9E000? 
    Client IP Address      =129.157.196.64?         <- target IP 
    Server IP Address      =129.157.196.1?          <- boot server IP
    Subnet IP Address Mask =255.255.255.0? 
    Broadcast IP Address   =129.157.196.255? 
    Gateway IP Address     =0.0.0.0? 
    Boot File Name ("NULL" for None)     =chorus.RAM?       <- file to load
    Argument File Name ("NULL" for None) =? 
    Boot File Load Address         =00400000?       <- configured start 
    Boot File Execution Address    =00400000?       <- addr of the system Bank
    Boot File Execution Delay      =00000000? 
    Boot File Length               =00000000? 
    Boot File Byte Offset          =00000000?
  3. Disable PReP-Boot mode and then update NVRAM through the target system console:


    PPC1-Bug> env
    ...
    Network PReP-Boot Mode Enable [Y/N] =N?        <- must be turned off
  4. Load and boot the ChorusOS system image:


    PPC1-Bug> nbo
    Network Booting from: DEC21140, Controller 0, Device 0
    Device Name: /pci@80000000/pci1011,9@e,0:0,0
    Loading: chorus.RAM
    
    Client IP Address      = 129.157.173.193
    Server IP Address      = 129.157.196.1
    Gateway IP Address     = 0.0.0.0
    Subnet IP Address Mask = 255.255.255.0
    Boot File Name         = chorus.RAM
    Argument File Name     = 
    
    Network Boot File load in progress... To abort hit <BREAK>
    
    Bytes Received =&1875968, Bytes Loaded =&1875968
    Bytes/Second   =&208440, Elapsed Time =9 Second(s)
    >
    ..... Booting Chorus .....
    
    ChorusOS r4.0.0 for PowerPC - Motorola Genesis 2 family
    Copyright (c) 1999 Sun Microsystems, Inc. All rights reserved.
     
    Kernel modules : CORE SCHED_FIFO SEM MIPC IPC_L MEM_VM KDB TICK MON ENV ETIMER
    LOG LAPSAFE MUTEX EVENT MEM_DFPXM UI DATE PERF TIMEOUT LAPBIND DKI 
    MEM: memory device 'sys_bank' vaddr 0xfaaf3000 size 0x1c9000
    /cpu: sun:powerpc-(timebase,dec)-timer driver started
    /raven: sun:powerpc-raven-(bus,pci) driver started
    /raven/w83c553: sun:pci-w83c553-(bus,isa) driver started
    /raven/w83c553/i8254: sun:bus-i8254-timer driver started
    /raven/w83c553/m48t559: sun:bus-m48txx-(nvram,rtc) driver started
    /raven/w83c553/ns16550-2: sun:bus-ns16550-uart driver started
    /raven/w83c553-ide: sun:pci-w83c553-ide driver started
    /raven/dec-21140: 10BaseT (Twisted Pair) link auto-detected
    /raven/dec-21140: Ethernet address 08:00:3e:28:38:97
    /raven/dec-21140: sun:pci-dec21x4x-ether driver started
    MEM: VM resource manager daemon starts
    MEM: PXM mapper daemon starts (site 0x1)
    MEM: PXM fs flush daemon starts
    IOM: SOFTINTR DISABLED (-31). Using an Interrupt thread
    IOM Init cluster space from: 0xfaacf000 to: 0xfaaef800 [65 items of size: 2048]
    IOM Init io-buf pool from: 0xfaaef850 to: 0xfaaefd70 [8 items of size: 164]
    IOM Init raw io-buffer pool from: 0xfaaefd70 to: 0xfaaf11f0 [32 items of size: 164]
    Copyright (c) 1992-1998 FreeBSD Inc.
    Copyright (c) 1982, 1986, 1989, 1991, 1993
            The Regents of the University of California.  All rights reserved.
    
    max disk buffer space = 0x10000
    /rd: sun:ram--disk driver started
    C_INIT: started
    C_INIT: /image/sys_bank mounted on /dev/bd01
    C_INIT: found /image/sys_bank/sysadm.ini
    C_INIT: executing start-up file /image/sys_bank/sysadm.ini
    bpf: ifeth0 attached
    IOM: ifnet ifeth0 bound to device /raven/dec-21140
    bpf: lo0 attached
    C_INIT: Internet Address: 129.157.173.193
    C_INIT: RARP Network Initialization OK
    ifeth0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet 129.157.173.193 netmask 0xffff0000 broadcast 129.157.255.255
            ether 08:00:3e:28:38:97 
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
            inet 127.0.0.1 netmask 0xff000000 
     	C_INIT: rshd started