MPC8610

From openSUSE

Contents

Warning!

This is a work in progress...

Platform Information

Some information about the board;

  • The MPC8610 is a Power Architecture SoC from Freescale Semiconductor
  • The MPC8610ADS evaluation system includes an ULi1575 southbridge, 512MB of RAM and a 80GB SATA HDD
  • U-Boot is used as firmware, which relies on the kernel/initrd being converted into a special format to be able to boot (mkimage), and a flattened device-tree (FDT) for the board also needs to be loaded
  • As of today (2008-05-30) not all drivers are upstream yet, a modified 2.6.23 kernel can be used from the MPC8610 BSP on Freescale's website
  • MPC8610 Development is co-sponsored by Genesi and Freescale

Requirements

To get started with installation a number of requirements needs to be met:

  • serial console cable to reach the machines console during the boot process
  • a terminal software to reach the console (hyperterm on Windows or Minicom on Linux)
  • a TFTP server for booting
  • a working fast Internet connection or a local installation server (NFS preferred, but FTP/HTTP also works) or the DVD (which has only a limited selection of software)

Known problems

  • detailed software selection during installation crashes. This can be worked around by using a driver update: just add the following boot parameter (or download the file to a local server, and load from there):
dud=http://download.opensuse.org/update/11.0/driverupdate
  • boot manager needs to be set to 'none' (a CHRP boot partition does not work here)
  • apparmor and other technologies depending on a newer kernel version or a patched openSUSE kernel don't work
  • some extra drivers, mainly PCI sound card drivers could not be compiled (does not affect included hardware)
  • nscd eats all CPU -> it is safe to remove it

Preparations

The MPC8610ADS ships with U-Boot, which needs to be set up for TFTP booting. For this, the ramdisk image file name and network parameters need to be configured and saved. If HDD based booting is used (using the pre-installed BSP for initial setup), there is no need to set the IP addresses here.

=> setenv ramdiskfile /boot/uinitrd32
=> setenv ipaddr 192.168.2.167
=> setenv serverip 192.168.2.52
=> setenv gatewayip 192.168.2.52
=> saveenv

Download the files necessary for booting and loading the installer (URL: TBD) to the machine with the TFTP server. Extract it in the servers data directory, usually /tftpboot. The three files are: boot/uinitrd32, boot/uImage and boot/mpc8610_hpcd.dtb.

The supplied kernel is non-modular, all features necessary for booting the machine and for a basic installation are built in. RAID/LVM/Crypto filesystems are not supported, or any drivers which are not used in the evaluation system. A separate archive (URL: TBD) is available, which includes kernel modules for most of the features supported by the regular openSUSE kernel. As the BSP kernel version is different from the one used by openSUSE, warning messages on the screen appear during installation and on first boot.

Installation - booting by TFTP

Installation of openSUSE can be carried out in many different ways. The most convenient is using a network installation source and a remote VNC console. The DVD contains only desktop environments and user level software, almost no development tools are included. Using the serial console and VNC combined also helps to keep installation simpler and easier to catch problems on the serial console. The following example shows how to boot the installer using TFTP, based on the ramboot macro and adding some openSUSE specific boot parameters. For more parameters please check the Linuxrc documentation.

=> setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs vnc=1 vncpassword=MySecret123 install=http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/
=> tftp $ramdiskaddr $ramdiskfile
=> tftp $loadaddr $bootfile
=> tftp $dtbaddr $dtbfile
=> bootm $loadaddr $ramdiskaddr $dtbaddr

From here installation of openSUSE almost the same as on any other platforms. First kernel messages are shown on the serial console, then the installer starts. After a few minutes it prints some information how to reach the installer by VNC. A nice walk through of installation is available: Installation/11.0_DVD_Install. There are two differences to note:

  • bootloader needs to be changed to 'none' on the installation overview page
  • changing to stage2 is not as smooth as on x86 (no kexec on PPC32, different boot process)

Please note, which partition is used for the root ( / ) partition, this will be needed later on.

Once the first stage of installation is ready the machine will reboot. Booting the installed system is an easier process.

=> setenv bootargs root=/dev/sdaX rw console=$consoledev,$baudrate $othbootargs
=> tftp $loadaddr $bootfile
=> tftp $dtbaddr $dtbfile
=> bootm $loadaddr - $dtbaddr

Where X stands for the partition number of the root partition. The system boots and if auto configuration is selected (default), then finishes the setup process automagically. Error / warning messages are printed on the console, as modules for the running kernel are not available. It can be fixed by downloading and extracting the above mentioned modules archive as root.

The above mentioned nscd problem can be eliminated by stopping the service and removing the package from the system:

# rcnscd stop
# rpm -e nscd

Installation - booting from HDD

Installation of openSUSE can be carried out in many different ways. The most convenient is using a network installation source and a remote VNC console. The DVD contains only desktop environments and user level software, almost no development tools are included. Using the serial console and VNC combined also helps to keep installation simpler and easier to catch problems on the serial console. The following example shows how to boot the installer from the HDD, based on the hdboot macro and adding some openSUSE specific boot parameters. For more parameters please check the Linuxrc documentation. This method has the advantage, that it does not need a TFTP server to be set up.

The MPC8610ADS evaluation system comes with Linux pre-installed. It can be used to download the boot and modules archives and extract them. In the following examples it is assumed, that /dev/sda1 is used for booting and /dev/sda5 is used as the root partition.

First /dev/sda1 needs to be mounted and the boot archive extracted. Once it is done, the machine is to be rebooted. First bootpartition needs to be set to /dev/sda1:

=> setenv bootpartition 1

Then the installer can be set up:

=> setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs vnc=1 vncpassword=MySecret123 install=http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/
=> ext2load scsi $boothdno:$bootpartition $ramdiskaddr $ramdiskfile
=> ext2load scsi $boothdno:$bootpartition $loadaddr $bootfile
=> ext2load scsi $boothdno:$bootpartition $dtbaddr $dtbfile
=> bootm $loadaddr $ramdiskaddr $dtbaddr

From here installation of openSUSE almost the same as on any other platforms. First kernel messages are shown on the serial console, then the installer starts. After a few minutes it prints some information how to reach the installer by VNC. A nice walk through of installation is available: Installation/11.0_DVD_Install. There are two differences to note:

  • bootloader needs to be changed to 'none' on the installation overview page
  • changing to stage2 is not as smooth as on x86 (no kexec on PPC32, different boot process)

Once the first stage of installation is ready the machine will reboot. Booting the installed system is an easier process.

=> setenv bootpartition 1

This step can be skipped, if saveenv is used previously.

=> setenv bootargs root=/dev/sda5 rw console=$consoledev,$baudrate $othbootargs
=> ext2load scsi $boothdno:$bootpartition $loadaddr $bootfile
=> ext2load scsi $boothdno:$bootpartition $dtbaddr $dtbfile
=> bootm $loadaddr - $dtbaddr

The system boots and if auto configuration is selected (default), then finishes the setup process automagically. Error / warning messages are printed on the console, as modules for the running kernel are not available. It can be fixed afterwards by downloading and extracting the above mentioned modules archive as root. These messages can be avoided by an additional booting of the pre-installed Linux and using that to extract modules to the freshly installed Linux.

The above mentioned nscd problem can be eliminated by stopping the service and removing the package from the system:

# rcnscd stop
# rpm -e nscd