Recent Plan 9 Work at Bell Labs

Geoff Collyer [email protected]−labs.com *All L=>oH=JoHEAI MKHH=O0Ell,NAM JAHIAO%'%" 75)

ABSTRACT

*All L=>I HA?AnJlO FoHJA@ 2l=n ' Jo nAM IOIJAmI MEJD non-2+ =H?DE­ JA?JKHAI. 6DEI EI = IJ=JKI HAFoHJ on JDoIA FoHJI =n@ = IKmm=HO oB MD=J DAlFA@,MD=J @E@nߣJ =n@MD=J ?oKl@.

1. Introduction 1n mO CHoKF oB 2l=n ' @ALAloFAHI =n@ KIAHI =J *All L=>I En MKHH=O 0Ell @KHEnC JDA l=IJ JMo OA=HI  &ߞ   oH Io, mK?D oB oKH MoHk D=I >AAn >=IA@ on FoHJI oB 2l=n ' Jo m=?DEnAI oJDAH JD=n JDA 1*M 2+. 6DEI J=lk MEll @AI?HE>A JDA FoHJI, MD=J MA KIA JDAm oHFl=nJoKIA JDAmBoH,=n@MD=J MA lA=HnA@. )I KIK=l, JDA >Klk oB 2l=n ' ?o@A EI IKBBE?EAnJlO FoHJ=>lA JD=J onlO JDA kAHnAl nAA@I Jo >A moLA@ Jo = nAM IOIJAm, =n@ ALAn JD=J onlO EnLolLAI FoFKl=JEnC = IK>@EHA?JoHO oB /sys/src/9 =n@ FoIIE>lO ?HA=JEnC = >ooJIJH=F FHoCH=m En /sys/src/boot.) FoHJ Jo = IOIJAm BoH MDE?D MA D=LA no ?omFElAH =n@ no IEmEl=H kAHnAl MoKl@ HAGKEHA IK>IJ=nJE=llOmoHA MoHk,=I@AI?HE>A@EnHABAHAn?A [$].

2. Non−PC Ports: Common Problems and Techniques 9A FoHJA@ 2l=n ' Jo 2oMAH2+ "#, "" =n@ "# m=?DEnAI =n@ Jo )4M ' $ =n@ +oHJAN-)&m=?DEnAI. 6DAO=ll ID=HA ?AHJ=En?l=IIAIoB o>IJ=?lAI.

2.1. Memory Barriers and Caches ) B=EHlO ?ommon mAmoHO =H?DEJA?JKHA EI = JD=J store EnIJHK?JEonI GKAKA @=J= En = write buffer En JDA FHo?AIIoH, MDE?D EI CH=@K=llO @H=EnA@ Jo = BEHIJ-lALAl ?=?DA, JDAn Jo = l=HCAH >KJ IloMAH IA?on@-lALAl ?=?DA, =n@ BEn=llO Jo ,4)M. 6DA 1*M 2+ mo@Al FHoLE@AI ?=?DA-?oDAHAnJ mAmoHO, Io JD=J MA H=HAlO D=LA Jo MoHHO =>oKJ ?=?DA m=EnJAn=n?A En JDA 2+ FoHJ. +=?DA-?oDAHAnJ mAmoHO l=HCAlO DE@AI JDA IFAA@ JHE?kI FKllA@ >O mo@AHn FHo?AIIoHI, MDE?D En?lK@A =CCHAIIELA ?=?DEnC JDHoKCD mKlJEFlA lALAlI oB ?=?DA, =n@ oKJ-oB-oH@AH oH @Al=OA@ mAmoHO IJoHAI =n@ EnIJHK?JEon ANA?KJEon. -LAn on JDA 2+, MA IJEll o??=IEon=llO D=LA Jo ANA?KJA @=J= oH EnIJHK?JEon >=HHEAH EnIJHK?JEonI >O ?=llEnC coherence Jo AnIKHA JD=J FHALEoKI EnIJHK?JEonI =n@ mAmoHO IJoHAI D=LA ?omFlAJA@; BoH AN=mFlA, En JDA EmFlAmAnJ=JEon oB lo?kI Jo =??AlAH=JA noJEBE?=JEon oB oJDAH FHo?AIIoHI JHOEnCJo=?GKEHA JDA lo?k,=n@>ABoHA oH=BJAH,M) JH=nIBAHI. *O ?onJH=IJ, JDA 2oMAH2+ D=I lonC ANFoIA@ JDA =>oLA FHo?AIIoH JHE?kI Jo JDA FHoCH=m­ mAH, =n@ )4M FHo?AIIoHI =HA noM ?=J?DEnC KF =l=I. 5o En JDA FoHJI JD=J 1 D=LA @onA, ­ ­

F=HJlO oKJ oB F=H=noE=, 1 M=I B=EHlO DA=LO-D=n@A@ En JDA KIA oB >=HHEAH EnIJHK?JEonI Jo =LoE@ IKHFHEIAI. NoM JD=J JDA FoHJI =HA KF =n@ HKnnEnC, IomA oB JDoIA >=HHEAHI =HA >AEnCHAmoLA@=n@ kprof D=I>AAnDAlFBKl EnBEn@EnCDoJ IFoJI@KA Jo>=HHEAHI. 6DA BKll IAGKAn?A oB oFAH=JEonI nAA@A@ Jo CK=H=nJAA JD=J = MHEJA Jo mAmoHO =@@HAII addr D=I ?omFlAJA@ oH =J lA=IJ EI LEIE>lA Jo =ll FAHEFDAH=lI =n@ oJDAH FHo?AIIoHI En JDAIA IOIJAmIEI: ߦ =nEnIJHK?JEon>=HHEAH,JoBoH?A JDA IJoHA EnIJHK?JEonJo?omFlAJA ߦ = @=J= >=HHEAH, Jo BlKID JDA @=J= BHom JDA FHo?AIIoHߣI mAmoHO MHEJA >KBBAH Jo lALAl L @=J= ?=?DA oHmAmoHOEB Kn?=?DA@ ߦ BlKID addrߣIlALAl @=J= ?=?DA lEnA JoJDA lALAl L ?=?DA,EB =nO ߦ BlKID addrߣIlALAl @=J= oHKnEBEA@?=?DA lEnA Jo4)M oHBKHJDAH?=?DA lALAlI 6DEI IAGKAn?A ?oKl@ D=LA Jo >A ANJAn@A@ En BKJKHA Jo =@@EJEon=l lALAlI oB ?=?DA. 6DA )4M L% =H?DEJA?JKHA ?=?DA ?onJHol HACEIJAHI FAHmEJ AECDJ lALAlI oB ?=?DA 6DA BKll IAGKAn?A EI onlO nAA@A@ BoH ?=?DA@ =?JK=llO MHEJA->=?k ?=?DA@ mAmoHO, =n@ @ALE?A HACEIJAHI =HA m=FFA@ =I Kn?=?DA@, Io JDAO onlO HAGKEHA JDA >=HHEAH EnIJHK?JEonI Jo AnIKHA JD=J IJoHAID=LA ?omFlAJA@. +=?DA lEnAI=HA oBJAn! oH$">OJAIlonC. 1n = BAM ?=IAI, BoH AN=mFlA =BJAH ,M) EnFKJ, EJߣI nA?AII=HO Jo EnL=lE@=JA ?=?DA lEnAI H=JDAHJD=nBlKIDEnCJDAm. 9DAnALAHFoIIE>lA,MAߣLA ?onBECKHA@?=?DAIJo>A MHEJA->=?k BoHm=NEmKmIFAA@. 9A EmFoHJA@ 75* ?o@A BHom JDA 2+ FoHJ Jo JDA )4M FoHJI =n@ D=@ Jo BEHIJ =@@ >=HHEAHI =n@ ?=?DA BlKIDEnC Jo EJ. 6DA 75* En-mAmoHO @=J= IJHK?JKHAI m=EnJ=EnA@ F=HJlO >O JDA 75* @HELAHI =n@ F=HJlO >O JDA DoIJ ?onJHollAHI =HA ?KHHAnJlO =llo?=JA@ BHom Kn?=?DA@ mAmoHO >A?=KIA m=n=CEnC JDA ?=?DAI En JDA FHAIAn?A oB IK?D mENA@ @=J= IJHK?JKHAI M=I Joo D=H@: ?onIE@AH = @=J= IJHK?JKHA, JDA BEHIJ F=HJ m=EnJ=EnA@ >O D=H@M=HA, JDA IA?­ on@ m=EnJ=EnA@ >O IoBJM=HA, =n@ JDA >oKn@=HO >AJMAAn JDAm EI noJ = ?=?DA-lEnA >oKn@=HO,OAJ JDA @=J= IJHK?JKHA EIHAGKEHA@>OD=H@M=HA Jo>A =lECnA@Jo= FoMAHoB .

