2017-07-13 2 views
1

J'essaie de comprendre comment démarrer des cœurs autres que core0 pour un quad core allwinner h5. le registre C_RST_CTRL (a.k.a CPU2 Reset Control Register) a quatre bits en bas qui impliquent qu'il s'agit de quatre commandes de réinitialisation. Le lsbit est l'un des trois autres zéros impliquant la réinitialisation de ces versions sur les autres cœurs, mais je ne vois pas cela se produire (rien ne fonctionne à l'adresse zéro), et en même temps, lsbit arrête core0 ce qui implique qu'il est un contrôle de réinitialisation. Donc je suppose qu'il y a des portes d'horloge quelque part mais je ne peux pas les trouver. Les registres prcm qui ne sont pas documentés dans les docs H5 mais qui se trouvent sur une page wiki sunxi pour les anciens allwinners montrent ce qui semble être de vrais paramètres PLL mais les registres d'activation de cpu sont marqués comme A31 seulement et le registre cpu0 (s) ne sont pas configurés, ce qui impliquerait que ce n'est pas la façon dont vous activez tout processeur, y compris 0 pour cette puce.Comment démarrer les cœurs supplémentaires sur un Allwinner H5?

Qu'est-ce qui me manque?

+1

https://github.com/OrangePiLibra/OrangePi_H5SDK/tree/master/Documentation/Hardware C'est le mode d'emploi qui est le vrai manuel avec les spécifications de registre. –

+0

Super. Merci beaucoup –

+0

la conception de bras typique est pour le bord du noyau d'avoir l'horloge individuelle activer et réinitialise qui sont spécifiques au vendeur quant à la façon dont ils sont mis en œuvre. bras ne généralement pas et ne devrait pas contrôler ceux-ci, n'aurait pas de sens. –

Répondre

2

Pour un look de solution de métal pur à nu sunxi_cpu_ops.c à partir du répertoire plat/sun50iw1p1 de https://github.com/apritzel/arm-trusted-firmware.git

Vous devez désactiver différentes ATTACHES ainsi que des portes d'horloge.

Sinon, y compris le bras de confiance du code du firmware et permettent un noyau par un appel SMC:

ldr x2,=entry_point 
mov x1,#corenumber 
mov x0,#0x03 
movk x0,#0x8400,lsl #16 
smC#0 

J'ai maintenant confirmé cela fonctionne sur un H5.

1

Est-ce que C_CPU_STATUS STANDBY_WFI = 0x0E suggère que les cœurs secondaires sont assis dans WFI?

Pas une réponse, je n'ai pas assez de rep pour commenter mais je commence juste le même exercice moi-même. En aparté, comment avez-vous mis du code à l'adresse 0? N'est-ce pas BROM? J'allais jouer avec les registres RVBARADDR.

+0

J'utilise u-boot pour démarrer et charger à 0x42000000, n'ont pas remplacé u-boot encore. –

+0

J'utilise juste le SPL de u-boot et charge un exécutable à partir de là. Avez-vous configuré RVBARADDR? –

+0

01700030 000E0000 oui STANDBY_WFI = 0xE –