diff --git a/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup b/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup
new file mode 100755
index 0000000000000000000000000000000000000000..ea56ca70f1413166f804cb361c59feba1d113e18
--- /dev/null
+++ b/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup
@@ -0,0 +1,38 @@
+#!/bin/sh /etc/rc.common
+#
+# Load broadcom wifi drivers
+
+
+START=18
+
+# wl.ko taskset thread pid workaround (wl.ko thread gets pid 0 ???)
+taskset_hack() {
+	[ -h /usr/bin/taskset ] && {
+		# since disc uses ro fs, we do an overlay workaround for the workaround for now...
+		mkdir -p /tmp/overlay/bin /tmp/overlay/sbin /tmp/overlay/work
+		mount -t overlay overlay -o lowerdir=/usr/bin,upperdir=/tmp/overlay/bin,workdir=/tmp/overlay/work /usr/bin
+		mount -t overlay overlay -o lowerdir=/usr/sbin,upperdir=/tmp/overlay/sbin,workdir=/tmp/overlay/work /usr/sbin
+
+		mv /usr/bin/taskset /usr/sbin/taskset
+		cat << 'EOT' >> /tmp/overlay/bin/taskset
+#!/bin/sh
+
+[ "$3" -eq "0" ] && set -- "$1" "$2" "$(pgrep -n kthrd)"
+/usr/sbin/taskset $@ || echo "failed to set affinity. rc: $? pid: $(pgrep -n kthrd)"
+return 0
+EOT
+		chmod +x /tmp/overlay/bin/taskset
+	}
+}
+
+boot() {
+	taskset_hack
+
+	# always use the data partition as data
+	mountpoint -q /data || mount -t ubifs ubi:data /data
+
+	/etc/init.d/hndnvram.sh start && \
+		[ -s /data/.kernel_nvram.setting ] && \
+		/etc/init.d/bcm-wlan-drivers.sh start || \
+		echo "Failed to bring up wifi - fix and load wifi drivers manually"
+}