4 points par GN⁺ 2024-08-09 | 3 commentaires | Partager sur WhatsApp
  • Raspberry Pi lance sa carte de 2e génération Raspberry Pi Pico 2 : basée sur le nouveau RP2350, elle améliore performances, mémoire, sécurité et interfaces tout en conservant la compatibilité avec l’écosystème Pico existant
  • La puce centrale RP2350 comprend deux Arm Cortex-M33 à 150 MHz, 520 Ko de SRAM, une sécurité fondée sur TrustZone, le signed boot, de l’OTP, l’accélération SHA-256, un TRNG, des PIO améliorés, HSTX et la prise en charge de PSRAM QSPI externe
  • La Pico 2 est une carte à 5 $ combinant le RP2350A et 4 Mo de flash QSPI externe ; la Pico 2 W et des versions avec connecteurs 0,1 pouce préinstallés sont également attendues avant la fin de l’année
  • L’environnement de développement s’élargit avec un Pico SDK mis à jour, des images MicroPython et CircuitPython, des travaux de prise en charge de Rust, un travail matériel fondé sur Trusted Firmware-M 2.1.0 LTS, ainsi que la prise en charge du SDK Google Pigweed
  • Au démarrage, le RP2350 peut choisir deux cœurs Hazard3 RISC-V au lieu des Arm Cortex-M33, offrant une base stable pour expérimenter RISC-V sur une carte Raspberry Pi

Lancement de la Pico 2 et principaux changements

  • Raspberry Pi Pico 2 est la carte microcontrôleur de 2e génération de Raspberry Pi, basée sur le nouveau microcontrôleur haute performance et sécurisé RP2350 conçu par Raspberry Pi
  • Par rapport à la série Pico existante, elle augmente la fréquence des cœurs, double la mémoire et offre des cœurs Arm plus puissants, de nouvelles fonctions de sécurité et des interfaces améliorées
  • Elle conserve la compatibilité matérielle et logicielle avec la série Pico précédente
  • Son prix de vente est de 5 $

Du RP2040 au RP2350

  • Depuis le lancement de la Pico originale et du RP2040 en janvier 2021, près de 4 millions de Pico et Pico W ont été vendues en trois ans et demi
  • Le RP2040 a été utilisé dans de nombreuses cartes de développement tierces et produits OEM, ainsi que dans des produits comme des flippers et des synthétiseurs
  • Le RP2040 a été conçu comme un microcontrôleur doté de deux cœurs 32 bits, de RAM sur puce, d’un sous-système d’E/S programmable (PIO) et d’une matrice de bus déterministe
  • Parmi les démonstrations basées sur le RP2040 figurent le portage de DOOM de Graham Sanderson, le portage de PalmOS par Dmitry Grinberg et la cartouche Commodore 64 « sans CPU » de Kevin Vance
  • Le RP2040 manquait de stockage sur puce, d’états d’inactivité à faible consommation et d’options de boîtier, tandis que les utilisateurs demandaient des cœurs plus rapides, davantage de RAM et des fonctions de protection du code

Caractéristiques et boîtiers de la puce RP2350

  • RP2350 est une conception bien plus sophistiquée que le RP2040
  • Ses principales caractéristiques sont les suivantes
    • Deux cœurs Arm Cortex-M33 à 150 MHz, avec prise en charge du calcul en virgule flottante et du DSP
    • 520 Ko de SRAM sur puce répartis en 10 banques accessibles simultanément
    • Architecture de sécurité basée sur Arm TrustZone for Cortex-M
    • Prise en charge du signed boot
    • 8 Ko de mémoire OTP antifuse sur puce
    • Accélération SHA-256
    • Générateur matériel de nombres vraiment aléatoires (TRNG)
    • Alimentation à découpage sur puce et LDO à faible courant de repos
    • 12 machines d’état PIO améliorées
    • Périphérique HSTX pour le transfert de données à haut débit
    • Prise en charge de PSRAM QSPI externe
  • Le choix de boîtiers est plus varié que l’unique QFN56 7×7 mm du RP2040
    • RP2350A : QFN60 7×7 mm, 30 GPIO
    • RP2350B : QFN80 10×10 mm, 48 GPIO
    • RP2354A/RP2354B : variantes intégrant respectivement 2 Mo de flash QSPI stacked-in-package
  • Le prix du RP2350A est de 0,80 $ par unité sur bobine de 3 400 pièces et de 1,10 $ à l’unité, soit 10 cents de plus que le RP2040
  • Le RP2350B coûte 10 cents de plus que le RP2350A, et les variantes RP2354 coûtent 20 cents de plus que les modèles correspondants sans flash
  • Le RP2350 devrait être disponible en volume avant la fin 2024 ; l’inscription au programme d’échantillons se fait depuis la page produit

