A causa del BSP Linux predefinito che non abilita la trasmissione della cache e della manutenzione TLB (bit0 del registro ACTLR è lasciato "0") in modalità SMP, potrebbe essere visualizzato un problema di coerenza della cache.
Per una descrizione di questo bit, fare riferimento alla sezione 1.7.3 Delle operazioni di manutenzione che trasmettono nel manuale di riferimento tecnico ARM A9 MPCore[2]:
Tutti i processori che lavorano in modalità SMP sullo stesso dominio coerente possono inviare e ricevere operazioni di manutenzione TLB e cache. Il Manuale di riferimento dell'architettura ARM fornisce informazioni dettagliate sulle operazioni di trasmissione. Un processore Cortex-A9 nel cluster A9-MP trasmette il funzionamento di manutenzione trasmettebile quando opera in modalità SMP (ACTLR. SMP=1) e quando è attivata la trasmissione dell'operazione di manutenzione (ACTLR. FW=1). Un processore Cortex-A9 può ricevere ed eseguire operazioni di manutenzione della trasmissione quando opera in modalità SMP, ACTLR. SMP=1.
Si consiglia di impostare sia l'ACTLR. FW e ACTLR. SMP a 1. Possiamo impostare il bit modificando il codice Linux in proc-v7. File S come di seguito:
#ifdef CONFIG_SMP
ALT_SMP(mrc p15, 0, r0, c1, c0, 1)
ALT_UP(mov r0, #(1 << 6)) @ falso per UP
tst r0, #(1 << 6) alla modalità SMP/nAMP attivata?
orreq r0, r0, #(1 << 6) @ Attiva modalità SMP/nAMP
orreq r0, r0, r10 @ Attiva bit SMP specifici della CPU
orr r0, r0, #(1) @Add questa riga attiva l'ACTLR[0]
mcreq p15, 0, r0, c1, c0, 1
#endif