blob: 2d9d57bc1137df2ec475e2ad9c15da5083ed9193 [file] [log] [blame]
Chirag Sharmaa2576932020-12-05 23:17:41 -06001#pragma once
2
3#include <libipl.H>
4
Andrew Geissler5c3f9252021-06-10 10:53:05 -05005extern "C"
6{
7#include <libpdbg.h>
8}
9
Chirag Sharmaa2576932020-12-05 23:17:41 -060010namespace openpower
11{
12namespace phal
13{
14
15/**
16 * @brief This function will initialize required phal
17 * libraries.
18 * Throws an exception on error.
19 *
20 * @param[in] mode - IPL mode, default IPL_AUTOBOOT
21 *
22 */
23void phal_init(enum ipl_mode mode = IPL_AUTOBOOT);
24
Andrew Geissler5c3f9252021-06-10 10:53:05 -050025/**
26 * @brief Check if primary processor or not
27 *
Andrew Geissler65c01012021-06-15 14:03:34 -050028 * @param[in] procTarget - Target to check if primary or not
Andrew Geissler5c3f9252021-06-10 10:53:05 -050029 *
30 * @return True/False
31 */
32bool isPrimaryProc(struct pdbg_target* procTarget);
33
Andrew Geissler65c01012021-06-15 14:03:34 -050034/**
35 * @brief Read the input CFAM register
36 *
37 * @param[in] procTarget - The Target to perform the operation on
38 * @param[in] reg - The register address to read
39 * @param[out] val - The value read from the register
40 *
41 * @return 0 on success, non-0 on failure
42 */
43uint32_t getCFAM(struct pdbg_target* procTarget, const uint32_t reg,
44 uint32_t& val);
45
Chirag Sharmaa2576932020-12-05 23:17:41 -060046} // namespace phal
47} // namespace openpower