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

Arınç ÜNAL arinc.unal at arinc9.com
Tue May 3 00:44:08 PDT 2022


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ç



More information about the openwrt-devel mailing list