ChorusOS 5.0 Installation Guide

Part II Building and Booting ChorusOS on Target Systems

This part describes the procedure for building and booting ChorusOS system images on UltraSPARC IIi/IIe, x86/Pentium, PowerPC 750/74x0, PowerPC SBC8260, and MPC8xx targets.

For information on the target system requirements as well as the ChorusOS packages available with a particular target, see the appropriate ChorusOS 5.0Target Family Guide.

Chapter 5 Setting Up a Boot Server

A boot server system runs services that allow a ChorusOS target system to obtain a system image at boot time over the network.

This chapter explains how to configure a boot server running on the Solaris operating environment to respond to Reverse Address Resolution Protocol (RARP) requests from target systems and download ChorusOS system images to targets through Trivial File Transfer Protocol (TFTP). Both services must run on the same server. For information on setting up with other protocol services, see the ChorusOS 5.0 System Administrator's Guide.


Note -

The following procedures apply to a system using NIS, not NIS+.

If you want to use DHCP, see the TCP/IP and Data Communications Administration Guide at http://www.oracle.com/technetwork/indexes/documentation/index.html.


This chapter includes the following sections:

Boot Process

The following figure shows how the boot process occurs, in chronological order from top to bottom:

Figure 5-1 Boot Process

Graphic

Typically (though not for all targets), the target system bootstraps, and broadcasts a RARP request that says something like, "My Ethernet address is 8:0:20:a7:d6:f3. Could some system please tell me my IP address?" A boot server responds to the target with the IP address that it learned through /etc/ethers, NIS, DNS, or another service.

If RARP returns an IP address successfully, the target attempts to download the configuration file, /tftpboot/target_IP_address_in_hexadecimal_form, from the boot server that responded to the RARP request. This file identifies the system image file that the target is requesting.


Note -

If the target system cannot obtain its IP address through RARP, it sends a Bootstrap Protocol (BOOTP) or Dynamic Host Configuration Protocol (DHCP) request.


For example, if the target has IP address 129.157.197.88, the boot server address is 129.157.197.144, and the system image file is /tftpboot/chorus.bmon, the configuration file, /tftpboot/819DC558, would contain the following:

AUTOBOOT=YES
BOOTFILE=chorus.bmon
BOOTSERVER=129.157.197.144

After reading the configuration file, the target sends a TFTP request to the boot server saying, "Send me my system image file, system.image," where system.image is the path to the system image file. The boot server responds by downloading the system image file onto the target system.


Caution - Caution -

The following procedures assume that you set up only one boot server that responds to RARP requests from the target system and delivers ChorusOS system images to targets through TFTP.


Setting Up RARP Services

RARP service allows the target system to obtain its IP address over the Ethernet from the boot server.


Note -

If /tftpboot exists at boot time, a system running the Solaris operating environment starts the RARP daemon as part of normal system initialization.

The RARP daemon should run on a boot server whose IP network is the same as that of the target. See the TCP/IP and Data Communications Administration Guide and in.rarpd(1M) for details.


To Set Up RARP Services
  1. Check /etc/nsswitch.conf on the boot server for lines starting with ethers:


    $ grep ^ethers /etc/nsswitch.conf
    

    If the output starts with 

    Then 

    ethers: nis

    For example: 

    ethers: nis [NOTFOUND=return] files

    Proceed to Step 2.

    ethers: files

    For example: 

    ethers: files nis [NOTFOUND=return]

    Proceed to Step 3.

    Something other than the preceding choices 

    Ask your NIS administrator for help.

  2. Verify whether the target is listed in the map ethers.byname:


    $ ypmatch target_hostname ethers
    

    If the output is 

    Then 

    target_Ethernet_address target_hostname

    Proceed to Step 4.

    Can't match key target_hostname in map ethers.byname. Reason: no such key in map.

    Verify the target Ethernet address, and then proceed to Step 3.

  3. Add the following line to /etc/ethers on the boot server:

    target_Ethernet_address               target_hostname
    
  4. Start the RARP daemon on the boot server:


    $ su
    Password: superuser_password
    # /usr/sbin/in.rarpd -a
    

Setting Up TFTP Services

The TFTP service allows the target system to obtain a ChorusOS system image from the boot server at boot time.


Note -

Due to network limitations in the TFTP, you may encounter difficulties when downloading large system images through TFTP.

Do not download images larger than 16 MB.


To Set Up TFTP Services
  1. Create a /tftpboot directory on the boot server--unless it already exists:


    $ ls /tftpboot
    /tftpboot: No such file or directory
    $ su
    Password: superuser_password
    # mkdir /tftpboot
    # chown user:group /tftpboot
    # exit
    $ chmod 664 /tftpboot
    

    The preceding commands allow user and group to write system images and boot configuration files to /tftpboot.

  2. To enable TFTP services as part of normal system initialization, remove the comment character, #, from the TFTP daemon line in /etc/inetd.conf on the boot server:

    tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
  3. To start the TFTP daemon on the boot server, restart inetd:


    $ su
    Password: superuser_password
    # ps -aef | grep inetd
        root   pid     1  0   Dec 15 ?        0:00 /usr/sbin/inetd -s
    # kill -1 pid
    # exit
    

Chapter 6 Building and Booting a ChorusOS System for an UltraSPARC Target

This chapter describes how to build and boot a ChorusOS system for UltraSPARC IIi/IIe processor families. For information on the system requirements and the packages available with UltraSPARC IIi/IIe targets, see the ChorusOS 5.0 Target Family Guide (SPARC Platform Edition).


Note -

UltraSPARC IIi/IIe target systems do not boot system images directly, but instead require inetboot to boot.

As a result, the boot procedure that follows differs from the procedure described in Chapter 5, Setting Up a Boot Server, and requires that you use a boot server that reads local files instead of the NIS database.


This chapter includes the following sections:

Overview of the Process

Figure 6-1 Building and Booting a ChorusOS System for UltraSPARC Targets

Graphic

Building the System Image

The following procedure assumes that the Sun Embedded Workshop software has already been correctly installed on the host workstation. See Chapter 1, Installing on the Host for installation instructions.

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


    $ mkdir build_dir
    $ cd build_dir
    

    Note -

    The file system containing the build_dir directory must be accessible by NFS from the remote ChorusOS target.


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

    For example:


    $ export DIR=/opt/SUNWconn/SEW/5.0-UltraSPARC/chorus-usparc
    
  3. Verify that the PATH environment variable has been set correctly to include the directory:

    install_dir/chorus-usparc/tools/host/bin

    where the default install_dir is /opt/SUNWconn/SEW/5.0-UltraSPARC.

    The PATH environment variable must include /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 \ 
      $DIR/src/nucleus/bsp/usparc/cpxxxx 
      

      Note -

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


      $ configure -b $DIR/kernel \ 
      $DIR/os \ 
      $DIR/opt/X11 \ 
      $DIR/tools \ 
      -s $DIR/src/nucleus/bsp \ 
      $DIR/src/nucleus/bsp/usparc/cpxxxx \ 
      $DIR/src/opt/examples
      

    • If you are building the system image from a source distribution, see the ChorusOS 5.0 Source Delivery Guide.

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

  5. Generate the build environment:


    $ make
    
  6. Define the target board using the TARGET feature using the configurator(1CC):


    $ configurator -set TARGET=CP1500
    

    The following options are available with the TARGET feature:

    • CP1500 (default)

    • CP2000

  7. Build the system image:


    $ make chorus
    

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


    Note -

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


    $ make kernonly
    

  8. Generate the NFS root file system:


    $ make root
    

    This command creates a root directory in the build directory. The root directory contains binary and configuration files that are accessed by the target system.

Configuring the Boot Server

The following procedure requires that the target system and boot server must be on the same subnet.

See Chapter 5, Setting Up a Boot Server. for instructions on how to enable TFTP and RARP services on the boot server.

  1. Become superuser on the boot server:


    $ su
    Password: superuser_password
    # 
  2. Copy the inetboot.sun4u file, that is, install_dir/chorus-usparc/opt/unsupported/inetboot.sun4u to the /tftpboot directory, where, the install_dir is /opt/SUNWconn/SEW/5.0-UltraSPARC.

  3. Create a soft link from the inetboot.sun4u file to a file called /tftpboot/target_IP_address_in_hex.

    For example, the file for the target system with IP address 129.157.197.88 is called 819DC558, 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

    To create the soft link for the preceding examples, use the following commandS:


    # ln -s /tftpboot/inetboot.sun4u 819DC558
    
  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:

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

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


    Note -

    Create the bootparams file if it doesn't exist.


  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 Ethernet address (such as 8:0:20:a7:d6:f3) and target is the target system hostname.

  9. Edit /etc/dfs/dfstab to include the following:

    share -F nfs -o rw -d "ChorusOS boot"  /export/home

    For the directory to be shared, you must stop and then restart the NFS server on the host workstation as follows:


    $ su
    Password: superuser_password
    # /etc/init.d/nfs.server stop
    # /etc/init.d/nfs.server start
    
  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 next 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 UltraSPARC Target System

  1. Enter the following in the target system console:


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