2.2. Kernel Memory Mapping 1n JDA 8EHJAN =n@ )4M FoHJI, JDA m=NEmKm FDOIE?=l mAmoHO M=I # M* oH lAII JDoKCD noJ =lM=OI IJ=HJEnC =J FDOIE?=l =@@HAII zAHo, Io >O m=FFEnC JDA kAHnAl >=IA KZ-4O Jo LEHJK=l =@@HAIIAI 0x80000000 2oMAH2+, 0xC0000000 61 OM)2!# IOIJAm-on-=-?DEF 5o+ oH 0x60000000 M=HLAll KEHkMoo@ 5o+, MA =HA =>lA Jo =@@HAII =ll oB FDOIE?=l mAmoHO BHom JDA kAHnAl KIEnC JHELE=l LAHIEonI oB kmap =n@ kunmap, KnlEkA JDA 2+ kAHnAl, MDE?D EI m=FFA@ =J LEHJK=l 0xF0000000 OAJ nAA@I Jo >A =>lA Jo =@@HAII KF Jo !.%# /* oB mAmoHO KIEnC kAHnAl LEHJK=l =@@HAIIAI JDoIA =>oLA KZ-4O. 6DA @EBBAHAnJ >=IAI MAHA ?DoIAn Jo FAHmEJ L=HEoKI @ALE?AI Jo >A E@AnJEJO-m=FFA@BoHIEmFlE?EJO.

2.3. Kernel Debugging 6DA 8EHJAN =n@ 1/-2L >o=H@I En?lK@A = noHm=l 1nJAl-& #-?omF=JE>lA IAHE=l FoHJ =n@ = BAM L-,I Kn@AH IoBJM=HA ?onJHol, MDE?D IEmFlEBEAI EnEJE=l FoHJEnC =n@ @A>KCCEnC. 6DA )4M >o=H@I oJDAH JD=n 1/-2L D=LA ?om>EnA@ J6)/ =n@ IAHE=l FoHJI MEJD IFA?E=l ?=>lAI MEJD = 75* ?onnA?JoH =J JDA oJDAH An@. /serial noM knoMI DoM Jo @HELA JDAIA FoHJI=n@JDAHA =HA M59En@oMI@HELAHIJoo. On JDA )4M FoHJI MA D=LA An=>lA@ D=H@M=HA M=J?D@oC JEmAHI Io JD=J EB JDA kAHnAl CoAI oBB JDA H=ElI, JDA IOIJAm MEll HAIAJ EJIAlB, JDKI HAJKHnEnC ?onJHol Jo 7->ooJ. Das U−boot EI = ߢKnELAHI=lߣ oFAn-IoKH?A >ooJ lo=@AH @AHELA@ BHom LEnKN =n@ oBJAn FHoLE@A@ ­!­

=I JDA IJo?k >ooJ lo=@AH on non-2+ IOIJAmI. 6DAHA EI IEmEl=H ?o@A En JDA 8EHJAN FoHJI, >KJ EJߣI?KHHAnJlOJKHnA@oBB >A?=KIA HAIAJJEnCJDA 8EHJAN>o=H@IEIlAIIKIABKl.

2.4. ARM Kernel Initialisation 7->ooJ jKIJ l=OI JDA kAHnAlߣI Em=CA @oMn En mAmoHO, MEJDoKJ HAC=H@ BoH IACmAnJ >oKn@=HEAI, Io JDA )4M kAHnAlI HAlo?=JA JDAEH @=J= IACmAnJI Jo JDA ANFA?JA@ FDOIE?=l =@@HAIIAI=n@JDAnzAHoJDAEH*55IACmAnJI. 9A KIA 7->ooJ Jo lo=@ /cfg/pxe/$ether EnJo mAmoHO >ABoHA lo=@EnC JDA kAHnAl, MDE?DF=HIAIJDA En-mAmoHO?oFOJoIEmKl=JA MD=J 9load MoKl@D=LA @onA onJDA 2+. 7->ooJ ?onBECKHAI JDA FHo?AIIoH =n@ L=HEoKI 5o+ @ALE?AI >ABoHA lo=@EnC JDA kAHnAl, MDE?D EI = DAlF >A?=KIA JDAHA =HA m=nO, m=nO BECKH=JELA @E=lI =n@ kno>I JDoKI=n@I oB F=CAI MoHJD JD=J ?=n >A JMA=kA@ =n@ IomAJEmAI mKIJ >A jKIJ Jo CAJ >=IE? BKn?JEon=l­ EJO. OKH kAHnAlI m=kA =n ABBoHJ Jo ?onBECKHA JDA D=H@M=HA JD=J JDAO KIA, >KJ FHo>=>lO @onߣJ @o JDA BKll jo>. 6EmA EI BEnEJA >KJ D=H@M=HA ?onBECKH=JEon HACEIJAHI =n@ F=@ =n@ CFEo?onBECKH=JEonI=HA noJ oHIoEJ IAAmI.

2.5. Floating Point and Other Emulation 6DA :ElEnN 8EHJAN =n@ M=HLAll KEHkMoo@ >o=H@I D=LA no Blo=JEnC-FoEnJ KnEJI, Io JDA kAH­ nAl JH=FI =n@ AmKl=JAI Blo=JEnC-FoEnJ EnIJHK?JEonI. 6DEI EI nA?AII=HO >A?=KIA Blo=JEnC-FoEnJ EIKIA@En awk,BoHAN=mFlA. 6DA )4M FoHJIMEll =lIoAmKl=JA ldrex, strex =n@ lo?=llO-EnLAnJA@ cas EnIJHK?JEonI EB JDA FHo?AIIoHJH=FIJDAm=IEllAC=l EnIJHK?JEonI.

2.6. Math Debugging 9A KIA@ = FoHJ oB 9. M. K=D=nߣI paranoia Jo M=J?D BoH AHHoHI En Blo=JEnC-FoEnJ AmKl=­ JEon. ) nAM FHoCH=m Jo LAHEBO vlong =HEJDmAJE? BoKn@ = ?o@A-CAnAH=JEon >KC En qc MDE?DD=IIEn?A >AAnBENA@.

3. PowerPC Ports 6DAIA 2oMAH2+ FoHJI=HA =ll +27 IAHLAHkAHnAlI.

