Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <gregory.clement@bootlin.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Gregory CLEMENT and committed by
Thomas Bogendoerfer
ccd015b0 e27fbe16

+4 -1
+4 -1
arch/mips/kernel/smp-cps.c
··· 333 333 sizeof(*mips_cps_cluster_bootcfg), 334 334 GFP_KERNEL); 335 335 336 + if (nclusters > 1) 337 + mips_cm_update_property(); 338 + 336 339 for (cl = 0; cl < nclusters; cl++) { 337 340 /* Allocate core boot configuration structs */ 338 341 ncores = mips_cps_numcores(cl); ··· 397 394 { 398 395 u32 l2_cfg, l2sm_cop, result; 399 396 400 - while (1) { 397 + while (!mips_cm_is_l2_hci_broken) { 401 398 l2_cfg = read_gcr_redir_l2_ram_config(); 402 399 403 400 /* If HCI is not supported, use the state machine below */