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
This commit is contained in:
parent
deff5fb6c8
commit
cd9d0ee0d0
9 changed files with 110 additions and 18 deletions
3
target/linux/brcm2708/base-files.mk
Normal file
3
target/linux/brcm2708/base-files.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
define Package/base-files/install-target
|
||||
rm -f $(1)/etc/config/network
|
||||
endef
|
25
target/linux/brcm2708/base-files/etc/board.d/02_network
Executable file
25
target/linux/brcm2708/base-files/etc/board.d/02_network
Executable 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
|
|
@ -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)
|
||||
|
|
|
@ -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
|
41
target/linux/brcm2708/base-files/lib/brcm2708.sh
Normal file
41
target/linux/brcm2708/base-files/lib/brcm2708.sh
Normal 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
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue