banner
Centre d'Information
Une vaste expérience et des équipements de pointe

PCIe pour les pirates : un parcours de carte M.2

May 25, 2024

J'ai conçu quelques adaptateurs M.2 pour mon usage personnel et celui de mes amis, et après avoir trouvé ces modèles en ligne, les gens m'ont demandé des adaptateurs sur mesure. L'une de ces demandes est assez spécifique : un adaptateur qui ajoute une liaison PCIe supplémentaire à un emplacement E-key M.2, le type d'emplacement que vous verrez utilisé dans les ordinateurs portables pour les cartes WiFi.

Vous voyez, la spécification M.2 autorise deux liaisons PCIe distinctes connectées à l'emplacement E-key ; cependant, aucune carte WiFi ne l'utilise, à l'exception de certaines très anciennes compatibles WiGig, et les fabricants ont depuis longtemps renoncé à connecter un deuxième lien. Néanmoins, certaines cartes, comme l'accélérateur double IA Google Coral M.2 E-key et l'uSDR récemment annoncé, nécessitent effectivement le deuxième lien – sinon, seule la moitié de leur capacité est disponible.

On ne sait pas pourquoi Google et WaveletSDR ont conçu une prise de clé électronique à double liaison, car cela est rare ; Pour la carte Google, de nombreuses personnes se plaignent du fait que la carte qu'ils ont achetée ne fonctionne tout simplement pas pleinement. En théorie, tout ce que vous devez faire pour résoudre une telle situation est d'obtenir une deuxième liaison PCIe quelque part, puis de la connecter au socket - et un moyen idéal de le faire est d'obtenir une puce de commutateur PCIe. Vous perdrez une partie de la bande passante car la connexion PCIe de liaison montante du commutateur ne peut aller que très vite ; pour des choses comme cet accélérateur d'IA, ce n'est pas vraiment un problème puisque l'essentiel est de rendre le deuxième appareil accessible. Pour le DTS susmentionné, cela pourrait s'avérer inutile, ou vous pourriez en gagner mais en perdre - vous ne pouvez pas le savoir tant que vous n'avez pas essayé !

C'est un problème convivial pour les hackers que nous pouvons résoudre pour nous amuser et nous permettre d'apprendre ! Avec une puce de commutateur PCIe suffisamment petite, nous pourrions créer un PCB de carte M.2 doté également d'un support M.2, en plaçant un commutateur PCIe entre les deux pour diviser la liaison PCIe 1x entrante en deux liaisons 1x sortantes.

De plus, ce problème a même déjà été résolu. Cet adaptateur précis a déjà été fabriqué par quelqu'un en ligne – cependant, il n'est décidément pas open source et son créateur n'a jamais commencé à le vendre, invoquant un manque d'intérêt. L'adaptateur que nous concevons aujourd'hui sera entièrement et correctement ouvert - n'importe qui pourra fabriquer son propre adaptateur comme celui-ci s'il en a besoin, en tirer des leçons ou le remixer dans quelque chose d'autre.

Du côté du commutateur PCIe, j'ai mentionné la dernière fois une petite puce de commutateur PCIe bon marché et sous-explorée – l'ASM1182e, qui est capable de créer deux liaisons PCIe x1 à partir d'une seule. Il est facilement disponible sur Aliexpress, utilisé sur de nombreuses cartes de séparation PCIe en provenance de Chine, coûte 6 $ après expédition et semble nécessiter peu d'entretien – petit nombre de composants externes, fonctionnement autonome, câblage simple. Malheureusement, nous n'avons tout simplement pas de fiche technique que je pourrais trouver. Cependant, il existe de nombreuses informations que nous pouvons utiliser pour créer nos propres cartes, et je vais vous montrer comment vous pourriez même concevoir des puces. si vous n'avez pas leurs fiches techniques.

Aujourd'hui, nous résolvons un problème de longue date pour une niche matérielle, en créant un adaptateur M.2 avec trois liaisons PCIe au total et en procédant à la rétro-ingénierie d'une puce de commutateur PCIe sans aucune fiche technique disponible. J'aimerais également créer ce tableau dense comme un défi et vous montrer ce qu'il faut, d'une page schématique à une carte assemblée.

J'utiliserai l'un de mes modèles d'adaptateur M.2 comme base pour cette conception – en particulier, un adaptateur clé A+E vers clé M, vous permettant d'insérer un SSD dans l'emplacement pour carte WiFi d'un ordinateur portable. Celle-ci est une carte à deux couches parce que cela pourrait l'être, mais aujourd'hui, deux couches ne suffiront pas – cette conception aura besoin de quatre couches, car le routage correct des liaisons PCIe et la mise à la terre partout deviendraient bien trop intenses autrement ! Si vous pouvez réutiliser le design de quelqu'un d'autre pour vos objectifs, faites-le absolument : celui-ci a testé des symboles et des empreintes, ce qui signifie qu'il y a moins de variables à revérifier ! Par conséquent, nous n’avons pas besoin de concevoir une carte M.2 à partir de zéro.

Il en va de même pour le schéma de référence à partir duquel nous pouvons effectuer une rétro-ingénierie de l'ASM1182 – en particulier, il s'agit d'un ordinateur portable produit en série. Aujourd'hui, nous avons de la chance : Clevo est l'une des rares entreprises à avoir (ou avait) pour tradition de publier des schémas pour ses ordinateurs portables, probablement aidée par le fait que, contrairement à tous les autres fabricants d'ordinateurs portables, elle conçoit ses propres cartes mères. La seule autre société d'ordinateurs portables que j'ai vue publier des schémas est Framework, dont la carte mère est sous-traitée (la norme dans l'espace des ordinateurs portables), et la leur est partielle avec tous les éléments éventuellement NDA supprimés. Il n'y a aucune marque de confidentialité d'aucune sorte sur le schéma que nous recherchons aujourd'hui – néanmoins, je ne fournis pas de lien, mais c'est sans aucun doute le premier résultat dans votre moteur de recherche préféré, surtout si vous recherchez P75xZM_ESM.pdf.