utils: Add boot hook to set stdout property on DT machines
authorJeremy Kerr <jk@ozlabs.org>
Wed, 15 Jan 2014 07:59:27 +0000 (15:59 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Wed, 15 Jan 2014 07:59:27 +0000 (15:59 +0800)
On machines that use device-tree boot, they'll often set an early
console, defined by the linux,stdout property in the /chosen/ device
tree node.

This hook adds a facility for petitboot to set this, based on an NVRAM
setting.

utils/hooks/20-set-stdout [new file with mode: 0755]

diff --git a/utils/hooks/20-set-stdout b/utils/hooks/20-set-stdout
new file mode 100755 (executable)
index 0000000..92ff030
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# Hook to set the linux,stdout-path property from an nvram property
+# (named $nvram_prop).
+
+nvram_prop=petitboot,console
+
+# we need to be using a dtb
+[ -n "$boot_dtb" ] || exit
+
+console=$(nvram --print-config="$nvram_prop")
+
+[ $? = 0 -a -n "$console" ] || exit
+
+dtb_in=$boot_dtb
+dtb_out=$(mktemp)
+
+(
+       dtc -I dtb -O dts $dtb_in
+       echo '/ { chosen { linux,stdout-path = "'$console'"; }; }; '
+) | dtc -I dts -O dtb -o $dtb_out
+
+[ $? = 0 ] && mv $dtb_out $dtb_in