Merge branch 'feature/linux-update' into feature/aries

This commit is contained in:
Tiago Marques 2017-08-28 16:56:39 +01:00
commit 737475139f
16 changed files with 6562 additions and 221 deletions

View File

@ -27,11 +27,22 @@ MAINTAINER Ricardo Martins <rasm@oceanscan-mst.com>
ENV DEBIAN_FRONTEND noninteractive
# Update distro.
RUN echo "deb http://ftp.us.debian.org/debian testing non-free contrib" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.fe.up.pt/ubuntu xenial main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.fe.up.pt/ubuntu xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.fe.up.pt/ubuntu xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32
RUN apt-get update -y
RUN apt-get dist-upgrade -y
RUN apt-get install -y g++-5
RUN apt-get install -y gcc-5
RUN apt-get install -y wget
RUN apt-get install -y bzip2
RUN apt-get install -y git
RUN apt-get install -y g++-multilib
RUN apt-get install -y cmake
RUN apt-get install -y file
RUN apt-get install -y vim
RUN apt-get install -y nasm
RUN apt-get install -y build-essential
RUN apt-get install -y make
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

View File

@ -1,16 +1,16 @@
version=\
(
'1.5'
'1.6'
)
url=\
(
"http://downloads.sourceforge.net/project/bridge/bridge/bridge-utils-$version.tar.gz"
"http://www.kernel.org/pub/linux/utils/net/bridge-utils/bridge-utils-$version.tar.gz"
)
md5=\
(
'ec7b381160b340648dede58c31bb2238'
'f369e90e85e4bb46baa26a7b9d66b578'
)
maintainer=\

View File

@ -1,6 +1,6 @@
version=\
(
'1.0.7'
'1.0.71'
)
url=\
@ -10,7 +10,7 @@ url=\
md5=\
(
'4e18a516249256e2dad4d79ae56c913d'
'075c9256fe20cf6ce867dc2b1c974ebe'
)
if [ -d "$cfg_dir_builds/linux/linux-"* ]; then

View File

@ -1,6 +1,6 @@
version=\
(
'3.14.63'
'4.4.66'
)
url=\
@ -10,7 +10,7 @@ url=\
md5=\
(
'6cf8a6b23849f47f511e0e46cfdb6392'
'5353de56bf4621a35afc4384c7e51f30'
)
maintainer=\

View File

@ -1,16 +1,16 @@
version=\
(
'3.14.63'
'4.4.66'
)
url=\
(
"https://www.kernel.org/pub/linux/kernel/v3.x/linux-$version.tar.xz"
"https://www.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz"
)
md5=\
(
'6cf8a6b23849f47f511e0e46cfdb6392'
'5353de56bf4621a35afc4384c7e51f30'
)
maintainer=\

View File

@ -2,12 +2,12 @@
version=\
(
'3.14.64-rt67'
'4.4.66-rt79'
)
url=\
(
"https://www.kernel.org/pub/linux/kernel/v3.x/linux-$(linux_mmp_version).tar.xz"
"https://www.kernel.org/pub/linux/kernel/v4.x/linux-$(linux_mmp_version).tar.xz"
"https://www.kernel.org/pub/linux/kernel/projects/rt/$(linux_mm_version)/patch-$version.patch.gz"
)

212
rules/linux/v3_14.bash Normal file
View File