The ChorusOS system image is running on the target.

For information on what to do next, see About ChorusOS 5.0 Documentation, which will guide you to the appropriate information for your task.

Chapter 7 Building and Booting a ChorusOS System for an x86/Pentium Target

This chapter describes how to install ChorusOS for the x86/Pentium processor family. For information on the system requirements and the packages available with x86/Pentium targets, see ChorusOS 5.0 Target Family Guide (Intel Platform Edition).


Note -

For the procedure explained in this chapter, you will need a terminal-type serial cable whose wires 2 and 3 are crossed and 7 (ground) is straight.


Overview of the Process

This section describes the process for building and booting a ChorusOS system image on x86/Pentium targets.

Figure 7-1 Building and Booting a ChorusOS System for x86/Pentium Targets

Graphic

Building the System Image


Note -

The following procedure assumes that the development environment has already been correctly installed on the host workstation. See Chapter 1, Installing on the Host, for instructions.


To Build the System Image
  1. Create and change to a build directory where you will build the system image:


    $ mkdir build_dir
    $ cd build_dir
    

    Note -

    The file system containing the build_dir directory must be accessble by NFS from the remote ChorusOS target.


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

    For example:


    $ export DIR=/opt/SUNWconn/SEW/5.0-x86/chorus-x86
    
  3. The PATH must be set correctly to include the directory:

    install_dir/chorus-x86/tools/host/bin,

    where the default install_dir is /opt/SUNWconn/SEW/5.0-x86.

    The PATH environment variable must include /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 \ 
      $DIR/src/nucleus/bsp/x86/pc
      

      Note -

      The preceding command configures the build directory to include components installed during a "Default Install". This command 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, to include everything in your build environment:


      $ configure -b $DIR/kernel \ 
      $DIR/os \ 
      $DIR/tools \ 
      $DIR/opt/X11 \ 
      -s $DIR/src/nucleus/bsp \ 
      $DIR/src/nucleus/bsp/x86/pc \ 
      $DIR/src/opt/examples
      

    • If you are building the system image from a source distribution, see the ChorusOS 5.0 Source Delivery Guide.

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

  5. Generate the build environment:


    $ make
    
  6. (Optional) Configure the system image:


    Note -

    If you have only PCI Ethernet adapters, skip this step.


    ISA Ethernet adapters require that you provide configuration information by setting an ETHER_id environment variable in the system image configuration with a command of the form:


    $ configurator -setenv ETHER_id=name,irq,io_base,mem_base
    

    where:

    id

    A decimal value ranging from 0 to 9.

    Up to ten ISA Ethernet adapters can be declared using ETHER_0, ETHER_1, ...ETHER_9

    name

    The type of the device: EL3, NE2000, or SMC

    irq

    A decimal value representing the interrupt request level on the ISA bus

    io_base

    A hexadecimal value representing the base for I/O ports, such as 0x300

    mem_base

    A hexadecimal value representing the base for shared memory, such as 0xD0000


    Note -

    The memory base parameter is required for SMC Ethernet adapters only.


    For example, the following command configures the build environment for one SMC Ethernet adapter with IRQ 9, I/O base at 0x240, and memory base at 0xD0000:


    $ configurator -setenv ETHER_0=SMC,9,0x240,0xD0000
    

    The following command configures the build environment for a system with both an NE2000 adapter and an EL3 adapter:


    $ configurator -setenv ETHER_0=NE2000,5,0x300
    $ configurator -setenv ETHER_1=EL3,7,0x300
    
  7. Build the system image:


    $ make chorus
    

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


    Note -

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


    $ make kernonly
    

  8. Generate the NFS root file system:


    $ make root
    

    This command creates a root directory in the build directory that contains binary and configuration files to be accessed by the target system.

To Place the System Image on the Boot Server

See Chapter 5, Setting Up a Boot Server, 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.bmon boot_server:/tftpboot
    
  2. Verify that everyone has at least read access to the system image on the boot server.

    For example:


    $ rlogin boot_server
    Password: password_for_user
    $ ls -l /tftpboot/chorus.bmon
    -rwxr-xr-x   1 user    group     1613824 Dec 15 17:33 chorus.bmon*
  3. While logged in to the boot server, create a configuration file for the target.

    For a target system with IP address 129.157.197.88 using a boot server with IP address 129.157.197.144, the configuration file contains the following:

    AUTOBOOT=YES
    BOOTFILE=chorus.bmon
    BOOTSERVER=129.157.197.144

    The configuration file is named /tftpboot/819DC558.ChorusOS.5.0, which is constructed from the target system IP address 129.157.197.88 as a concatenation of the following:

    • 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


    Note -

    The system first attempts to find the configuration file with the .ChorusOS.5.0 extension. If no such file exists, the system attempts to find a configuration file with the .ChorusOS.4.0 extension.


Creating a bootMonitor Diskette


Note -

For details about how bootMonitor works, see bootMonitor(1M).


  1. Create a directory where you will build a bootMonitor image:


    $ mkdir bootmon
    $ cd bootmon
    

    Note -

    This directory is different from build_dir, the directory where you build the system image.


  2. Configure the bootmon directory based on the binary distribution:


    $ configure -b $DIR/kernel \ 
    -s $DIR/src/nucleus/bsp \ 
    $DIR/src/nucleus/bsp/x86/pc \ 
    
  3. Generate the environment:


    $ make
    
  4. Edit the special mini profile, bootmon/conf/mini, so that it reads:

    #
    #	Mini Profile
    #
    
    #
    #	Microkernel features
    #
    -set USER_MODE=false
    -set POSIX_SHM=false # add manually
    -set VIRTUAL_ADDRESS_SPACE=false
    -set SEM=false
    -set EVENT=false
    -set MONITOR=false
    -set TIMER=false
    -set DATE=false
    -set RTC=false
    -set PERF=false
    -set IPC=false
    -set MIPC=false
    -set LAPBIND=true # Change this from 'false' to 'true'
    -set LAPSAFE=true # Change this from 'false' to 'true'
    -set MON=false
    -set LOG=false
  5. Configure the environment for bootMonitor:


    $ configurator -p conf/mini
    $ configurator -set LOADER=lilo
    $ configurator -setenv BOOTCONF=RARP
    

    Note -

    For details about the BOOTCONF environment variable and available options, see the bootConfig(1M) and bootAgent(1M) man pages.


  6. (Optional) Configure the environment for any ISA Ethernet adapters on the target system.

    See Step 6 of the procedure "To Build the System Image" for examples on how to configure the environment for different adapters.

  7. Build a bootMonitor image:


    $ make bootMonitor
    

    The resulting image file is located in the directory bootmon, and is called bootMonitor.image.

  8. Copy the bootMonitor image to a diskette:


    $ su
    Password: superuser_password
    # /etc/init.d/volmgt stop
    # fdformat -v /dev/fd0
    Formatting 1.44 MB in /dev/rfd0
    Press return to start formatting floppy.
    ...................................................
    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    # cp bootMonitor.image /dev/fd0
    # /etc/init.d/volmgt start
    volume management starting.
    # eject
    /vol/dev/rdiskette0/unlabeled can now be manually ejected
    # exit
    

