MICROCHIP PIC64GX 64-bitine RISC-V neljatuumaline mikroprotsessor

Tooteteave
Tehnilised andmed:
- Toote nimi: Mikrokiip PIC64GX
- Alglaadimisprotsess: SMP ja AMP toetatud töökoormused
- Eriomadused: Valvekoera tugi, lukustusrežiim
Toote kasutusjuhised
- Alglaadimisprotsess
- Alglaadimisega seotud tarkvarakomponendid
Süsteemi algkäivitusprotsess hõlmab järgmisi tarkvarakomponente:- Hart Software Services (HSS): nullidtage alglaadur, süsteemimonitor ja rakenduste käitusaja teenuste pakkuja.
- Boot Flow
Süsteemi alglaadimisvoo järjestus on järgmine:- Harti tarkvarateenuste (HSS) initsialiseerimine
- Alglaaduri täitmine
- Rakenduse käivitamine
- Alglaadimisega seotud tarkvarakomponendid
- Valvekoerad
- PIC64GX valvekoer
PIC64GX-l on valvekoera funktsioon, mis jälgib süsteemi tööd ja käivitab toiminguid süsteemitõrgete korral.
- PIC64GX valvekoer
- Lukustusrežiim
Lukustusrežiim on mõeldud klientidele, kes vajavad pärast käivitamist täielikku kontrolli süsteemi toimingute üle. See piirab E51 süsteemimonitori funktsioone.
KKK
- K: Mis on Harti tarkvarateenuste (HSS) eesmärk?
V: HSS toimib nullidenatage alglaadur, süsteemimonitor ja rakenduste käitusaja teenuste pakkuja alglaadimisprotsessi ajal. - K: Kuidas PIC64GX valvekoera funktsioon töötab?
V: PIC64GX valvekoer jälgib süsteemi tööd ja võib süsteemi töökindluse tagamiseks võtta etteantud toiminguid süsteemitõrgete korral.
Sissejuhatus
See raamat selgitab, kuidas Microchip PIC64GX käivitab rakenduste töökoormused ja kirjeldab süsteemi alglaadimisprotsessi, mis toimib sama SMP ja AMP töökoormused. Lisaks hõlmab see seda, kuidas taaskäivitamine töötab SMP ja AMP töökoormused, PIC64GX valvekoerad ja spetsiaalne lukustusrežiim süsteemide jaoks, kus kliendid soovivad täielikku kontrolli, et piirata E51 süsteemimonitori tegevust pärast süsteemi käivitamist.
Alglaadimisprotsess
Heitkem pilk erinevatele süsteemi käivitamisel osalevatele tarkvarakomponentidele, millele järgneb üksikasjalikum ülevaade süsteemi alglaadimisvoo järjestusest.
Alglaadimisega seotud tarkvarakomponendid
Süsteemi algkäivitusprotsessis osalevad järgmised komponendid:
Joonis 1.1. Alglaadimiskomponendid

