[PATCH] packages: nvram: add NVRAM quirks for bcm53xx target
Hauke Mehrtens
hauke at hauke-m.de
Tue May 3 13:12:48 PDT 2022
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()?
The rest looks ok to me.
Hauke
More information about the openwrt-devel
mailing list