[OpenWrt-Devel] [PATCH v2 5/6] brcm2708: add device detection and use it for network, leds and preinit
Álvaro Fernández Rojas
noltari at gmail.com
Sat Nov 21 13:48:16 EST 2015
Sure, I will rework this as soon as I can.
Regards,
Álvaro.
El 21/11/2015 a las 9:45, John Crispin escribió:
> Hi,
>
> do you have time to rework this code to make use of the new board
> detection layer ? i am currently starting to convert all targets to it.
> would be a shame if we add this ode just to replace it again in a few weeks.
>
> John
>
> On 19/11/2015 19:18, Álvaro Fernández Rojas wrote:
>> Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
>> ---
>> v2: device tree model needs Rev to avoid detecting a B+ as a B model
>>
>> 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 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
>> +}
>> 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
>>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list