- Harti tarkvarateenused (HSS)
Hart Software Services (HSS) on null-stage alglaadur, süsteemimonitor ja rakenduste käitusaja teenuste pakkuja. HSS toetab süsteemi varajast häälestamist, DDR-koolitust ja riistvara lähtestamist/konfigureerimist. Enamasti töötab see E51-del ja igal U54-l töötab väike hulk masinarežiimi tasemel funktsioone. See käivitab ühte või mitut konteksti, laadides alglaadimiskandjalt rakenduse kasuliku koormuse, ja pakub operatsioonisüsteemi tuumade jaoks platvormi käitusteenuseid/järelevalve täitmiskeskkonda (SEE). See toetab turvalist alglaadimist ja on oluline komponent riistvara partitsioonide/eraldamise tagamisel AMP kontekstides. - Das U-Boot (U-Boot)
Das U-Boot (U-Boot) on avatud lähtekoodiga universaalne skripteeritav alglaadur. See toetab lihtsat CLI-d, mis saab alglaadimispildi hankida erinevatest allikatest (sh SD-kaardilt ja võrgust). U-Boot laadib Linuxi. Vajadusel võib see pakkuda UEFI keskkonda. Pärast Linuxi käivitamist on see üldiselt valmis ja teelt väljas – teisisõnu, see ei jää pärast alglaadimist residentseks. - Linuxi kernel
Linuxi tuum on maailma populaarseim operatsioonisüsteemi kernel. Koos rakenduste kasutajatemaaga moodustab see selle, mida tavaliselt nimetatakse Linuxi operatsioonisüsteemiks. Linuxi operatsioonisüsteem pakub rikkalikke POSIX API-sid ja arendajakeskkonda, näiteksample, keeled ja tööriistad, nagu Python, Perl, Tcl, Rust, C/C++ ja Tcl; teegid nagu OpenSSL, OpenCV, OpenMP, OPC/UA ja OpenAMP (RPmsg ja RemoteProc).
Yocto ja Buildroot on Linuxi süsteemiehitajad, st neid saab kasutada eritellimusel kohandatud Linuxi süsteemide loomiseks. Yocto väljastab Linuxi distributsiooni koos rikastega
rakenduste, tööriistade ja teekide komplekt ning valikuline paketihaldus. Buildroot väljastab minimaalsema juure filesüsteemi ja saab sihtida süsteeme, mis ei vaja püsivat salvestusruumi, kuid töötavad täielikult RAM-ist (kasutades Linuxi initsiaalide tuge, ntample). - Sefiir
Zephyr on väike avatud lähtekoodiga reaalajas operatsioonisüsteem (RTOS). See pakub reaalajas madala üldkulude raamistikku koos RPMsg-lite sidekanalitega Linuxile. See sisaldab tuuma, teeke, seadme draivereid, protokollivirnu, filesüsteemid, püsivara värskenduste mehhanismid ja nii edasi ning see sobib suurepäraselt klientidele, kes soovivad PIC64GX-i puhul kasutada rohkem paljasmetalli kogemust.
Boot Flow
PIC64GX sisaldab RISC-V südamikku koos 64-bitise E51 süsteemimonitori ja 4 64-bitise U54 rakendushartiga. RISC-V terminoloogias on hart RISC-V täitmiskontekst, mis sisaldab tervet komplekti registreid ja mis täidab oma koodi iseseisvalt. Võite seda pidada riistvaralõimeks või üheks protsessoriks. Hartide rühma ühes tuumas nimetatakse sageli kompleksiks. Selles teemas kirjeldatakse samme PIC64GX coreplexi lähtestamiseks, sealhulgas E51 süsteemi monitorid südames ja U54 rakenduse harts.
- Lülitage PIC64GX coreplex sisse.
Sisselülitamisel vabastab turbekontroller kõik RISC-V südamiku hartid lähtestusest. - Käivitage HSS-kood kiibil olevast eNVM-välkmälust.
Esialgu hakkab iga süda käivitama HSS-koodi kiibil olevast eNVM-välkmälust. See kood paneb kõik U54 rakenduse hartid juhtnööre ootama ja laseb E51 monitoril käivitada koodi käivitamiseks ja süsteemi kuvamiseks. - Pakkige HSS-kood lahti eNVM-ist L2-Scratch'i mällu.
Olenevalt selle ehitusaja konfiguratsioonist on HSS tavaliselt suurem kui eNVM-i välkmälu enda maht ja seega esimene asi, mida E51-l töötav HSS-kood teeb, on end lahti pakkida eNVM-ist L2-Scratch-mällu, nagu on näidatud joonisel. 1.2 ja joonis 1.3.
Joonis 1.2. HSS dekompresseerib eNVM-ist L2 Scratchile
Joonis 1.3. HSS-i mälukaart dekompressiooni ajal
- Hüppa eNVM-ilt L2-Scratchile käivitatavasse faili, nagu on näidatud järgmisel joonisel.
Joonis 1.4. HSS hüppab pärast lahtipakkimist eNVM-ist L2Scratchis koodi kohe
Käivitatav fail koosneb kolmest komponendist:- Riistvara abstraktsioonikiht (HAL), madala taseme kood ja metallist draiverid
- RISC-V OpenSBI kohalik HSS-kahvel (muundatud veidi PIC64GX-i ülesvoolust AMP eesmärkidel)
- HSS-i käitusteenused (olekumasinad töötavad supertsüklis)
- Initsialiseerige OpenSBI kasutatav riistvara ja andmestruktuurid.
Selle lähtestamise eest vastutab HSS-teenus “Startup”. - Hankige rakenduse töökoormuse (payload.bin) pilt välisest salvestusruumist. See on näidatud joonistel 1.5 ja 1.6
Tähtis: PIC64GX Curiosity Kit puhul pärineb see SD-kaardilt.
Joonis 1.5. Payload.bini töökoormuse kujutise toomine välismälust
Joonis 1.6. HSS-mälukaart pärast payload.bin toomist
- Kopeerige failist payload.bin erinevad jaotised nende täitmise aja sihtkohtadesse. Payload.bin on vormindatud pilt, mis koondab erinevad rakenduse kujutised SMP või SMP jaoks AMP töökoormused. See sisaldab koodi-, andmete- ja deskriptorite tabeleid, mis võimaldavad HSS-il koodi- ja andmeosasid sobivalt paigutada sinna, kus neid on erinevate rakenduste töökoormuste käitamiseks vaja.
Joonis 1.7. payload.bin kopeeritakse sihtkoha aadressidesse
- Juhenda asjakohastel U54-del liikuda oma täitmise algusaadressidele. See algusaadressi teave sisaldub failis payload.bin.
- Käivitage U54 rakenduse harts ja kõik sekundidtage alglaadurid. Näiteksample, U-Boot toob esile Linuxi.
Taaskäivitage
Süsteemi käivitamise kontseptsiooniga on seotud vajadus taaskäivitada. Kui mõelda PIC64GX rakenduste töökoormustele, peab taaskäivitamisel arvestama nii sümmeetrilist mitmetöötlust (SMP) kui ka asümmeetrilist mitmetöötlust (AMP) stsenaariumid:
- SMP-süsteemi puhul võib taaskäivitamine turvaliselt kogu süsteemi külmalt taaskäivitada, kuna teises kontekstis ei ole täiendavaid töökoormusi, mida tuleks arvestada.
- Juhul an AMP süsteemi, töökoormusel võib olla lubatud ainult ise taaskäivitada (ja mitte segada ühtegi muud konteksti) või tal võib olla privilegeeritud võimalus süsteemi täielikuks taaskäivitamiseks.
Taaskäivitage ja AMP
SMP ja AMP Taaskäivitamise stsenaariumide korral toetab HSS sooja ja külma taaskäivitamise õiguste kontseptsioone, mis on kontekstile määratavad. Sooja taaskäivitamise õigusega kontekst saab taaskäivitada ainult ennast ja külma taaskäivitamise õigusega kontekst võib teostada süsteemi täieliku taaskäivitamise. Näiteksample, kaaluge järgmist tüüpiliste stsenaariumide komplekti.
- Ühe konteksti SMP töökoormus, millel on lubatud taotleda süsteemi täielikku taaskäivitamist
- Selle stsenaariumi korral on kontekstis lubatud külm taaskäivitamise õigus.
- Kahe kontekstiga AMP töökoormus, kus kontekstil A on lubatud taotleda süsteemi täielikku taaskäivitamist (mõjutab kõiki kontekste) ja kontekstil B on lubatud ainult ennast taaskäivitada
- Selle stsenaariumi korral on kontekstile A lubatud külm taaskäivitamise õigus ja kontekstile B lubatakse sooja taaskäivitamise õigust.
- Kahe kontekstiga AMP töökoormus, kus kontekstidel A ja B on lubatud ainult end ise taaskäivitada (mitte mõjutada teist konteksti)
- Selle stsenaariumi korral on mõlemas kontekstis lubatud ainult sooja taaskäivitamise õigused.
- Kahe kontekstiga AMP töökoormus, kus kontekstidel A ja B on mõlemal lubatud taotleda süsteemi täielikku taaskäivitamist
- Selle stsenaariumi korral on mõlemas kontekstis lubatud külm taaskäivitamise õigused.
- Lisaks on HSS-il võimalik ehituse ajal alati lubada külma taaskäivitamise õigust ja mitte kunagi lubada külm taaskäivitamise õigust.
Asjakohased HSS Kconfigi suvandid
Kconfig on tarkvara koostamise konfiguratsioonisüsteem. Seda kasutatakse tavaliselt ehitusaja valikute valimiseks ja funktsioonide lubamiseks või keelamiseks. See sai alguse Linuxi tuumast, kuid on nüüd leidnud kasutust ka muudes projektides peale Linuxi tuuma, sealhulgas U-Boot, Zephyr ja PIC64GX HSS.
HSS sisaldab kahte Kconfigi suvandit, mis juhivad taaskäivitamist HSS-i vaatenurgast:
- CONFIG_ALLOW_COLD REBOOT
Kui see on lubatud, võimaldab see globaalselt kontekstis väljastada külma taaskäivitamise eccut. Kui see on keelatud, on lubatud ainult sooja taaskäivitamine. Lisaks selle suvandi lubamisele tuleb anda kontekstile luba külma taaskäivitamiseks läbi kasuliku koormuse generaatori YAML file või järgmine Kconfigi suvand. - CONFIG_ALLOW_COLD REBOOT_ALWAYS
- Kui see funktsioon on lubatud, võimaldab see funktsioon globaalselt kõikides kontekstides väljastada külma taaskäivitamise ECAA, olenemata lipu payload.bin õigustest.
- Lisaks võib fail payload.bin sisaldada kontekstipõhist lippu, mis näitab, et teatud kontekstis on õigus väljastada külmi taaskäivitusi:
- Konteksti sooja taaskäivitamise lubamiseks muu konteksti saame lisada YAML-i kirjeldusse suvandi allow-reboot: soe file kasutatakse faili payload.bin loomiseks
- Kogu süsteemi kontekstist külma taaskäivitamise lubamiseks võime lisada suvandi allow-reboot: cold. Vaikimisi, ilma luba taaskäivitamist määramata, on kontekstis lubatud ainult sooja taaskäivitamine. Olenemata selle lipu seadistusest, kui CONFIG_ALLOW_COLDREBOOT pole HSS-is lubatud, töötleb HSS kõik külma taaskäivitamise taotlused ümber soojaks (kontekstipõhiseks) taaskäivitamiseks. .
Taaskäivitage üksikasjalikult
Selles jaotises kirjeldatakse üksikasjalikult, kuidas taaskäivitamine töötab – alustades OpenSBI kihist (madalaim M-režiimi kiht) ja seejärel arutades, kuidas see OpenSBI kihi funktsioon RTOS-rakendusest või rikkalikust OS-ist, nagu Linux, käivitatakse.
OpenSBI Reboot ecall
- RISC-V Supervisor Binary Interface (SBI) spetsifikatsioon kirjeldab standardiseeritud riistvara abstraktsioonikihti platvormi lähtestamiseks ja püsivara käitusaja teenusteks. SBI põhieesmärk on võimaldada kaasaskantavust ja ühilduvust erinevate RISC-V rakenduste vahel.
- OpenSBI (Open Source Supervisor Binary Interface) on avatud lähtekoodiga projekt, mis pakub SBI spetsifikatsiooni viiterakendust. OpenSBI pakub ka käitusteenuseid, sealhulgas katkestuste käsitlemist, taimerihaldust ja konsooli I/O-d, mida saavad kasutada kõrgema taseme tarkvarakihid.
- OpenSBI sisaldub HSS-i osana ja töötab masinarežiimi tasemel. Kui operatsioonisüsteem või rakendus põhjustab lõksu, edastatakse see sellega tegelemiseks OpenSBI-le. OpenSBI paljastab teatud süsteemikõne tüüpi funktsioonid tarkvara ülemistele kihtidele spetsiaalse lõksmehhanismi kaudu, mida nimetatakse tagasikutseks.
- Süsteemi lähtestamine (EID 0x53525354) pakub terviklikku süsteemikutsungi funktsiooni, mis võimaldab ülemise kihi tarkvaral taotleda süsteemitasemel taaskäivitamist või sulgemist. Kui U54 on selle tagasikutsumise käivitanud, jääb selle U54 masinarežiimis töötav HSS-tarkvara lõksu ja E51-le saadetakse vastav taaskäivitamise taotlus konteksti või kogu süsteemi taaskäivitamiseks, olenevalt seadme õigustest. Sisu.
Lisateabe saamiseks vaadake RISC-V järelevalve binaarse liidese spetsifikatsioon eriti Süsteemi lähtestamise laiendus (EID # 0x53525354 "SRST").
Linuxi taaskäivitamine
Konkreetse eksampSellest lähtuvalt kasutatakse Linuxis väljalülituskäsku süsteemi peatamiseks või taaskäivitamiseks. Käsklusel on tavaliselt palju varjunimesid, nimelt peatamine, väljalülitamine ja taaskäivitamine. Need varjunimed määravad, kas peatada masin seiskamisel, lülitada masin väljalülitamisel või taaskäivitada masin väljalülitamisel.
- Need kasutajaruumi käsud väljastavad süsteemi taaskäivitamise süsteemikutse Linuxile, mis jääb kerneli lõksu ja on ühendatud SBI-kutsungiga.
- Taaskäivitamisel on erinevaid tasemeid – REBOOT_WARM, REBOOT_COLD, REBOOT_HARD – neid saab edastada kernelile käsurea argumentidena (ntample, reboot=w[arm] REBOOT_WARM jaoks). Linuxi kerneli lähtekoodi kohta lisateabe saamiseks vt Documentation/admin-guide/kernel-paramters.txt.
- Teise võimalusena, kui /sys/kernel/reboot on lubatud, saab selle all olevaid käitlejaid lugeda, et saada süsteemi praegune taaskäivitamise konfiguratsioon, ja kirjutada, et seda muuta. Linuxi kerneli lähtekoodi kohta lisateabe saamiseks vt Dokumentatsioon/ABI/testimine/sysfs-kernel-reboot.
Valvekoerad
- Veel üks süsteemi käivitamise ja taaskäivitusega seotud kontseptsioon on süsteemi taastamine valvekoera taimeri käivitamisel. Valvekoera taimereid kasutatakse laialdaselt manussüsteemides, et automaatselt taastuda mööduvatest riistvaratõrgetest ja vältida eksinud või pahatahtliku tarkvara süsteemi tööd häirimast.
- PIC64GX sisaldab riistvara valvekoera tuge, et jälgida üksikuid harteid, kui süsteem töötab. Valvekoerad tagavad, et harte saab taaskäivitada, kui need ei reageeri parandamatute tarkvaravigade tõttu.
- PIC64GX sisaldab viite valvekoera taimeri riistvaraplokkide eksemplari, mida kasutatakse süsteemi lukustuste tuvastamiseks – üks iga sardi jaoks. Segatud asümmeetrilise mitmetöötluse hõlbustamiseks (AMP) töökoormust, toetab HSS valvekoerte tulistamise jälgimist ja reageerimist.
PIC64GX valvekoer
- HSS vastutab rakenduste hartide käivitamise eest sisselülitamisel ja nende taaskäivitamise eest (individuaalselt või ühiselt) igal ajal.tage, kui seda on vaja või soovitakse. Selle tulemusena reageerib PIC64GX valvekoera sündmustele HSS.
- "Virtuaalne valvekoera" monitor on rakendatud HSS-i olekumasina teenusena ja selle ülesandeks on jälgida iga üksiku U54 valvekoera riistvaramonitori olekut. Kui üks neist U54 valvekoertest lülitub välja, tuvastab HSS selle ja taaskäivitab U54 vastavalt vajadusele. Kui U54 on osa SMP kontekstist, kaalutakse kogu konteksti taaskäivitamiseks, kuna kontekstil on soe taaskäivitamise õigus. Kui kontekstis on külma taaskäivitamise õigus, taaskäivitatakse kogu süsteem.
Asjakohased Kconfigi suvandid
- Valvekoera tugi on vaikimisi lisatud HSS-i versioonidesse. Kui soovite luua kohandatud HSS-i, kirjeldatakse selles jaotises konfiguratsioonimehhanismi, mis tagab, et Watchdogi tugi on lubatud.
- HSS on konfigureeritud Kconfigi konfiguratsioonisüsteemi abil. Tipptasemel .config file on vajalik selleks, et valida, millised teenused HSS-i järgus kompileeritakse või sellest välja.
- Esiteks tuleb lubada tipptasemel suvand CONFIG_SERVICE_WDOG (“Virtuaalse valvekoera tugi” make config kaudu).
Seejärel kuvatakse järgmised alamvalikud, mis sõltuvad Watchdogi toest:
- CONFIG_SERVICE_WD OG_DEBUG
Lubab virtuaalse valveteenuse teabe-/silumissõnumite toe. - CONFIG_SERVICE_WD OG_DEBUG_TIMEOUT_SECS
Määrab perioodilisuse (sekundites), mille HSS Watchdogi silumissõnumid väljastavad. - CONFIG_SERVICE_WD OG_ENABLE_E51
Võimaldab lisaks U51-dele ka E54 südamemonitoride valvekoera, kaitstes HSS-i enda tööd.
Kui E51 valvekoer on lubatud, kirjutab HSS perioodiliselt valvekoerale, et seda värskendada ja takistada selle käivitamist. Kui E51 süda mingil põhjusel lukustub või jookseb kokku ja E51 valvekoer on sisse lülitatud, lähtestab see alati kogu süsteemi.
Valvekoera operatsioon
Valvekoera riistvara rakendab allaloendureid. Värskenduskeelatud akna saab luua, konfigureerides valvekoera Maksimaalne väärtus, milleni värskendamine on lubatud (MVRP).
- Kui valvekoera taimeri praegune väärtus on suurem kui MVRP väärtus, on valvekoera värskendamine keelatud. Keelatud aknas valvekoera taimerit värskendamise katse kinnitab ajalõpu katkestuse.
- Valvekoera värskendamine MVRP väärtuse ja käivitusväärtuse (TRIG) vahel värskendab edukalt loendurit ja hoiab ära valvekoera tulistamise.
- Kui valvekoera taimeri väärtus on allapoole TRIG väärtust, vallandab valvekoer.
Watchdog State Machine
- Valveoleku masin on väga lihtne – käivitamine, seadistades valvekoera E51 jaoks, kui see on lubatud, seejärel liikudes jõudeolekust jälgimisse. Iga kord superloopi ümber käivitatakse see jälgimisolek, mis kontrollib iga U54 valvekoera olekut.
- Valve olekumasin suhtleb alglaadimisoleku masinaga, et taaskäivitada hart (ja kõik muud alglaadimiskomplektis olevad hartid), kui ta tuvastab, et valvel pole õnnestunud oma valvekoera õigel ajal värskendada.
Lukustusrežiim
Tavaliselt (eriti koos AMP rakendused), eeldatakse, et HSS jääb U54-s M-režiimile, et võimaldada kontekstipõhist taaskäivitamist (st taaskäivitada ainult ühes kontekstis, ilma täieliku kiibi taaskäivitamiseta) ja võimaldada HSS-il jälgida tervist ( ECC-d, lukustuse olekubitid, siini vead, SBI vead, PMP rikkumised jne).

- Taaskäivitusvõimaluste pakkumiseksAMP kontekstipõhiselt (ilma kogu süsteemi taaskäivitamist nõudmata) on E51-l tavaliselt privilegeeritud juurdepääs kogu süsteemi mäluruumile. Siiski võib esineda olukordi, kus see ei ole soovitav, ja klient võib eelistada piirata seda, mida E51 HSS-i püsivara teeb, kui süsteem on edukalt käivitatud. Sel juhul on võimalik lülitada HSS lukustusrežiimi, kui U54 Application Harts on käivitatud.
- Seda saab lubada HSS Kconfigi suvandi CONFIG_SERVICE_LOCKDOWN abil.
- Lukustusteenus on mõeldud HSS-i tegevuste piiramiseks pärast U54 rakenduse Harts käivitamist.
Joonis 4.2. HSS-i lukustusrežiim

Kui lukustusrežiim käivitub, peatab see kõigi teiste HSS-i teenuseolekumasinate töötamise. See kutsub kahte nõrgalt seotud funktsiooni:
- e51_pmp_lockdown() ja
- e51_lockdown()
Need funktsioonid on mõeldud plaadipõhise koodiga tühistamiseks. Esimene on konfigureeritav päästikufunktsioon, mis võimaldab BSP-l kohandada E51 lukustamist rakenduse kasulikust koormusest sel hetkel. Selle funktsiooni nõrgalt seotud vaikerakendus on tühi. Teine on funktsioon, mida käivitatakse sellest hetkest edasi. Nõrgalt seotud vaikerakendus teenindab E51 praegusel hetkel valvekoera ja taaskäivitub, kui U54 valvekoer vallandub. Lisateabe saamiseks vaadake HSS-i lähtekoodi saidilt services/lockdown/lockdown_service.c file.
Lisa
HSS payload.bin vorming
- See jaotis kirjeldab faili payload.bin file vorming ja pilt, mida HSS kasutab PIC64GX SMP ja AMP rakendusi.
- Payload.bin on vormindatud kahendfail (joonis A.10), mis koosneb peast, erinevatest deskriptorite tabelitest ja erinevatest tükkidest, mis sisaldavad rakenduse töökoormuse iga osa koodi- ja andmeosasid. Tükki võib pidada suvalise suurusega külgnevaks mäluplokiks.
Joonis A.10. payload.bin Formaat

Päise osa (näidatud joonisel A.11) sisaldab maagilist väärtust, mida kasutatakse faili payload.bin tuvastamiseks, ja mõningast majapidamisteavet koos pildi üksikasjadega, mis on mõeldud kasutamiseks igal
U54 rakenduskoodid. See kirjeldab iga üksiku U54 harti käivitamist ja alglaaditavate kujutiste komplekti üldiselt. Selle majapidamisteabes on viited erinevatele deskriptorite tabelitele, mis võimaldavad päise suurust kasvada.
Joonis A.11. payload.bin päis

- Koodi ja initsialiseeritud konstantseid andmeid peetakse kirjutuskaitstuks ja need salvestatakse kirjutuskaitstud jaotisesse, millele osutavad päise deskriptorid.
- Nullist erineva initsialiseeritud andmemuutujad on lugemis-kirjutamisandmed, kuid nende lähtestamisväärtused kopeeritakse käivitamisel kirjutuskaitstud tükist. Need on samuti salvestatud kirjutuskaitstud jaotisesse.
- Kirjutuskaitstud kasuliku koormuse andmete jaotist kirjeldatakse koodi- ja andmetükkide deskriptorite tabeliga. Iga tüki deskriptor selles tabelis sisaldab 'harti omanik' (peamine hart kontekstis, millele see on sihitud
at), koormuse nihe (nihe failis payload.bin) ja täitmisaadress (sihtkoha aadress PIC64GX mälus) koos suuruse ja kontrollsummaga. See on näidatud joonisel A.12.
Joonis A.12. Kirjutuskaitstud tükkide kirjeldus ja kasuliku koormuse osaandmed

Lisaks eelmainitud juppidele on olemas ka andmemuutujatele vastavad mälutükid, mis lähtestatakse nulliks. Neid ei salvestata andmetena failis payload.bin, vaid need on spetsiaalne nullinitsialiseeritud tükkide deskriptorite komplekt, mis määravad käivitamisel nullimiseks määratud RAM-i aadressi ja pikkuse. See on näidatud joonisel A.13.
Joonis A.13. ZI tükid

hss-payload-generator
Tööriist HSS Payload Generator loob Hart Software Service nullide jaoks vormindatud kasuliku koormuse kujutisetage alglaadur PIC64GX-l, arvestades konfiguratsiooni file ja komplekt ELFi files ja/või kahendkoodid. Konfiguratsioon file kasutatakse ELF-i kahendfailide või kahendplokkide kaardistamiseks üksikute rakenduste hartidega (U54).
Joonis B.14. hss-payload-generator Flow

Tööriist teostab konfiguratsiooni struktuuri põhilisi terve mõistuse kontrolle file endal ja ELFi piltidel. ELF-kujutised peavad olema RISC-V käivitatavad failid.
Example Jooks
- Tööriista hss-payload-generator käitamiseks koos sampkonfiguratsiooni file ja ELF files:
$ ./hss-payload-generator -c test/config.yaml output.bin - Olemasoleva kujutise diagnostika printimiseks kasutage järgmist.
$ ./hss-payload-generator -d output.bin - Turvalise alglaadimise autentimise lubamiseks (pildi allkirjastamise kaudu) kasutage elliptilise kõvera P-509 (SECP384r384) X.1 privaatvõtme asukoha määramiseks nuppu -p:
$ ./hss-payload-generator -c test/config.yaml payload.bin -p /path/to/private.pem
Lisateavet leiate turvalise alglaadimise autentimise dokumentatsioonist.
Konfig File Example
- Esiteks saame valikuliselt määrata oma pildile nime, vastasel juhul luuakse see dünaamiliselt:
komplekti nimi: 'PIC64-HSS::TestImage' - Järgmisena määratleme iga südame sisenemispunkti aadressid järgmiselt.
hart-entry-points: {u54_1: ‘0x80200000’, u54_2: ‘0x80200000’, u54_3: ‘0xB0000000′, u54_4:’0x80200000’}
ELF-i lähtepildid võivad määrata sisenemispunkti, kuid soovime vajadusel toetada hartide teisesi sisenemispunkte, nt.ample, kui sama pildi alglaadimiseks on ette nähtud mitu harti, võivad neil olla individuaalsed sisenemispunktid. Selle toetamiseks määrame konfiguratsioonis tegelikud sisenemispunktide aadressid file ise.
Nüüd saame määratleda mõned kasulikud koormused (allikas ELF files ehk binaarsed plekid), mis paigutatakse mällu teatud piirkondadesse. Kasuliku koormuse jaotis on määratletud märksõnaga kasulikud koormused ja seejärel mitme üksiku kasuliku koormuse kirjeldusega. Igal kasulikul koormal on nimi (tee selle juurde file), omanik-hart ja valikuliselt 1 kuni 3 sekundaarset harti.
Lisaks on kasulikul koormal privileegrežiim, milles see täitmist alustab. Kehtivad privileegrežiimid on PRV_M, PRV_S ja PRV_U, kus need on määratletud järgmiselt:
- PRV_M Masinarežiim
- PRV_S juhendaja režiim
- PRV_U Kasutajarežiim
Järgmises eksample:
- Eeldatakse, et test/zephyr.elf on Zephyri rakendus, mis töötab U54_3-s ja eeldab, et see käivitub PRV_M privileegrežiimis.
- test/u-boot-dtb.bin on Das U-Boot alglaaduri rakendus ja see töötab U54_1, U54_2 ja U54_4. See eeldab käivitumist PRV_S privileegrežiimis.
Tähtis:
U-Booti väljund loob ELF-i file, kuid tavaliselt ei lisata laiendit .elf. Sel juhul kasutatakse CONFIG_OF_SEPARATE loodud kahendfaili, mis lisab U-Boot binaarile seadmepuu blobi.
Siin on endineample Kasulike koormuste konfiguratsioon file:
- test/zephyr.elf:
{exec-addr: '0xB0000000', omanik-hart: u54_3, priv-mode: prv_m, skip-opensbi: true} - test/u-boot-dtb.bin:
{exec-addr: '0x80200000', omanik-hart: u54_1, sekundaarne-hart: u54_2, sekundaarne-hart: u54_4, priv-režiim: prv_s}
Tähtis:
Juhtum on oluline ainult selle jaoks file tee nimed, mitte märksõnad. Näiteks u54_1 peetakse samaks kui U54_1 ja exec-addr loetakse samaks kui EXEC-ADDR. Kui laiendus an.elf või .bin on olemas, tuleb see konfiguratsiooni lisada file.
- Paljast metallist rakenduse puhul, mis ei taha OpenSBI-ga muret tunda, kutsub suvand vahelejätmine, kui see on tõene, käivitab selle südame kasuliku koormuse, kasutades pigem lihtsat mret-i.
kui OpenSBI sbi_init() kutse. See tähendab, et süda hakkab töötama metallist koodi, olenemata OpenSBI HSM-i kaalutlustest. Pange tähele, et see tähendab ka seda, et süda ei saa kasutada
kutsub välja OpenSBI funktsiooni. Vahelejätmise valik on valikuline ja vaikimisi on vale. - Teise konteksti konteksti soe taaskäivitamise lubamiseks võime lisada suvandi luba reboot: soe. Kogu süsteemi kontekstist külma taaskäivitamise lubamiseks võime lisada suvandi allow-reboot: cold. Vaikimisi lubatakse taaskäivitust määramata kontekstil ainult ennast taaskäivitada.
- Samuti on võimalik iga kasuliku koormaga seostada lisaandmeid, ntample, DeviceTree Blob (DTB) file, täpsustades lisaandmeid filenimetada järgmiselt:
test/u-boot.bin: { exec-addr: '0x80200000', omaniku-hart: u54_1, sekundaarne-hart: u54_2, sekundaarne-hart: u54_3, sekundaarne-hart: u54_4, priv-mode: prv_s, abiandmed : test/pic64gx.dtb } - Need lisaandmed lisatakse kasulikku koormusse (asetatakse kohe pärast peamist file käivitatavas failis
space) ja selle aadress edastatakse OpenSBI-le väljale next_arg1 (andatakse $a1 registris pildile alglaadimise ajal). - HSS-i automaatse konteksti käivitamise vältimiseks (näiteks kui tahame selle juhtimise delegeerida kontekstile remoteProci abil), kasutage skip-autoboot lippu:
test/zephyr.elf: {exec-addr: '0xB0000000', omanik-hart: u54_3, priv-mode: prv_m, skip-opensbi: true, skip-autoboot: true} - Lõpuks saame valikuliselt alistada üksikute kasulike koormate nimed, kasutades suvandit payload-name. Näiteksample:
test/u-boot.bin: { exec-addr: '0x80200000', omaniku-hart: u54_1, sekundaarne-hart: u54_2, sekundaarne-hart: u54_3, sekundaarne-hart: u54_4, priv-mode: prv_s, abiandmed : test/pic64gx.dtb, kasuliku koormuse nimi: 'u-boot' }
Pange tähele, et Yocto ja Buildroot Linuxi koostajad loovad, konfigureerivad ja käitavad faili hss-payload-
generaator vastavalt vajadusele rakenduse piltide genereerimiseks. Lisaks pic64gx-curiosity-kit-amp masina sihtmärk Yoctos genereerib rakenduse kujutise, kasutades hss-payload-generator tööriista, mis näitab AMP, kus Linux töötab 3 hartil ja Zephyr 1 hartil.
Läbivaatamise ajalugu
Redaktsiooniajalugu kirjeldab dokumendis rakendatud muudatusi. Muudatused on loetletud redaktsioonide kaupa, alustades kõige värskemast väljaandest.
|
Läbivaatamine |
Kuupäev |
Kirjeldus |
| A | 07/2024 | Esialgne läbivaatamine |
Mikrokiibi teave
Mikrokiip Websaidile
Microchip pakub veebituge meie kaudu websait aadressil www.microchip.com/. See webvalmistamiseks kasutatakse saiti files ja teave on klientidele hõlpsasti kättesaadav. Osa saadaolevast sisust hõlmab järgmist:
- Tootetugi – Andmelehed ja vead, rakendusmärkused ja sample programmid, disainiressursid, kasutusjuhendid ja riistvara tugidokumendid, uusimad tarkvaraväljaanded ja arhiveeritud tarkvara
- Üldine tehniline tugi – Korduma kippuvad küsimused (KKK), tehnilise toe taotlused, veebipõhised arutelurühmad, Microchipi disainipartnerite programmi liikmete loend
- Microchipi äri – Tootevaliku- ja tellimisjuhendid, Microchipi uusimad pressiteated, seminaride ja ürituste loetelu, Microchipi müügiesinduste, edasimüüjate ja tehase esindajate loetelud
Tootemuudatuste teavitusteenus
- Microchipi tootemuudatuste teavitusteenus aitab hoida kliente Microchipi toodetega kursis. Tellijad saavad e-posti teel teatise alati, kui konkreetse tooteperekonna või huvipakkuva arendustööriistaga on seotud muudatusi, uuendusi, muudatusi või vigu.
- Registreerimiseks minge aadressile www.microchip.com/pcn ja järgige registreerimisjuhiseid.
Klienditugi
Microchipi toodete kasutajad saavad abi mitme kanali kaudu:
- Turustaja või esindaja
- Kohalik müügiesindus
- Manustatud lahenduste insener (ESE)
- Tehniline tugi
Kliendid peaksid abi saamiseks võtma ühendust oma turustaja, esindaja või ESE-ga. Klientide abistamiseks on saadaval ka kohalikud müügiesindused. Selles dokumendis on müügiesinduste ja asukohtade loetelu.
Tehniline tugi on saadaval aadressil websait aadressil: www.microchip.com/support.
Mikrokiibi seadmete koodikaitse funktsioon
Pange tähele järgmisi Microchipi toodete koodikaitse funktsiooni üksikasju:
- Mikrokiibi tooted vastavad nende konkreetsel mikrokiibi andmelehel sisalduvatele spetsifikatsioonidele.
- Microchip usub, et selle tooteperekond on turvaline, kui seda kasutatakse ettenähtud viisil, tööspetsifikatsioonide piires ja tavatingimustes.
- Mikrokiip väärtustab ja kaitseb agressiivselt oma intellektuaalomandi õigusi. Katsed rikkuda Microchipi toodete koodikaitsefunktsioone on rangelt keelatud ja võivad rikkuda Ameerika Ühendriikide autorikaitse seadust.
- Ei Microchip ega ükski teine pooljuhtide tootja ei saa garanteerida oma koodi turvalisust. Koodikaitse ei tähenda, et me garanteerime, et toode on purunematu. Koodikaitse areneb pidevalt. Microchip on pühendunud oma toodete koodikaitsefunktsioonide pidevale täiustamisele.
Õiguslik teade
Seda väljaannet ja siin olevat teavet võib kasutada ainult Microchipi toodetega, sealhulgas Microchipi toodete kavandamiseks, testimiseks ja integreerimiseks teie rakendusega. Selle teabe kasutamine muul viisil rikub neid tingimusi. Teave seadme rakenduste kohta on esitatud ainult teie mugavuse huvides ja selle võivad asendada värskendused. Teie vastutate selle eest, et teie rakendus vastaks teie spetsifikatsioonidele. Täiendava toe saamiseks võtke ühendust kohaliku Microchipi müügiesindusega või hankige täiendavat tuge aadressil www.microchip.com/en-us/support/design-help/client-support-services.
SELLE TEABE ESITAB MIKROKIIP „NAGU ON”. MICROCHIP EI ANNA MINGI SELGITUSLIKU VÕI KAUDSE, KIRJALIKKU VÕI SUULI, KOHUSTUSLIKULT VÕI MUUL SELGITUSI EGA GARANTIID, MIS SEOTUD TEABEGA, KAASA, KUID MITTE PIIRATUD, KAUDSETE GARANTIIDEGA. SOBIVUS KONKREETSEKS EESMÄRGIKS VÕI SELLE SEISUKORDI, KVALITEEDI VÕI TOIMIVUSEGA SEOTUD GARANTIID.
Ühelgi juhul ei vastuta mikrokiip kaudsete, eriliste, karistavate, juhuslike või sellest tulenevate kaotuste, kahjude, kulude või kulude eest, mis on seotud teabe või selle kasutamisega, kuid see on põhjustatud, isegi kui mikrokiibi on soovitatav VÕIMALUS VÕI KAHJUSED ON ETTEÄHTAVAD. SEADUSEGA LUBATUD TÄIELIKULT EI ÜLETA MICROCHIPI KOGUVASTUTUS KÕIGI NÕUETE KOHTA, MIS MILLAL MILLE MÕELIKULT SEOTUD TEABE VÕI SELLE KASUTAMISEGA.
Microchipi seadmete kasutamine elu toetavates ja/või ohutusrakendustes on täielikult ostja riskil ning ostja nõustub kaitsma, hüvitama ja kahjutuks hoidma Microchipi kõigi sellisest kasutamisest tulenevate kahjude, nõuete, hagide või kulude eest. Mikrokiibi intellektuaalomandi õiguste alusel ei edastata litsentse, ei kaudselt ega muul viisil, kui pole öeldud teisiti.
Kaubamärgid
Mikrokiibi nimi ja logo, Microchipi logo, Adaptec, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinklusMD, maXTouchty, 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, Sym , SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron ja XMEGA on ettevõtte Microchip Technology Incorporated registreeritud kaubamärgid USA-s ja teistes riikides.
AgileSwitch, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero, mootoripink, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet-Wire, SmartWFusion, SyncWorld, , TimeCesium, TimeHub, TimePictra, TimeProvider ja ZL on ettevõtte Microchip Technology Incorporated registreeritud kaubamärgid USA-s
Külgneva klahvi summutamine, AKS, digitaalajastu analoog, mis tahes kondensaator, AnyIn, AnyOut, laiendatud lülitus, BlueSky, BodyCom, Clockstudio, CodeGuard, krüptoautentimine, krüptoautomotive, krüptokaaslane, krüptokontroller, dünaamiline komplekt, APICDEM, ddds, ddds. , DAM, ECAN, Espresso T1S, EtherGREEN, EyeOpen, GridTime, IdealBridge,
IGaT, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, IntelliMOS, Kiipidevaheline ühenduvus, JitterBlocker, Nupp ekraanil, MarginLink, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, mSiC, MultiTRAK, NetDetach, kõiketeadv koodi genereerimine, PICDEM, PICDEM.net, PICkit, PICtail, Power MOS IV, Power MOS 7, PureS PowerSmart, , QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, lihtne kaart, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Vastupidavus, usaldusväärne aeg, TSHARC, Turing, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect ja ZENA on ettevõtte Microchip Technology Incorporated kaubamärgid USA-s ja teistes riikides.
- SQTP on ettevõtte Microchip Technology Incorporated teenusemärk USA-s
- Adapteci logo, Frequency on Demand, Silicon Storage Technology ja Symmcom on ettevõtte Microchip Technology Inc. registreeritud kaubamärgid teistes riikides.
- GestIC on ettevõtte Microchip Technology Inc. tütarettevõtte Microchip Technology Germany II GmbH & Co. KG registreeritud kaubamärk teistes riikides.
Kõik muud siin mainitud kaubamärgid on nende vastavate ettevõtete omand. © 2024, Microchip Technology Incorporated ja selle tütarettevõtted. Kõik õigused kaitstud.
- ISBN: 978-1-6683-4890-1
Kvaliteedijuhtimissüsteem
Microchipi kvaliteedijuhtimissüsteemide kohta teabe saamiseks külastage veebisaiti www.microchip.com/quality.
Ülemaailmne müük ja teenindus
|
AMEERIKA |
AASIA/VAIKSE ookeani piirkond | AASIA/VAIKSE ookeani piirkond |
EUROOPA |
| Korporatiivne kontor
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Faks: 480-792-7277 Tehniline tugi: www.microchip.com/support Web Aadress: 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 |
Austraalia – Sydney
Tel: 61-2-9868-6733 Hiina – Peking Tel: 86-10-8569-7000 Hiina – Chengdu Tel: 86-28-8665-5511 Hiina – Chongqing Tel: 86-23-8980-9588 Hiina – Dongguan Tel: 86-769-8702-9880 Hiina – Guangzhou Tel: 86-20-8755-8029 Hiina – Hangzhou Tel: 86-571-8792-8115 Hiina – Hong Kong SAR Tel: 852-2943-5100 Hiina – Nanjing Tel: 86-25-8473-2460 Hiina – Qingdao Tel: 86-532-8502-7355 Hiina – Shanghai Tel: 86-21-3326-8000 Hiina – Shenyang Tel: 86-24-2334-2829 Hiina – Shenzhen Tel: 86-755-8864-2200 Hiina – Suzhou Tel: 86-186-6233-1526 Hiina – Wuhan Tel: 86-27-5980-5300 Hiina – Xian Tel: 86-29-8833-7252 Hiina – Xiamen Tel: 86-592-2388138 Hiina – Zhuhai Tel: 86-756-3210040 |
India – Bangalore
Tel: 91-80-3090-4444 India – New Delhi Tel: 91-11-4160-8631 India – Pune Tel: 91-20-4121-0141 Jaapan – Osaka Tel: 81-6-6152-7160 Jaapan – Tokyo Tel: 81-3-6880-3770 Korea – Daegu Tel: 82-53-744-4301 Korea – Soul Tel: 82-2-554-7200 Malaisia - Kuala Lumpur Tel: 60-3-7651-7906 Malaisia – Penang Tel: 60-4-227-8870 Filipiinid – Manila Tel: 63-2-634-9065 Singapur 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 Tai – Bangkok Tel: 66-2-694-1351 Vietnam – Ho Chi Minh Tel: 84-28-5448-2100 |
Austria – Wels
Tel: 43-7242-2244-39 Faks: 43-7242-2244-393 Taani – Kopenhaagen Tel: 45-4485-5910 Faks: 45-4485-2829 Soome – Espoo Tel: 358-9-4520-820 Prantsusmaa – Pariis Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Saksamaa – garching Tel: 49-8931-9700 Saksamaa – Haan Tel: 49-2129-3766400 Saksamaa – Heilbronn Tel: 49-7131-72400 Saksamaa – Karlsruhe Tel: 49-721-625370 Saksamaa – München Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Saksamaa – Rosenheim Tel: 49-8031-354-560 Iisrael – Hod Hasharon Tel: 972-9-775-5100 Itaalia – Milano Tel: 39-0331-742611 Faks: 39-0331-466781 Itaalia – Padova Tel: 39-049-7625286 Holland – Drunen Tel: 31-416-690399 Faks: 31-416-690340 Norra – Trondheim Tel: 47-72884388 Poola - Varssavi Tel: 48-22-3325737 Rumeenia – Bukarest Tel: 40-21-407-87-50 Hispaania – Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Rootsi – Göteborg Tel: 46-31-704-60-40 Rootsi – Stockholm Tel: 46-8-5090-4654 Ühendkuningriik – Wokingham Tel: 44-118-921-5800 Faks: 44-118-921-5820 |
© 2024 Microchip Technology Inc. ja tema tütarettevõtted.
Dokumendid / Ressursid
![]() |
MICROCHIP PIC64GX 64-bitine RISC-V neljatuumaline mikroprotsessor [pdfKasutusjuhend PIC64GX, PIC64GX 64-bitine RISC-V neljatuumaline mikroprotsessor, 64-bitine RISC-V neljatuumaline mikroprotsessor, RISC-V neljatuumaline mikroprotsessor, neljatuumaline mikroprotsessor, mikroprotsessor |





