brcm2708: add device detection and use it for network, leds and preinit

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 47572
lede-17.01
John Crispin 2015-11-22 08:04:37 +00:00
parent deff5fb6c8
commit cd9d0ee0d0
9 changed files with 110 additions and 18 deletions

View File

@ -0,0 +1,3 @@
define Package/base-files/install-target
rm -f $(1)/etc/config/network
endef

View File

@ -0,0 +1,25 @@
#!/bin/sh
# Copyright (C) 2014-2015 OpenWrt.org
. /lib/functions/uci-defaults-new.sh
. /lib/brcm2708.sh
. /lib/functions.sh
. /lib/functions/system.sh
board_config_update
ucidef_set_interface_loopback
board=$(brcm2708_board_name)
case "$board" in
rpi-b |\
rpi-b-plus |\
rpi-2-b)
ucidef_set_interface_lan "eth0"
;;
esac
board_config_flush
exit 0

View File

@ -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)

View File

@ -1,15 +0,0 @@
#!/bin/sh
# Copyright (C) 2014 OpenWrt.org
[ -e /etc/config/network ] && exit 0
touch /etc/config/network
. /lib/functions/uci-defaults.sh
ucidef_set_interface_loopback
ucidef_set_interface_lan "eth0"
uci commit network
exit 0

View File

@ -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 Rev"*)
board_name="rpi-b"
;;
"Raspberry Pi Model B+ Rev"*)
board_name="rpi-b-plus"
;;
"Raspberry Pi Compute Module Rev"*)
board_name="rpi-cm"
;;
"Raspberry Pi 2 Model B Rev"*)
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
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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