summaryrefslogtreecommitdiff
path: root/meta-bytedance/meta-g220a/recipes-phosphor/datetime/me-time-sync/me-time-sync.sh
blob: 833b97d705ba659aef94e7abda571a06a8cf461c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

set -e

# Get time from ME via ipmb
# The last 4 bytes are the epoch time, e.g.
# (iyyyyay) 0 11 0 72 0 4 18 169 82 95
ret=$(busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb "/xyz/openbmc_project/Ipmi/Channel/Ipmb" org.openbmc.Ipmb sendRequest yyyyay 0x01 0x0a 0x00 0x48 0)

IFS=' ' read -r -a a <<< "${ret}"

if [ "${a[1]}" -ne 0 ]
then
  echo "Failed to get time from ME: ${ret}"
  exit 1
fi

t0=$((${a[7]}))
t1=$((${a[8]}*256))
t2=$((${a[9]}*256*256))
t3=$((${a[10]}*256*256*256))
t=$((${t0}+${t1}+${t2}+${t3}))
echo "Setting date to ${t}"

date -s @${t}