3.1. Blue Gene Ports 6DEI MoHk EI >AEnC BKn@A@ >O JDA 7.5. ,AFJ. oB -nAHCO ,o- Kn@AH JDA FHojA?J n=mA ߢ0)4-ߣ* =n@ JDA m=En F=HJE?EF=nJI =HA *All L=>I, 1*M 4AIA=H?D, 5=n@E= N=JEon=l L=>I =n@ 8EJ=nKoL=. 6DA EnJAnJ EI Jo FHoLE@A BKll oFAH=JEnC IOIJAm ?=F=>ElEJEAI LE= ?omF=H=­ JELAlO lECDJMAECDJ 2l=n ' H=JDAH JD=n DA=LOMAECDJ LEnKN oH ALAn moHA FHEmEJELA oFAH=J­ EnCIOIJAmIonLAHOl=HCA-I?=lA F=H=llAl m=?DEnAI. 6DA *lKA /AnA m=?DEnAI =HA m=nO-?oHA 2oMAH2+ IOIJAmI BHom 1*M MEJD mKlJEFlA ?oHAI ID=HEnC mAmoHO on = IEnClA >o=H@, =n@ m=nO >o=H@I En = ?omFlAJA IOIJAm, ?onnA?JA@ LE= -JDAHnAJ =n@ IALAH=l JOFAI oB nAJMoHkI @ALAloFA@ >O 1*M IFA?EBE?=llO BoH JDA *lKA /AnA m=?DEnAI. 2Ho?AIIoH ?lo?k H=JAI =HA JOFE?=llO mo@AIJ A.C., Kn@AH /0z Jo HA@K?A FoMAH ?onIKmFJEon =n@ DA=J @EIIEF=JEon. .lo=JEnC-FoEnJ EnIJHK?JEonI @EBBAH BHom JDA KIK=l 2oMAH2+ EnIJHK?JEonI. 6DA ?omFlAJA IOIJAm ?=n >A F=HJEJEonA@ EnJo En@AFAn@AnJ ?lKIJAHI oB FoMAH-oB- >o=H@I. )ll JDA ?oHAI oB = IEnClA ?lKIJAH =HA ______* 2oHJEonI oB JDEI FHojA?J IKFFoHJA@ >O JDA ,AF=HJmAnJ oB -nAHCO Kn@AH )M=H@ NKm>AH ,--./ -&-4 #&"%. ­"­

EnEJE=llO lo=@A@ LE= J6)/ MEJD JDA I=mA kAHnAl Em=CA =n@ =ll IJ=HJA@ IOn?DHonoKIlO =J on?A. 6DA IOIJAmI MA D=LA @ALAloFA@ on =HA =J )HConnA N=JEon=l L=>. 6DA AnLEHonmAnJ EI LAHO mK?D CA=HA@ Jo >=J?D FHo?AIIEnC, Io EnJAH=?JELA @ALAloFmAnJ EI = >EJ o@@,=n@oKH IAIIEonI=HA lEmEJA@Jo=J moIJ =nDoKHoB Al=FIA@JEmA onJDA @ALAloFmAnJ m=?DEnA. )n EnEJE=l FoHJ Jo JDA *//L MEJD $"K 2oMAH2+ "" ?oHAI M=I @onA, >KJ ?KHHAnJ MoHk EI on JDA l=HCAH *//2 MEJD $K 2oMAH2+ "# ?oHAI =n@ MEll FHo>=>lO moLA ALAnJK=llO Jo JDA IJEll l=HCAH *//3 MEJD =J lA=IJ %#, 2oMAH2+ "$? ?oHAI >AEnC >KElJ noM >O 1*M. ,HELAHI BoH JDA L=HEoKI 1*M nAJMoHkI D=LA >AAn MHEJJAn. 9AߣLA @onA IomA MoHk on moHA =CCHAIIELA '2 ?=?DEnC oB EnBHAGKAnJlO-?D=nCA@ BElAI MEJD KIAH-mo@A IAHLAHI; JDA @AJ=ElI =HA HAFoHJA@ AlIAMDAHA =J JDEI MoHkIDoF.# 1*M D=I CH=nJA@ FAHmEIIEon Jo ANFoHJ = In=FIDoJ oB JDA *//2 2l=n ' FoHJ, =n@ EJ ?=n >A ANJH=?JA@ MEJD onA oB JDAIA ?omm=n@I: hg clone http://bitbucket.org/ericvh/hare git clone http://git.anl−external.org/plan9.git NoJA JD=J JDEI EI noJ = IJo?k 2l=n ' kAHnAl >KJ EI =n EnJAHn=l @ALAloFmAnJ kAHnAl L=HE=nJ n=mA@ 9k.

3.2. Virtex 4 and 5 Ports 6DA :ElEnN 8EHJAN " .: =n@ # .:6 AL=lK=JEon >o=H@I =HA .2/)->=IA@ IOIJAmI MEJD 2oM­ AH2+ FHo?AIIoHI !M0z "#,#: =n@ "M0z @K=l-EIIKA "":#, !, % HAIFA?­ JELAlO. 6DAO D=LA L ?=?DAI >KJ no L ?=?DAI. 9A @E@ JDAIA FoHJI Jo @AmonIJH=JA JDA BA=IE>ElEJO oB =n E@A= BoH = D=H@M=HA @ALE?A Jo >A KIA@ En Am>A@@A@ IOIJAmI. 6DA JMo AL=lK=JEon >o=H@I =HA IEmEl=H =n@ JDA 8EHJAN # FoHJ EI = mEnoH L=HE=nJ oB JDA 8EHJAN " FoHJ =n@ KIAI m=nO oB EJI IoKH?A BElAI. 1J MoKl@ >A =MkM=H@ Jo ?om>EnA JDAm EnJo = IEnClA FoHJ >A?=KIA JDA loM-lALAl @AJ=ElI oB JH=FI =n@ mAmoHO m=n=CAmAnJ @EBBAH >AJMAAnJDA 2oMAH2+ "#=n@"". 6DA 2oMAH2+ "#,#: AHH=J= lEIJ M=I lonC =n@ MoHHOEnC >KJ MA MAHA =>lA Jo MoHk =HoKn@ moIJ oB JDA D=H@M=HA >KCI. 6DA "":# D=@ = mK?D IDoHJAH =n@ lAII MoHHE­ IomA AHH=J= lEIJ.

