Bonjour,
J’essaye d’utiliser le port série PL011 (UART0) comme port console de ma carte RPi 4B.
Je fais du Linux embaqué.
J’utilise u-boot pour configurer et démarrer mon noyau Linux que je compiile à partir des sources.
Quand j’utilise le Device Tree issu du firmware de la RPi4 combiné au fichier config.txt, j’arrive à démarrer la carte et avoir un login sur le port série de la carte (broches GPIO14 et GPIO15). Ce Device Tree DTB est stocké à l’adresse ${fdt_addr} depuis u-boot.
J’essaye maintenant de reconstruire un Device Tree DTB à partir du fichier source DTS contenu dans les sources du noyau Linux 6.0.y, le fichier arch/arm/boot/dts/bcm2711-rpi-4-b.dts.
Depuis u-boot, le fichier DTB bcm2711-rpi-4-b.dtb est téléchargé à l’adresse ${fdt_addr_r}. Quand je boote mon noyau avec u-boot et ce fichier DTB que j’ai généré, dans ce cas, j’ai bien les traces de boot sur le port série mais je n’arrive pas à me connecter sur le port.
La carte est opérationnelle car je m’y connecte à distance.
Le fichier /dev/ttyAMA0 existe bien.
Je peux émettre des caractères sur /dev/ttyAMA0 par :
echo toto >/dev/ttyAMA0
mais je ne peux rien recevoir quand je fais :
cat < /dev/ttyAMA0
et que j’envoie des caractères sur la liaison série.
J’ai mis dans le fichier :
/* uart0 communicates with the BT module */
&uart0 {
pinctrl-names = « default »;
pinctrl-0 = <&uart0_gpio14>;
status = « okay »;
};
/* uart1 is mapped to the pin header */
&uart1 {
status = « disabled »;
};
Qu’est-ce qui cloche ?
Merci pour votre aide.
++