Carte Pico 2 et produits à venir

  • La Pico 2 combine un RP2350A avec 4 Mo de flash QSPI externe
    • La flash QSPI externe de la Pico originale était de 2 Mo
    • Le facteur de forme et les caractéristiques électriques restent compatibles avec la conception de la Pico originale
  • Au moment du lancement, les stocks dans les canaux de distribution sont limités, mais la Pico 2 est en production à plein régime avec Sony
  • Plusieurs partenaires Approved Reseller proposent des systèmes de commandes en attente et de précommandes, et des volumes seront expédiés régulièrement au cours des prochaines semaines
  • Les produits prévus avant la fin de l’année sont les suivants
    • La Pico 2 W avec prise en charge sans fil, utilisant le même modem Infineon 43439 que la Pico W
    • Des versions de la Pico 2 et de la Pico 2 W avec connecteurs 0,1 pouce préinstallés

Outils de développement, certification de sécurité et documentation

  • Le Pico SDK a été mis à jour pour accompagner le lancement de la Pico 2 et du RP2350
  • De nouvelles images MicroPython et CircuitPython sont disponibles
  • Jonathan Pallant et ses collaborateurs travaillent à apporter la prise en charge du langage Rust à la nouvelle plateforme
  • Raspberry Pi collabore avec le projet Trusted Firmware afin de faire du RP2350 la plateforme matérielle de référence de Trusted Firmware-M 2.1.0 LTS
    • TF-M fournit l’implémentation de référence de PSA Certified sur les puces Arm v8-M
    • Le RP2350 sera testé par un laboratoire indépendant certifié
    • L’objectif est d’obtenir la certification PSA Certified Level 2 avant la version d’octobre
  • Un SDK Pigweed incluant la prise en charge native de la Pico 2 est également lancé avec Google
    • Les bibliothèques middleware Pigweed sont embarquées dans des millions d’appareils, notamment les appareils Google Pixel et les thermostats Nest
    • L’annonce de Google est consultable sur la page d’annonce
  • Le RP2350 est accompagné d’une datasheet complète
  • Un tutoriel pour démarrer le développement C/C++ est également proposé avec la nouvelle extension Raspberry Pi Pico pour Visual Studio Code mise à jour

Signed boot et prime de sécurité

  • Le cœur du modèle de sécurité du RP2350 est le signed boot
  • Lorsque la sécurité est activée, seuls les binaires signés avec la clé privée correspondant au hachage de clé publique stocké dans l’OTP peuvent démarrer
  • Empêcher l’exécution de code arbitraire rend bien plus difficile l’extraction du contenu de l’OTP, y compris les clés cryptographiques utilisées pour protéger le code
  • Le RP2350 utilise plusieurs techniques contre les attaques par injection de fautes
    • Fast glitch detector matériel
    • Coprocesseur de redondance en instance de brevet
    • Protection de l’intégrité du flux de contrôle et des données
  • Raspberry Pi veut trouver et corriger les défauts du processus de démarrage avant que le RP2350 ne soit déployé dans des applications critiques
  • Avant le lancement, NewAE et Hextree ont été mandatés pour auditer l’architecture de sécurité
  • Une prime de 10 000 $ est offerte pour le premier break confirmé du processus de signed boot
    • La période initiale de fonctionnement est d’un mois
    • Si aucune faille n’est découverte, la période peut être prolongée
    • Des primes supplémentaires peuvent être proposées pour d’autres failles distinctes
    • Les détails figurent dans le programme de prime
  • En collaboration avec la convention de hacking DEF CON, du matériel RP2350 est fourni aux chercheurs en sécurité
    • Le badge DEF CON de cette année est basé sur le RP2350
    • Hextree a produit en quantité limitée des cartes destinées aux expériences de glitching sur rails d’alimentation et par émissions électromagnétiques

