MICROCHIP PIC64GX 64-bis RISC-V vierkern mikroverwerker
Produk inligting
Spesifikasies:
- Produk Naam: Mikroskyfie PIC64GX
- Opstartproses: SMP en AMP werkladings ondersteun
- Spesiale kenmerke: Waghondondersteuning, afsluitmodus
Produkgebruiksinstruksies
- Opstartproses
- Sagtewarekomponente betrokke by opstart
Die stelsel opstartproses behels die volgende sagtewarekomponente:- Hart Sagteware Dienste (HSS): 'n nul-stage selflaailaaier, stelselmonitor en verskaffer van runtime-dienste vir toepassings.
- Boot Flow
Die volgorde van die stelsel selflaaivloei is soos volg:- Inisialisering van Hart Software Services (HSS)
- Selflaailaaier uitvoering
- Aansoek begin
- Sagtewarekomponente betrokke by opstart
- Waghonde
- PIC64GX Waghond
Die PIC64GX beskik oor 'n waghondfunksie om stelselwerking te monitor en aksies te aktiveer in geval van stelselfoute.
- PIC64GX Waghond
- Afsluitmodus
Die afsluitmodus is ontwerp vir kliënte wat volledige beheer oor stelselaksies na selflaai benodig. Dit beperk die funksies van die E51-stelselmonitor.
Gereelde vrae
- V: Wat is die doel van die Hart Software Services (HSS)?
A: Die HSS dien as 'n nul-stage selflaailaaier, stelselmonitor en verskaffer van looptyddienste vir toepassings tydens die selflaaiproses. - V: Hoe werk die PIC64GX waghondfunksie?
A: Die PIC64GX-waghond monitor stelselwerking en kan voorafbepaalde aksies neem in geval van stelselfoute om stelselbetroubaarheid te verseker.
Inleiding
Hierdie witskrif verduidelik hoe die Microchip PIC64GX toepassingswerkladings begin en beskryf die stelselselflaaiproses, wat dieselfde werk vir SMP en AMP werkladings. Daarbenewens dek dit hoe 'n herlaai werk vir SMP en AMP werkladings, waghonde op die PIC64GX, en 'n spesiale afsluitmodus vir stelsels waar kliënte volledige beheer verlang om die aksies van die E51-stelselmonitor na stelsellaai te beperk.
Opstartproses
Kom ons kyk na die verskillende sagtewarekomponente wat betrokke is by die opstart van die stelsel, gevolg deur 'n meer gedetailleerde blik op die volgorde van die stelsel selflaaivloei.
Sagtewarekomponente betrokke by opstart
Die volgende komponente is betrokke by die stelsel selflaaiproses:
Figuur 1.1. Opstartkomponente
- Hart Sagteware Dienste (HSS)
Die Hart Software Services (HSS) is 'n nul-stage selflaailaaier, 'n stelselmonitor en 'n verskaffer van runtime-dienste vir toepassings. Die HSS ondersteun vroeë stelselopstelling, DDR-opleiding en hardeware-inisialisering/konfigurasie. Dit loop meestal op die E51's, met 'n klein hoeveelheid masjienmodusvlakfunksionaliteit wat op elke U54's loop. Dit begin een of meer kontekste deur toepassing "loonvrag" van die selflaaimedium te laai, en verskaf Platform Runtime Services/Supervisor Execution Environment (SEE) vir bedryfstelselpitte. Dit ondersteun veilige selflaai en is 'n belangrike komponent in die versekering van hardeware partisionering / skeiding vir AMP kontekste. - Die U-stewel (U-Boot)
Das U-Boot (U-Boot) is 'n oopbron universele skrifbare selflaailaaier. Dit ondersteun 'n eenvoudige CLI wat die selflaaibeeld van 'n verskeidenheid bronne kan haal (insluitend 'n SD-kaart en die netwerk). U-Boot laai Linux. Dit kan 'n UEFI-omgewing verskaf indien nodig. Dit is oor die algemeen klaar en uit die pad sodra Linux begin het - met ander woorde, dit bly nie na die selflaai nie. - Linux kern
Die Linux-kern is die wêreld se gewildste bedryfstelselkern. Gekombineer met 'n gebruikersland van toepassings, vorm dit wat algemeen na verwys word as 'n Linux-bedryfstelsel. 'n Linux-bedryfstelsel bied ryk POSIX API's en ontwikkelaaromgewing, bvample, tale en gereedskap soos Python, Perl, Tcl, Rust, C/C++ en Tcl; biblioteke soos OpenSSL, OpenCV, OpenMP, OPC/UA en OpenAMP (RPmsg en RemoteProc).
Yocto en Buildroot is Linux-stelselbouers, dit wil sê, hulle kan gebruik word om pasgemaakte Linux-stelsels te genereer. Yocto voer 'n Linux-verspreiding uit met 'n ryk
stel toepassings, gereedskap en biblioteke, en opsionele pakketbestuur. Buildroot lewer 'n meer minimale wortel uit filestelsel en kan stelsels teiken wat nie aanhoudende berging benodig nie, maar heeltemal vanaf RAM loop (met gebruik van Linux se voorletters ondersteuning, bv.ample). - Zefier
Zephyr is 'n klein oopbron-intydse bedryfstelsel (RTOS). Dit bied 'n intydse lae-oorhoofse raamwerk, met RPMsg-lite kommunikasiekanale na Linux. Dit bevat 'n kern, biblioteke, toestelbestuurders, protokolstapels, filestelsels, meganismes vir firmware-opdaterings, ensovoorts, en is ideaal vir kliënte wat 'n meer kaal-metaal-agtige ervaring op PIC64GX wil hê.
Boot Flow
PIC64GX bevat 'n RISC-V coreplex met 'n 64-bis E51 stelsel monitor hart en 4 64-bis U54 toepassing harts. In RISC-V-terminologie is 'n hart 'n RISC-V-uitvoeringskonteks wat 'n volledige stel registers bevat en wat sy kode onafhanklik uitvoer. Jy kan daaraan dink as 'n hardeware draad of 'n enkele SVE. 'n Groep harte binne 'n enkele kern word dikwels 'n kompleks genoem. Hierdie onderwerp beskryf die stappe om die PIC64GX coreplex te inisialiseer, insluitend die E51-stelsel monitors hart en die U54 toepassing harts.
- Skakel die PIC64GX coreplex aan.
By aanskakeling word alle harte in die RISC-V coreplex vrygestel van terugstelling deur die sekuriteitsbeheerder. - Begin die HSS-kode vanaf die eNVM-flitsgeheue op die skyfie.
Aanvanklik begin elke hart die HSS-kode vanaf die eNVM-flitsgeheue op die chip laat loop. Hierdie kode laat alle U54-toepassingsharte draai, wag vir instruksies, en laat die E51-monitorhart kode begin hardloop om te inisialiseer en die stelsel op te roep. - Dekomprimeer die HSS-kode van eNVM na L2-Scratch-geheue.
Afhangende van sy boutyd-konfigurasie, is die HSS gewoonlik groter as die kapasiteit van die eNVM-flitsgeheue self en dus is die eerste ding wat die HSS-kode wat op die E51 loop, homself van eNVM na L2-Scratch-geheue dekomprimeer, soos getoon in Figuur 1.2 en Figuur 1.3.
Figuur 1.2. HSS Dekomprimeer van eNVM na L2 Scratch
Figuur 1.3. HSS-geheuekaart tydens dekompressie - Spring van eNVM na L2-Scratch na 'n uitvoerbare lêer soos in die volgende figuur getoon.
Figuur 1.4. HSS spring van eNVM na kode nou in L2Scratch na dekompressie
Die uitvoerbare bestaan uit drie komponente:- Die hardeware-abstraksielaag (HAL), laevlakkode en kaalmetaaldrywers
- 'n Plaaslike HSS-vurk van RISC-V OpenSBI (effens aangepas vanaf stroomop op PIC64GX vir AMP doeleindes)
- Die HSS-looptyddienste (staatmasjiene loop in 'n superlus)
- Inisialiseer die hardeware en datastrukture wat deur OpenSBI gebruik word.
Die HSS-diens "Startup" is verantwoordelik vir hierdie inisialisering. - Haal die toepassingswerklading (payload.bin)-prent vanaf eksterne berging. Dit word in Figuur 1.5 en Figuur 1.6 getoon
Belangrik: In die geval van die PIC64GX Curiosity Kit, sal dit vanaf 'n SD-kaart wees.
Figuur 1.5. Haal tans payload.bin Werkladingsprent vanaf eksterne berging
Figuur 1.6. HSS-geheuekaart na die haal van payload.bin - Kopieer die verskillende afdelings van die payload.bin na hul uitvoeringstydbestemmings. Die payload.bin is 'n geformateerde prent wat verskeie toepassingsbeelde vir SMP of AMP werkladings. Dit sluit kode-, data- en beskrywingstabelle in wat die HSS in staat stel om die kode- en dataafdelings toepaslik te plaas waar dit nodig is om die verskillende toepassingswerkladings uit te voer.
Figuur 1.7. payload.bin word na bestemmingsadresse gekopieer - Gee opdrag aan relevante U54's om na hul teregstellingbeginadresse te spring. Hierdie beginadresinligting is in die payload.bin vervat.
- Begin die U54 Aansoek harts en enige tweede-stage selflaailaaiers. Byvoorbeeldample, U-Boot bring Linux op.
Herlaai
Verwant aan die konsep van stelselselflaai is die behoefte om te herlaai. Wanneer jy aan PIC64GX-toepassingswerkladings dink, moet herselflaai beide simmetriese multiverwerking (SMP) en asimmetriese multiverwerking in ag neem (AMP) scenario's:
- In die geval van 'n SMP-stelsel, kan 'n herlaai die hele stelsel veilig koud herlaai aangesien daar geen bykomende werkladings in 'n ander konteks is om te oorweeg nie.
- In die geval van 'n AMP stelsel, kan 'n werklading dalk net toegelaat word om homself te herlaai (en nie inmeng met enige ander konteks nie), of dit kan bevoorreg wees om 'n volledige stelselherlaai te kan uitvoer.
Herlaai en AMP
Om die SMP en AMP herlaai-scenario's, ondersteun die HSS die konsepte van warm en koue herlaai-voorregte, wat aan 'n konteks toegewys kan word. 'n Kontekst met 'n warm herlaai-voorreg kan slegs homself herlaai, en 'n konteks met 'n koue herlaai-voorreg kan 'n volledige stelsel herlaai. Byvoorbeeldample, oorweeg die volgende stel verteenwoordigende scenario's.
- 'n Enkele konteks SMP-werklading, wat toegelaat word om 'n volledige stelselherlaai te versoek
- In hierdie scenario word die konteks koue herlaai-voorreg toegelaat.
- ’n Twee-konteks AMP werklading, waar konteks A toegelaat word om 'n volledige stelselherlaai te versoek (wat alle kontekste beïnvloed), en Konteks B word toegelaat om slegs homself te herlaai
- In hierdie scenario word konteks A koue herlaai-voorreg toegelaat, en konteks B word warm herlaai-voorreg toegelaat.
- ’n Twee-konteks AMP werklading, waar kontekste A en B slegs toegelaat word om hulself te herlaai (en nie die ander konteks beïnvloed nie)
- In hierdie scenario word beide kontekste slegs warm herlaai-voorregte toegelaat.
- ’n Twee-konteks AMP werklading, waar kontekste A en B albei toegelaat word om volledige stelselherlaai te versoek
- In hierdie scenario word beide kontekste koue herlaai-voorregte toegelaat.
- Verder is dit moontlik vir die HSS tydens boutyd om altyd koue-herlaai-voorreg toe te laat, en om nooit koue-herlaai-voorreg toe te laat nie.
Relevante HSS Kconfig-opsies
Kconfig is 'n sagtewarebou-konfigurasiestelsel. Dit word algemeen gebruik om boutydopsies te kies en om kenmerke te aktiveer of te deaktiveer. Dit het ontstaan met die Linux-kern, maar het nou gebruik gevind in ander projekte buite die Linux-kern, insluitend U-Boot, Zephyr en die PIC64GX HSS.
Die HSS bevat twee Kconfig-opsies wat die herlaai-funksie vanuit die HSS-perspektief beheer:
- CONFIG_ALLOW_COLD HERBlaai
As dit geaktiveer is, laat dit wêreldwyd 'n konteks toe om 'n koue herlaai-oproep uit te reik. As dit gedeaktiveer is, sal slegs warm herlaai toegelaat word. Benewens die aktivering van hierdie opsie, moet toestemming om 'n koue herlaai uit te reik aan 'n konteks deur die loonvraggenerator YAML verleen word file of die volgende Kconfig-opsie. - CONFIG_ALLOW_COLD HERBOOT_ALTYD
- As dit geaktiveer is, laat hierdie kenmerk wêreldwyd alle kontekste toe om 'n koue herlaai-ECAA uit te reik, ongeag die payload.bin-vlagregte.
- Daarbenewens kan die payload.bin self 'n per-konteks vlag bevat, wat aandui dat 'n spesifieke konteks geregtig is om koue herlaaie uit te reik:
- Om 'n konteks warm herlaai 'n ander konteks toe te laat, kan ons die opsie toelaat-herlaai: warm in die YAML beskrywing byvoeg file gebruik om die payload.bin te skep
- Om 'n konteks koue herlaai van die hele stelsel toe te laat, kan ons die opsie toelaat-herlaai: koud byvoeg. By verstek, sonder om toelaat-herlaai te spesifiseer, word 'n konteks slegs toegelaat om self te warm herlaai Ongeag die instelling van hierdie vlag, as CONFIG_ALLOW_COLDREBOOT nie in die HSS geaktiveer is nie, sal die HSS alle koue herlaai versoeke herwerk om warm te maak (per konteks) herselflaaie .
Herlaai in detail
Hierdie afdeling beskryf in detail hoe die herlaai werk – begin met die OpenSBI-laag (die laagste M-modus-laag) en bespreek dan hoe hierdie OpenSBI-laagfunksionaliteit vanaf 'n RTOS-toepassing of 'n ryk bedryfstelsel soos Linux geaktiveer word.
OpenSBI Herlaai oproep
- Die RISC-V Supervisor Binary Interface (SBI) spesifikasie beskryf 'n gestandaardiseerde hardeware-abstraksielaag vir platforminisialisering en firmware-looptyddienste. Die hoofdoel van SBI is om oordraagbaarheid en verenigbaarheid oor verskillende RISC-V-implementerings moontlik te maak.
- OpenSBI (Open Source Supervisor Binary Interface) is 'n oopbronprojek wat 'n verwysingsimplementering van die SBI-spesifikasie verskaf. OpenSBI verskaf ook runtime-dienste, insluitend onderbrekingshantering, timerbestuur en konsole-I/O, wat deur hoërvlak-sagtewarelae gebruik kan word.
- OpenSBI is ingesluit as deel van die HSS en loop op die masjienmodusvlak. Wanneer die bedryfstelsel of toepassing 'n lokval veroorsaak, sal dit aan OpenSBI oorgedra word om dit te hanteer. OpenSBI stel 'n sekere stelsel-oproep-tipe funksionaliteit bloot aan die boonste lae van die sagteware deur 'n spesifieke lokvalmeganisme wat 'n oproep genoem word.
- Die stelselterugstelling (EID 0x53525354) bied 'n omvattende stelseloproepfunksie wat die boonste laag sagteware toelaat om stelselvlak-herlaai of afskakeling te versoek. Sodra hierdie oproep deur 'n U54 opgeroep is, word dit vasgevang deur die HSS-sagteware wat in die masjienmodus op daardie U54 loop, en 'n ooreenstemmende herlaaiversoek word na die E51 gestuur om óf die konteks óf die hele stelsel te herlaai, afhangende van die regte van die konteks.
Vir meer inligting, sien die RISC-V Toesighouer Binêre Interface Spesifikasie veral Stelselterugstelling-uitbreiding (EID #0x53525354 “SRST”).
Linux herlaai
As 'n spesifieke exampHiervan, in Linux, word die afsluit-opdrag gebruik om die stelsel te stop of te herlaai. Die opdrag het tipies baie aliasse, naamlik stop, skakel af en herlaai. Hierdie aliasse spesifiseer of die masjien gestop moet word by afskakeling, om die masjien af te skakel by afskakeling, of om die masjien by afskakeling te herlaai.
- Hierdie gebruikersspasie-opdragte gee 'n herlaaistelseloproep na Linux, wat deur die kern vasgevang word en met 'n SBI-oproep saamgewerk word.
- Daar is verskeie vlakke van herselflaai – REBOOT_WARM, REBOOT_COLD, REBOOT_HARD – dit kan as opdragreëlargumente na die kern deurgegee word (bv.ample, herlaai=w[arm] vir REBOOT_WARM). Vir meer inligting oor die Linux-kernbronkode, sien Documentation/admin-guide/kernel-paramters.txt.
- Alternatiewelik, as /sys/kernel/reboot geaktiveer is, kan die hanteerders hieronder gelees word om die huidige stelselherlaaikonfigurasie te kry, en geskryf om dit te verander. Vir meer inligting oor die Linux-kernbronkode, sien Dokumentasie/ABI/toetsing/sysfs-kernel-reboot.
Waghonde
- 'n Verdere konsep wat verband hou met stelselselflaai en stelselherlaai is dié van stelselherstel na die afvuur van 'n waghond-tydhouer. Waghond-timers word wyd gebruik in ingebedde stelsels om outomaties te herstel van verbygaande hardewarefoute, en om te verhoed dat foutiewe of kwaadwillige sagteware stelselwerking ontwrig.
- PIC64GX bevat hardeware-waghondondersteuning om die individuele harte te monitor wanneer die stelsel aan die gang is. Die waghonde verseker dat die harte herbegin kan word as hulle nie reageer nie weens onherstelbare sagtewarefoute.
- PIC64GX bevat vyf gevalle van waghond-timer-hardewareblokke wat gebruik word om stelseltoesluitings op te spoor - een vir elk van die harts. Om gemengde asimmetriese multi-verwerking te fasiliteer (AMP) werkladings, ondersteun die HSS monitering en reaksie op die waghonde wat skiet.
PIC64GX Waghond
- Die HSS is verantwoordelik vir die selflaai van die toepassingsharte by aanskakeling, en om hulle te herlaai (individueel of gesamentlik) op enige stage, sou dit nodig of verlang word. As gevolg hiervan word reaksie op waghondgebeure op die PIC64GX deur die HSS hanteer.
- 'n 'Virtuele waghond'-monitor word as 'n HSS-staatmasjiendiens geïmplementeer, en sy verantwoordelikhede is om die status van elk van die U54 individuele waghond-hardewaremonitors te monitor. Wanneer een van hierdie U54-waghonde reis, bespeur die HSS dit en sal die U54 herlaai soos toepaslik. As die U54 deel is van 'n SMP-konteks, word die hele konteks vir herselflaai oorweeg, aangesien die konteks 'n warm herlaai-voorreg het. Die hele stelsel sal herlaai word as die konteks koue herlaai-voorreg het.
Relevante Kconfig-opsies
- Waghondondersteuning is by verstek ingesluit in vrygestelde HSS-bou. Indien u 'n pasgemaakte HSS wil bou, sal hierdie afdeling die konfigurasiemeganisme beskryf om te verseker dat Watchdog-ondersteuning geaktiveer is.
- Die HSS word gekonfigureer deur die Kconfig-konfigurasiestelsel te gebruik. 'n Topvlak .config file is nodig om te kies watter dienste in of uit die HSS-bou saamgestel word.
- Eerstens moet die CONFIG_SERVICE_WDOG-opsie op die hoogste vlak geaktiveer word ("Virtual Watchdog-ondersteuning" deur make config).
Dit stel dan die volgende sub-opsies bloot wat afhanklik is van Waghond-ondersteuning:
- CONFIG_SERVICE_WD OG_DEBUG
Aktiveer ondersteuning vir inligting-/ontfoutboodskappe vanaf die virtuele waghonddiens. - CONFIG_SERVICE_WD OG_DEBUG_TIMEOUT_SECS
Bepaal die periodisiteit (in sekondes) wat Watchdog-ontfoutboodskappe deur die HSS uitgestuur sal word. - CONFIG_SERVICE_WD OG_ENABLE_E51
Aktiveer die waghond vir die E51 monitors hart bykomend tot die U54s, die beskerming van die werking van die HSS self.
Wanneer die E51 waghond geaktiveer is, sal die HSS periodiek aan die Waghond skryf om dit te verfris en te verhoed dat dit skiet. As die E51-hart om een of ander rede toesluit of ineenstort en die E51-waghond is geaktiveer, sal dit altyd die hele stelsel terugstel.
Waghond Operasie
Die waghond hardeware implemente af tellers. 'n Verfris-verbode venster kan geskep word deur die waghond-maksimumwaarde op te stel waartoe Verfris toegelaat word (MVRP).
- Wanneer die huidige waarde van die waghondtydteller groter is as die MVRP-waarde, is dit verbied om die waghond te verfris. As u probeer om die waghondtydteller in die verbode venster te verfris, sal 'n uittelonderbreking beweer word.
- Deur die waghond tussen die MVRP-waarde en die snellerwaarde (TRIG) te verfris, sal die teller suksesvol verfris en verhoed dat die waghond skiet.
- Sodra die waghond-tydhouerwaarde onder die TRIG-waarde tel, sal die waghond vuur.
Waghond Staatsmasjien
- Die waghond-staatmasjien is baie eenvoudig - begin deur die waghond vir die E51 op te stel, indien geaktiveer, en beweeg dan deur 'n ledige toestand na monitering. Elke keer om die superloop word hierdie moniteringstoestand opgeroep, wat die status van elk van die U54-waghonde nagaan.
- Die waghond-staatmasjien is in wisselwerking met die selflaai-staatmasjien om 'n hart (en enige ander harts wat in sy selflaaistel is) te herbegin as dit bespeur dat die hart nie daarin geslaag het om sy waghond betyds te verfris nie.
Afsluitmodus
Normaalweg (veral met AMP toepassings), word verwag dat die HSS in M-modus sal bly, op 'n U54, om per-konteks herselflaai toe te laat (dws herlaai slegs een konteks, sonder volle-skyfie-herlaai), en om die HSS toe te laat om gesondheid te monitor ( ECC's, Slot Status Bits, Bus Foute, SBI foute, PMP oortredings, ens.).
- Om herselflaaivermoëns te verskaf op 'n per-AMP konteksbasis (sonder dat die hele stelsel moet herlaai), het die E51 normaalweg bevoorregte geheuetoegang tot die hele geheuespasie van die stelsel. Daar kan egter situasies wees waar dit nie wenslik is nie, en die kliënt kan verkies om te beperk wat die E51 HSS-firmware doen sodra die stelsel suksesvol begin het. In hierdie geval is dit moontlik om die HSS in toesluitmodus te plaas sodra die U54 Application Harts gelaai is.
- Dit kan geaktiveer word deur die HSS Kconfig-opsie CONFIG_SERVICE_LOCKDOWN te gebruik.
- Die inperkingsdiens is bedoel om beperking van die aktiwiteite van die HSS toe te laat nadat dit die U54-toepassing Harts begin het.
Figuur 4.2. HSS-sluitmodus
Sodra die afsluitmodus begin, keer dit dat alle ander HSS-diensstaatmasjiene loop. Dit noem twee swak gebonde funksies:
- e51_pmp_lockdown(), en
- e51_lockdown()
Hierdie funksies is bedoel om deur bordspesifieke kode oorheers te word. Die eerste is 'n konfigureerbare snellerfunksie om 'n BSP toe te laat om die E51 op hierdie stadium uit die toepassingsvragte te sluit. Die swak gebonde verstek implementering van hierdie funksie is leeg. Die tweede is die funksionaliteit wat van daardie punt af uitgevoer word. Die swak-gebonde verstek implementering diens die waghond op hierdie punt in die E51, en sal herlaai as 'n U54 waghond vuur. Vir meer inligting, sien die HSS-bronkode in die services/lockdown/lockdown_service.c file.
Bylaag
HSS payload.bin Formaat
- Hierdie afdeling beskryf die payload.bin file formaat en die beeld wat deur die HSS gebruik word om PIC64GX SMP en AMP toepassings.
- Die payload.bin is 'n geformateerde binêre (Figuur A.10) wat bestaan uit 'n kop, verskeie beskrywingstabelle en verskeie stukke wat die kode- en dataafdelings van elke deel van die toepassingswerklading bevat. 'n Stukkie kan beskou word as 'n aaneenlopende geheueblok van arbitrêre grootte.
Figuur A.10. payload.bin Formaat
Die kopgedeelte (getoon in Figuur A.11) bevat 'n towerwaarde wat gebruik word om die payload.bin en sommige huishoudelike inligting te identifiseer, tesame met besonderhede van die prent wat bedoel is om op elk van die
U54 aansoek kodes. Dit beskryf hoe om elke individuele U54-hart te begin, en die stel selflaaibare beelde in die algemeen. In sy huishoudelike inligting het dit verwysings na verskeie tabelle van beskrywings om die kopgrootte te laat groei.
Figuur A.11. payload.bin Header
- Kode en geïnisialiseerde konstante data word as leesalleen beskou en in 'n leesalleen-afdeling gestoor, waarna deur kopbeskrywers gewys word.
- Nie-nul geïnisialiseerde dataveranderlikes is lees-skryfdata, maar hul inisialiseringswaardes word gekopieer vanaf die leesalleen-deel by aanvang. Dit word ook in die leesalleen-afdeling gestoor.
- Die lees-alleen loonvrag data afdeling word beskryf deur 'n tabel van kode en data stuk beskrywings. Elke stuk beskrywing in hierdie tabel bevat 'n 'hart eienaar' (die hoofhart in die konteks waarop dit geteiken word
at), 'n las afset (afset binne die loonvrag.bin), en 'n uitvoering adres (bestemming adres in PIC64GX geheue), saam met 'n grootte en kontrolesom. Dit word in Figuur A.12 getoon.
Figuur A.12. Leesalleen-stukbeskrywing en loonvrag-stukdata
Benewens die voorgenoemde stukke, is daar ook stukke geheue wat ooreenstem met dataveranderlikes wat tot nul geïnisialiseer is. Dit word nie as data in die loonvrag.bin gestoor nie, maar is eerder 'n spesiale stel nul-geïnisialiseerde deelbeskrywers, wat 'n adres en lengte van RAM spesifiseer om na nul te stel tydens opstart. Dit word in Figuur A.13 getoon.
Figuur A.13. ZI stukke
hss-loonvrag-generator
Die HSS Payload Generator-nutsding skep 'n geformateerde loonvragbeeld vir die Hart Software Service-nulletage selflaaiprogram op PIC64GX, gegee 'n konfigurasie file en 'n stel ELF files en / of binaries. Die konfigurasie file word gebruik om die ELF binaries of binêre blobs te karteer na die individuele toepassing harts (U54s).
Figuur B.14. hss-loonvrag-generator Vloei
Die instrument doen wel basiese gesonde verstandkontroles op die struktuur van die konfigurasie file self en op die ELF-beelde. ELF-beelde moet RISC-V-uitvoerbares wees.
Exampdie hardloop
- Om die hss-payload-generator-instrument met die sample konfigurasie file en ELF files:
$ ./hss-payload-generator -c test/config.yaml output.bin - Om diagnostiek oor 'n voorafbestaande prent te druk, gebruik:
$ ./hss-payload-generator -d output.bin - Om veilige selflaai-verifikasie (via beeldondertekening) moontlik te maak, gebruik -p om die ligging van 'n X.509 Private Key vir die Elliptic Curve P-384 (SECP384r1) te spesifiseer:
$ ./hss-payload-generator -c test/config.yaml payload.bin -p /path/to/private.pem
Vir meer inligting, sien die Secure Boot Authentication-dokumentasie.
Config File Example
- Eerstens kan ons opsioneel 'n naam vir ons beeld stel, anders sal een dinamies geskep word:
stelnaam: 'PIC64-HSS::TestImage' - Vervolgens sal ons die toegangspuntadresse vir elke hart definieer, soos volg:
hart-entry-points: {u54_1: ‘0x80200000’, u54_2: ‘0x80200000’, u54_3: ‘0xB0000000′, u54_4:’0x80200000’}
Die ELF-bronbeelde kan 'n toegangspunt spesifiseer, maar ons wil sekondêre toegangspunte vir harte kan ondersteun indien nodig, bv.ample, as verskeie harts bedoel is om dieselfde beeld te begin, kan hulle individuele toegangspunte hê. Om dit te ondersteun, spesifiseer ons die werklike toegangspuntadresse in die konfigurasie file self.
Ons kan nou 'n paar loonvragte definieer (bron ELF files, of binêre blobs) wat by sekere streke in die geheue geplaas sal word. Die loonvragafdeling word gedefinieer met die sleutelwoord loonvragte, en dan 'n aantal individuele loonvragbeskrywings. Elke loonvrag het 'n naam (pad na sy file), 'n eienaar-hart, en opsioneel 1 tot 3 sekondêre harte.
Boonop het 'n loonvrag 'n privilegiemodus waarin dit met uitvoering sal begin. Geldige voorregmodusse is PRV_M, PRV_S en PRV_U, waar dit gedefinieer word as:
- PRV_M Masjienmodus
- PRV_S Toesighouer-modus
- PRV_U Gebruikersmodus
In die volgende example:
- Daar word aanvaar dat test/zephyr.elf 'n Zephyr-toepassing is wat in U54_3 loop, en verwag om in die PRV_M-voorregtemodus te begin.
- test/u-boot-dtb.bin is die Das U-Boot selflaaiprogram, en dit loop op U54_1, U54_2 en U54_4. Dit verwag om in die PRV_S-voorregmodus te begin.
Belangrik:
Die uitset van U-Boot skep 'n ELF file, maar tipies staan dit nie die .elf-uitbreiding voor nie. In hierdie geval word die binêre wat deur CONFIG_OF_SEPARATE geskep is, gebruik, wat 'n toestelboom-blob by die U-Boot-binêre voeg.
Hier is die eksample Payloads konfigurasie file:
- test/zephyr.elf:
{exec-addr: '0xB0000000', eienaar-hart: u54_3, priv-modus: prv_m, skip-opensbi: true} - test/u-boot-dtb.bin:
{exec-addr: '0x80200000', eienaar-hart: u54_1, sekondêre-hart: u54_2, sekondêre-hart: u54_4, priv-modus: prv_s}
Belangrik:
Saak maak net saak vir die file padname, nie die sleutelwoorde nie. So, byvoorbeeld, word u54_1 as dieselfde as U54_1 beskou, en exec-addr word as dieselfde as EXEC-ADDR beskou. As 'n .elf- of .bin-uitbreiding teenwoordig is, moet dit by die konfigurasie ingesluit word file.
- Vir 'n kaalmetaaltoepassing wat nie met OpenSBI bekommerd wil wees nie, sal die opsie skip-opens, indien waar, veroorsaak dat die loonvrag op daardie hart opgeroep word deur 'n eenvoudige mret eerder
as 'n OpenSBI sbi_init() oproep. Dit beteken dat die hart die kaalmetaalkode sal begin uitvoer, ongeag enige OpenSBI HSM-oorwegings. Let daarop dat dit ook beteken dat die hart nie kan gebruik nie
oproepe om OpenSBI-funksionaliteit op te roep. Die skip-oopmaak-opsie is opsioneel en is verstek op vals. - Om 'n konteks warm herlaai van 'n ander konteks toe te laat, kan ons die opsie laat herlaai byvoeg: warm. Om 'n konteks koue herlaai van die hele stelsel toe te laat, kan ons die opsie toelaat-herlaai: koud byvoeg. By verstek, sonder om toelaat-herlaai te spesifiseer, word 'n konteks slegs toegelaat om self te herlaai.
- Dit is ook moontlik om aanvullende data met elke loonvrag te assosieer, bvample, 'n DeviceTree Blob (DTB) file, deur die bykomende data te spesifiseer filenaam soos volg:
test/u-boot.bin: { exec-addr: '0x80200000', eienaar-hart: u54_1, sekondêre-hart: u54_2, sekondêre-hart: u54_3, sekondêre-hart: u54_4, priv-modus: prv_s, aanvullende-data : test/pic64gx.dtb } - Hierdie bykomstige data sal by die loonvrag ingesluit word (reguit na die hoof geplaas word file in die uitvoerbare
spasie), en die adres daarvan sal in die next_arg1-veld aan OpenSBI deurgegee word (met selflaaityd in die $a1-register na die prent geslaag). - Om te verhoed dat die HSS outomaties 'n konteks selflaai (byvoorbeeld, as ons eerder beheer hiervan na 'n konteks wil delegeer met remoteProc), gebruik die skip-outoboot vlag:
test/zephyr.elf: {exec-addr: '0xB0000000', eienaar-hart: u54_3, priv-modus: prv_m, skip-opensbi: true, skip-outoboot: true} - Laastens kan ons opsioneel die name van individuele loonvragte ignoreer deur die loonvragnaam-opsie te gebruik. Byvoorbeeldample:
test/u-boot.bin: { exec-addr: '0x80200000', eienaar-hart: u54_1, sekondêre-hart: u54_2, sekondêre-hart: u54_3, sekondêre-hart: u54_4, priv-modus: prv_s, aanvullende-data : test/pic64gx.dtb, loonvrag-naam: 'u-boot' }
Let daarop dat die Yocto- en Buildroot Linux-bouers die hss-payload- sal bou, konfigureer en laat loop
kragopwekker soos nodig om toepassingsbeelde te genereer. Daarbenewens het die pic64gx-curiosity-kit-amp masjienteiken in Yocto sal 'n toepassingsbeeld genereer met behulp van die hss-payload-generator-instrument wat demonstreer AMP, met Linux wat op 3 harts loop en Zephyr wat op 1 hart loop.
Hersieningsgeskiedenis
Die hersieningsgeskiedenis beskryf die veranderinge wat in die dokument geïmplementeer is. Die veranderinge word volgens hersiening gelys, wat begin met die nuutste publikasie.
Hersiening |
Datum |
Beskrywing |
A | 07/2024 | Aanvanklike hersiening |
Mikroskyfie inligting
Die mikroskyfie Webwebwerf
Microchip bied aanlyn ondersteuning via ons webwebwerf by www.microchip.com/. Hierdie webwebwerf word gebruik om te maak files en inligting maklik beskikbaar vir kliënte. Sommige van die beskikbare inhoud sluit in:
- Produk Ondersteuning – Datablaaie en errata, toepassingsnotas en aample-programme, ontwerphulpbronne, gebruikersgidse en hardeware-ondersteuningsdokumente, nuutste sagtewarevrystellings en argiefsagteware
- Algemene Tegniese Ondersteuning - Gereelde Vrae (Gereelde Vrae), tegniese ondersteuningsversoeke, aanlyn besprekingsgroepe, mikroskyfie-ontwerpvennootprogramledelys
- Besigheid van Microchip - Produkkieser- en bestelgidse, jongste Microchip-persvrystellings, 'n lys van seminare en geleenthede, lyste van Microchip-verkoopskantore, verspreiders en fabrieksverteenwoordigers
Kennisgewingdiens vir produkverandering
- Microchip se kennisgewingdiens vir produkverandering help om kliënte op hoogte te hou van Microchip-produkte. Intekenare sal e-poskennisgewing ontvang wanneer daar veranderinge, opdaterings, hersienings of foute is wat verband hou met 'n spesifieke produkfamilie of ontwikkelingsinstrument van belang.
- Om te registreer, gaan na www.microchip.com/pcn en volg die registrasie-instruksies.
Kliënte ondersteuning
Gebruikers van Microchip-produkte kan bystand deur verskeie kanale ontvang:
- Verspreider of verteenwoordiger
- Plaaslike Verkoopskantoor
- Ingebedde oplossingsingenieur (ESE)
- Tegniese Ondersteuning
Kliënte moet hul verspreider, verteenwoordiger of ESE kontak vir ondersteuning. Plaaslike verkoopskantore is ook beskikbaar om kliënte te help. 'n Lys van verkoopskantore en liggings is by hierdie dokument ingesluit.
Tegniese ondersteuning is beskikbaar deur die webwebwerf by: www.microchip.com/support.
Mikroskyfie-toestelle-kodebeskermingsfunksie
Let op die volgende besonderhede van die kodebeskermingsfunksie op Mikroskyfie-produkte:
- Mikroskyfie-produkte voldoen aan die spesifikasies vervat in hul spesifieke mikroskyfie-datablad.
- Microchip glo dat sy familie produkte veilig is wanneer dit op die beoogde manier gebruik word, binne bedryfspesifikasies en onder normale toestande.
- Mikroskyfie waardeer en beskerm sy intellektuele eiendomsregte aggressief. Pogings om die kodebeskermingskenmerke van Mikroskyfie-produkte te oortree is streng verbode en kan die Digital Millennium Copyright Act oortree.
- Nóg Microchip nóg enige ander halfgeleiervervaardiger kan die sekuriteit van sy kode waarborg. Kodebeskerming beteken nie dat ons waarborg dat die produk “onbreekbaar” is nie. Kodebeskerming ontwikkel voortdurend. Microchip is daartoe verbind om die kodebeskermingseienskappe van ons produkte voortdurend te verbeter.
Regskennisgewing
Hierdie publikasie en die inligting hierin mag slegs met Mikroskyfie-produkte gebruik word, insluitend om Mikroskyfie-produkte met jou toepassing te ontwerp, te toets en te integreer. Gebruik van hierdie inligting op enige ander wyse oortree hierdie bepalings. Inligting rakende toesteltoepassings word slegs vir u gerief verskaf en kan deur opdaterings vervang word. Dit is jou verantwoordelikheid om te verseker dat jou aansoek aan jou spesifikasies voldoen. Kontak jou plaaslike Microchip-verkoopskantoor vir bykomende ondersteuning of, kry bykomende ondersteuning by www.microchip.com/en-us/support/design-help/client-support-services.
HIERDIE INLIGTING WORD “SOOS IS” DEUR MICROCHIP VERSKAF. MICROCHIP MAAK GEEN VERTOë OF WAARBORGE VAN ENIGE AARD, HETsy UITDRUKKELIJK OF GEÏMPLISEERD, SKRIFTELIK OF MONDELING, STATUTÊR OF ANDERS NIE, VERWANTE MET DIE INLIGTING INGESLUIT, MAAR NIE BEPERK TOT ENIGE GEÏSPLISEERDE WAARBORGE-EN-VERBORGING, GESKIKTHEID VIR 'N SPESIFIEKE DOEL, OF WAARBORGE VERWANTE MET DIE TOESTAND, KWALITEIT OF PRESTASIE.
IN GEEN GEVAL SAL MICROCHIP AANSPREEKLIK WEES VIR ENIGE INDIREKTE, SPESIALE, STRAF-, TOEVALLE OF GEVOLLIKE VERLIES, SKADE, KOSTE OF UITGAWE VAN ENIGE AARD WAT OOKAL VERWANT IS MET DIE INLIGTING OF DIE GEBRUIK DAARVAN, WANNEER DIE OORSAAK IS, WANNEER OOKAL DIE OORSAAK IS. MOONTLIKHEID OF DIE SKADE IS VOORSIENBAAR. IN DIE VOLSTE MAAT DEUR WET TOEGELAAT, SAL MICROCHIP SE TOTALE AANSPREEKLIKHEID OP ALLE EISE OP ENIGE MANIER VERBAND MET DIE INLIGTING OF DIE GEBRUIK DAARVAN NIE DIE AANTAL FOOIE, INDIEN ENIGE, WAARVOOR U DIREKS AAN DIE INFORMATIONOCHIP BETAAL HET, OORSKRYF NIE.
Gebruik van Mikroskyfie-toestelle in lewensondersteunende en/of veiligheidstoepassings is geheel en al op die koper se risiko, en die koper stem in om Mikroskyfie te verdedig, vrywaar en skadeloos te hou van alle skade, eise, regsgedinge of uitgawes wat uit sodanige gebruik voortspruit. Geen lisensies word, implisiet of andersins, onder enige mikroskyfie intellektuele eiendomsregte oorgedra nie, tensy anders vermeld.
Handelsmerke
Die mikroskyfie naam en logo, die mikroskyfie logo, Adaptec, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom , SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron en XMEGA is geregistreerde handelsmerke van Microchip Technology Incorporated in die VSA en ander lande.
AgileSwitch, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero, motorbank, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus-logo, Quiet-Wire, SmartFusion, SyncWorld , TimeCesium, TimeHub, TimePictra, TimeProvider en ZL is geregistreerde handelsmerke van Microchip Technology Incorporated in die V.S.A.
Aangrensende sleutelonderdrukking, AKS, Analoog-vir-die-Digitale Ouderdom, Enige Kapasitor, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, Dynamic , DAM, ECAN, Espresso T1S, EtherGREEN, EyeOpen, GridTime, IdealBridge,
IGaT, In-Kringreeks Serial Programmering, ICSP, INICnet, Intelligente Paralleling, IntelliMOS, Inter-Chip Connectivity, JitterBlocker, Knob-on-Display, MarginLink, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, mSiC, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, Power MOS IV, Power MOS 7, PowerSmart, PureSilicon , QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, eenvoudige kaart, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Uithouvermoë, Trusted Time, TSHARC, Turing, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect en ZENA is handelsmerke van Microchip Technology Incorporated in die VSA en ander lande.
- SQTP is 'n diensmerk van Microchip Technology Incorporated in die VSA
- Die Adaptec-logo, Frequency on Demand, Silicon Storage Technology en Symmcom is geregistreerde handelsmerke van Microchip Technology Inc. in ander lande.
- GestIC is 'n geregistreerde handelsmerk van Microchip Technology Germany II GmbH & Co. KG, 'n filiaal van Microchip Technology Inc., in ander lande.
Alle ander handelsmerke wat hierin genoem word, is die eiendom van hul onderskeie maatskappye. © 2024, Microchip Technology Incorporated en sy filiale. Alle regte voorbehou.
- ISBN: 978-1-6683-4890-1
Gehaltebestuurstelsel
Vir inligting rakende Microchip se kwaliteitbestuurstelsels, besoek asseblief www.microchip.com/quality.
Wêreldwye verkope en diens
AMERIKA |
ASIA/PASIFIK | ASIA/PASIFIK |
EUROPA |
Korporatiewe Kantoor
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Faks: 480-792-7277 Tegniese ondersteuning: www.microchip.com/support Web Adres: www.microchip.com Atlanta Duluth, GA Tel: 678-957-9614 Faks: 678-957-1455 Austin, TX Tel: 512-257-3370 Boston Westborough, MA Tel: 774-760-0087 Faks: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Faks: 630-285-0075 Dallas Addison, TX Tel: 972-818-7423 Faks: 972-818-2924 Detroit Novi, MI Tel: 248-848-4000 Houston, TX Tel: 281-894-5983 Indianapolis Noblesville, IN Tel: 317-773-8323 Faks: 317-773-5453 Tel: 317-536-2380 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Faks: 949-462-9608 Tel: 951-273-7800 Raleigh, NC Tel: 919-844-7510 New York, NY Tel: 631-435-6000 San Jose, CA Tel: 408-735-9110 Tel: 408-436-4270 Kanada – Toronto Tel: 905-695-1980 Faks: 905-695-2078 |
Australië – Sydney
Tel: 61-2-9868-6733 China – Beijing Tel: 86-10-8569-7000 China – Chengdu Tel: 86-28-8665-5511 China – Chongqing Tel: 86-23-8980-9588 China – Dongguan Tel: 86-769-8702-9880 China – Guangzhou Tel: 86-20-8755-8029 China – Hangzhou Tel: 86-571-8792-8115 China – Hong Kong SAR Tel: 852-2943-5100 China – Nanjing Tel: 86-25-8473-2460 China – Qingdao Tel: 86-532-8502-7355 China – Sjanghai Tel: 86-21-3326-8000 China – Shenyang Tel: 86-24-2334-2829 China – Shenzhen Tel: 86-755-8864-2200 China – Suzhou Tel: 86-186-6233-1526 China – Wuhan Tel: 86-27-5980-5300 China – Xian Tel: 86-29-8833-7252 China – Xiamen Tel: 86-592-2388138 China – Zhuhai Tel: 86-756-3210040 |
Indië – Bangalore
Tel: 91-80-3090-4444 Indië – Nieu-Delhi Tel: 91-11-4160-8631 Indië – Pune Tel: 91-20-4121-0141 Japan – Osaka Tel: 81-6-6152-7160 Japan – Tokio Tel: 81-3-6880- 3770 Korea – Daegu Tel: 82-53-744-4301 Korea – Seoel Tel: 82-2-554-7200 Maleisië – Kuala Lumpur Tel: 60-3-7651-7906 Maleisië – Penang Tel: 60-4-227-8870 Filippyne – Manila Tel: 63-2-634-9065 Singapoer Tel: 65-6334-8870 Taiwan – Hsin Chu Tel: 886-3-577-8366 Taiwan – Kaohsiung Tel: 886-7-213-7830 Taiwan – Taipei Tel: 886-2-2508-8600 Thailand – Bangkok Tel: 66-2-694-1351 Viëtnam – Ho Chi Minh Tel: 84-28-5448-2100 |
Oostenryk – Wels
Tel: 43-7242-2244-39 Faks: 43-7242-2244-393 Denemarke – Kopenhagen Tel: 45-4485-5910 Faks: 45-4485-2829 Finland – Esbo Tel: 358-9-4520-820 Frankryk – Parys Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Duitsland – garching Tel: 49-8931-9700 Duitsland – Haan Tel: 49-2129-3766400 Duitsland – Heilbronn Tel: 49-7131-72400 Duitsland – Karlsruhe Tel: 49-721-625370 Duitsland – München Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Duitsland – Rosenheim Tel: 49-8031-354-560 Israel – Hod Hasharon Tel: 972-9-775-5100 Italië - Milaan Tel: 39-0331-742611 Faks: 39-0331-466781 Italië – Padova Tel: 39-049-7625286 Nederland – Drunen Tel: 31-416-690399 Faks: 31-416-690340 Noorweë – Trondheim Tel: 47-72884388 Pole – Warskou Tel: 48-22-3325737 Roemenië – Boekarest Tel: 40-21-407-87-50 Spanje - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Swede – Göteborg Tel: 46-31-704-60-40 Swede – Stockholm Tel: 46-8-5090-4654 VK – Wokingham Tel: 44-118-921-5800 Faks: 44-118-921-5820 |
© 2024 Microchip Technology Inc. en sy filiale.
Dokumente / Hulpbronne
![]() |
MICROCHIP PIC64GX 64-bis RISC-V vierkern mikroverwerker [pdf] Gebruikersgids PIC64GX, PIC64GX 64-bis RISC-V-vierkernmikroverwerker, 64-bis RISC-V-vierkernmikroverwerker, RISC-V vierkernmikroverwerker, vierkernmikroverwerker, mikroverwerker |