[PATCH] packages: nvram: add NVRAM quirks for bcm53xx target

Arınç ÜNAL arinc.unal at arinc9.com
Tue May 3 13:20:54 PDT 2022


> On 3 May 2022, at 23:12, Hauke Mehrtens <hauke at hauke-m.de> wrote:
> 
> On 5/3/22 09:44, Arınç ÜNAL wrote:
>>> On 03/05/2022 10:20, Rafał Miłecki wrote:
>>> On 31.03.2022 21:19, Arınç ÜNAL wrote:
>>>> Add NVRAM quirks script for the bcm53xx target. Split NVRAM quirks for the
>>>> bcm47xx and bcm53xx targets. Move clear partialboot NVRAM quirk for Linksys
>>>> EA9500 here. Add set wireless LED behaviour quirk for Asus RT-AC88U.
>>>> 
>>>> Signed-off-by: Arınç ÜNAL <arinc.unal at arinc9.com>
>>>> ---
>>>>   package/utils/nvram/Makefile                  |  8 +++-
>>>>   .../files/{nvram.init => nvram-bcm47xx.init}  |  2 +-
>>>>   package/utils/nvram/files/nvram-bcm53xx.init  | 40 +++++++++++++++++++
>>>>   .../base-files/etc/init.d/clear_partialboot   | 13 ------
>>>>   4 files changed, 47 insertions(+), 16 deletions(-)
>>>>   rename package/utils/nvram/files/{nvram.init => nvram-bcm47xx.init} (97%)
>>>>   create mode 100755 package/utils/nvram/files/nvram-bcm53xx.init
>>>>   delete mode 100755 target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot
>>>> 
>>>> diff --git a/package/utils/nvram/Makefile b/package/utils/nvram/Makefile
>>>> index 863b304d0d..b957211283 100644
>>>> --- a/package/utils/nvram/Makefile
>>>> +++ b/package/utils/nvram/Makefile
>>>> @@ -8,7 +8,7 @@
>>>>   include $(TOPDIR)/rules.mk
>>>>   PKG_NAME:=nvram
>>>> -PKG_RELEASE:=10
>>>> +PKG_RELEASE:=11
>>>>   PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
>>>> @@ -44,7 +44,11 @@ define Package/nvram/install
>>>>       $(INSTALL_BIN) $(PKG_BUILD_DIR)/nvram $(1)/usr/sbin/
>>>>   ifneq ($(CONFIG_TARGET_bcm47xx),)
>>>>       $(INSTALL_DIR) $(1)/etc/init.d
>>>> -    $(INSTALL_BIN) ./files/nvram.init $(1)/etc/init.d/nvram
>>>> +    $(INSTALL_BIN) ./files/nvram-bcm47xx.init $(1)/etc/init.d/nvram
>>>> +endif
>>>> +ifneq ($(CONFIG_TARGET_bcm53xx),)
>>>> +    $(INSTALL_DIR) $(1)/etc/init.d
>>>> +    $(INSTALL_BIN) ./files/nvram-bcm53xx.init $(1)/etc/init.d/nvram
>>>>   endif
>>>>   endef
>>>> diff --git a/package/utils/nvram/files/nvram.init b/package/utils/nvram/files/nvram-bcm47xx.init
>>>> similarity index 97%
>>>> rename from package/utils/nvram/files/nvram.init
>>>> rename to package/utils/nvram/files/nvram-bcm47xx.init
>>>> index 467ab28195..c95933246c 100755
>>>> --- a/package/utils/nvram/files/nvram.init
>>>> +++ b/package/utils/nvram/files/nvram-bcm47xx.init
>>>> @@ -1,7 +1,7 @@
>>>>   #!/bin/sh /etc/rc.common
>>>>   # NVRAM setup
>>>>   #
>>>> -# This file handles the NVRAM quirks of various hardware.
>>>> +# This file handles the NVRAM quirks of various hardware of the bcm47xx target.
>>>>   START=02
>>>>   alias debug=${DEBUG:-:}
>>>> diff --git a/package/utils/nvram/files/nvram-bcm53xx.init b/package/utils/nvram/files/nvram-bcm53xx.init
>>>> new file mode 100755
>>>> index 0000000000..d50917c776
>>>> --- /dev/null
>>>> +++ b/package/utils/nvram/files/nvram-bcm53xx.init
>>>> @@ -0,0 +1,40 @@
>>>> +#!/bin/sh /etc/rc.common
>>>> +# NVRAM setup
>>>> +#
>>>> +# This file handles the NVRAM quirks of various hardware of the bcm53xx target.
>>>> +
>>>> +START=02
>>>> +
>>>> +clear_partialboots() {
>>>> +    # clear partialboots
>>>> +
>>>> +    case $(board_name) in
>>>> +        linksys,panamera)
>>>> +            COMMIT=1
>>>> +            nvram set partialboots=0
>>>> +            ;;
>>>> +    esac
>>>> +}
>>>> +
>>>> +set_wireless_led_behaviour() {
>>>> +    # set Broadcom wireless LED behaviour for both radios
>>>> +    # 0:ledbh9 -> Behaviour of 2.4GHz LED
>>>> +    # 1:ledbh9 -> Behaviour of 5GHz LED
>>>> +    # 0x7 makes the wireless LEDs on, when radios are enabled, and blink when there's activity
>>>> +
>>>> +    case $(board_name) in
>>>> +        asus,rt-ac88u)
>>>> +            COMMIT=1
>>>> +            nvram set 0:ledbh9=0x7 set 1:ledbh9=0x7
>>>> +            ;;
>>>> +    esac
>>>> +}
>>>> +
>>>> +start() {
>>>> +    . /lib/functions.sh
>>>> +
>>>> +    clear_partialboots
>>>> +    set_wireless_led_behaviour
>>>> +
>>>> +    [ "$COMMIT" = "1" ] && nvram commit
>>>> +}
>>> 
>>> Do we want / need to switch from boot() to start()?
>>> 
>>> I don't have opinion, just making sure it's intentional.
>> Wiki says boot() is executed before start() which is usually used to turn on hardware. bcm47xx nvram initscript uses start() so it doesn't seem to matter. I tested the patch on my Asus RT-AC88U to make sure the initscript works fine.
>> https://openwrt.org/docs/techref/initscripts#other_functions
>> Arınç
> 
> I think boot() would look better, but it would be good to keep this consistent with the bcm47xx code. Using boot() or start() does not make a big difference, boot() calls start() anyway.
> 
> What about to also change the bcm47xx code to boot()?

Sure, why not. I’ll send v2.

Arınç



More information about the openwrt-devel mailing list