3.2.1. Virtex Bootstrapping )n .2/) EI = .EAl@-2HoCH=mm=>lA /=JA )HH=O. ) CE=nJ :ElEnN +), Jool ?HKn?DAI JDHoKCD = 80,L @ABEnEJEon oB OoKH IFA?EBE? ߢD=H@M=HAߣ @AIECn BoH !ߞ$ mEnKJAI, @oMnlo=@I JDA CAnAH=JA@ >EJ-IJHA=m, MDE?D En?lK@AI JDA IJ=JE? 4)M ?onJAnJI, EnJo JDA .2/), =n@ IJ=HJI EJ HKnnEnC >O J=kEnC JDA 2oMAH2+I oKJ oB HAIAJ. 6DA noHm=l 2oMAH2+ HAIJ=HJ IAGKAn?A IAJI JDA 2+ Jo JDA l=IJ MoH@ oB mAmoHO IJ=JE? 4)M En JDEI ?=IA =n@ >ACEnIANA?KJEon. 6DKI MA nAA@ Jo En?lK@A = IJHEFFA@-@oMn 9load >ooJIJH=F FHoCH=m En JDA IJ=JE? 4)M ?onJAnJI  &K >OJAI oB JDA >EJ-IJHA=m lo=@A@ EnJo JDA .2/). 9load lo=@I = 8EHJAN kAHnAl, /power/9vt[45]cpu, oLAH -JDAHnAJ LE= *OO62 =n@ 6.62 =n@ jKmFI Jo EJ. 5En?A >ooJIJH=FFEnC LE= @oMnlo=@A@ >EJ-IJHA=m =n@ 9load EI HAl=JELAlO IloM =n@ @EBBE­ ?KlJ Jo JHECCAH HAmoJAlO, /dev/reboot =n@ #ec MAHA EmFlAmAnJA@ =n@ @A>KCCA@ A=HlO, MDE?D =lloMA@ KI Jo HA>ooJ =J MEll, ALAn HAmoJAlO. 9A ?=HHEA@ JDEI BoHM=H@ EnJo JDA )4M FoHJIJoo,JDoKCD7->ooJ EImoHA JH=?J=>lA JD=nJDA 8EHJAN>ooJ FHo?AII. 6DA 8EHJAN # ?=n >A ?onBECKHA@ Jo D=LA JMo 2oMAH2+ ?oHAI, >KJ EJI ?=?DAI =HA FAH- FHo?AIIoH =n@ noJ m=EnJ=EnA@ ?oDAHAnJlO, Io ?ooH@En=JEnC JDA JMo ?oHAI EI F=EnBKl =n@ ­#­ oKH ANEIJEnC IOmmAJHE? mKlJEFHo?AIIEnC ?o@A EInߣJ IKBBE?EAnJ. 1B ?onBECKHA@ BoH JMo ?oHAI, 2l=n ' ?KHHAnJlO FKJI JDA IA?on@ onA Jo IlAAF. 1@A=llO, EJ MoKl@ >A nE?A Jo KIA JDA IA?on@?oHA JoHKnJDA H=JDAH@Km>-JDAHnAJ ?onJHollAH.

3.2.2. Virtex Performance 6DAIA 2oMAH2+ID=LA onlO$"JH=nIl=JEonlook=IE@A >KBBAH6L*AnJHEAIEnJDAEHmAmoHO m=n=CAmAnJ KnEJI MM7I, =n@ JD=J nKm>AH EI @HoFFEnC B=IJ En nAMAH 2oMAH2+ @AIECnI, Io MA noM HoKn@ IACmAnJI on JDA power =H?DEJA?JKHA KF Jo M* mKlJEFlAI, MDE?D MEll =lloM KI Jo KIA F=CAI l=HCAH JD=n "K >OJAI =n@ JDKI J=kA BAMAH F=CA B=KlJI =n@nAA@JoHAlo=@JDA 6L*IEnIoBJM=HAlAIIoBJAn. *oJD >o=H@I KIA = ?omFlE?=JA@ ?om>En=JEon oB ,M) AnCEnAI, D=H@M=HA .1.OI >OJA oH MoH@ GKAKAI =n@ -JDAHnAJ ?onJHollAH, MDE?D jKIJ @oAInߣJ Co LAHO B=IJ. 5omAJEmAI JDA ,M) AnCEnAI =HAnߣJ mK?D B=IJAH JD=n ?oFOEnC JDA >OJAI MEJD memmove, =n@ KIEnC JDAm ?omFlE?=JAI JDA -JDAHnAJ @HELAH. 9A @o KIA JDA ,M) AnCEnAI En JDA 8EHJAN FoHJI. 6DAIA FoHJI =HA noJE?A=>lO IloMAH JD=n JDA M=HLAll KEHkMoo@ FoHJ =n@ noJ jKIJ >A?=KIA JDA FHo?AIIoHI =HA IloMAH. 9A ?onIEIJAnJlO KIA@ =I oKH >An?Dm=Hk >KEl@EnC JDA KEHk­ Moo@ kAHnAl on GKEAI?AnJ @EIklAII m=?DEnAI MEJD JDAEH HooJ BElA IOIJAmI on oKH m=En BElA IAHLAH: cd /sys/src/9/kw # 2nd mk will have file system caches loaded { mk clean; mk; mk clean; time mk } >/dev/null NoJA JD=J JDA mkfile lEnkI JDA kAHnAl JME?A: on?A MEJD IOm>olI =n@ on?A MEJDoKJ. On JDA 8EHJAN#oLAHCEC=>EJ -JDAHnAJ,JDEIHAFoHJI: 44.32u 35.60s 99.80r mk # virtex 5 gb 5m=ll lALAl ?=?DAI =n@ JDA l=?k oB = lALAl ?=?DA =HA lEkAlO HAIFonIE>lA BoH EJI oLAH=ll IloMnAII. .oH ?omF=HEIon, JDEI EI DoM lonC EJ J=kAI on oKH m=En BoKH-?oHA .# /0z +oHA :Aon 2+ +27 IAHLAHKIEnCCEC=>EJ -JDAHnAJ: 2.26u 2.46s 4.01r mk # quad xeon pc gb on= onA-?oHA . /0z )M, K&2+ JAHmEn=l KIEnCCEC=>EJ -JDAHnAJ: 2.95u 2.34s 8.31r mk # amd k8 pc =n@ = # M0z 5oAkHEI nAJ## -% )M, /Ao@A L: #&$ 2+ +27 IAHLAH KIEnC M>/I -JDAHnAJ: 20.78u 11.42s 49.48r mk # 586 pc 100mb

3.2.3. Virtex Port Availability and Desirability )nOonA MDo M=nJI onA oB JDA 8EHJAN FoHJI IDoKl@ m=El mA. NoJA Joo JD=J nAM 8EHJAN .2/) @AIECnIA.C.,8EHJAN$KIA )4M FHo?AIIoHIH=JDAHJD=n2oMAH2+ FHo?AIIoHI.

4. ARM Ports 6DAIA )4M FoHJI =HA =ll +27 IAHLAH kAHnAlI Io B=H, JDoKCD JDAHA EI MoHk En FHoCHAII Jo ?onLAHJ IomA oB JDA )4M IOIJAmIEnJoJAHmEn=lIJoo. 6DA )4M IOIJAmIJD=J MA FoHJA@Jo=ll ?omA MEJD U−boot =I JDAEH >ooJ lo=@AH, >KJ A=?D LAn@oH ?KIJomEIAI EJ, Io A=?D EnIJ=n?A oB 7->ooJ >AD=LAI @EBBAHAnJlO, JDoKCD moIJ ?=n ­$­

>ooJ LE= 2:- *OO62 =n@ 6.62 ALAnJK=llO. 6DA *A=ClA>o=H@ߣI 7->ooJ @oAInߣJ ALAn =lloM 2:- >ooJEnC oLAH 75* -JDAHnAJ, Io EJ JOFE?=llO EI >ooJA@ BHom =n 5,1O mAmoHO ?=H@,MDE?Dm=kAIJAIJEnCnAM kAHnAlIF=EnBKl. 6DA moIJ KIABKl >O-FHo@K?J oB JDA MoHk MEJD )4M +oHJAN-)& FHo?AIIoHI m=O >A JD=J MA MEll >A ?loIAH Jo @HELEnC +oHJAN-)' mKlJE-?oHA FHo?AIIoHI oH oJDAH L% =H?DEJA?JKHA )4M IOIJAmIMDAnJDAO=FFA=H.

