summaryrefslogtreecommitdiff
path: root/meta-openpower/recipes-phosphor/host/op-proc-control-systemd-links.bb
blob: f3c63adad3a0bdc30e46d35a0bced7e93ac36ae8 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
SUMMARY = "OpenPOWER processor control services installation"
PR = "r1"

LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"

inherit allarch

RDEPENDS:${PN} += "op-proc-control"
RDEPENDS:${PN} += "phosphor-state-manager-obmc-targets"

ALLOW_EMPTY:${PN} = "1"

pkg_postinst:${PN}() {
	mkdir -p $D$systemd_system_unitdir/obmc-host-stop@0.target.wants
	mkdir -p $D$systemd_system_unitdir/obmc-host-force-warm-reboot@0.target.requires
	mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.requires
	mkdir -p $D$systemd_system_unitdir/obmc-host-diagnostic-mode@0.target.requires
	mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweron@0.target.requires
	mkdir -p $D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants

	LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/op-stop-instructions@0.service"
	TARGET="../op-stop-instructions@.service"
	ln -s $TARGET $LINK

	LINK="$D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants/op-stop-instructions@0.service"
	TARGET="../op-stop-instructions@.service"
	ln -s $TARGET $LINK

	LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-cfam-reset.service"
	TARGET="../op-cfam-reset.service"
	ln -s $TARGET $LINK

	LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.requires/op-cfam-reset.service"
	TARGET="../op-cfam-reset.service"
	ln -s $TARGET $LINK

	# Only install cfam override if p9 system
	if [ "${@bb.utils.contains("MACHINE_FEATURES", "p9-cfam-override", "True", "False", d)}" = True ]; then
		mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.requires
		LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/cfam_override@0.service"
		TARGET="../cfam_override@.service"
		ln -s $TARGET $LINK
	fi

	LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-continue-mpreboot@0.service"
	TARGET="../op-continue-mpreboot@.service"
	ln -s $TARGET $LINK

	# Only install certain units if phal enabled
	if [ "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}" = phal ]; then
		mkdir -p $D$systemd_system_unitdir/obmc-host-start@0.target.requires
		LINK="$D$systemd_system_unitdir/obmc-host-start@0.target.requires/phal-reinit-devtree.service"
		TARGET="../phal-reinit-devtree.service"
		ln -s $TARGET $LINK

		LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.requires/proc-pre-poweroff@0.service"
		TARGET="../proc-pre-poweroff@.service"
		ln -s $TARGET $LINK

		LINK="$D$systemd_system_unitdir/obmc-host-reset@0.target.requires/op-reset-host-check@0.service"
		TARGET="../op-reset-host-check@.service"
		ln -s $TARGET $LINK

		mkdir -p $D$systemd_system_unitdir/multi-user.target.wants
		LINK="$D$systemd_system_unitdir/multi-user.target.wants/phal-import-devtree@0.service"
		TARGET="../phal-import-devtree@.service"
		ln -s $TARGET $LINK

		mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.wants
		LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/phal-export-devtree@0.service"
		TARGET="../phal-export-devtree@.service"
		ln -s $TARGET $LINK
	fi

	# If the memory preserving reboot feature is enabled, set it up
	if [ "${@bb.utils.filter('DISTRO_FEATURES', 'mpreboot', d)}" = mpreboot ]; then
		# on mpreboot systems, obmc-host-crash@.target is used for mpreboot
		mkdir -p $D$systemd_system_unitdir/obmc-host-crash@0.target.requires
		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/obmc-host-force-warm-reboot@0.target"
		TARGET="../obmc-host-force-warm-reboot@.target"
		ln -s $TARGET $LINK

		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/op-enter-mpreboot@0.service"
		TARGET="../op-enter-mpreboot@.service"
		ln -s $TARGET $LINK

		# ensure diagnostic mode is shown for MPREBOOT
		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/obmc-host-diagnostic-mode@0.target"
		TARGET="../obmc-host-diagnostic-mode@.target"
		ln -s $TARGET $LINK
	else
		# If not a mpreboot system, default to quiesce target in crash target to support
		# older system designs like witherspoon
		mkdir -p $D$systemd_system_unitdir/obmc-host-crash@0.target.wants
		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.wants/obmc-host-quiesce@0.target"
		TARGET="../obmc-host-quiesce@.target"
		ln -s $TARGET $LINK
	fi
}

pkg_prerm:${PN}() {
	LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/op-stop-instructions@0.service"
	rm $LINK
	LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-cfam-reset.service"
	rm $LINK
	LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.requires/op-cfam-reset.service"
	rm $LINK
	# Only uninstall cfam override if p9 system
	if [ "${@bb.utils.contains("MACHINE_FEATURES", "p9-cfam-override", "True", "False", d)}" = True ]; then
		LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/cfam_override@0.service"
		rm $LINK
	fi
	LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-continue-mpreboot@0.service"
	rm $LINK

	# Remove phal specific units if enabled
	if [ "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}" = phal ]; then
		LINK="$D$systemd_system_unitdir/obmc-host-start@0.target.requires/phal-reinit-devtree.service"
		rm $LINK

		LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.requires/proc-pre-poweroff@0.service"
		rm $LINK

		LINK="$D$systemd_system_unitdir/multi-user.target.wants/phal-import-devtree@0.service"
		rm $LINK

		LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/phal-export-devtree@0.service"
		rm $LINK
	fi

	# Remove mpreboot specific units if enabled
	if [ "${@bb.utils.filter('DISTRO_FEATURES', 'mpreboot', d)}" = mpreboot ]; then
		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/obmc-host-force-warm-reboot@0.target"
		rm $LINK

		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/op-enter-mpreboot@0.service"
		rm $LINK
	else
		LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.wants/obmc-host-quiesce@0.target"
		rm $LINK
	fi
}