Produits partenaires basés sur le RP2350

  • Raspberry Pi a développé des produits basés sur le RP2350 avec des partenaires au cours de l’année écoulée
  • Beaucoup sont des mises à niveau de produits existants basés sur le RP2040, tandis que certains sont entièrement nouveaux
  • Les exemples attendus au lancement ou au cours du mois suivant sont les suivants
    • 4D Systems : série d’écrans hautes performances gen4-RP2530 de 2,4″ à 7,0″
    • Adafruit : Metro RP2350 pour shields compatibles Arduino, Feather RP2350 au format Feather
    • Bus Pirate : outils de débogage open hardware basés sur le RP2350 Bus Pirate 5XL, Bus Pirate 6
    • Cytron : contrôleur d’E/S industriel IRIV I/O Controller, contrôleur robotique MOTION 2350 Pro
    • Invector Labs : produits Challenger+ RP2350 avec 8 Mo de flash, 8 Mo de PSRAM et modules BConnect ou WiFi6/BLE5
    • NewAE : RP2350 Target for ChipWhisperer pour l’analyse de consommation et les tests d’injection de fautes
    • Pimoroni : Explorer, Tiny2350, Plasma 2350, PGA 2350
    • Seeed : XIAO RP2350 avec 19 GPIO, LED RGB et système de gestion de batterie
    • Solder Party : RP2350 Stamp et Stamp XL intégrant RP2350, 16 Mo de flash, LDO, chargeur LiPo, LED et boutons Reset/Boot
    • SparkFun : Pro Micro – RP2350 au facteur de forme Pro Micro
    • Switch Science : Picossci2 Breakout avec connecteur USB-C et modules associés
    • Tiny Circuits : Thumby Color, console porte-clés portable programmable
    • Wiznet : cartes d’évaluation basées sur le RP2350 pour puces Ethernet W5100S, W5500 et W6100

Mode RISC-V et Hazard3

  • Le RP2350 intègre deux cœurs RISC-V open hardware Hazard3, utilisables au démarrage à la place des cœurs Cortex-M33
  • La ROM de démarrage détecte automatiquement pour quelle architecture le binaire de second stage a été construit et peut redémarrer la puce dans le mode approprié
  • En mode RISC-V, les fonctionnalités de la puce sont disponibles à l’exception de quelques fonctions de sécurité et de l’accélérateur de calcul en virgule flottante double précision
  • Hazard3 a été développé sur son temps personnel par Luke Wren, Principal Engineer de l’équipe puces de Raspberry Pi
  • Hazard3 est un processeur à pipeline optimisé en 3 étapes qui implémente le jeu d’instructions RV32I et plusieurs extensions standard visant les performances et la densité de code
  • L’objectif de l’ajout de Hazard3 au RP2350 est de permettre aux développeurs logiciels d’expérimenter l’architecture RISC-V dans un environnement stable et pris en charge, et de diffuser Hazard3 comme un cœur ouvert propre pouvant être utilisé tel quel dans d’autres appareils ou servir de base à des développements supplémentaires