4.1. OMAP35: Beagleboard 9A IJ=HJA@ FoHJEnC 2l=n ' Jo JDA *A=ClA>o=H@ MEJD JDA EnJAnJ oB KIEnC EJ =I = Im=ll, FoHJ=>lA JAHmEn=l JD=J ?oKl@ >ooJ GKE?klO E.A., MEJDoKJ JDA 1*M 2+ߣI FoMAH-on IAlB- JAIJ. 6DA FHo?AIIoH EI = # M0z @K=l-EIIKA )4M L%-= =H?DEJA?JKHA! ?DEF JDA +oHJAN-)&" MEJD L =n@ L ?=?DAI. 6DA >o=H@ ?oIJI 75 "', JDoKCD JD=J En?lK@AI no cables, no case, and no power supply. *O JDA JEmA OoK BEnEID =@@EnC FAHEFDAH=lI, FoMAHA@ 75* DK>I, FoMAH IKFFlO, =n@ ?=>lAI, EJߣI noJ Io FoHJ=>lA oH ?DA=F. 6DA >o=H@ En?lK@AI = IAHE=l FoHJ =n@ ?omFlE?=JA@ LE@Ao ?onJHollAH. 9A noM D=LA = @HELAH BoHJDEILE@Ao?onJHollAH,>=IA@on= BEHIJ @H=BJ >O2AHO@lKn@. 7nBoHJKn=JAlOJDA 6AN=I 1nIJHKmAnJI 61 OM)2 !#! 5o+& JD=J JDA *A=ClA>o=H@ EI >KElJ =HoKn@ M=I @AIECnA@ BoH ?All-FDonA oH IEmEl=H >=JJAHO-FoMAHA@ oFAH=JEon =n@ EI GKEJA ?omFlE?=JA@ =n@ IomAMD=J >KCCO. 1JI >ECCAIJ @ABA?J EI JD=J EJ l=?kI = >KElJ-En -JDAHnAJ EnJAHB=?A. 1n FHEn?EFlA MA ?oKl@ KIA 75* -JDAHnAJ @EICKIJEnC JDoKCD EJ EI >KJ MA D=LAnߣJ CoJ JDA !#!ߣI 75* Jo MoHk OAJ =n@ JDAHA =HA IomA n=IJO-lookEnC 75*-HAl=JA@ >KCIEnJDA !#!AHH=J= lEIJ. )I= HAIKlJ,JDA *A=ClA>o=H@EInߣJ HA=llOKI=>lA OAJ. 6DA +oHJAN-)& FHo?AIIoH En?lK@AI 8.2L! Blo=JEnC-FoEnJ D=H@M=HA, >KJ JDA kAHnAl @oAInߣJ OAJ I=LA =n@ HAIJoHA .27 HACEIJAHI =n@ oJDAH IJ=JA @KHEnC = ?onJANJ IMEJ?D. 6D=JߣI ok=O BoH noM >A?=KIA 5c @oAInߣJ OAJ CAnAH=JA 8.2 oF-?o@AI BoH Blo=JEnC-FoEnJ EnIJHK?JEonI,>KJ H=JDAHoF-?o@AIBoHJDA ol@)4M %#.

4.1.1. IGEPv2 and Overo MA=nMDElA, MA >oKCDJ =n 1/-2L >o=H@ BHom 15-- En *=H?Alon=. 6DA 1/-2 EI =lIo >KElJ on JDA !#! 5o+ =n@ EI IKFFoIA@ Jo >A GKEJA IEmEl=H Jo JDA *A=ClA>o=H@ AN?AFJ JD=J EJ =@@I IomA ANJAHn=l @ALE?AI IK?D =I M>/I -JDAHnAJ LE= JDA 5M5+ ' . )lIo, JDA +27 ?=n >A HKn =J %  M0z H=JDAH JD=n # M0z, =n@ oKH FoHJ @oAI Io. 9A HKn JDA I=mA kAHnAl on JDA *A=ClA>o=H@, JDA 1/-2L >o=H@ =n@ JDA $ M0z /KmIJEN OLAHo -=HJD, MDE?D =lIo FHoLE@AI JDA 5M5+ ' -JDAHnAJ ?onJHollAH >KJ EI >=IA@ on JDA OM)2 !#! noJ !#! 5o+. 7nlEkA JDA KEHkMoo@, MA D=LAnߣJ CoJ =??AII Jo JDA N)N, Bl=ID mAmoHO Jo MoHk OAJ; EJߣI noJ MAll @o?KmAnJA@. )J lA=IJ on JDA 1/-2 >o=H@ MA D=LA En JDA 7nEN 4oom, FlKCCEnC En = ,81 ?=>lA @EI=>lAI JDA -JDAHnAJ ?onJHollAH, Io JDA 1/-2 m=OnALAH>A KI=>lA =I= JAHmEn=l. 6DA /KmIJEN@onߣJ D=LA JDEIFHo>lAm. OH@AHEnC JDA 1/-2 BHom 5F=En =n@ CAJJEnC EJ JDHoKCD 75 ?KIJomI M=I = ?D=llAnCA; 1 @onߣJ HA?ommAn@ >KOEnC onA lECDJlO EB OoK =HA En NoHJD )mAHE?=. 6DA /KmIJEN IDoKl@ >A A=IOJoo>J=EnEnIJA=@.

4.1.2. OMAP35 Performance 7nBoHJKn=JAlO, JDA HK@EmAnJ=HO ' -JDAHnAJ ?onJHollAH EI IomAMD=J lEkA JDA 8EHJAN -JDAHnAJ ?onJHollAH, =n@ JDKI ?onIKmAI AnoKCD IOIJAm JEmA Jo m=kA JDA 1/-2 B=EHlO IloM. +KHHAnJlO MA @o noJ KIA ,M) >KJ H=JDAH FHoCH=mmA@ 1/O Jo ?oFO @=J= >AJMAAn m=En mAmoHO =n@ JDA -JDAHnAJ .1.OI, MDE?D IEmFlEBEAI JDA @HELAH ?omF=HA@ Jo KIEnC ,M). 4KnnEnCoKH>An?Dm=Hk onJDA 1/-2 =n@/KmIJENoLAH M>/I-JDAHnAJ OEAl@I: ­%­

24.58u 30.07s 70.65r mk # igep 100mb 28.88u 38.38s 81.67r mk # gumstix overo 100mb

4.2. Kirkwood: Sheevaplug, Guruplug and OpenRD 6DA oJDAH )4M FoHJI MAHA CoEnC IloMlO =n@ MA noJE?A@ JDA A=HlO =@LAHJEIEnC BoH JDA 5DAAL=FlKC, >=IA@ on M=HLAllߣI KEHkMoo@ 5o+ &&.$ & , , ' BoH 75 . 6DA FHo?AI­ IoH EI = . /0z )4M L# =H?DEJA?JKHA ?DEF JDA )4M ' $-J-5 MEJD L =n@ L ?=?DAI. 6DA 5o+ EI moHA JH=?J=>lA JD=n JDA OM)2!# 5o+, JDoKCD IJEll IomAMD=J JA@EoKI Jo EnE­ JE=lEIA. 6DA /KHKFlKC EI F=HJE?Kl=HlO EnJAHAIJEnC >A?=KIA EJ D=I JMo CEC=>EJ -JDAHnAJ EnJAHB=?AI =n@ 4J"# ?onnA?JoHI, =n@ JDKI mECDJ m=kA =n EnJAHAIJEnC BEHAM=ll oH oJDAH nAJMoHk @ALE?A, oH = IAHLAH oB IomA kEn@ A.C., IA?KHA IJoHA En Bl=ID mAmoHO, FoIIE>lO IJ=n@=lonA. )ll oB JDAIA IOIJAmI HKn JDA I=mA kAHnAl. 9A IJ=HJA@ MEJD JDA 1nBAHno KEHkMoo@ FoHJ, MDE?D DAlFA@ KI CAJ CoEnC. 9A D=LA CoJ moIJ oB JDA F=HJI JD=J MA ?=HA =>oKJ MoHkEnC, En?lK@EnC=??AIIJoBl=IDmAmoHO=n@ALAnJDA >Ez=HHA ?HOFJoCH=FDE?=??AlAH=JoH.

