<?xml version="1.0"?>
<!DOCTYPE webpage
  PUBLIC "-//NetBSD//DTD Website-based NetBSD Extension//EN"
    "http://www.NetBSD.org/XML/htdocs/lang/share/xml/website-netbsd.dtd">

<webpage id="ports-ia64-faq">
<config param="desc" value="NetBSD/ia64 Frequently Asked Questions"/>
<config param="cvstag" value="$NetBSD: faq.xml,v 1.2 2009/09/18 03:32:51 snj Exp $"/>
<config param="rcsdate" value="$Date: 2009/09/18 03:32:51 $"/>
<head>
<!-- Copyright (c) 2005
	The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED. -->
<title>NetBSD/ia64 Frequently Asked Questions</title>
</head>

<sect1 role="toc">

<sect2 id="general">
<title>General problems and questions</title>

<sect3 id="intro">
<title>How do I get started?</title>

  <para>
    Development for NetBSD/ia64 is on HP's "SKI" emulator:
  </para>

  <orderedlist>
    <listitem>
      Install the ski emulator:
      <ulink url="http://www.NetBSD.org/packages/emulators/ski/">
      pkgsrc/emulators/ski</ulink>.
      See the 
      <ulink
      url="ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc/emulators/ski/DESCR">
      DESCR</ulink> file for details about installing and running ski.
    </listitem>

    <listitem>
      <para>
        Build the ia64 toolchain:
<screen>
  build.sh -mia64 tools
</screen>
      </para>

      <para>
        Build the bootloader:
<screen>
  cd arch/ia64/stand/ia64/ski
  $TOOLDIR/bin/nbmake-ia64
</screen>
	The bootloader binary is arch/ia64/stand/ia64/skiload
      </para>

      <para>
        Build the kernel:
<screen>
  build.sh -mia64 kernel=GENERIC.SKI
</screen>
	The kernel binary is arch/ia64/compile/GENERIC.SKI/netbsd
      </para>
    </listitem>

    <listitem>
      <para>
        With both bootloader and kernel binaries (or softlinks to
	them) in the current directory, type:
<screen>
  ski skiload
</screen>

	This will launch the ski debugger prompt.
      </para>

      <para>
	Type 'c' to continue. 	This will launch the bootloader in a
	pseudo terminal window. Type 'boot netbsd' to boot the
	kernel. Have fun!
      </para>

    </listitem>

  </orderedlist>
</sect3>

<sect3 id="XXX1">
<title>What needs to be done to make the port functional?</title>

      <para>
        Must have tasks:
      </para>

      <orderedlist>
        <listitem>
	  pmap module: Clean ups and debug.
	</listitem>
        <listitem>
	  Boot Code Cleanup: clean up glue code between FreeBSD's boot
	  code and NetBSD's standalone library.
	</listitem>
        <listitem>
	  IA64 Stack unwind code: Support remaining unwind descriptor
	  types. (See arch/ia64/unwind/TODO)
	</listitem>
      </orderedlist>
      
      <para>
        Nice to have tasks:
      </para>

      <orderedlist>
        <listitem>
	  Kernel module pre-loading via the bootloader.
        </listitem>
        <listitem>
	  Write a ski network driver.
        </listitem>
	<listitem>
	  Enable SMP support.
	</listitem>
      </orderedlist>
</sect3>

<sect3 id="XXX2">
<title>How can I help?</title>

      <para>
        Pick a task you like, send mail to port-ia64@NetBSD.org to
	avoid duplication of work, and start hacking!
      </para>
</sect3>

<sect3 id="XXX3">
<title>What are the goals of this port</title>

      <para>
        Currently our focus is to make NetBSD/ia64 to run reasonably
        well on the ski emulator. In order to enable NetBSD to run on
        a real Itanium machine, further code needs to be written.
	Some important tasks are:
      </para>

      <orderedlist>
        <listitem>
	  The uga console driver.
        </listitem>
	<listitem>
	  The bus_dma framework.
	</listitem>
	<listitem>
	  device drivers.
	</listitem>
      </orderedlist>

</sect3>

</sect2>

<parentsec url="." text="NetBSD/ia64 Port Page" />

</sect1>
</webpage>