Booting the Target Using a bootMonitor Diskette

  1. Shut down the system.

  2. To view console output, connect a serial line from the first serial line port on the target system to the host workstation.

    Use a terminal-type serial cable, whose wires 2 and 3 are crossed and 7 (the ground) is straight.


    Note -

    A serial cable in which all wires are parallel does not work.


  3. Add a line to the host workstation /etc/remote file to make it possible to connect through the serial line using the tip(1) utility.

    For example:

    target_hostname:dv=/dev/cua/a:br#9600
  4. Connect to the target system using the tip(1) utility:


    $ tip target_hostname
    connected
  5. Place the bootMonitor diskette in the drive.

  6. Reboot, making sure the BIOS causes the system to boot first from the diskette.

    If the system boots correctly, messages similar to the following are displayed on the console in the terminal where you issued the tip(1) command:


    RAM size: 0xc48000 bytes
    CPU: i486DX (486-class CPU)
    Adding ETHER_0 (SMC,9,0x240,0xD0000) in the device tree
    
    ChorusOS r5.0.0 for Intel x86 - Intel x86 PC/AT
    Copyright (c) 2001 Sun Microsystems, Inc. All rights reserved.
    Sun Proprietary/Confidential
    US Government Rights
    Use, duplication, or disclosure by the U.S. Government is subject to
    restrictions set forth in the Chorus Software License Agreement and as
    provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DRAS
    252.227-7013(c)(ii) (OCT 1988), FAR 12.212(a)(1995), FAR 52.227-19, or
    FAR 52.227-14 (ALT III), as applicable.
    Sun Microsystems, Inc.
    
    Kernel modules : CORE SCHED_CLASS [ FIFO RR RT ] MEM_FLM KDB TICK ENV
    BLACKBOX MUTEX PERF TIMEOUT LAPBIND DKI 
    /pci/i8259: sun:pci-i8259-pic driver started
    /pci: sun:x86-bios-(bus,pci,mngt) driver started
    /pci/pci-isa: sun:pci-bios-(bus,isa) driver started
    /pci/pci-isa/smc1660-0: Ethernet address : 00:00:c0:cb:9f:65
    /pci/pci-isa/smc1660-0: sun:isa-smc1660-ether driver started
    /pci/pci-isa/i8254: sun:bus-i8254-timer driver started
    TICK: using timer device /pci/pci-isa/i8254/i8254, at 100 Hz
    
    Boot Monitor Loader v1.3 (env BOOTCONF)
    
    env BOOTCONF: 'RARP'
    *** booting using 'RARP' agent
    Unit: 0  device name: smc1660-0
    
    Using unit 0
    
    My IP 129.157.173.209, RARP Server IP 129.157.173.59
    
    Loading file 819DADD1.ChorusOS.5.0 on server 129.157.173.59: loaded!
    
    Loading file chorus.sitar on server 129.157.173.59: loaded!
    
    
    Boot new image ...
    DebugAgent: trying to sync with DebugServer... 
    RAM size: 0x2000000 bytes
    CPU: Pentium/P55C (586-class CPU)
      Origin = "GenuineIntel"  Id = 0x543  Stepping = 3
    Adding ETHER_0 (SMC,9,0x240,0xD0000) in the device tree
    
    ChorusOS r5.0.0 for Intel x86 - Intel x86 PC/AT
    Copyright (c) 2001 Sun Microsystems, Inc. All rights reserved.
    Sun Proprietary/Confidential
    US Government Rights
    Use, duplication, or disclosure by the U.S. Government is subject to
    restrictions set forth in the Chorus Software License Agreement and as
    provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DRAS
    252.227-7013(c)(ii) (OCT 1988), FAR 12.212(a)(1995), FAR 52.227-19, or
    FAR 52.227-14 (ALT III), as applicable.
    Sun Microsystems, Inc.
    
    Kernel modules : CORE SCHED_CLASS [ FIFO RR RT ] SEM MIPC IPC_L MEM_VM
    KDB TICK MON ENV ETIMER LOG BLACKBOX LAPSAFE VTIMER MUTEX EVENT
    MEM_DFPXM RTMUTEX UI DATE PERF TIMEOUT LAPBIND DKI  MONITOR MKSTAT
    MEM: memory device 'sys_bank' vaddr 0x7ba9f000 size 0x31c000
    /pci/i8259: sun:pci-i8259-pic driver started
    /pci: sun:x86-bios-(bus,pci,mngt) driver started
    /pci/pci-isa: sun:pci-bios-(bus,isa) driver started
    /pci/pci-isa/smc1660-0: Ethernet address : 00:e0:29:12:84:de
    /pci/pci-isa/smc1660-0: sun:isa-smc1660-ether driver started
    /pci/pci-isa/i8254: sun:bus-i8254-timer driver started
    /pci/pci-isa/mc146818: sun:bus-mc146818-(rtc,timer) driver started
    /pci/pci-isa/ns16550-2: sun:bus-ns16550-uart driver started
    /pci/pci8086,7100@0,0: device node is created by sun:pci-enumerator-
    /pci/pci8086,7110@1,0: device node is created by sun:pci-enumerator-
    /pci/pci8086,7111@1,1: device node is created by sun:pci-enumerator-
    /pci/pci8086,7112@1,2: device node is created by sun:pci-enumerator-
    /pci/pci8086,7113@1,3: device node is created by sun:pci-enumerator-
    /pci/pci102b,51b@b,0: device node is created by sun:pci-enumerator-
    /pci/pci8086,7111@1,1: sun:pci-piix-ata driver started
    TICK: using timer device /pci/pci-isa/i8254/i8254, at 100 Hz
    DATE: using rtc device /pci/pci-isa/mc146818
    MEM: VM resource manager daemon starts
    MEM: PXM mapper daemon starts (site 0x1)
    MEM: PXM fs flush daemon starts
    C_OS Init Copyright 1997, 1998, 1999, 2000, 2001 Sun Microsystems
    C_OS Init FreeBSD 4.1-RELEASE
    C_OS Init malloc space from: 0x7b8df000 to: 0x7b9cf000 [240 items of
    size: 4096]
    C_OS Init cluster space from: 0x7b9cf000 to: 0x7ba8f800 [129 items of
    size: 2048]
    C_OS Init callout pool from: 0x7ba8f890 to: 0x7ba90c10 [208 items of
    size: 24]
    C_OS Init callwheel from: 0x7ba90c10 to: 0x7ba91410 [256 items of size:
    8]
    C_OS Init io-buf pool from: 0x7ba91410 to: 0x7ba94610 [64 items of size:
    200]
    C_OS Init raw io-buffer pool from: 0x7ba94610 to: 0x7ba95f10 [32 items
    of size: 200]
    C_OS Init pid hash table from: 0x7ba95f50 to: 0x7ba95f90 [16 items of
    size: 4]
    C_OS Init pgrp hash table from: 0x7ba95f90 to: 0x7ba95fd0 [16 items of
    size: 4]
    C_OS Init ui hash table from: 0x7ba95fd0 to: 0x7ba95fe0 [4 items of
    size: 4]
    C_OS Init Current date: Thu Sep   6 14:12:55 GMT 2001
    
    C_OS Init maxsockets 128 maxfiles 128 nmbclusters 128
    C_OS Init max disk buffer space = 0x120000
    
    DISK: warning -- svDeviceLookup(disk) failed (-7)
    CDROM: warning -- svDeviceLookup(cdrom) failed (-7)
    /rd: sun:ram--disk driver started
    C_OS warning: Initialization of DEV_NVRAM feature fails
    sysevent: system events configured.
    sysevent: default queues: 0:(1,128) 1:(1,128) 2:(64,512) 3:(1,128) 
    C_OS Init Real-time signals on: posix_sigqueue_max 32
    C_OS Init initproc created pid=1 (init)
    C_OS Init initproc created pid=1 (init)
    C_OS Init initproc created pid=1 (init)
    C_INIT: console started
    C_INIT: /image/sys_bank mounted on /dev/bd00
    C_INIT: found /image/sys_bank/sysadm.ini
    C_INIT: executing start-up file /image/sys_bank/sysadm.ini
    iomMakeDevHandler name = bpf
    iomMakeDevHandler name = bpf
    iomMakeDevHandler name = ifeth
    bpf: ifeth0 attached
    C_OS: ifeth0 bound to device /pci/pci-isa/smc1660-0
    iomMakeDevHandler name = lo
    bpf: lo0 attached
    ifeth0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet 129.157.173.109 netmask 0xffff0000 broadcast
    129.157.255.255
            ether 00:e0:29:12:84:de 
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
            inet 127.0.0.1 netmask 0xff000000 
    C_INIT: rshd started
  7. Issue a command to the target system.

    For example:


    $ rsh target_hostname mount
    root_device on / (pdevfs)
    devfs on /dev (pdevfs)
    devfs on /image (pdevfs)
    /dev/bd00 on /image/sys_bank (msdos)

The ChorusOS system image is running on the target.

For information on what to do next, see About ChorusOS 5.0 Documentation, which will guide you to the appropriate information for your task.

Chapter 8 How to Build and Boot a ChorusOS System for a PowerPC Target

This chapter describes how to install ChorusOS 5.0 for the PowerPC 750, 74x0, and 8260 processors. For information on the system requirements and the packages available with PowerPC 750/74x0/8260 targets, see the ChorusOS 5.0 Target Family Guide (PowerPC Platform Edition).

The procedures below concern the following target systems:

This chapter includes the following sections:

Building and Booting a System Image on PowerPC 750/74x0 Target Systems

This section describes the process for building and booting a ChorusOS system image on PowerPC 750/74x0 targets systems.

This section includes the following:

Overview of the Process

This section provides an overview of the methods of building and booting a ChorusOS system image on PowerPC 750/74x0 target systems.

Figure 8-1 Building and Booting a ChorusOS System for PowerPC 750/74x0 Targets

Graphic

Building a ChorusOS System Image

The following procedure assumes that the ChorusOS product has already been correctly installed on the host workstation. See Part I, Installing on the Host, 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:


    $ export DIR=/opt/SUNWconn/SEW/5.0-PowerPC/chorus-powerpc
    
  3. The PATH must be set correctly to include the directory:

    install_dir/chorus-powerpc/tools/host/bin

    where the default install_dir is /opt/SUNWconn/SEW/5.0-PowerPC.

    The PATH environment variable must include /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 \ 
      $DIR/src/nucleus/bsp/powerpc/mcp7xx
      

      Note -

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


      $ configure -b $DIR/kernel \ 
      $DIR/os \ 
      $DIR/opt/X11 \ 
      $DIR/tools \ 
      -s $DIR/src/nucleus/bsp \ 
      $DIR/src/nucleus/bsp/powerpc/mcp7xx \ 
      $DIR/src/opt/examples
      

    • If you are building from the source distribution, see the ChorusOS 5.0 Source Delivery Guide.

    As a result of configuration, build_dir contains the Makefile, which generates the build environment, and the 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 microkernel:


    $ make kernonly
    