4.2.1. Kirkwood Performance 6DA EnJACH=l M=HLAll $ CEC=>EJ -JDAHnAJ ?onJHollAH =KJonomoKIlO FAHBoHmI ,M) En =n@oKJ oB >KBBAHHEnCI,IoJDA FoHJ EIB=EHlOzEFFO=n@GKEJA KI=>lA: 16.66u 8.39s 31.44r mk # gb

5. The Legendary AMD64 PC Port OnA FoHJ JD=J MA D=LAnߣJ @onA mK?D MoHk on l=JAlO EI JDA amd64 FoHJ. .oH = IJ=HJ, EJߣI >=IA@ on = non-IJo?k kAHnAl 9k >AJJAH IKEJA@ Jo $"->EJ m=?DEnAI. .oH AN=mFlA, EJ KIAI varargs Jo ANJH=?J IOIJAm ?=ll =HCKmAnJI. 6DA EnEJE=l J=HCAJ M=I )M, K& IOIJAmI BoH ,o- MoHk IALAH=l OA=HI =Co =n@ JDA FoHJ EI = mEnEm=l +27 IAHLAH kAHnAl. 6DA ,o- MoHk ?D=nCA@@EHA?JEon=n@JDAHA D=I>AAnlEJJlA @ALAloFmAnJ oB JDA FoHJ IEn?A. 1J @oAI noJ HKn !&$ >En=HEAI. 5omA -JDAHnAJ ?onJHollAHI moIJlO DECDAH-FAHBoHm=n?A onAI =n@ 7)46I D=LA @HELAHI, JOFE?=llO EmFoHJA@ BHom JDA 2l=n ' 2+ FoHJ. 6DAIA JDEnCI @o noJ OAJ MoHk: =K@Eo, LE@Ao, 75*, BloFFEAI, @EIkI, =n@ l=FJoF IJKBB IK?D =I 2+M+1). 5omA oB JDEI MEll >A A=IO Jo EmFoHJ >KJ EJ MoKl@ >A nE?A Jo J=kA JDA oFFoHJK­ nEJO Jo @HoF lAC=?O IKFFoHJ BoH ol@ @ALE?AI =n@ FHo?AIIoHI MDAn EmFoHJEnC. 0oMALAH, LE@Ao MEll >A F=EnBKl: JDA kAHnAl AEJDAH D=I Jo HKn JDA 8-5) *1O5 En $->EJ HA=l mo@A oH AmKl=JA EJ. 7IEnC JDEI FoHJ =lIo HAGKEHAI 6[cal] =n@ libmach amd64 IKFFoHJ, =n@ = mo@EBEA@ 9load, =ll oB MDE?DANEIJ.

6. Performance Summary 6=>lA IKmm=HEIAI JDA =>oLA time  oKJFKJ lEnAI IoHJA@ >O KIAH-mo@A JEmA, IloMAIJ BEHIJ, =n@ =@@I oJDAH IOIJAm ?D=H=?JAHEIJE?I. OB JDAIA IOIJAmI, onlO JDA 8EHJAN # l=?kI =n L ?=?DA. 6DA ߢEIIKAߣ ?olKmn EI JDA ?l=EmA@ m=NEmKm nKm>AH oB EnIJHK?JEonI JD=J m=O >A EIIKA@ FAH ?lo?k ?O?lA. M=?DEnAI =>oLA JDA mE@@lA @ELE@EnC lEnA D=LA -JDAHnAJ ?onJHollAHIJD=J @onߣJ KIA >KBBAHHEnCI. ) BAM o>IAHL=JEonI: JDA IK>-/0z @K=l-EIIKA m=?DEnAI =HA JDA IloMAIJ En oKH I=mFlA. 6DA IloMAIJ m=?DEnAI =ll D=LA ?lKmIO ,M)/.1.O/-JDAHnAJ ?om>oI =n@ JDA B=IJAIJ =ll D=LA -JDAHnAJ ?onJHollAHI JD=J KIA >KBBAH HEnCI =n@ EnEJE=JA ,M) =KJonomoKIlO noJA JDA L=HE=JEonEnIOIJAmJEmAI. ­&­

______JEmAI n=mA ?FKM0z -JDAHnAJ EIIKA "".! K!#.$I''.&H LEHJAN# " /> &.&&K!&.!&I& .$%H CKmIJENoLAHo $ M> ______".#&K!.%I%.$#H ECAF %  M> .%&K ." I"'."&H #&$F? # M> $.$$K&.!'I! .""H CKHKFlKC ,  /> .'#K .!"I&.! H =m@k&F? ,  /> ______. $K ."$I". H GK=@NAonF? ,# />

6=>lA :2AHBoHm=n?A 5Kmm=HO 7. Hardware Documentation ,o?KmAnJ=JEon BoH JDA 8EHJAN F=HJI M=I KnEBoHmlO >AJJAH JD=n BoH JDA )4M F=HJI, l=HCAlO >A?=KIA 1*M MHoJA = loJ oB JDA 2oMAH2+ @o?KmAnJ=JEon. :ElEnNߣI ?onJHE>KJEonI MAHA lAII ?lA=H, MEJD BEnA FoEnJI IomAJEmAI ECnoHA@. 5o BoH JDA 8EHJAN FoHJI, EJ M=I KIK=llOFoIIE>lA JoIKIFAn@@EI>AlEAB,JHKIJ JDA @o?KmAnJ=JEon=n@CAJ JDEnCIJoMoHk.

7.1. ARM Documentation 6DA )4M FoHJI =HA =noJDAH IJoHO. 6DAHA =HA =J lA=IJ JDHAA HABAHAn?A m=nK=lI nAA@A@ BoH A=?D FoHJ: JDA FHo?AIIoH =H?DEJA?JKHA m=nK=l BHom )4M, JDA FHo?AIIoHm=nK=l BHom )4M =n@ IomAJEmAI =noJDAH BHom JDA 5o+ LAn@oH, =n@ JDA 5o+ m=nK=l BHom M=HLAll oH 61. 6DA l=JJAH JMo JOFAI oB m=nK=lI FoEnJ Jo JDA A=HlEAH m=nK=lI BoH IFA?EBE?I. .oH AN=mFlA, JDA 5o+ m=nK=l MEll FoEnJ Jo JDA FHo?AIIoH m=nK=l BoH @AJ=ElI oB DoM JDA FHo­ ?AIIoH @oAI IomAJDEnC, =n@ EJ En JKHn MEll FoEnJ Jo JDA ?oHHAIFon@EnC =H?DEJA?JKHA m=n­ K=l Jo @AI?HE>A = ?ommon mA?D=nEIm. 1B OoKߣHA lK?kO, JDA >o=H@ m=nKB=?JKHAH MEll En?lK@A IomA >o=H@@o?KmAnJ=JEonJoo. 6DA =H?DEJA?JKHA HABAHAn?A m=nK=lI BHom )4M D=LA >AAn CAJJEnC >AJJAH: moHA FHA?EIA =n@ ?omFlAJA, lAII IlEFFAHO. 6DA +27 =n@ 5o+ JA?DnE?=l HABAHAn?A m=nK=lI, DoMALAH, ?om>EnA ANJHAmA LAH>oIEJO MEJD EmFHA?EIEon, En?omFlAJAnAII, >KCCEnAII =n@ = CAnAH=l l=?k oB HECoKH JD=J EI m=@@AnEnC. 6DAHA EI = JAn@An?O Jo MHEJA ߢߢJDEI HACEIJAH EI KIA@ Jo @o:ߣߣ,MEJDoKJ ANFl=EnEnCDoM oHMDO. OnA An@I KF BlEFFEnC >AJMAAn JDA JDHAA oH BoKH m=nK=lI, =n@ JDA OM)2!# m=nK=l =lonA EI = IEnClA 2,. BElA oB !,# F=CAI, Io D=LEnC = Coo@ 2,. LEAMAH EI AIIAnJE=l. !,# F=CAI IDoKl@ >A AnoKCD Jo @AI?HE>A =lmoIJ =nOJDEnC, OAJ EJߣI En?omFlAJA; GKEJA =n=??omFlEIDmAnJ. 6DA J=>lA oB ?onJAnJI,BECKHAI=n@J=>lAI=lonA EI $F=CAIlonC. 2AHD=FIIAF=H=JA FHoCH=mmAHIߣ HABAHAn?A m=nK=lI=HA nAA@A@.

