blob: a8dca6f1e772fb44a79b00989bc0aeb2b4ccb9f5 [file] [log] [blame]
Andrew Neylandcf8f7462023-09-06 14:42:07 -05001#!/bin/sh
2# File which is managing GPIOS when detected. First parameter is which GPIOs that switched
3if [ "$1" = "up" ]
4then
5 busctl set-property xyz.openbmc_project.Chassis.Gpios /xyz/openbmc_project/chassis/gpios xyz.openbmc_project.Chassis.Gpios PGood b true
6 devmem 0x80fc0230 8 0x1
7 sleep 2
8 devmem 0x80fc0230 8 0x1
9 # Activate local UBM (front NVME drive)
10
11 devmem 0xd1000087 8 1
12 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
13 devmem 0xd1000087 8 2
14 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
15 devmem 0xd1000087 8 3
16 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
17 devmem 0xd1000087 8 4
18 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
19 devmem 0xd1000088 8 5
20 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
21 devmem 0xd1000087 8 6
22 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
23 devmem 0xd1000087 8 7
24 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
25 devmem 0xd1000087 8 8
26 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
27 devmem 0xd1000087 8 9
28 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
29 devmem 0xd1000087 8 0xa
30 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
31 devmem 0xd1000087 8 0xb
32 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
33 devmem 0xd1000087 8 0xc
34 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
35 devmem 0xd1000087 8 0xd
36 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
37 devmem 0xd1000087 8 0xe
38 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
39 devmem 0xd1000087 8 0xf
40 i2ctransfer -y 3 w4@0x40 0x34 0xbf 0x00 0xe8
41
42 devmem 0xd1000088 8 3
43 i2ctransfer -y 4 w4@0x40 0x34 0xbf 0x00 0xe8
44 devmem 0xd1000088 8 4
45 i2ctransfer -y 4 w4@0x40 0x34 0xbf 0x00 0xe8
46
47 devmem 0xd100008a 8 0x13
48 i2ctransfer -y 6 w4@0x40 0x34 0xbf 0x00 0xe8
49 devmem 0xd100008a 8 0x14
50 i2ctransfer -y 6 w4@0x40 0x34 0xbf 0x00 0xe8
51
52# systemctl restart xyz.openbmc_project.EntityManager.service
53# systemctl restart phosphor-pid-control.service
54else
55 if [ "$1" = "down" ]
56 then
57 busctl set-property xyz.openbmc_project.Chassis.Gpios /xyz/openbmc_project/chassis/gpios xyz.openbmc_project.Chassis.Gpios PGood b false
58 # We can re-init the system
59 devmem 0xd1000009 8 0x24
60 # We need to check the reason why we have been shutdown
61 shutdownReason=$(devmem 0x80000074 16)
62 # If bit 10 is set Software initiated a shutdown we need to restart
63 isSet2=$(( shutdownReason | 0xFBFF ))
64 if [ "$isSet2" = "65535" ]
65 then
66 echo "Restarting" >> /tmp/gpios
67 dbus-send --system --dest=xyz.openbmc_project.State.Host --print-reply --type=method_call /xyz/openbmc_project/state/host0 org.freedesktop.DBus.Properties.Set string:RequestedHostTransition variant:string:xyz.openbmc_project.State.Host.Transition.On
68 obmcutil poweron
69 fi
70 fi
71fi
72echo "$1" >> /tmp/gpios.txt