]>
Commit | Line | Data |
---|---|---|
64b5f469 AG |
1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | #include <common.h> | |
f7ae49fc | 3 | #include <log.h> |
99ac6c76 | 4 | #include <firmware/imx/sci/sci.h> |
910b2fca | 5 | #include <asm/mach-imx/sys_proto.h> |
3f497428 | 6 | #include <imx_sip.h> |
dc575201 | 7 | #include <linux/arm-smccc.h> |
64b5f469 AG |
8 | |
9 | int sc_pm_setup_uart(sc_rsrc_t uart_rsrc, sc_pm_clock_rate_t clk_rate) | |
10 | { | |
11 | sc_pm_clock_rate_t rate = clk_rate; | |
12 | int ret; | |
13 | ||
14 | /* Power up UARTn */ | |
15 | ret = sc_pm_set_resource_power_mode(-1, uart_rsrc, SC_PM_PW_MODE_ON); | |
16 | if (ret) | |
17 | return ret; | |
18 | ||
19 | /* Set UARTn clock root to 'rate' MHz */ | |
20 | ret = sc_pm_set_clock_rate(-1, uart_rsrc, SC_PM_CLK_PER, &rate); | |
21 | if (ret) | |
22 | return ret; | |
23 | ||
24 | /* Enable UARTn clock root */ | |
25 | ret = sc_pm_clock_enable(-1, uart_rsrc, SC_PM_CLK_PER, true, false); | |
26 | if (ret) | |
27 | return ret; | |
28 | ||
29 | return 0; | |
30 | } | |
d87b2486 AG |
31 | |
32 | void build_info(void) | |
33 | { | |
dc575201 | 34 | struct arm_smccc_res res; |
910b2fca | 35 | u32 seco_build = 0, seco_commit = 0; |
d87b2486 | 36 | u32 sc_build = 0, sc_commit = 0; |
910b2fca | 37 | ulong atf_commit = 0; |
d87b2486 AG |
38 | |
39 | /* Get SCFW build and commit id */ | |
40 | sc_misc_build_info(-1, &sc_build, &sc_commit); | |
41 | if (!sc_build) { | |
42 | printf("SCFW does not support build info\n"); | |
43 | sc_commit = 0; /* Display 0 if build info not supported */ | |
44 | } | |
910b2fca AG |
45 | |
46 | /* Get SECO FW build and commit id */ | |
47 | sc_seco_build_info(-1, &seco_build, &seco_commit); | |
48 | if (!seco_build) { | |
49 | debug("SECO FW does not support build info\n"); | |
50 | /* Display 0 when the build info is not supported */ | |
51 | seco_commit = 0; | |
52 | } | |
53 | ||
54 | /* Get ARM Trusted Firmware commit id */ | |
dc575201 PF |
55 | arm_smccc_smc(IMX_SIP_BUILDINFO, IMX_SIP_BUILDINFO_GET_COMMITHASH, |
56 | 0, 0, 0, 0, 0, 0, &res); | |
57 | atf_commit = res.a0; | |
910b2fca AG |
58 | if (atf_commit == 0xffffffff) { |
59 | debug("ATF does not support build info\n"); | |
60 | atf_commit = 0x30; /* Display 0 */ | |
61 | } | |
62 | ||
63 | printf("Build: SCFW %08x, SECO-FW %08x, ATF %s\n", | |
64 | sc_commit, seco_commit, (char *)&atf_commit); | |
d87b2486 | 65 | } |