= Installing Precise (12.04.2) using netboot onto a Marvell ArmadaXP Development Board =

== Before You Begin ==

You will need the following:
 1. A management device for serial access to the board.
 2. DHCP available for the board which will provide Internet access (to access the Ubuntu package archive).
 3. A [[https://help.ubuntu.com/community/Installation/Netboot|TFTP Server]] accessible from the board and optionally a [[ https://help.ubuntu.com/community/PXEInstallServer | PXE Server ]] setup for PXE boot emulation.

== Downloading the Installer ==

Download the Marvell ArmadaXP [[http://ports.ubuntu.com/dists/precise/main/installer-armhf/current/images/armadaxp/netboot/uImage|uImage]] and [[http://ports.ubuntu.com/dists/precise/main/installer-armhf/current/images/armadaxp/netboot/uInitrd|uInitrd]] and place them on an available [[https://help.ubuntu.com/community/Installation/Netboot|TFTP Server]].

== Booting the Installer ==

Access the Marvell ArmadaXP serial console, for example with "`screen /dev/ttyUSB0 115200`" on a management machine with a USB serial adaptor attached to it.

Power on the board.

Interrupt U-Boot by pressing Enter when prompted.

=== TFTP Boot ===

Type the following at the U-Boot prompt, replacing the IP address with the IP address of your TFTP Server:
{{{
dhcp
tftpboot 0x2000000 10.0.0.10:/uImage
tftpboot 0x1100000 10.0.0.10:/uInitrd
setenv bootargs "console=ttyS0,115200 earlyprintk=ttyS0 pm_disable"
bootm 0x2000000 0x1100000
}}}

This will boot into the installer. Follow the default partitioning scheme suggested.

=== PXE Boot ===

Type the following at the U-Boot prompt to boot using PXE boot emulation:

{{{
dhcp
pxe get
pxe boot
}}}

This will boot into the installer. Follow the default partitioning scheme suggested.

Note: you may need to "set pxefile_addr_r 0x7000000", "set kernel_addr_r 0x2000000", and "set ramdisk_addr_r 0x1100000" before this will work (don't forget to "save" those values).

Here's a sample PXE configuration file: pxelinux.cfg/01-00-50-43-aa-bb-cc

{{{
default armadaxp-precise
prompt 0
timeout 1

label armadaxp-precise
   kernel /uImage
   initrd /uInitrd
   append console=ttyS0,115200 earlyprintk=ttyS0 pm_disable
}}}


== Booting into the Installed System ==

When the installer finishes and reboots, interrupt U-Boot again and type the following. If you used a different partitioning scheme, adjust the ext2load and root parameters accordingly.
{{{
setenv bootcmd "ide reset; ext2load ide 0:1 0x2000000 uImage; ext2load ide 0:1 0x1100000 uInitrd; setenv bootargs console=ttyS0,115200 earlyprintk=ttyS0 root=/dev/sda2 ro pm_disable; bootm 0x2000000 0x1100000"
save
reset
}}}

Your system should now boot into the installed system, with U-Boot configured and verified to continue doing so on future reboots.