7.2. Poor SoC Design and Documentation 6DA 5o+ m=nK=lI =HA F=HJE?Kl=HlO FooH. 6DA 5o+I JDAmIAlLAI =FFA=H Jo D=LA >AAn Il=FFA@ JoCAJDAH BHom ANEIJEnC EnJAllA?JK=l FHoFAHJO JD=J JDA ?omF=nEAI D=@ lOEnC =HoKn@, MEJDoKJ mK?D JDoKCDJ BoH DoM JDAO mECDJ >A KIA@ JoCAJDAH, =n@ JDA m=nK=lI HABlA?J JDEI: A=?D ?D=FJAH @AI?HE>AI = IAF=H=JA IJ=n@=lonA @ALE?A. 6DA m=nK=lI =FFA=H Jo >A MHEJJAn BoH oJDAH D=H@M=HA @AIECnAHI oH EmFlAmAnJoHI =n@ m=kA m=nO =IIKmF­ JEonI =>oKJ >=?kCHoKn@ knoMlA@CA. 6DAHA EI lEJJlA ?oDAHAnJ ANFl=n=JEon oB MDO JDEI I=?k oB ?omFonAnJI M=I IlKnC JoCAJDAH oH MD=J JDA EnJAH?onnA?JEonI =HA oH DoM OoK mECDJ nAA@ Jo KIA JDAm Jo @o IomAJDEnC, IK?D =I =??AII JDA Bl=ID mAmoHO oH@HELA JDA LE@AooH-JDAHnAJ ?onJHollAH. 6DAHA EI = CHA=J @A=l oB loM-lALAl ANFl=n=JEon oB JDA JA@EoKI C=mAI oB ߢMoJDAH-m=O-1ߣ ­'­

JD=J onA mKIJ Fl=O Jo ALAn CAJ JDA D=H@M=HA Jo BKn?JEon. .oH AN=mFlA, ?lo?kI D=LA Jo >A An=>lA@, >A?=KIA JDAO =HAnߣJ =lM=OI =lHA=@O An=>lA@. 7nJEl JDAO =HA An=>lA@, =??AIIEnC IomA @ALE?A HACEIJAHI ?=KIAI =@@HAII B=KlJI. )lIo, L=HEoKI F=HJI oB JDA 5o+I D=LA Jo D=LA JDAEH FoMAH JKHnA@ on. )J lA=IJ onA 5o+ D=I EnJAHn=l ߢBEHAM=llIߣ JD=J D=LA Jo >A @EI=>lA@ oH IK>LAHJA@. 1n CAnAH=l, JDA D=H@M=HA @oAInߣJ ?omA KF En = I=nA IJ=JA =n@ 7->ooJ @oAInߣJ =lM=OI BEN JD=J JDoKCD EJ @oAI lA=LA IomA JDEnCI En = I=nA IJ=JA. .=ElEnC JD=J, JDA @o?KmAnJ=JEon oKCDJ Jo ?onJ=En = ?on?EIA =n@ ?omFlAJA lEIJ oB AN=?JlO MD=J IJAFI=HA HAGKEHA@JoEnEJE=lEIA = F=HJE?Kl=H@ALE?A.

7.3. Marvell Documentation ) @H=M>=?k oB KIEnC JDA KEHkMoo@ 5o+ EI JD=J M=HLAll IAAm Jo HAC=H@ =lmoIJ =ll oB JDAEH m=nK=lI =I FHoFHEAJ=HO. /ELAn JDAEH loM GK=lEJO, M=HLAll m=O jKIJ >A JHOEnC Jo HA@K?A JDAEH Am>=HH=IImAnJ. )l?=JAl-LK?AnJ D=I = non-@EI?loIKHA =CHAAmAnJ MEJD M=HLAll, >KJ ALAn MEJD JD=J, MA =HA noJ =>lA Jo CAJ =ll JDA @o?KmAnJ=JEon MA nAA@. +onJH=HO Jo M=HLAllߣI >AlEAB, LEnKN oH 7->ooJ @HELAHI =HA noJ = IK>IJEJKJA BoH Coo@ D=H@M=HA @o?KmAnJ=JEon noH BoH Kn@AHIJ=n@EnC, >KJ MA D=LA IomAJEmAI D=@ Jo HAIoHJ JoHA=@EnCJDAm.

7.4. Board Documentation /lo>=l 6A?DnoloCEAI B=>HE?=JA@ JDA 5DAAL=FlKC, /KHKFlKC, AJ?. 15-- En *=H?Alon= m=@A JDA 1/-2L >o=H@, =n@ JDA *A=ClA>o=H@ M=I =n oFAn-IoKH?A D=H@M=HA FHojA?J. 6DA *A=ClA>o=H@ @o?KmAnJ=JEon EI FHAJJO JDoHoKCD. 6DA 1/-2L @o?KmAnJ=JEon EI lAII JDoHoKCD, IFA?EBE?=llO MDAn ?oLAHEnC =??AII Jo Bl=ID mAmoHO MDE?D @EBBAHI BHom JDA *A=ClA>o=H@ߣI =n@ JDA @ALE?AI =@@A@ Jo JDA IJo?k *A=ClA>o=H@, noJ=>lO -JDAHnAJ. /lo­ >=l 6A?DnoloCEAI D=LA @onA = FHAJJO Coo@ jo> oB @o?KmAnJEnC JDA FlKCI, JDoKCD JDA 5DAAL=FlKCEI>AJJAH?oLAHA@JD=nJDA /KHKFlKC.

8. Lessons Learned and Recommendations

8.1. Kernel Debugging -BBoHJ Jo ?onnA?J JDA L=HEoKI J6)/ EnJAHB=?AI LE= 75* Jo db oH acid MoKl@ lEkAlO F=O oBB MDAn JDA FHo?AIIoH mOIJAHEoKIlO CoAI =M=O. -LAn jKIJ D=LEnC 7->ooJ FHEnJ JDA FHo?AIIoHߣIIJ=JA =J JDA EnIJ=nJ JD=J 7->ooJ HAC=EnA@?onJHol MoKl@DAlF. ,A>KCCEnC ?=n >A =IIEIJA@ >O D=LEnC = @A=@-IEmFlA L=HE=nJ oB iprint JD=J MEll =lM=OI MoHk, En?lK@EnC >ABoHA JDA EnJAHHKFJ ?onJHollAH EI EnEJE=lEIA@, En EnJAHHKFJ-IAHLE?A HoK­ JEnAI,=n@MDAnEnJAHHKFJI=HA m=IkA@. ) lEJJlA @A>KCCEnC ?o@A En /sys/src/9/port/portclock.c ?=n @E=CnoIA EnBE­ nEJA looFI ?=KIA@ >O En?oHHA?J EmFlAmAnJ=JEon oB JDA ?lo?k FHEmEJELAI. )n =@@A@ JAIJ En /sys/src/9/port/xalloc.c ?=n @AJA?J = ?O?lA En JDA Hole lEIJ =n@ =LoE@ =n EnBEnEJA looF.

