Add scripts to setup environment for automated tests
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 5 Feb 2014 15:55:13 +0000 (16:55 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 5 Feb 2014 16:06:01 +0000 (17:06 +0100)
continuous/gw-setup/boot
continuous/gw-setup/run.pl
continuous/gw-setup/shark-ryu.dtb
continuous/gw-setup/uImage
continuous/steps/10-clone [new file with mode: 0755]
continuous/steps/11-patch [new file with mode: 0755]
continuous/steps/20-config [new file with mode: 0755]
continuous/steps/30-compile [new file with mode: 0755]
continuous/steps/40-run-tests [new file with mode: 0755]
continuous/steps/shark-ryu-board-patch.patch [new file with mode: 0644]

index c288986..9508474 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env novaboot
 # -*-sh-*-
-load uImage console=ttyPSC0,115200 quiet
+load uImage.tmp console=ttyPSC0,115200 quiet < cat ${LINUX_IMAGE:-uImage}
 load shark-ryu.dtb
 load rootfs2.uImage < gen_cpio --mkimage="-T ramdisk -A powerpc -O linux" buildroot/images/rootfs.cpio initramfs "ugw->/bin/"
index d026b12..04433d6 100755 (executable)
@@ -34,7 +34,7 @@ my $status = system((qw(ssh -T glab), $latester));
 kill('TERM', -$pid);
 exit($status >> 8);
 
-
+sub kill_boot() { kill('TERM', -$pid) if defined $pid; }
 sub run_boot()
 {
     # die("No boot command") if ($#ARGV eq -1);
@@ -42,6 +42,8 @@ sub run_boot()
 
     my $bootcmd = "$FindBin::Bin/boot";
 
+    $SIG{INT} = sub { kill_boot(); exit; };
+
     pipe($boot, $wh) || die("pipe: $!");
     my $pid = fork() // die("fork: $!");
     if ($pid == 0) {
@@ -56,4 +58,4 @@ sub run_boot()
     return $pid;
 }
 
-END { kill('TERM', -$pid) if defined $pid; }
+END { kill_boot(); }
index df8743b..fe5a086 120000 (symlink)
@@ -1 +1 @@
-../../kernel/build/shark/3.12/arch/powerpc/boot/shark-ryu.dtb
\ No newline at end of file
+../steps/linux/arch/powerpc/boot/shark-ryu.dtb
\ No newline at end of file
index adfe471..225088e 120000 (symlink)
@@ -1 +1 @@
-../../kernel/build/shark/3.12/arch/powerpc/boot/uImage
\ No newline at end of file
+../steps/linux/arch/powerpc/boot/uImage
\ No newline at end of file
diff --git a/continuous/steps/10-clone b/continuous/steps/10-clone
new file mode 100755 (executable)
index 0000000..6d489ee
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+REPO=${REPO:-git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git}
+
+if [ ! -d linux ]; then
+    git clone --reference ~/src/linux/master $REPO linux
+fi
+
+cd linux
+git fetch $REPO
+git reset --hard FETCH_HEAD
diff --git a/continuous/steps/11-patch b/continuous/steps/11-patch
new file mode 100755 (executable)
index 0000000..de5d663
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+
+cd linux
+git am < ../shark-ryu-board-patch.patch
diff --git a/continuous/steps/20-config b/continuous/steps/20-config
new file mode 100755 (executable)
index 0000000..a4d8a6a
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+set -e
+
+cd linux
+
+export ARCH=powerpc
+make allnoconfig
+
+conf() {
+    sed -i -n -e "/\\bCONFIG_$1\\b/!p" .config
+    echo CONFIG_$1=$2 >> .config
+}
+
+conf BLK_DEV_INITRD y
+conf INITRAMFS_SOURCE '""'
+conf INITRAMFS_ROOT_UID 0
+conf INITRAMFS_ROOT_GID 0
+conf INITRAMFS_COMPRESSION_NONE y
+conf INITRAMFS_COMPRESSION_GZIP n
+conf INITRAMFS_COMPRESSION_BZIP2 n
+conf INITRAMFS_COMPRESSION_LZMA n
+conf INITRAMFS_COMPRESSION_XZ n
+conf INITRAMFS_COMPRESSION_LZO n
+
+conf PPC_MPC52xx y
+conf PPC_MPC5200_SIMPLE y
+conf SERIAL_CORE y
+conf SERIAL_CORE_CONSOLE y
+conf SERIAL_MPC52xx y
+conf SERIAL_MPC52xx_CONSOLE y
+conf SERIAL_MPC52xx_CONSOLE_BAUD 115200
+
+conf NET y
+conf CAN y
+conf CAN_RAW y
+conf CAN_GW y
+conf CAN_VCAN y
+conf CAN_DEV y
+conf CAN_CALC_BITTIMING y
+conf CAN_MSCAN y
+conf CAN_MPC5XXX y
+
+conf NETDEVICES y
+conf ETHERNET y
+conf DMADEVICES y
+conf PPC_BESTCOMM y
+conf NET_VENDOR_FREESCALE y
+conf FEC_MPC52xx y
+conf FEC_MPC52xx_MDIO y
+
+# To have netlink for kernel cangw
+conf INET y
+conf NETFILTER y
+
+conf PACKET y # ugw mmap
+
+yes n|make oldconfig
diff --git a/continuous/steps/30-compile b/continuous/steps/30-compile
new file mode 100755 (executable)
index 0000000..e43e00f
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+cd linux
+
+export ARCH=powerpc
+export CROSS_COMPILE=/opt/OSELAS.Toolchain-2012.12.1/powerpc-603e-linux-gnu/gcc-4.7.2-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/powerpc-603e-linux-gnu-
+make -j$(ncpus) uImage shark-ryu.dtb
diff --git a/continuous/steps/40-run-tests b/continuous/steps/40-run-tests
new file mode 100755 (executable)
index 0000000..413e89a
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -e
+
+export LINUX_IMAGE=$PWD/linux/arch/powerpc/boot/uImage
+
+run-parts -v ../tests
diff --git a/continuous/steps/shark-ryu-board-patch.patch b/continuous/steps/shark-ryu-board-patch.patch
new file mode 100644 (file)
index 0000000..e43e35d
--- /dev/null
@@ -0,0 +1,139 @@
+From 87a8e2b9406cc7f8779f02047e0cd1594c570b78 Mon Sep 17 00:00:00 2001
+From: Michal Sojka <sojkam1@fel.cvut.cz>
+Date: Thu, 23 Jan 2014 23:44:55 +0100
+Subject: [PATCH] Shark/ryu board patch
+
+This is a new version of the patch. It is not based on historical patches
+from Michal Hrouda, but on mpc5200_simple. It boots, serial line and
+Ethernet work. I haven't check whether flash works.
+---
+ arch/powerpc/boot/dts/shark-ryu.dts          | 104 +++++++++++++++++++++++++++
+ arch/powerpc/platforms/52xx/mpc5200_simple.c |   1 +
+ 2 files changed, 105 insertions(+)
+ create mode 100644 arch/powerpc/boot/dts/shark-ryu.dts
+
+diff --git a/arch/powerpc/boot/dts/shark-ryu.dts b/arch/powerpc/boot/dts/shark-ryu.dts
+new file mode 100644
+index 0000000..63e48a8
+--- /dev/null
++++ b/arch/powerpc/boot/dts/shark-ryu.dts
+@@ -0,0 +1,104 @@
++/*
++ * Shark(MPC5200) board Device Tree Source
++ *
++ * Copyright 2006-2007 Secret Lab Technologies Ltd.
++ * Grant Likely <grant.likely@secretlab.ca>
++ *
++ * This program is free software; you can redistribute  it and/or modify it
++ * under  the terms of  the GNU General  Public License as published by the
++ * Free Software Foundation;  either version 2 of the  License, or (at your
++ * option) any later version.
++ */
++
++/include/ "mpc5200b.dtsi"
++
++/ {
++      model = "cvut,ryu";
++      compatible = "midam,shark";
++
++      memory {
++              reg = <0x00000000 0x08000000>;  // 128MB
++      };
++
++      soc: soc5200@f0000000 {
++              psc@2000 {                      // PSC1
++                      compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
++              };
++              psc5: psc@2800 {                // PSC5
++                      status = "disabled";
++              };
++
++              ethernet@3000 {
++                      phy-handle = <&phy0>;
++              };
++
++              mdio@3000 {
++                      phy0: ethernet-phy@1f {
++                              device_type = "ethernet-phy";
++                              reg = <0x1f>;
++                      };
++              };
++
++              i2c@3d40 {
++                      rtc@68 {
++                              compatible = "dallas,ds1307";
++                              reg = <0x68>;
++                      };
++              };
++      };
++
++      localbus {
++              ranges = <0 0 0xfc000000 0x04000000>;
++
++              flash@0,0 {
++                      compatible = "cfi-flash";
++                      reg = <0 0 0x04000000>;
++                      bank-width = <2>;
++                      device-width = <2>;
++                      #size-cells = <1>;
++                      #address-cells = <1>;
++
++                      uboot@0 {
++                              label = "u-boot";
++                              reg = <0 0x00100000>;
++                              read-only;
++                      };
++
++                      kernel@100000 {
++                              label = "kernel";
++                              reg = <0x00100000 0x00300000>;
++                              read-only;
++                      };
++
++                      filesystem@400000 {
++                              label = "filesystem";
++                              reg = <0x00400000 0x03c00000>;
++                      };
++              };
++      };
++
++      pci: pci@f0000d00 {
++              interrupt-map-mask = <0xf800 0 0 7>;
++              interrupt-map = <0xc000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot
++                               0xc000 0 0 2 &mpc5200_pic 1 1 3
++                               0xc000 0 0 3 &mpc5200_pic 1 2 3
++                               0xc000 0 0 4 &mpc5200_pic 1 3 3
++
++                               0xc800 0 0 1 &mpc5200_pic 1 1 3 // 2nd slot
++                               0xc800 0 0 2 &mpc5200_pic 1 2 3
++                               0xc800 0 0 3 &mpc5200_pic 1 3 3
++                               0xc800 0 0 4 &mpc5200_pic 0 0 3>;
++              ranges = <0x42000000 0 0x80000000 0x80000000 0 0x20000000
++                        0x02000000 0 0xa0000000 0xa0000000 0 0x10000000
++                        0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;
++      };
++      motorek@0 {
++              device_type = "motorek";
++              pwmf = <&gpt2>;
++              pwmb = <&gpt3>;
++              irca = <&gpt5>;
++              ircb = <&gpt4>;
++              interrupts = <0 0 1>;
++              //gpios = <&gpio_a
++      };
++};
+diff --git a/arch/powerpc/platforms/52xx/mpc5200_simple.c b/arch/powerpc/platforms/52xx/mpc5200_simple.c
+index 792a301..82aaa6e 100644
+--- a/arch/powerpc/platforms/52xx/mpc5200_simple.c
++++ b/arch/powerpc/platforms/52xx/mpc5200_simple.c
+@@ -62,6 +62,7 @@ static const char *board[] __initdata = {
+       "promess,motionpro",
+       "schindler,cm5200",
+       "tqc,tqm5200",
++      "midam,shark",
+       NULL
+ };
+-- 
+1.8.5.2
+