 Trident. Le concept. Trident feature est optionnel sur le ARM V8 MCo. Le co-run en secure state peut accéder à l'accessibilité, secure et non secure information. Quand on évoque, le système de default commence en secure state. Quand on n'est pas évoqué, le système est toujours en non secure state. La division de secure et non secure word est membre map et la transition est place automatiquement sans besoin d'un monitor secure exceptionnel en l'oeil, alors qu'il s'agit d'optimiser le changement d'overhead. En fait, c'est un état additionnel dans le ARM V8 M. Nous avons le state secure et non secure. Le système commence toujours en secure state quand il est activé. La division de secure et non secure membre map est faite dans le unité de secure attribution. Vous devez déjà savoir la division entre le mode on-leur et le mode suéne. Et maintenant, c'est dupliqué dans le monde secure et le monde non secure. Les autres features ? 4 stacks et 4 stack pointer registers. Nous avons le check de la check du limiter de hardware stack. La espèce de membre est partitionnée en secours et non secours, utilisant l'ambiance programmable comme attribution de sécurité unique, aussi appelée SIU, ou fixe de la configuration de sécurité externelle. La division exceptionnelle en ligne hardware s'évoit automatiquement puis s'évoit le state secure en switchant au state non-secours exceptionnel. La division non-secours s'évoit le code restructé pour la location de secure dans la instruction de sécurité secure et la division non-secours en ligne. Mais je vais vous donner des détails sur cet aspect juste après. Nous avons 3 différents attributes dans le SIU et l'IDIU. L'IDIU est un unité d'implementation et d'attribution défini. Je dirai par défaut sur le hardware. Et le SIU est un unité d'attribution sécuritaire. Il sera configuré au début du code. Nous pouvons définir 3 types de régions. Secours, collables non-secours et non-secours. Nous avons une application non-secours et l'application non-secours n'est pas appelée directement à la sécurité secure. Il faut appeler quelque chose dans la région non-secours collable et puis, nous pouvons brancher de cette région sur le SIU et avoir l'accès à la sécurité secure. Puis, nous devons retourner à la zone non-secours ou de la zone non-secours collable directement à la zone non-secours. La zone non-secours programmée est appelée d'une fonction sécuritaire. De la zone non-secours, nous sommes juste branchés à une fonction non-secours collable. La première instruction exécutée sera la gate de sécurité. Puis, nous serons branchés à la zone non-secours. Et sur cette finie, nous avons un branch à la zone non-secours. Nous allons voir comment nous configurons cela. Comme je l'ai dit, le SIU est statique. Il définit la zone non-secours collable et la région non-secours examinée de 64 Mb de granularité. Le SIU peut définir à 8 régions et l'a été utilisé pour évoquer la zone non-secours afin d'évoquer la zone non-secours et de confirmer la zone non-secours. Donc, ici, ce qui est intéressant est la zone non-secours et la zone non-secours. En fait, les deux régions vont adresser exactement la même mémoire physique. Mais ici, nous avons la zone non-secours et la zone non-secours. Cela sera vraiment important et nous allons voir comment nous pouvons accéder La zone non-secours est statique et je dirais que c'est différent de la zone non-secours ou de la zone non-secours. Vous devez configurer le SIU pendant la zone non-secours. La zone non-secours est de la zone non-secours et la zone non-secours est collable. Nous sommes dans la zone non-secours. Dans la zone non-secours, cela dit que c'est la zone non-secours et non-secours. La zone non-secours est confirmée que la zone non-secours est de la zone non-secours et que la zone non-secours est de la zone non-secours. Nous avons donc la zone non-secours ici, la zone non-secours ici, les alias dans la zone non-secours et les autres. Franchement, ce n'est pas facile de comprendre. Donc, je vais essayer de vous expliquer d'une autre façon. Ici, je vous donne un extrait de la mémoire référence de la zone L5. Cela vous montre la zone non-secours par défaut. Et la zone L5, qui est typiquement faite. Ensuite, vous avez la fin de l'attribution. Ce qui est intéressant ici, nous pouvons voir le code flash sur la zone L5 qui est, je dirais, la zone non-secours et la zone non-secours. Nous avons le même symbole pour l'extrême mémoire, la zone L5, la zone référence. Donc, la configuration n'est pas si facile de comprendre. Nous allons prendre un exemple. Le objectif est d'avoir cette mémoire physique avec une zone non-secours et la zone non-secours. Donc, cette configuration qu'on veut atteindre. Alors, nous savons que cette mémoire est alias dans une zone non-secours et non-secours. Et par défaut, vous pouvez le voir dans l'arrêt prévu, la zone non-secours avec la zone adhéue. Et la zone non-secours de l'adresse est consiguée comme zone non-secours. Ok? Nous allons ensuite configurer la zone adhéue. La zone de défaut, tout est insuciable. Donc, nous allons juste définir quelle zone sera de l'autre côté. Donc, dans la zone non-secours nous allons définir une vision pour dire que la zone non-secours est une zone décollable. Donc, ça veut dire que la région entre C et C3E sera condamnée. Et maintenant, dans les alias non-secours nous allons juste dire que cette région n'est pas sécurisée. Et le résultat de cette configuration d'adresse adhéue et de l'adresse adhéue et de cette. Donc, en regardant Cette partie est protégée ou sécurisée. Cette partie est non-sacrée. Ici, c'est sécurisé, non-sacrée, et puis c'était sécurisé. Mais c'était notre objectif, un événement sécurisé. Nous allons voir à quel point nous avons besoin de l'adresse quand nous voulons accéder à cette région. Donc, l'arrière physique, les mémories physiques. Et puis, selon le STAT CPU, nous allons voir si nous pouvons accéder ou pas dans l'arrière sécurisée ou non-sacrée. Commençons avec l'arrière sécurisée et essayons d'accéder à l'arrière sécurisée. Si le STAT CPU est dans le mode sécurisé, je peux accéder à l'arrière sécurisé. Si je suis dans le mode non-sacrée, je ne peux pas. Maintenant, si on essaie de s'occuper de l'arrière sécurisée de l'arrière sécurisée. Le mode sécurisé et le mode non-sacrée peuvent accéder. Donc, par cet adresse, on peut s'occuper de l'arrière sécurisée de l'arrière sécurisée. Puis, si le mode non-sacrée est dans le mode sécurisé, on ne peut pas accéder à la région. Si nous parlons maintenant des ranges non-sacrées de l'arrière sécurisée. Dans le mode no-sacrée et la mode non-sacrérée, on ne peut pas accéder à l'arrière sécurisée. On n'a pas accès à l'arrière sécurisée. seulement le Secure Rack peut être accès par le Secure Mode et le Non Secure Mode. J'espère que cette animation vous aide à comprendre ce qu'on va configurer dans l'SIU et après, quel range d'adresse nous devons utiliser pour accéder aux différentes régions. Très zone activation, donc c'est terminé grâce à l'option « Bye » « Till then » La configuration de l'SIU doit être faite au bout de temps et durant la zone de main, je vais vous montrer où elle est située dans notre projet. Nous avons une feature additionnelle « Flash Security » associée à Très Zone. Nous avons un « Secure Water Mac » basé sur l'option « Bye » qui définit l'arrière secure et aussi l'arrière de l'HDP. Nous avons un « Secure » et « Non Secure » bloc basé à l'arrière qui pourrait être configuré après la récente. Et ensuite, nous avons une protection additionnelle de l'HDP qui est l'HDP Lever 0.5. Let's detailz ces différentes features. La protection de l'arrière secure et de l'arrière de l'HDP est une partie de l'arrière de l'HDP qui peut être protégée pour obtenir un accesse non secure et de l'arrière de l'HDP. Donc je dirais additionnellement à l'SIU que nous allons définir une région dans l'arrière de l'arrière de l'HDP qui est uniquement secure. Les deux areas peuvent être configurées grâce à l'option « Bye » Donc vous avez un « Start » et un « Hand » pour l'arrière de l'HDP. Ces options « Bye » peuvent être uniquement modifiées par un code « Secure » Et si un « Specific Bit » de l'HDP s'occupe de cette « Bit », c'est clair. Quand cette « Bit » est installée, l'option « Bye » est « Lock » et ne peut pas être modifiée jusqu'à la prochaine récente de l'HDP. Nous allons parler maintenant de la protection de l'arrière de l'arrière de l'HDP, aussi appelée « HDP ». C'est un genre de « Secure Mem ». Il y a une précédente « Chapter » dans ce « Smoke » sur la « Secure Mem ». Donc, avant que l'arrière de l'HDP s'occupe de cette « Bit » dans la « Flash » « Sec » « HDP » « Control Register » cette partie du code ne peut pas être accessée à tout moment, jusqu'à la prochaine récente de l'arrière de l'HDP. Le « HDP » est installé dans le « Start » de l'arrière de l'arrière de l'HDP. C'est le précédent « Slide ». « Configure » est grâce à deux « Option Bites » donc l'activation de l'HDP et la fin de l'arrière de l'arrière de l'HDP est le « Start » de l'arrière de l'arrière de l'HDP. Ce « Option Bites » peut être modifié seulement si l'HDP « Accent » de cette « Bit » est clair. Quand c'est installé, « Option Bites » est installé et ne peut pas être modifié jusqu'à la prochaine récente de l'arrière de l'arrière de l'arrière de l'HDP. Je propose un sum-up de tous les deux « Slide » avec une animation. J'espère que ça vous aide à fixer l'idée de l'arrière de l'arrière de l'HDP. Donc, le « Water Mac » est un « Arrière » avec un « Start » et un « Hand Address » qui définit « Secure Option Bites ». C'est là où nous allons mettre notre « Secure » application ou tout le « Secure World ». Nous allons définir, grâce à un autre « Option Bites » donc l'HDP « End » le « End » de l'HDP. Donc maintenant, l'HDP est de ce point. Nous avons aussi activé l'HDP « Enable » Nous allons mettre, je dirais, notre « Secure Boot » et sur le « Boot » c'est terminé. Nous voulons donc cette région pour déviquer complètement. C'est-à-dire que même dans le « Secure World » nous ne pouvons pas accéder. Donc, nous allons commencer le « Boot ». Nous avons mis le « Bad Address » de la « Secure Boot ». Tout va bien. Quand nous avons terminé d'exécuter le code dans l'HDP « Secure » nous allons coller un « Exit Secure Procedure » dans le « Route Security System ». Ceci, nous l'avons écrit dans le « Flash Secure HDP Control Register » et l'on l'a installé. En faisant ça, toute cette mémoire est complètement disparue de l'HDP. C'est ce qui signifie que l'application « Secure » est de ce point. On ne peut pas accéder n'importe quoi. C'est vraiment le principe de la « Secure Mem ». Un autre « Feature » est la « Secure Block Base Area Protection ». Ici, vous pouvez créer la « Secure Area Dynamically ». Donc, c'est configuré avec un « Register » dans le « Flash ». Mais ça peut être seulement accès à la mode « Secure ». Quand vous changez un « Page » ou un « Memory Block » de « Secure » à « Non Secure » ce n'est pas un « Erase Content ». Vous pouvez créer et retirer la « Secure Area Dynamically ». Mais en faisant ça, n'ayez pas d'informations qui pourraient être utilisées par les « Unsecure Parts ». « HDP 0.5 » « Non Secure Debug Only ». Donc, le « Debug Access » à la « Secure Area » est prohibi. Et le « Debug Access » à la « Non Secure Area » est toujours possible. Donc, si vous vous rappelez, juste retirez cette partie de la « Draw » et vous avez la « HDP Classicale » je dirais. Dès « Level 0 » vous pouvez aller au « Level 1 ». Dans ce cas, vous ne pouvez pas utiliser le « Bootloader » n'importe quoi. Vous ne pouvez pas connecter avec le « Debugger » mais c'est comme le « Flash ». Et si vous faites une régression de « Level 1 » à « Level 0 » il y a un « Full Mass Erase ». Si vous allez au « Level 1 » à « Level 2 » vous ne pouvez pas connecter n'importe quoi. Vous ne pouvez pas modifier l'option par cela. Je dirais que votre « Device » est complètement « Locked ». Ok, et... Ok, maintenant, nous avons un « Additional Step ». Donc, si nous sommes au « Level 0 » et que vous switchez au « Level 0.5 » qu'est-ce qui se passe ? Nous ne pouvons pas accéder à la « Secure Area ». Nous pouvons juste connecter et débugger la « Non Secure Area ». Et vous pouvez aller du « Level 0.5 » à la « Level 1 ». Ici vous avez une « Full Protection ». Découvrez le « Level » de l'HDP. Si vous vous changez de « Level 0.5 » à « Level 0.0 » vous avez une « Full Mass Erase ». C'est-à-dire que toutes les régions, la « Secure » et la « Non Secure » ont été érasées. Si vous switchez de « Level 1 » à « Level 0.5 » vous allez juste éraser la « Non Secure Area ». Ok ? Donc je dirais que le « Level 0.5 » est vraiment un moyen de travailler avec la « Secure Area » sans avoir un impact sur la « Non Secure Area » sans avoir un impact sur la « Secure Area ». Le « Tray Load & Activation ». Donc, c'est juste une option « Byte ». Mais c'est seulement possible sur la réaction de l'HDP de « Level 1 » à « Level 0 ». Cela signifie une « Full Mass Erase » de la « Cheap ». Quand la « Tray Zone » est activée après la « Option Byte » « Loading », la « Following Security Features » est activée. « Water Make Based Secure Area ». « Block Based Secure Area ». « HDP 0.5 ». « The Secure Interrupt ». Et toutes les « Secure Registers » sont « Read as Zero » ou « Write in your ». « GTZC ». « Global Tray Zone Controller ». C'est un « Tray Zone Security Controller » qui permet de configurer l'attribution de sécurité. C'est un « Peripheral » qui peut être configuré en « Secure » et en « Non Secure ». Il peut aussi configurer la « External Memory Regions » par « Water Make Memory Protection Controller ». Nous avons aussi le « MPCBB ». C'est un « Block Based Memory Protection Controller » qui permet de configurer l'attribution de sécurité de la « SRAM 1 » et de la « SRAM 2 Black ». Et puis, avec les « Day Vicks », le « Tray Zone Illegal Access Controller ». Il met tout le « Illegal Access Event » dans le système et génère un « Secure Interrupt » en « Vick ». Ici, vous avez les « Schematics » des « GTZC ». Ici, vous avez le « Tray Zone Security Controller ». Je vais vérifier l'accès du « Peripheral ». Comme vous pouvez le voir, vous pouvez vérifier la « External Memory ». Le « Securable Peripheral » et aussi le « Master on the Bus ». Ensuite, nous avons le « MPCBB ». Nous allons configurer le « Block » du « Internal SRAM » en « Secure » et en « Non Secure ». Et le « T-Dex » qui devrait gérer d'autres événements de violation et aller dans le « N-Vick » pour générer un « Interrupt ». Quand la « Tray Zone Security » est active, un « Peripheral » peut être « Securable » ou « Tray Zone Aware ». « Securable » qui signifie que le « Security Attribute » est configuré par le « GTZC-TZS Security Controller ». Si le « Tray Zone Aware » est configuré par un « Peripheral Secure Register ». Par exemple, pour le « GPIO » c'est un « Tray Zone Aware ». Donc, il y a un « Specific Register » dans le « GPIO » pour configurer si le « Secure Word » n'est pas le « Secure ». Ici, vous pouvez avoir la liste de la « Tray Zone Aware Peripheral » et les autres « Peripherals Securables ». Donc, je vous invite à voir le « Reference Manual » de la « CHIP » que vous utilisez pour confirmer cette information. La variabilité de la « Tray Zone » sur la « STM32 » aujourd'hui, nous n'avons que le « L5 » avec le « Cortex M33 ». Certaines références, une application très intéressante n'est pas très intéressante sur le « Tray Zone » et les « Reference Manual » qui sont disponibles aujourd'hui. Merci pour votre attention.