8.2. Hardware Sanity (or Lack Thereof) 6DAHA EI = CHA=J m=HkAJ oFFoHJKnEJO BoH IomAonA Jo >KEl@ = ?DA=F IAnIE>lA CAnAH=l- FKHFoIA )4M IOIJAmMEJDCoo@@o?KmAnJ=JEon,IEn?A JDAHA =FFA=HJo>A nonA noM. 0=H@M=HA ?=?DA ?oDAHAn?O DAlFI ?oHHA?JnAII =n@ FAHBoHm=n?A, AIFA?E=llO En mKlJEFHo­ ?AIIoHIOIJAmI. 6DA FAHBoHm=n?A oB =n -JDAHnAJ ?onJHollAH =I @E?J=JA@ >O EJI @AIECn ?=n @AJAHmEnA JDA KI=>ElEJO oB = 2l=n ' FoHJ. 9A IDoKl@ >A F=IJ JDA AH= oB FHoCH=mmA@1/O =n@.1.OI=n@ ­ ­

IAF=H=JA ,M) AnCEnAI, =n@ klK@CAI lEkA -JDAHnAJ LE= 75*, BoH -JDAHnAJ ?onJHollAHI. )ll BKJKHA -JDAHnAJ ?onJHollAHI IDoKl@ FAHBoHm ,M) Jo =n@ BHom >KBBAH HEnCI MEJDoKJ nAA@­ EnC DoIJ EnJAHLAnJEon Jo EnEJE=JA A=?D F=?kAJ JH=nIBAH. 1JߣI noJ nA?AII=HO Jo D=LA =ll JDA BA=JKHAI oB JDA M=HLAll $, MDE?D CoAI IomAMD=J oLAH>o=H@, JDoKCD. )lIo, CEC=>EJ -JDAHnAJ EIFHAJJO?DA=FnoM =n@oKCDJ Jo>A IJ=n@=H@. 0=H@M=HA IDoKl@?omA oKJ oB HAIAJ En= I=nA =n@KI=>lA IJ=JA. 0=H@M=HA @o?KmAnJ=JEon IDoKl@ En?lK@A IOIJAm FHoCH=mmAHI =I F=HJ oB JDA EnJAn@A@ =K@EAn?A, =n@ IDoKl@ >A FK>lE?, ?omFlAJA, ?lA=H =n@ ?on?EIA. /21O CAnAH=l-FKHFoIA 1/O FEnI =n@ IEmEl=H Ell-@ABEnA@ >EJI, =n@ JDAEH KIAI, nAA@ Jo >A @o?KmAnJA@ En CHA=J @AJ=El =J JDA +27, 5o+ =n@ >o=H@ lALAlI Jo =LoE@ JDA BEnCAH-FoEnJEnC Io oBJAn IAAn En ANEIJEnC m=nK=lI, MDE?D m=kAI EJ m=@@AnEnClO @EBBE?KlJ Jo FEn @oMn AN=?JlO MD=J mKIJ >A @onA Jo CAJ IomA @ALE?A Jo MoHk. 1n CAnAH=l, ?ommAnJI lEkA ߢIAA OoKH >o=H@ @o?K­ mAnJ=JEon BoH IFA?EBE?Iߣ =HA KnDAlFBKl KnlAII JDA >o=H@ @o?KmAnJ=JEon =?JK=llO @oAI @AI?HE>A IEmFlO =n@ @EHA?JlO MD=JߣI nAA@A@. 6oo oBJAn JDAIA FoEnJAHI =HA jKIJ ?oF- oKJI, MEJD no onA J=kEnC HAIFonIE>ElEJO BoH CAJJEnC =ll JDA nA?AII=HO EnBoHm=JEon FK>­ lEIDA@. 6DA IoHJ oB JHA=IKHA DKnJ JD=J MA Kn@AHJook Jo @AJAHmEnA JDA 143 nKm>AH =n@ mAmoHO =@@HAII BoH JDA 1/O HACEIJAHI oB JDA 1/-2ߣI ' -JDAHnAJ ?onJHollAH IDoKl@ noJ D=LA Jo>A HAFA=JA@.

9. Acknowledgements 5=lL= 2AEHó=n@MA?DEAl LKkkEAnFoHJA@n=JELA 1nBAHnoJoJDA KEHkMoo@5o+. 4=A M?LAll=n DAlFA@ mA @A?HOFJ LolKmEnoKI OAJ oBJAn KnDAlFBKl D=H@M=HA @o?KmAnJ=­ JEon. 0A =n@+l=K@E= +ollOAHFHoLE@A@KIABKl ?ommAnJIon@H=BJIoB JDEIF=FAH. 6DAIA FoHJI MAHA m=@A BA=IE>lA >O JDA ANEIJEnC 2l=n ' 2oMAH2+ =n@ )4M ?omFElAH IKEJAI,=n@m=@A A=IEAH>OANEIJEnC2l=n'kAHnAlIBoHoJDAH2oMAH2+ =n@)4M IOIJAmI.

10. References

. )4M, ARM Architecture Reference Manual,,,1  1, #. . )4M, ARM926EJ−S Technical Reference Manual,,,1  '&-, &. !. )4M, ARM Architecture Reference Manual, ARM v7−A and ARM v7−R edition, ,,1 "$*, &. ". )4M, Cortex−A8 Technical Reference Manual,,,1 !""J, '. #. /AoBB +ollOAH, +D=HlAI .oHIOJD, ߢߢ) +=?DA Jo *=ID BoH '2,ߣߣ Fifth International Work• shop on Plan 9,5A=JJlA O?Jo>AH  . $. *o> .l=n@HAn=, ߢߢ)@@EnC )FFlE?=JEon 5KFFoHJ BoH = NAM )H?DEJA?JKHA En 2l=n ',ߣߣ En Plan 9 Programmer’s Manual, Fourth Edition )FHEl  . %. 1*M, PPC440x5 CPU Core User’s Manual, Preliminary, 5) "- $ !-!, JKlO #, !. &. 6AN=I 1nIJHKmAnJI, OMAP35x Applications Processor Technical Reference Manual, 5247.'&,,O?Jo>AH '. '. M=HLAll, Unified Layer 2 (L2) Cache for Sheevaࡊ CPU Cores Addendum, M8- 5 "&#&-,4AL.*,5AFJAm>AH &, &. . M=HLAll, 88F6180, 88F6190, 88F6192, 88F6280, and 88F6281 Integrated Con• troller Functional Specifications,M8-5 "&$-,4AL.-,5AFJAm>AH %, '. ­ ­

. 5M5+, High−Performance 16−bit Non−PCI 10/100 Controller with Vari• able Voltage I/O,L)N' @=J=IDAAJ 4ALEIEon .$, -"-&. . :ElEnN, PowerPC Processor Reference Guide, 7/ L . , @AI?HE>AI "#,#, J=n­ K=HO ', %. !. :ElEnN, Embedded Processor Block in Virtex−5 FPGAs Reference Guide, 7/  L .$,@AI?HE>AI"":#,J=nK=HO , '.