Placing the System Image on 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
    
  2. Verify that at least read permissions are available for 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*

Booting the MCP750/74x0 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.xxx.xx.x?         <- target IP 
    Server IP Address      =129.xxx.xx.x?         <- boot server IP
    Subnet IP Address Mask =255.xxx.xx.x? 
    Broadcast IP Address   =129.xxx.xx.x? 
    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(A)-Bug> nbo
    Network Booting from: DEC21140, Controller 0, Device 0
    Device Name: /pci@80000000/pci1011,9@e,0:0,0
    Loading: chorus.mcp750-8
    
    Client IP Address      = 129.157.173.137
    Server IP Address      = 129.157.173.59
    Gateway IP Address     = 0.0.0.0
    Subnet IP Address Mask = 255.255.255.0
    Boot File Name         = chorus.mcp750-8
    Argument File Name     = 
    
    Network Boot File load in progress... To abort hit <BREAK>
    
    Bytes Received =&3321856, Bytes Loaded =&3321856
    Bytes/Second   =&255527, Elapsed Time =13 Second(s)
    DebugAgent: trying to sync with DebugServer... >
    ..... Booting Chorus .....
    CORE: Floating Point unit enabled
    CORE: Vector unit (AltiVec) disabled
    MEM: warning -- kern.mem.pgTableSzLog2 < minimum recommended value (20)
    
    ChorusOS r5.0.0 for PowerPC - Motorola MCP(N)750 (pvr 0x00080202)
    Copyright (c) 2001 Sun Microsystems, Inc. All rights reserved.
    Sun Proprietary/Confidential
    US Government Rights
    Use, duplication, or disclosure by the U.S. Government is subject to
    restrictions set forth in the Chorus Software License Agreement and as provided
    in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DRAS 252.227-7013(c)(ii) (OCT
    1988), FAR 12.212(a)(1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as
    applicable.
    Sun Microsystems, Inc.
    
    Kernel modules : CORE SCHED_CLASS [ FIFO RR RT ] SEM MIPC IPC_L MEM_VM KDB TICK
    MON ENV ETIMER LOG BLACKBOX LAPSAFE MUTEX EVENT MEM_DFPXM UI DATE PERF TIMEOUT
    LAPBIND DKI 
    MEM: memory device 'sys_bank' vaddr 0xffc91000 size 0x329000
    /cpu: sun:powerpc-(timebase,dec)-timer driver started
    /raven: sun:powerpc-(raven,hawk)-(bus,mngt,pci) driver started
    /raven: sun:pci-generic-pcimngr pseudo-driver started
    /raven/mpic: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver started
    /falcon: sun:powerpc-(falcon,hawk-smc)-(bus,mngt) driver started
    /falcon/wdt@1: sun:bus-(raven,hawk,harrier)-wdtimer driver started
    /falcon/wdt@2: sun:bus-(raven,hawk,harrier)-wdtimer driver started
    /raven/pci1106,3038@b,2: device node is created by sun:pci-enumerator-
    /raven/pci1106,3040@b,3: device node is created by sun:pci-enumerator-
    /raven/pci1011,9@e,0: device node is created by sun:pci-enumerator-
    /raven/pci1057,4806@16,0: device node is created by sun:pci-enumerator-
    /raven/lcom: sun:pci-generic-(buscom-ctl,buscom-loc) driver started
    /raven/lcom: site 1 [0] is assigned to //raven/lcom
    /raven/vt82c586-isa: sun:pci-vt82c586-(bus,isa) driver started
    /raven/vt82c586-isa/i8259: sun:bus-i8259-pic driver started
    /raven/vt82c586-isa/i8237: sun:bus-i8237-dma driver started
    /raven/vt82c586-isa/i8254: sun:bus-i8254-timer driver started
    /raven/vt82c586-isa/m48t559: sun:bus-m48txx-(nvram,rtc,wdtimer) driver started
    /raven/vt82c586-isa/m48t559: Hardware watchdog armed & started
    /raven/vt82c586-isa/ns16550/2: sun:bus-ns16550-uart driver started
    /raven/vt82c586-isa/z8536: sun:bus-z8536-gpio driver started
    /raven/vt82c586-isa/z85230/a: /raven/vt82c586-isa/z8536 GPIO device is connected
    /raven/vt82c586-isa/z85230/a: DTR signal is connected
    /raven/vt82c586-isa/z85230/a: DSR signal is connected
    /raven/vt82c586-isa/z85230/a: RI  signal is connected
    /raven/vt82c586-isa/z85230/a: sun:bus-z85x30-uart device registered
    /raven/vt82c586-isa/z85230/b: /raven/vt82c586-isa/z8536 GPIO device is connected
    /raven/vt82c586-isa/z85230/b: DTR signal is connected
    /raven/vt82c586-isa/z85230/b: DSR signal is connected
    /raven/vt82c586-isa/z85230/b: RI  signal is connected
    /raven/vt82c586-isa/z85230/b: sun:bus-z85x30-uart device registered
    /raven/vt82c586-ata/0,0:
        Model: SunDisk SDCFB-48 Serial: MT30236295 Rev: vcb 1.4.
        Unknown device type (config=0x848a)
    /raven/vt82c586-ata/1,0:
        Model: WDC WD68AA Serial:  Rev: 82.10A
         CHS=13176/16/63. 0 sectors. 
    /raven/vt82c586-ata/1,1:
        Model: TOSHIBA CD-ROM XM-6502B Serial:  Rev: 1013
         ata-cdrom device, Removable, 12 bytes packet, DRQ fast, DMA
    /raven/vt82c586-ata/0,0: Using Mode: PIO1.
    /raven/vt82c586-ata/0,0: sun:ata-atadisk-disk driver started
    /raven/vt82c586-ata/1,0: Using Mode: PIO0.
    /raven/vt82c586-ata/1,0: sun:ata-atadisk-disk driver started
    /raven/vt82c586-ata/1,1: Using Mode: PIO4.
    /raven/vt82c586-ata/1,1: sun:ata-atacd-cdrom driver started
    /raven/vt82c586-ata: sun:pci-vt82c586-ata driver started
    /raven/pci1011,9@e,0: warning -- PHY is auto-detected at address 0x1
    /raven/pci1011,9@e,0: 100BaseTx Full Duplex link auto-detected
    /raven/pci1011,9@e,0: Ethernet address 08:00:3e:2f:5c:12
    /raven/pci1011,9@e,0: Rx buffers: 64*1520 Tx buffers: 64*1520
    /raven/pci1011,9@e,0: sun:pci-dec21x4x-(ether,mngt) driver started
    /raven/mpic/timer@0: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver
    started
    /raven/mpic/timer@1: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver
    started
    /raven/mpic/timer@2: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver
    started
    /raven/mpic/timer@3: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver
    started
    /falcon/flashControl-1: sun:bus-(falcon,hawk-smc)-flash-ctl driver device
    started
    /falcon/flashControl-2: sun:bus-(falcon,hawk-smc)-flash-ctl driver device
    started
    /falcon/intel28F400: flash control is activated
    /falcon/intel28F400: sun:bus-intel28Fxxx-flash driver started
    /falcon/amd29F040: flash control is activated
    /falcon/amd29F040: sun:bus-amd29xxx-flash driver started
    /busmux: BusMux communication driver started
    /busmux: /raven/lcom local BusCom connected
    /buseth: warning -- ether-addr property not found
    /raven/lcom/busmux/eth@0: Ethernet address 00:00:00:00:00:01
    /raven/lcom/busmux/eth@0: BusCom ethernet driver started
    TICK: using timer device /cpu, at 100 Hz
    DATE: using rtc device /raven/vt82c586-isa/m48t559
    MEM: VM resource manager daemon starts
    MEM: PXM mapper daemon starts (site 0x1)
    MEM: PXM fs flush daemon starts
    C_OS: Copyright 1997, 1998, 1999, 2000, 2001 Sun Microsystems
    C_OS: FreeBSD 4.1-RELEASE
    C_OS: Current date: Tue Oct  16 10:53:03 GMT 2001
    DISK: /dev/hd0 (/raven/vt82c586-ata/0,0) <SunDisk SDCFB-48>
      45MB, 734 cyl, 4 heads, 32 sec, 512 bytes/sec. LBA
    DISK: /dev/hd1 (/raven/vt82c586-ata/1,0) <WDC WD68AA>
      6485MB, 13176 cyl, 16 heads, 63 sec, 512 bytes/sec. 
    CDROM: /dev/cd0 (/raven/vt82c586-ata/1,1) <TOSHIBA CD-ROM XM-6502B> CDROM
        Reads: CD-R, CD-RW, CD-DA, CD-DA stream
        Audio: play
        Mechanism: ejectable tray, unlocked
    /rd: sun:ram--disk driver started
    C_INIT: console 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
    C_OS: ifeth0 bound to device /raven/pci1011,9@e,0
    ifeth0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet 129.157.173.137 netmask 0xffff0000 broadcast 129.157.255.255
            ether 08:00:3e:2f:5c:12 
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
            inet 127.0.0.1 netmask 0xff000000 
    C_INIT: rshd started

Booting the MCP750/74x0 Target System from Flash Using bootMonitor

  1. Configure the ChorusOS system image to be downloaded by bootMonitor:

    1. Set the LOADER to bmon:


      $ configurator -set LOADER=bmon
      $ make chorus
      

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


      Note -

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


      $ make kernonly
      

  2. Place the bootMonitor image on the boot server.

    See Chapter 5, Setting Up a Boot Server, 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.bmon boot_server:/tftpboot/sytem_image_name
      
    2. Verify that at least read permissions are available for the system image on the boot server. For example:


      $ rlogin boot_server
      Password: password_for_user
      $ ls -l /tftpboot/chorus.RAM.bmon
      -rwxr-xr-x   1 user    group     1613824 Dec 15 17:33 chorus.RAM.bmon*
    3. While logged in to the boot server, create a configuration file for the target.

      For a target system with IP address 129.157.173.199 using a boot server with IP address 129.157.173.144, the configuration file contains the following:

      AUTOBOOT=YES
             BOOTFILE=chorus.RAM.bmon
             BOOTSERVER=129.157.173.144

      The configuration file is named /tftpboot/819DADC7.ChorusOS.5.0, which is constructed from the target system IP address 129.157.173.199 as a concatenation of the following:

      • 129 in decimal translates to 81 in hexadecimal

      • 157 in decimal translates to 9D in hexadecimal

      • 173 in decimal translates to AD in hexadecimal

      • 199 in decimal translates to C7 in hexadecimal

      • (optional) A .ChorusOS.5.0 extension 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.5.0 extension. If no such file exists, the system attempts to find a configuration file without the .ChorusOS.5.0 extension.


  3. Create a bootMonitor image.

    See the bootMonitor(1M) man page for details about how bootMonitor works.

    1. Create a build directory where you will build a bootMonitor image:


      $ mkdir bootmon
      $ cd bootmon
      

      Not that this build directory is different from the directory where you build system images.

    2. Configure the bootmon directory:


      $ configure -b $DIR/kernel \ 
      -s $DIR/src/nucleus/bsp \ 
      $DIR/src/nucleus/bsp/powerpc/mcp7xx 
      
    3. Generate the build environment:


      $ make
      
    4. Edit the special /conf/mini profile in the bootmon directory so that it reads:

      #
             # Mini Profile
             #
             # Microkernel features
             #
             -set USER_MODE=false
             -set POSIX_SHM=false
             -set VIRTUAL_ADDRESS_SPACE=false
             -set SEM=false
             -set EVENT=false
             -set MONITOR=false
             -set TIMER=false
             -set DATE=false
             -set RTC=false
             -set PERF=false
             -set IPC=false
             -set MIPC=false
             -set LAPBIND=true # must be 'true'
             -set LAPSAFE=true # must be 'true'
             -set MON=false
             -set LOG=false
             -set DEBUG_SYSTEM=false
             -set SOLARIS_SYSEVENT=false

      Note -

      This is file is slightly different from the default mini file.


    5. Configure the build environment for bootMonitor:


      $ configurator -p conf/mini
      $ configurator -set BOOT_MODE=ROM
      $ configurator -set LOADER=ppc1-bug
      $ configurator -setenv BOOTCONF=RARP
      

      Note -

      For details about the BOOTCONF environment variable and available options, see the bootConfig(1M) and bootAgent(1M) man pages.


    6. Build a bootMonitor image:


      $ make bootMonitor
      

The resulting image file is located in the build directory, bootmon and is called bootMonitor.ROM.

Flashing the MCP750/74x0 Target System with the bootMonitor Image


Note -

See Chapter 5, Setting Up a Boot Server, 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 bootMonitor.ROM boot_server:/tftpboot/
    
  2. Check that you booted the target from the standard PPC-bug bank (B).

  3. On the console output during the boot:


    Copyright Motorola Inc. 1988 - 1998, All Rights Reserved
    
    PPC1 Debugger/Diagnostics Release Version 4.2 - 11/03/99 HA RM03
    COLD Start
    
    Local Memory Found =08000000 (&134217728)
    
    MPU Clock Speed =233Mhz
    
    BUS Clock Speed =67Mhz
    
    WARNING: Keyboard Not Connected
    
    Reset Vector Location  : ROM Bank B     ---> must be bank B !
    
  4. Configure PPC-bug to download the correct system image:


    PPC1-Bug> niot
    Controller LUN =00??
    Device LUN     =00?? 
    Node Control Memory Address =07F9E000? 
    Client IP Address      =129.xx.xx.xx? 
    Server IP Address      =129.xx.xx.xx?  
    Subnet IP Address Mask =255.xx.xx.xx? 
    Broadcast IP Address   =129.xx.xx.xx? <- configure according to your network
    Gateway IP Address     =0.0.0.0?
    Boot File Name ("NULL" for None)     =chorus.mcpn750-pro1? bootMonitor.ROM
    Argument File Name ("NULL" for None) =? .
    
  5. Download the bootMonitor image with PPC-bug:


    PPC1-Bug> nbh
    Network Booting from: DEC21140, Controller 0, Device 0
    Device Name: /pci@80000000/pci1011,9@e,0:0,0
    Loading: bootMonitor.ROM
    
    Client IP Address      = 129.xx.xx.xx
    Server IP Address      = 129.xx.xx.xx
    Gateway IP Address     = 0.0.0.0
    Subnet IP Address Mask = 255.255.255.0
    Boot File Name         = bootMonitor.ROM
    Argument File Name     = 
    
    Network Boot File load in progress... To abort hit <BREAK>
    
    Bytes Received =&1699840, Bytes Loaded =&1699840
    Bytes/Second   =&242834, Elapsed Time =7 Second(s)
    IP     =00400000 MSR    =00003040 CR     =00000000 FPSCR  =00000000
    R0     =00000000 R1     =07F88000 R2     =00000000 R3     =00000000
    R4     =00000000 R5     =49504C01 R6     =00007000 R7     =00400000
    R8     =07FF9144 R9     =07FF8F44 R10    =07FF8F56 R11    =07FF9044
    R12    =07FF9044 R13    =00000000 R14    =00000000 R15    =00000000
    R16    =00000000 R17    =00000000 R18    =00000000 R19    =00000000
    R20    =00000000 R21    =00000000 R22    =00000000 R23    =00000000
    R24    =00000000 R25    =00000000 R26    =00000000 R27    =00000000
    R28    =00000000 R29    =00000000 R30    =00000000 R31    =00000000
    SPR0   =00000000 SPR1   =00000000 SPR8   =00000000 SPR9   =00000000
    00400000 480004E8  B           $004004E8
  6. Program the flash memory with this system image:


    PPC1-Bug> pflash 00400000:&1699840 ff000000
                     ^        ^        ^ start addr of ROM BANK A
                     |        | size in bytes (decimal) of system image
                     | addr where downloaded

    You should get something similar to:


    Source Starting/Ending Addresses      =00400000/0059EFFF
    Destination Starting/Ending Addresses =FF000000/FF19EFFF
    Number of Effective Bytes             =0019F000 (&1699840)
    
    Program FLASH Memory (Y/N)? y
    FLASH Memory Programming Complete                  

    Note -

    For MPCN765 targets, the ROM bank address is: f4000000


  7. Power off the board, change the jumper setting to boot from ROM bank A, and then turn power in the board again.

    bootMonitor will start and download the system image from the server:


    ..... Booting Chorus .....
    CORE: Floating Point unit enabled
    CORE: Vector unit (AltiVec) disabled
    
    ChorusOS r5.0.0 for PowerPC - Motorola MCP(N)750 (pvr 0x00088300)
    Copyright (c) 2001 Sun Microsystems, Inc. All rights reserved.
    Sun Proprietary/Confidential
    US Government Rights
    Use, duplication, or disclosure by the U.S. Government is subject to restrictions set forth
    in the Chorus Software License Agreement and as provided in DFARS 227.7202-1(a) and
    227.7202-3(a) (1995), DRAS 252.227-7013(c)(ii) (OCT 1988), FAR 12.212(a)(1995), FAR
    52.227-19, or FAR 52.227-14 (ALT III), as applicable.
    Sun Microsystems, Inc.
    
    Kernel modules : CORE SCHED_CLASS [ FIFO RR RT ] MEM_FLM KDB TICK ENV BLACKBOX LAPSAFE
    MUTEX PERF TIMEOUT LAPBIND DKI 
    /cpu: sun:powerpc-(timebase,dec)-timer driver started
    /raven: sun:powerpc-(raven,hawk)-(bus,mngt,pci) driver started
    /raven: sun:pci-generic-pcimngr pseudo-driver started
    /raven/mpic: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver started
    /falcon: sun:powerpc-(falcon,hawk-smc)-(bus,mngt) driver started
    /raven/pci1106,3038@b,2: device node is created by sun:pci-enumerator-
    /raven/pci1106,3040@b,3: device node is created by sun:pci-enumerator-
    /raven/pci1011,9@e,0: device node is created by sun:pci-enumerator-
    /raven/pci1011,26@14,0: device node is created by sun:pci-enumerator-
    /raven/vt82c586-isa: sun:pci-vt82c586-(bus,isa) driver started
    /raven/vt82c586-isa/i8259: sun:bus-i8259-pic driver started
    /raven/vt82c586-isa/i8237: sun:bus-i8237-dma driver started
    /raven/vt82c586-isa/i8254: sun:bus-i8254-timer driver started
    /raven/vt82c586-isa/m48t559: sun:bus-m48txx-(nvram,rtc,wdtimer) driver started
    /raven/vt82c586-isa/m48t559: Hardware watchdog armed & started
    /raven/vt82c586-isa/ns16550/2: sun:bus-ns16550-uart driver started
    /raven/vt82c586-isa/z8536: sun:bus-z8536-gpio driver started
    /raven/vt82c586-isa/z85230/a: /raven/vt82c586-isa/z8536 GPIO device is connected
    /raven/vt82c586-isa/z85230/a: DTR signal is connected
    /raven/vt82c586-isa/z85230/a: DSR signal is connected
    /raven/vt82c586-isa/z85230/a: RI  signal is connected
    /raven/vt82c586-isa/z85230/a: sun:bus-z85x30-uart device registered
    /raven/vt82c586-isa/z85230/b: /raven/vt82c586-isa/z8536 GPIO device is connected
    /raven/vt82c586-isa/z85230/b: DTR signal is connected
    /raven/vt82c586-isa/z85230/b: DSR signal is connected
    /raven/vt82c586-isa/z85230/b: RI  signal is connected
    /raven/vt82c586-isa/z85230/b: sun:bus-z85x30-uart device registered
    /raven/vt82c586-ata/0,0:
        Model: SanDisk SDCFB-48 Serial: i121711030 Rev: Vdd 1.0.
        Unknown device type (config=0x844a)
    /raven/vt82c586-ata/0,0: Using Mode: PIO1.
    /raven/vt82c586-ata/0,0: sun:ata-atadisk-disk driver started
    /raven/vt82c586-ata: sun:pci-vt82c586-ata driver started
    /raven/pci1011,9@e,0: warning -- PHY is auto-detected at address 0x1
    /raven/pci1011,9@e,0: 10BaseT (Twisted Pair) link auto-detected
    /raven/pci1011,9@e,0: Ethernet address 08:00:3e:2e:ff:51
    /raven/pci1011,9@e,0: Rx buffers: 64*1520 Tx buffers: 64*1520
    /raven/pci1011,9@e,0: sun:pci-dec21x4x-(ether,mngt) driver started
    /raven/pci1011,26@14,0: sun:pci-dec2115x-(bus,pci,mngt) driver started
    /raven/pci1011,26@14,0: sun:pci-generic-pcimngr pseudo-driver started
    /raven/pci1011,26@14,0/pci1011,46@c,0: device node is created by sun:pci-enumerator-
    /raven/pci1011,26@14,0/pci1011,46@d,0: device node is created by sun:pci-enumerator-
    /raven/mpic/timer@0: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver started
    /raven/mpic/timer@1: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver started
    /raven/mpic/timer@2: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver started
    /raven/mpic/timer@3: sun:(bus,powerpc)-openpic-(mngt,opic,timer,wdtimer) driver started
    /falcon/flashControl-1: sun:bus-(falcon,hawk-smc)-flash-ctl driver device started
    /falcon/flashControl-2: sun:bus-(falcon,hawk-smc)-flash-ctl driver device started
    /falcon/intel28F400: flash control is activated
    /falcon/intel28F400: sun:bus-intel28Fxxx-flash driver started
    /falcon/amd29F040: flash control is activated
    /falcon/amd29F040: sun:bus-amd29xxx-flash driver started
    TICK: using timer device /cpu, at 100 Hz
    
    Boot Monitor Loader v1.3 (env BOOTCONF)
    
    env BOOTCONF: 'RARP'
    *** booting using 'RARP' agent
    Unit: 0  device name: pci1011,9@e,0
    
    Using unit 0
    
    My IP 129.157.173.169, RARP Server IP 129.157.173.59
    
    Loading file 819DADA9.ChorusOS.5.0 on server 129.157.173.59: loaded!
    
    Loading file chorus.RAM.bmon on server 129.157.173.59: loaded!
    Boot new system image ...
    ..... Booting Chorus .....

The ChorusOS system image is running on the target.

For information on what to do next, see About ChorusOS 5.0 Documentation, which will guide you to the appropriate information for your task.

Building and Booting a System Image on PowerPC SBC8260 Target Systems

You can install ChorusOS on a SBC8260 target using one of the following methods:

Overview of the Process

This section provides an overview of the ways of building and booting a ChorusOS system image on SBC8260 targets in the form of a flowchart.

Figure 8-2 Building and Booting a ChorusOS System for SBC8260 Targets

Graphic

Using the visionXD Tool

For the following procedures, it is assumed that you use the visionXD tool either to boot the target system or to place the bootMonitor image in flash memory on the target system. The URL for the visionXD tool is: http://www.windriver.com/products/html/vxd.html


Note -

For simplicity, it would help if the visionXD tool is installed on the host.


To Build a ChorusOS System Image

The following procedure assumes that the ChorusOS product has already been correctly installed on the host workstation. See Part I, Installing on the Host.

  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:


    $ export DIR=/opt/SUNWconn/SEW/5.0-PowerPC/chorus-powerpc
    
  3. The PATH environment variable must be set correctly to include the directory:

    install_dir/chorus-powerpc/tools/host/bin

    where the default install_dir is /opt/SUNWconn/SEW/5.0-PowerPC.

    The PATH environment variable must include /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 \ 
      $DIR/src/nucleus/bsp/powerpc/sbc8260
      

      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 decide 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/tools \ 
      -s $DIR/src/nucleus/bsp \ 
      $DIR/src/nucleus/bsp/powerpc/sbc8260 \ 
      $DIR/src/opt/examples
      

    • If you are building from the source distribution, see the ChorusOS 5.0 Source Delivery Guide.

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

  5. Generate the build environment:


    $ make
    
  6. Configure the system image:


    $ configurator -set ETHER_ADDR=xx:xx:xx:xx:xx:xx
    

    where xx:xx:xx:xx:xx:xx is the target system Ethernet address.

  7. 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 microkernel:


    $ make kernonly
    

To Place the System Image on the Boot Server

See the Chapter 5, Setting Up a Boot Server, 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
    
  2. Verify that at least read permissions are available for the system image on the boot server.

    For example:


    $ 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*
  3. (Optional) While logged in to the boot server, create a configuration file for the target.

    For a target system with IP address 129.157.173.199 using a boot server with IP address 129.157.173.144, the configuration file contains the following:

    AUTOBOOT=YES
    BOOTFILE=chorus.RAM
    BOOTSERVER=129.157.173.144

    The configuration file is named /tftpboot/819DADC7.ChorusOS.5.0, which is constructed from the target system IP address 129.157.173.199 as a concatenation of the following:

    • 129 in decimal translates to 81 in hexadecimal.

    • 157 in decimal translates to 9D in hexadecimal.

    • 173 in decimal translates to AD in hexadecimal.

    • 199 in decimal translates to C7 in hexadecimal.

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


    Note -

    The system first looks for the configuration file with the .ChorusOS.5.0 extension. If no such file exists, the system looks for a configuration file without the .ChorusOS.5.0 extension.


To Set Up the visionXD and visionICE Tools

See the visionXD and visionICE documentation for detailed installation instructions.

  1. Connect visionICE to the target system, plugging the transceiver into the MII connector and switching the transceiver to UP.

  2. Connect the target system to the network.

  3. Connect and configure visionICE and visionNET.

  4. Install the visionXD tool on the host workstation.

  5. Select Configure Global Settings... from the Tasks menu, and use the dialog box displayed to configure the connection to the target system.

To Boot the SBC8260 Target System Using the visionXD Tool
  1. Start the visionXD tool.

  2. Select Connect from the Target menu to connect the visionXD tool to the target system.

  3. Click the terminal button to display a terminal window with the BKM prompt.

  4. Enter in at the BKM prompt to set initialization values for the target system registers:


    >BKM> in  
    
  5. Select Load Executable... from the File menu.

  6. Select the chorus.RAM system image and click Load.

  7. After the target system has finished downloading the system image, click Run.

Using bootMonitor

The following procedures describe how to build and boot a ChorusOS system using bootMonitor.

To Create a bootMonitor Image

See bootMonitor(1M), bootConfig(1M), and bootAgent(1M) for details about how bootMonitor works.

  1. Create a build directory where you will build a bootMonitor image:


    $ mkdir bootmon
    $ cd bootmon
    

    Note that this build directory is different from the directory where you build system images.

  2. Configure the bootmon directory based on the binary distribution:


    $ configure -b $DIR/kernel \
    -s $DIR/src/nucleus/bsp \
    $DIR/src/nucleus/bsp/powerpc/sbc8260
    
  3. Generate the build environment:


    $ make
    
  4. Edit the special bootmon/conf/mini profile so that it reads:

    #
    # Mini Profile
    #
    
    #
    # Microkernel features
    #
    -set USER_MODE=false
    -set VIRTUAL_ADDRESS_SPACE=false
    -set SEM=false
    -set EVENT=false
    -set MONITOR=false
    -set TIMER=false
    -set DATE=false
    -set RTC=false
    -set PERF=false
    -set IPC=false
    -set MIPC=false
    -set LAPBIND=true # Change this from 'false' to 'true'
    -set LAPSAFE=true # Change this from 'false' to 'true'
    -set MON=false
    -set LOG=false
  5. Configure the build environment for bootMonitor:


    $ configurator -p conf/mini
    $ configurator -set BOOT_MODE=ROM
    $ configurator -set ETHER_ADDR=xx:xx:xx:xx:xx:xx
    $ configurator -setenv BOOTCONF=RARP
    

    where xx:xx:xx:xx:xx:xx is the target system Ethernet address.


    Note -

    For details about the BOOTCONF environment variable and available options, see the bootConfig(1M) and bootAgent(1M) man pages.


  6. Build a bootMonitor image:


    $ make bootMonitor
    

    The resulting image file is located in the build directory, bootmon, and is called bootMonitor.ROM.

To Flash the bootMonitor Image in the Flash SIMM

The SBC8260 target system provides two flash devices:

SBC8260 can boot from either flash device depending on the configuration of jumper-24:

To boot from one of the two flash devices, the appropriate configuration word must be stored at the beginning of that device. Refer to the section "Reset Configuration", of the SBC8260 Hardware Reference Manual for the procedure to restore the configuration word in any of the two flash devices. You can use the following command:


BKM> SY RSTCONF configuration_word port_size

where the port_size is 8 for the LOCAL Flash and 32 for the Flash SIMM.


Note -

The visionXD emulator cannot "get" the state of the target by itself, after some registers have been modified by running ChorusOS. Typically, the IMMR value and memory translations set by ChorusOS are not automatically supported by visionXD.

Therefore, the register contents of the emulator and the target must be synchronized.

Enter the following commands in the Terminal window when starting a session with the emulator:


>BKM> sc default
>BKM> in

The preceding commands restore and set the registers to their default values.

It should also be noted that after these commands are executed, the boot flash device selected by JP-24 is visible at address 0xfe000000 causing the configuration word to be visible at this address (one byte at each double-word boundary).


The following example is for AMD 29F080 (1024x8) 4 devices Flash type.

  1. Verify JP-24 is 1-2 and 3-4 (CS0 selects Flash SIMM).

  2. Reset the target and the emulator.

  3. Start visionXD and connect to the target (Target > Connect).

    If at this point the emulator is always in error and cannot connect to the target, you certainly erased the configuration word. Perform the procedure to restore the configuration word, described in the section "Reset Configuration" of the SBC8260 Hardware Reference Manual. Reset the target and the emulator and then try again.

  4. Open a terminal window (Tasks > Terminal)

  5. In the terminal window enter:


    >BKM> sc default
    >BKM> in
    

  6. Configure the CS0 for 32 bits wide:

    1. Select Target > Registers > OR0 > + > Detail.

    2. Select Size > 32 bits and click Set.

    3. Click Detail again and then Set in Emulator.

  7. Program the flash (Tasks > Program Flash) with the following configuration:

    Name         : bootmon/bootMonitor.ROM
    Device(s)    : AMD 29F080 (1024x8) 4 devices
    Start address: 0xfff00000
    End address  : 0xffffffff

    This will convert the bootMonitor.ROM (built in the procedure "To Create a bootMonitor Image") into a bootMonitor.bin file.

    Then click Erase and Program to write the bootMonitor image to flash memory.

  8. Click Extract in the dialog box that is displayed.

  9. Click OK to confirm the download into flash memory.

To Boot the Target System

    Restart the target system to boot from flash memory.

The ChorusOS system image is running on the target.

For information on what to do next, see About ChorusOS 5.0 Documentation, which will guide you to the appropriate information for your task.

Chapter 9 Building and Booting a ChorusOS System for an MPC8xx Target

This chapter describes how to install ChorusOS 5.0 for the MPC8xx processor family. For information on the system requirements and the packages available with MPC8xx targets, see ChorusOS 5.0 Target Family Guide (MPC8XX Platform Edition).

Use one of the following methods to install ChorusOS on an MPC8xx target:

Overview of the Process

This section describes the process for building and booting a ChorusOS system image on MPC8xx targets.

Figure 9-1 Building and Booting a ChorusOS System for MPC8xx Targets

Graphic

Using Motorola's mpc8bug Host Debugger

To Build the System Image

The following procedure assumes that the ChorusOS product has already been correctly installed on the host workstation. See Chapter 1, Installing on the Host, for instructions.


Note -

For simplicity, it would help if the mpc8bug tool is installed on the host.


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


    $ mkdir build_dir
    $ cd build_dir
    

    Note -

    The file system containing the build_dir directory must be accessible by NFS from the remote ChorusOS target.


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

    For example:


    $ export DIR=/opt/SUNWconn/SEW/5.0-MPC8xx/chorus-mpc8xx
    
  3. The PATH environment variable must be set correctly to include the directory:

    install_dir/chorus-mpc8xx/tools/host/bin

    where the default install_dir is /opt/SUNWconn/SEW/5.0-MPC8xx.

    The PATH environment variable must include /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 \ 
      $DIR/src/nucleus/bsp/powerpc/mpc8xxADS \ 
      

      Note -

      The preceding 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 decide to install separately on Solaris host workstations. For example, to include everything in your build environment:


      $ configure -b $DIR/kernel \ 
      $DIR/os \ 
      $DIR/opt/X11 \ 
      $DIR/tools \ 
      -s $DIR/src/nucleus/bsp \ 
      $DIR/src/nucleus/bsp/powerpc/mpc8xxADS
      $DIR/src/opt/examples
      

    • If you are building the system image from a source distribution, see the ChorusOS 5.0 Source Delivery Guide.

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

  5. Generate the build environment:


    $ make
    
  6. Configure the system image:


    $ configurator -set ETHER_ADDR=xx:xx:xx:xx:xx:xx
    

    where xx:xx:xx:xx:xx:xx is the target system Ethernet address.

  7. Build the 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 microkernel:


    $ make kernonly
    

  8. Generate the NFS root file system:


    $ make root
    

    This command creates a root directory in the build directory. The root directory contains binary and configuration files that are accessed by the target system.

To Place the System Image on the Boot Server

See Chapter 5, Setting Up a Boot Server, for instructions on how to configure the boot server.

  1. Copy the system image to the boot server. For example:


    $ rcp chorus.RAM boot_server:/tftpboot
    
  2. Verify that everyone has at least read access to the system image on the boot server.

    For example:


    $ 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*
  3. (Optional) While logged in to the boot server, create a configuration file for the target.

    For a target system with IP address 129.157.173.199 using a boot server with IP address 129.157.173.144, the configuration file contains the following:

    AUTOBOOT=YES
    BOOTFILE=chorus.RAM
    BOOTSERVER=129.157.173.144

    The configuration file is named /tftpboot/819DADC7.ChorusOS.5.0, which is constructed from the target system IP address 129.157.173.199 as a concatenation of the following:

    • 129 in decimal translates to 81 in hexadecimal.

    • 157 in decimal translates to 9D in hexadecimal.

    • 173 in decimal translates to AD in hexadecimal.

    • 199 in decimal translates to C7 in hexadecimal.

    • (optional) A .ChorusOS.5.0 extension 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.5.0 extension. If it fails to find one, however, it attempts to find a configuration file without the .ChorusOS.5.0 extension.


To Boot With the mpc8bug Host Debugger

The following procedure concerns MPC8xx[F]ADS reference target boards.

  1. Install Motorola's ADI host debugger (mpc8bug) on the boot host.

    The MPC8XX ADS Software (MPC8bug version 1.5) package contains the mpc8bug monitoring tool, configuration files for all reference targets, and documentation explaining how to install and use the tool. This package is provided with the hardware.

    For details about installation, see the mpc8bug installation manual.

  2. Append a ChorusOS load macro to the .mpctcl.cfg configuration file.

    The following TCL macro should be appended at the end of the .mpctcl.cfg file that is provided as part of the mpc8bug package:

    a chload reset :h \; load \$1 \; rms der decie 0 \; rms der extie 0 \; rms der prie 0 \;
    rms der sysie 0 \; rms der trie 0 \; rms der mcie 0 \; rms der itlbmse 0 \;
    rms der dtlbmse 0 \; rms der itlbere 0 \; rms der dtlbere 0 \; go

    The preceding rms der xx 0 commands allow the ChorusOS microkernel to handle the corresponding exceptions.

  3. Connect the host ADI and target debug ports.

    The MPC8xx[F]ADS board must be installed and configured to operate in Host Controlled configuration mode by way of its ADI port. Therefore, you must plug an ADI board into one of the SBus or ISA slots of the boot host and connect to the MPC8xx[F]ADS through a 37-pin flat cable.

    For details about installing the ADI board and configuring the target to boot from the Debug port, see the section "Installation Instructions" in the MPC8xx[F]ADS User's Manual.

    After this is done, you can now start the mpc8bug monitor utility on the boot host.

  4. Connect the RS32 ports of the target system and of the boot system.

    Connect the target system RS232 port on SMC1 to the boot system serial port for the ChorusOS debug agent link and system console.

  5. Restart the target system.

  6. Start the mpc8bug monitor:


    $ mpc8bug ADI ADS
    

    Where:

    • ADI is the number, from 0 through 3, of the SBus expansion slot for the ADI board on the UltraSPARC host system, or the address of the ADI card divided by 0x100 for a PC/AT host.

    • ADS is the ADI address, from 0 through 3, of the MPC8xx[F]ADS target board, as determined by the ADDR switches on the DS1 Dip-Switch of the MPC8xx[F]ADS board.

    When started, the mpc8bug monitor automatically executes the commands included in the configuration files:


    mpc8bug version 1.5  May 18 98
    Copyright 1998 Motorola, Inc.  All Rights Reserved.
    
     Initializing memory controller and UPM for 50MHZ
      DRAM delay set to 60ns
      DRAM size set to 16Mbytes
    Executing .mpctcl.cfg file from the current directory.
    Executing .mpc8xx.cfg file from the current directory.
    Executing .mpc860.cfg file from the current directory.
    Executing .mpcsdram.cfg file from the current directory.
    f860Bug> 

    Check that the MPC8xx[F]ADS hardware is functioning properly by running the diagnostic tests T1, T2, T3, and T4 that are provided by the mpc8bug monitor.

    For details about using mpc8bug and associated diagnostic programs, see the mpc8bug documentation.

  7. Load the system image through mpc8bug:


    f860Bug> chload full_path/chorus.RAM
       ( reset :h ; load chorus.RAM ; rms der decie 0 ; rms der extie 0 ; rms der prie 0 ;
    rms der sysie 0 ; rms der trie 0 ; rms der mcie 0 ; rms der itlbmse 0 ; rms der dtlbmse 0 ;
    rms der itlbere 0 ; rms der dtlbere 0 ; go ) 
     Initializing memory controller and UPM for 50MHZ
      DRAM delay set to 60ns
      DRAM size set to 16Mbytes
    Loading ELF file . . .
    Entry point set to 001cf000
    Loading section 1 (.ChorusO) : 001ce000 bytes at 00004000 
    Heap start address set to 00000001
    No symbol table
    r3 and r5 are set to 0
      Use Ctrl-C to abort execution !

    The following messages are displayed on the target system console:


    ..... Booting Chorus .....
    
    ChorusOS r5.0 for PowerPC - Motorola MPC8xx[F]ADS
    Copyright (c) 2001 Sun Microsystems, Inc. All rights reserved.
     
    Kernel modules : CORE SCHED_FIFO SEM MIPC IPC_L MEM_PRM KDB TICK MON ENV ETIMER
    LOG LAPSAFE MUTEX EVENT UI DATE PERF TIMEOUT LAPBIND DKI 
    MEM: memory device 'sys_bank' vaddr 0x7ec22000 size 0x1ce000
    /cpu: sun:powerpc-(timebase,dec)-timer driver started
    /quicc-8xx: sun:powerpc-mpc8xx-(bus,quicc) driver started
    /quicc-8xx/smc-2: sun:quicc-smc-uart driver started
    /quicc-8xx/scc-1: sun:quicc-scc-ether driver started
    /quicc-8xx/scc-1: Ethernet address 08:00:3e:00:00:06
    /quicc-8xx/on-board-flash: error -- wrong (unsupported) CHIP/VENDOR ID
    /flash-emul: started as 'One bank of AMD29F040x4 (64k erase block)'
    DATE: warning -- svDeviceLookup(rtc) failed (-7)
    IOM: SOFTINTR DISABLED (-31). Using an Interrupt thread
    IOM Init cluster space from: 0x7ebff000 to: 0x7ec1f800 [65 items of size: 2048]
    IOM Init io-buf pool from: 0x7ec1f850 to: 0x7ec1fd70 [8 items of size: 164]
    IOM Init raw io-buffer pool from: 0x7ec1fd70 to: 0x7ec211f0 [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
    /quicc-8xx/on-board-flash: error -- wrong (unsupported) CHIP/VENDOR ID
    C_INIT: started
    C_INIT: /image/sys_bank mounted on /dev/bd00
    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 /quicc-8xx/scc-1
    bpf: lo0 attached
    C_INIT: Internet Address: 129.157.173.199
    ifeth0: flags=88437<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet 129.157.173.199 netmask 0xffff0000 broadcast 129.157.255.255
            ether 08:00:3e:00:00:06 
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
            inet 127.0.0.1 netmask 0xff000000 
    C_INIT: rshd started

Using bootMonitor

To boot the target from flash memory using bootMonitor, perform the following procedures.

To Create a bootMonitor Image

For details about how bootMonitor works, see bootMonitor(1M).

  1. Build a ChorusOS system image. See Building the System Image.

  2. Create a directory where you will build a bootMonitor image:


    $ mkdir bootmon
    $ cd bootmon
    

    Note -

    This directory is different from build_dir, the directory where you build system images.


  3. Configure the bootmon directory based on the binary distribution:


    $ configure -b $DIR/kernel \ 
    -s $DIR/src/nucleus/bsp \ 
    $DIR/src/nucleus/bsp/powerpc/mcp8xxADS \ 
    
  4. Generate the environment:


    $ make
    
  5. Edit the special bootmon/conf/mini profile so that it reads:

    #
    #	Mini Profile
    #
    
    #
    # Microkernel features
    #
    -set USER_MODE=false
    -set VIRTUAL_ADDRESS_SPACE=false
    -set SEM=false
    -set EVENT=false
    -set MONITOR=false
    -set TIMER=false
    -set DATE=false
    -set RTC=false
    -set PERF=false
    -set IPC=false
    -set MIPC=false
    -set LAPBIND=true # Change this from 'false' to 'true'
    -set LAPSAFE=true # Change this from 'false' to 'true'
    -set MON=false
    -set LOG=false
  6. Configure the environment for bootMonitor:


    $ configurator -p conf/mini
    $ configurator -set BOOT_MODE=ROM
    $ configurator -set ETHER_ADDR=xx:xx:xx:xx:xx:xx
    $ configurator -setenv BOOTCONF=RARP
    

    where xx:xx:xx:xx:xx:xx is the target system Ethernet address.


    Note -

    For details about the BOOTCONF environment variable and available options, see the bootConfig(1M) and bootAgent(1M) man pages.


  7. Build a bootMonitor image:


    $ make bootMonitor
    

    The resulting image file is located in the bootmon directory, and is called bootMonitor.ROM.

To Flash the Target System With the bootMonitor Image
  1. Restart the target system.

  2. Start the mpc8bug tool. See Step 6 for details.

  3. Use the loadf command to flash the bootMonitor:


    f860Bug> reset :h ; loadf full_path/bootMonitor.ROM 0x100000
     Initializing memory controller and UPM for 50MHZ
      DRAM delay set to 60ns
      DRAM size set to 4Mbytes
    loadf: Loading ELF file . . .
    Loading flash mapped sections to ram memory buffer:
    Loading section 1 () : 00039000 bytes at 00100000 
    Programming flash :00039000 bytes  at 02800000-02838fff 
    Flash programming completed
  4. Power off the target board.

  5. Unplug the ADI cable.

To Boot the Target System

    Restart the target system.

    For an example of the messages displayed on the target system console, see Step 7.

The ChorusOS system image is running on the target.

For information on what to do next, see About ChorusOS 5.0 Documentation, which will guide you to the appropriate information for your task.