From 9bb9b7eea7de36e4f5dd8e3bccfc5cf6af80d850 Mon Sep 17 00:00:00 2001
From: Sukru Senli <sukru.senli@iopsys.eu>
Date: Fri, 8 Jan 2021 16:09:54 +0100
Subject: [PATCH] brcm63xx: temporary init script to convert board data to db

---
 .../disc/base-files/etc/init.d/board_data     | 30 +++++++++++++++++
 .../base-files/etc/init.d/board_data          | 33 +++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100755 iopsys-brcm63xx-arm/disc/base-files/etc/init.d/board_data
 create mode 100755 iopsys-brcm63xx-arm/smarthub3/base-files/etc/init.d/board_data

diff --git a/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/board_data b/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/board_data
new file mode 100755
index 000000000..34ab7a16e
--- /dev/null
+++ b/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/board_data
@@ -0,0 +1,30 @@
+#!/bin/sh /etc/rc.common
+
+START=02
+
+. /usr/share/libubox/jshn.sh
+
+boot() {
+	local BDFILE="/data/arc_board_data"
+
+	[ -f $BDFILE -a -f /usr/bin/jq ] || {
+		logger -t board_data "Board data could not be extracted"
+		return 0
+	}
+
+	json_load $(jq -R -n -c '[inputs|split("=")|{(.[0]):.[1]}] | add' $BDFILE)
+	json_get_var serial_number sn "00000000"
+	json_get_var basemac mac "00:00:00:00:00:00"
+	json_get_var hardware_version hwver "0"
+	json_get_var wpa_key wifi-pwd "00000000"
+
+	db -q set hw.board.serial_number="$serial_number"				
+	db -q set hw.board.basemac="$basemac"
+	db -q set hw.board.hardware_version="$hardware_version"	
+	db -q set hw.board.wpa_key="$wpa_key"
+ 	db -q set device.deviceinfo.SerialNumber="$serial_number"
+ 	db -q set device.deviceinfo.BaseMACAddress="$basemac"
+ 	db -q set device.deviceinfo.HardwareVersion="$hardware_version"
+	db commit
+}
+
diff --git a/iopsys-brcm63xx-arm/smarthub3/base-files/etc/init.d/board_data b/iopsys-brcm63xx-arm/smarthub3/base-files/etc/init.d/board_data
new file mode 100755
index 000000000..53bc8e4f9
--- /dev/null
+++ b/iopsys-brcm63xx-arm/smarthub3/base-files/etc/init.d/board_data
@@ -0,0 +1,33 @@
+#!/bin/sh /etc/rc.common
+
+START=02
+
+. /usr/share/libubox/jshn.sh
+
+boot() {
+	local BDFILE="/brddata/.mmcwrite.manuf"
+
+	mkdir -p /brddata && mount -t ext4 /dev/brddata /brddata 2>/dev/null
+
+	[ -f $BDFILE -a -f /usr/bin/jq ] || {
+		logger -t board_data "Board data could not be extracted"
+		return 0
+	}
+
+	json_load $(cat $BDFILE | tr ';' '\n' | jq -R -n -c '[inputs|split("=")|{(.[0]):.[1]}] | add')
+	json_get_var serial_number serial_no "00000000"
+	json_get_var basemac mac_base "00:00:00:00:00:00"
+	basemac=${basemac//-/:} # macaddr separator in brddata is '-'
+	json_get_var hardware_version hwver "0"
+	json_get_var wpa_key wlan_key "00000000"
+
+	db -q set hw.board.serial_number="$serial_number"				
+	db -q set hw.board.basemac="$basemac"
+	db -q set hw.board.hardware_version="$hardware_version"	
+	db -q set hw.board.wpa_key="$wpa_key"
+ 	db -q set device.deviceinfo.SerialNumber="$serial_number"
+ 	db -q set device.deviceinfo.BaseMACAddress="$basemac"
+ 	db -q set device.deviceinfo.HardwareVersion="$hardware_version"
+	db commit
+}
+
-- 
GitLab