3 commentaires

 
GN⁺ 2024-08-09
Avis sur Hacker News
  • Luke, l’auteur de Hazard3, explique pourquoi il a placé un cœur Hazard3 à côté du M33
    La taille des deux cœurs n’est pas comparable, mais même si Hazard3 avait été retiré, il est très probable que la taille finale du die aurait été presque la même
    Selon lui, c’est parce que la logique en cellules standard peut être compactée, et que les contraintes de conception du pad ring imposent aussi des arrondis sur les dimensions du die
    Il ajoute toutefois que, sans le cœur RISC-V, il aurait sans doute perdu moins de cheveux lors du placement-routage final et de l’analyse temporelle statique
    https://x.com/wren6991/status/1821582405188350417

  • Je ne comprends pas pourquoi ils utilisent encore du Micro USB
    Même si cela coûte un peu plus cher par carte, j’espérais voir de l’USB-C dans la prochaine version

    • Les partenaires ont déjà préparé beaucoup de cartes alternatives, et si payer un peu plus ne pose pas de problème, il existe aussi des cartes compatibles Pico avec USB-C
      https://www.raspberrypi.com/for-industry/powered-by/product-...
    • Au moins, le microUSB fonctionne toujours
      Certaines cartes USB-C chinoises économisent sur les résistances de pull-up CC, si bien que le port ne fonctionne pas avec un câble C-to-C
    • À l’inverse, il y a deux raisons pour lesquelles ça ne me gêne pas vraiment
      J’ai encore plein de câbles micro-USB, et de moins en moins d’endroits où les utiliser
      Ce type d’appareil n’est pas souvent déplacé ni branché/débranché, donc les situations où le connecteur risque surtout de s’abîmer se présentent assez peu
    • Ils veulent probablement conserver le même facteur de forme que le Pico 1
    • Pour pouvoir dire qu’il s’agit d’une mise à niveau drop-in du Pico 1, ils n’ont sans doute pas le choix
      S’il faut reconcevoir le boîtier du projet, ce n’est plus une mise à niveau drop-in
  • Par rapport au RP2040, pas mal de choses ont changé
    Boîtier plus grand, variante avec 2 Mo de flash intégrée, démarrage sécurisé et démarrage chiffré, deux contextes d’exécution sécurisés, générateur de nombres aléatoires, accélérateur SHA-256, ROM OTP de 8 Ko, émetteur série haut débit HSTX à 8 canaux, passage de 30 à 48 GPIO, de 8 à 12 machines d’état PIO, de 12 à 16 canaux DMA, choix au démarrage entre RISC-V et Arm, passage du Cortex-M0+ au Cortex-M33, et fréquence cœur portée de 133 MHz à 150 MHz
    https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.p...

    • Les caractéristiques du produit sont bonnes, mais la structure et le contenu de la datasheet comptent parmi les meilleurs que j’aie vus jusqu’ici
    • La version 60 broches semble être de la même taille que le RP2040
  • On dirait qu’ils ont corrigé presque tout ce qui me déplaisait dans le RP2040
    Il faut absolument lire jusqu’à la section “One more thing” tout en bas
    Au démarrage, on peut choisir de façon transparente entre Cortex-M33 ou RISC-V

    • Je me demande pourquoi consacrer de la surface de die à un cœur RISC-V qui, dans les produits fabriqués en grande série, ne peut être utilisé qu’à la place du cœur Cortex
      J’ai l’impression qu’il aurait mieux valu utiliser cette surface pour plus de RAM ou un autre cœur Arm, et qu’il aurait été plus logique de vendre carrément une variante dédiée RISC-V
    • Je ne vois pas bien l’intérêt du cœur RISC-V alors qu’il y a déjà Arm
      Ajouter plus de PSRAM ou une unité de traitement de réseau neuronal aurait probablement été plus utile
  • Je me demande s’il existe une carte tout-en-un de gestion de batterie pour petits appareils mobiles
    J’ai récemment commencé à bricoler avec l’ESP32, et j’ai été surpris de voir qu’il y avait peu de cartes prêtes à l’emploi sur AliExpress capables de gérer à la fois la recharge d’une batterie USB et l’alimentation de l’appareil
    J’aimerais ajouter une LiPo à mon design et le faire fonctionner simplement, comme un téléphone

    • Adafruit a quelques cartes de charge LiPo, mais pas avec le niveau d’intégration que je cherche
      Il faut un câble USB séparé pour la charge
      Cela dit, certaines cartes ESP32 semblent charger une LiPo via le port USB, et certaines cartes Heltec aussi
      J’ai une carte avec un connecteur batterie JST, mais je ne l’ai pas utilisée depuis longtemps donc je n’en suis pas sûr ; c’est probablement ce modèle : https://heltec.org/project/wifi-kit32-v3/
    • LILYGO a aussi ce genre de cartes
      J’ai justement une T18 sur mon bureau : https://github.com/LilyGO/TTGO-T-ControllerV2.2/blob/master/...
      J’ai toutefois eu quelques soucis pour que l’upload fonctionne correctement, et les produits LILYGO demandent en général un peu d’essais et d’ajustements, mais une fois réglés ils sont plutôt stables
    • La puce ESP32 est connue pour intégrer un système de gestion de batterie, également utilisé dans le M5Stack et le Seeeduino XIAO
      Ce qui est étrange, c’est que, à part dire de souder la batterie, le fonctionnement n’est pas clairement expliqué
    • Pour l’instant, j’examine des solutions 2 cellules comme BQ25886, BG25887, MP5461, MP2672, LTC3118, MP2639C, IP2326, BQ294533 et MCP73213
      Pour les solutions monocellule, il y a IP2312, ETA9740, TP5100, IP5328P, MCP73834, MCP73833, LTC1734 et LTC4121
      J’ai aussi trouvé quelques modules avec connecteur USB-C sur AliExpress, mais je ne les ai pas encore testés
      IP2326 : https://www.aliexpress.com/item/1005007175222069.html
      CN3302 : https://www.aliexpress.com/item/1005006203228418.html
    • Pimoroni a aussi une gamme de produits
      Leur carte générique de gestion de batterie avec charge simultanée est ici : https://shop.pimoroni.com/products/lipo-amigo?variant=397793...
      On peut aussi trouver une version adaptée au Pico, ou une carte basée sur le RP2040 avec gestion de batterie intégrée
  • De manière assez impressionnante, il embarque deux cœurs Cortex-M33 et deux cœurs RISC-V open source Hazard3
    Le Cortex-M33 ferait 4,09 CoreMark/MHz, et le Hazard3 3,81 CoreMark/MHz : https://github.com/Wren6991/Hazard3

    • Les deux sont présents dans le silicium, et il semble qu’on choisisse l’un ou l’autre au démarrage
      Le RP2350 intègre une paire de cœurs RISC-V Hazard3 en matériel ouvert, pouvant remplacer les cœurs Cortex-M33 au démarrage, et la ROM de boot peut aussi détecter automatiquement pour quelle architecture le binaire de deuxième étape a été compilé, puis redémarrer dans le mode approprié
      https://www.raspberrypi.com/documentation/microcontrollers/s...
  • Oui, il peut aussi faire tourner DOOM
    Il y aurait déjà eu une belle démonstration, comme le portage de DOOM par Graham Sanderson

  • On avait déjà discuté de techniques assez sales, comme des traps d’écriture et de l’émulation, pour faire « fonctionner » tant bien que mal de la RAM externe sur le RP2040
    La fiche technique du RP2350 indique que la nouvelle interface mémoire QSPI prend en charge le mappage mémoire en lecture/écriture, donc je me demande si cela signifie qu’on peut simplement y connecter de la PSRAM
    Je ne suis pas vraiment expert en matériel, mais ça semble assez prometteur, et si c’est possible je me demande aussi quelles performances on pourrait obtenir

    • L’article indique qu’il prend en charge la PSRAM QSPI externe
  • Je me demande si ce genre d’objet ne rend pas beaucoup de gens irresponsables vis-à-vis des déchets numériques ou de leur empreinte.
    Pendant des années, j’ai accumulé des variantes de Raspberry Pi sans vraie raison, et maintenant j’en ai une pile qui ne sert à rien.
    Malgré tout, je ne pense pas être dans les cas les plus extrêmes dans ce domaine.
    D’un autre côté, je me demande quand sortira le Raspberry Pi Pico 2 W avec Wi-Fi ou Bluetooth.
    Il est aussi intéressant que le RP2350 propose à la fois une paire d’Arm Cortex-M33 et une paire de Hazard3 RISC-V open hardware, avec un choix possible par logiciel ou via la configuration de la mémoire OTP intégrée.
    Deux architectures dans une seule puce, en somme : https://www.raspberrypi.com/products/rp2350/

    • On peut faire le calcul pour voir si c’est vraiment un problème préoccupant.
      Supposons que 4 millions de Pico aient été vendus et que, même si l’emballage est recyclé, tous les Pico finissent en décharge.
      D’après la fiche technique, ils mesurent 21×51 mm, avec une épaisseur d’environ 5 mm, soit à peu près 5,35 mL chacun.
      Pour 4 millions d’unités, cela fait 5 659 gallons, 756 pieds cubes, et tous les déchets électroniques de tous les Pico vendus jusqu’ici tiendraient dans un seul cube de 9,1 pieds de côté dans un garage.
      Ça ne me semble pas être un sujet qui mérite qu’on y consacre du temps, et il se peut même qu’un seul Pico faisant tourner un panneau dans un bureau de l’EPA apporte un bénéfice environnemental supérieur aux dommages causés par l’ensemble de ces déchets.
    • Si vous n’avez pas de voiture, vous n’avez sans doute pas à trop culpabiliser de gaspiller quelques milliers de cartes de ce genre.
    • Les habitants des pays développés sont pratiquement tous irresponsables en matière de déchets numériques ou d’empreinte.
      Si vous avez déjà des enfants, il n’y a presque rien que vous puissiez faire pour réduire les dégâts causés à la planète, et acheter assez de Raspberry Pi pour remplir un tiroir à bazar ne changera pas grand-chose.
      C’est la même chose pour prendre l’avion pour partir en vacances ou acheter un nouveau téléphone tous les quelques années ; les Raspberry Pi relèvent de l’erreur d’arrondi.
    • On peut aussi penser au marché de l’occasion.
      Par le passé, j’ai raté l’occasion de vendre quand même les anciens modèles étaient difficiles à trouver et chers, mais récemment j’ai revendu toutes mes anciennes cartes à des prix corrects, sans créer directement de déchets.
      Cela dit, ce qui m’inquiète davantage avec ce Pico, c’est la fonction de verrouillage du démarrage signé.
      Si elle est irréversible, un Pico pourrait rester lié pour toujours à son programme d’origine, et même un utilisateur sans mauvaise intention qui voudrait simplement tout reflasher sans lire le contenu d’origine pourrait ne pas pouvoir réutiliser une carte d’occasion pour un autre usage.
      J’aimerais en savoir plus sur la possibilité d’annuler le verrouillage du démarrage signé par un effacement complet de la flash.
    • Même si un nouveau jouet est tentant, on peut toujours choisir de repousser l’achat tant qu’on n’a pas suffisamment exploité ce qu’on possède déjà.
      C’est particulièrement vrai pour les microcontrôleurs et les cartes de développement, où le besoin de mise à niveau dépend des exigences du projet.
      Ce n’est pas comme les ordinateurs ou les appareils mobiles, où les mises à jour, les applications destinées aux utilisateurs finaux ou les systèmes d’exploitation créent artificiellement de l’obsolescence.
  • Une alimentation à découpage intégrée à la puce, c’est étonnant.
    J’ai déjà monté ce genre de chose sur un PCB, et il fallait une inductance et plusieurs composants passifs.
    Je me demande comment tout cela peut tenir dans la puce.

    • Si j’ai bien lu la fiche technique, il faut toujours une inductance externe et des composants passifs.
      Ce qui devient inutile, c’est seulement la puce d’alimentation à découpage externe.
    • Tout n’est pas intégré dans la puce.
      Il faut toujours ces composants passifs, voir la section 6.3 de la fiche technique.
    • Ils voulaient probablement dire sur la carte plutôt qu’« intégré à la puce ».
      La section « 5.4 Powerchain » de la fiche technique [0] montre un convertisseur buck-boost externe RT6150 avec une inductance externe.
      https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf
      En lisant davantage, il est indiqué que « le RP2350 comporte un régulateur à découpage intégré qui fournit 1,1 V au cœur numérique à partir de l’alimentation 3,3 V, et qui n’est pas représenté dans la Figure 7 ».
      Le PDF du schéma est beaucoup trop difficile à trouver, et comme Cadence Allegro n’est pas installé, j’ai décidé de ne pas chercher plus loin.
 
bus710 2024-08-09

Pour en dire un peu plus sur la dernière partie…
Avec l’intégration de mémoire flash dans les MCU en particulier, la gestion de l’alimentation au niveau de la puce est devenue un élément technique encore plus important. Sans une bonne gestion de l’alimentation, les cellules ne sont pas suffisamment écrites pour que la rétention de la flash soit maintenue, et je me souviens que beaucoup de fabricants de puces en ont pas mal bavé.
Mais ce nouveau produit embarque carrément une alimentation à découpage on-chip, ce qui est à la fois impressionnant et me fait me demander comment ils ont réussi à maîtriser le bruit généré à ce niveau.

 
bus710 2024-08-09

Chapless => fabless