diff --git a/.obs_test b/.obs_test
index 04039957..7fb08755 100644
--- a/.obs_test
+++ b/.obs_test
@@ -1,4 +1,4 @@
Virtualization:Appliances:Images:Testing_x86 x86_64
-Virtualization:Appliances:Images:Testing_arm armv7l
+Virtualization:Appliances:Images:Testing_arm aarch64
Virtualization:Appliances:Images:Testing_s390 s390x
Virtualization:Appliances:Images x86_64
diff --git a/build-tests/arm/test-image-panda-oem/appliance.kiwi b/build-tests/arm/test-image-panda-oem/appliance.kiwi
deleted file mode 100644
index c9f9ec30..00000000
--- a/build-tests/arm/test-image-panda-oem/appliance.kiwi
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
- Marcus Schaefer
- ms@suse.com
-
- openSUSE Tumbleweed JeOS image for ARM (panda) boards
-
-
-
-
-
- true
- 500
- true
-
-
- 2016.03.09
- zypper
- en_US
- us
- Europe/Berlin
- true
- openSUSE
- openSUSE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build-tests/arm/test-image-panda-oem/config.sh b/build-tests/arm/test-image-panda-oem/config.sh
deleted file mode 100644
index d8272359..00000000
--- a/build-tests/arm/test-image-panda-oem/config.sh
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/bash
-# vim: sw=4 et
-#================
-# FILE : config.sh
-#----------------
-# PROJECT : OpenSuSE KIWI Image System
-# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved
-# :
-# AUTHOR : Marcus Schaefer
-# :
-# BELONGS TO : Operating System images
-# :
-# DESCRIPTION : configuration script for SUSE based
-# : operating systems
-# :
-# :
-# STATUS : BETA
-#----------------
-#======================================
-# Functions...
-#--------------------------------------
-test -f /.kconfig && . /.kconfig
-test -f /.profile && . /.profile
-
-#======================================
-# Greeting...
-#--------------------------------------
-echo "Configure image: [$kiwi_iname]..."
-
-#======================================
-# Setup baseproduct link
-#--------------------------------------
-suseSetupProduct
-
-#======================================
-# Activate services
-#--------------------------------------
-suseInsertService sshd
-suseInsertService boot.device-mapper
-suseInsertService ntpd
-suseInsertService NetworkManager
-suseRemoveService avahi-dnsconfd
-suseRemoveService avahi-daemon
-
-#==========================================
-# remove unneeded packages
-#------------------------------------------
-suseRemovePackagesMarkedForDeletion
-
-#======================================
-# Add missing gpg keys to rpm
-#--------------------------------------
-suseImportBuildKey
-
-#==========================================
-# remove package docs
-#------------------------------------------
-rm -rf /usr/share/doc/packages/*
-rm -rf /usr/share/doc/manual/*
-rm -rf /opt/kde*
-
-if ! rpmqpack | grep -q vim-enhanced; then
- #======================================
- # only basic version of vim is
- # installed; no syntax highlighting
- #--------------------------------------
- sed -i -e's/^syntax on/" syntax on/' /etc/vimrc
-fi
-
-#======================================
-# Import GPG Key
-#--------------------------------------
-t=$(mktemp)
-cat - < $t
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.15 (GNU/Linux)
-
-mQENBEkUTD8BCADWLy5d5IpJedHQQSXkC1VK/oAZlJEeBVpSZjMCn8LiHaI9Wq3G
-3Vp6wvsP1b3kssJGzVFNctdXt5tjvOLxvrEfRJuGfqHTKILByqLzkeyWawbFNfSQ
-93/8OunfSTXC1Sx3hgsNXQuOrNVKrDAQUqT620/jj94xNIg09bLSxsjN6EeTvyiO
-mtE9H1J03o9tY6meNL/gcQhxBvwuo205np0JojYBP0pOfN8l9hnIOLkA0yu4ZXig
-oKOVmf4iTjX4NImIWldT+UaWTO18NWcCrujtgHueytwYLBNV5N0oJIP2VYuLZfSD
-VYuPllv7c6O2UEOXJsdbQaVuzU1HLocDyipnABEBAAG0NG9wZW5TVVNFIFByb2pl
-Y3QgU2lnbmluZyBLZXkgPG9wZW5zdXNlQG9wZW5zdXNlLm9yZz6JATwEEwECACYC
-GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCU2dN1AUJHR8ElQAKCRC4iy/UPb3C
-hGQrB/9teCZ3Nt8vHE0SC5NmYMAE1Spcjkzx6M4r4C70AVTMEQh/8BvgmwkKP/qI
-CWo2vC1hMXRgLg/TnTtFDq7kW+mHsCXmf5OLh2qOWCKi55Vitlf6bmH7n+h34Sha
-Ei8gAObSpZSF8BzPGl6v0QmEaGKM3O1oUbbB3Z8i6w21CTg7dbU5vGR8Yhi9rNtr
-hqrPS+q2yftjNbsODagaOUb85ESfQGx/LqoMePD+7MqGpAXjKMZqsEDP0TbxTwSk
-4UKnF4zFCYHPLK3y/hSH5SEJwwPY11l6JGdC1Ue8Zzaj7f//axUs/hTC0UZaEE+a
-5v4gbqOcigKaFs9Lc3Bj8b/lE10Y
-=i2TA
------END PGP PUBLIC KEY BLOCK-----
-EOF
-rpm --import $t
-rm -f $t
-
-#======================================
-# SuSEconfig
-#--------------------------------------
-suseConfig
-
-#======================================
-# Add Factory repo
-#--------------------------------------
-zypper ar -f \
- http://download.opensuse.org/ports/armv7hl/tumbleweed/repo/oss/ openSUSE-Ports-Tumbleweed-repo-oss
-
-#======================================
-# Add xorg config with fbdev
-#--------------------------------------
-mkdir -p /etc/X11/xorg.conf.d/
-cat > /etc/X11/xorg.conf.d/20-fbdev.conf <> /etc/securetty < /etc/sysconfig/network/ifcfg-eth0 <<-EOF
- BOOTPROTO='dhcp'
- MTU=''
- REMOTE_IPADDR=''
- STARTMODE='onboot'
- EOF
- ;;
-esac
-
-#======================================
-# Configure ntp
-#--------------------------------------
-# tell e2fsck to ignore the time differences
-cat > /etc/e2fsck.conf <> /etc/ntp.conf
-done
-
-#======================================
-# Load panel-tfp410 before omapdrm
-#--------------------------------------
-cat > /etc/modprobe.d/50-omapdrm.conf < gdisk.tmp
- /usr/src/packages/KIWIROOT-oem/usr/sbin/gdisk /dev/loop0 < gdisk.tmp
- rm -f gdisk.tmp
-fi
-
-#==========================================
-# install MLO as raw
-#------------------------------------------
-if [ -f "boot/MLO" ];then
- echo "Installing MLO (SPL)..."
- opt="count=1 seek=1 conv=notrunc"
- if ! dd if=boot/MLO of=$diskname bs=128k $opt; then
- echo "Couldn't install MLO on $diskname"
- exit 1
- fi
-
- echo "Installing U-Boot..."
- opt="seek=1 conv=notrunc"
- if ! dd if=boot/u-boot.img of=$diskname bs=384k $opt; then
- echo "Couldn't install U-Boot on $diskname"
- exit 1
- fi
-
- # /.../
- # To avoid any issues when parted leaves x86 boot code
- # in the MBR we better clear that part of the image
- # ----
- dd if=/dev/zero of=$diskname bs=440 count=1 conv=notrunc
-fi
-
-#==========================================
-# install Origen SPL & u-boot as raw
-#------------------------------------------
-if [ -f "boot/origen-spl.bin" ];then
- echo "Installing SPL..."
- if ! dd if=boot/origen-spl.bin of=$diskname seek=1 conv=notrunc; then
- echo "Couldn't install SPL on $diskname"
- exit 1
- fi
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.bin of=$diskname seek=65 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
-fi
-
-#==========================================
-# install Odroid (exynos4) BL* & u-boot as raw
-#------------------------------------------
-if [ -f "boot/E4412_S.bl1.HardKernel.bin" ];then
- echo "Installing BL1..."
- if ! dd if=boot/E4412_S.bl1.HardKernel.bin of=$diskname seek=1 conv=notrunc; then
- echo "Couldn't install BL1 on $diskname"
- exit 1
- fi
- echo "Installing BL2..."
- if ! dd if=boot/bl2.signed.bin of=$diskname seek=31 conv=notrunc; then
- echo "Couldn't install BL2 on $diskname"
- exit 1
- fi
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.bin of=$diskname seek=63 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
- if ! dd if=boot/E4412_S.tzsw.signed.bin of=$diskname seek=2111 conv=notrunc; then
- echo "Couldn't install TrustZone S/W on $diskname"
- exit 1
- fi
-fi
-
-#==========================================
-# install Odroid X3 (exynos5) BL* & u-boot as raw
-#------------------------------------------
-if [ -f "boot/bl1.bin.hardkernel" ];then
- echo "Installing BL1..."
- if ! dd if=boot/bl1.bin.hardkernel of=$diskname seek=1 conv=notrunc; then
- echo "Couldn't install BL1 on $diskname"
- exit 1
- fi
- echo "Installing BL2..."
- if ! dd if=boot/bl2.bin.hardkernel of=$diskname seek=31 conv=notrunc; then
- echo "Couldn't install BL2 on $diskname"
- exit 1
- fi
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.bin of=$diskname seek=63 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
- if ! dd if=boot/tzsw.bin.hardkernel of=$diskname seek=719 conv=notrunc; then
- echo "Couldn't install TrustZone S/W on $diskname"
- exit 1
- fi
-fi
-
-#==========================================
-# install Arndale SPL & u-boot as raw
-#------------------------------------------
-if [[ -f "boot/smdk5250-spl.bin" || -f "boot/arndale-spl.bin" ]];then
- echo "Installing BL1..."
- if ! dd if=boot/arndale-bl1.img of=$diskname seek=1 conv=notrunc; then
- echo "Couldn't install BL1 on $diskname"
- exit 1
- fi
- echo "Installing SPL..."
- # Get SPL name (depends on u-boot version)
- SPL_FILE=$(ls boot/*-spl.bin);
- if ! dd if=$SPL_FILE of=$diskname seek=17 conv=notrunc; then
- echo "Couldn't install SPL ($SPL_FILE) on $diskname"
- exit 1
- fi
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.bin of=$diskname seek=49 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
-fi
-
-#==========================================
-# install Cubieboard/Cubietruck SPL & u-boot as raw
-#------------------------------------------
-if [[ -f "boot/sunxi-spl.bin" || -f "boot/u-boot-sunxi-with-spl.bin" ]];then
- if [ -f "boot/u-boot-sunxi-with-spl.bin" ]; then
- echo "Installing All-in-one U-Boot/SPL..."
- if ! dd if=boot/u-boot-sunxi-with-spl.bin of=$diskname bs=1024 seek=8 conv=notrunc; then
- echo "Couldn't install SPL on $diskname"
- exit 1
- fi
- else
- echo "Installing SPL..."
- if ! dd if=boot/sunxi-spl.bin of=$diskname bs=1024 seek=8 conv=notrunc; then
- echo "Couldn't install SPL on $diskname"
- exit 1
- fi
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.img of=$diskname bs=1024 seek=40 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
- fi
-fi
-
-#==========================================
-# install Chromebook u-boot as boot kernel
-#------------------------------------------
-if [ "$flavor" = "chromebook" ]; then
- pushd /usr/src/packages/KIWIROOT-oem/
- echo "console=tty1 debug verbose" > /tmp/config
- ./usr/bin/vbutil_kernel --pack /tmp/newkern \
- --keyblock ./usr/share/vboot/devkeys/kernel.keyblock \
- --version 1 \
- --signprivate ./usr/share/vboot/devkeys/kernel_data_key.vbprivk \
- --config=/tmp/config --vmlinuz boot/u-boot.img --arch arm
- PART=$(kpartx -asv $diskname | cut -d ' ' -f 3 | head -n1)
- dd if=/tmp/newkern of=/dev/mapper/$PART
- kpartx -dv $diskname
- # Enable bootflag on partition 2 (u-boot now looks for bootscripts on bootable partitions only)
- parted $diskname set 2 boot on
- # CGPT magic
- ./usr/bin/cgpt add -t kernel -i 1 -S 1 -T 5 -P 10 -l U-BOOT $diskname
- popd
-fi
-
-#==========================================
-# install i.MX u-boot as raw
-#------------------------------------------
-if [ -f "boot/u-boot.imx" ];then
- pushd /usr/src/packages/KIWIROOT-oem/
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.imx of=$diskname bs=512 seek=2 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
- popd
-fi
-
-#==========================================
-# install Cubox-i SPL & u-boot as raw
-#------------------------------------------
-if [ -f "boot/cuboxi-spl.bin" ];then
- echo "Installing SPL..."
- if ! dd if=boot/cuboxi-spl.bin of=$diskname bs=1024 seek=1 conv=notrunc; then
- echo "Couldn't install SPL on $diskname"
- exit 1
- fi
- echo "Installing U-Boot..."
- if ! dd if=boot/u-boot.img of=$diskname bs=1024 seek=69 conv=notrunc; then
- echo "Couldn't install u-boot on $diskname"
- exit 1
- fi
-fi
-
-)
-
-if [ -f boot/grub2/*efi/grub.efi -o -f ./EFI/BOOT/boot*.efi ];then
- echo "EFI system, installing startup.nsh"
- PART=$(kpartx -asv $diskname | cut -d ' ' -f 3 | head -n1)
- mkdir ./mnt
- mount /dev/mapper/$PART ./mnt
- if [ -f boot/grub2/arm-efi/grub.efi ]; then
- echo "bootarm" > mnt/startup.nsh
- else
- echo "bootaa64" > mnt/startup.nsh
- fi
- umount ./mnt
- rmdir ./mnt
- kpartx -dv $diskname
-fi
diff --git a/build-tests/arm/test-image-panda-oem/uboot-image-panda-setup b/build-tests/arm/test-image-panda-oem/uboot-image-panda-setup
deleted file mode 100644
index 0191a894..00000000
--- a/build-tests/arm/test-image-panda-oem/uboot-image-panda-setup
+++ /dev/null
@@ -1,508 +0,0 @@
-#!/bin/bash
-
-set -x
-
-flavor=panda
-target=firstboot
-kerneladdr=
-ramdiskaddr=
-bootkernel=default
-
-case $target in
- firstboot)
- conf=boot/boot.script
- binconf=boot/boot.scr
- kernel=boot/linux.vmx
- initrd=boot/initrd.uboot
- # the kernel command line is already prepopulated by KIWI
- bootargs=
- ;;
- boot)
- hookName=$1 # name of hook script calling this code
- mountPrefix=$2 # mount path of the image
- destsPrefix=$3 # base dir for the config files
- unum=$4 # boot partition ID
- rdev=$5 # root partition
- ufix=$6 # title postfix
- swap=$7 # optional swap partition
- conf=$destsPrefix/boot/boot.script
- binconf=$destsPrefix/boot/boot.script
-
- #======================================
- # make sure conf dir exists
- #--------------------------------------
- mkdir -p $destsPrefix/boot
- #======================================
- # check for device by ID
- #--------------------------------------
- local diskByID=`getDiskID $rdev`
- local swapByID=`getDiskID $swap swap`
- #======================================
- # check for system image .profile
- #--------------------------------------
- if [ -f $mountPrefix/image/.profile ];then
- importFile < $mountPrefix/image/.profile
- fi
- #======================================
- # check for kernel options
- #--------------------------------------
- if [ ! -z "$kiwi_cmdline" ];then
- KIWI_KERNEL_OPTIONS="$KIWI_KERNEL_OPTIONS $kiwi_cmdline"
- fi
-
- # /.../
- # On other systems which supports a boot menu we add
- # the linux kernel and initrd with its file names
- # like this:
- #
- # kernel=`echo $i | cut -f1 -d:`
- # initrd=`echo $i | cut -f2 -d:`
- #
- # But on arm systems there can only be one kernel because
- # uboot doesn't support a menu. Thus perl-bootloader also
- # doesn't support updating the uboot configuration and
- # that's the reason why we use the links created by
- # mkinitrd to point to the kernel and initrd in order
- # to support kernel updates
- # ----
- kernel=uImage
- initrd=initrd
-
- # gather kernel command line
- bootargs="root=$diskByID loader=$loader"
- if [ "$imageDiskDevice" ];then
- bootargs="$bootargs disk=$(getDiskID $imageDiskDevice)"
- fi
- if [ "$swap" ];then
- bootargs="$bootargs resume=$swapByID"
- fi
- if [ "$haveLVM" = "yes" ];then
- bootargs="$bootargs VGROUP=$VGROUP"
- fi
- bootargs="$bootargs $KIWI_INITRD_PARAMS"
- bootargs="$bootargs $KIWI_KERNEL_OPTIONS"
-
- # start with a fresh config
- true > $conf
- ;;
- *)
- echo "Unknown target $target" >&2
- exit 1
- ;;
-esac
-
-bootdevs=mmc
-units="0"
-bootparts='${unit}:1'
-boottype=bootz
-setdev='mmc dev ${unit}'
-sizeprefix=0x
-fdtfolder=dtb
-fs=ext2
-initrd_high=0xffffffff
-fdt_high=0xffffffff
-# To display a splash file, we need a working display, an uncompressed BMP file and 'bmp' commands
-should_use_splashfile=0
-splashfile=opensuse.bmp
-
-case $flavor in
- beaglebone)
- units="0 1" # 0: is SD card - 1: is internal eMMC
- kerneladdr=0x82000000
- ramdiskaddr=0x88080000
- fdtaddr=0x88000000
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=call_findfdt
- ;;
- beagle|panda)
- kerneladdr=0x82000000
- ramdiskaddr=0x88080000
- fdtaddr=0x88000000
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=call_findfdt
- ;;
- highbank|midway)
- bootdevs=scsi
- should_use_fdt=1
- setdev=1
- # Highbank's u-boot already prepends 0x to the file size
- sizeprefix=
- # And calls the variable $fdt_addr rather than $fdtaddr
- use_fdt_addr=1
- ;;
- cubox)
- kerneladdr=0x2000000
- ramdiskaddr=0x5000000
- ;;
- cubieboard)
- kerneladdr=0x46000000
- ramdiskaddr=0x4a000000
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=sun4i-a10-cubieboard.dtb
- fdtaddr=0x49000000
- ;;
- cubieboard2)
- kerneladdr=0x46000000
- ramdiskaddr=0x4a000000
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=sun7i-a20-cubieboard2.dtb
- fdtaddr=0x49000000
- ;;
- cubietruck)
- kerneladdr=0x46000000
- ramdiskaddr=0x4a000000
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=sun7i-a20-cubietruck.dtb
- fdtaddr=0x49000000
- ;;
- bananapi)
- kerneladdr=0x46000000
- ramdiskaddr=0x4a000000
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=sun7i-a20-bananapi.dtb
- fdtaddr=0x49000000
- ;;
- loco)
- kerneladdr=0x70800000
- ramdiskaddr=0x7e000000
- fdtaddr=0x7d800000
- should_use_fdt=1
- should_load_fdt=1
- units="0 1"
- fdtfile=imx53-qsb.dtb
- ;;
- arndale)
- kerneladdr=0x44000000
- ramdiskaddr=0x45000000
- fdtaddr=0x4c000000
- units="0 1" # 0: is internal eMMC or USB stick - 1: is SD card
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=exynos5250-arndale.dtb
- ;;
- chromebook)
- fs="" # No ext2load by default on u-boot-snow. Just use 'load' command.
- kerneladdr=0x40007000
- ramdiskaddr=0x44000000
- fdtaddr=0x42000000
- bootdevs="mmc usb"
- units="0 1" # 0: is internal eMMC or USB stick - 1: is SD card
- bootparts='${unit}:2'
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=exynos5250-snow.dtb
- ;;
- sabrelite)
- kerneladdr=0x10008000
- ramdiskaddr=0x14000000
- fdtaddr=0x12000000
- bootdevs="mmc usb"
- units="0 1" # 0: is SD3 (bottom) slot - 1: is uSD4 (top) slot
- should_use_fdt=1
- should_load_fdt=1
- fdtfile=imx6q-sabrelite.dtb
- should_use_splashfile=1
- ;;
- raspberrypi)
- fs=""
- bootparts='${unit}:2'
- should_use_fdt=1
- should_load_fdt=1
- use_fdt_addr_r=1
- #fdtfile is set by u-boot, do not overwrite
- # kernel-raspberrypi (downstream kernel) does not use the same DT
- if [ $bootkernel = raspberrypi ]; then
- fdtfile=bcm2708-rpi-b.dtb # TODO: Support all RPi1 DTB included in Linux kernel, not only RPi 1 B
- fi
- # bootargs for dracut shouldn't override rootfstype
- bootargs=$(echo "$bootargs" | sed 's/ rootfstype=ramfs//')
- if [ $bootkernel = raspberrypi ]; then
- # Pass Mac address to Linux (works only on downstream kernel). Should be removed with new u-boot which will auto-update device-tree with it.
- if [ $target = boot ]; then
- # Bootargs is defined upper in this script, so it is available/editable
- bootargs=$(echo "$bootargs smsc95xx.macaddr=\${usbethaddr} ")
- else # $target = firstboot
- # Bootargs is already defined by kiwi but not available/editable here
- bootargs=$(echo "\${bootargs} smsc95xx.macaddr=\${usbethaddr} ")
- fi
- fi
- # initrd needs to be relocated as it is too big
- initrd_high=
- ;;
- raspberrypi2)
- fs=""
- bootparts='${unit}:2'
- should_use_fdt=1
- should_load_fdt=1
- use_fdt_addr_r=1
- if [ $bootkernel = rpi2 ]; then
- fdtfile=bcm2709-rpi-2-b.dtb
- fi
- # bootargs for dracut shouldn't override rootfstype
- bootargs=$(echo "$bootargs" | sed 's/ rootfstype=ramfs//')
- if [ $bootkernel = rpi2 ]; then
- # Pass Mac address to Linux (works only on downstream kernel) Should be removed with new u-boot which will auto-update device-tree with it.
- if [ $target = boot ]; then
- # Bootargs is defined upper in this script, so it is available/editable
- bootargs=$(echo "$bootargs smsc95xx.macaddr=\${usbethaddr} ")
- else # $target = firstboot
- # Bootargs is already defined by kiwi but not available/editable here
- bootargs=$(echo "\${bootargs} smsc95xx.macaddr=\${usbethaddr} ")
- fi
- fi
- # initrd needs to be relocated as it is too big
- initrd_high=
- ;;
- raspberrypi3)
- fs=""
- bootparts='${unit}:2'
- should_use_fdt=1
- should_load_fdt=1
- use_fdt_addr_r=1
- fdtfile=bcm2710-rpi-3-b.dtb
- # bootargs for dracut shouldn't override rootfstype
- bootargs=$(echo "$bootargs" | sed 's/ rootfstype=ramfs//')
- if [ $bootkernel = rpi2 ]; then
- # Pass Mac address to Linux (works only on downstream kernel) Should be removed with new u-boot which will auto-update device-tree with it.
- if [ $target = boot ]; then
- # Bootargs is defined upper in this script, so it is available/editable
- bootargs=$(echo "$bootargs smsc95xx.macaddr=\${usbethaddr} ")
- else # $target = firstboot
- # Bootargs is already defined by kiwi but not available/editable here
- bootargs=$(echo "\${bootargs} smsc95xx.macaddr=\${usbethaddr} ")
- fi
- fi
- # initrd needs to be relocated as it is too big
- initrd_high=
- ;;
- cuboxi)
- kerneladdr=0x10800100
- fdtaddr=calculate
- ramdiskaddr=calculate
- should_load_fdt=1
- should_use_fdt=1
- fdtfile=call_findfdt
- fs="" # u-boot does not know ext2load on cubox-i, 'load' does the job fine
- ;;
- mustang)
- boottype=bootm
- bootdevs=scsi
- setdev="true"
- kerneladdr=0x4002000000
- fdtaddr=calculate
- ramdiskaddr=calculate
- use_fdt_addr_r=1
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- initrd_high=0x43e0000000
- fdtfile=apm-mustang.dtb
- [ "$target" = "boot" ] && initrd=uInitrd
- fdt_high=
- ;;
- m400)
- fs="" # Just use "load" command
- boottype=bootm
- bootdevs=scsi
- setdev="true"
- kerneladdr=0x4002000000
- fdtaddr=calculate
- ramdiskaddr=calculate
- use_fdt_addr_r=1
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- initrd_high=0x43e0000000
- fdtfile=apm/apm-m400.dtb
- fdt_high=
- ;;
- paz00)
- kerneladdr=0x1000000
- ramdiskaddr=0x2200000
- fdtaddr=0x2000000
- should_use_fdt=1
- should_load_fdt=1
- units="1 0"
- bootdevs="mmc usb"
- fdtfile=tegra20-paz00.dtb
- ;;
- olinuxinolime)
- kerneladdr=0x41000000
- ramdiskaddr=calculate
- fdtaddr=calculate
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- fdtfile=sun4i-a10-olinuxino-lime.dtb
- fdt_high=
- initrd_high=
- ;;
- olinuxinolime2)
- kerneladdr=0x41000000
- ramdiskaddr=calculate
- fdtaddr=calculate
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- fdtfile=sun7i-a20-olinuxino-lime2.dtb
- fdt_high=
- initrd_high=
- ;;
- a13olinuxino)
- kerneladdr=0x41000000
- ramdiskaddr=calculate
- fdtaddr=calculate
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- fdtfile=sun5i-a13-olinuxino.dtb
- fdt_high=
- initrd_high=
- ;;
- a20olinuxinolime)
- kerneladdr=0x41000000
- ramdiskaddr=calculate
- fdtaddr=calculate
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- fdtfile=sun7i-a20-olinuxino-lime.dtb
- fdt_high=
- initrd_high=
- ;;
- a20olinuxinomicro)
- kerneladdr=0x41000000
- ramdiskaddr=calculate
- fdtaddr=calculate
- should_load_fdt=1
- should_use_fdt=1
- remove_fdt_high=1
- fdtfile=sun7i-a20-olinuxino-micro.dtb
- fdt_high=
- initrd_high=
- ;;
- odroid|odroidxu3)
- fs="" # u-boot does not know ext2load on odroid, only fatload, ext4load and load,
- kerneladdr=0x40007FC0
- ramdiskaddr=0x42000000
- fdtaddr=0x40800000
- should_load_fdt=1
- should_use_fdt=1
- ;;
-esac
-
-# override zImage file names
-if [ $boottype = bootz -a $target = boot ]; then
- kernel=zImage
-fi
-
-# calculate fdt- and ramdiskaddr from kerneladdr
-# kernel needs maximum 63MB
-# fdt maximum 1MB
-# ramdisk can be placed anywhere after that
-if [ "x$fdtaddr" = "xcalculate" ]; then
- fdtaddr=$(( $kerneladdr + 0x03F00000 )) # kernel + 63M
- fdtaddr=`printf '0x%X' $fdtaddr` # convert back to hexadecimal
-fi
-if [ "x$ramdiskaddr" = "xcalculate" ]; then
- ramdiskaddr=$(( $fdtaddr + 0x00100000 )) # fdt + 1M
- ramdiskaddr=`printf '0x%X' $ramdiskaddr` # convert back to hexadecimal
-fi
-
-# copy bash variables into boot script (except 'target' which is not used in u-boot and may overlap u-boot variables (e.g. cubox-i))
-for variable in kernel initrd fdtfile fdtfolder flavor bootdevs bootparts \
- initrd_high fdt_high boottype kerneladdr ramdiskaddr should_use_fdt \
- should_load_fdt fdtaddr setdev units sizeprefix use_fdt_addr \
- use_fdt_addr_r fs remove_fdt_high should_use_splashfile splashfile; do
- value=$(eval "echo $(echo \$$variable)")
- # only set variables that contain data, leave the others alone
- if [ "$value" ]; then
- echo "setenv $variable '$value'" >> $conf
- fi
-done
-
-# follow KIWI modules/KIWIBoot.pm and append $append variable to the end of bootargs
-# this allows user to consistently add extra parameters to kernel as simply as possible:
-# > setenv append extraopt
-# > boot
-if [ "x$bootargs" != "x" ]; then
- echo "setenv bootargs \"$bootargs \${append}\"" >> $conf
-fi
-
-cat >> $conf <<-"EOF"
- test -n "$kerneladdr" || setenv kerneladdr ${kernel_addr_r}
- test -n "$ramdiskaddr" || setenv ramdiskaddr ${ramdisk_addr_r}
- if test 1${should_use_splashfile} = 11; then
- setenv load_splashfile 'if ${fs}load ${bootdev} ${bootpart} ${kerneladdr} ${splashfile}; then; bmp display ${kerneladdr}; fi;'
- else
- setenv load_splashfile ''
- fi
- setenv load_kernel '${fs}load ${bootdev} ${bootpart} ${kerneladdr} ${kernel}'
- setenv load_initrd '${fs}load ${bootdev} ${bootpart} ${ramdiskaddr} ${initrd}; setenv rd_filesize ${sizeprefix}${filesize}'
- if test 1${should_load_fdt} = 11; then
- if test 0${fdtfile} = 0call_findfdt; then
- run findfdt
- fi
- if test 0${fdtfile} = 0call_autodetectfdt; then
- run autodetectfdt
- fi
- if test -n "$validatefdt"; then
- # Beagleboard xM needs to run validatefdt with latest u-boot, but bootpart is 0:2 by default and prefix file with $bootdir.
- setenv bootpart 0:1
- setenv bootdir ${fdtfolder}
- run validatefdt
- fi
- setenv loadfdt '${fs}load ${bootdev} ${bootpart} ${fdtaddr} ${fdtfolder}/${fdtfile}'
- else
- setenv loadfdt ''
- fi
- if test 1${use_fdt_addr} = 11; then
- # Calxeda systems use $fdt_addr rather than $fdtaddr
- setenv fdtaddr $fdt_addr
- fi
- if test 1${use_fdt_addr_r} = 11; then
- # At least upstream rpi_b uses $fdt_addr_r rather than $fdtaddr
- setenv fdtaddr ${fdt_addr_r}
- fi
- if test 1${should_use_fdt} = 11; then
- setenv boot_kernel '${boottype} ${kerneladdr} ${ramdiskaddr}:${rd_filesize} ${fdtaddr}'
- else
- setenv boot_kernel '${boottype} ${kerneladdr} ${ramdiskaddr}:${rd_filesize}'
- fi
- if test 1${remove_fdt_high} = 11; then
- setenv fdt_high
- fi
- setenv doit 'run load_splashfile; if run load_kernel; then; run load_initrd; run loadfdt; run boot_kernel; fi'
- setenv bootcmd 'for bootdev in ${bootdevs}; do for unit in ${units}; do setenv bootpart; for bootpart in ${bootparts}; do setenv fix_bootpart "setenv bootpart $bootpart"; run fix_bootpart; run setdev; run doit; done; done; done'
- boot
-EOF
-
-#==========================================
-# Create machine readable uboot format
-# (only during image creation)
-#------------------------------------------
-if [ -x /usr/bin/mkimage -a "$target" = firstboot ];then
- mkopts="-A arm -O linux -a 0 -e 0 -T script -C none";
- if ! mkimage $mkopts -n 'Boot-Script' -d $conf $binconf;then
- echo "Failed to create uboot script image"
- exit 1
- fi
-fi
-
-#==========================================
-# create a uImage for one-off x-gene
-#------------------------------------------
-if [ "$flavor" = "mustang" -o "$flavor" = "m400" ]; then
- if [ "$target" = "firstboot" ]; then
- mkimage -A arm -O linux -C none -T kernel -a 0x00080000 -e 0x00080000 -n Linux -d $kernel boot/uImage
- mv boot/uImage $kernel
- fi
-fi
-
-set +x
diff --git a/build-tests/arm/test-image-rpi-oem/appliance.kiwi b/build-tests/arm/test-image-rpi-oem/appliance.kiwi
new file mode 100644
index 00000000..c8664c2a
--- /dev/null
+++ b/build-tests/arm/test-image-rpi-oem/appliance.kiwi
@@ -0,0 +1,100 @@
+
+
+
+
+ Marcus Schäfer
+ ms@suse.com
+ oem disk for RaspberryPi test build
+
+
+ 1.15.0
+ zypper
+ openSUSE
+ openSUSE
+ en_US
+ us
+ Europe/Berlin
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ 500
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build-tests/arm/test-image-rpi-oem/config.sh b/build-tests/arm/test-image-rpi-oem/config.sh
new file mode 100644
index 00000000..66e944f4
--- /dev/null
+++ b/build-tests/arm/test-image-rpi-oem/config.sh
@@ -0,0 +1,127 @@
+#!/bin/bash
+#======================================
+# Functions...
+#--------------------------------------
+test -f /.kconfig && . /.kconfig
+test -f /.profile && . /.profile
+
+mkdir /var/lib/misc/reconfig_system
+
+#======================================
+# Greeting...
+#--------------------------------------
+echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
+
+#======================================
+# Debug
+#--------------------------------------
+#systemctl enable debug-shell.service
+
+#======================================
+# add missing fonts
+#--------------------------------------
+CONSOLE_FONT="eurlatgr.psfu"
+
+#======================================
+# Mount system filesystems
+#--------------------------------------
+baseMount
+
+#======================================
+# Setup baseproduct link
+#--------------------------------------
+suseSetupProduct
+
+#======================================
+# Specify default runlevel
+#--------------------------------------
+baseSetRunlevel 3
+
+#======================================
+# Add missing gpg keys to rpm
+#--------------------------------------
+suseImportBuildKey
+
+#======================================
+# Activate services
+#--------------------------------------
+suseInsertService sshd
+
+#======================================
+# Remove doc files
+#--------------------------------------
+baseStripDocs
+
+#======================================
+# Sysconfig Update
+#--------------------------------------
+# Systemd controls the console font now
+echo FONT="$CONSOLE_FONT" >> /etc/vconsole.conf
+
+#======================================
+# SSL Certificates Configuration
+#--------------------------------------
+echo '** Rehashing SSL Certificates...'
+update-ca-certificates
+
+if [ ! -s /var/log/zypper.log ]; then
+ > /var/log/zypper.log
+fi
+
+#======================================
+# Import trusted rpm keys
+#--------------------------------------
+for i in /usr/lib/rpm/gnupg/keys/gpg-pubkey*asc; do
+ # importing can fail if it already exists
+ rpm --import $i || true
+done
+
+#=====================================
+# Configure snapper
+#-------------------------------------
+if [ "$kiwi_btrfs_root_is_snapshot" = 'true' ]; then
+ echo "creating initial snapper config ..."
+ # we can't call snapper here as the .snapshots subvolume
+ # already exists and snapper create-config doens't like
+ # that.
+ cp /etc/snapper/config-templates/default /etc/snapper/configs/root
+ # Change configuration to match SLES12-SP1 values
+ sed -i -e '/^TIMELINE_CREATE=/s/yes/no/' /etc/snapper/configs/root
+ sed -i -e '/^NUMBER_LIMIT=/s/50/10/' /etc/snapper/configs/root
+
+ baseUpdateSysConfig /etc/sysconfig/snapper SNAPPER_CONFIGS root
+fi
+
+#=====================================
+# Enable ntpd if installed
+#-------------------------------------
+if [ -f /etc/ntp.conf ]; then
+ suseInsertService ntpd
+ for i in 0 1 2 3; do
+ echo "server $i.opensuse.pool.ntp.org iburst" >> /etc/ntp.conf
+ done
+fi
+
+#======================================
+# Configure Raspberry Pi specifics
+#--------------------------------------
+# Add necessary kernel modules to initrd (will disappear with bsc#1084272)
+echo 'add_drivers+=" bcm2835_dma dwc2 "' \
+ > /etc/dracut.conf.d/raspberrypi_modules.conf
+
+# Work around HDMI connector bug and network issues
+cat > /etc/modprobe.d/50-rpi3.conf <<-EOF
+ # No HDMI hotplug available
+ options drm_kms_helper poll=0
+ # Prevent too many page allocations (bsc#1012449)
+ options smsc95xx turbo_mode=N
+EOF
+
+cat > /usr/lib/sysctl.d/50-rpi3.conf <<-EOF
+ # Avoid running out of DMA pages for smsc95xx (bsc#1012449)
+ vm.min_free_kbytes = 2048
+EOF
+
+baseCleanMount
+
+exit 0
diff --git a/build-tests/arm/test-image-rpi-oem/editbootinstall_rpi.sh b/build-tests/arm/test-image-rpi-oem/editbootinstall_rpi.sh
new file mode 100644
index 00000000..b437f0da
--- /dev/null
+++ b/build-tests/arm/test-image-rpi-oem/editbootinstall_rpi.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+set -x
+
+diskname=$1
+devname="$2"
+loopname="${devname%*p2}"
+loopdev=/dev/${loopname#/dev/mapper/*}
+
+#==========================================
+# copy Raspberry Pi firmware to EFI partition
+#------------------------------------------
+echo "RPi EFI system, installing firmware on ESP"
+mkdir -p ./mnt-pi
+mount ${loopname}p1 ./mnt-pi
+( cd boot/vc; tar c . ) | ( cd ./mnt-pi/; tar x )
+umount ./mnt-pi
+rmdir ./mnt-pi
+
+#==========================================
+# Change partition label type to MBR
+#------------------------------------------
+#
+# The target system doesn't support GPT, so let's move it to
+# MBR partition layout instead.
+#
+# Also make sure to set the ESP partition to type 0xc so that
+# broken firmware (Rpi) detects it as FAT.
+#
+# Use tabs, "<<-" strips tabs, but no other whitespace!
+cat > gdisk.tmp <<-'EOF'
+ x
+ r
+ g
+ t
+ 1
+ c
+ w
+ y
+ EOF
+dd if=$loopdev of=mbrid.bin bs=1 skip=440 count=4
+gdisk $loopdev < gdisk.tmp
+dd of=$loopdev if=mbrid.bin bs=1 seek=440 count=4
+rm -f mbrid.bin
+rm -f gdisk.tmp
diff --git a/build-tests/arm/test-image-rpi-oem/root/etc/sysconfig/network/ifcfg-lan0 b/build-tests/arm/test-image-rpi-oem/root/etc/sysconfig/network/ifcfg-lan0
new file mode 100644
index 00000000..b01f9e19
--- /dev/null
+++ b/build-tests/arm/test-image-rpi-oem/root/etc/sysconfig/network/ifcfg-lan0
@@ -0,0 +1,4 @@
+BOOTPROTO='dhcp'
+MTU=''
+REMOTE_IPADDR=''
+STARTMODE='onboot'
diff --git a/build-tests/arm/test-image-rpi-oem/root/etc/udev/rules.d/70-persistent-net.rules b/build-tests/arm/test-image-rpi-oem/root/etc/udev/rules.d/70-persistent-net.rules
new file mode 100644
index 00000000..8865e787
--- /dev/null
+++ b/build-tests/arm/test-image-rpi-oem/root/etc/udev/rules.d/70-persistent-net.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="?*", NAME="lan0"