@ -0,0 +1,212 @@
version=\
(
'3.14.63'
)
url=\
(
"https://www.kernel.org/pub/linux/kernel/v3.x/linux-$version.tar.xz"
)
md5=\
(
'6cf8a6b23849f47f511e0e46cfdb6392'
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
)
requires=\
(
'bc/host'
'kmod/host'
'lz4/host'
)
# This variable is updated by find_patches().
patches=()
# Major/Minor version.
linux_mm_version()
{
echo "$version" | cut -f1-2 -d.
}
# Major/Minor/Patch version.
linux_mmp_version()
{
echo "$version" | cut -f1 -d-
}
find_patches()
{
patches=(\
$(ls -1 \
"$pkg_dir/patches/$version/"*.patch \
"$pkg_dir/patches/$(linux_mmp_version)/"*.patch \
"$pkg_dir/patches/$(linux_mm_version)/"*.patch \
"$cfg_dir_system/patches/linux/$version/"*.patch \
"$cfg_dir_system/patches/linux/$(linux_mmp_version)/"*.patch \
"$cfg_dir_system/patches/linux/$(linux_mm_version)/"*.patch \
2> /dev/null | awk '!a[$0]++')
)
}
find_patches
# Get configuration file.
linux_cfg_file()
{
for f in "$version" "$(linux_mmp_version)" "$(linux_mm_version)"; do
f="$cfg_dir_system/cfg/linux-$f.cfg"
if [ -f "$f" ]; then
echo "$f"
return 0
fi
echo "Candidate kernel configuration file '$f' doesn't exist." 1>&2
done
echo "ERROR: failed to find a valid kernel configuration file." 1>&2
return 1
}
post_unpack()
{
cp -r ../linux-3.14.63/* ../linux_3.3-3.14.63
n=0; while [ -n "${patches[$n]}" ]; do
patch="${patches[$n]}"
echo "* Applying $patch..."
(ucat "$patch" | patch -p1) || return 1
let n++
done
if [ -d "$cfg_dir_toolchain/firmware" ]; then
tar -C "$cfg_dir_toolchain/firmware" -c -v -f - . | tar -C firmware -x -v -f -
fi
}
refresh()
{
for rule in configure build target_install; do
if [ "$(linux_cfg_file)" -nt "$cfg_dir_builds/linux/$pkg_var/.$rule" ]; then
rm "$cfg_dir_builds/linux/$pkg_var/.$rule"
fi
done
}
configure()
{
$cmd_make \
ARCH=${cfg_target_linux} \
mrproper || return 1
cfg="$(linux_cfg_file)"
[ -n "$cfg" ] || return 1
$cmd_cp "$cfg" .config || return 1
if [ -f "$cfg_dir_system/files/initramfs_init.sh" ]; then
$cmd_mkdir initramfs &&
$cmd_cp "$pkg_dir/files/initramfs.conf" . &&
$cmd_cp "$cfg_dir_system/files/initramfs_init.sh" initramfs/init.sh &&
$cmd_cp "$cfg_dir_rootfs/bin/busybox" initramfs/busybox
fi
yes '' | $cmd_make \
CROSS_COMPILE=${cfg_target_canonical}- \
ARCH=${cfg_target_linux} \
oldconfig
}
build()
{
$cmd_make \
CROSS_COMPILE=$cfg_target_canonical- \
ARCH=$cfg_target_linux || return 1
$cmd_make \
CROSS_COMPILE=$cfg_target_canonical- \
ARCH=$cfg_target_linux \
DEPMOD="$cfg_dir_toolchain/sbin/depmod" \
modules || return 1
if [ "$(basename $cfg_target_linux_kernel)" = 'uImage' ]; then
$cmd_make \
CROSS_COMPILE=$cfg_target_canonical- \
ARCH=$cfg_target_linux \
DEPMOD="$cfg_dir_toolchain/sbin/depmod" \
uImage || return 1
fi
# Compressed image.
if [ "$(basename $cfg_target_linux_kernel)" = 'zImage' ]; then
$cmd_make \
CROSS_COMPILE=$cfg_target_canonical- \
ARCH=$cfg_target_linux \
DEPMOD="$cfg_dir_toolchain/sbin/depmod" \
zImage || return 1
fi
# Device tree blob.
if [ -n "$cfg_target_linux_dtb" ]; then
$cmd_make \
CROSS_COMPILE=$cfg_target_canonical- \
ARCH=$cfg_target_linux \
DEPMOD="$cfg_dir_toolchain/sbin/depmod" \
dtbs || return 1
fi
if [ -n "${cfg_target_linux_size}" ]; then
dd if="$cfg_target_linux_kernel" of="${cfg_target_linux_kernel}.padded" \
ibs="${cfg_target_linux_size}" conv=sync &&
mv "${cfg_target_linux_kernel}.padded" "${cfg_target_linux_kernel}"
fi
}
target_install()
{
if [ -n "$(file "$cfg_target_linux_kernel" | grep ELF)" ]; then
strip="$(echo $cfg_dir_toolchain/bin/*-strip)"
$strip -s -R .comment "$cfg_target_linux_kernel"
fi
# Kernel image.
if [ -n "$cfg_target_linux_kernel" ]; then
cp -v "$cfg_target_linux_kernel" "$cfg_dir_rootfs/boot/kernel"
else
echo "ERROR: failed to find kernel image at '$cfg_target_linux_kernel'"
return 1
fi
# Device tree blobs.
dts="arch/$cfg_target_linux/boot/dts"
if [ -d "$dts" ]; then
$cmd_mkdir "$cfg_dir_rootfs/boot" &&
cp -v "$dts/"*.dtb "$cfg_dir_rootfs/boot"
fi
# Device tree overlays.
overlays_dir="arch/$cfg_target_linux/boot/dts/overlays"
if [ -d "$overlays_dir" ]; then
$cmd_mkdir "$cfg_dir_rootfs/boot/overlays" || return 1
$cmd_cp "$overlays_dir"/*.dtbo "$cfg_dir_rootfs/boot/overlays" || return 1
fi
$cmd_make \
CROSS_COMPILE="$cfg_target_canonical-" \
ARCH="$cfg_target_linux" \
INSTALL_MOD_PATH="$cfg_dir_rootfs/usr" \
KBUILD_VERBOSE=1 \
DEPMOD="$cfg_dir_toolchain/sbin/depmod" \
modules_install
$cmd_make \
CROSS_COMPILE="$cfg_target_canonical-" \
ARCH="$cfg_target_linux" \
INSTALL_MOD_PATH="$cfg_dir_rootfs/usr" \
KBUILD_VERBOSE=1 \
DEPMOD="$cfg_dir_toolchain/sbin/depmod" \
firmware_install
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
diff -Nru a/drivers/tty/serial/8250/8250_aim104_com8.c b/drivers/tty/serial/8250/8250_aim104_com8.c
--- a/drivers/tty/serial/8250/8250_aim104_com8.c
+++ b/drivers/tty/serial/8250/8250_aim104_com8.c
@@ -0,0 +1,51 @@
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/serial_8250.h>
+
+#define PORT(_base,_irq) \
+ { \
+ .iobase = _base, \
+ .irq = _irq, \
+ .uartclk = 1843200, \
+ .iotype = UPIO_PORT, \
+ .flags = UPF_BOOT_AUTOCONF | UPF_BUGGY_UART, \
+ }
+
+static struct plat_serial8250_port aim104_data[] = {
+ PORT(0x100, 10),
+ PORT(0x108, 10),
+ PORT(0x110, 10),
+ PORT(0x118, 10),
+ PORT(0x120, 10),
+ PORT(0x128, 10),
+ PORT(0x130, 10),
+ PORT(0x138, 10),
+ PORT(0x300, 6),
+ PORT(0x308, 6),
+ PORT(0x310, 6),
+ PORT(0x318, 6),
+ PORT(0x320, 6),
+ PORT(0x328, 6),
+ PORT(0x330, 6),
+ PORT(0x338, 6),
+ { },
+};
+
+static struct platform_device exar_device = {
+ .name = "serial8250",
+ .id = PLAT8250_DEV_PLATFORM,
+ .dev = {
+ .platform_data = aim104_data,
+ },
+};
+
+static int __init exar_init(void)
+{
+ return platform_device_register(&exar_device);
+}
+
+module_init(exar_init);
+
+MODULE_AUTHOR("Ricardo Martins");
+MODULE_DESCRIPTION("8250 serial probe module for Eurotech AIM104-COM8");
+MODULE_LICENSE("GPL");
diff -Nru a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig
--- a/drivers/tty/serial/8250/Kconfig
+++ b/drivers/tty/serial/8250/Kconfig
@@ -225,6 +225,15 @@ config SERIAL_8250_EXAR_ST16C554
To compile this driver as a module, choose M here: the module
will be called 8250_exar_st16c554.
+config SERIAL_8250_AIM104_COM8
+ tristate "Support Eurotech AIM104-COM8 Dual Quad UART"
+ depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
+ help
+ Eurotech AIM104-COM8 Dual Quad UART.
+
+ To compile this driver as a module, choose M here: the module
+ will be called 8250_aim104_com8.
+
config SERIAL_8250_HUB6
tristate "Support Hub6 cards"
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
diff -Nru a/drivers/tty/serial/8250/Makefile b/drivers/tty/serial/8250/Makefile
--- a/drivers/tty/serial/8250/Makefile
+++ b/drivers/tty/serial/8250/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_SERIAL_8250_FOURPORT) += 8250_fourport.o
obj-$(CONFIG_SERIAL_8250_ACCENT) += 8250_accent.o
obj-$(CONFIG_SERIAL_8250_BOCA) += 8250_boca.o
obj-$(CONFIG_SERIAL_8250_EXAR_ST16C554) += 8250_exar_st16c554.o
+obj-$(CONFIG_SERIAL_8250_AIM104_COM8) += 8250_aim104_com8.o
obj-$(CONFIG_SERIAL_8250_HUB6) += 8250_hub6.o
obj-$(CONFIG_SERIAL_8250_MCA) += 8250_mca.o
obj-$(CONFIG_SERIAL_8250_FSL) += 8250_fsl.o

View File

@ -0,0 +1,14 @@
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 52d82d2..613c7e9 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -132,8 +132,7 @@ static const struct serial8250_config uart_config[] = {
.name = "ST16654",
.fifo_size = 64,
.tx_loadsz = 32,
- .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_01 |
- UART_FCR_T_TRIG_10,
+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_00,
.rxtrig_bytes = {8, 16, 56, 60},
.flags = UART_CAP_FIFO | UART_CAP_EFR | UART_CAP_SLEEP,
},

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ cfg_modules=''
cfg_services0='dropbear network storage upgrade syslog'
cfg_services1='huawei ntpd'
cfg_services2='dune'
cfg_packages='u-boot dropbear rsync busybox linux uswitch ppp iptables socat bridge-utils ntp e2fsprogs i2c-tools iperf dnsmasq'
cfg_packages='u-boot dropbear rsync busybox linux/v3_14 uswitch ppp iptables socat bridge-utils ntp e2fsprogs i2c-tools iperf dnsmasq'
cfg_target_linux_kernel='arch/arm/boot/zImage'
cfg_target_linux_dtb='arch/arm/boot/dts/omap3-lctr-a9xx.dtb'
cfg_target_uboot_config='igep0020'

View File

@ -0,0 +1,105 @@
diff --git linux-4.4.66/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 30bbc37..7241be6 100644
--- linux-4.4.66/arch/arm/boot/dts/Makefile
+++ linux-4.4.66/arch/arm/boot/dts/Makefile
@@ -421,6 +421,7 @@
omap3-igep0020-rev-f.dtb \
omap3-igep0030.dtb \
omap3-igep0030-rev-g.dtb \
+ omap3-lctr-a9xx.dtb \
omap3-ldp.dtb \
omap3-lilly-dbb056.dtb \
omap3-n900.dtb \
diff -Nru linux-4.4.66/arch/arm/boot/dts/omap3-lctr-a9xx.dts linux-4.4.66.rasm/arch/arm/boot/dts/omap3-lctr-a9xx.dts
--- linux-4.4.66/arch/arm/boot/dts/omap3-lctr-a9xx.dts
+++ linux-4.4.66.rasm/arch/arm/boot/dts/omap3-lctr-a9xx.dts
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2014 Universidade do Porto - Faculdade de Engenharia
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <dt-bindings/input/input.h>
+#include "omap3-igep0020.dts"
+
+/ {
+ leds {
+ boot {
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ gpio_keys {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_keys_pins>;
+ compatible = "gpio-keys";
+
+ button@0 {
+ label = "Button 0";
+ gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* gpio_139 */
+ linux,code = <BTN_0>;
+ debounce-interval = <5>;
+ };
+
+ button@1 {
+ label = "Button 1";
+ gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>; /* gpio_138 */
+ linux,code = <BTN_1>;
+ debounce-interval = <5>;
+ };
+
+ button@2 {
+ label = "Button 2";
+ gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; /* gpio_137 */
+ linux,code = <BTN_2>;
+ debounce-interval = <5>;
+ };
+ };
+
+ pps {
+ compatible = "pps-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pps_pins>;
+ gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>;
+ assert-rising-edge;
+ };
+};
+
+&omap3_pmx_core {
+ gpio_keys_pins: pinmux_gpio_keys_pins {
+ pinctrl-single,pins = <
+ 0x136 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpio_137 - button 2 */
+ 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpio_138 - button 1 */
+ 0x13a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpio_139 - button 0 */
+ >;
+ };
+
+ pps_pins: pinmux_pps_pins {
+ pinctrl-single,pins = <
+ 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpio_136 */
+ >;
+ };
+};
+
+&i2c2 {
+ rtc@68 {
+ compatible = "dallas,ds1307";
+ reg = <0x68>;
+ };
+};
+
+/* Disable WiFi/Bluetooth combo. */
+&mmc2 {
+ status = "disabled";
+};
+
+&vdd33 {
+ status = "disabled";
+};
+
+&lbee1usjyc_pdn {
+ status = "disabled";
+};

View File

@ -1,3 +1,3 @@
cfg_hostname='x8-02'
cfg_eth_ext_ip='10.0.20.100'
cfg_packages='u-boot dropbear rsync busybox linux uswitch ppp iptables socat bridge-utils ntp e2fsprogs i2c-tools iperf dnsmasq libav'
cfg_packages='u-boot dropbear rsync busybox linux/v3_14 uswitch ppp iptables socat bridge-utils ntp e2fsprogs i2c-tools iperf dnsmasq libav'