[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