[LEDE-DEV] [PATCH] brcm63xx: fix Livebox1 support
Jonas Gorski
jonas.gorski at gmail.com
Wed Aug 3 04:30:30 PDT 2016
Hi,
On 1 August 2016 at 17:06, Daniel Gonzalez Cabanelas <dgcbueu at gmail.com> wrote:
No idea why it doesn't appear in patchwork. I checked with the email
from my inbox it applies properly.
> Livebox firmware is totally broken, fix it.
>
> - Fix Image generation: missing "relocate-kernel", wrong "LOADADDR", fix it
> - Fix dts file:
> - leds are totally wrong, fix them.
> - no failsafe button, use button 1 for this purpose
> - part probe wrong, it should be RedBoot (uppercase matters). It still don't work
> (bad partition offsets and sizes detected) so disable it.
> - Add status led
> - Set eth0 as the LAN port, for coherence with RedBoot and comfortability.
> - Add led triggers
Okay, these are 7 different issues, please split this into individual patches.
> Signed-off-by: Daniel Gonzalez Cabanelas<dgcbueu at gmail.com>
> diff --git a/target/linux/brcm63xx/base-files/etc/board.d/01_leds b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
> index 4163214..8d8a942 100755
> --- a/target/linux/brcm63xx/base-files/etc/board.d/01_leds
> +++ b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
> @@ -58,6 +58,11 @@ homehub2a)
> ucidef_set_led_usbdev "usb1" "USB1" "HOMEHUB2A:blue:phone" "1-1"
> ucidef_set_led_usbdev "usb2" "USB2" "HOMEHUB2A:green:phone" "2-1"
> ;;
> +livebox1)
> + ucidef_set_led_netdev "lan" "LAN" "Livebox1:red:traffic" "eth0"
> + ucidef_set_led_netdev "wan" "WAN" "Livebox1:red:adsl" "eth1"
> + ucidef_set_led_netdev "wlan0" "WIFI" "Livebox1:red:wifi" "wlan0"
> + ;;
> r5010un_v2)
> ucidef_set_led_usbdev "usb" "USB" "R5010UNv2:green:usb" "1-1"
> ;;
> diff --git a/target/linux/brcm63xx/base-files/etc/board.d/02_network b/target/linux/brcm63xx/base-files/etc/board.d/02_network
> index 83367c1..c20caf9 100755
> --- a/target/linux/brcm63xx/base-files/etc/board.d/02_network
> +++ b/target/linux/brcm63xx/base-files/etc/board.d/02_network
> @@ -129,6 +129,10 @@ bcm963268bu_p300)
> "0:lan" "3:lan" "4:lan" "5:lan" "6:lan" "7:lan" "8t at eth0"
> ;;
>
> +livebox1)
> + ucidef_set_interfaces_lan_wan "eth0" "eth1"
> + ;;
> +
Does this match what the original firmware does?
> *)
> ucidef_set_interfaces_lan_wan "eth1" "eth0"
> ;;
> diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh
> index 51756ae..852a701 100644
> --- a/target/linux/brcm63xx/base-files/etc/diag.sh
> +++ b/target/linux/brcm63xx/base-files/etc/diag.sh
> @@ -102,6 +102,9 @@ set_state() {
> hg655b)
> status_led="HW65x:green:power"
> ;;
> + livebox1)
> + status_led="Livebox1:red:adsl-fail-power"
> + ;;
> p870hw-51a_v2)
> status_led="P870HW-51a:green:power"
> ;;
> diff --git a/target/linux/brcm63xx/dts/livebox-blue-5g.dts b/target/linux/brcm63xx/dts/livebox-blue-5g.dts
> index 0df5fa8..f14bdd9 100644
> --- a/target/linux/brcm63xx/dts/livebox-blue-5g.dts
> +++ b/target/linux/brcm63xx/dts/livebox-blue-5g.dts
> @@ -23,7 +23,7 @@
> button1 {
> label = "BTN_1";
> gpios = <&gpio1 4 1>;
> - linux,code = <BTN_1>;
> + linux,code = <KEY_RESTART>;
> };
>
> button2 {
> @@ -37,28 +37,28 @@
> compatible = "gpio-leds";
>
> red_adsl_fail {
> - label = "Livebox-blue-5g:red:adsl-fail";
> + label = "Livebox1:red:adsl-fail-power";
So this led is used for both functions?
> gpios = <&gpio0 0 0>;
> default-state = "on";
> };
>
> red_adsl {
> - label = "Livebox-blue-5g:red:adsl-fail";
> + label = "Livebox1:red:adsl";
> gpios = <&gpio0 1 0>;
> };
>
> red_traffic {
> - label = "Livebox-blue-5g:red:adsl-fail";
> + label = "Livebox1:red:traffic";
> gpios = <&gpio0 2 0>;
> };
>
> red_phone {
> - label = "Livebox-blue-5g:red:adsl-fail";
> + label = "Livebox1:red:phone";
> gpios = <&gpio0 3 0>;
> };
>
> red_wifi {
> - label = "Livebox-blue-5g:red:adsl-fail";
> + label = "Livebox1:red:wifi";
> gpios = <&gpio0 4 0>;
> };
> };
> @@ -66,7 +66,7 @@
>
> &pflash {
> reg = <0x1e400000 0x800000>;
> - status = "ok";
> + status = "disabled";
NAK on this part, let's figure out why it doesn't work and fix it. Do
you have any boot/debug output with it?
>
> - linux,part-probe = "redboot";
> + linux,part-probe = "RedBoot";
> };
> diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
> index f5de673..beed8e9 100644
> --- a/target/linux/brcm63xx/image/Makefile
> +++ b/target/linux/brcm63xx/image/Makefile
> @@ -151,7 +151,7 @@ define Build/redboot-bin
> $(TOPDIR)/scripts/redboot-script.pl \
> -k $(BIN_DIR)/$(REDBOOT_PREFIX)-vmlinux.gz \
> -r $(BIN_DIR)/$(REDBOOT_PREFIX)-$(notdir $(IMAGE_ROOTFS)) \
> - -a $(strip $(LOADADDR)) -f 0xbe430000 -l 0x7c0000 \
> + -a $(strip $(LOADER_ENTRY)) -f 0xbe430000 -l 0x7c0000 \
> -s 0x1000 -t 20 -o $@.redbootscript
> dd if="$@.redbootscript" of="$@.redbootscript.padded" bs=4096 conv=sync
> cat \
> diff --git a/target/linux/brcm63xx/image/bcm63xx.mk b/target/linux/brcm63xx/image/bcm63xx.mk
> index af14168..34d496e 100644
> --- a/target/linux/brcm63xx/image/bcm63xx.mk
> +++ b/target/linux/brcm63xx/image/bcm63xx.mk
> @@ -44,7 +44,7 @@ DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
>
> define Device/bcm63xx_redboot
> FILESYSTEMS := squashfs
> - KERNEL := kernel-bin | append-dtb | gzip
> + KERNEL := kernel-bin | append-dtb | relocate-kernel | gzip
So it requires the kernel relocation as redboot won't load larger
kernels at the default load address?
> KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-lzma elf
> IMAGES := redboot.bin
> IMAGE/redboot.bin := redboot-bin
>
>
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev
More information about the Lede-dev
mailing list