Lines Matching +full:imx +full:- +full:scu

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 2014 Juergen Weiss <weiss@uni-mainz.de>
47 #include <arm/freescale/imx/imx6_machdep.h>
76 bus_space_handle_t scu; in imx6_mp_setmaxid() local
84 if (bus_space_map(fdtbus_bs_tag, SCU_PHYSBASE, SCU_SIZE, 0, &scu) != 0) in imx6_mp_setmaxid()
85 panic("Couldn't map the SCU\n"); in imx6_mp_setmaxid()
86 val = bus_space_read_4(fdtbus_bs_tag, scu, SCU_CONFIG_REG); in imx6_mp_setmaxid()
88 bus_space_unmap(fdtbus_bs_tag, scu, SCU_SIZE); in imx6_mp_setmaxid()
96 mp_maxid = ncpu - 1; in imx6_mp_setmaxid()
102 bus_space_handle_t scu; in imx6_mp_start_ap() local
108 if (bus_space_map(fdtbus_bs_tag, SCU_PHYSBASE, SCU_SIZE, 0, &scu) != 0) in imx6_mp_start_ap()
109 panic("Couldn't map the SCU\n"); in imx6_mp_start_ap()
114 * Invalidate SCU cache tags. The 0x0000ffff constant invalidates all in imx6_mp_start_ap()
115 * ways on all cores 0-3. Per the ARM docs, it's harmless to write to in imx6_mp_start_ap()
118 bus_space_write_4(fdtbus_bs_tag, scu, SCU_INV_TAGS_REG, 0x0000ffff); in imx6_mp_start_ap()
122 * Setting the "disable-migratory bit" in the undocumented SCU in imx6_mp_start_ap()
125 val = bus_space_read_4(fdtbus_bs_tag, scu, SCU_DIAG_CONTROL); in imx6_mp_start_ap()
126 bus_space_write_4(fdtbus_bs_tag, scu, SCU_DIAG_CONTROL, in imx6_mp_start_ap()
130 * Enable the SCU, then clean the cache on this core. After these two in imx6_mp_start_ap()
131 * operations the cache tag ram in the SCU is coherent with the contents in imx6_mp_start_ap()
134 * their SCU tag ram above, so they will be coherent from startup. in imx6_mp_start_ap()
136 val = bus_space_read_4(fdtbus_bs_tag, scu, SCU_CONTROL_REG); in imx6_mp_start_ap()
137 bus_space_write_4(fdtbus_bs_tag, scu, SCU_CONTROL_REG, in imx6_mp_start_ap()
143 * and set the core-enable and core-reset bits in the control register. in imx6_mp_start_ap()
151 val |= ((1 << (SRC_CONTROL_C1ENA_SHIFT - 1 + i )) | in imx6_mp_start_ap()
152 ( 1 << (SRC_CONTROL_C1RST_SHIFT - 1 + i))); in imx6_mp_start_ap()
159 bus_space_unmap(fdtbus_bs_tag, scu, SCU_SIZE); in imx6_mp_start_ap()