Linux töötab mängukonsoolil Atari Jaguar

Pärast Linuxi portimist Sega MegaDrive'ile võimaldati Linuxi kerneli käivitamist Busybox utiliitide komplektiga mängukonsoolil Atari Jaguar, mis ilmus 1993. aastal. Seade oli varustatud CPU Motorola 68000, millel oli 2 MB RAM ja millel võis pideva salvestusena kasutada kuni 6 MB mäluga kartridže. Seade oli varustatud kahe kooprotsessoriga: Tom (GPU, millel on 32-bitine RISC arhitektuur + 64-bitine video töötlemise protsessor + 64-bitine loogiliste operatsioonide protsessor) ja Jerry (DSP, millel on 32-bitine RISC arhitektuur, et hallata heli).

Nagu Sega MegaDrive'i sadam Linuxi tuuma käitamiseks Motorola 68000 protsessoril, millel puudub mäluhalduse (MMU) riistvaramoodul, kompileeriti vaikimisi tuum 7.2.0-rc1 mikrokontrollerite režiimis "NOMMU", mis võimaldab kasutada tasapinnalist mälu mudelit, millel on lineaarne aadressiruum (varem töötati MMU vabade lahenduste kallal uClinuxi tuuma forkis, kuid seejärel vastu võetud peatuuma variandina "NOMMU"). Probleem piiratud operatiivmälu osas lahendati teisiti, kasutades execute-in-place (XIP) mehhanismi, mis võimaldab tuuma koodi otse PZUs käitada ilma selle kopeerimiseta operatiivmälu.

Seadmestiku RAM-i aadress on 0x000000 ja ROM (kassett) aadressil 0x80000. Seetõttu on Linuxi südamiku komponendid jagatud kaheks eraldi mälupiirkonnaks: .rodata ja .text sektsioonid, mis sisaldavad konstande ja koodi, asuvad kassettis, samas kui .data ja .bss sektsioonid koos muudetava teabega asuvad töömälu. Kuna CPU 68000 otsib katkestustabelit aadressilt 0x0 ja südamik asub tegelikult kassettis, mille sisu peegeldub aadressil 0x80000, rakendati veel ühte nipi, kopeerides katkestusvektoreid RAM-i.

Probleem, et Motorola 68000 CPU-l puudus ajastustihend, lahendati DSP-s kasutatavate ajastite kaasamisega helisüntesis. Need ajastid kasutati katkestuste genereerimiseks ülesande planeerija aktiveerimiseks. Südamiku sõnumite edastamiseks laadimise ajal kirjutati eraldi konsooldraiver, mis simuleeris paralleelporti SID-d ja RXD väljundite kaudu, mida juhtis DSP-protsessor.

Kasutajaruumi komponentide kogumise jaoks kasutati Buildrooti tööriistu koos LinuxMD projekti plaastritega. Mälusäästlikkuse huvides kutsuti otse üles käsklustehasesse "/bin/busybox sh", malloc funktsioon uClibcis asendati lihtsustatud malloc-simple variandiga, mis ei salvestanud lisametainfot, ja asemel, et kasutada täisversiooni laadurit nagu U-Boot, tehti otse edastus juhtimiseks tuuma käsuga "jmp $80000".



Allikas: opennet.ru
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster