Skip to content

Commit ccd015b

Browse files
gclementtsbogend
authored andcommitted
MIPS: CPS: Support broken HCI for multicluster
Some CM3.5 devices incorrectly report that hardware cache initialization has completed, and also claim to support hardware cache initialization when they don't actually do so. This commit fixes this issue by retrieving the correct information from the device tree and allowing the system to bypass the hardware cache initialization step. Instead, it relies on manual operation. As a result, multi-user support is now possible for these CPUs. Signed-off-by: Gregory CLEMENT <[email protected]> Signed-off-by: Thomas Bogendoerfer <[email protected]>
1 parent e27fbe1 commit ccd015b

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

arch/mips/kernel/smp-cps.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,9 @@ static void __init cps_prepare_cpus(unsigned int max_cpus)
333333
sizeof(*mips_cps_cluster_bootcfg),
334334
GFP_KERNEL);
335335

336+
if (nclusters > 1)
337+
mips_cm_update_property();
338+
336339
for (cl = 0; cl < nclusters; cl++) {
337340
/* Allocate core boot configuration structs */
338341
ncores = mips_cps_numcores(cl);
@@ -394,7 +397,7 @@ static void init_cluster_l2(void)
394397
{
395398
u32 l2_cfg, l2sm_cop, result;
396399

397-
while (1) {
400+
while (!mips_cm_is_l2_hci_broken) {
398401
l2_cfg = read_gcr_redir_l2_ram_config();
399402

400403
/* If HCI is not supported, use the state machine below */

0 commit comments

Comments
 (0)