 Bonjour et bienvenue à ma conférence Europe d'Ambedéli Nukes qui parle d'une porte portée et de maintenir une porte-l'ordre pour la famille de l'association multi-médiaire d'Ambedéli Nukes. Alors, qui suis-je ? Je suis Colonel et firmé à Hacker pour les dernières 14 ans. J'ai porté l'Ambedéli Nukes sur les sociétés customaires parce que j'étais en train de travailler avec l'association d'Ambedéli Nukes et de l'équipe d'Ambedéli Nukes. Je suis un ingénieur d'Ambedéli Nukes, une compagnie en France. Je suis en train de travailler avec l'Ambedéli Nukes pour les dernières 5 ans. Et entre autres projets, j'ai eu de support pour l'Ambedéli Nukes et de l'Ambedéli Nukes. Pour les dernières 2,5 ans, je suis la compagnie d'Ambedéli Nukes et de l'Ambedéli Nukes qui est une porte-l'ordre pour l'Ambedéli Nukes et de l'Ambedéli Nukes. Et j'ai fait, par exemple, 47 preuves de réquestes depuis janvier 2019. Donc, quoi ? Je vais parler de maintenir l'Ambedéli Nukes, la mainline de l'Ambedéli Nukes. Donc, l'Ambedéli Nukes donne un set de lignes de l'association d'Ambedéli Nukes pour les dernières quelques années. Or, généralement, ils ont designé des set de lignes de lignes de l'association d'Ambedéli Nukes que vous pouvez acheter sur le marché de Charny, par exemple. Puis, ils ont fait le 1er single-board-computer, avec l'aide de la musique, pour produire, qui s'appelle le AudioHC1. Il avait beaucoup de succès. L'Ambedéli Nukes, le C2, a été très célèbre. Le pi de l'Ambedéli Nukes est plus célèbre, mais le C2, c'est encore un standard, ou encore plus, un standard. Donc, c'est le quad Corsax A333. Il a mis le B2 Ethernet, le GK8, le HDMI2, le UMC, le plug-able, le UMC, le C4, le standard USB-API, le capitain, et il avait 2 GB de DTL. Donc, c'était 4 ans plus tard. Donc, 4 ans plus tard, c'est le new AudioHC1 N2+, qui utilise le nouveau Nukes, qui a encore 2 Cortex-A53, plus 4 Cortex-A73, le USB3, HDMI2.1, et 4 GB de DTL. Donc, c'est beaucoup mieux. Le bord est beaucoup plus bien fait. Le premier AudioHC2, le C2, les power issues. Tout a été installé sur le new AudioHC1 N2+, et vous avez le C4 alternatif, qui a le même fourcteur que le C2, avec le même Cortex-A55, mais avec le new A73. Donc, qu'est-ce que la magie a donné ? Elle a donné un sourcil open source, dans sa bsp release. Elles ne sont pas plus accessibles dans leur OpenNukes 3, mais les vendeurs, comme Artcarnel, Fodorid, ou Kadas, pour les boards de Kadas Zim, ont donné. Donc, 4 ans plus tard, qui est très ancien, et pour le AudioHC9 N2+, ils basent leur code sur le 4.9 kernel. Donc, qu'est-ce qu'est le state du code ? Donc, oui, ils ne suivent pas les frameworks kernel, ils n'ont pas suivi tout. Ils ont été très malades, pas les vendeurs, mais depuis qu'on a été payés pour faire des streamings, ils ont utilisé des vendeurs, comme le PDWM, mais ils ont toujours changé, donc c'est très malade. Mais finalement, comme vous l'avez vu, 4.9 kernel, correctement architecturés. Tout leur code multimedia, c'est complètement custom. Il n'y a pas de standard. Et rien n'est vraiment utile. C'est pourquoi tout ce qu'on a écrit, c'est pour être streamed. Le DT était complètement custom. Ils n'étaient pas séparés correctement entre le SOC DT, le DTSI et le board DT. C'était très difficile de comprendre pour les newcomers, les contributaires, les vendeurs, les streamings, qu'ils n'étaient pas utilisés avec le kernel. Ils ont aussi donné le UD, qui est partie de leur chaine, leur chaine sécuritaire pour la TV digital. Donc, récemment, c'était basé en 2015.0.1, qui est vraiment, très vieux. Et puis, un match mixé, des codes récents et des codes très vieux, parce que, à l'époque, c'était seulement le début d'un modèle driver. Donc, c'est vraiment un peu un code très vieux, modèle driver, et un modèle U-Class. C'est vraiment difficile de suivre. Ils ont une partie complétie de l'EMC, dans un mix, qui n'est pas standard. Ils ont une sélection multi-DT, complétie custom. Et toutes les médias multimédiaires, les graphiques, les customes, qui n'est pas complétie. Pour les flash devices, ils utilisent le même protocole entre le boot ROM, qui est le protocole USB-Cadjet. Le boot ROM supporte le boot USB, mais ce n'est pas le boot USB-Cadjet, comme d'autres Asus. Il n'y a pas de flash USB-Cadjet. Non, c'est le protocole USB-Cadjet, donc il donne le protocole custom. Et c'est le même protocole entre le ROM et le boot USB-Cadjet. Donc, si vous êtes curieux, j'ai écrit un outil qui s'appelle PiML Boot, qui est utilisé pour boot SoC, dans le mode USB-Cadjet, qui est le boot mode fallback. Donc, quand vous n'avez pas de boot target, donc pas de SD-Card, de MMC, il utilise le protocole. Donc, j'ai écrit un outil Python, pour l'utiliser, et c'est très handy. Il n'est pas utilisé par, vous savez, un outil de la frite, pour flasher le code USB-Cadjet. C'est très handy, mais je n'ai jamais implementé le Tiet sur le boot. Donc, comme vous pouvez comprendre, les drivers sur le boot n'étaient pas utilisables. Donc, ils ont maintenant une récente, une récente, pour votre ancienne base de boot, qui appuie seulement de nouvelles SOCs. Toutes les SOCs sont apportées. Ils sont toujours old. En fait, quand vous le vous devez, c'est absolument la même code que la précédente. Il ne se débrouille que des bits dans le endroit blanc, mais ce n'est pas utilisé pour un base de code maintenance, et ce n'est pas utilisé pour offstrimer des drivers. Donc, qu'est-ce que le bootflot de ces SOCs? Donc, depuis la nouvelle armée V8 chip, qui est la S905, ils utilisent TFI, ou ITF, PSCI, vous communiquez avec les Binauris TFI, et SCPI, vous communiquez avec les co-processeurs, les SCP co-processeurs. Ils l'ont utilisé, parce que les armes, c'était monatelier. Et avant, ils utilisent un custom complique bootflot avec un co-processeur arc. Mais, oui, c'était un concept similaire, mais ils n'ont pas suivi n'importe quel standard, comme TFI qui le définit. Donc, pour la chaine TFI, le boot ROM fait un stage BL1. Et ils donnent les Binauris, seulement, pour les restes de la chaine TFI. Par exemple, le BL2, qui est où vous initialisez le DDR, c'est la Binauris. Le BL13, ils ont ajouté cette stage, parce que c'est un Binauris qui est installé dans le SCP co-processeur. Le BL, c'est le BL41, qui est la chaine TFI qui répond à PSC recalls. Le BL42, qui est une période sécuritaire, généralement, vous l'obtirez. Et vous pouvez construire des bits de leur boot tree, qui est, par exemple, l'ACS Binauris, qui est le DDR controller settings, qui est embedé dans le BL2 Binauris. Le BL21, qui est aussi embedé dans le BL2 Binauris, c'est la baute spécifique pour la baute. Parce que vous n'aurez pas utilisé seulement des réguliers de PDW sur la baute pour la baute. Donc vous avez besoin d'un code, d'actuellement, et vous avez aussi le BL301, qui est la baute dans le STP firmware. Où vous utilisez tous les résumés et les résumés source, par exemple. Donc, ce qui est bien, c'est que les binaurises sont les mêmes que les produits utilisés pour avoir une baute spécifique. Ils utilisent la même chaine. Mais l'issue est que toute la baute spécifique n'est pas à tout. Pour non-amogiques customaires. Donc, ce qui est le statut d'absence de l'Ambient SOC c'est le 1er S905 sur l'autorite C2 pour le plus tard, A311D qui est la même que le 1er sur l'autorite N2+. Donc, nous avons une grande couverture de le système. Parce que vous utilisez le modèle d'abri, nous avons une grande couverture de couverture. Nous avons un partial TFI upstream. C'est seulement le PL31 stage parce que tous les stages sont très complexes d'ingénieurs. Surtout le BL2 qui est très complexe dans le code. Je ne suis pas sûr qu'il soit possible un jour de faire ça avec une propre documentation. Peut-être un jour, j'espère. Et oui, nous avons besoin de documentation pour faire un travail, spécialement sur le map de sécurité qui est un peu nommé. Donc, pour les liens, vous pouvez voir ceci. J'ai fait quelques paroles ces dernières pour vous expliquer. Donc, si vous ne voulez pas les voir, c'est trop facile de les regarder. Donc, généralement, le support basic est complet. Nous avons un support basic par exemple d'IVFS. Nous avons un support de support pour les dernières SOCs. Les premières sont pas possibles. Nous avons le support basic complet avec SPI, I2C, etc. Qu'est-ce que le support partagé et multimédia? Nous voulons toute l'avance digitale de la future, comme l'HDR, conversion between planes, 3D support, dynamique, HDN zone, ce n'est pas supporté. Nous n'avons pas de support pour les encoders. Donc, nous pouvons supporter l'H264 encoder. Mais, par exemple, l'HEVC encoder, c'est séparé de l'HEP. Et ils donnent des espaces d'avance. Donc, nous avons besoin d'adverser le renvers pour le porter. Et, nous soutenons partially la vidéo des encoders. Nous soutenons le support basic HDC4, l'HEP9, et nous avons le support HDC4, mais de 3. Si nous avons plus de statues sur le support, nous pouvons aller à l'anux.trem.com. website. Donc, pour U-Boot, nous avons aussi de grandes coverages parce que grâce à le U-Boot de l'envers, nous pouvons porter très simplement les U-Boots. Et nous simplifierons les U-Boots. Donc, nous avons le système support qui est complet. Le basic I.U. est supporté. Le U-Art, le PIN, le code control, le PDWM le RZ, Internet, PSCI, Fuse, SSPI, I2C, AdVincent, IOS, Partshell, Ethernet, ok. Il y a encore un travail. Le USB est ok. Nous avons OTAJ, OTAJ support pour tous les soutenants associés maintenant. Le SDMMC est supporté. Nous avons le support non-support. Nous avons le driver à l'enux, mais nous avons le support. Le PCI et le support sont nécessaires d'avoir un boot. Pour les Outputs, nous supportons HDMI Output dans le boot. C'est génial. Le DSI, le Mipi-DSI est supporté dans le support de l'enux. Donc, nous supportons tous les computers sur les associés homologiques. Nous savons que les armes vécent, les OTAJ-C1. Nous ne supportons pas même dans l'enux, nous lèvons le support pour cette génération. Le seul PCI qu'on n'a pas, c'est le BANANAPI BPI-M5. Nous espérons que c'est simple. Mais, comme je l'ai vu, c'est presque le clone de le OTAJ-C4-C4. Donc, rien spectaculaire. Nous supportons le design de référence générique. Donc, l'enlogique, historiquement, pour chaque package d'associés, variant, ils ont fait un design de référence qui était possible pour les vendeurs de prendre ce qu'il est et de le reproduire très rapidement. Pour exemple, pour le S905, c'était le P2200, le S905X, le P2200, par exemple. Donc, vous pouvez présumer chaque box de chinese, il s'agit d'un des designs de référence et vous devez mettre directement les nuques et je veux dire, vous devez mettre parce que c'est plus complexe pour vos bouts. Vous devez supporter une générique générique si vous avez de la haute tfa binaries et des settings de DDR. Donc, oui, donc, vous devez mettre des modèles, il n'y a pas possible d'avoir revoit. Donc, le non-driver est faible, mais les nuques existent, donc, ce n'est pas possible. Le PCI-driver n'existe pas. Mais, le support PCI-Express, ce n'est pas important, mais, de la haute haute, c'est plus complexe, parce que tous les modèles PCI-Express contrôlés, n'ont pas été clairement cleans pour avoir un support commun. Donc, il y a quelques semaines, il y a encore un, d'exemple, sur InternetFi, on a toujours une configuration stématique, pour soutenir, on a l'internal ou l'external Fi, on a un mix, pour utiliser l'internal bus ou l'external bus. Donc, on a le driver, les nuques. Vous, maintenant, supportez tout, supportez le Fi, le Max, mais on n'a pas le driver, donc, on doit l'écrire. Donc, l'ename supporte, c'est supporté, l'ename, c'est supporté. Le framework de l'ename est très simple, comme chaque Uboot U-Class, mais c'est bien, c'est tout le travail. Nous avons appliqué la PSI en Uboot, c'est un peu de poussière, correctement. Le seul problème est l'édit de la PSI en Uboot, qui est vraiment primitive. En l'édit, dans l'édit, vous avez un peu de field pour standard et established timings. Donc, par exemple, tous les vésas standard, vous avez un peu pour standard. Vous avez des timings détails, qui, vous encode directement les timings dans l'édit. Et vous avez une table, par exemple, pour HDMI, Vick, qui est un numéro, un numéro standard pour each, par exemple, pour 1080p, 720p, par exemple. Le problème est que Uboot seulement prend les timings détails. Donc, complètement, dans votre standard, les timings established et les timings Vick, parce qu'il ne embed les timings, parce que, par exemple, vous avez des timings utiles pour transmettre l'édit dans un set de timings. Donc, Uboot n'a pas ça. Donc, il n'y a que l'extraction des timings détails. Donc, sur les monitors, par exemple, généralement, vous avez 4 timings détails, sur les slots. Vous always mettre votre timing natif du monitor dans un autre slot. Mais, si un casque n'est pas le casque, par exemple, vous pouvez toujours mettre des timings bas, comme des timings VESA. Mais, certains monitors ne font pas ça. Donc, si on n'a pas des timings bas, avec des timings petits, il n'y a pas de disparition. Donc, évidemment, on ne peut pas porter 4K dans Uboot, parce que c'est un travail pour faire un jour. Donc, c'est vraiment un travail avec le boot UFA que vous basicement dedicum parce que c'est de faute default, donc c'est une intense motivation pour être l'appropriatité de support pour porter tous les services de support pour 3, donc vous pouvez mettre Uboot. Installer the stooghook and the default on avec un simple RNG driver, on supporte le Linux KSLR boot pour le UFI boot, mais on n'a pas encore mis le type Runtime variables, donc les variables Runtime variables sont de Linux, la possibilité d'updater le UFI Uboot variables pour le next boot, par exemple, pour le boot order, par exemple, donc il faut un code Runtime fromUboot quand Linux est booté, et ça implique que ce code peut aller en bas et en bas sur le Spiner ou l'EPROM, donc nous devons encore avoir un surboard storage, comme un Spiner, et des Linux pour ne pas toucher cet ordinateur, ou trouver un moyen d'améliorer l'application entre Uboot et Linux, donc ce qui est bon est que l'Uboot est utilisé dans un produit réel, par exemple, vous pouvez voir, peut-être que vous savez La Frite, qui est faite par Librecomputer, c'est une très grande et l'offre basée, c'est très basique, vous avez un simple USB, Internet, HDMI et les 40 pins, et la particularité est que le boot loader utilisé dans ce produit, c'est l'Uboot exécutifement, donc le mec qui est en Librecomputer a fait un bon travail en utilisant un menu dynamique pour enlever l'application, mais c'est encore complètement manuel en Uboot, c'est vraiment bien, et en l'application, tous sont fort, et vous pouvez faire un produit réel basé sur ça, donc comment a-t-il fait l'application en développement, donc l'application initiale de l'Association Amlogique en Uboot a été faite par Beniamino Clamani, je vous remercie, il a aussi fait un peu de l'application initiale de l'Association Amlogique aussi, on n'a qu'un petit peu de contemputeurs non belibres, c'est triste, donc le processus Uboot est très près de l'Association Amlogique, donc vous passez à la liste, vous attendez pour vos yeux, et le maintienneur met le patch et tirez-le au maintienneur projet, qui est le Tobrini, donc l'issue est que vous avez un peu avec vos yeux, pas beaucoup, donc quand vous avez non-core patchs, patchs ne touchent pas sur la plateforme, il n'y a plus ou pas réveillé, donc ce n'est pas un problème de les prendre et de les mettre directement, donc ce est bien, parce que l'Association Amlogique est assez petite, il y a un test suite qui est basé sur Sandbox, Sandbox est une plateforme Uboot, qui fonctionne comme l'application Linux, donc vous pouvez l'utiliser comme procès standard, et vous pouvez communiquer avec tout le processus Linux, donc vous pouvez coordonner, tester, tester par Python, et ceci est utilisé dans le CI, qui se tourne à chaque Uboot Commit upstream, c'est un bon moyen de vérifier si il n'y a pas de récouches, donc l'issue est qu'à l'Association Amlogique, vous avez besoin d'un package Uboot dans la chaine TFI, donc vous avez besoin de la chaine complète pour pouvoir renouveler l'Association Linux. Armes ont développé des formes de file pour stocker toute la chaine Uboot, qui s'appelle FIP. Amlogique a utilisé ça au début pour la première SOC, qui s'appelle JGBB, pour S9M5, mais après, parce qu'ils ont beaucoup de binauries, des firmes, ils ont décidé de créer leur propre format, leurs propres créateurs, etc. Et les dernières SOCs, ils ont 10 DDRs initialisés en firmware, c'est déjà dans le BL2, donc c'est complexe. L'issue avec tous les tools de package sont plus source, et le projet de package n'est pas documenté, mais qu'on doit regarder à l'Association Uboot Vendor 3 MEC file pour voir ce qu'il s'appelle. Donc c'est un exemple de package, qui est pratiquement, donc vous avez des tools, un piéphone, un shell et une source de source, quand vous passez des binauries d'input, et vous avez un set d'input binauries, c'est l'un des binauries, et ce binaurie Uboot.bin est en fait le set de binauries utilisées par le boot ROM, pour mettre les outils. Donc ces tools ont été reverse ingénieurs, en fait. Donc, à l'initial, il y avait Andreas Ferber qui a fait l'initial reverse ingénieur. Il a ajouté le support de l'SNFMX dans ces outils de base. Repka a fait l'outil de reverse ingénieurs de JXL, et récemment, le même été fait sur la nouvelle génération de SOCs, G12A, G12B et SM1 binauries. Parce que ces nouvelles outils, on peut compresser dans LZ4, par exemple, et ils ont avance le signage, par exemple. Donc, c'est le schéma du signage. Donc, en bleu, vous avez toutes les binauries, toutes les binauries de source. Donc, j'ai ajouté le script de base. C'est l'open source, parce que vous pouvez comparer. En bleu, vous avez les binauries de source close, et en bleu, vous avez les binauries de stream, et en bleu, vous avez les binauries et les outils que vous avez au-delà. Vous avez les binauries de source full, et vous avez l'open source equivalent. Donc, vous voyez qu'ils ont mis beaucoup de binauries, ils les mélangent, ils les envoient, ils les packent dans les binauries complétées. Donc, l'issue avec ça, c'est que vous mélangez dans la même binaurie finale, des choses de source close, des choses de gpL, et en le début, vous n'avez pas de termes lessens pour distribuer les binauries tout à l'heure. Finalement, j'ai ajouté les termes lessens récemment, ce qui est beaucoup mieux. Pour les ACS BL21 et BL301, elles sont partie de la vendeur e-bot source, donc historiquement, on s'assume que c'était gpLv2. Récemment, j'ai ajouté les outils, donc ils sont gpLv2. Pour les BL301 binauries, ce n'est pas clair, parce que certains outils ont un gpLv2, certains n'ont pas. Donc, peut-être, éventuellement. Donc, ces trois binauries, on peut les mélanger en un outil de vendeur e-bot, dans une sépare tropeuse d'oreille, mais où? Peut-être dans la main-lane e-bot, je ne sais pas, ce n'est pas clair enough. Donc, ce sont les récemment ajoutées binauries, les récemment à récemment pour les BL301 et BL32 binauries. Donc, c'est le classique récemment à récemment. Mais, oui, c'est clair. Vous avez besoin d'une permission pour les récemment. Donc, c'est clair ce sont les problèmes légales pour les redistributions de ces binauries. Donc, c'est juste qu'il y a des termes légales. Donc, tout est gris, ou tout est gris, c'est gpLv2. Donc, l'open source, ou vous avez le droit de rébuilder et redistribuer. Le bleu, il faut suivre les termes de binauries et le mix des couleurs, c'est que si vous avez besoin de suivre les termes de binauries, si vous avez besoin d'une binaurie, ou vous pouvez avoir gpLv2, l'amplementation, qui est disponible. Donc, comme je l'ai dit, nous avons un support partial pour le support BL31, dans un TFA upstream. Donc, le S nr5 est le premier mV8, qui a des issues. Par exemple, l'accélération crypto-accélérée a été brouillée et donc, il y a aussi des effets dans le bootroom. Par exemple, vous avez le bien-known, le bypass de le secure boot. C'est possible d'améliorer le bootroom. Le TFA supporte le support partial, on ne supporte pas ce point de résumé, et on ne supporte pas le secure boot, on ne l'a pas testé, donc peut-être on ne le supporte pas. Pour la seconde génération, la première génération des SOCs, les accélérateurs travaillent maintenant, c'est bien. On ne supporte pas ce point de résumé, on ne sait pas si le secure boot fonctionne, et on ne supporte pas la variant S912, qui est la première avec un second clé de Cortex-A53. Donc, nous devons trouver comment ils ont réussi à améliorer le second clé, afin de supporter ces SOCs. Donc, pour la famille AXG, qui est une variante audio-application, basée sur les prévues SOCs, c'est le même support que les SOCs. Et finalement, pour la dernière génération des SOCs, qui est une sorte de moderne SOCs, donc c'est une S950X2, S950X3, et la dernière. Le supporte est le même que l'avant, mais nous ne supportons pas la dernière SOC variant, le G12B, qui a un second Cortex-A73 clé, et nous ne supportons pas le SM1, qui est celui avec le Cortex-A55 corse, à l'aide d'un F53. Mais celui-là n'est qu'un matériel pour ajouter un flag, donc ça va être facile de supporter. Donc, sur le subject de sécurité, ce SOC, qui est designé pour un produit de sécurité, est utilisé dans un produit de sécurité, en utilisant Android TV, et ils sont complètement certifiés, de la valeur, etc. Donc, si vous voulez un monde réel de sécurité, c'est très complexe. Honnêtement, vous pouvez imaginer les constraints sur la validation de sécurité. Donc, parce que tout cela, tous les deux sont privés de cause-source et complètement décommentés. Le map de l'issue n'est pas décommenté tout de suite, et si vous voulez utiliser votre SOC, vous pouvez briser l'application très facilement. Mais même ça, nous n'avons pas les secondes programmes de l'issue, et n'importe quoi, nous n'avons que l'application de l'issue de sécurité, qui est vraiment l'issue avec un certificat, pour avoir une bonne sécurité, en utilisant le standard de l'application de l'issue de sécurité. Par exemple, nous pouvons implémenter un UFI, on peut utiliser un UFI de sécurité, pour avoir un bout trusté, il y aura assez d'applications. Donc, nous aurons besoin des outils unifiés pour générer la binary. Aujourd'hui, nous avons trois outils différents. Donc, nous n'avons que de créer un nouveau outil pour répliquer les outils. Nous avons trois outils différents, avec différents noms, et d'ailleurs, nous n'avons pas besoin d'utiliser l'application de l'application de l'issue de sécurité, mais c'est unifié pour le cas. Il serait important d'avoir un maximum d'open source TFI, incluant le BL2 et le microprocessor, mais c'est complexe, et je ne suis pas sûr qu'il arrivera un jour. Pour votre soutien, nous avons mis le nom de PCI Express. Nous l'avons l'ancien armes V7 associés, ce qui pourrait être assez grave, et nous l'avons l'EFI Runtime Variable, qui est assez additionnel pour avoir un bout semblable de l'EFI. Nous l'avons testé, maintenant, nous avons beaucoup de bords supportés, et ils ne sont pas testés à each release. Nous attendons des réponses des gens, mais ce n'est pas assez. Nous planchons établir un vrai CI pour tester les bords sur les bords supportés, mais ce n'est pas le cas. Il faut être fait. Nous avons tout à l'heure, mais il faut le faire. Donc, c'est fini. Si vous avez une question, je n'ai qu'à vous dire. Merci, bye-bye.