summaryrefslogtreecommitdiffstats
path: root/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup
diff options
context:
space:
mode:
authorXo Wang <xow@google.com>2016-11-30 17:02:18 -0800
committerPatrick Williams <patrick@stwcx.xyz>2016-12-08 03:18:19 +0000
commite1dcc231d780c910538722433fd09077314b53d7 (patch)
tree1b4a8f4b69f4082e80b2548c65191cd61aae8572 /meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup
parentecfbe34a7f8978e1441c7935ce198c7496aa2058 (diff)
downloadtalos-openbmc-e1dcc231d780c910538722433fd09077314b53d7.tar.gz
talos-openbmc-e1dcc231d780c910538722433fd09077314b53d7.zip
meta-zaius: Fix up host reference clock after power on
Zaius's host reference clock generator IC requires an output configuration fixup before trying to send the P9 host any FSI transactions. The IC is powered by the main 3.3V rail (the BMC runs from standby 3.3V), so the fixup has to be applied every time after it is powered on. Add script that performs the I2C writes to the clock gen. Add systemd service that launches the script following power on. Add bitbake recipe to install service. Add image build append to build service into image. Signed-off-by: Xo Wang <xow@google.com> Change-Id: I8b1b83d0dabbb86439a043f8a1d9cdcb56986c45
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup')
-rwxr-xr-xmeta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/fix_zaius_refclock.sh27
-rw-r--r--meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/op-refclock-fixup@.service16
2 files changed, 43 insertions, 0 deletions
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/fix_zaius_refclock.sh b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/fix_zaius_refclock.sh
new file mode 100755
index 000000000..01eb72b71
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/fix_zaius_refclock.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# fix up refclock by reconfiguring output of Si5338C clock generator
+
+i2cset="i2cset"
+clkgen_i2c_bus="0"
+clkgen_i2c_addr="0x70"
+
+# Usage: clkgen_write <address> <data> [write length]
+clkgen_write()
+{
+ $i2cset -y $clkgen_i2c_bus $clkgen_i2c_addr $1 $2 $3
+}
+
+# disable outputs
+clkgen_write 230 0x10 b
+
+# set output configurations of each of the four channels to 3.3V HCSL
+clkgen_write 36 0x07 b
+clkgen_write 37 0x07 b
+clkgen_write 38 0x07 b
+clkgen_write 39 0x07 b
+clkgen_write 40 0xe7 b
+clkgen_write 41 0x9c b
+clkgen_write 42 0x27 b
+
+# enable outputs
+clkgen_write 230 0x00 b
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/op-refclock-fixup@.service b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/op-refclock-fixup@.service
new file mode 100644
index 000000000..f5d9f9e72
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/chassis/refclock-fixup/op-refclock-fixup@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Fix up Zaius host refclock
+Wants=obmc-host-start-pre@%i.target
+Before=obmc-host-start-pre@%i.target
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Conflicts=obmc-chassis-stop@%i.target
+
+[Service]
+Restart=no
+Type=oneshot
+RemainAfterExit=yes
+ExecStart={sbindir}/fix_zaius_refclock.sh
+
+[Install]
+WantedBy=obmc-chassis-start@%i.target
OpenPOWER on IntegriCloud