From patchwork Mon Nov 16 20:01:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 545129 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id ECFF614145E for ; Tue, 17 Nov 2015 07:05:47 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=TtvQEGK3; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 4FC19289D11; Mon, 16 Nov 2015 21:00:50 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id AC373281573 for ; Mon, 16 Nov 2015 20:59:35 +0100 (CET) X-policyd-weight: using cached result; rate:hard: -8.5 Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Mon, 16 Nov 2015 20:59:28 +0100 (CET) Received: by wmww144 with SMTP id w144so135370920wmw.0 for ; Mon, 16 Nov 2015 12:01:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=jDSHeH2pkmAHhqXKAxVPJhWPBqElWHtcIeUp5V1Ns70=; b=TtvQEGK3WC/mUIwWtTNfBIxGBrksiiweZq5eP/gzOI2//KBcmTy9eQ9Hj5vxBHegdZ pUcDeWLIdVJqRDYOYKIGjdrU9f/mPRsw4JPfY5aPxSVp+T+3jVbmfiBDsuswX7gic5OQ BFbcK4jYhtYKL5pCutAHNITy27SzaHQniPZujoftxEum5Yo1eADfwueMuZlwJLAyE9Fa 7syPiT2sNUAskZMGsye9yvMVQ4lNRqEVKpLb49WiPC9uHomzN0pU7vgRXBHUGUOj5G8f BYDFkZm0EJMfhPK1G35/4FxrzKAjSWh5Zd64e9M/QaQU98xoMtOKrbYA7Fuz8eocU2uW CaFg== X-Received: by 10.28.60.84 with SMTP id j81mr19696217wma.15.1447704086640; Mon, 16 Nov 2015 12:01:26 -0800 (PST) Received: from skynet.lan (67.Red-83-55-43.dynamicIP.rima-tde.net. [83.55.43.67]) by smtp.gmail.com with ESMTPSA id l186sm20121229wmg.19.2015.11.16.12.01.25 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 16 Nov 2015 12:01:25 -0800 (PST) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: openwrt-devel@lists.openwrt.org, blogic@openwrt.org Date: Mon, 16 Nov 2015 21:01:21 +0100 Message-Id: <1447704082-22911-5-git-send-email-noltari@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1447704082-22911-1-git-send-email-noltari@gmail.com> References: <1447704082-22911-1-git-send-email-noltari@gmail.com> MIME-Version: 1.0 Subject: [OpenWrt-Devel] [PATCH 5/6] brcm2708: add device detection and use it for network, leds and preinit X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Signed-off-by: Álvaro Fernández Rojas --- target/linux/brcm2708/base-files.mk | 3 ++ target/linux/brcm2708/base-files/etc/diag.sh | 12 ++++++- .../base-files/etc/uci-defaults/02_network | 12 +++++-- target/linux/brcm2708/base-files/lib/brcm2708.sh | 41 ++++++++++++++++++++++ .../lib/preinit/03_preinit_do_brcm2708.sh | 10 ++++++ .../lib/preinit/05_set_preinit_iface_brcm2708 | 18 ++++++++++ target/linux/brcm2708/bcm2708/config-4.1 | 2 +- target/linux/brcm2708/bcm2709/config-4.1 | 2 +- 8 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 target/linux/brcm2708/base-files.mk create mode 100644 target/linux/brcm2708/base-files/lib/brcm2708.sh create mode 100644 target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh create mode 100644 target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 diff --git a/target/linux/brcm2708/base-files.mk b/target/linux/brcm2708/base-files.mk new file mode 100644 index 0000000..fdd2c71 --- /dev/null +++ b/target/linux/brcm2708/base-files.mk @@ -0,0 +1,3 @@ +define Package/base-files/install-target + rm -f $(1)/etc/config/network +endef diff --git a/target/linux/brcm2708/base-files/etc/diag.sh b/target/linux/brcm2708/base-files/etc/diag.sh index 55e68b1..3a8dc86 100644 --- a/target/linux/brcm2708/base-files/etc/diag.sh +++ b/target/linux/brcm2708/base-files/etc/diag.sh @@ -4,9 +4,19 @@ # . /lib/functions/leds.sh +. /lib/brcm2708.sh set_state() { - status_led="led0" + case "$(brcm2708_board_name)" in + rpi-b |\ + rpi-cm) + status_led="led0" + ;; + rpi-b-plus |\ + rpi-2-b) + status_led="led1" + ;; + esac case "$1" in preinit) diff --git a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network b/target/linux/brcm2708/base-files/etc/uci-defaults/02_network index e7e35c5..1bb05b6 100644 --- a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network +++ b/target/linux/brcm2708/base-files/etc/uci-defaults/02_network @@ -1,14 +1,22 @@ #!/bin/sh -# Copyright (C) 2014 OpenWrt.org +# Copyright (C) 2014-2015 OpenWrt.org [ -e /etc/config/network ] && exit 0 touch /etc/config/network . /lib/functions/uci-defaults.sh +. /lib/brcm2708.sh ucidef_set_interface_loopback -ucidef_set_interface_lan "eth0" + +case "$(brcm2708_board_name)" in +rpi-b |\ +rpi-b-plus |\ +rpi-2-b) + ucidef_set_interface_lan "eth0" + ;; +esac uci commit network diff --git a/target/linux/brcm2708/base-files/lib/brcm2708.sh b/target/linux/brcm2708/base-files/lib/brcm2708.sh new file mode 100644 index 0000000..7d6e458 --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/brcm2708.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# Copyright (C) 2015 OpenWrt.org + +ifname="" + +brcm2708_detect() { + local board_name model + + model=$(cat /proc/device-tree/model) + case "$model" in + "Raspberry Pi Model B"*) + board_name="rpi-b" + ;; + "Raspberry Pi Model B+"*) + board_name="rpi-b-plus" + ;; + "Raspberry Pi Compute Module"*) + board_name="rpi-cm" + ;; + "Raspberry Pi 2 Model B"*) + board_name="rpi-2-b" + ;; + *) + board_name="unknown" + ;; + esac + + [ -e "/tmp/sysinfo" ] || mkdir -p "/tmp/sysinfo" + + echo "$board_name" > /tmp/sysinfo/board_name + echo "$model" > /tmp/sysinfo/model +} + +brcm2708_board_name() { + local name + + [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) + [ -n "$name" ] || name="unknown" + + echo $name +} diff --git a/target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh b/target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh new file mode 100644 index 0000000..2943648 --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Copyright (C) 2015 OpenWrt.org + +do_brcm2708() { + . /lib/brcm2708.sh + + brcm2708_detect +} + +boot_hook_add preinit_main do_brcm2708 diff --git a/target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 b/target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 new file mode 100644 index 0000000..154b01c --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 @@ -0,0 +1,18 @@ +#!/bin/sh +# +# Copyright (C) 2015 OpenWrt.org +# + +. /lib/brcm2708.sh + +set_preinit_iface() { + case "$(brcm2708_board_name)" in + rpi-b |\ + rpi-b-plus |\ + rpi-2-b) + ifname=eth0 + ;; + esac +} + +boot_hook_add preinit_main set_preinit_iface diff --git a/target/linux/brcm2708/bcm2708/config-4.1 b/target/linux/brcm2708/bcm2708/config-4.1 index 055caa9..82ae7b3 100644 --- a/target/linux/brcm2708/bcm2708/config-4.1 +++ b/target/linux/brcm2708/bcm2708/config-4.1 @@ -225,7 +225,7 @@ CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_XZ is not set # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_TRIGGER_INPUT is not set +CONFIG_LEDS_TRIGGER_INPUT=y CONFIG_LIBFDT=y CONFIG_LOGO=y CONFIG_LOGO_LINUX_CLUT224=y diff --git a/target/linux/brcm2708/bcm2709/config-4.1 b/target/linux/brcm2708/bcm2709/config-4.1 index 8eb98af..866d648 100644 --- a/target/linux/brcm2708/bcm2709/config-4.1 +++ b/target/linux/brcm2708/bcm2709/config-4.1 @@ -237,7 +237,7 @@ CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_XZ is not set # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_TRIGGER_INPUT is not set +CONFIG_LEDS_TRIGGER_INPUT=y CONFIG_LIBFDT=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_LOGO=y