ArndaleBoard

Revision 1 as of 2012-11-27 01:39:27

Clear message

The Arndale board uses the SAMSUNG Exynos 5 Dual Cortex A15 SOC. It is currently not supported by Ubuntu, but there is a PPA that includes the necessary hardware enablement bits to get a board installed. This page is intended to serve as a HOWTO for installing a board using this PPA.

Preparing a Board for Install

Before installing a board, you must do some configuration of the system. There are two parts to this configuration, setting up the memory card for storing the boot files and configuring the u-boot environment. Note: this assumes you will be installing to an external SATA or USB disk.

Setting up the memory card

The memory card will need to be laid out like so:

Sectors

Contents

0

Master Boot Record

1-16

Fuse bl1 binary

17-48

SPL binary

49-1104

u-boot

1105-

msdos partitions; partition #2 used for boot files

Information on obtaining the Fuse bl1 binary, SPL binary and u-boot binaries can be found here. Partition #2 was selected for the boot files in order to preserve the OS partition that comes in the preinstalled memory cards. This partition is hardcoded in the flash-kernel package, so you need to make sure to create the second partition even if you plan to do away with the preinstalled OS partition. The installer will take care of installing a kernel/ramdisk into partition #2, but the device tree blob must be manually copied there one time.

As a quick start, the following commands can be used to setup your memory card from the pre-installed OS environment. This will preserve the pre-installed OS filesystem, but it will not preserve the preinstalled boot files (kernel/ramdisk/device tree blob), so making a backup of your memory card first is recommended.

  1. apt-get install parted
  2. parted /dev/mmcblk1 -- mkpart primary ext2 1048576B 991298047B
  3. mkfs.ext2 /dev/mmcblk1p2
  4. mkdir /tmp/foo
  5. mount /dev/mmcblk1p2 /tmp/foo
  6. cp /path/to/exynos5250-arndale.dtb /tmp/foo
  7. umount /tmp/foo

Setting up u-boot

To netboot the installer you will need to make sure to have a recent build of u-boot. Instructions for obtaining/building u-boot for the Arndale board are available here.

You will need to set some environment variables in the u-boot environment:

 setenv kernel_addr_r 0x40007000
 setenv ramdisk_addr_r 0x41000000
 setenv fdt_addr_r 0x40002000
 setenv pxefile_addr_r 0x50000000
 setenv netboot "usb start; dhcp; pxe get; pxe boot"
 setenv bootcmd 'ext2load mmc 0:2 $kernel_addr_r uImage; ext2load mmc 0:2 $ramdisk_addr_r uInitrd; ext2load mmc 0:2 $fdt_addr_r exynos5250-arndale.dtb; bootm $kernel_addr_r $ramdisk_addr_r $fdt_addr_r' 

The onboard NIC ships with a NULL MAC address. You can set a MAC address to be used by u-boot to network boot by setting an environment variable:

 setenv usbethaddr aa:bb:cc:dd:ee:ff

You can generate a random mac address by running the following commands on a Debian/Ubuntu system:

 apt-get install python-libvirt
 python -c 'import virtinst.util ; print virtinst.util.randomMAC()'

Save these settings so they persist for the next boot:

 saveenv

See below about patching u-boot to passthrough the MAC address to the installer.

Adding MAC passthrough support to u-boot

The mac address set in the u-boot environment is not retained once you boot into the installer. You can set this manually by dropping to a shell and running:

 ip link set dev eth0 address aa:bb:cc:dd:ee:ff

Alternatively, you can patch u-boot to pass the u-boot defined MAC address to the installer, and the installer will automatically detect and use this MAC address. A patch that adds this feature is available here. This patch emulates pxelinux's 'IPAPPEND' feature, so you will need to set the IPAPPEND setting in your pxelinux configuration file. Whether or not you choose to manually set the MAC address or to patch u-boot to pass it for you, the installer will create a udev rule that restores the MAC address used during install for future boots.