Brevet FR2966263A1 — publié le 20120420

La présente invention appartient au domaine des circuits électroniques, et concerne plus particulièrement le contrôle de circuits intégrés à microprocesseur. Un microcontrôleur est un exemple de circuit intégré programmable comportant, outre un ou plusieurs microprocesseurs, des mémoires (flash, ROM, EEPROM, RAM, etc.), des périphériques d'interface, etc. Au démarrage, un microcontrôleur exécute un programme d'amorçage, constitué d'instructions de code aptes à être exécutées par un microprocesseur. Un tel programme de d'amorçage est mémorisé dans un mémoire non volatile, par exemple une mémoire ROM (acronyme anglais pour « Read Only Memory »), et permet de lancer par défaut l'exécution d'un programme général plus complexe adapté à réaliser les différentes fonctions prévues du microcontrôleur. En particulier dans les systèmes embarqués, le microcontrôleur peut également être configuré pour exécuter un programme de chargement d'un programme spécifique. Le programme spécifique permet notamment de modifier le programme général en modifiant le contenu d'une mémoire non-volatile dans laquelle est mémorisé tout ou partie dudit programme général. Le mode dans lequel ledit microcontrôleur exécute le programme de chargement (connu sous le nom de « bootstrap loader » dans la littérature anglo-saxonne) est ci-après désigné par « mode bootstrap ». L'activation du mode bootstrap se fait par polarisation de ports (broches, pattes, etc.) du microcontrôleur, c'est-à-dire en appliquant des signaux prédéterminés sur lesdits ports, qui seront interprétés par le microcontrôleur comme une commande d'activation du mode bootstrap. Ces ports sont le plus souvent dédiés à l'activation du mode bootstrap. Si le mode bootstrap est activé fréquemment en phase d'intégration / validation du microcontrôleur, ce n'est plus le cas lorsque ledit microcontrôleur est inclus dans un produit fini, par exemple un calculateur de véhicule automobile. Le mode bootstrap n'est alors activé qu'en cas de panne et de retour du calculateur chez le fabricant pour analyse de panne. On comprend donc que, en dédiant certains ports à l'activation du mode bootstrap, on obtient une utilisation peu efficace des ports du microcontrôleur, ce qui est d'autant plus pénalisant que le nombre de ports d'un microcontrôleur est généralement limité. II est connu de prévoir des ports partagés mis en oeuvre à la fois pour l'activation 35 du mode bootstrap et pour des entrées / sorties du microcontrôleur. Le problème d'une telle approche réside dans le fait qu'il est très complexe en pratique de faire cohabiter sur un même port à la fois l'activation du mode bootstrap et des entrées / sorties du microcontrôleur. D'une part, les signaux pouvant être reçus sur de tels ports peuvent avoir des caractéristiques (tension, fréquence d'horloge, etc.) très différentes suivant qu'il s'agisse de signaux d'activation du mode bootstrap ou de signaux d'entrées / sorties, de sorte que le traitement par le microcontrôleur de ces signaux s'avère complexe et nécessite un grand nombre de circuits logiques. D'autre part, la cohabitation avec des équipements, qui accèdent à ces ports en tant qu'entrées / sorties du microcontrôleur, pose le problème de l'isolation électrique de ces équipements, ainsi que celui d'éviter que des signaux appliqués par ces équipements sur ces ports soient interprétés par erreur comme une activation du mode bootstrap. En effet, dans le cas d'un véhicule automobile, une activation par erreur du mode bootstrap pourrait faire perdre le contrôle dudit véhicule automobile à ses passagers. La présente invention a pour objectif notamment de réduire le nombre de ports nécessaires à l'activation du mode bootstrap, tout en limitant les modifications à apporter aux circuits intégrés existants. Selon un premier aspect, la présente invention concerne un procédé de contrôle d'un circuit intégré comportant un microprocesseur. Le circuit intégré est configuré pour exécuter par défaut un programme général. Par « contrôle du circuit intégré » on entend une activation du mode bootstrap et un chargement d'un programme spécifique à exécuter. Le procédé de contrôle comporte : - une étape d'envoi d'au moins un message d'activation du mode bootstrap à un module de test du circuit intégré par l'intermédiaire d'un bus de test, - une étape d'activation du mode bootstrap du circuit intégré, exécutée par le module de test du circuit intégré, - une étape de chargement du programme spécifique par l'intermédiaire d'un bus de communication différent du bus de test. Suivant des modes particuliers de mise en oeuvre, le procédé comporte l'une ou 30 plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - le circuit intégré étant adapté à charger le programme spécifique par l'intermédiaire de plusieurs bus de communication, l'au moins un message comporte un identifiant du bus de communication à utiliser au cours de 35 l'étape de chargement, - l'activation du mode bootstrap est exécutée par une fonction non verrouillable du module de test, une fonction verrouillable étant une fonction dont l'exécution peut être bloquée par configuration du module de test, - le procédé comporte une étape d'authentification préalable à tout échange de données avec le module de test, - le module de test est un module JTAG. Selon un second aspect, la présente invention concerne un circuit intégré comportant un microprocesseur. Le circuit intégré est configuré pour exécuter par défaut un programme général et pour charger un programme spécifique à exécuter lorsqu'il est dans un mode bootstrap. Le circuit intégré comporte un module de test adapté à activer le mode bootstrap lorsqu'il reçoit au moins un message d'activation dudit mode bootstrap sur un bus de test. Le circuit intégré est configuré pour charger le programme de configuration par l'intermédiaire d'un bus de communication différent du bus de test. Suivant des modes particuliers de réalisation, le circuit intégré comporte l'une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - le module de test est un module JTAG, - l'au moins un message d'activation comporte une instruction de contrôle JTAG spécifique. Selon un troisième aspect, la présente invention concerne un calculateur comportant au moins un circuit intégré selon un mode quelconque de réalisation de l'invention, et comporte une unité d'adaptation entre le bus de test et un bus d'activation. De préférence, le bus d'adaptation comporte moins de pistes que le bus de test. L'invention sera mieux comprise à la lecture de la description suivante, donnée à 25 titre d'exemple nullement limitatif, et faite en se référant aux figures qui représentent : - Figure 1 : une représentation schématique d'un exemple de réalisation intégrant un module JTAG selon l'invention, - Figure 2a : une représentation schématique d'un circuit intégré programmable selon l'art antérieur, 30 - Figure 2b : une représentation schématique d'un circuit intégré programmable selon l'invention, - Figure 3 : un diagramme illustrant les principales étapes d'un procédé de contrôle d'un circuit intégré selon l'invention, - Figure 4 : une représentation schématique d'un mode préféré de réalisation 35 d'un calculateur selon l'invention. La présente invention concerne un procédé 50 de contrôle d'un circuit intégré programmable, ainsi qu'un circuit intégré 20 programmable et un calculateur 30, comportant ce circuit intégré programmable. Par « circuit intégré programmable », on entend un circuit intégré, comportant un ou plusieurs microprocesseurs, qui, lorsque son mode bootstrap est activé, exécute un programme de chargement (« bootstrap loader ») d'un programme spécifique, différent du programme général. Au sens de l'invention, le contrôle d'un circuit intégré correspond à l'ensemble des opérations à effectuer pour qu'un circuit intégré exécute un programme spécifique (à charger en mémoire) au lieu du programme général. Le programme spécifique peut être mis en oeuvre pour effectuer diverses tâches, y compris modifier tout ou partie du programme général par modification d'une mémoire non-volatile dans laquelle est mémorisé l'ensemble de codes d'instructions constituant ledit programme général. Le programme spécifique peut également être mis en ceuvre pour modifier un programme de configuration d'un circuit logique programmable (FPGA, PLD, EPLD, etc.) qui peut être externe au circuit intégré programmable. L'invention trouve une application particulièrement avantageuse, bien que nullement limitative, dans les circuits intégrés distribués à grande échelle (calculateurs de véhicules automobiles, terminaux de télécommunications mobiles, etc.) pour lesquels les contraintes de coût, de robustesse et d'optimisation des ressources (en particulier des ports) sont très importantes. Selon l'invention, l'activation du mode bootstrap d'un circuit intégré 20 s'effectue en mettant en ceuvre un module 200 de test du circuit intégré 20. La plupart des circuits intégrés sont de nos jours dotés d'au moins un module de test pour vérifier le fonctionnement desdits circuits intégrés au cours de l'intégration / validation desdits circuits intégrés. Les modules de test sont généralement conservés dans le circuit intégré après validation. D'une part, cela permet d'éviter l'introduction de modifications au circuit intégré après l'avoir validé et, d'autre part, cela permet de conserver la possibilité de tester le circuit intégré en cas de panne et de retour chez le fabricant pour analyse. De nombreux exemples de tels modules de test existent. On peut citer à titre d'exemples les modules de test suivants : JTAG, BDM, BSC, OCDS, DAP, NEXUS, etc. Dans un mode préféré de réalisation du circuit intégré 20 et de mise en oeuvre du procédé 50 de contrôle, le module 200 de test est un module JTAG (de l'anglais « Joint Test Action Group ») c'est-à-dire un module compatible avec la norme IEEE 1149 « Standard Test Access Port and Boundary Scan Architecture », décrite notamment dans la spécification IEEE Std. 1149.1-1990. Dans la suite de la description, on se place de manière non limitative dans le cas où le module 200 de test est un module 200 JTAG. Rien n'exclut, suivant d'autres exemples non détaillés, de considérer d'autres types de modules de test. La figure 1 représente schématiquement un exemple non limitatif de réalisation 5 d'un module 200 JTAG modifié selon l'invention. De manière connue, un circuit intégré comportant un module JTAG est muni de plusieurs ports dédiés au test et couplés au module JTAG. En pratique, les circuits intégrés se présentent sous la forme d'une puce électronique montée dans un boîtier. La puce électronique est en outre couplée 10 électriquement à des broches ou pattes (« pins » dans la littérature anglo-saxonne) agencées à l'extérieur dudit boîtier. Dans le contexte de l'invention, on entend par « port » une broche ou une patte, ou tout autre type de contact électrique adapté. Dans le cas d'un module 200 JTAG, le circuit intégré 20 comporte généralement 4 à 5 ports dédiés aux fonctions de test, reliés à un bus 310 de test. Les 15 ports associés à un module 200 JTAG sont les suivants : - TDI (« Test Data Input ») : entrée des données, - TDO (« Test Data Output ») : sortie des données, - TMS (« Test Mode Select ») : sélection du mode de test, - TCK (« Test CIocK ») : horloge, 20 - TRST (« Test ReSeT », optionnel) : réinitialisation. Le rôle et le mode d'utilisation de chacun de ces ports est considéré comme connu de l'homme de l'art, et est en outre détaillé dans la spécification IEEE Std. 1149.1-1990. A des fins de lisibilité des figures, seuls les ports TDI, TDO et TMS y sont représentés. 25 Tel que représenté sur la figure 1, un module 200 JTAG comporte notamment un machine à états 201, c'est-à-dire un circuit logique synchrone adapté à contrôler le fonctionnement dudit module JTAG. Le port d'entrée TDI est couplé à un circuit démultiplexeur 202, qui sépare les signaux reçus sur le port TDI. Une instruction de contrôle est transmise à un registre 30 d'instruction 203, et des données sont transmises à un autre circuit démultiplexeur 204. Les données sont routées vers des registres de données associés à la valeur de l'instruction de contrôle dans le registre d'instruction 203. Par exemple, la norme IEEE 1149 prévoit des registres de données 205 et 206 connus sous les noms respectivement de « BYPASS » (associé à l'instruction de contrôle 35 « BYPASS ») et « IDCODE » (associé à l'instruction de contrôle « IDCODE »), considérés comme connus de l'homme de l'art. La norme IEEE 1149 prévoit également des registres de données associés à des fonctions de test, comme par exemple une fonction 207 connue sous le nom de « boundary scan », également considérée comme connue de l'homme de l'art. La norme IEEE 1149 prévoit également la possibilité, pour chaque constructeur, de définir ses propres instructions de contrôle et les fonctions de test associées. Selon l'invention, le module 200 JTAG comporte une nouvelle fonction 208 de test pour l'activation du mode bootstrap du circuit intégré 20. Dans l'exemple représenté, et de manière conventionnelle, les sorties des différentes fonctions de test et registres sont alors multiplexées au moyen d'un circuit multiplexeur 209, elles-mêmes multiplexées avec l'instruction de contrôle au moyen d'un autre circuit multiplexeur 210. La sortie du circuit multiplexeur 210 est par exemple reliée au port de sortie TDO. La figure 2a représente schématiquement un circuit intégré 10 selon l'art antérieur. Le circuit intégré 10 comporte des ports, désignés par P0, P1 et P2, dédiés à l'activation du mode bootstrap. Les ports P0, P1, P2 constituent, dans l'art antérieur, une interface d'activation du mode bootstrap. Le circuit intégré 10 comporte un module 120 d'activation du mode bootstrap, couplé aux ports P0, P1, P2. Il comporte également un module 100 de test, un module JTAG dans l'exemple représenté, couplé aux ports TDI, TDO et TMS (qui constituent une interface de test du circuit intégré 10). La figure 2b représente schématiquement le circuit intégré 20 intégrant un module 200 JTAG modifié selon l'invention, tel qu'illustré par la figure 1. Le circuit intégré 20 comporte un module 220 d'activation du mode bootstrap dudit circuit intégré, couplé au module 200 JTAG et commandé par la fonction 208 d'activation dudit module 200 JTAG. Le module 220 d'activation du mode bootstrap remplit sensiblement les mêmes fonctions que le module 120 d'activation du mode bootstrap selon l'art antérieur. Tel qu'illustré sur la figure 213, les ports P0, P1 et P2 sont disponibles pour ajouter d'autres fonctionnalités au circuit intégré 20, l'interface d'activation du mode bootstrap étant à présent l'interface de test (ports TDI, TDO, TMS, etc.) du circuit intégré 20. Le circuit intégré 20 est en outre configuré pour, lorsque le mode bootstrap a été activé par la fonction 208 d'activation ajoutée au module 200 JTAG, charger le programme spécifique par l'intermédiaire d'un bus 320 de communication différent du bus 310 de test. De la sorte, le module 200 JTAG n'est utilisé que pour l'activation du mode bootstrap et pas pour le chargement du programme spécifique. Le bus 320 de communication peut être de tout type adapté au chargement d'un programme spécifique, et dépend des types de bus de communication supportés par le circuit intégré 20. On peut citer, à titre d'exemples, les bus de communication de type série synchrone / asynchrone, CAN (« Controller-Ares Network »), FlexRay, Ethernet, etc. La mise en ceuvre d'un bus 320 de communication différent du bus 310 de test présente l'avantage de limiter les modifications à apporter aux modules JTAG existants, dans la mesure où le module 200 JTAG n'est pas mis en ceuvre pour charger le programme spécifique. En outre, cela permet également de limiter les modifications à apporter aux modules d'activation du mode bootstrap existants, dans la mesure où le chargement du programme spécifique peut continuer à se faire par l'intermédiaire du même bus de communication qu'auparavant. Seule l'activation du mode bootstrap est faite via l'interface de test (ports TDI, TDO, TMS, etc.) afin de libérer les ports P0, P1 et P3. La figure 3 représente schématiquement les principales étapes d'un procédé 50 15 de contrôle d'un circuit intégré 20 selon l'invention, lesquelles sont : - une étape 51 d'envoi d'au moins un message d'activation du mode bootstrap au module 200 JTAG du circuit intégré 20 par l'intermédiaire du bus 310 de test, - une étape 52 d'activation, par la fonction 208 d'activation du module 200 20 JTAG, du mode bootstrap du circuit intégré 20, - une étape 53 de chargement du programme spécifique par l'intermédiaire d'un bus 320 de communication différent du bus 310 de test. L'au moins un message d'activation du mode bootstrap comprend notamment une instruction de contrôle prédéterminée, associée à la fonction 208 d'activation du 25 mode bootstrap, introduite dans le module 200 JTAG. De préférence, le programme de chargement, exécuté lorsque le circuit intégré 20 est en mode bootstrap, est adapté à charger le programme spécifique par l'intermédiaire du plusieurs bus 320 de communication différents (série synchrone / asynchrone, CAN, FlexRay, Ethernet, etc.). Dans ce cas, l'au moins un 30 message comporte un identifiant du bus 320 de communication à utiliser, parmi tous les bus de communication disponibles, au cours de l'étape 53 de chargement du programme spécifique, et la fonction 208 active le mode bootstrap pour un chargement via le bus 320 de communication sélectionné. De préférence, la fonction 208 d'activation, introduite dans le module 200 JTAG, 35 est une fonction non verrouillable. Il est connu de prévoir que certaines fonctions de test d'un module 200 JTAG seront verrouillées une fois le circuit intégré monté dans le produit final (par exemple un calculateur de véhicule automobile). Par « fonction de test verrouillée », on entend que le module 200 JTAG est configuré, dans le circuit intégré 20 du produit final, de sorte à ne plus pouvoir exécuter ladite fonction de test verrouillée. Les mécanismes de verrouillage de fonctions de test d'un module JTAG sont considérés comme connus de l'homme de l'art. En cas de panne du circuit intégré 20 dans le produit final, il peut s'avérer nécessaire d'avoir à reprogrammer ledit circuit intégré, de sorte que la fonction 208 d'activation du mode bootstrap doit pouvoir être exécutée y compris dans le produit final. On comprend donc qu'il est avantageux d'avoir une fonction 208 d'activation non 10 verrouillable. La figure 4 représente un exemple de réalisation d'un calculateur 30 comportant une pluralité de circuits intégrés 20 montés sur un circuit imprimé 300. Les circuits intégrés 20 sont reliés au bus 310 de test, et comportent chacun un module 200 JTAG modifié selon l'invention. En outre, lesdits circuits intégrés 20 sont 15 reliés à au moins un bus 320 de communication. De préférence, l'au moins un message, transmis au cours de l'étape 51 d'envoi du procédé 50 de contrôle, comporte un identifiant du circuit intégré 20 dont le mode bootstrap doit être activé. On comprend donc qu'il est possible d'activer séparément le mode bootstrap de chaque circuit intégré 20 comportant un module 200 JTAG modifié, 20 par l'intermédiaire du même bus 310 de test. Le chargement du programme spécifique pour un circuit intégré s'effectue par l'intermédiaire d'un bus 320 de communication différent du bus 310 de test. Dans un mode préféré de réalisation, le calculateur 30 comporte une unité d'adaptation 40 reliée au bus 310 de test. Ce mode préféré de réalisation est illustré par la 25 figure 4 dans le cas d'un calculateur 30 comportant trois circuits intégrés 20 selon l'invention, mais on comprend que ce mode de réalisation est applicable à un nombre quelconque de tels circuits intégrés 20. L'unité d'adaptation 40 est par exemple un microcontrôleur et / ou un circuit logique programmable. L'unité d'adaptation 40 est configurée pour effectuer une 30 adaptation entre, d'une part, le bus 310 de test et, d'autre part, un bus 330 d'activation comportant moins de pistes que le bus 310 de test. Le bus 310 de test, pour un module 200 JTAG, comporte généralement 4 à 5 pistes, reliées respectivement aux ports TDI, TDO, TMS, TCK, et TRST. Le bus 330 d'activation est relié à connecteur 340. Le bus 330 d'activation est de 35 préférence un bus de communication comportant une seule piste, tel que par exemple un bus série asynchrone, de sorte que le connecteur 340 peut ne comporter qu'un seul port. Le bus 320 de communication est relié à un connecteur 350 qui est, dans l'exemple représenté, distinct du connecteur 340. Rien n'exclut, suivant d'autres exemples non représentés, d'avoir un même connecteur pour le bus 310 de test et le bus 320 de communication. L'unité d'adaptation 40 est configurée pour échanger des données, sur le bus 310 de test, avec le module 200 JTAG de chaque circuit intégré 20 en mettant en oeuvre le protocole de communication JTAG, défini par exemple par la spécification IEEE Std. 1149.1-1990. L'unité d'adaptation 40 est configurée, en outre, pour échanger des données avec un équipement (non représenté sur les figures) relié au connecteur 340, en mettant en oeuvre un protocole de communication différent du protocole de communication JTAG. L'unité d'adaptation 40 réalise donc une adaptation à la fois matérielle et fonctionnelle entre le bus 330 d'activation et le bus 310 de test. En effet, l'unité d'adaptation 40 assure notamment la conversion entre, d'une part, des signaux mis en forme conformément au protocole de communication utilisé sur le bus 330 d'activation et d'autre part, des signaux mis en forme conformément au protocole de communication JTAG. Un tel calculateur 30, intégrant une unité d'adaptation 40, présente l'avantage de permettre l'activation du mode bootstrap par l'intermédiaire d'un bus 330 d'activation 20' comportant moins de pistes que le bus 310 de test. Cette réduction du nombre de pistes s'accompagne d'une réduction du nombre de ports (ou contacts électriques) du connecteur 340. Dans le cas notamment d'un calculateur de véhicule automobile, le calculateur 30 comporte généralement un boîtier fermé étanche, non représenté sur les 25 figures, à l'intérieur duquel est agencé le circuit imprimé 300. Le boîtier du calculateur 30 comporte également des moyens de connexion externes, qui sont reliés à des connecteurs du circuit imprimé 300. Le nombre de ports (contacts électriques) des moyens de connexion externes est un facteur important car, dans le cas d'un calculateur 30 de véhicule automobile, 30 lesdits moyens de connexion doivent pouvoir supporter des contraintes importantes, notamment de température et d'humidité. L'ajout d'un port sur ces moyens de connexion externes s'accompagne d'une augmentation non négligeable du coût de fabrication. On comprend donc que le nombre de ports doit être réduit au maximum. On comprend que, selon l'invention, l'utilisation du module 200 JTAG pour 35 activer le mode bootstrap d'un circuit intégré 20 permet de libérer des ports de ce circuit intégré 20. Toutefois, dans le cas d'un calculateur 30 comportant un boîtier fermé étanche, il faudrait alors ajouter 4 à 5 ports aux moyens de connexion externes, reliés respectivement aux ports TDI, TDO, TMS, TCK, et TRST. Du fait de l'unité d'adaptation 40, le nombre de ports des moyens de connexion externes, pour activer le mode bootstrap depuis l'extérieur du boîtier fermé du calculateur 30, peut être réduit à un. Il est à noter que les moyens de connexion externes sont reliés à au moins un bus 320 de communication du calculateur 30 pour le chargement du programme spécifique. Dans le cas du calculateur 30 de la figure 4, les moyens de connexion externes sont par exemple reliés au connecteur 340 et au connecteur 350. Dans un mode particulier de réalisation, le protocole de communication utilisé sur le bus 330 d'activation est un protocole sécurisé, nécessitant une authentification préalable avant tout échange de données avec le module 200 JTAG. L'authentification peut mettre en oeuvre tout type d'algorithme d'authentification connu de l'homme de l'art. Le cas échéant, le procédé 50 de contrôle comporte une étape, préalable à tout échange de données avec le module 200 JTAG, d'authentification de l'émetteur de messages reçus par l'unité d'adaptation 40. De préférence, les données échangées sur le bus 330 d'activation, sont encryptées une fois l'authentification réussie. L'encryption peut mettre en oeuvre tout type d'algorithme d'encryption connu de l'homme de l'art. L'authentification et, le cas échéant, l'encryption, permettent d'empêcher un accès au module 200 JTAG à une personne non autorisée. En outre, cela permet de limiter les risques d'activation par erreur du mode bootstrap d'un circuit intégré 20 relié à l'unité d'adaptation 40 par l'intermédiaire du bus 310 de test. REVENDICATIONS1. Procédé (50) de contrôle d'un circuit intégré (20) comportant un microprocesseur, dans lequel le circuit intégré (20) est configuré pour exécuter par défaut un programme général, ledit circuit intégré étant contrôlé par activation d'un mode particulier de fonctionnement du circuit intégré, dit « mode bootstrap », et chargement d'un programme spécifique à exécuter, caractérisé en ce que le procédé (50) comporte : - une étape (51) d'envoi d'au moins un message d'activation du mode bootstrap à un module (200) de test du circuit intégré (20) par l'intermédiaire d'un bus (310) de test, - une étape (52) d'activation du mode bootstrap du circuit intégré (20), 10 exécutée par le module (200) de test du circuit intégré (20), - une étape (53) de chargement du programme spécifique par l'intermédiaire d'un bus (320) de communication différent du bus (310) de test. 2. Procédé (50) selon la revendication 1, caractérisé en ce que, le circuit intégré (20) étant adapté à charger le programme spécifique par l'intermédiaire de 15 plusieurs bus de communication, l'au moins un message comporte un identifiant du bus (320) de communication à utiliser au cours de l'étape (53) de chargement du programme spécifique. 3. Procédé (50) selon l'une des revendications 1 à 2, caractérisé en ce que l'activation du mode bootstrap est exécutée par une fonction (208) non verrouillable du 20 module (200) de test, une fonction verrouillable étant une fonction dont l'exécution peut être bloquée par configuration du module (200) de test. 4. Procédé (50) selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape d'authentification préalable à tout échange de données avec le module (200) de test. 25 5. Procédé (50) selon l'une des revendications précédentes, caractérisé en ce que le module (200) de test est un module JTAG. 6. Circuit intégré (20) comportant un microprocesseur, ledit circuit intégré étant configuré pour exécuter par défaut un programme général et pour charger un programme spécifique à exécuter lorsqu'il est dans un mode de fonctionnement, dit « mode 30 bootstrap », caractérisé en ce que : - le circuit intégré (20) comporte un module (200) de test adapté à activer le mode bootstrap lorsqu'il reçoit au moins un message d'activation dudit mode bootstrap sur un bus (310) de test, - le circuit intégré (20) est configuré pour charger le programme de 35 configuration par l'intermédiaire d'un bus (320) de communication différent du bus (310) de test. 7. Circuit intégré (20) selon la revendication 6, caractérisé en ce que le module (200) de test est un module JTAG. 8. Circuit intégré (20) selon la revendication 7, caractérisé en ce que l'au moins un message d'activation comporte une instruction de contrôle JTAG spécifique. 9. Calculateur (30) comportant au moins un circuit intégré (20) conforme à l'une des revendications 6 à 8, caractérisé en ce que qu'il comporte une unité d'adaptation (40) entre le bus (310) de test et un bus (330) d'activation. 10. Calculateur (30) selon la revendication 9, caractérisé en ce que le bus (330) d'adaptation comporte moins de pistes que le bus (310) de test.