sortext.patch 142 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949
  1. diff -Nur linux-3.9.11.orig/arch/arm/Kconfig linux-3.9.11/arch/arm/Kconfig
  2. --- linux-3.9.11.orig/arch/arm/Kconfig 2013-07-21 02:16:17.000000000 +0200
  3. +++ linux-3.9.11/arch/arm/Kconfig 2013-09-12 07:26:36.000000000 +0200
  4. @@ -6,7 +6,6 @@
  5. select ARCH_HAVE_CUSTOM_GPIO_H
  6. select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
  7. select ARCH_WANT_IPC_PARSE_VERSION
  8. - select BUILDTIME_EXTABLE_SORT if MMU
  9. select CPU_PM if (SUSPEND || CPU_IDLE)
  10. select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU
  11. select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
  12. diff -Nur linux-3.9.11.orig/arch/mips/Kconfig linux-3.9.11/arch/mips/Kconfig
  13. --- linux-3.9.11.orig/arch/mips/Kconfig 2013-07-21 02:16:17.000000000 +0200
  14. +++ linux-3.9.11/arch/mips/Kconfig 2013-09-12 07:26:20.000000000 +0200
  15. @@ -34,7 +34,6 @@
  16. select HAVE_MEMBLOCK_NODE_MAP
  17. select ARCH_DISCARD_MEMBLOCK
  18. select GENERIC_SMP_IDLE_THREAD
  19. - select BUILDTIME_EXTABLE_SORT
  20. select GENERIC_CLOCKEVENTS
  21. select GENERIC_CMOS_UPDATE
  22. select HAVE_MOD_ARCH_SPECIFIC
  23. diff -Nur linux-3.9.11.orig/arch/mips/Kconfig.orig linux-3.9.11/arch/mips/Kconfig.orig
  24. --- linux-3.9.11.orig/arch/mips/Kconfig.orig 1970-01-01 01:00:00.000000000 +0100
  25. +++ linux-3.9.11/arch/mips/Kconfig.orig 2013-07-21 02:16:17.000000000 +0200
  26. @@ -0,0 +1,2557 @@
  27. +config MIPS
  28. + bool
  29. + default y
  30. + select HAVE_GENERIC_DMA_COHERENT
  31. + select HAVE_IDE
  32. + select HAVE_OPROFILE
  33. + select HAVE_PERF_EVENTS
  34. + select PERF_USE_VMALLOC
  35. + select HAVE_ARCH_KGDB
  36. + select ARCH_HAVE_CUSTOM_GPIO_H
  37. + select HAVE_FUNCTION_TRACER
  38. + select HAVE_FUNCTION_TRACE_MCOUNT_TEST
  39. + select HAVE_DYNAMIC_FTRACE
  40. + select HAVE_FTRACE_MCOUNT_RECORD
  41. + select HAVE_C_RECORDMCOUNT
  42. + select HAVE_FUNCTION_GRAPH_TRACER
  43. + select HAVE_KPROBES
  44. + select HAVE_KRETPROBES
  45. + select HAVE_DEBUG_KMEMLEAK
  46. + select ARCH_BINFMT_ELF_RANDOMIZE_PIE
  47. + select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES && 64BIT
  48. + select RTC_LIB if !MACH_LOONGSON
  49. + select GENERIC_ATOMIC64 if !64BIT
  50. + select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
  51. + select HAVE_DMA_ATTRS
  52. + select HAVE_DMA_API_DEBUG
  53. + select HAVE_GENERIC_HARDIRQS
  54. + select GENERIC_IRQ_PROBE
  55. + select GENERIC_IRQ_SHOW
  56. + select HAVE_ARCH_JUMP_LABEL
  57. + select ARCH_WANT_IPC_PARSE_VERSION
  58. + select IRQ_FORCED_THREADING
  59. + select HAVE_MEMBLOCK
  60. + select HAVE_MEMBLOCK_NODE_MAP
  61. + select ARCH_DISCARD_MEMBLOCK
  62. + select GENERIC_SMP_IDLE_THREAD
  63. + select BUILDTIME_EXTABLE_SORT
  64. + select GENERIC_CLOCKEVENTS
  65. + select GENERIC_CMOS_UPDATE
  66. + select HAVE_MOD_ARCH_SPECIFIC
  67. + select VIRT_TO_BUS
  68. + select MODULES_USE_ELF_REL if MODULES
  69. + select MODULES_USE_ELF_RELA if MODULES && 64BIT
  70. + select CLONE_BACKWARDS
  71. +
  72. +menu "Machine selection"
  73. +
  74. +config ZONE_DMA
  75. + bool
  76. +
  77. +choice
  78. + prompt "System type"
  79. + default SGI_IP22
  80. +
  81. +config MIPS_ALCHEMY
  82. + bool "Alchemy processor based machines"
  83. + select 64BIT_PHYS_ADDR
  84. + select CEVT_R4K
  85. + select CSRC_R4K
  86. + select IRQ_CPU
  87. + select SYS_HAS_CPU_MIPS32_R1
  88. + select SYS_SUPPORTS_32BIT_KERNEL
  89. + select SYS_SUPPORTS_APM_EMULATION
  90. + select GENERIC_GPIO
  91. + select ARCH_WANT_OPTIONAL_GPIOLIB
  92. + select SYS_SUPPORTS_ZBOOT
  93. + select USB_ARCH_HAS_OHCI
  94. + select USB_ARCH_HAS_EHCI
  95. +
  96. +config AR7
  97. + bool "Texas Instruments AR7"
  98. + select BOOT_ELF32
  99. + select DMA_NONCOHERENT
  100. + select CEVT_R4K
  101. + select CSRC_R4K
  102. + select IRQ_CPU
  103. + select NO_EXCEPT_FILL
  104. + select SWAP_IO_SPACE
  105. + select SYS_HAS_CPU_MIPS32_R1
  106. + select SYS_HAS_EARLY_PRINTK
  107. + select SYS_SUPPORTS_32BIT_KERNEL
  108. + select SYS_SUPPORTS_LITTLE_ENDIAN
  109. + select SYS_SUPPORTS_ZBOOT_UART16550
  110. + select ARCH_REQUIRE_GPIOLIB
  111. + select VLYNQ
  112. + select HAVE_CLK
  113. + help
  114. + Support for the Texas Instruments AR7 System-on-a-Chip
  115. + family: TNETD7100, 7200 and 7300.
  116. +
  117. +config ATH79
  118. + bool "Atheros AR71XX/AR724X/AR913X based boards"
  119. + select ARCH_REQUIRE_GPIOLIB
  120. + select BOOT_RAW
  121. + select CEVT_R4K
  122. + select CSRC_R4K
  123. + select DMA_NONCOHERENT
  124. + select HAVE_CLK
  125. + select IRQ_CPU
  126. + select MIPS_MACHINE
  127. + select SYS_HAS_CPU_MIPS32_R2
  128. + select SYS_HAS_EARLY_PRINTK
  129. + select SYS_SUPPORTS_32BIT_KERNEL
  130. + select SYS_SUPPORTS_BIG_ENDIAN
  131. + help
  132. + Support for the Atheros AR71XX/AR724X/AR913X SoCs.
  133. +
  134. +config BCM47XX
  135. + bool "Broadcom BCM47XX based boards"
  136. + select ARCH_WANT_OPTIONAL_GPIOLIB
  137. + select BOOT_RAW
  138. + select CEVT_R4K
  139. + select CSRC_R4K
  140. + select DMA_NONCOHERENT
  141. + select FW_CFE
  142. + select HW_HAS_PCI
  143. + select IRQ_CPU
  144. + select NO_EXCEPT_FILL
  145. + select SYS_SUPPORTS_32BIT_KERNEL
  146. + select SYS_SUPPORTS_LITTLE_ENDIAN
  147. + select SYS_HAS_EARLY_PRINTK
  148. + help
  149. + Support for BCM47XX based boards
  150. +
  151. +config BCM63XX
  152. + bool "Broadcom BCM63XX based boards"
  153. + select CEVT_R4K
  154. + select CSRC_R4K
  155. + select DMA_NONCOHERENT
  156. + select IRQ_CPU
  157. + select SYS_HAS_CPU_MIPS32_R1
  158. + select SYS_SUPPORTS_32BIT_KERNEL
  159. + select SYS_SUPPORTS_BIG_ENDIAN
  160. + select SYS_HAS_EARLY_PRINTK
  161. + select SWAP_IO_SPACE
  162. + select ARCH_REQUIRE_GPIOLIB
  163. + select HAVE_CLK
  164. + help
  165. + Support for BCM63XX based boards
  166. +
  167. +config MIPS_COBALT
  168. + bool "Cobalt Server"
  169. + select CEVT_R4K
  170. + select CSRC_R4K
  171. + select CEVT_GT641XX
  172. + select DMA_NONCOHERENT
  173. + select HW_HAS_PCI
  174. + select I8253
  175. + select I8259
  176. + select IRQ_CPU
  177. + select IRQ_GT641XX
  178. + select PCI_GT64XXX_PCI0
  179. + select PCI
  180. + select SYS_HAS_CPU_NEVADA
  181. + select SYS_HAS_EARLY_PRINTK
  182. + select SYS_SUPPORTS_32BIT_KERNEL
  183. + select SYS_SUPPORTS_64BIT_KERNEL
  184. + select SYS_SUPPORTS_LITTLE_ENDIAN
  185. +
  186. +config MACH_DECSTATION
  187. + bool "DECstations"
  188. + select BOOT_ELF32
  189. + select CEVT_DS1287
  190. + select CEVT_R4K
  191. + select CSRC_IOASIC
  192. + select CSRC_R4K
  193. + select CPU_DADDI_WORKAROUNDS if 64BIT
  194. + select CPU_R4000_WORKAROUNDS if 64BIT
  195. + select CPU_R4400_WORKAROUNDS if 64BIT
  196. + select DMA_NONCOHERENT
  197. + select NO_IOPORT
  198. + select IRQ_CPU
  199. + select SYS_HAS_CPU_R3000
  200. + select SYS_HAS_CPU_R4X00
  201. + select SYS_SUPPORTS_32BIT_KERNEL
  202. + select SYS_SUPPORTS_64BIT_KERNEL
  203. + select SYS_SUPPORTS_LITTLE_ENDIAN
  204. + select SYS_SUPPORTS_128HZ
  205. + select SYS_SUPPORTS_256HZ
  206. + select SYS_SUPPORTS_1024HZ
  207. + help
  208. + This enables support for DEC's MIPS based workstations. For details
  209. + see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
  210. + DECstation porting pages on <http://decstation.unix-ag.org/>.
  211. +
  212. + If you have one of the following DECstation Models you definitely
  213. + want to choose R4xx0 for the CPU Type:
  214. +
  215. + DECstation 5000/50
  216. + DECstation 5000/150
  217. + DECstation 5000/260
  218. + DECsystem 5900/260
  219. +
  220. + otherwise choose R3000.
  221. +
  222. +config MACH_JAZZ
  223. + bool "Jazz family of machines"
  224. + select FW_ARC
  225. + select FW_ARC32
  226. + select ARCH_MAY_HAVE_PC_FDC
  227. + select CEVT_R4K
  228. + select CSRC_R4K
  229. + select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
  230. + select GENERIC_ISA_DMA
  231. + select HAVE_PCSPKR_PLATFORM
  232. + select IRQ_CPU
  233. + select I8253
  234. + select I8259
  235. + select ISA
  236. + select SYS_HAS_CPU_R4X00
  237. + select SYS_SUPPORTS_32BIT_KERNEL
  238. + select SYS_SUPPORTS_64BIT_KERNEL
  239. + select SYS_SUPPORTS_100HZ
  240. + help
  241. + This a family of machines based on the MIPS R4030 chipset which was
  242. + used by several vendors to build RISC/os and Windows NT workstations.
  243. + Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
  244. + Olivetti M700-10 workstations.
  245. +
  246. +config MACH_JZ4740
  247. + bool "Ingenic JZ4740 based machines"
  248. + select SYS_HAS_CPU_MIPS32_R1
  249. + select SYS_SUPPORTS_32BIT_KERNEL
  250. + select SYS_SUPPORTS_LITTLE_ENDIAN
  251. + select SYS_SUPPORTS_ZBOOT_UART16550
  252. + select DMA_NONCOHERENT
  253. + select IRQ_CPU
  254. + select GENERIC_GPIO
  255. + select ARCH_REQUIRE_GPIOLIB
  256. + select SYS_HAS_EARLY_PRINTK
  257. + select HAVE_PWM
  258. + select HAVE_CLK
  259. + select GENERIC_IRQ_CHIP
  260. +
  261. +config LANTIQ
  262. + bool "Lantiq based platforms"
  263. + select DMA_NONCOHERENT
  264. + select IRQ_CPU
  265. + select CEVT_R4K
  266. + select CSRC_R4K
  267. + select SYS_HAS_CPU_MIPS32_R1
  268. + select SYS_HAS_CPU_MIPS32_R2
  269. + select SYS_SUPPORTS_BIG_ENDIAN
  270. + select SYS_SUPPORTS_32BIT_KERNEL
  271. + select SYS_SUPPORTS_MULTITHREADING
  272. + select SYS_HAS_EARLY_PRINTK
  273. + select ARCH_REQUIRE_GPIOLIB
  274. + select SWAP_IO_SPACE
  275. + select BOOT_RAW
  276. + select HAVE_MACH_CLKDEV
  277. + select CLKDEV_LOOKUP
  278. + select USE_OF
  279. + select PINCTRL
  280. + select PINCTRL_LANTIQ
  281. +
  282. +config LASAT
  283. + bool "LASAT Networks platforms"
  284. + select CEVT_R4K
  285. + select CSRC_R4K
  286. + select DMA_NONCOHERENT
  287. + select SYS_HAS_EARLY_PRINTK
  288. + select HW_HAS_PCI
  289. + select IRQ_CPU
  290. + select PCI_GT64XXX_PCI0
  291. + select MIPS_NILE4
  292. + select R5000_CPU_SCACHE
  293. + select SYS_HAS_CPU_R5000
  294. + select SYS_SUPPORTS_32BIT_KERNEL
  295. + select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
  296. + select SYS_SUPPORTS_LITTLE_ENDIAN
  297. +
  298. +config MACH_LOONGSON
  299. + bool "Loongson family of machines"
  300. + select SYS_SUPPORTS_ZBOOT
  301. + help
  302. + This enables the support of Loongson family of machines.
  303. +
  304. + Loongson is a family of general-purpose MIPS-compatible CPUs.
  305. + developed at Institute of Computing Technology (ICT),
  306. + Chinese Academy of Sciences (CAS) in the People's Republic
  307. + of China. The chief architect is Professor Weiwu Hu.
  308. +
  309. +config MACH_LOONGSON1
  310. + bool "Loongson 1 family of machines"
  311. + select SYS_SUPPORTS_ZBOOT
  312. + help
  313. + This enables support for the Loongson 1 based machines.
  314. +
  315. + Loongson 1 is a family of 32-bit MIPS-compatible SoCs developed by
  316. + the ICT (Institute of Computing Technology) and the Chinese Academy
  317. + of Sciences.
  318. +
  319. +config MIPS_MALTA
  320. + bool "MIPS Malta board"
  321. + select ARCH_MAY_HAVE_PC_FDC
  322. + select BOOT_ELF32
  323. + select BOOT_RAW
  324. + select CEVT_R4K
  325. + select CSRC_R4K
  326. + select CSRC_GIC
  327. + select DMA_NONCOHERENT
  328. + select GENERIC_ISA_DMA
  329. + select HAVE_PCSPKR_PLATFORM
  330. + select IRQ_CPU
  331. + select IRQ_GIC
  332. + select HW_HAS_PCI
  333. + select I8253
  334. + select I8259
  335. + select MIPS_BOARDS_GEN
  336. + select MIPS_BONITO64
  337. + select MIPS_CPU_SCACHE
  338. + select PCI_GT64XXX_PCI0
  339. + select MIPS_MSC
  340. + select SWAP_IO_SPACE
  341. + select SYS_HAS_CPU_MIPS32_R1
  342. + select SYS_HAS_CPU_MIPS32_R2
  343. + select SYS_HAS_CPU_MIPS64_R1
  344. + select SYS_HAS_CPU_MIPS64_R2
  345. + select SYS_HAS_CPU_NEVADA
  346. + select SYS_HAS_CPU_RM7000
  347. + select SYS_HAS_EARLY_PRINTK
  348. + select SYS_SUPPORTS_32BIT_KERNEL
  349. + select SYS_SUPPORTS_64BIT_KERNEL
  350. + select SYS_SUPPORTS_BIG_ENDIAN
  351. + select SYS_SUPPORTS_LITTLE_ENDIAN
  352. + select SYS_SUPPORTS_MIPS_CMP
  353. + select SYS_SUPPORTS_MULTITHREADING
  354. + select SYS_SUPPORTS_SMARTMIPS
  355. + select SYS_SUPPORTS_ZBOOT
  356. + help
  357. + This enables support for the MIPS Technologies Malta evaluation
  358. + board.
  359. +
  360. +config MIPS_SEAD3
  361. + bool "MIPS SEAD3 board"
  362. + select BOOT_ELF32
  363. + select BOOT_RAW
  364. + select CEVT_R4K
  365. + select CSRC_R4K
  366. + select CPU_MIPSR2_IRQ_VI
  367. + select CPU_MIPSR2_IRQ_EI
  368. + select DMA_NONCOHERENT
  369. + select IRQ_CPU
  370. + select IRQ_GIC
  371. + select MIPS_BOARDS_GEN
  372. + select MIPS_CPU_SCACHE
  373. + select MIPS_MSC
  374. + select SYS_HAS_CPU_MIPS32_R1
  375. + select SYS_HAS_CPU_MIPS32_R2
  376. + select SYS_HAS_CPU_MIPS64_R1
  377. + select SYS_HAS_EARLY_PRINTK
  378. + select SYS_SUPPORTS_32BIT_KERNEL
  379. + select SYS_SUPPORTS_64BIT_KERNEL
  380. + select SYS_SUPPORTS_BIG_ENDIAN
  381. + select SYS_SUPPORTS_LITTLE_ENDIAN
  382. + select SYS_SUPPORTS_SMARTMIPS
  383. + select USB_ARCH_HAS_EHCI
  384. + select USB_EHCI_BIG_ENDIAN_DESC
  385. + select USB_EHCI_BIG_ENDIAN_MMIO
  386. + select USE_OF
  387. + help
  388. + This enables support for the MIPS Technologies SEAD3 evaluation
  389. + board.
  390. +
  391. +config NEC_MARKEINS
  392. + bool "NEC EMMA2RH Mark-eins board"
  393. + select SOC_EMMA2RH
  394. + select HW_HAS_PCI
  395. + help
  396. + This enables support for the NEC Electronics Mark-eins boards.
  397. +
  398. +config MACH_VR41XX
  399. + bool "NEC VR4100 series based machines"
  400. + select CEVT_R4K
  401. + select CSRC_R4K
  402. + select SYS_HAS_CPU_VR41XX
  403. + select ARCH_REQUIRE_GPIOLIB
  404. +
  405. +config NXP_STB220
  406. + bool "NXP STB220 board"
  407. + select SOC_PNX833X
  408. + help
  409. + Support for NXP Semiconductors STB220 Development Board.
  410. +
  411. +config NXP_STB225
  412. + bool "NXP 225 board"
  413. + select SOC_PNX833X
  414. + select SOC_PNX8335
  415. + help
  416. + Support for NXP Semiconductors STB225 Development Board.
  417. +
  418. +config PMC_MSP
  419. + bool "PMC-Sierra MSP chipsets"
  420. + select CEVT_R4K
  421. + select CSRC_R4K
  422. + select DMA_NONCOHERENT
  423. + select SWAP_IO_SPACE
  424. + select NO_EXCEPT_FILL
  425. + select BOOT_RAW
  426. + select SYS_HAS_CPU_MIPS32_R1
  427. + select SYS_HAS_CPU_MIPS32_R2
  428. + select SYS_SUPPORTS_32BIT_KERNEL
  429. + select SYS_SUPPORTS_BIG_ENDIAN
  430. + select IRQ_CPU
  431. + select SERIAL_8250
  432. + select SERIAL_8250_CONSOLE
  433. + help
  434. + This adds support for the PMC-Sierra family of Multi-Service
  435. + Processor System-On-A-Chips. These parts include a number
  436. + of integrated peripherals, interfaces and DSPs in addition to
  437. + a variety of MIPS cores.
  438. +
  439. +config POWERTV
  440. + bool "Cisco PowerTV"
  441. + select BOOT_ELF32
  442. + select CEVT_R4K
  443. + select CPU_MIPSR2_IRQ_VI
  444. + select CPU_MIPSR2_IRQ_EI
  445. + select CSRC_POWERTV
  446. + select DMA_NONCOHERENT
  447. + select HW_HAS_PCI
  448. + select SYS_HAS_EARLY_PRINTK
  449. + select SYS_HAS_CPU_MIPS32_R2
  450. + select SYS_SUPPORTS_32BIT_KERNEL
  451. + select SYS_SUPPORTS_BIG_ENDIAN
  452. + select SYS_SUPPORTS_HIGHMEM
  453. + select USB_OHCI_LITTLE_ENDIAN
  454. + help
  455. + This enables support for the Cisco PowerTV Platform.
  456. +
  457. +config RALINK
  458. + bool "Ralink based machines"
  459. + select CEVT_R4K
  460. + select CSRC_R4K
  461. + select BOOT_RAW
  462. + select DMA_NONCOHERENT
  463. + select IRQ_CPU
  464. + select USE_OF
  465. + select SYS_HAS_CPU_MIPS32_R1
  466. + select SYS_HAS_CPU_MIPS32_R2
  467. + select SYS_SUPPORTS_32BIT_KERNEL
  468. + select SYS_SUPPORTS_LITTLE_ENDIAN
  469. + select SYS_HAS_EARLY_PRINTK
  470. + select HAVE_MACH_CLKDEV
  471. + select CLKDEV_LOOKUP
  472. +
  473. +config SGI_IP22
  474. + bool "SGI IP22 (Indy/Indigo2)"
  475. + select FW_ARC
  476. + select FW_ARC32
  477. + select BOOT_ELF32
  478. + select CEVT_R4K
  479. + select CSRC_R4K
  480. + select DEFAULT_SGI_PARTITION
  481. + select DMA_NONCOHERENT
  482. + select HW_HAS_EISA
  483. + select I8253
  484. + select I8259
  485. + select IP22_CPU_SCACHE
  486. + select IRQ_CPU
  487. + select GENERIC_ISA_DMA_SUPPORT_BROKEN
  488. + select SGI_HAS_I8042
  489. + select SGI_HAS_INDYDOG
  490. + select SGI_HAS_HAL2
  491. + select SGI_HAS_SEEQ
  492. + select SGI_HAS_WD93
  493. + select SGI_HAS_ZILOG
  494. + select SWAP_IO_SPACE
  495. + select SYS_HAS_CPU_R4X00
  496. + select SYS_HAS_CPU_R5000
  497. + #
  498. + # Disable EARLY_PRINTK for now since it leads to overwritten prom
  499. + # memory during early boot on some machines.
  500. + #
  501. + # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
  502. + # for a more details discussion
  503. + #
  504. + # select SYS_HAS_EARLY_PRINTK
  505. + select SYS_SUPPORTS_32BIT_KERNEL
  506. + select SYS_SUPPORTS_64BIT_KERNEL
  507. + select SYS_SUPPORTS_BIG_ENDIAN
  508. + help
  509. + This are the SGI Indy, Challenge S and Indigo2, as well as certain
  510. + OEM variants like the Tandem CMN B006S. To compile a Linux kernel
  511. + that runs on these, say Y here.
  512. +
  513. +config SGI_IP27
  514. + bool "SGI IP27 (Origin200/2000)"
  515. + select FW_ARC
  516. + select FW_ARC64
  517. + select BOOT_ELF64
  518. + select DEFAULT_SGI_PARTITION
  519. + select DMA_COHERENT
  520. + select SYS_HAS_EARLY_PRINTK
  521. + select HW_HAS_PCI
  522. + select NR_CPUS_DEFAULT_64
  523. + select SYS_HAS_CPU_R10000
  524. + select SYS_SUPPORTS_64BIT_KERNEL
  525. + select SYS_SUPPORTS_BIG_ENDIAN
  526. + select SYS_SUPPORTS_NUMA
  527. + select SYS_SUPPORTS_SMP
  528. + help
  529. + This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
  530. + workstations. To compile a Linux kernel that runs on these, say Y
  531. + here.
  532. +
  533. +config SGI_IP28
  534. + bool "SGI IP28 (Indigo2 R10k)"
  535. + select FW_ARC
  536. + select FW_ARC64
  537. + select BOOT_ELF64
  538. + select CEVT_R4K
  539. + select CSRC_R4K
  540. + select DEFAULT_SGI_PARTITION
  541. + select DMA_NONCOHERENT
  542. + select GENERIC_ISA_DMA_SUPPORT_BROKEN
  543. + select IRQ_CPU
  544. + select HW_HAS_EISA
  545. + select I8253
  546. + select I8259
  547. + select SGI_HAS_I8042
  548. + select SGI_HAS_INDYDOG
  549. + select SGI_HAS_HAL2
  550. + select SGI_HAS_SEEQ
  551. + select SGI_HAS_WD93
  552. + select SGI_HAS_ZILOG
  553. + select SWAP_IO_SPACE
  554. + select SYS_HAS_CPU_R10000
  555. + #
  556. + # Disable EARLY_PRINTK for now since it leads to overwritten prom
  557. + # memory during early boot on some machines.
  558. + #
  559. + # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
  560. + # for a more details discussion
  561. + #
  562. + # select SYS_HAS_EARLY_PRINTK
  563. + select SYS_SUPPORTS_64BIT_KERNEL
  564. + select SYS_SUPPORTS_BIG_ENDIAN
  565. + help
  566. + This is the SGI Indigo2 with R10000 processor. To compile a Linux
  567. + kernel that runs on these, say Y here.
  568. +
  569. +config SGI_IP32
  570. + bool "SGI IP32 (O2)"
  571. + select FW_ARC
  572. + select FW_ARC32
  573. + select BOOT_ELF32
  574. + select CEVT_R4K
  575. + select CSRC_R4K
  576. + select DMA_NONCOHERENT
  577. + select HW_HAS_PCI
  578. + select IRQ_CPU
  579. + select R5000_CPU_SCACHE
  580. + select RM7000_CPU_SCACHE
  581. + select SYS_HAS_CPU_R5000
  582. + select SYS_HAS_CPU_R10000 if BROKEN
  583. + select SYS_HAS_CPU_RM7000
  584. + select SYS_HAS_CPU_NEVADA
  585. + select SYS_SUPPORTS_64BIT_KERNEL
  586. + select SYS_SUPPORTS_BIG_ENDIAN
  587. + help
  588. + If you want this kernel to run on SGI O2 workstation, say Y here.
  589. +
  590. +config SIBYTE_CRHINE
  591. + bool "Sibyte BCM91120C-CRhine"
  592. + select BOOT_ELF32
  593. + select DMA_COHERENT
  594. + select SIBYTE_BCM1120
  595. + select SWAP_IO_SPACE
  596. + select SYS_HAS_CPU_SB1
  597. + select SYS_SUPPORTS_BIG_ENDIAN
  598. + select SYS_SUPPORTS_LITTLE_ENDIAN
  599. +
  600. +config SIBYTE_CARMEL
  601. + bool "Sibyte BCM91120x-Carmel"
  602. + select BOOT_ELF32
  603. + select DMA_COHERENT
  604. + select SIBYTE_BCM1120
  605. + select SWAP_IO_SPACE
  606. + select SYS_HAS_CPU_SB1
  607. + select SYS_SUPPORTS_BIG_ENDIAN
  608. + select SYS_SUPPORTS_LITTLE_ENDIAN
  609. +
  610. +config SIBYTE_CRHONE
  611. + bool "Sibyte BCM91125C-CRhone"
  612. + select BOOT_ELF32
  613. + select DMA_COHERENT
  614. + select SIBYTE_BCM1125
  615. + select SWAP_IO_SPACE
  616. + select SYS_HAS_CPU_SB1
  617. + select SYS_SUPPORTS_BIG_ENDIAN
  618. + select SYS_SUPPORTS_HIGHMEM
  619. + select SYS_SUPPORTS_LITTLE_ENDIAN
  620. +
  621. +config SIBYTE_RHONE
  622. + bool "Sibyte BCM91125E-Rhone"
  623. + select BOOT_ELF32
  624. + select DMA_COHERENT
  625. + select SIBYTE_BCM1125H
  626. + select SWAP_IO_SPACE
  627. + select SYS_HAS_CPU_SB1
  628. + select SYS_SUPPORTS_BIG_ENDIAN
  629. + select SYS_SUPPORTS_LITTLE_ENDIAN
  630. +
  631. +config SIBYTE_SWARM
  632. + bool "Sibyte BCM91250A-SWARM"
  633. + select BOOT_ELF32
  634. + select DMA_COHERENT
  635. + select HAVE_PATA_PLATFORM
  636. + select NR_CPUS_DEFAULT_2
  637. + select SIBYTE_SB1250
  638. + select SWAP_IO_SPACE
  639. + select SYS_HAS_CPU_SB1
  640. + select SYS_SUPPORTS_BIG_ENDIAN
  641. + select SYS_SUPPORTS_HIGHMEM
  642. + select SYS_SUPPORTS_LITTLE_ENDIAN
  643. + select ZONE_DMA32 if 64BIT
  644. +
  645. +config SIBYTE_LITTLESUR
  646. + bool "Sibyte BCM91250C2-LittleSur"
  647. + select BOOT_ELF32
  648. + select DMA_COHERENT
  649. + select HAVE_PATA_PLATFORM
  650. + select NR_CPUS_DEFAULT_2
  651. + select SIBYTE_SB1250
  652. + select SWAP_IO_SPACE
  653. + select SYS_HAS_CPU_SB1
  654. + select SYS_SUPPORTS_BIG_ENDIAN
  655. + select SYS_SUPPORTS_HIGHMEM
  656. + select SYS_SUPPORTS_LITTLE_ENDIAN
  657. +
  658. +config SIBYTE_SENTOSA
  659. + bool "Sibyte BCM91250E-Sentosa"
  660. + select BOOT_ELF32
  661. + select DMA_COHERENT
  662. + select NR_CPUS_DEFAULT_2
  663. + select SIBYTE_SB1250
  664. + select SWAP_IO_SPACE
  665. + select SYS_HAS_CPU_SB1
  666. + select SYS_SUPPORTS_BIG_ENDIAN
  667. + select SYS_SUPPORTS_LITTLE_ENDIAN
  668. +
  669. +config SIBYTE_BIGSUR
  670. + bool "Sibyte BCM91480B-BigSur"
  671. + select BOOT_ELF32
  672. + select DMA_COHERENT
  673. + select NR_CPUS_DEFAULT_4
  674. + select SIBYTE_BCM1x80
  675. + select SWAP_IO_SPACE
  676. + select SYS_HAS_CPU_SB1
  677. + select SYS_SUPPORTS_BIG_ENDIAN
  678. + select SYS_SUPPORTS_HIGHMEM
  679. + select SYS_SUPPORTS_LITTLE_ENDIAN
  680. + select ZONE_DMA32 if 64BIT
  681. +
  682. +config SNI_RM
  683. + bool "SNI RM200/300/400"
  684. + select FW_ARC if CPU_LITTLE_ENDIAN
  685. + select FW_ARC32 if CPU_LITTLE_ENDIAN
  686. + select FW_SNIPROM if CPU_BIG_ENDIAN
  687. + select ARCH_MAY_HAVE_PC_FDC
  688. + select BOOT_ELF32
  689. + select CEVT_R4K
  690. + select CSRC_R4K
  691. + select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
  692. + select DMA_NONCOHERENT
  693. + select GENERIC_ISA_DMA
  694. + select HAVE_PCSPKR_PLATFORM
  695. + select HW_HAS_EISA
  696. + select HW_HAS_PCI
  697. + select IRQ_CPU
  698. + select I8253
  699. + select I8259
  700. + select ISA
  701. + select SWAP_IO_SPACE if CPU_BIG_ENDIAN
  702. + select SYS_HAS_CPU_R4X00
  703. + select SYS_HAS_CPU_R5000
  704. + select SYS_HAS_CPU_R10000
  705. + select R5000_CPU_SCACHE
  706. + select SYS_HAS_EARLY_PRINTK
  707. + select SYS_SUPPORTS_32BIT_KERNEL
  708. + select SYS_SUPPORTS_64BIT_KERNEL
  709. + select SYS_SUPPORTS_BIG_ENDIAN
  710. + select SYS_SUPPORTS_HIGHMEM
  711. + select SYS_SUPPORTS_LITTLE_ENDIAN
  712. + help
  713. + The SNI RM200/300/400 are MIPS-based machines manufactured by
  714. + Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
  715. + Technology and now in turn merged with Fujitsu. Say Y here to
  716. + support this machine type.
  717. +
  718. +config MACH_TX39XX
  719. + bool "Toshiba TX39 series based machines"
  720. +
  721. +config MACH_TX49XX
  722. + bool "Toshiba TX49 series based machines"
  723. +
  724. +config MIKROTIK_RB532
  725. + bool "Mikrotik RB532 boards"
  726. + select CEVT_R4K
  727. + select CSRC_R4K
  728. + select DMA_NONCOHERENT
  729. + select HW_HAS_PCI
  730. + select IRQ_CPU
  731. + select SYS_HAS_CPU_MIPS32_R1
  732. + select SYS_SUPPORTS_32BIT_KERNEL
  733. + select SYS_SUPPORTS_LITTLE_ENDIAN
  734. + select SWAP_IO_SPACE
  735. + select BOOT_RAW
  736. + select ARCH_REQUIRE_GPIOLIB
  737. + help
  738. + Support the Mikrotik(tm) RouterBoard 532 series,
  739. + based on the IDT RC32434 SoC.
  740. +
  741. +config WR_PPMC
  742. + bool "Wind River PPMC board"
  743. + select CEVT_R4K
  744. + select CSRC_R4K
  745. + select IRQ_CPU
  746. + select BOOT_ELF32
  747. + select DMA_NONCOHERENT
  748. + select HW_HAS_PCI
  749. + select PCI_GT64XXX_PCI0
  750. + select SWAP_IO_SPACE
  751. + select SYS_HAS_CPU_MIPS32_R1
  752. + select SYS_HAS_CPU_MIPS32_R2
  753. + select SYS_HAS_CPU_MIPS64_R1
  754. + select SYS_HAS_CPU_NEVADA
  755. + select SYS_HAS_CPU_RM7000
  756. + select SYS_SUPPORTS_32BIT_KERNEL
  757. + select SYS_SUPPORTS_64BIT_KERNEL
  758. + select SYS_SUPPORTS_BIG_ENDIAN
  759. + select SYS_SUPPORTS_LITTLE_ENDIAN
  760. + help
  761. + This enables support for the Wind River MIPS32 4KC PPMC evaluation
  762. + board, which is based on GT64120 bridge chip.
  763. +
  764. +config CAVIUM_OCTEON_SIMULATOR
  765. + bool "Cavium Networks Octeon Simulator"
  766. + select CEVT_R4K
  767. + select 64BIT_PHYS_ADDR
  768. + select DMA_COHERENT
  769. + select SYS_SUPPORTS_64BIT_KERNEL
  770. + select SYS_SUPPORTS_BIG_ENDIAN
  771. + select SYS_SUPPORTS_HOTPLUG_CPU
  772. + select SYS_HAS_CPU_CAVIUM_OCTEON
  773. + select HOLES_IN_ZONE
  774. + help
  775. + The Octeon simulator is software performance model of the Cavium
  776. + Octeon Processor. It supports simulating Octeon processors on x86
  777. + hardware.
  778. +
  779. +config CAVIUM_OCTEON_REFERENCE_BOARD
  780. + bool "Cavium Networks Octeon reference board"
  781. + select CEVT_R4K
  782. + select 64BIT_PHYS_ADDR
  783. + select DMA_COHERENT
  784. + select SYS_SUPPORTS_64BIT_KERNEL
  785. + select SYS_SUPPORTS_BIG_ENDIAN
  786. + select EDAC_SUPPORT
  787. + select SYS_SUPPORTS_HOTPLUG_CPU
  788. + select SYS_HAS_EARLY_PRINTK
  789. + select SYS_HAS_CPU_CAVIUM_OCTEON
  790. + select SWAP_IO_SPACE
  791. + select HW_HAS_PCI
  792. + select ARCH_SUPPORTS_MSI
  793. + select ZONE_DMA32
  794. + select USB_ARCH_HAS_OHCI
  795. + select USB_ARCH_HAS_EHCI
  796. + select HOLES_IN_ZONE
  797. + help
  798. + This option supports all of the Octeon reference boards from Cavium
  799. + Networks. It builds a kernel that dynamically determines the Octeon
  800. + CPU type and supports all known board reference implementations.
  801. + Some of the supported boards are:
  802. + EBT3000
  803. + EBH3000
  804. + EBH3100
  805. + Thunder
  806. + Kodama
  807. + Hikari
  808. + Say Y here for most Octeon reference boards.
  809. +
  810. +config NLM_XLR_BOARD
  811. + bool "Netlogic XLR/XLS based systems"
  812. + select BOOT_ELF32
  813. + select NLM_COMMON
  814. + select SYS_HAS_CPU_XLR
  815. + select SYS_SUPPORTS_SMP
  816. + select HW_HAS_PCI
  817. + select SWAP_IO_SPACE
  818. + select SYS_SUPPORTS_32BIT_KERNEL
  819. + select SYS_SUPPORTS_64BIT_KERNEL
  820. + select 64BIT_PHYS_ADDR
  821. + select SYS_SUPPORTS_BIG_ENDIAN
  822. + select SYS_SUPPORTS_HIGHMEM
  823. + select DMA_COHERENT
  824. + select NR_CPUS_DEFAULT_32
  825. + select CEVT_R4K
  826. + select CSRC_R4K
  827. + select IRQ_CPU
  828. + select ARCH_SUPPORTS_MSI
  829. + select ZONE_DMA32 if 64BIT
  830. + select SYNC_R4K
  831. + select SYS_HAS_EARLY_PRINTK
  832. + select USB_ARCH_HAS_OHCI if USB_SUPPORT
  833. + select USB_ARCH_HAS_EHCI if USB_SUPPORT
  834. + help
  835. + Support for systems based on Netlogic XLR and XLS processors.
  836. + Say Y here if you have a XLR or XLS based board.
  837. +
  838. +config NLM_XLP_BOARD
  839. + bool "Netlogic XLP based systems"
  840. + select BOOT_ELF32
  841. + select NLM_COMMON
  842. + select SYS_HAS_CPU_XLP
  843. + select SYS_SUPPORTS_SMP
  844. + select HW_HAS_PCI
  845. + select SYS_SUPPORTS_32BIT_KERNEL
  846. + select SYS_SUPPORTS_64BIT_KERNEL
  847. + select 64BIT_PHYS_ADDR
  848. + select SYS_SUPPORTS_BIG_ENDIAN
  849. + select SYS_SUPPORTS_LITTLE_ENDIAN
  850. + select SYS_SUPPORTS_HIGHMEM
  851. + select DMA_COHERENT
  852. + select NR_CPUS_DEFAULT_32
  853. + select CEVT_R4K
  854. + select CSRC_R4K
  855. + select IRQ_CPU
  856. + select ZONE_DMA32 if 64BIT
  857. + select SYNC_R4K
  858. + select SYS_HAS_EARLY_PRINTK
  859. + select USE_OF
  860. + help
  861. + This board is based on Netlogic XLP Processor.
  862. + Say Y here if you have a XLP based board.
  863. +
  864. +endchoice
  865. +
  866. +source "arch/mips/alchemy/Kconfig"
  867. +source "arch/mips/ath79/Kconfig"
  868. +source "arch/mips/bcm47xx/Kconfig"
  869. +source "arch/mips/bcm63xx/Kconfig"
  870. +source "arch/mips/jazz/Kconfig"
  871. +source "arch/mips/jz4740/Kconfig"
  872. +source "arch/mips/lantiq/Kconfig"
  873. +source "arch/mips/lasat/Kconfig"
  874. +source "arch/mips/pmcs-msp71xx/Kconfig"
  875. +source "arch/mips/powertv/Kconfig"
  876. +source "arch/mips/ralink/Kconfig"
  877. +source "arch/mips/sgi-ip27/Kconfig"
  878. +source "arch/mips/sibyte/Kconfig"
  879. +source "arch/mips/txx9/Kconfig"
  880. +source "arch/mips/vr41xx/Kconfig"
  881. +source "arch/mips/cavium-octeon/Kconfig"
  882. +source "arch/mips/loongson/Kconfig"
  883. +source "arch/mips/loongson1/Kconfig"
  884. +source "arch/mips/netlogic/Kconfig"
  885. +
  886. +endmenu
  887. +
  888. +config RWSEM_GENERIC_SPINLOCK
  889. + bool
  890. + default y
  891. +
  892. +config RWSEM_XCHGADD_ALGORITHM
  893. + bool
  894. +
  895. +config ARCH_HAS_ILOG2_U32
  896. + bool
  897. + default n
  898. +
  899. +config ARCH_HAS_ILOG2_U64
  900. + bool
  901. + default n
  902. +
  903. +config GENERIC_HWEIGHT
  904. + bool
  905. + default y
  906. +
  907. +config GENERIC_CALIBRATE_DELAY
  908. + bool
  909. + default y
  910. +
  911. +config SCHED_OMIT_FRAME_POINTER
  912. + bool
  913. + default y
  914. +
  915. +#
  916. +# Select some configuration options automatically based on user selections.
  917. +#
  918. +config FW_ARC
  919. + bool
  920. +
  921. +config ARCH_MAY_HAVE_PC_FDC
  922. + bool
  923. +
  924. +config BOOT_RAW
  925. + bool
  926. +
  927. +config CEVT_BCM1480
  928. + bool
  929. +
  930. +config CEVT_DS1287
  931. + bool
  932. +
  933. +config CEVT_GT641XX
  934. + bool
  935. +
  936. +config CEVT_R4K
  937. + bool
  938. +
  939. +config CEVT_SB1250
  940. + bool
  941. +
  942. +config CEVT_TXX9
  943. + bool
  944. +
  945. +config CSRC_BCM1480
  946. + bool
  947. +
  948. +config CSRC_IOASIC
  949. + bool
  950. +
  951. +config CSRC_POWERTV
  952. + bool
  953. +
  954. +config CSRC_R4K
  955. + bool
  956. +
  957. +config CSRC_GIC
  958. + bool
  959. +
  960. +config CSRC_SB1250
  961. + bool
  962. +
  963. +config GPIO_TXX9
  964. + select GENERIC_GPIO
  965. + select ARCH_REQUIRE_GPIOLIB
  966. + bool
  967. +
  968. +config FW_CFE
  969. + bool
  970. +
  971. +config ARCH_DMA_ADDR_T_64BIT
  972. + def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
  973. +
  974. +config DMA_COHERENT
  975. + bool
  976. +
  977. +config DMA_NONCOHERENT
  978. + bool
  979. + select NEED_DMA_MAP_STATE
  980. +
  981. +config NEED_DMA_MAP_STATE
  982. + bool
  983. +
  984. +config SYS_HAS_EARLY_PRINTK
  985. + bool
  986. +
  987. +config HOTPLUG_CPU
  988. + bool "Support for hot-pluggable CPUs"
  989. + depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
  990. + help
  991. + Say Y here to allow turning CPUs off and on. CPUs can be
  992. + controlled through /sys/devices/system/cpu.
  993. + (Note: power management support will enable this option
  994. + automatically on SMP systems. )
  995. + Say N if you want to disable CPU hotplug.
  996. +
  997. +config SYS_SUPPORTS_HOTPLUG_CPU
  998. + bool
  999. +
  1000. +config I8259
  1001. + bool
  1002. +
  1003. +config MIPS_BONITO64
  1004. + bool
  1005. +
  1006. +config MIPS_MSC
  1007. + bool
  1008. +
  1009. +config MIPS_NILE4
  1010. + bool
  1011. +
  1012. +config MIPS_DISABLE_OBSOLETE_IDE
  1013. + bool
  1014. +
  1015. +config SYNC_R4K
  1016. + bool
  1017. +
  1018. +config MIPS_MACHINE
  1019. + def_bool n
  1020. +
  1021. +config NO_IOPORT
  1022. + def_bool n
  1023. +
  1024. +config GENERIC_ISA_DMA
  1025. + bool
  1026. + select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
  1027. + select ISA_DMA_API
  1028. +
  1029. +config GENERIC_ISA_DMA_SUPPORT_BROKEN
  1030. + bool
  1031. + select GENERIC_ISA_DMA
  1032. +
  1033. +config ISA_DMA_API
  1034. + bool
  1035. +
  1036. +config GENERIC_GPIO
  1037. + bool
  1038. +
  1039. +config HOLES_IN_ZONE
  1040. + bool
  1041. +
  1042. +#
  1043. +# Endianness selection. Sufficiently obscure so many users don't know what to
  1044. +# answer,so we try hard to limit the available choices. Also the use of a
  1045. +# choice statement should be more obvious to the user.
  1046. +#
  1047. +choice
  1048. + prompt "Endianness selection"
  1049. + help
  1050. + Some MIPS machines can be configured for either little or big endian
  1051. + byte order. These modes require different kernels and a different
  1052. + Linux distribution. In general there is one preferred byteorder for a
  1053. + particular system but some systems are just as commonly used in the
  1054. + one or the other endianness.
  1055. +
  1056. +config CPU_BIG_ENDIAN
  1057. + bool "Big endian"
  1058. + depends on SYS_SUPPORTS_BIG_ENDIAN
  1059. +
  1060. +config CPU_LITTLE_ENDIAN
  1061. + bool "Little endian"
  1062. + depends on SYS_SUPPORTS_LITTLE_ENDIAN
  1063. + help
  1064. +
  1065. +endchoice
  1066. +
  1067. +config EXPORT_UASM
  1068. + bool
  1069. +
  1070. +config SYS_SUPPORTS_APM_EMULATION
  1071. + bool
  1072. +
  1073. +config SYS_SUPPORTS_BIG_ENDIAN
  1074. + bool
  1075. +
  1076. +config SYS_SUPPORTS_LITTLE_ENDIAN
  1077. + bool
  1078. +
  1079. +config SYS_SUPPORTS_HUGETLBFS
  1080. + bool
  1081. + depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
  1082. + default y
  1083. +
  1084. +config MIPS_HUGE_TLB_SUPPORT
  1085. + def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
  1086. +
  1087. +config IRQ_CPU
  1088. + bool
  1089. +
  1090. +config IRQ_CPU_RM7K
  1091. + bool
  1092. +
  1093. +config IRQ_MSP_SLP
  1094. + bool
  1095. +
  1096. +config IRQ_MSP_CIC
  1097. + bool
  1098. +
  1099. +config IRQ_TXX9
  1100. + bool
  1101. +
  1102. +config IRQ_GT641XX
  1103. + bool
  1104. +
  1105. +config IRQ_GIC
  1106. + bool
  1107. +
  1108. +config MIPS_BOARDS_GEN
  1109. + bool
  1110. +
  1111. +config PCI_GT64XXX_PCI0
  1112. + bool
  1113. +
  1114. +config NO_EXCEPT_FILL
  1115. + bool
  1116. +
  1117. +config SOC_EMMA2RH
  1118. + bool
  1119. + select CEVT_R4K
  1120. + select CSRC_R4K
  1121. + select DMA_NONCOHERENT
  1122. + select IRQ_CPU
  1123. + select SWAP_IO_SPACE
  1124. + select SYS_HAS_CPU_R5500
  1125. + select SYS_SUPPORTS_32BIT_KERNEL
  1126. + select SYS_SUPPORTS_64BIT_KERNEL
  1127. + select SYS_SUPPORTS_BIG_ENDIAN
  1128. +
  1129. +config SOC_PNX833X
  1130. + bool
  1131. + select CEVT_R4K
  1132. + select CSRC_R4K
  1133. + select IRQ_CPU
  1134. + select DMA_NONCOHERENT
  1135. + select SYS_HAS_CPU_MIPS32_R2
  1136. + select SYS_SUPPORTS_32BIT_KERNEL
  1137. + select SYS_SUPPORTS_LITTLE_ENDIAN
  1138. + select SYS_SUPPORTS_BIG_ENDIAN
  1139. + select GENERIC_GPIO
  1140. + select CPU_MIPSR2_IRQ_VI
  1141. +
  1142. +config SOC_PNX8335
  1143. + bool
  1144. + select SOC_PNX833X
  1145. +
  1146. +config SWAP_IO_SPACE
  1147. + bool
  1148. +
  1149. +config SGI_HAS_INDYDOG
  1150. + bool
  1151. +
  1152. +config SGI_HAS_HAL2
  1153. + bool
  1154. +
  1155. +config SGI_HAS_SEEQ
  1156. + bool
  1157. +
  1158. +config SGI_HAS_WD93
  1159. + bool
  1160. +
  1161. +config SGI_HAS_ZILOG
  1162. + bool
  1163. +
  1164. +config SGI_HAS_I8042
  1165. + bool
  1166. +
  1167. +config DEFAULT_SGI_PARTITION
  1168. + bool
  1169. +
  1170. +config FW_ARC32
  1171. + bool
  1172. +
  1173. +config FW_SNIPROM
  1174. + bool
  1175. +
  1176. +config BOOT_ELF32
  1177. + bool
  1178. +
  1179. +config MIPS_L1_CACHE_SHIFT
  1180. + int
  1181. + default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
  1182. + default "6" if MIPS_CPU_SCACHE
  1183. + default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
  1184. + default "5"
  1185. +
  1186. +config HAVE_STD_PC_SERIAL_PORT
  1187. + bool
  1188. +
  1189. +config ARC_CONSOLE
  1190. + bool "ARC console support"
  1191. + depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
  1192. +
  1193. +config ARC_MEMORY
  1194. + bool
  1195. + depends on MACH_JAZZ || SNI_RM || SGI_IP32
  1196. + default y
  1197. +
  1198. +config ARC_PROMLIB
  1199. + bool
  1200. + depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
  1201. + default y
  1202. +
  1203. +config FW_ARC64
  1204. + bool
  1205. +
  1206. +config BOOT_ELF64
  1207. + bool
  1208. +
  1209. +menu "CPU selection"
  1210. +
  1211. +choice
  1212. + prompt "CPU type"
  1213. + default CPU_R4X00
  1214. +
  1215. +config CPU_LOONGSON2E
  1216. + bool "Loongson 2E"
  1217. + depends on SYS_HAS_CPU_LOONGSON2E
  1218. + select CPU_LOONGSON2
  1219. + help
  1220. + The Loongson 2E processor implements the MIPS III instruction set
  1221. + with many extensions.
  1222. +
  1223. + It has an internal FPGA northbridge, which is compatible to
  1224. + bonito64.
  1225. +
  1226. +config CPU_LOONGSON2F
  1227. + bool "Loongson 2F"
  1228. + depends on SYS_HAS_CPU_LOONGSON2F
  1229. + select CPU_LOONGSON2
  1230. + select GENERIC_GPIO
  1231. + select ARCH_REQUIRE_GPIOLIB
  1232. + help
  1233. + The Loongson 2F processor implements the MIPS III instruction set
  1234. + with many extensions.
  1235. +
  1236. + Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
  1237. + have a similar programming interface with FPGA northbridge used in
  1238. + Loongson2E.
  1239. +
  1240. +config CPU_LOONGSON1B
  1241. + bool "Loongson 1B"
  1242. + depends on SYS_HAS_CPU_LOONGSON1B
  1243. + select CPU_LOONGSON1
  1244. + help
  1245. + The Loongson 1B is a 32-bit SoC, which implements the MIPS32
  1246. + release 2 instruction set.
  1247. +
  1248. +config CPU_MIPS32_R1
  1249. + bool "MIPS32 Release 1"
  1250. + depends on SYS_HAS_CPU_MIPS32_R1
  1251. + select CPU_HAS_PREFETCH
  1252. + select CPU_SUPPORTS_32BIT_KERNEL
  1253. + select CPU_SUPPORTS_HIGHMEM
  1254. + help
  1255. + Choose this option to build a kernel for release 1 or later of the
  1256. + MIPS32 architecture. Most modern embedded systems with a 32-bit
  1257. + MIPS processor are based on a MIPS32 processor. If you know the
  1258. + specific type of processor in your system, choose those that one
  1259. + otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
  1260. + Release 2 of the MIPS32 architecture is available since several
  1261. + years so chances are you even have a MIPS32 Release 2 processor
  1262. + in which case you should choose CPU_MIPS32_R2 instead for better
  1263. + performance.
  1264. +
  1265. +config CPU_MIPS32_R2
  1266. + bool "MIPS32 Release 2"
  1267. + depends on SYS_HAS_CPU_MIPS32_R2
  1268. + select CPU_HAS_PREFETCH
  1269. + select CPU_SUPPORTS_32BIT_KERNEL
  1270. + select CPU_SUPPORTS_HIGHMEM
  1271. + help
  1272. + Choose this option to build a kernel for release 2 or later of the
  1273. + MIPS32 architecture. Most modern embedded systems with a 32-bit
  1274. + MIPS processor are based on a MIPS32 processor. If you know the
  1275. + specific type of processor in your system, choose those that one
  1276. + otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
  1277. +
  1278. +config CPU_MIPS64_R1
  1279. + bool "MIPS64 Release 1"
  1280. + depends on SYS_HAS_CPU_MIPS64_R1
  1281. + select CPU_HAS_PREFETCH
  1282. + select CPU_SUPPORTS_32BIT_KERNEL
  1283. + select CPU_SUPPORTS_64BIT_KERNEL
  1284. + select CPU_SUPPORTS_HIGHMEM
  1285. + select CPU_SUPPORTS_HUGEPAGES
  1286. + help
  1287. + Choose this option to build a kernel for release 1 or later of the
  1288. + MIPS64 architecture. Many modern embedded systems with a 64-bit
  1289. + MIPS processor are based on a MIPS64 processor. If you know the
  1290. + specific type of processor in your system, choose those that one
  1291. + otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
  1292. + Release 2 of the MIPS64 architecture is available since several
  1293. + years so chances are you even have a MIPS64 Release 2 processor
  1294. + in which case you should choose CPU_MIPS64_R2 instead for better
  1295. + performance.
  1296. +
  1297. +config CPU_MIPS64_R2
  1298. + bool "MIPS64 Release 2"
  1299. + depends on SYS_HAS_CPU_MIPS64_R2
  1300. + select CPU_HAS_PREFETCH
  1301. + select CPU_SUPPORTS_32BIT_KERNEL
  1302. + select CPU_SUPPORTS_64BIT_KERNEL
  1303. + select CPU_SUPPORTS_HIGHMEM
  1304. + select CPU_SUPPORTS_HUGEPAGES
  1305. + help
  1306. + Choose this option to build a kernel for release 2 or later of the
  1307. + MIPS64 architecture. Many modern embedded systems with a 64-bit
  1308. + MIPS processor are based on a MIPS64 processor. If you know the
  1309. + specific type of processor in your system, choose those that one
  1310. + otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
  1311. +
  1312. +config CPU_R3000
  1313. + bool "R3000"
  1314. + depends on SYS_HAS_CPU_R3000
  1315. + select CPU_HAS_WB
  1316. + select CPU_SUPPORTS_32BIT_KERNEL
  1317. + select CPU_SUPPORTS_HIGHMEM
  1318. + help
  1319. + Please make sure to pick the right CPU type. Linux/MIPS is not
  1320. + designed to be generic, i.e. Kernels compiled for R3000 CPUs will
  1321. + *not* work on R4000 machines and vice versa. However, since most
  1322. + of the supported machines have an R4000 (or similar) CPU, R4x00
  1323. + might be a safe bet. If the resulting kernel does not work,
  1324. + try to recompile with R3000.
  1325. +
  1326. +config CPU_TX39XX
  1327. + bool "R39XX"
  1328. + depends on SYS_HAS_CPU_TX39XX
  1329. + select CPU_SUPPORTS_32BIT_KERNEL
  1330. +
  1331. +config CPU_VR41XX
  1332. + bool "R41xx"
  1333. + depends on SYS_HAS_CPU_VR41XX
  1334. + select CPU_SUPPORTS_32BIT_KERNEL
  1335. + select CPU_SUPPORTS_64BIT_KERNEL
  1336. + help
  1337. + The options selects support for the NEC VR4100 series of processors.
  1338. + Only choose this option if you have one of these processors as a
  1339. + kernel built with this option will not run on any other type of
  1340. + processor or vice versa.
  1341. +
  1342. +config CPU_R4300
  1343. + bool "R4300"
  1344. + depends on SYS_HAS_CPU_R4300
  1345. + select CPU_SUPPORTS_32BIT_KERNEL
  1346. + select CPU_SUPPORTS_64BIT_KERNEL
  1347. + help
  1348. + MIPS Technologies R4300-series processors.
  1349. +
  1350. +config CPU_R4X00
  1351. + bool "R4x00"
  1352. + depends on SYS_HAS_CPU_R4X00
  1353. + select CPU_SUPPORTS_32BIT_KERNEL
  1354. + select CPU_SUPPORTS_64BIT_KERNEL
  1355. + select CPU_SUPPORTS_HUGEPAGES
  1356. + help
  1357. + MIPS Technologies R4000-series processors other than 4300, including
  1358. + the R4000, R4400, R4600, and 4700.
  1359. +
  1360. +config CPU_TX49XX
  1361. + bool "R49XX"
  1362. + depends on SYS_HAS_CPU_TX49XX
  1363. + select CPU_HAS_PREFETCH
  1364. + select CPU_SUPPORTS_32BIT_KERNEL
  1365. + select CPU_SUPPORTS_64BIT_KERNEL
  1366. + select CPU_SUPPORTS_HUGEPAGES
  1367. +
  1368. +config CPU_R5000
  1369. + bool "R5000"
  1370. + depends on SYS_HAS_CPU_R5000
  1371. + select CPU_SUPPORTS_32BIT_KERNEL
  1372. + select CPU_SUPPORTS_64BIT_KERNEL
  1373. + select CPU_SUPPORTS_HUGEPAGES
  1374. + help
  1375. + MIPS Technologies R5000-series processors other than the Nevada.
  1376. +
  1377. +config CPU_R5432
  1378. + bool "R5432"
  1379. + depends on SYS_HAS_CPU_R5432
  1380. + select CPU_SUPPORTS_32BIT_KERNEL
  1381. + select CPU_SUPPORTS_64BIT_KERNEL
  1382. + select CPU_SUPPORTS_HUGEPAGES
  1383. +
  1384. +config CPU_R5500
  1385. + bool "R5500"
  1386. + depends on SYS_HAS_CPU_R5500
  1387. + select CPU_SUPPORTS_32BIT_KERNEL
  1388. + select CPU_SUPPORTS_64BIT_KERNEL
  1389. + select CPU_SUPPORTS_HUGEPAGES
  1390. + help
  1391. + NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
  1392. + instruction set.
  1393. +
  1394. +config CPU_R6000
  1395. + bool "R6000"
  1396. + depends on SYS_HAS_CPU_R6000
  1397. + select CPU_SUPPORTS_32BIT_KERNEL
  1398. + help
  1399. + MIPS Technologies R6000 and R6000A series processors. Note these
  1400. + processors are extremely rare and the support for them is incomplete.
  1401. +
  1402. +config CPU_NEVADA
  1403. + bool "RM52xx"
  1404. + depends on SYS_HAS_CPU_NEVADA
  1405. + select CPU_SUPPORTS_32BIT_KERNEL
  1406. + select CPU_SUPPORTS_64BIT_KERNEL
  1407. + select CPU_SUPPORTS_HUGEPAGES
  1408. + help
  1409. + QED / PMC-Sierra RM52xx-series ("Nevada") processors.
  1410. +
  1411. +config CPU_R8000
  1412. + bool "R8000"
  1413. + depends on SYS_HAS_CPU_R8000
  1414. + select CPU_HAS_PREFETCH
  1415. + select CPU_SUPPORTS_64BIT_KERNEL
  1416. + help
  1417. + MIPS Technologies R8000 processors. Note these processors are
  1418. + uncommon and the support for them is incomplete.
  1419. +
  1420. +config CPU_R10000
  1421. + bool "R10000"
  1422. + depends on SYS_HAS_CPU_R10000
  1423. + select CPU_HAS_PREFETCH
  1424. + select CPU_SUPPORTS_32BIT_KERNEL
  1425. + select CPU_SUPPORTS_64BIT_KERNEL
  1426. + select CPU_SUPPORTS_HIGHMEM
  1427. + select CPU_SUPPORTS_HUGEPAGES
  1428. + help
  1429. + MIPS Technologies R10000-series processors.
  1430. +
  1431. +config CPU_RM7000
  1432. + bool "RM7000"
  1433. + depends on SYS_HAS_CPU_RM7000
  1434. + select CPU_HAS_PREFETCH
  1435. + select CPU_SUPPORTS_32BIT_KERNEL
  1436. + select CPU_SUPPORTS_64BIT_KERNEL
  1437. + select CPU_SUPPORTS_HIGHMEM
  1438. + select CPU_SUPPORTS_HUGEPAGES
  1439. +
  1440. +config CPU_SB1
  1441. + bool "SB1"
  1442. + depends on SYS_HAS_CPU_SB1
  1443. + select CPU_SUPPORTS_32BIT_KERNEL
  1444. + select CPU_SUPPORTS_64BIT_KERNEL
  1445. + select CPU_SUPPORTS_HIGHMEM
  1446. + select CPU_SUPPORTS_HUGEPAGES
  1447. + select WEAK_ORDERING
  1448. +
  1449. +config CPU_CAVIUM_OCTEON
  1450. + bool "Cavium Octeon processor"
  1451. + depends on SYS_HAS_CPU_CAVIUM_OCTEON
  1452. + select ARCH_SPARSEMEM_ENABLE
  1453. + select CPU_HAS_PREFETCH
  1454. + select CPU_SUPPORTS_64BIT_KERNEL
  1455. + select SYS_SUPPORTS_SMP
  1456. + select NR_CPUS_DEFAULT_16
  1457. + select WEAK_ORDERING
  1458. + select CPU_SUPPORTS_HIGHMEM
  1459. + select CPU_SUPPORTS_HUGEPAGES
  1460. + select LIBFDT
  1461. + select USE_OF
  1462. + help
  1463. + The Cavium Octeon processor is a highly integrated chip containing
  1464. + many ethernet hardware widgets for networking tasks. The processor
  1465. + can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
  1466. + Full details can be found at http://www.caviumnetworks.com.
  1467. +
  1468. +config CPU_BMIPS3300
  1469. + bool "BMIPS3300"
  1470. + depends on SYS_HAS_CPU_BMIPS3300
  1471. + select CPU_BMIPS
  1472. + help
  1473. + Broadcom BMIPS3300 processors.
  1474. +
  1475. +config CPU_BMIPS4350
  1476. + bool "BMIPS4350"
  1477. + depends on SYS_HAS_CPU_BMIPS4350
  1478. + select CPU_BMIPS
  1479. + select SYS_SUPPORTS_SMP
  1480. + select SYS_SUPPORTS_HOTPLUG_CPU
  1481. + help
  1482. + Broadcom BMIPS4350 ("VIPER") processors.
  1483. +
  1484. +config CPU_BMIPS4380
  1485. + bool "BMIPS4380"
  1486. + depends on SYS_HAS_CPU_BMIPS4380
  1487. + select CPU_BMIPS
  1488. + select SYS_SUPPORTS_SMP
  1489. + select SYS_SUPPORTS_HOTPLUG_CPU
  1490. + help
  1491. + Broadcom BMIPS4380 processors.
  1492. +
  1493. +config CPU_BMIPS5000
  1494. + bool "BMIPS5000"
  1495. + depends on SYS_HAS_CPU_BMIPS5000
  1496. + select CPU_BMIPS
  1497. + select CPU_SUPPORTS_HIGHMEM
  1498. + select MIPS_CPU_SCACHE
  1499. + select SYS_SUPPORTS_SMP
  1500. + select SYS_SUPPORTS_HOTPLUG_CPU
  1501. + help
  1502. + Broadcom BMIPS5000 processors.
  1503. +
  1504. +config CPU_XLR
  1505. + bool "Netlogic XLR SoC"
  1506. + depends on SYS_HAS_CPU_XLR
  1507. + select CPU_SUPPORTS_32BIT_KERNEL
  1508. + select CPU_SUPPORTS_64BIT_KERNEL
  1509. + select CPU_SUPPORTS_HIGHMEM
  1510. + select CPU_SUPPORTS_HUGEPAGES
  1511. + select WEAK_ORDERING
  1512. + select WEAK_REORDERING_BEYOND_LLSC
  1513. + help
  1514. + Netlogic Microsystems XLR/XLS processors.
  1515. +
  1516. +config CPU_XLP
  1517. + bool "Netlogic XLP SoC"
  1518. + depends on SYS_HAS_CPU_XLP
  1519. + select CPU_SUPPORTS_32BIT_KERNEL
  1520. + select CPU_SUPPORTS_64BIT_KERNEL
  1521. + select CPU_SUPPORTS_HIGHMEM
  1522. + select WEAK_ORDERING
  1523. + select WEAK_REORDERING_BEYOND_LLSC
  1524. + select CPU_HAS_PREFETCH
  1525. + select CPU_MIPSR2
  1526. + help
  1527. + Netlogic Microsystems XLP processors.
  1528. +endchoice
  1529. +
  1530. +if CPU_LOONGSON2F
  1531. +config CPU_NOP_WORKAROUNDS
  1532. + bool
  1533. +
  1534. +config CPU_JUMP_WORKAROUNDS
  1535. + bool
  1536. +
  1537. +config CPU_LOONGSON2F_WORKAROUNDS
  1538. + bool "Loongson 2F Workarounds"
  1539. + default y
  1540. + select CPU_NOP_WORKAROUNDS
  1541. + select CPU_JUMP_WORKAROUNDS
  1542. + help
  1543. + Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
  1544. + require workarounds. Without workarounds the system may hang
  1545. + unexpectedly. For more information please refer to the gas
  1546. + -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
  1547. +
  1548. + Loongson 2F03 and later have fixed these issues and no workarounds
  1549. + are needed. The workarounds have no significant side effect on them
  1550. + but may decrease the performance of the system so this option should
  1551. + be disabled unless the kernel is intended to be run on 2F01 or 2F02
  1552. + systems.
  1553. +
  1554. + If unsure, please say Y.
  1555. +endif # CPU_LOONGSON2F
  1556. +
  1557. +config SYS_SUPPORTS_ZBOOT
  1558. + bool
  1559. + select HAVE_KERNEL_GZIP
  1560. + select HAVE_KERNEL_BZIP2
  1561. + select HAVE_KERNEL_LZMA
  1562. + select HAVE_KERNEL_LZO
  1563. +
  1564. +config SYS_SUPPORTS_ZBOOT_UART16550
  1565. + bool
  1566. + select SYS_SUPPORTS_ZBOOT
  1567. +
  1568. +config CPU_LOONGSON2
  1569. + bool
  1570. + select CPU_SUPPORTS_32BIT_KERNEL
  1571. + select CPU_SUPPORTS_64BIT_KERNEL
  1572. + select CPU_SUPPORTS_HIGHMEM
  1573. + select CPU_SUPPORTS_HUGEPAGES
  1574. +
  1575. +config CPU_LOONGSON1
  1576. + bool
  1577. + select CPU_MIPS32
  1578. + select CPU_MIPSR2
  1579. + select CPU_HAS_PREFETCH
  1580. + select CPU_SUPPORTS_32BIT_KERNEL
  1581. + select CPU_SUPPORTS_HIGHMEM
  1582. +
  1583. +config CPU_BMIPS
  1584. + bool
  1585. + select CPU_MIPS32
  1586. + select CPU_SUPPORTS_32BIT_KERNEL
  1587. + select DMA_NONCOHERENT
  1588. + select IRQ_CPU
  1589. + select SWAP_IO_SPACE
  1590. + select WEAK_ORDERING
  1591. +
  1592. +config SYS_HAS_CPU_LOONGSON2E
  1593. + bool
  1594. +
  1595. +config SYS_HAS_CPU_LOONGSON2F
  1596. + bool
  1597. + select CPU_SUPPORTS_CPUFREQ
  1598. + select CPU_SUPPORTS_ADDRWINCFG if 64BIT
  1599. + select CPU_SUPPORTS_UNCACHED_ACCELERATED
  1600. +
  1601. +config SYS_HAS_CPU_LOONGSON1B
  1602. + bool
  1603. +
  1604. +config SYS_HAS_CPU_MIPS32_R1
  1605. + bool
  1606. +
  1607. +config SYS_HAS_CPU_MIPS32_R2
  1608. + bool
  1609. +
  1610. +config SYS_HAS_CPU_MIPS64_R1
  1611. + bool
  1612. +
  1613. +config SYS_HAS_CPU_MIPS64_R2
  1614. + bool
  1615. +
  1616. +config SYS_HAS_CPU_R3000
  1617. + bool
  1618. +
  1619. +config SYS_HAS_CPU_TX39XX
  1620. + bool
  1621. +
  1622. +config SYS_HAS_CPU_VR41XX
  1623. + bool
  1624. +
  1625. +config SYS_HAS_CPU_R4300
  1626. + bool
  1627. +
  1628. +config SYS_HAS_CPU_R4X00
  1629. + bool
  1630. +
  1631. +config SYS_HAS_CPU_TX49XX
  1632. + bool
  1633. +
  1634. +config SYS_HAS_CPU_R5000
  1635. + bool
  1636. +
  1637. +config SYS_HAS_CPU_R5432
  1638. + bool
  1639. +
  1640. +config SYS_HAS_CPU_R5500
  1641. + bool
  1642. +
  1643. +config SYS_HAS_CPU_R6000
  1644. + bool
  1645. +
  1646. +config SYS_HAS_CPU_NEVADA
  1647. + bool
  1648. +
  1649. +config SYS_HAS_CPU_R8000
  1650. + bool
  1651. +
  1652. +config SYS_HAS_CPU_R10000
  1653. + bool
  1654. +
  1655. +config SYS_HAS_CPU_RM7000
  1656. + bool
  1657. +
  1658. +config SYS_HAS_CPU_SB1
  1659. + bool
  1660. +
  1661. +config SYS_HAS_CPU_CAVIUM_OCTEON
  1662. + bool
  1663. +
  1664. +config SYS_HAS_CPU_BMIPS3300
  1665. + bool
  1666. +
  1667. +config SYS_HAS_CPU_BMIPS4350
  1668. + bool
  1669. +
  1670. +config SYS_HAS_CPU_BMIPS4380
  1671. + bool
  1672. +
  1673. +config SYS_HAS_CPU_BMIPS5000
  1674. + bool
  1675. +
  1676. +config SYS_HAS_CPU_XLR
  1677. + bool
  1678. +
  1679. +config SYS_HAS_CPU_XLP
  1680. + bool
  1681. +
  1682. +#
  1683. +# CPU may reorder R->R, R->W, W->R, W->W
  1684. +# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
  1685. +#
  1686. +config WEAK_ORDERING
  1687. + bool
  1688. +
  1689. +#
  1690. +# CPU may reorder reads and writes beyond LL/SC
  1691. +# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
  1692. +#
  1693. +config WEAK_REORDERING_BEYOND_LLSC
  1694. + bool
  1695. +endmenu
  1696. +
  1697. +#
  1698. +# These two indicate any level of the MIPS32 and MIPS64 architecture
  1699. +#
  1700. +config CPU_MIPS32
  1701. + bool
  1702. + default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
  1703. +
  1704. +config CPU_MIPS64
  1705. + bool
  1706. + default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
  1707. +
  1708. +#
  1709. +# These two indicate the revision of the architecture, either Release 1 or Release 2
  1710. +#
  1711. +config CPU_MIPSR1
  1712. + bool
  1713. + default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
  1714. +
  1715. +config CPU_MIPSR2
  1716. + bool
  1717. + default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
  1718. +
  1719. +config SYS_SUPPORTS_32BIT_KERNEL
  1720. + bool
  1721. +config SYS_SUPPORTS_64BIT_KERNEL
  1722. + bool
  1723. +config CPU_SUPPORTS_32BIT_KERNEL
  1724. + bool
  1725. +config CPU_SUPPORTS_64BIT_KERNEL
  1726. + bool
  1727. +config CPU_SUPPORTS_CPUFREQ
  1728. + bool
  1729. +config CPU_SUPPORTS_ADDRWINCFG
  1730. + bool
  1731. +config CPU_SUPPORTS_HUGEPAGES
  1732. + bool
  1733. +config CPU_SUPPORTS_UNCACHED_ACCELERATED
  1734. + bool
  1735. +config MIPS_PGD_C0_CONTEXT
  1736. + bool
  1737. + default y if 64BIT && CPU_MIPSR2 && !CPU_XLP
  1738. +
  1739. +#
  1740. +# Set to y for ptrace access to watch registers.
  1741. +#
  1742. +config HARDWARE_WATCHPOINTS
  1743. + bool
  1744. + default y if CPU_MIPSR1 || CPU_MIPSR2
  1745. +
  1746. +menu "Kernel type"
  1747. +
  1748. +choice
  1749. + prompt "Kernel code model"
  1750. + help
  1751. + You should only select this option if you have a workload that
  1752. + actually benefits from 64-bit processing or if your machine has
  1753. + large memory. You will only be presented a single option in this
  1754. + menu if your system does not support both 32-bit and 64-bit kernels.
  1755. +
  1756. +config 32BIT
  1757. + bool "32-bit kernel"
  1758. + depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
  1759. + select TRAD_SIGNALS
  1760. + help
  1761. + Select this option if you want to build a 32-bit kernel.
  1762. +config 64BIT
  1763. + bool "64-bit kernel"
  1764. + depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
  1765. + select HAVE_SYSCALL_WRAPPERS
  1766. + help
  1767. + Select this option if you want to build a 64-bit kernel.
  1768. +
  1769. +endchoice
  1770. +
  1771. +choice
  1772. + prompt "Kernel page size"
  1773. + default PAGE_SIZE_4KB
  1774. +
  1775. +config PAGE_SIZE_4KB
  1776. + bool "4kB"
  1777. + depends on !CPU_LOONGSON2
  1778. + help
  1779. + This option select the standard 4kB Linux page size. On some
  1780. + R3000-family processors this is the only available page size. Using
  1781. + 4kB page size will minimize memory consumption and is therefore
  1782. + recommended for low memory systems.
  1783. +
  1784. +config PAGE_SIZE_8KB
  1785. + bool "8kB"
  1786. + depends on CPU_R8000 || CPU_CAVIUM_OCTEON
  1787. + help
  1788. + Using 8kB page size will result in higher performance kernel at
  1789. + the price of higher memory consumption. This option is available
  1790. + only on R8000 and cnMIPS processors. Note that you will need a
  1791. + suitable Linux distribution to support this.
  1792. +
  1793. +config PAGE_SIZE_16KB
  1794. + bool "16kB"
  1795. + depends on !CPU_R3000 && !CPU_TX39XX
  1796. + help
  1797. + Using 16kB page size will result in higher performance kernel at
  1798. + the price of higher memory consumption. This option is available on
  1799. + all non-R3000 family processors. Note that you will need a suitable
  1800. + Linux distribution to support this.
  1801. +
  1802. +config PAGE_SIZE_32KB
  1803. + bool "32kB"
  1804. + depends on CPU_CAVIUM_OCTEON
  1805. + help
  1806. + Using 32kB page size will result in higher performance kernel at
  1807. + the price of higher memory consumption. This option is available
  1808. + only on cnMIPS cores. Note that you will need a suitable Linux
  1809. + distribution to support this.
  1810. +
  1811. +config PAGE_SIZE_64KB
  1812. + bool "64kB"
  1813. + depends on !CPU_R3000 && !CPU_TX39XX
  1814. + help
  1815. + Using 64kB page size will result in higher performance kernel at
  1816. + the price of higher memory consumption. This option is available on
  1817. + all non-R3000 family processor. Not that at the time of this
  1818. + writing this option is still high experimental.
  1819. +
  1820. +endchoice
  1821. +
  1822. +config FORCE_MAX_ZONEORDER
  1823. + int "Maximum zone order"
  1824. + range 14 64 if HUGETLB_PAGE && PAGE_SIZE_64KB
  1825. + default "14" if HUGETLB_PAGE && PAGE_SIZE_64KB
  1826. + range 13 64 if HUGETLB_PAGE && PAGE_SIZE_32KB
  1827. + default "13" if HUGETLB_PAGE && PAGE_SIZE_32KB
  1828. + range 12 64 if HUGETLB_PAGE && PAGE_SIZE_16KB
  1829. + default "12" if HUGETLB_PAGE && PAGE_SIZE_16KB
  1830. + range 11 64
  1831. + default "11"
  1832. + help
  1833. + The kernel memory allocator divides physically contiguous memory
  1834. + blocks into "zones", where each zone is a power of two number of
  1835. + pages. This option selects the largest power of two that the kernel
  1836. + keeps in the memory allocator. If you need to allocate very large
  1837. + blocks of physically contiguous memory, then you may need to
  1838. + increase this value.
  1839. +
  1840. + This config option is actually maximum order plus one. For example,
  1841. + a value of 11 means that the largest free memory block is 2^10 pages.
  1842. +
  1843. + The page size is not necessarily 4KB. Keep this in mind
  1844. + when choosing a value for this option.
  1845. +
  1846. +config BOARD_SCACHE
  1847. + bool
  1848. +
  1849. +config IP22_CPU_SCACHE
  1850. + bool
  1851. + select BOARD_SCACHE
  1852. +
  1853. +#
  1854. +# Support for a MIPS32 / MIPS64 style S-caches
  1855. +#
  1856. +config MIPS_CPU_SCACHE
  1857. + bool
  1858. + select BOARD_SCACHE
  1859. +
  1860. +config R5000_CPU_SCACHE
  1861. + bool
  1862. + select BOARD_SCACHE
  1863. +
  1864. +config RM7000_CPU_SCACHE
  1865. + bool
  1866. + select BOARD_SCACHE
  1867. +
  1868. +config SIBYTE_DMA_PAGEOPS
  1869. + bool "Use DMA to clear/copy pages"
  1870. + depends on CPU_SB1
  1871. + help
  1872. + Instead of using the CPU to zero and copy pages, use a Data Mover
  1873. + channel. These DMA channels are otherwise unused by the standard
  1874. + SiByte Linux port. Seems to give a small performance benefit.
  1875. +
  1876. +config CPU_HAS_PREFETCH
  1877. + bool
  1878. +
  1879. +config CPU_GENERIC_DUMP_TLB
  1880. + bool
  1881. + default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX)
  1882. +
  1883. +config CPU_R4K_FPU
  1884. + bool
  1885. + default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
  1886. +
  1887. +config CPU_R4K_CACHE_TLB
  1888. + bool
  1889. + default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)
  1890. +
  1891. +choice
  1892. + prompt "MIPS MT options"
  1893. +
  1894. +config MIPS_MT_DISABLED
  1895. + bool "Disable multithreading support."
  1896. + help
  1897. + Use this option if your workload can't take advantage of
  1898. + MIPS hardware multithreading support. On systems that don't have
  1899. + the option of an MT-enabled processor this option will be the only
  1900. + option in this menu.
  1901. +
  1902. +config MIPS_MT_SMP
  1903. + bool "Use 1 TC on each available VPE for SMP"
  1904. + depends on SYS_SUPPORTS_MULTITHREADING
  1905. + select CPU_MIPSR2_IRQ_VI
  1906. + select CPU_MIPSR2_IRQ_EI
  1907. + select MIPS_MT
  1908. + select NR_CPUS_DEFAULT_2
  1909. + select SMP
  1910. + select SYS_SUPPORTS_SCHED_SMT if SMP
  1911. + select SYS_SUPPORTS_SMP
  1912. + select SMP_UP
  1913. + select MIPS_PERF_SHARED_TC_COUNTERS
  1914. + help
  1915. + This is a kernel model which is known a VSMP but lately has been
  1916. + marketesed into SMVP.
  1917. + Virtual SMP uses the processor's VPEs to implement virtual
  1918. + processors. In currently available configuration of the 34K processor
  1919. + this allows for a dual processor. Both processors will share the same
  1920. + primary caches; each will obtain the half of the TLB for it's own
  1921. + exclusive use. For a layman this model can be described as similar to
  1922. + what Intel calls Hyperthreading.
  1923. +
  1924. + For further information see http://www.linux-mips.org/wiki/34K#VSMP
  1925. +
  1926. +config MIPS_MT_SMTC
  1927. + bool "SMTC: Use all TCs on all VPEs for SMP"
  1928. + depends on CPU_MIPS32_R2
  1929. + #depends on CPU_MIPS64_R2 # once there is hardware ...
  1930. + depends on SYS_SUPPORTS_MULTITHREADING
  1931. + select CPU_MIPSR2_IRQ_VI
  1932. + select CPU_MIPSR2_IRQ_EI
  1933. + select MIPS_MT
  1934. + select NR_CPUS_DEFAULT_8
  1935. + select SMP
  1936. + select SYS_SUPPORTS_SMP
  1937. + select SMP_UP
  1938. + help
  1939. + This is a kernel model which is known a SMTC or lately has been
  1940. + marketesed into SMVP.
  1941. + is presenting the available TC's of the core as processors to Linux.
  1942. + On currently available 34K processors this means a Linux system will
  1943. + see up to 5 processors. The implementation of the SMTC kernel differs
  1944. + significantly from VSMP and cannot efficiently coexist in the same
  1945. + kernel binary so the choice between VSMP and SMTC is a compile time
  1946. + decision.
  1947. +
  1948. + For further information see http://www.linux-mips.org/wiki/34K#SMTC
  1949. +
  1950. +endchoice
  1951. +
  1952. +config MIPS_MT
  1953. + bool
  1954. +
  1955. +config SCHED_SMT
  1956. + bool "SMT (multithreading) scheduler support"
  1957. + depends on SYS_SUPPORTS_SCHED_SMT
  1958. + default n
  1959. + help
  1960. + SMT scheduler support improves the CPU scheduler's decision making
  1961. + when dealing with MIPS MT enabled cores at a cost of slightly
  1962. + increased overhead in some places. If unsure say N here.
  1963. +
  1964. +config SYS_SUPPORTS_SCHED_SMT
  1965. + bool
  1966. +
  1967. +config SYS_SUPPORTS_MULTITHREADING
  1968. + bool
  1969. +
  1970. +config MIPS_MT_FPAFF
  1971. + bool "Dynamic FPU affinity for FP-intensive threads"
  1972. + default y
  1973. + depends on MIPS_MT_SMP || MIPS_MT_SMTC
  1974. +
  1975. +config MIPS_VPE_LOADER
  1976. + bool "VPE loader support."
  1977. + depends on SYS_SUPPORTS_MULTITHREADING
  1978. + select CPU_MIPSR2_IRQ_VI
  1979. + select CPU_MIPSR2_IRQ_EI
  1980. + select MIPS_MT
  1981. + help
  1982. + Includes a loader for loading an elf relocatable object
  1983. + onto another VPE and running it.
  1984. +
  1985. +config MIPS_MT_SMTC_IM_BACKSTOP
  1986. + bool "Use per-TC register bits as backstop for inhibited IM bits"
  1987. + depends on MIPS_MT_SMTC
  1988. + default n
  1989. + help
  1990. + To support multiple TC microthreads acting as "CPUs" within
  1991. + a VPE, VPE-wide interrupt mask bits must be specially manipulated
  1992. + during interrupt handling. To support legacy drivers and interrupt
  1993. + controller management code, SMTC has a "backstop" to track and
  1994. + if necessary restore the interrupt mask. This has some performance
  1995. + impact on interrupt service overhead.
  1996. +
  1997. +config MIPS_MT_SMTC_IRQAFF
  1998. + bool "Support IRQ affinity API"
  1999. + depends on MIPS_MT_SMTC
  2000. + default n
  2001. + help
  2002. + Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
  2003. + for SMTC Linux kernel. Requires platform support, of which
  2004. + an example can be found in the MIPS kernel i8259 and Malta
  2005. + platform code. Adds some overhead to interrupt dispatch, and
  2006. + should be used only if you know what you are doing.
  2007. +
  2008. +config MIPS_VPE_LOADER_TOM
  2009. + bool "Load VPE program into memory hidden from linux"
  2010. + depends on MIPS_VPE_LOADER
  2011. + default y
  2012. + help
  2013. + The loader can use memory that is present but has been hidden from
  2014. + Linux using the kernel command line option "mem=xxMB". It's up to
  2015. + you to ensure the amount you put in the option and the space your
  2016. + program requires is less or equal to the amount physically present.
  2017. +
  2018. +# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
  2019. +config MIPS_VPE_APSP_API
  2020. + bool "Enable support for AP/SP API (RTLX)"
  2021. + depends on MIPS_VPE_LOADER
  2022. + help
  2023. +
  2024. +config MIPS_CMP
  2025. + bool "MIPS CMP framework support"
  2026. + depends on SYS_SUPPORTS_MIPS_CMP
  2027. + select SYNC_R4K
  2028. + select SYS_SUPPORTS_SMP
  2029. + select SYS_SUPPORTS_SCHED_SMT if SMP
  2030. + select WEAK_ORDERING
  2031. + default n
  2032. + help
  2033. + This is a placeholder option for the GCMP work. It will need to
  2034. + be handled differently...
  2035. +
  2036. +config SB1_PASS_1_WORKAROUNDS
  2037. + bool
  2038. + depends on CPU_SB1_PASS_1
  2039. + default y
  2040. +
  2041. +config SB1_PASS_2_WORKAROUNDS
  2042. + bool
  2043. + depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
  2044. + default y
  2045. +
  2046. +config SB1_PASS_2_1_WORKAROUNDS
  2047. + bool
  2048. + depends on CPU_SB1 && CPU_SB1_PASS_2
  2049. + default y
  2050. +
  2051. +config 64BIT_PHYS_ADDR
  2052. + bool
  2053. +
  2054. +config ARCH_PHYS_ADDR_T_64BIT
  2055. + def_bool 64BIT_PHYS_ADDR
  2056. +
  2057. +config CPU_HAS_SMARTMIPS
  2058. + depends on SYS_SUPPORTS_SMARTMIPS
  2059. + bool "Support for the SmartMIPS ASE"
  2060. + help
  2061. + SmartMIPS is a extension of the MIPS32 architecture aimed at
  2062. + increased security at both hardware and software level for
  2063. + smartcards. Enabling this option will allow proper use of the
  2064. + SmartMIPS instructions by Linux applications. However a kernel with
  2065. + this option will not work on a MIPS core without SmartMIPS core. If
  2066. + you don't know you probably don't have SmartMIPS and should say N
  2067. + here.
  2068. +
  2069. +config CPU_HAS_WB
  2070. + bool
  2071. +
  2072. +config XKS01
  2073. + bool
  2074. +
  2075. +#
  2076. +# Vectored interrupt mode is an R2 feature
  2077. +#
  2078. +config CPU_MIPSR2_IRQ_VI
  2079. + bool
  2080. +
  2081. +#
  2082. +# Extended interrupt mode is an R2 feature
  2083. +#
  2084. +config CPU_MIPSR2_IRQ_EI
  2085. + bool
  2086. +
  2087. +config CPU_HAS_SYNC
  2088. + bool
  2089. + depends on !CPU_R3000
  2090. + default y
  2091. +
  2092. +#
  2093. +# CPU non-features
  2094. +#
  2095. +config CPU_DADDI_WORKAROUNDS
  2096. + bool
  2097. +
  2098. +config CPU_R4000_WORKAROUNDS
  2099. + bool
  2100. + select CPU_R4400_WORKAROUNDS
  2101. +
  2102. +config CPU_R4400_WORKAROUNDS
  2103. + bool
  2104. +
  2105. +#
  2106. +# - Highmem only makes sense for the 32-bit kernel.
  2107. +# - The current highmem code will only work properly on physically indexed
  2108. +# caches such as R3000, SB1, R7000 or those that look like they're virtually
  2109. +# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
  2110. +# moment we protect the user and offer the highmem option only on machines
  2111. +# where it's known to be safe. This will not offer highmem on a few systems
  2112. +# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
  2113. +# indexed CPUs but we're playing safe.
  2114. +# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
  2115. +# know they might have memory configurations that could make use of highmem
  2116. +# support.
  2117. +#
  2118. +config HIGHMEM
  2119. + bool "High Memory Support"
  2120. + depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
  2121. +
  2122. +config CPU_SUPPORTS_HIGHMEM
  2123. + bool
  2124. +
  2125. +config SYS_SUPPORTS_HIGHMEM
  2126. + bool
  2127. +
  2128. +config SYS_SUPPORTS_SMARTMIPS
  2129. + bool
  2130. +
  2131. +config ARCH_FLATMEM_ENABLE
  2132. + def_bool y
  2133. + depends on !NUMA && !CPU_LOONGSON2
  2134. +
  2135. +config ARCH_DISCONTIGMEM_ENABLE
  2136. + bool
  2137. + default y if SGI_IP27
  2138. + help
  2139. + Say Y to support efficient handling of discontiguous physical memory,
  2140. + for architectures which are either NUMA (Non-Uniform Memory Access)
  2141. + or have huge holes in the physical address space for other reasons.
  2142. + See <file:Documentation/vm/numa> for more.
  2143. +
  2144. +config ARCH_SPARSEMEM_ENABLE
  2145. + bool
  2146. + select SPARSEMEM_STATIC
  2147. +
  2148. +config NUMA
  2149. + bool "NUMA Support"
  2150. + depends on SYS_SUPPORTS_NUMA
  2151. + help
  2152. + Say Y to compile the kernel to support NUMA (Non-Uniform Memory
  2153. + Access). This option improves performance on systems with more
  2154. + than two nodes; on two node systems it is generally better to
  2155. + leave it disabled; on single node systems disable this option
  2156. + disabled.
  2157. +
  2158. +config SYS_SUPPORTS_NUMA
  2159. + bool
  2160. +
  2161. +config NODES_SHIFT
  2162. + int
  2163. + default "6"
  2164. + depends on NEED_MULTIPLE_NODES
  2165. +
  2166. +config HW_PERF_EVENTS
  2167. + bool "Enable hardware performance counter support for perf events"
  2168. + depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
  2169. + default y
  2170. + help
  2171. + Enable hardware performance counter support for perf events. If
  2172. + disabled, perf events will use software events only.
  2173. +
  2174. +source "mm/Kconfig"
  2175. +
  2176. +config SMP
  2177. + bool "Multi-Processing support"
  2178. + depends on SYS_SUPPORTS_SMP
  2179. + select USE_GENERIC_SMP_HELPERS
  2180. + help
  2181. + This enables support for systems with more than one CPU. If you have
  2182. + a system with only one CPU, like most personal computers, say N. If
  2183. + you have a system with more than one CPU, say Y.
  2184. +
  2185. + If you say N here, the kernel will run on single and multiprocessor
  2186. + machines, but will use only one CPU of a multiprocessor machine. If
  2187. + you say Y here, the kernel will run on many, but not all,
  2188. + singleprocessor machines. On a singleprocessor machine, the kernel
  2189. + will run faster if you say N here.
  2190. +
  2191. + People using multiprocessor machines who say Y here should also say
  2192. + Y to "Enhanced Real Time Clock Support", below.
  2193. +
  2194. + See also the SMP-HOWTO available at
  2195. + <http://www.tldp.org/docs.html#howto>.
  2196. +
  2197. + If you don't know what to do here, say N.
  2198. +
  2199. +config SMP_UP
  2200. + bool
  2201. +
  2202. +config SYS_SUPPORTS_MIPS_CMP
  2203. + bool
  2204. +
  2205. +config SYS_SUPPORTS_SMP
  2206. + bool
  2207. +
  2208. +config NR_CPUS_DEFAULT_1
  2209. + bool
  2210. +
  2211. +config NR_CPUS_DEFAULT_2
  2212. + bool
  2213. +
  2214. +config NR_CPUS_DEFAULT_4
  2215. + bool
  2216. +
  2217. +config NR_CPUS_DEFAULT_8
  2218. + bool
  2219. +
  2220. +config NR_CPUS_DEFAULT_16
  2221. + bool
  2222. +
  2223. +config NR_CPUS_DEFAULT_32
  2224. + bool
  2225. +
  2226. +config NR_CPUS_DEFAULT_64
  2227. + bool
  2228. +
  2229. +config NR_CPUS
  2230. + int "Maximum number of CPUs (2-64)"
  2231. + range 1 64 if NR_CPUS_DEFAULT_1
  2232. + depends on SMP
  2233. + default "1" if NR_CPUS_DEFAULT_1
  2234. + default "2" if NR_CPUS_DEFAULT_2
  2235. + default "4" if NR_CPUS_DEFAULT_4
  2236. + default "8" if NR_CPUS_DEFAULT_8
  2237. + default "16" if NR_CPUS_DEFAULT_16
  2238. + default "32" if NR_CPUS_DEFAULT_32
  2239. + default "64" if NR_CPUS_DEFAULT_64
  2240. + help
  2241. + This allows you to specify the maximum number of CPUs which this
  2242. + kernel will support. The maximum supported value is 32 for 32-bit
  2243. + kernel and 64 for 64-bit kernels; the minimum value which makes
  2244. + sense is 1 for Qemu (useful only for kernel debugging purposes)
  2245. + and 2 for all others.
  2246. +
  2247. + This is purely to save memory - each supported CPU adds
  2248. + approximately eight kilobytes to the kernel image. For best
  2249. + performance should round up your number of processors to the next
  2250. + power of two.
  2251. +
  2252. +config MIPS_PERF_SHARED_TC_COUNTERS
  2253. + bool
  2254. +
  2255. +#
  2256. +# Timer Interrupt Frequency Configuration
  2257. +#
  2258. +
  2259. +choice
  2260. + prompt "Timer frequency"
  2261. + default HZ_250
  2262. + help
  2263. + Allows the configuration of the timer frequency.
  2264. +
  2265. + config HZ_48
  2266. + bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
  2267. +
  2268. + config HZ_100
  2269. + bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
  2270. +
  2271. + config HZ_128
  2272. + bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
  2273. +
  2274. + config HZ_250
  2275. + bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
  2276. +
  2277. + config HZ_256
  2278. + bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
  2279. +
  2280. + config HZ_1000
  2281. + bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
  2282. +
  2283. + config HZ_1024
  2284. + bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
  2285. +
  2286. +endchoice
  2287. +
  2288. +config SYS_SUPPORTS_48HZ
  2289. + bool
  2290. +
  2291. +config SYS_SUPPORTS_100HZ
  2292. + bool
  2293. +
  2294. +config SYS_SUPPORTS_128HZ
  2295. + bool
  2296. +
  2297. +config SYS_SUPPORTS_250HZ
  2298. + bool
  2299. +
  2300. +config SYS_SUPPORTS_256HZ
  2301. + bool
  2302. +
  2303. +config SYS_SUPPORTS_1000HZ
  2304. + bool
  2305. +
  2306. +config SYS_SUPPORTS_1024HZ
  2307. + bool
  2308. +
  2309. +config SYS_SUPPORTS_ARBIT_HZ
  2310. + bool
  2311. + default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
  2312. + !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
  2313. + !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
  2314. + !SYS_SUPPORTS_1024HZ
  2315. +
  2316. +config HZ
  2317. + int
  2318. + default 48 if HZ_48
  2319. + default 100 if HZ_100
  2320. + default 128 if HZ_128
  2321. + default 250 if HZ_250
  2322. + default 256 if HZ_256
  2323. + default 1000 if HZ_1000
  2324. + default 1024 if HZ_1024
  2325. +
  2326. +source "kernel/Kconfig.preempt"
  2327. +
  2328. +config KEXEC
  2329. + bool "Kexec system call"
  2330. + help
  2331. + kexec is a system call that implements the ability to shutdown your
  2332. + current kernel, and to start another kernel. It is like a reboot
  2333. + but it is independent of the system firmware. And like a reboot
  2334. + you can start any kernel with it, not just Linux.
  2335. +
  2336. + The name comes from the similarity to the exec system call.
  2337. +
  2338. + It is an ongoing process to be certain the hardware in a machine
  2339. + is properly shutdown, so do not be surprised if this code does not
  2340. + initially work for you. It may help to enable device hotplugging
  2341. + support. As of this writing the exact hardware interface is
  2342. + strongly in flux, so no good recommendation can be made.
  2343. +
  2344. +config CRASH_DUMP
  2345. + bool "Kernel crash dumps"
  2346. + help
  2347. + Generate crash dump after being started by kexec.
  2348. + This should be normally only set in special crash dump kernels
  2349. + which are loaded in the main kernel with kexec-tools into
  2350. + a specially reserved region and then later executed after
  2351. + a crash by kdump/kexec. The crash dump kernel must be compiled
  2352. + to a memory address not used by the main kernel or firmware using
  2353. + PHYSICAL_START.
  2354. +
  2355. +config PHYSICAL_START
  2356. + hex "Physical address where the kernel is loaded"
  2357. + default "0xffffffff84000000" if 64BIT
  2358. + default "0x84000000" if 32BIT
  2359. + depends on CRASH_DUMP
  2360. + help
  2361. + This gives the CKSEG0 or KSEG0 address where the kernel is loaded.
  2362. + If you plan to use kernel for capturing the crash dump change
  2363. + this value to start of the reserved region (the "X" value as
  2364. + specified in the "crashkernel=YM@XM" command line boot parameter
  2365. + passed to the panic-ed kernel).
  2366. +
  2367. +config SECCOMP
  2368. + bool "Enable seccomp to safely compute untrusted bytecode"
  2369. + depends on PROC_FS
  2370. + default y
  2371. + help
  2372. + This kernel feature is useful for number crunching applications
  2373. + that may need to compute untrusted bytecode during their
  2374. + execution. By using pipes or other transports made available to
  2375. + the process as file descriptors supporting the read/write
  2376. + syscalls, it's possible to isolate those applications in
  2377. + their own address space using seccomp. Once seccomp is
  2378. + enabled via /proc/<pid>/seccomp, it cannot be disabled
  2379. + and the task is only allowed to execute a few safe syscalls
  2380. + defined by each seccomp mode.
  2381. +
  2382. + If unsure, say Y. Only embedded should say N here.
  2383. +
  2384. +config USE_OF
  2385. + bool
  2386. + select OF
  2387. + select OF_EARLY_FLATTREE
  2388. + select IRQ_DOMAIN
  2389. +
  2390. +endmenu
  2391. +
  2392. +config LOCKDEP_SUPPORT
  2393. + bool
  2394. + default y
  2395. +
  2396. +config STACKTRACE_SUPPORT
  2397. + bool
  2398. + default y
  2399. +
  2400. +source "init/Kconfig"
  2401. +
  2402. +source "kernel/Kconfig.freezer"
  2403. +
  2404. +menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
  2405. +
  2406. +config HW_HAS_EISA
  2407. + bool
  2408. +config HW_HAS_PCI
  2409. + bool
  2410. +
  2411. +config PCI
  2412. + bool "Support for PCI controller"
  2413. + depends on HW_HAS_PCI
  2414. + select PCI_DOMAINS
  2415. + select GENERIC_PCI_IOMAP
  2416. + select NO_GENERIC_PCI_IOPORT_MAP
  2417. + help
  2418. + Find out whether you have a PCI motherboard. PCI is the name of a
  2419. + bus system, i.e. the way the CPU talks to the other stuff inside
  2420. + your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
  2421. + say Y, otherwise N.
  2422. +
  2423. +config PCI_DOMAINS
  2424. + bool
  2425. +
  2426. +source "drivers/pci/Kconfig"
  2427. +
  2428. +source "drivers/pci/pcie/Kconfig"
  2429. +
  2430. +#
  2431. +# ISA support is now enabled via select. Too many systems still have the one
  2432. +# or other ISA chip on the board that users don't know about so don't expect
  2433. +# users to choose the right thing ...
  2434. +#
  2435. +config ISA
  2436. + bool
  2437. +
  2438. +config EISA
  2439. + bool "EISA support"
  2440. + depends on HW_HAS_EISA
  2441. + select ISA
  2442. + select GENERIC_ISA_DMA
  2443. + ---help---
  2444. + The Extended Industry Standard Architecture (EISA) bus was
  2445. + developed as an open alternative to the IBM MicroChannel bus.
  2446. +
  2447. + The EISA bus provided some of the features of the IBM MicroChannel
  2448. + bus while maintaining backward compatibility with cards made for
  2449. + the older ISA bus. The EISA bus saw limited use between 1988 and
  2450. + 1995 when it was made obsolete by the PCI bus.
  2451. +
  2452. + Say Y here if you are building a kernel for an EISA-based machine.
  2453. +
  2454. + Otherwise, say N.
  2455. +
  2456. +source "drivers/eisa/Kconfig"
  2457. +
  2458. +config TC
  2459. + bool "TURBOchannel support"
  2460. + depends on MACH_DECSTATION
  2461. + help
  2462. + TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
  2463. + processors. TURBOchannel programming specifications are available
  2464. + at:
  2465. + <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
  2466. + and:
  2467. + <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
  2468. + Linux driver support status is documented at:
  2469. + <http://www.linux-mips.org/wiki/DECstation>
  2470. +
  2471. +config MMU
  2472. + bool
  2473. + default y
  2474. +
  2475. +config I8253
  2476. + bool
  2477. + select CLKSRC_I8253
  2478. + select CLKEVT_I8253
  2479. + select MIPS_EXTERNAL_TIMER
  2480. +
  2481. +config ZONE_DMA32
  2482. + bool
  2483. +
  2484. +source "drivers/pcmcia/Kconfig"
  2485. +
  2486. +source "drivers/pci/hotplug/Kconfig"
  2487. +
  2488. +config RAPIDIO
  2489. + bool "RapidIO support"
  2490. + depends on PCI
  2491. + default n
  2492. + help
  2493. + If you say Y here, the kernel will include drivers and
  2494. + infrastructure code to support RapidIO interconnect devices.
  2495. +
  2496. +source "drivers/rapidio/Kconfig"
  2497. +
  2498. +endmenu
  2499. +
  2500. +menu "Executable file formats"
  2501. +
  2502. +source "fs/Kconfig.binfmt"
  2503. +
  2504. +config TRAD_SIGNALS
  2505. + bool
  2506. +
  2507. +config MIPS32_COMPAT
  2508. + bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
  2509. + depends on 64BIT
  2510. + help
  2511. + Select this option if you want Linux/MIPS 32-bit binary
  2512. + compatibility. Since all software available for Linux/MIPS is
  2513. + currently 32-bit you should say Y here.
  2514. +
  2515. +config COMPAT
  2516. + bool
  2517. + depends on MIPS32_COMPAT
  2518. + select ARCH_WANT_OLD_COMPAT_IPC
  2519. + default y
  2520. +
  2521. +config SYSVIPC_COMPAT
  2522. + bool
  2523. + depends on COMPAT && SYSVIPC
  2524. + default y
  2525. +
  2526. +config MIPS32_O32
  2527. + bool "Kernel support for o32 binaries"
  2528. + depends on MIPS32_COMPAT
  2529. + help
  2530. + Select this option if you want to run o32 binaries. These are pure
  2531. + 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
  2532. + existing binaries are in this format.
  2533. +
  2534. + If unsure, say Y.
  2535. +
  2536. +config MIPS32_N32
  2537. + bool "Kernel support for n32 binaries"
  2538. + depends on MIPS32_COMPAT
  2539. + help
  2540. + Select this option if you want to run n32 binaries. These are
  2541. + 64-bit binaries using 32-bit quantities for addressing and certain
  2542. + data that would normally be 64-bit. They are used in special
  2543. + cases.
  2544. +
  2545. + If unsure, say N.
  2546. +
  2547. +config BINFMT_ELF32
  2548. + bool
  2549. + default y if MIPS32_O32 || MIPS32_N32
  2550. +
  2551. +endmenu
  2552. +
  2553. +menu "Power management options"
  2554. +
  2555. +config ARCH_HIBERNATION_POSSIBLE
  2556. + def_bool y
  2557. + depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
  2558. +
  2559. +config ARCH_SUSPEND_POSSIBLE
  2560. + def_bool y
  2561. + depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
  2562. +
  2563. +source "kernel/power/Kconfig"
  2564. +
  2565. +endmenu
  2566. +
  2567. +source "arch/mips/kernel/cpufreq/Kconfig"
  2568. +
  2569. +source "net/Kconfig"
  2570. +
  2571. +source "drivers/Kconfig"
  2572. +
  2573. +source "drivers/firmware/Kconfig"
  2574. +
  2575. +source "fs/Kconfig"
  2576. +
  2577. +source "arch/mips/Kconfig.debug"
  2578. +
  2579. +source "security/Kconfig"
  2580. +
  2581. +source "crypto/Kconfig"
  2582. +
  2583. +source "lib/Kconfig"
  2584. diff -Nur linux-3.9.11.orig/arch/x86/Kconfig linux-3.9.11/arch/x86/Kconfig
  2585. --- linux-3.9.11.orig/arch/x86/Kconfig 2013-07-21 02:16:17.000000000 +0200
  2586. +++ linux-3.9.11/arch/x86/Kconfig 2013-09-12 07:26:20.000000000 +0200
  2587. @@ -99,7 +99,6 @@
  2588. select GENERIC_SMP_IDLE_THREAD
  2589. select ARCH_WANT_IPC_PARSE_VERSION if X86_32
  2590. select HAVE_ARCH_SECCOMP_FILTER
  2591. - select BUILDTIME_EXTABLE_SORT
  2592. select GENERIC_CMOS_UPDATE
  2593. select CLOCKSOURCE_WATCHDOG
  2594. select GENERIC_CLOCKEVENTS
  2595. diff -Nur linux-3.9.11.orig/arch/x86/Kconfig.orig linux-3.9.11/arch/x86/Kconfig.orig
  2596. --- linux-3.9.11.orig/arch/x86/Kconfig.orig 1970-01-01 01:00:00.000000000 +0100
  2597. +++ linux-3.9.11/arch/x86/Kconfig.orig 2013-07-21 02:16:17.000000000 +0200
  2598. @@ -0,0 +1,2351 @@
  2599. +# Select 32 or 64 bit
  2600. +config 64BIT
  2601. + bool "64-bit kernel" if ARCH = "x86"
  2602. + default ARCH != "i386"
  2603. + ---help---
  2604. + Say yes to build a 64-bit kernel - formerly known as x86_64
  2605. + Say no to build a 32-bit kernel - formerly known as i386
  2606. +
  2607. +config X86_32
  2608. + def_bool y
  2609. + depends on !64BIT
  2610. + select CLKSRC_I8253
  2611. + select HAVE_UID16
  2612. +
  2613. +config X86_64
  2614. + def_bool y
  2615. + depends on 64BIT
  2616. + select X86_DEV_DMA_OPS
  2617. +
  2618. +### Arch settings
  2619. +config X86
  2620. + def_bool y
  2621. + select HAVE_AOUT if X86_32
  2622. + select HAVE_UNSTABLE_SCHED_CLOCK
  2623. + select ARCH_SUPPORTS_NUMA_BALANCING
  2624. + select ARCH_WANTS_PROT_NUMA_PROT_NONE
  2625. + select HAVE_IDE
  2626. + select HAVE_OPROFILE
  2627. + select HAVE_PCSPKR_PLATFORM
  2628. + select HAVE_PERF_EVENTS
  2629. + select HAVE_IOREMAP_PROT
  2630. + select HAVE_KPROBES
  2631. + select HAVE_MEMBLOCK
  2632. + select HAVE_MEMBLOCK_NODE_MAP
  2633. + select ARCH_DISCARD_MEMBLOCK
  2634. + select ARCH_WANT_OPTIONAL_GPIOLIB
  2635. + select ARCH_WANT_FRAME_POINTERS
  2636. + select HAVE_DMA_ATTRS
  2637. + select HAVE_DMA_CONTIGUOUS if !SWIOTLB
  2638. + select HAVE_KRETPROBES
  2639. + select HAVE_OPTPROBES
  2640. + select HAVE_KPROBES_ON_FTRACE
  2641. + select HAVE_FTRACE_MCOUNT_RECORD
  2642. + select HAVE_FENTRY if X86_64
  2643. + select HAVE_C_RECORDMCOUNT
  2644. + select HAVE_DYNAMIC_FTRACE
  2645. + select HAVE_DYNAMIC_FTRACE_WITH_REGS
  2646. + select HAVE_FUNCTION_TRACER
  2647. + select HAVE_FUNCTION_GRAPH_TRACER
  2648. + select HAVE_FUNCTION_GRAPH_FP_TEST
  2649. + select HAVE_FUNCTION_TRACE_MCOUNT_TEST
  2650. + select HAVE_SYSCALL_TRACEPOINTS
  2651. + select SYSCTL_EXCEPTION_TRACE
  2652. + select HAVE_KVM
  2653. + select HAVE_ARCH_KGDB
  2654. + select HAVE_ARCH_TRACEHOOK
  2655. + select HAVE_GENERIC_DMA_COHERENT if X86_32
  2656. + select HAVE_EFFICIENT_UNALIGNED_ACCESS
  2657. + select USER_STACKTRACE_SUPPORT
  2658. + select HAVE_REGS_AND_STACK_ACCESS_API
  2659. + select HAVE_DMA_API_DEBUG
  2660. + select HAVE_KERNEL_GZIP
  2661. + select HAVE_KERNEL_BZIP2
  2662. + select HAVE_KERNEL_LZMA
  2663. + select HAVE_KERNEL_XZ
  2664. + select HAVE_KERNEL_LZO
  2665. + select HAVE_HW_BREAKPOINT
  2666. + select HAVE_MIXED_BREAKPOINTS_REGS
  2667. + select PERF_EVENTS
  2668. + select HAVE_PERF_EVENTS_NMI
  2669. + select HAVE_PERF_REGS
  2670. + select HAVE_PERF_USER_STACK_DUMP
  2671. + select HAVE_DEBUG_KMEMLEAK
  2672. + select ANON_INODES
  2673. + select HAVE_ALIGNED_STRUCT_PAGE if SLUB
  2674. + select HAVE_CMPXCHG_LOCAL
  2675. + select HAVE_CMPXCHG_DOUBLE
  2676. + select HAVE_ARCH_KMEMCHECK
  2677. + select HAVE_USER_RETURN_NOTIFIER
  2678. + select ARCH_BINFMT_ELF_RANDOMIZE_PIE
  2679. + select HAVE_ARCH_JUMP_LABEL
  2680. + select HAVE_TEXT_POKE_SMP
  2681. + select HAVE_GENERIC_HARDIRQS
  2682. + select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
  2683. + select SPARSE_IRQ
  2684. + select GENERIC_FIND_FIRST_BIT
  2685. + select GENERIC_IRQ_PROBE
  2686. + select GENERIC_PENDING_IRQ if SMP
  2687. + select GENERIC_IRQ_SHOW
  2688. + select GENERIC_CLOCKEVENTS_MIN_ADJUST
  2689. + select IRQ_FORCED_THREADING
  2690. + select USE_GENERIC_SMP_HELPERS if SMP
  2691. + select HAVE_BPF_JIT if X86_64
  2692. + select HAVE_ARCH_TRANSPARENT_HUGEPAGE
  2693. + select CLKEVT_I8253
  2694. + select ARCH_HAVE_NMI_SAFE_CMPXCHG
  2695. + select GENERIC_IOMAP
  2696. + select DCACHE_WORD_ACCESS
  2697. + select GENERIC_SMP_IDLE_THREAD
  2698. + select ARCH_WANT_IPC_PARSE_VERSION if X86_32
  2699. + select HAVE_ARCH_SECCOMP_FILTER
  2700. + select BUILDTIME_EXTABLE_SORT
  2701. + select GENERIC_CMOS_UPDATE
  2702. + select CLOCKSOURCE_WATCHDOG
  2703. + select GENERIC_CLOCKEVENTS
  2704. + select ARCH_CLOCKSOURCE_DATA if X86_64
  2705. + select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
  2706. + select GENERIC_TIME_VSYSCALL if X86_64
  2707. + select KTIME_SCALAR if X86_32
  2708. + select GENERIC_STRNCPY_FROM_USER
  2709. + select GENERIC_STRNLEN_USER
  2710. + select HAVE_CONTEXT_TRACKING if X86_64
  2711. + select HAVE_IRQ_TIME_ACCOUNTING
  2712. + select VIRT_TO_BUS
  2713. + select MODULES_USE_ELF_REL if X86_32
  2714. + select MODULES_USE_ELF_RELA if X86_64
  2715. + select CLONE_BACKWARDS if X86_32
  2716. + select ARCH_USE_BUILTIN_BSWAP
  2717. + select OLD_SIGSUSPEND3 if X86_32 || IA32_EMULATION
  2718. + select OLD_SIGACTION if X86_32
  2719. + select COMPAT_OLD_SIGACTION if IA32_EMULATION
  2720. +
  2721. +config INSTRUCTION_DECODER
  2722. + def_bool y
  2723. + depends on KPROBES || PERF_EVENTS || UPROBES
  2724. +
  2725. +config OUTPUT_FORMAT
  2726. + string
  2727. + default "elf32-i386" if X86_32
  2728. + default "elf64-x86-64" if X86_64
  2729. +
  2730. +config ARCH_DEFCONFIG
  2731. + string
  2732. + default "arch/x86/configs/i386_defconfig" if X86_32
  2733. + default "arch/x86/configs/x86_64_defconfig" if X86_64
  2734. +
  2735. +config LOCKDEP_SUPPORT
  2736. + def_bool y
  2737. +
  2738. +config STACKTRACE_SUPPORT
  2739. + def_bool y
  2740. +
  2741. +config HAVE_LATENCYTOP_SUPPORT
  2742. + def_bool y
  2743. +
  2744. +config MMU
  2745. + def_bool y
  2746. +
  2747. +config SBUS
  2748. + bool
  2749. +
  2750. +config NEED_DMA_MAP_STATE
  2751. + def_bool y
  2752. + depends on X86_64 || INTEL_IOMMU || DMA_API_DEBUG
  2753. +
  2754. +config NEED_SG_DMA_LENGTH
  2755. + def_bool y
  2756. +
  2757. +config GENERIC_ISA_DMA
  2758. + def_bool y
  2759. + depends on ISA_DMA_API
  2760. +
  2761. +config GENERIC_BUG
  2762. + def_bool y
  2763. + depends on BUG
  2764. + select GENERIC_BUG_RELATIVE_POINTERS if X86_64
  2765. +
  2766. +config GENERIC_BUG_RELATIVE_POINTERS
  2767. + bool
  2768. +
  2769. +config GENERIC_HWEIGHT
  2770. + def_bool y
  2771. +
  2772. +config GENERIC_GPIO
  2773. + bool
  2774. +
  2775. +config ARCH_MAY_HAVE_PC_FDC
  2776. + def_bool y
  2777. + depends on ISA_DMA_API
  2778. +
  2779. +config RWSEM_XCHGADD_ALGORITHM
  2780. + def_bool y
  2781. +
  2782. +config GENERIC_CALIBRATE_DELAY
  2783. + def_bool y
  2784. +
  2785. +config ARCH_HAS_CPU_RELAX
  2786. + def_bool y
  2787. +
  2788. +config ARCH_HAS_DEFAULT_IDLE
  2789. + def_bool y
  2790. +
  2791. +config ARCH_HAS_CACHE_LINE_SIZE
  2792. + def_bool y
  2793. +
  2794. +config ARCH_HAS_CPU_AUTOPROBE
  2795. + def_bool y
  2796. +
  2797. +config HAVE_SETUP_PER_CPU_AREA
  2798. + def_bool y
  2799. +
  2800. +config NEED_PER_CPU_EMBED_FIRST_CHUNK
  2801. + def_bool y
  2802. +
  2803. +config NEED_PER_CPU_PAGE_FIRST_CHUNK
  2804. + def_bool y
  2805. +
  2806. +config ARCH_HIBERNATION_POSSIBLE
  2807. + def_bool y
  2808. +
  2809. +config ARCH_SUSPEND_POSSIBLE
  2810. + def_bool y
  2811. +
  2812. +config ZONE_DMA32
  2813. + bool
  2814. + default X86_64
  2815. +
  2816. +config AUDIT_ARCH
  2817. + bool
  2818. + default X86_64
  2819. +
  2820. +config ARCH_SUPPORTS_OPTIMIZED_INLINING
  2821. + def_bool y
  2822. +
  2823. +config ARCH_SUPPORTS_DEBUG_PAGEALLOC
  2824. + def_bool y
  2825. +
  2826. +config HAVE_INTEL_TXT
  2827. + def_bool y
  2828. + depends on INTEL_IOMMU && ACPI
  2829. +
  2830. +config X86_32_SMP
  2831. + def_bool y
  2832. + depends on X86_32 && SMP
  2833. +
  2834. +config X86_64_SMP
  2835. + def_bool y
  2836. + depends on X86_64 && SMP
  2837. +
  2838. +config X86_HT
  2839. + def_bool y
  2840. + depends on SMP
  2841. +
  2842. +config X86_32_LAZY_GS
  2843. + def_bool y
  2844. + depends on X86_32 && !CC_STACKPROTECTOR
  2845. +
  2846. +config ARCH_HWEIGHT_CFLAGS
  2847. + string
  2848. + default "-fcall-saved-ecx -fcall-saved-edx" if X86_32
  2849. + default "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64
  2850. +
  2851. +config ARCH_CPU_PROBE_RELEASE
  2852. + def_bool y
  2853. + depends on HOTPLUG_CPU
  2854. +
  2855. +config ARCH_SUPPORTS_UPROBES
  2856. + def_bool y
  2857. +
  2858. +source "init/Kconfig"
  2859. +source "kernel/Kconfig.freezer"
  2860. +
  2861. +menu "Processor type and features"
  2862. +
  2863. +config ZONE_DMA
  2864. + bool "DMA memory allocation support" if EXPERT
  2865. + default y
  2866. + help
  2867. + DMA memory allocation support allows devices with less than 32-bit
  2868. + addressing to allocate within the first 16MB of address space.
  2869. + Disable if no such devices will be used.
  2870. +
  2871. + If unsure, say Y.
  2872. +
  2873. +config SMP
  2874. + bool "Symmetric multi-processing support"
  2875. + ---help---
  2876. + This enables support for systems with more than one CPU. If you have
  2877. + a system with only one CPU, like most personal computers, say N. If
  2878. + you have a system with more than one CPU, say Y.
  2879. +
  2880. + If you say N here, the kernel will run on single and multiprocessor
  2881. + machines, but will use only one CPU of a multiprocessor machine. If
  2882. + you say Y here, the kernel will run on many, but not all,
  2883. + singleprocessor machines. On a singleprocessor machine, the kernel
  2884. + will run faster if you say N here.
  2885. +
  2886. + Note that if you say Y here and choose architecture "586" or
  2887. + "Pentium" under "Processor family", the kernel will not work on 486
  2888. + architectures. Similarly, multiprocessor kernels for the "PPro"
  2889. + architecture may not work on all Pentium based boards.
  2890. +
  2891. + People using multiprocessor machines who say Y here should also say
  2892. + Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
  2893. + Management" code will be disabled if you say Y here.
  2894. +
  2895. + See also <file:Documentation/x86/i386/IO-APIC.txt>,
  2896. + <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
  2897. + <http://www.tldp.org/docs.html#howto>.
  2898. +
  2899. + If you don't know what to do here, say N.
  2900. +
  2901. +config X86_X2APIC
  2902. + bool "Support x2apic"
  2903. + depends on X86_LOCAL_APIC && X86_64 && IRQ_REMAP
  2904. + ---help---
  2905. + This enables x2apic support on CPUs that have this feature.
  2906. +
  2907. + This allows 32-bit apic IDs (so it can support very large systems),
  2908. + and accesses the local apic via MSRs not via mmio.
  2909. +
  2910. + If you don't know what to do here, say N.
  2911. +
  2912. +config X86_MPPARSE
  2913. + bool "Enable MPS table" if ACPI || SFI
  2914. + default y
  2915. + depends on X86_LOCAL_APIC
  2916. + ---help---
  2917. + For old smp systems that do not have proper acpi support. Newer systems
  2918. + (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
  2919. +
  2920. +config X86_BIGSMP
  2921. + bool "Support for big SMP systems with more than 8 CPUs"
  2922. + depends on X86_32 && SMP
  2923. + ---help---
  2924. + This option is needed for the systems that have more than 8 CPUs
  2925. +
  2926. +config GOLDFISH
  2927. + def_bool y
  2928. + depends on X86_GOLDFISH
  2929. +
  2930. +if X86_32
  2931. +config X86_EXTENDED_PLATFORM
  2932. + bool "Support for extended (non-PC) x86 platforms"
  2933. + default y
  2934. + ---help---
  2935. + If you disable this option then the kernel will only support
  2936. + standard PC platforms. (which covers the vast majority of
  2937. + systems out there.)
  2938. +
  2939. + If you enable this option then you'll be able to select support
  2940. + for the following (non-PC) 32 bit x86 platforms:
  2941. + AMD Elan
  2942. + NUMAQ (IBM/Sequent)
  2943. + RDC R-321x SoC
  2944. + SGI 320/540 (Visual Workstation)
  2945. + STA2X11-based (e.g. Northville)
  2946. + Summit/EXA (IBM x440)
  2947. + Unisys ES7000 IA32 series
  2948. + Moorestown MID devices
  2949. +
  2950. + If you have one of these systems, or if you want to build a
  2951. + generic distribution kernel, say Y here - otherwise say N.
  2952. +endif
  2953. +
  2954. +if X86_64
  2955. +config X86_EXTENDED_PLATFORM
  2956. + bool "Support for extended (non-PC) x86 platforms"
  2957. + default y
  2958. + ---help---
  2959. + If you disable this option then the kernel will only support
  2960. + standard PC platforms. (which covers the vast majority of
  2961. + systems out there.)
  2962. +
  2963. + If you enable this option then you'll be able to select support
  2964. + for the following (non-PC) 64 bit x86 platforms:
  2965. + Numascale NumaChip
  2966. + ScaleMP vSMP
  2967. + SGI Ultraviolet
  2968. +
  2969. + If you have one of these systems, or if you want to build a
  2970. + generic distribution kernel, say Y here - otherwise say N.
  2971. +endif
  2972. +# This is an alphabetically sorted list of 64 bit extended platforms
  2973. +# Please maintain the alphabetic order if and when there are additions
  2974. +config X86_NUMACHIP
  2975. + bool "Numascale NumaChip"
  2976. + depends on X86_64
  2977. + depends on X86_EXTENDED_PLATFORM
  2978. + depends on NUMA
  2979. + depends on SMP
  2980. + depends on X86_X2APIC
  2981. + depends on PCI_MMCONFIG
  2982. + ---help---
  2983. + Adds support for Numascale NumaChip large-SMP systems. Needed to
  2984. + enable more than ~168 cores.
  2985. + If you don't have one of these, you should say N here.
  2986. +
  2987. +config X86_VSMP
  2988. + bool "ScaleMP vSMP"
  2989. + select PARAVIRT_GUEST
  2990. + select PARAVIRT
  2991. + depends on X86_64 && PCI
  2992. + depends on X86_EXTENDED_PLATFORM
  2993. + depends on SMP
  2994. + ---help---
  2995. + Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
  2996. + supposed to run on these EM64T-based machines. Only choose this option
  2997. + if you have one of these machines.
  2998. +
  2999. +config X86_UV
  3000. + bool "SGI Ultraviolet"
  3001. + depends on X86_64
  3002. + depends on X86_EXTENDED_PLATFORM
  3003. + depends on NUMA
  3004. + depends on X86_X2APIC
  3005. + ---help---
  3006. + This option is needed in order to support SGI Ultraviolet systems.
  3007. + If you don't have one of these, you should say N here.
  3008. +
  3009. +# Following is an alphabetically sorted list of 32 bit extended platforms
  3010. +# Please maintain the alphabetic order if and when there are additions
  3011. +
  3012. +config X86_GOLDFISH
  3013. + bool "Goldfish (Virtual Platform)"
  3014. + depends on X86_32
  3015. + ---help---
  3016. + Enable support for the Goldfish virtual platform used primarily
  3017. + for Android development. Unless you are building for the Android
  3018. + Goldfish emulator say N here.
  3019. +
  3020. +config X86_INTEL_CE
  3021. + bool "CE4100 TV platform"
  3022. + depends on PCI
  3023. + depends on PCI_GODIRECT
  3024. + depends on X86_32
  3025. + depends on X86_EXTENDED_PLATFORM
  3026. + select X86_REBOOTFIXUPS
  3027. + select OF
  3028. + select OF_EARLY_FLATTREE
  3029. + select IRQ_DOMAIN
  3030. + ---help---
  3031. + Select for the Intel CE media processor (CE4100) SOC.
  3032. + This option compiles in support for the CE4100 SOC for settop
  3033. + boxes and media devices.
  3034. +
  3035. +config X86_WANT_INTEL_MID
  3036. + bool "Intel MID platform support"
  3037. + depends on X86_32
  3038. + depends on X86_EXTENDED_PLATFORM
  3039. + ---help---
  3040. + Select to build a kernel capable of supporting Intel MID platform
  3041. + systems which do not have the PCI legacy interfaces (Moorestown,
  3042. + Medfield). If you are building for a PC class system say N here.
  3043. +
  3044. +if X86_WANT_INTEL_MID
  3045. +
  3046. +config X86_INTEL_MID
  3047. + bool
  3048. +
  3049. +config X86_MDFLD
  3050. + bool "Medfield MID platform"
  3051. + depends on PCI
  3052. + depends on PCI_GOANY
  3053. + depends on X86_IO_APIC
  3054. + select X86_INTEL_MID
  3055. + select SFI
  3056. + select DW_APB_TIMER
  3057. + select APB_TIMER
  3058. + select I2C
  3059. + select SPI
  3060. + select INTEL_SCU_IPC
  3061. + select X86_PLATFORM_DEVICES
  3062. + select MFD_INTEL_MSIC
  3063. + ---help---
  3064. + Medfield is Intel's Low Power Intel Architecture (LPIA) based Moblin
  3065. + Internet Device(MID) platform.
  3066. + Unlike standard x86 PCs, Medfield does not have many legacy devices
  3067. + nor standard legacy replacement devices/features. e.g. Medfield does
  3068. + not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
  3069. +
  3070. +endif
  3071. +
  3072. +config X86_INTEL_LPSS
  3073. + bool "Intel Low Power Subsystem Support"
  3074. + depends on ACPI
  3075. + select COMMON_CLK
  3076. + ---help---
  3077. + Select to build support for Intel Low Power Subsystem such as
  3078. + found on Intel Lynxpoint PCH. Selecting this option enables
  3079. + things like clock tree (common clock framework) which are needed
  3080. + by the LPSS peripheral drivers.
  3081. +
  3082. +config X86_RDC321X
  3083. + bool "RDC R-321x SoC"
  3084. + depends on X86_32
  3085. + depends on X86_EXTENDED_PLATFORM
  3086. + select M486
  3087. + select X86_REBOOTFIXUPS
  3088. + ---help---
  3089. + This option is needed for RDC R-321x system-on-chip, also known
  3090. + as R-8610-(G).
  3091. + If you don't have one of these chips, you should say N here.
  3092. +
  3093. +config X86_32_NON_STANDARD
  3094. + bool "Support non-standard 32-bit SMP architectures"
  3095. + depends on X86_32 && SMP
  3096. + depends on X86_EXTENDED_PLATFORM
  3097. + ---help---
  3098. + This option compiles in the NUMAQ, Summit, bigsmp, ES7000,
  3099. + STA2X11, default subarchitectures. It is intended for a generic
  3100. + binary kernel. If you select them all, kernel will probe it
  3101. + one by one and will fallback to default.
  3102. +
  3103. +# Alphabetically sorted list of Non standard 32 bit platforms
  3104. +
  3105. +config X86_NUMAQ
  3106. + bool "NUMAQ (IBM/Sequent)"
  3107. + depends on X86_32_NON_STANDARD
  3108. + depends on PCI
  3109. + select NUMA
  3110. + select X86_MPPARSE
  3111. + ---help---
  3112. + This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
  3113. + NUMA multiquad box. This changes the way that processors are
  3114. + bootstrapped, and uses Clustered Logical APIC addressing mode instead
  3115. + of Flat Logical. You will need a new lynxer.elf file to flash your
  3116. + firmware with - send email to <Martin.Bligh@us.ibm.com>.
  3117. +
  3118. +config X86_SUPPORTS_MEMORY_FAILURE
  3119. + def_bool y
  3120. + # MCE code calls memory_failure():
  3121. + depends on X86_MCE
  3122. + # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
  3123. + depends on !X86_NUMAQ
  3124. + # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
  3125. + depends on X86_64 || !SPARSEMEM
  3126. + select ARCH_SUPPORTS_MEMORY_FAILURE
  3127. +
  3128. +config X86_VISWS
  3129. + bool "SGI 320/540 (Visual Workstation)"
  3130. + depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
  3131. + depends on X86_32_NON_STANDARD
  3132. + ---help---
  3133. + The SGI Visual Workstation series is an IA32-based workstation
  3134. + based on SGI systems chips with some legacy PC hardware attached.
  3135. +
  3136. + Say Y here to create a kernel to run on the SGI 320 or 540.
  3137. +
  3138. + A kernel compiled for the Visual Workstation will run on general
  3139. + PCs as well. See <file:Documentation/sgi-visws.txt> for details.
  3140. +
  3141. +config STA2X11
  3142. + bool "STA2X11 Companion Chip Support"
  3143. + depends on X86_32_NON_STANDARD && PCI
  3144. + select X86_DEV_DMA_OPS
  3145. + select X86_DMA_REMAP
  3146. + select SWIOTLB
  3147. + select MFD_STA2X11
  3148. + select ARCH_REQUIRE_GPIOLIB
  3149. + default n
  3150. + ---help---
  3151. + This adds support for boards based on the STA2X11 IO-Hub,
  3152. + a.k.a. "ConneXt". The chip is used in place of the standard
  3153. + PC chipset, so all "standard" peripherals are missing. If this
  3154. + option is selected the kernel will still be able to boot on
  3155. + standard PC machines.
  3156. +
  3157. +config X86_SUMMIT
  3158. + bool "Summit/EXA (IBM x440)"
  3159. + depends on X86_32_NON_STANDARD
  3160. + ---help---
  3161. + This option is needed for IBM systems that use the Summit/EXA chipset.
  3162. + In particular, it is needed for the x440.
  3163. +
  3164. +config X86_ES7000
  3165. + bool "Unisys ES7000 IA32 series"
  3166. + depends on X86_32_NON_STANDARD && X86_BIGSMP
  3167. + ---help---
  3168. + Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
  3169. + supposed to run on an IA32-based Unisys ES7000 system.
  3170. +
  3171. +config X86_32_IRIS
  3172. + tristate "Eurobraille/Iris poweroff module"
  3173. + depends on X86_32
  3174. + ---help---
  3175. + The Iris machines from EuroBraille do not have APM or ACPI support
  3176. + to shut themselves down properly. A special I/O sequence is
  3177. + needed to do so, which is what this module does at
  3178. + kernel shutdown.
  3179. +
  3180. + This is only for Iris machines from EuroBraille.
  3181. +
  3182. + If unused, say N.
  3183. +
  3184. +config SCHED_OMIT_FRAME_POINTER
  3185. + def_bool y
  3186. + prompt "Single-depth WCHAN output"
  3187. + depends on X86
  3188. + ---help---
  3189. + Calculate simpler /proc/<PID>/wchan values. If this option
  3190. + is disabled then wchan values will recurse back to the
  3191. + caller function. This provides more accurate wchan values,
  3192. + at the expense of slightly more scheduling overhead.
  3193. +
  3194. + If in doubt, say "Y".
  3195. +
  3196. +menuconfig PARAVIRT_GUEST
  3197. + bool "Paravirtualized guest support"
  3198. + ---help---
  3199. + Say Y here to get to see options related to running Linux under
  3200. + various hypervisors. This option alone does not add any kernel code.
  3201. +
  3202. + If you say N, all options in this submenu will be skipped and disabled.
  3203. +
  3204. +if PARAVIRT_GUEST
  3205. +
  3206. +config PARAVIRT_TIME_ACCOUNTING
  3207. + bool "Paravirtual steal time accounting"
  3208. + select PARAVIRT
  3209. + default n
  3210. + ---help---
  3211. + Select this option to enable fine granularity task steal time
  3212. + accounting. Time spent executing other tasks in parallel with
  3213. + the current vCPU is discounted from the vCPU power. To account for
  3214. + that, there can be a small performance impact.
  3215. +
  3216. + If in doubt, say N here.
  3217. +
  3218. +source "arch/x86/xen/Kconfig"
  3219. +
  3220. +config KVM_GUEST
  3221. + bool "KVM Guest support (including kvmclock)"
  3222. + select PARAVIRT
  3223. + select PARAVIRT
  3224. + select PARAVIRT_CLOCK
  3225. + default y if PARAVIRT_GUEST
  3226. + ---help---
  3227. + This option enables various optimizations for running under the KVM
  3228. + hypervisor. It includes a paravirtualized clock, so that instead
  3229. + of relying on a PIT (or probably other) emulation by the
  3230. + underlying device model, the host provides the guest with
  3231. + timing infrastructure such as time of day, and system time
  3232. +
  3233. +source "arch/x86/lguest/Kconfig"
  3234. +
  3235. +config PARAVIRT
  3236. + bool "Enable paravirtualization code"
  3237. + ---help---
  3238. + This changes the kernel so it can modify itself when it is run
  3239. + under a hypervisor, potentially improving performance significantly
  3240. + over full virtualization. However, when run without a hypervisor
  3241. + the kernel is theoretically slower and slightly larger.
  3242. +
  3243. +config PARAVIRT_SPINLOCKS
  3244. + bool "Paravirtualization layer for spinlocks"
  3245. + depends on PARAVIRT && SMP
  3246. + ---help---
  3247. + Paravirtualized spinlocks allow a pvops backend to replace the
  3248. + spinlock implementation with something virtualization-friendly
  3249. + (for example, block the virtual CPU rather than spinning).
  3250. +
  3251. + Unfortunately the downside is an up to 5% performance hit on
  3252. + native kernels, with various workloads.
  3253. +
  3254. + If you are unsure how to answer this question, answer N.
  3255. +
  3256. +config PARAVIRT_CLOCK
  3257. + bool
  3258. +
  3259. +endif
  3260. +
  3261. +config PARAVIRT_DEBUG
  3262. + bool "paravirt-ops debugging"
  3263. + depends on PARAVIRT && DEBUG_KERNEL
  3264. + ---help---
  3265. + Enable to debug paravirt_ops internals. Specifically, BUG if
  3266. + a paravirt_op is missing when it is called.
  3267. +
  3268. +config NO_BOOTMEM
  3269. + def_bool y
  3270. +
  3271. +config MEMTEST
  3272. + bool "Memtest"
  3273. + ---help---
  3274. + This option adds a kernel parameter 'memtest', which allows memtest
  3275. + to be set.
  3276. + memtest=0, mean disabled; -- default
  3277. + memtest=1, mean do 1 test pattern;
  3278. + ...
  3279. + memtest=4, mean do 4 test patterns.
  3280. + If you are unsure how to answer this question, answer N.
  3281. +
  3282. +config X86_SUMMIT_NUMA
  3283. + def_bool y
  3284. + depends on X86_32 && NUMA && X86_32_NON_STANDARD
  3285. +
  3286. +config X86_CYCLONE_TIMER
  3287. + def_bool y
  3288. + depends on X86_SUMMIT
  3289. +
  3290. +source "arch/x86/Kconfig.cpu"
  3291. +
  3292. +config HPET_TIMER
  3293. + def_bool X86_64
  3294. + prompt "HPET Timer Support" if X86_32
  3295. + ---help---
  3296. + Use the IA-PC HPET (High Precision Event Timer) to manage
  3297. + time in preference to the PIT and RTC, if a HPET is
  3298. + present.
  3299. + HPET is the next generation timer replacing legacy 8254s.
  3300. + The HPET provides a stable time base on SMP
  3301. + systems, unlike the TSC, but it is more expensive to access,
  3302. + as it is off-chip. You can find the HPET spec at
  3303. + <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>.
  3304. +
  3305. + You can safely choose Y here. However, HPET will only be
  3306. + activated if the platform and the BIOS support this feature.
  3307. + Otherwise the 8254 will be used for timing services.
  3308. +
  3309. + Choose N to continue using the legacy 8254 timer.
  3310. +
  3311. +config HPET_EMULATE_RTC
  3312. + def_bool y
  3313. + depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
  3314. +
  3315. +config APB_TIMER
  3316. + def_bool y if X86_INTEL_MID
  3317. + prompt "Intel MID APB Timer Support" if X86_INTEL_MID
  3318. + select DW_APB_TIMER
  3319. + depends on X86_INTEL_MID && SFI
  3320. + help
  3321. + APB timer is the replacement for 8254, HPET on X86 MID platforms.
  3322. + The APBT provides a stable time base on SMP
  3323. + systems, unlike the TSC, but it is more expensive to access,
  3324. + as it is off-chip. APB timers are always running regardless of CPU
  3325. + C states, they are used as per CPU clockevent device when possible.
  3326. +
  3327. +# Mark as expert because too many people got it wrong.
  3328. +# The code disables itself when not needed.
  3329. +config DMI
  3330. + default y
  3331. + bool "Enable DMI scanning" if EXPERT
  3332. + ---help---
  3333. + Enabled scanning of DMI to identify machine quirks. Say Y
  3334. + here unless you have verified that your setup is not
  3335. + affected by entries in the DMI blacklist. Required by PNP
  3336. + BIOS code.
  3337. +
  3338. +config GART_IOMMU
  3339. + bool "GART IOMMU support" if EXPERT
  3340. + default y
  3341. + select SWIOTLB
  3342. + depends on X86_64 && PCI && AMD_NB
  3343. + ---help---
  3344. + Support for full DMA access of devices with 32bit memory access only
  3345. + on systems with more than 3GB. This is usually needed for USB,
  3346. + sound, many IDE/SATA chipsets and some other devices.
  3347. + Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
  3348. + based hardware IOMMU and a software bounce buffer based IOMMU used
  3349. + on Intel systems and as fallback.
  3350. + The code is only active when needed (enough memory and limited
  3351. + device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
  3352. + too.
  3353. +
  3354. +config CALGARY_IOMMU
  3355. + bool "IBM Calgary IOMMU support"
  3356. + select SWIOTLB
  3357. + depends on X86_64 && PCI
  3358. + ---help---
  3359. + Support for hardware IOMMUs in IBM's xSeries x366 and x460
  3360. + systems. Needed to run systems with more than 3GB of memory
  3361. + properly with 32-bit PCI devices that do not support DAC
  3362. + (Double Address Cycle). Calgary also supports bus level
  3363. + isolation, where all DMAs pass through the IOMMU. This
  3364. + prevents them from going anywhere except their intended
  3365. + destination. This catches hard-to-find kernel bugs and
  3366. + mis-behaving drivers and devices that do not use the DMA-API
  3367. + properly to set up their DMA buffers. The IOMMU can be
  3368. + turned off at boot time with the iommu=off parameter.
  3369. + Normally the kernel will make the right choice by itself.
  3370. + If unsure, say Y.
  3371. +
  3372. +config CALGARY_IOMMU_ENABLED_BY_DEFAULT
  3373. + def_bool y
  3374. + prompt "Should Calgary be enabled by default?"
  3375. + depends on CALGARY_IOMMU
  3376. + ---help---
  3377. + Should Calgary be enabled by default? if you choose 'y', Calgary
  3378. + will be used (if it exists). If you choose 'n', Calgary will not be
  3379. + used even if it exists. If you choose 'n' and would like to use
  3380. + Calgary anyway, pass 'iommu=calgary' on the kernel command line.
  3381. + If unsure, say Y.
  3382. +
  3383. +# need this always selected by IOMMU for the VIA workaround
  3384. +config SWIOTLB
  3385. + def_bool y if X86_64
  3386. + ---help---
  3387. + Support for software bounce buffers used on x86-64 systems
  3388. + which don't have a hardware IOMMU. Using this PCI devices
  3389. + which can only access 32-bits of memory can be used on systems
  3390. + with more than 3 GB of memory.
  3391. + If unsure, say Y.
  3392. +
  3393. +config IOMMU_HELPER
  3394. + def_bool y
  3395. + depends on CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU
  3396. +
  3397. +config MAXSMP
  3398. + bool "Enable Maximum number of SMP Processors and NUMA Nodes"
  3399. + depends on X86_64 && SMP && DEBUG_KERNEL
  3400. + select CPUMASK_OFFSTACK
  3401. + ---help---
  3402. + Enable maximum number of CPUS and NUMA Nodes for this architecture.
  3403. + If unsure, say N.
  3404. +
  3405. +config NR_CPUS
  3406. + int "Maximum number of CPUs" if SMP && !MAXSMP
  3407. + range 2 8 if SMP && X86_32 && !X86_BIGSMP
  3408. + range 2 512 if SMP && !MAXSMP
  3409. + default "1" if !SMP
  3410. + default "4096" if MAXSMP
  3411. + default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
  3412. + default "8" if SMP
  3413. + ---help---
  3414. + This allows you to specify the maximum number of CPUs which this
  3415. + kernel will support. The maximum supported value is 512 and the
  3416. + minimum value which makes sense is 2.
  3417. +
  3418. + This is purely to save memory - each supported CPU adds
  3419. + approximately eight kilobytes to the kernel image.
  3420. +
  3421. +config SCHED_SMT
  3422. + bool "SMT (Hyperthreading) scheduler support"
  3423. + depends on X86_HT
  3424. + ---help---
  3425. + SMT scheduler support improves the CPU scheduler's decision making
  3426. + when dealing with Intel Pentium 4 chips with HyperThreading at a
  3427. + cost of slightly increased overhead in some places. If unsure say
  3428. + N here.
  3429. +
  3430. +config SCHED_MC
  3431. + def_bool y
  3432. + prompt "Multi-core scheduler support"
  3433. + depends on X86_HT
  3434. + ---help---
  3435. + Multi-core scheduler support improves the CPU scheduler's decision
  3436. + making when dealing with multi-core CPU chips at a cost of slightly
  3437. + increased overhead in some places. If unsure say N here.
  3438. +
  3439. +source "kernel/Kconfig.preempt"
  3440. +
  3441. +config X86_UP_APIC
  3442. + bool "Local APIC support on uniprocessors"
  3443. + depends on X86_32 && !SMP && !X86_32_NON_STANDARD
  3444. + ---help---
  3445. + A local APIC (Advanced Programmable Interrupt Controller) is an
  3446. + integrated interrupt controller in the CPU. If you have a single-CPU
  3447. + system which has a processor with a local APIC, you can say Y here to
  3448. + enable and use it. If you say Y here even though your machine doesn't
  3449. + have a local APIC, then the kernel will still run with no slowdown at
  3450. + all. The local APIC supports CPU-generated self-interrupts (timer,
  3451. + performance counters), and the NMI watchdog which detects hard
  3452. + lockups.
  3453. +
  3454. +config X86_UP_IOAPIC
  3455. + bool "IO-APIC support on uniprocessors"
  3456. + depends on X86_UP_APIC
  3457. + ---help---
  3458. + An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
  3459. + SMP-capable replacement for PC-style interrupt controllers. Most
  3460. + SMP systems and many recent uniprocessor systems have one.
  3461. +
  3462. + If you have a single-CPU system with an IO-APIC, you can say Y here
  3463. + to use it. If you say Y here even though your machine doesn't have
  3464. + an IO-APIC, then the kernel will still run with no slowdown at all.
  3465. +
  3466. +config X86_LOCAL_APIC
  3467. + def_bool y
  3468. + depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
  3469. +
  3470. +config X86_IO_APIC
  3471. + def_bool y
  3472. + depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_IOAPIC
  3473. +
  3474. +config X86_VISWS_APIC
  3475. + def_bool y
  3476. + depends on X86_32 && X86_VISWS
  3477. +
  3478. +config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
  3479. + bool "Reroute for broken boot IRQs"
  3480. + depends on X86_IO_APIC
  3481. + ---help---
  3482. + This option enables a workaround that fixes a source of
  3483. + spurious interrupts. This is recommended when threaded
  3484. + interrupt handling is used on systems where the generation of
  3485. + superfluous "boot interrupts" cannot be disabled.
  3486. +
  3487. + Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
  3488. + entry in the chipset's IO-APIC is masked (as, e.g. the RT
  3489. + kernel does during interrupt handling). On chipsets where this
  3490. + boot IRQ generation cannot be disabled, this workaround keeps
  3491. + the original IRQ line masked so that only the equivalent "boot
  3492. + IRQ" is delivered to the CPUs. The workaround also tells the
  3493. + kernel to set up the IRQ handler on the boot IRQ line. In this
  3494. + way only one interrupt is delivered to the kernel. Otherwise
  3495. + the spurious second interrupt may cause the kernel to bring
  3496. + down (vital) interrupt lines.
  3497. +
  3498. + Only affects "broken" chipsets. Interrupt sharing may be
  3499. + increased on these systems.
  3500. +
  3501. +config X86_MCE
  3502. + bool "Machine Check / overheating reporting"
  3503. + default y
  3504. + ---help---
  3505. + Machine Check support allows the processor to notify the
  3506. + kernel if it detects a problem (e.g. overheating, data corruption).
  3507. + The action the kernel takes depends on the severity of the problem,
  3508. + ranging from warning messages to halting the machine.
  3509. +
  3510. +config X86_MCE_INTEL
  3511. + def_bool y
  3512. + prompt "Intel MCE features"
  3513. + depends on X86_MCE && X86_LOCAL_APIC
  3514. + ---help---
  3515. + Additional support for intel specific MCE features such as
  3516. + the thermal monitor.
  3517. +
  3518. +config X86_MCE_AMD
  3519. + def_bool y
  3520. + prompt "AMD MCE features"
  3521. + depends on X86_MCE && X86_LOCAL_APIC
  3522. + ---help---
  3523. + Additional support for AMD specific MCE features such as
  3524. + the DRAM Error Threshold.
  3525. +
  3526. +config X86_ANCIENT_MCE
  3527. + bool "Support for old Pentium 5 / WinChip machine checks"
  3528. + depends on X86_32 && X86_MCE
  3529. + ---help---
  3530. + Include support for machine check handling on old Pentium 5 or WinChip
  3531. + systems. These typically need to be enabled explicitely on the command
  3532. + line.
  3533. +
  3534. +config X86_MCE_THRESHOLD
  3535. + depends on X86_MCE_AMD || X86_MCE_INTEL
  3536. + def_bool y
  3537. +
  3538. +config X86_MCE_INJECT
  3539. + depends on X86_MCE
  3540. + tristate "Machine check injector support"
  3541. + ---help---
  3542. + Provide support for injecting machine checks for testing purposes.
  3543. + If you don't know what a machine check is and you don't do kernel
  3544. + QA it is safe to say n.
  3545. +
  3546. +config X86_THERMAL_VECTOR
  3547. + def_bool y
  3548. + depends on X86_MCE_INTEL
  3549. +
  3550. +config VM86
  3551. + bool "Enable VM86 support" if EXPERT
  3552. + default y
  3553. + depends on X86_32
  3554. + ---help---
  3555. + This option is required by programs like DOSEMU to run 16-bit legacy
  3556. + code on X86 processors. It also may be needed by software like
  3557. + XFree86 to initialize some video cards via BIOS. Disabling this
  3558. + option saves about 6k.
  3559. +
  3560. +config TOSHIBA
  3561. + tristate "Toshiba Laptop support"
  3562. + depends on X86_32
  3563. + ---help---
  3564. + This adds a driver to safely access the System Management Mode of
  3565. + the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
  3566. + not work on models with a Phoenix BIOS. The System Management Mode
  3567. + is used to set the BIOS and power saving options on Toshiba portables.
  3568. +
  3569. + For information on utilities to make use of this driver see the
  3570. + Toshiba Linux utilities web site at:
  3571. + <http://www.buzzard.org.uk/toshiba/>.
  3572. +
  3573. + Say Y if you intend to run this kernel on a Toshiba portable.
  3574. + Say N otherwise.
  3575. +
  3576. +config I8K
  3577. + tristate "Dell laptop support"
  3578. + select HWMON
  3579. + ---help---
  3580. + This adds a driver to safely access the System Management Mode
  3581. + of the CPU on the Dell Inspiron 8000. The System Management Mode
  3582. + is used to read cpu temperature and cooling fan status and to
  3583. + control the fans on the I8K portables.
  3584. +
  3585. + This driver has been tested only on the Inspiron 8000 but it may
  3586. + also work with other Dell laptops. You can force loading on other
  3587. + models by passing the parameter `force=1' to the module. Use at
  3588. + your own risk.
  3589. +
  3590. + For information on utilities to make use of this driver see the
  3591. + I8K Linux utilities web site at:
  3592. + <http://people.debian.org/~dz/i8k/>
  3593. +
  3594. + Say Y if you intend to run this kernel on a Dell Inspiron 8000.
  3595. + Say N otherwise.
  3596. +
  3597. +config X86_REBOOTFIXUPS
  3598. + bool "Enable X86 board specific fixups for reboot"
  3599. + depends on X86_32
  3600. + ---help---
  3601. + This enables chipset and/or board specific fixups to be done
  3602. + in order to get reboot to work correctly. This is only needed on
  3603. + some combinations of hardware and BIOS. The symptom, for which
  3604. + this config is intended, is when reboot ends with a stalled/hung
  3605. + system.
  3606. +
  3607. + Currently, the only fixup is for the Geode machines using
  3608. + CS5530A and CS5536 chipsets and the RDC R-321x SoC.
  3609. +
  3610. + Say Y if you want to enable the fixup. Currently, it's safe to
  3611. + enable this option even if you don't need it.
  3612. + Say N otherwise.
  3613. +
  3614. +config MICROCODE
  3615. + tristate "CPU microcode loading support"
  3616. + select FW_LOADER
  3617. + ---help---
  3618. +
  3619. + If you say Y here, you will be able to update the microcode on
  3620. + certain Intel and AMD processors. The Intel support is for the
  3621. + IA32 family, e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4,
  3622. + Xeon etc. The AMD support is for families 0x10 and later. You will
  3623. + obviously need the actual microcode binary data itself which is not
  3624. + shipped with the Linux kernel.
  3625. +
  3626. + This option selects the general module only, you need to select
  3627. + at least one vendor specific module as well.
  3628. +
  3629. + To compile this driver as a module, choose M here: the module
  3630. + will be called microcode.
  3631. +
  3632. +config MICROCODE_INTEL
  3633. + bool "Intel microcode loading support"
  3634. + depends on MICROCODE
  3635. + default MICROCODE
  3636. + select FW_LOADER
  3637. + ---help---
  3638. + This options enables microcode patch loading support for Intel
  3639. + processors.
  3640. +
  3641. + For latest news and information on obtaining all the required
  3642. + Intel ingredients for this driver, check:
  3643. + <http://www.urbanmyth.org/microcode/>.
  3644. +
  3645. +config MICROCODE_AMD
  3646. + bool "AMD microcode loading support"
  3647. + depends on MICROCODE
  3648. + select FW_LOADER
  3649. + ---help---
  3650. + If you select this option, microcode patch loading support for AMD
  3651. + processors will be enabled.
  3652. +
  3653. +config MICROCODE_OLD_INTERFACE
  3654. + def_bool y
  3655. + depends on MICROCODE
  3656. +
  3657. +config MICROCODE_INTEL_LIB
  3658. + def_bool y
  3659. + depends on MICROCODE_INTEL
  3660. +
  3661. +config MICROCODE_INTEL_EARLY
  3662. + bool "Early load microcode"
  3663. + depends on MICROCODE_INTEL && BLK_DEV_INITRD
  3664. + default y
  3665. + help
  3666. + This option provides functionality to read additional microcode data
  3667. + at the beginning of initrd image. The data tells kernel to load
  3668. + microcode to CPU's as early as possible. No functional change if no
  3669. + microcode data is glued to the initrd, therefore it's safe to say Y.
  3670. +
  3671. +config MICROCODE_EARLY
  3672. + def_bool y
  3673. + depends on MICROCODE_INTEL_EARLY
  3674. +
  3675. +config X86_MSR
  3676. + tristate "/dev/cpu/*/msr - Model-specific register support"
  3677. + ---help---
  3678. + This device gives privileged processes access to the x86
  3679. + Model-Specific Registers (MSRs). It is a character device with
  3680. + major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
  3681. + MSR accesses are directed to a specific CPU on multi-processor
  3682. + systems.
  3683. +
  3684. +config X86_CPUID
  3685. + tristate "/dev/cpu/*/cpuid - CPU information support"
  3686. + ---help---
  3687. + This device gives processes access to the x86 CPUID instruction to
  3688. + be executed on a specific processor. It is a character device
  3689. + with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
  3690. + /dev/cpu/31/cpuid.
  3691. +
  3692. +choice
  3693. + prompt "High Memory Support"
  3694. + default HIGHMEM64G if X86_NUMAQ
  3695. + default HIGHMEM4G
  3696. + depends on X86_32
  3697. +
  3698. +config NOHIGHMEM
  3699. + bool "off"
  3700. + depends on !X86_NUMAQ
  3701. + ---help---
  3702. + Linux can use up to 64 Gigabytes of physical memory on x86 systems.
  3703. + However, the address space of 32-bit x86 processors is only 4
  3704. + Gigabytes large. That means that, if you have a large amount of
  3705. + physical memory, not all of it can be "permanently mapped" by the
  3706. + kernel. The physical memory that's not permanently mapped is called
  3707. + "high memory".
  3708. +
  3709. + If you are compiling a kernel which will never run on a machine with
  3710. + more than 1 Gigabyte total physical RAM, answer "off" here (default
  3711. + choice and suitable for most users). This will result in a "3GB/1GB"
  3712. + split: 3GB are mapped so that each process sees a 3GB virtual memory
  3713. + space and the remaining part of the 4GB virtual memory space is used
  3714. + by the kernel to permanently map as much physical memory as
  3715. + possible.
  3716. +
  3717. + If the machine has between 1 and 4 Gigabytes physical RAM, then
  3718. + answer "4GB" here.
  3719. +
  3720. + If more than 4 Gigabytes is used then answer "64GB" here. This
  3721. + selection turns Intel PAE (Physical Address Extension) mode on.
  3722. + PAE implements 3-level paging on IA32 processors. PAE is fully
  3723. + supported by Linux, PAE mode is implemented on all recent Intel
  3724. + processors (Pentium Pro and better). NOTE: If you say "64GB" here,
  3725. + then the kernel will not boot on CPUs that don't support PAE!
  3726. +
  3727. + The actual amount of total physical memory will either be
  3728. + auto detected or can be forced by using a kernel command line option
  3729. + such as "mem=256M". (Try "man bootparam" or see the documentation of
  3730. + your boot loader (lilo or loadlin) about how to pass options to the
  3731. + kernel at boot time.)
  3732. +
  3733. + If unsure, say "off".
  3734. +
  3735. +config HIGHMEM4G
  3736. + bool "4GB"
  3737. + depends on !X86_NUMAQ
  3738. + ---help---
  3739. + Select this if you have a 32-bit processor and between 1 and 4
  3740. + gigabytes of physical RAM.
  3741. +
  3742. +config HIGHMEM64G
  3743. + bool "64GB"
  3744. + depends on !M486
  3745. + select X86_PAE
  3746. + ---help---
  3747. + Select this if you have a 32-bit processor and more than 4
  3748. + gigabytes of physical RAM.
  3749. +
  3750. +endchoice
  3751. +
  3752. +choice
  3753. + prompt "Memory split" if EXPERT
  3754. + default VMSPLIT_3G
  3755. + depends on X86_32
  3756. + ---help---
  3757. + Select the desired split between kernel and user memory.
  3758. +
  3759. + If the address range available to the kernel is less than the
  3760. + physical memory installed, the remaining memory will be available
  3761. + as "high memory". Accessing high memory is a little more costly
  3762. + than low memory, as it needs to be mapped into the kernel first.
  3763. + Note that increasing the kernel address space limits the range
  3764. + available to user programs, making the address space there
  3765. + tighter. Selecting anything other than the default 3G/1G split
  3766. + will also likely make your kernel incompatible with binary-only
  3767. + kernel modules.
  3768. +
  3769. + If you are not absolutely sure what you are doing, leave this
  3770. + option alone!
  3771. +
  3772. + config VMSPLIT_3G
  3773. + bool "3G/1G user/kernel split"
  3774. + config VMSPLIT_3G_OPT
  3775. + depends on !X86_PAE
  3776. + bool "3G/1G user/kernel split (for full 1G low memory)"
  3777. + config VMSPLIT_2G
  3778. + bool "2G/2G user/kernel split"
  3779. + config VMSPLIT_2G_OPT
  3780. + depends on !X86_PAE
  3781. + bool "2G/2G user/kernel split (for full 2G low memory)"
  3782. + config VMSPLIT_1G
  3783. + bool "1G/3G user/kernel split"
  3784. +endchoice
  3785. +
  3786. +config PAGE_OFFSET
  3787. + hex
  3788. + default 0xB0000000 if VMSPLIT_3G_OPT
  3789. + default 0x80000000 if VMSPLIT_2G
  3790. + default 0x78000000 if VMSPLIT_2G_OPT
  3791. + default 0x40000000 if VMSPLIT_1G
  3792. + default 0xC0000000
  3793. + depends on X86_32
  3794. +
  3795. +config HIGHMEM
  3796. + def_bool y
  3797. + depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
  3798. +
  3799. +config X86_PAE
  3800. + bool "PAE (Physical Address Extension) Support"
  3801. + depends on X86_32 && !HIGHMEM4G
  3802. + ---help---
  3803. + PAE is required for NX support, and furthermore enables
  3804. + larger swapspace support for non-overcommit purposes. It
  3805. + has the cost of more pagetable lookup overhead, and also
  3806. + consumes more pagetable space per process.
  3807. +
  3808. +config ARCH_PHYS_ADDR_T_64BIT
  3809. + def_bool y
  3810. + depends on X86_64 || X86_PAE
  3811. +
  3812. +config ARCH_DMA_ADDR_T_64BIT
  3813. + def_bool y
  3814. + depends on X86_64 || HIGHMEM64G
  3815. +
  3816. +config DIRECT_GBPAGES
  3817. + bool "Enable 1GB pages for kernel pagetables" if EXPERT
  3818. + default y
  3819. + depends on X86_64
  3820. + ---help---
  3821. + Allow the kernel linear mapping to use 1GB pages on CPUs that
  3822. + support it. This can improve the kernel's performance a tiny bit by
  3823. + reducing TLB pressure. If in doubt, say "Y".
  3824. +
  3825. +# Common NUMA Features
  3826. +config NUMA
  3827. + bool "Numa Memory Allocation and Scheduler Support"
  3828. + depends on SMP
  3829. + depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI))
  3830. + default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
  3831. + ---help---
  3832. + Enable NUMA (Non Uniform Memory Access) support.
  3833. +
  3834. + The kernel will try to allocate memory used by a CPU on the
  3835. + local memory controller of the CPU and add some more
  3836. + NUMA awareness to the kernel.
  3837. +
  3838. + For 64-bit this is recommended if the system is Intel Core i7
  3839. + (or later), AMD Opteron, or EM64T NUMA.
  3840. +
  3841. + For 32-bit this is only needed on (rare) 32-bit-only platforms
  3842. + that support NUMA topologies, such as NUMAQ / Summit, or if you
  3843. + boot a 32-bit kernel on a 64-bit NUMA platform.
  3844. +
  3845. + Otherwise, you should say N.
  3846. +
  3847. +comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
  3848. + depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
  3849. +
  3850. +config AMD_NUMA
  3851. + def_bool y
  3852. + prompt "Old style AMD Opteron NUMA detection"
  3853. + depends on X86_64 && NUMA && PCI
  3854. + ---help---
  3855. + Enable AMD NUMA node topology detection. You should say Y here if
  3856. + you have a multi processor AMD system. This uses an old method to
  3857. + read the NUMA configuration directly from the builtin Northbridge
  3858. + of Opteron. It is recommended to use X86_64_ACPI_NUMA instead,
  3859. + which also takes priority if both are compiled in.
  3860. +
  3861. +config X86_64_ACPI_NUMA
  3862. + def_bool y
  3863. + prompt "ACPI NUMA detection"
  3864. + depends on X86_64 && NUMA && ACPI && PCI
  3865. + select ACPI_NUMA
  3866. + ---help---
  3867. + Enable ACPI SRAT based node topology detection.
  3868. +
  3869. +# Some NUMA nodes have memory ranges that span
  3870. +# other nodes. Even though a pfn is valid and
  3871. +# between a node's start and end pfns, it may not
  3872. +# reside on that node. See memmap_init_zone()
  3873. +# for details.
  3874. +config NODES_SPAN_OTHER_NODES
  3875. + def_bool y
  3876. + depends on X86_64_ACPI_NUMA
  3877. +
  3878. +config NUMA_EMU
  3879. + bool "NUMA emulation"
  3880. + depends on NUMA
  3881. + ---help---
  3882. + Enable NUMA emulation. A flat machine will be split
  3883. + into virtual nodes when booted with "numa=fake=N", where N is the
  3884. + number of nodes. This is only useful for debugging.
  3885. +
  3886. +config NODES_SHIFT
  3887. + int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
  3888. + range 1 10
  3889. + default "10" if MAXSMP
  3890. + default "6" if X86_64
  3891. + default "4" if X86_NUMAQ
  3892. + default "3"
  3893. + depends on NEED_MULTIPLE_NODES
  3894. + ---help---
  3895. + Specify the maximum number of NUMA Nodes available on the target
  3896. + system. Increases memory reserved to accommodate various tables.
  3897. +
  3898. +config ARCH_HAVE_MEMORY_PRESENT
  3899. + def_bool y
  3900. + depends on X86_32 && DISCONTIGMEM
  3901. +
  3902. +config NEED_NODE_MEMMAP_SIZE
  3903. + def_bool y
  3904. + depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
  3905. +
  3906. +config ARCH_FLATMEM_ENABLE
  3907. + def_bool y
  3908. + depends on X86_32 && !NUMA
  3909. +
  3910. +config ARCH_DISCONTIGMEM_ENABLE
  3911. + def_bool y
  3912. + depends on NUMA && X86_32
  3913. +
  3914. +config ARCH_DISCONTIGMEM_DEFAULT
  3915. + def_bool y
  3916. + depends on NUMA && X86_32
  3917. +
  3918. +config ARCH_SPARSEMEM_ENABLE
  3919. + def_bool y
  3920. + depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD
  3921. + select SPARSEMEM_STATIC if X86_32
  3922. + select SPARSEMEM_VMEMMAP_ENABLE if X86_64
  3923. +
  3924. +config ARCH_SPARSEMEM_DEFAULT
  3925. + def_bool y
  3926. + depends on X86_64
  3927. +
  3928. +config ARCH_SELECT_MEMORY_MODEL
  3929. + def_bool y
  3930. + depends on ARCH_SPARSEMEM_ENABLE
  3931. +
  3932. +config ARCH_MEMORY_PROBE
  3933. + def_bool y
  3934. + depends on X86_64 && MEMORY_HOTPLUG
  3935. +
  3936. +config ARCH_PROC_KCORE_TEXT
  3937. + def_bool y
  3938. + depends on X86_64 && PROC_KCORE
  3939. +
  3940. +config ILLEGAL_POINTER_VALUE
  3941. + hex
  3942. + default 0 if X86_32
  3943. + default 0xdead000000000000 if X86_64
  3944. +
  3945. +source "mm/Kconfig"
  3946. +
  3947. +config HIGHPTE
  3948. + bool "Allocate 3rd-level pagetables from highmem"
  3949. + depends on HIGHMEM
  3950. + ---help---
  3951. + The VM uses one page table entry for each page of physical memory.
  3952. + For systems with a lot of RAM, this can be wasteful of precious
  3953. + low memory. Setting this option will put user-space page table
  3954. + entries in high memory.
  3955. +
  3956. +config X86_CHECK_BIOS_CORRUPTION
  3957. + bool "Check for low memory corruption"
  3958. + ---help---
  3959. + Periodically check for memory corruption in low memory, which
  3960. + is suspected to be caused by BIOS. Even when enabled in the
  3961. + configuration, it is disabled at runtime. Enable it by
  3962. + setting "memory_corruption_check=1" on the kernel command
  3963. + line. By default it scans the low 64k of memory every 60
  3964. + seconds; see the memory_corruption_check_size and
  3965. + memory_corruption_check_period parameters in
  3966. + Documentation/kernel-parameters.txt to adjust this.
  3967. +
  3968. + When enabled with the default parameters, this option has
  3969. + almost no overhead, as it reserves a relatively small amount
  3970. + of memory and scans it infrequently. It both detects corruption
  3971. + and prevents it from affecting the running system.
  3972. +
  3973. + It is, however, intended as a diagnostic tool; if repeatable
  3974. + BIOS-originated corruption always affects the same memory,
  3975. + you can use memmap= to prevent the kernel from using that
  3976. + memory.
  3977. +
  3978. +config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
  3979. + bool "Set the default setting of memory_corruption_check"
  3980. + depends on X86_CHECK_BIOS_CORRUPTION
  3981. + default y
  3982. + ---help---
  3983. + Set whether the default state of memory_corruption_check is
  3984. + on or off.
  3985. +
  3986. +config X86_RESERVE_LOW
  3987. + int "Amount of low memory, in kilobytes, to reserve for the BIOS"
  3988. + default 64
  3989. + range 4 640
  3990. + ---help---
  3991. + Specify the amount of low memory to reserve for the BIOS.
  3992. +
  3993. + The first page contains BIOS data structures that the kernel
  3994. + must not use, so that page must always be reserved.
  3995. +
  3996. + By default we reserve the first 64K of physical RAM, as a
  3997. + number of BIOSes are known to corrupt that memory range
  3998. + during events such as suspend/resume or monitor cable
  3999. + insertion, so it must not be used by the kernel.
  4000. +
  4001. + You can set this to 4 if you are absolutely sure that you
  4002. + trust the BIOS to get all its memory reservations and usages
  4003. + right. If you know your BIOS have problems beyond the
  4004. + default 64K area, you can set this to 640 to avoid using the
  4005. + entire low memory range.
  4006. +
  4007. + If you have doubts about the BIOS (e.g. suspend/resume does
  4008. + not work or there's kernel crashes after certain hardware
  4009. + hotplug events) then you might want to enable
  4010. + X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
  4011. + typical corruption patterns.
  4012. +
  4013. + Leave this to the default value of 64 if you are unsure.
  4014. +
  4015. +config MATH_EMULATION
  4016. + bool
  4017. + prompt "Math emulation" if X86_32
  4018. + ---help---
  4019. + Linux can emulate a math coprocessor (used for floating point
  4020. + operations) if you don't have one. 486DX and Pentium processors have
  4021. + a math coprocessor built in, 486SX and 386 do not, unless you added
  4022. + a 487DX or 387, respectively. (The messages during boot time can
  4023. + give you some hints here ["man dmesg"].) Everyone needs either a
  4024. + coprocessor or this emulation.
  4025. +
  4026. + If you don't have a math coprocessor, you need to say Y here; if you
  4027. + say Y here even though you have a coprocessor, the coprocessor will
  4028. + be used nevertheless. (This behavior can be changed with the kernel
  4029. + command line option "no387", which comes handy if your coprocessor
  4030. + is broken. Try "man bootparam" or see the documentation of your boot
  4031. + loader (lilo or loadlin) about how to pass options to the kernel at
  4032. + boot time.) This means that it is a good idea to say Y here if you
  4033. + intend to use this kernel on different machines.
  4034. +
  4035. + More information about the internals of the Linux math coprocessor
  4036. + emulation can be found in <file:arch/x86/math-emu/README>.
  4037. +
  4038. + If you are not sure, say Y; apart from resulting in a 66 KB bigger
  4039. + kernel, it won't hurt.
  4040. +
  4041. +config MTRR
  4042. + def_bool y
  4043. + prompt "MTRR (Memory Type Range Register) support" if EXPERT
  4044. + ---help---
  4045. + On Intel P6 family processors (Pentium Pro, Pentium II and later)
  4046. + the Memory Type Range Registers (MTRRs) may be used to control
  4047. + processor access to memory ranges. This is most useful if you have
  4048. + a video (VGA) card on a PCI or AGP bus. Enabling write-combining
  4049. + allows bus write transfers to be combined into a larger transfer
  4050. + before bursting over the PCI/AGP bus. This can increase performance
  4051. + of image write operations 2.5 times or more. Saying Y here creates a
  4052. + /proc/mtrr file which may be used to manipulate your processor's
  4053. + MTRRs. Typically the X server should use this.
  4054. +
  4055. + This code has a reasonably generic interface so that similar
  4056. + control registers on other processors can be easily supported
  4057. + as well:
  4058. +
  4059. + The Cyrix 6x86, 6x86MX and M II processors have Address Range
  4060. + Registers (ARRs) which provide a similar functionality to MTRRs. For
  4061. + these, the ARRs are used to emulate the MTRRs.
  4062. + The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
  4063. + MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
  4064. + write-combining. All of these processors are supported by this code
  4065. + and it makes sense to say Y here if you have one of them.
  4066. +
  4067. + Saying Y here also fixes a problem with buggy SMP BIOSes which only
  4068. + set the MTRRs for the boot CPU and not for the secondary CPUs. This
  4069. + can lead to all sorts of problems, so it's good to say Y here.
  4070. +
  4071. + You can safely say Y even if your machine doesn't have MTRRs, you'll
  4072. + just add about 9 KB to your kernel.
  4073. +
  4074. + See <file:Documentation/x86/mtrr.txt> for more information.
  4075. +
  4076. +config MTRR_SANITIZER
  4077. + def_bool y
  4078. + prompt "MTRR cleanup support"
  4079. + depends on MTRR
  4080. + ---help---
  4081. + Convert MTRR layout from continuous to discrete, so X drivers can
  4082. + add writeback entries.
  4083. +
  4084. + Can be disabled with disable_mtrr_cleanup on the kernel command line.
  4085. + The largest mtrr entry size for a continuous block can be set with
  4086. + mtrr_chunk_size.
  4087. +
  4088. + If unsure, say Y.
  4089. +
  4090. +config MTRR_SANITIZER_ENABLE_DEFAULT
  4091. + int "MTRR cleanup enable value (0-1)"
  4092. + range 0 1
  4093. + default "0"
  4094. + depends on MTRR_SANITIZER
  4095. + ---help---
  4096. + Enable mtrr cleanup default value
  4097. +
  4098. +config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
  4099. + int "MTRR cleanup spare reg num (0-7)"
  4100. + range 0 7
  4101. + default "1"
  4102. + depends on MTRR_SANITIZER
  4103. + ---help---
  4104. + mtrr cleanup spare entries default, it can be changed via
  4105. + mtrr_spare_reg_nr=N on the kernel command line.
  4106. +
  4107. +config X86_PAT
  4108. + def_bool y
  4109. + prompt "x86 PAT support" if EXPERT
  4110. + depends on MTRR
  4111. + ---help---
  4112. + Use PAT attributes to setup page level cache control.
  4113. +
  4114. + PATs are the modern equivalents of MTRRs and are much more
  4115. + flexible than MTRRs.
  4116. +
  4117. + Say N here if you see bootup problems (boot crash, boot hang,
  4118. + spontaneous reboots) or a non-working video driver.
  4119. +
  4120. + If unsure, say Y.
  4121. +
  4122. +config ARCH_USES_PG_UNCACHED
  4123. + def_bool y
  4124. + depends on X86_PAT
  4125. +
  4126. +config ARCH_RANDOM
  4127. + def_bool y
  4128. + prompt "x86 architectural random number generator" if EXPERT
  4129. + ---help---
  4130. + Enable the x86 architectural RDRAND instruction
  4131. + (Intel Bull Mountain technology) to generate random numbers.
  4132. + If supported, this is a high bandwidth, cryptographically
  4133. + secure hardware random number generator.
  4134. +
  4135. +config X86_SMAP
  4136. + def_bool y
  4137. + prompt "Supervisor Mode Access Prevention" if EXPERT
  4138. + ---help---
  4139. + Supervisor Mode Access Prevention (SMAP) is a security
  4140. + feature in newer Intel processors. There is a small
  4141. + performance cost if this enabled and turned on; there is
  4142. + also a small increase in the kernel size if this is enabled.
  4143. +
  4144. + If unsure, say Y.
  4145. +
  4146. +config EFI
  4147. + bool "EFI runtime service support"
  4148. + depends on ACPI
  4149. + select UCS2_STRING
  4150. + ---help---
  4151. + This enables the kernel to use EFI runtime services that are
  4152. + available (such as the EFI variable services).
  4153. +
  4154. + This option is only useful on systems that have EFI firmware.
  4155. + In addition, you should use the latest ELILO loader available
  4156. + at <http://elilo.sourceforge.net> in order to take advantage
  4157. + of EFI runtime services. However, even with this option, the
  4158. + resultant kernel should continue to boot on existing non-EFI
  4159. + platforms.
  4160. +
  4161. +config EFI_STUB
  4162. + bool "EFI stub support"
  4163. + depends on EFI
  4164. + ---help---
  4165. + This kernel feature allows a bzImage to be loaded directly
  4166. + by EFI firmware without the use of a bootloader.
  4167. +
  4168. + See Documentation/x86/efi-stub.txt for more information.
  4169. +
  4170. +config SECCOMP
  4171. + def_bool y
  4172. + prompt "Enable seccomp to safely compute untrusted bytecode"
  4173. + ---help---
  4174. + This kernel feature is useful for number crunching applications
  4175. + that may need to compute untrusted bytecode during their
  4176. + execution. By using pipes or other transports made available to
  4177. + the process as file descriptors supporting the read/write
  4178. + syscalls, it's possible to isolate those applications in
  4179. + their own address space using seccomp. Once seccomp is
  4180. + enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
  4181. + and the task is only allowed to execute a few safe syscalls
  4182. + defined by each seccomp mode.
  4183. +
  4184. + If unsure, say Y. Only embedded should say N here.
  4185. +
  4186. +config CC_STACKPROTECTOR
  4187. + bool "Enable -fstack-protector buffer overflow detection"
  4188. + ---help---
  4189. + This option turns on the -fstack-protector GCC feature. This
  4190. + feature puts, at the beginning of functions, a canary value on
  4191. + the stack just before the return address, and validates
  4192. + the value just before actually returning. Stack based buffer
  4193. + overflows (that need to overwrite this return address) now also
  4194. + overwrite the canary, which gets detected and the attack is then
  4195. + neutralized via a kernel panic.
  4196. +
  4197. + This feature requires gcc version 4.2 or above, or a distribution
  4198. + gcc with the feature backported. Older versions are automatically
  4199. + detected and for those versions, this configuration option is
  4200. + ignored. (and a warning is printed during bootup)
  4201. +
  4202. +source kernel/Kconfig.hz
  4203. +
  4204. +config KEXEC
  4205. + bool "kexec system call"
  4206. + ---help---
  4207. + kexec is a system call that implements the ability to shutdown your
  4208. + current kernel, and to start another kernel. It is like a reboot
  4209. + but it is independent of the system firmware. And like a reboot
  4210. + you can start any kernel with it, not just Linux.
  4211. +
  4212. + The name comes from the similarity to the exec system call.
  4213. +
  4214. + It is an ongoing process to be certain the hardware in a machine
  4215. + is properly shutdown, so do not be surprised if this code does not
  4216. + initially work for you. It may help to enable device hotplugging
  4217. + support. As of this writing the exact hardware interface is
  4218. + strongly in flux, so no good recommendation can be made.
  4219. +
  4220. +config CRASH_DUMP
  4221. + bool "kernel crash dumps"
  4222. + depends on X86_64 || (X86_32 && HIGHMEM)
  4223. + ---help---
  4224. + Generate crash dump after being started by kexec.
  4225. + This should be normally only set in special crash dump kernels
  4226. + which are loaded in the main kernel with kexec-tools into
  4227. + a specially reserved region and then later executed after
  4228. + a crash by kdump/kexec. The crash dump kernel must be compiled
  4229. + to a memory address not used by the main kernel or BIOS using
  4230. + PHYSICAL_START, or it must be built as a relocatable image
  4231. + (CONFIG_RELOCATABLE=y).
  4232. + For more details see Documentation/kdump/kdump.txt
  4233. +
  4234. +config KEXEC_JUMP
  4235. + bool "kexec jump"
  4236. + depends on KEXEC && HIBERNATION
  4237. + ---help---
  4238. + Jump between original kernel and kexeced kernel and invoke
  4239. + code in physical address mode via KEXEC
  4240. +
  4241. +config PHYSICAL_START
  4242. + hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
  4243. + default "0x1000000"
  4244. + ---help---
  4245. + This gives the physical address where the kernel is loaded.
  4246. +
  4247. + If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
  4248. + bzImage will decompress itself to above physical address and
  4249. + run from there. Otherwise, bzImage will run from the address where
  4250. + it has been loaded by the boot loader and will ignore above physical
  4251. + address.
  4252. +
  4253. + In normal kdump cases one does not have to set/change this option
  4254. + as now bzImage can be compiled as a completely relocatable image
  4255. + (CONFIG_RELOCATABLE=y) and be used to load and run from a different
  4256. + address. This option is mainly useful for the folks who don't want
  4257. + to use a bzImage for capturing the crash dump and want to use a
  4258. + vmlinux instead. vmlinux is not relocatable hence a kernel needs
  4259. + to be specifically compiled to run from a specific memory area
  4260. + (normally a reserved region) and this option comes handy.
  4261. +
  4262. + So if you are using bzImage for capturing the crash dump,
  4263. + leave the value here unchanged to 0x1000000 and set
  4264. + CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux
  4265. + for capturing the crash dump change this value to start of
  4266. + the reserved region. In other words, it can be set based on
  4267. + the "X" value as specified in the "crashkernel=YM@XM"
  4268. + command line boot parameter passed to the panic-ed
  4269. + kernel. Please take a look at Documentation/kdump/kdump.txt
  4270. + for more details about crash dumps.
  4271. +
  4272. + Usage of bzImage for capturing the crash dump is recommended as
  4273. + one does not have to build two kernels. Same kernel can be used
  4274. + as production kernel and capture kernel. Above option should have
  4275. + gone away after relocatable bzImage support is introduced. But it
  4276. + is present because there are users out there who continue to use
  4277. + vmlinux for dump capture. This option should go away down the
  4278. + line.
  4279. +
  4280. + Don't change this unless you know what you are doing.
  4281. +
  4282. +config RELOCATABLE
  4283. + bool "Build a relocatable kernel"
  4284. + default y
  4285. + ---help---
  4286. + This builds a kernel image that retains relocation information
  4287. + so it can be loaded someplace besides the default 1MB.
  4288. + The relocations tend to make the kernel binary about 10% larger,
  4289. + but are discarded at runtime.
  4290. +
  4291. + One use is for the kexec on panic case where the recovery kernel
  4292. + must live at a different physical address than the primary
  4293. + kernel.
  4294. +
  4295. + Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
  4296. + it has been loaded at and the compile time physical address
  4297. + (CONFIG_PHYSICAL_START) is ignored.
  4298. +
  4299. +# Relocation on x86-32 needs some additional build support
  4300. +config X86_NEED_RELOCS
  4301. + def_bool y
  4302. + depends on X86_32 && RELOCATABLE
  4303. +
  4304. +config PHYSICAL_ALIGN
  4305. + hex "Alignment value to which kernel should be aligned" if X86_32
  4306. + default "0x1000000"
  4307. + range 0x2000 0x1000000
  4308. + ---help---
  4309. + This value puts the alignment restrictions on physical address
  4310. + where kernel is loaded and run from. Kernel is compiled for an
  4311. + address which meets above alignment restriction.
  4312. +
  4313. + If bootloader loads the kernel at a non-aligned address and
  4314. + CONFIG_RELOCATABLE is set, kernel will move itself to nearest
  4315. + address aligned to above value and run from there.
  4316. +
  4317. + If bootloader loads the kernel at a non-aligned address and
  4318. + CONFIG_RELOCATABLE is not set, kernel will ignore the run time
  4319. + load address and decompress itself to the address it has been
  4320. + compiled for and run from there. The address for which kernel is
  4321. + compiled already meets above alignment restrictions. Hence the
  4322. + end result is that kernel runs from a physical address meeting
  4323. + above alignment restrictions.
  4324. +
  4325. + Don't change this unless you know what you are doing.
  4326. +
  4327. +config HOTPLUG_CPU
  4328. + bool "Support for hot-pluggable CPUs"
  4329. + depends on SMP && HOTPLUG
  4330. + ---help---
  4331. + Say Y here to allow turning CPUs off and on. CPUs can be
  4332. + controlled through /sys/devices/system/cpu.
  4333. + ( Note: power management support will enable this option
  4334. + automatically on SMP systems. )
  4335. + Say N if you want to disable CPU hotplug.
  4336. +
  4337. +config BOOTPARAM_HOTPLUG_CPU0
  4338. + bool "Set default setting of cpu0_hotpluggable"
  4339. + default n
  4340. + depends on HOTPLUG_CPU
  4341. + ---help---
  4342. + Set whether default state of cpu0_hotpluggable is on or off.
  4343. +
  4344. + Say Y here to enable CPU0 hotplug by default. If this switch
  4345. + is turned on, there is no need to give cpu0_hotplug kernel
  4346. + parameter and the CPU0 hotplug feature is enabled by default.
  4347. +
  4348. + Please note: there are two known CPU0 dependencies if you want
  4349. + to enable the CPU0 hotplug feature either by this switch or by
  4350. + cpu0_hotplug kernel parameter.
  4351. +
  4352. + First, resume from hibernate or suspend always starts from CPU0.
  4353. + So hibernate and suspend are prevented if CPU0 is offline.
  4354. +
  4355. + Second dependency is PIC interrupts always go to CPU0. CPU0 can not
  4356. + offline if any interrupt can not migrate out of CPU0. There may
  4357. + be other CPU0 dependencies.
  4358. +
  4359. + Please make sure the dependencies are under your control before
  4360. + you enable this feature.
  4361. +
  4362. + Say N if you don't want to enable CPU0 hotplug feature by default.
  4363. + You still can enable the CPU0 hotplug feature at boot by kernel
  4364. + parameter cpu0_hotplug.
  4365. +
  4366. +config DEBUG_HOTPLUG_CPU0
  4367. + def_bool n
  4368. + prompt "Debug CPU0 hotplug"
  4369. + depends on HOTPLUG_CPU
  4370. + ---help---
  4371. + Enabling this option offlines CPU0 (if CPU0 can be offlined) as
  4372. + soon as possible and boots up userspace with CPU0 offlined. User
  4373. + can online CPU0 back after boot time.
  4374. +
  4375. + To debug CPU0 hotplug, you need to enable CPU0 offline/online
  4376. + feature by either turning on CONFIG_BOOTPARAM_HOTPLUG_CPU0 during
  4377. + compilation or giving cpu0_hotplug kernel parameter at boot.
  4378. +
  4379. + If unsure, say N.
  4380. +
  4381. +config COMPAT_VDSO
  4382. + def_bool y
  4383. + prompt "Compat VDSO support"
  4384. + depends on X86_32 || IA32_EMULATION
  4385. + ---help---
  4386. + Map the 32-bit VDSO to the predictable old-style address too.
  4387. +
  4388. + Say N here if you are running a sufficiently recent glibc
  4389. + version (2.3.3 or later), to remove the high-mapped
  4390. + VDSO mapping and to exclusively use the randomized VDSO.
  4391. +
  4392. + If unsure, say Y.
  4393. +
  4394. +config CMDLINE_BOOL
  4395. + bool "Built-in kernel command line"
  4396. + ---help---
  4397. + Allow for specifying boot arguments to the kernel at
  4398. + build time. On some systems (e.g. embedded ones), it is
  4399. + necessary or convenient to provide some or all of the
  4400. + kernel boot arguments with the kernel itself (that is,
  4401. + to not rely on the boot loader to provide them.)
  4402. +
  4403. + To compile command line arguments into the kernel,
  4404. + set this option to 'Y', then fill in the
  4405. + the boot arguments in CONFIG_CMDLINE.
  4406. +
  4407. + Systems with fully functional boot loaders (i.e. non-embedded)
  4408. + should leave this option set to 'N'.
  4409. +
  4410. +config CMDLINE
  4411. + string "Built-in kernel command string"
  4412. + depends on CMDLINE_BOOL
  4413. + default ""
  4414. + ---help---
  4415. + Enter arguments here that should be compiled into the kernel
  4416. + image and used at boot time. If the boot loader provides a
  4417. + command line at boot time, it is appended to this string to
  4418. + form the full kernel command line, when the system boots.
  4419. +
  4420. + However, you can use the CONFIG_CMDLINE_OVERRIDE option to
  4421. + change this behavior.
  4422. +
  4423. + In most cases, the command line (whether built-in or provided
  4424. + by the boot loader) should specify the device for the root
  4425. + file system.
  4426. +
  4427. +config CMDLINE_OVERRIDE
  4428. + bool "Built-in command line overrides boot loader arguments"
  4429. + depends on CMDLINE_BOOL
  4430. + ---help---
  4431. + Set this option to 'Y' to have the kernel ignore the boot loader
  4432. + command line, and use ONLY the built-in command line.
  4433. +
  4434. + This is used to work around broken boot loaders. This should
  4435. + be set to 'N' under normal conditions.
  4436. +
  4437. +endmenu
  4438. +
  4439. +config ARCH_ENABLE_MEMORY_HOTPLUG
  4440. + def_bool y
  4441. + depends on X86_64 || (X86_32 && HIGHMEM)
  4442. +
  4443. +config ARCH_ENABLE_MEMORY_HOTREMOVE
  4444. + def_bool y
  4445. + depends on MEMORY_HOTPLUG
  4446. +
  4447. +config USE_PERCPU_NUMA_NODE_ID
  4448. + def_bool y
  4449. + depends on NUMA
  4450. +
  4451. +menu "Power management and ACPI options"
  4452. +
  4453. +config ARCH_HIBERNATION_HEADER
  4454. + def_bool y
  4455. + depends on X86_64 && HIBERNATION
  4456. +
  4457. +source "kernel/power/Kconfig"
  4458. +
  4459. +source "drivers/acpi/Kconfig"
  4460. +
  4461. +source "drivers/sfi/Kconfig"
  4462. +
  4463. +config X86_APM_BOOT
  4464. + def_bool y
  4465. + depends on APM
  4466. +
  4467. +menuconfig APM
  4468. + tristate "APM (Advanced Power Management) BIOS support"
  4469. + depends on X86_32 && PM_SLEEP
  4470. + ---help---
  4471. + APM is a BIOS specification for saving power using several different
  4472. + techniques. This is mostly useful for battery powered laptops with
  4473. + APM compliant BIOSes. If you say Y here, the system time will be
  4474. + reset after a RESUME operation, the /proc/apm device will provide
  4475. + battery status information, and user-space programs will receive
  4476. + notification of APM "events" (e.g. battery status change).
  4477. +
  4478. + If you select "Y" here, you can disable actual use of the APM
  4479. + BIOS by passing the "apm=off" option to the kernel at boot time.
  4480. +
  4481. + Note that the APM support is almost completely disabled for
  4482. + machines with more than one CPU.
  4483. +
  4484. + In order to use APM, you will need supporting software. For location
  4485. + and more information, read <file:Documentation/power/apm-acpi.txt>
  4486. + and the Battery Powered Linux mini-HOWTO, available from
  4487. + <http://www.tldp.org/docs.html#howto>.
  4488. +
  4489. + This driver does not spin down disk drives (see the hdparm(8)
  4490. + manpage ("man 8 hdparm") for that), and it doesn't turn off
  4491. + VESA-compliant "green" monitors.
  4492. +
  4493. + This driver does not support the TI 4000M TravelMate and the ACER
  4494. + 486/DX4/75 because they don't have compliant BIOSes. Many "green"
  4495. + desktop machines also don't have compliant BIOSes, and this driver
  4496. + may cause those machines to panic during the boot phase.
  4497. +
  4498. + Generally, if you don't have a battery in your machine, there isn't
  4499. + much point in using this driver and you should say N. If you get
  4500. + random kernel OOPSes or reboots that don't seem to be related to
  4501. + anything, try disabling/enabling this option (or disabling/enabling
  4502. + APM in your BIOS).
  4503. +
  4504. + Some other things you should try when experiencing seemingly random,
  4505. + "weird" problems:
  4506. +
  4507. + 1) make sure that you have enough swap space and that it is
  4508. + enabled.
  4509. + 2) pass the "no-hlt" option to the kernel
  4510. + 3) switch on floating point emulation in the kernel and pass
  4511. + the "no387" option to the kernel
  4512. + 4) pass the "floppy=nodma" option to the kernel
  4513. + 5) pass the "mem=4M" option to the kernel (thereby disabling
  4514. + all but the first 4 MB of RAM)
  4515. + 6) make sure that the CPU is not over clocked.
  4516. + 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
  4517. + 8) disable the cache from your BIOS settings
  4518. + 9) install a fan for the video card or exchange video RAM
  4519. + 10) install a better fan for the CPU
  4520. + 11) exchange RAM chips
  4521. + 12) exchange the motherboard.
  4522. +
  4523. + To compile this driver as a module, choose M here: the
  4524. + module will be called apm.
  4525. +
  4526. +if APM
  4527. +
  4528. +config APM_IGNORE_USER_SUSPEND
  4529. + bool "Ignore USER SUSPEND"
  4530. + ---help---
  4531. + This option will ignore USER SUSPEND requests. On machines with a
  4532. + compliant APM BIOS, you want to say N. However, on the NEC Versa M
  4533. + series notebooks, it is necessary to say Y because of a BIOS bug.
  4534. +
  4535. +config APM_DO_ENABLE
  4536. + bool "Enable PM at boot time"
  4537. + ---help---
  4538. + Enable APM features at boot time. From page 36 of the APM BIOS
  4539. + specification: "When disabled, the APM BIOS does not automatically
  4540. + power manage devices, enter the Standby State, enter the Suspend
  4541. + State, or take power saving steps in response to CPU Idle calls."
  4542. + This driver will make CPU Idle calls when Linux is idle (unless this
  4543. + feature is turned off -- see "Do CPU IDLE calls", below). This
  4544. + should always save battery power, but more complicated APM features
  4545. + will be dependent on your BIOS implementation. You may need to turn
  4546. + this option off if your computer hangs at boot time when using APM
  4547. + support, or if it beeps continuously instead of suspending. Turn
  4548. + this off if you have a NEC UltraLite Versa 33/C or a Toshiba
  4549. + T400CDT. This is off by default since most machines do fine without
  4550. + this feature.
  4551. +
  4552. +config APM_CPU_IDLE
  4553. + depends on CPU_IDLE
  4554. + bool "Make CPU Idle calls when idle"
  4555. + ---help---
  4556. + Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
  4557. + On some machines, this can activate improved power savings, such as
  4558. + a slowed CPU clock rate, when the machine is idle. These idle calls
  4559. + are made after the idle loop has run for some length of time (e.g.,
  4560. + 333 mS). On some machines, this will cause a hang at boot time or
  4561. + whenever the CPU becomes idle. (On machines with more than one CPU,
  4562. + this option does nothing.)
  4563. +
  4564. +config APM_DISPLAY_BLANK
  4565. + bool "Enable console blanking using APM"
  4566. + ---help---
  4567. + Enable console blanking using the APM. Some laptops can use this to
  4568. + turn off the LCD backlight when the screen blanker of the Linux
  4569. + virtual console blanks the screen. Note that this is only used by
  4570. + the virtual console screen blanker, and won't turn off the backlight
  4571. + when using the X Window system. This also doesn't have anything to
  4572. + do with your VESA-compliant power-saving monitor. Further, this
  4573. + option doesn't work for all laptops -- it might not turn off your
  4574. + backlight at all, or it might print a lot of errors to the console,
  4575. + especially if you are using gpm.
  4576. +
  4577. +config APM_ALLOW_INTS
  4578. + bool "Allow interrupts during APM BIOS calls"
  4579. + ---help---
  4580. + Normally we disable external interrupts while we are making calls to
  4581. + the APM BIOS as a measure to lessen the effects of a badly behaving
  4582. + BIOS implementation. The BIOS should reenable interrupts if it
  4583. + needs to. Unfortunately, some BIOSes do not -- especially those in
  4584. + many of the newer IBM Thinkpads. If you experience hangs when you
  4585. + suspend, try setting this to Y. Otherwise, say N.
  4586. +
  4587. +endif # APM
  4588. +
  4589. +source "drivers/cpufreq/Kconfig"
  4590. +
  4591. +source "drivers/cpuidle/Kconfig"
  4592. +
  4593. +source "drivers/idle/Kconfig"
  4594. +
  4595. +endmenu
  4596. +
  4597. +
  4598. +menu "Bus options (PCI etc.)"
  4599. +
  4600. +config PCI
  4601. + bool "PCI support"
  4602. + default y
  4603. + select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
  4604. + ---help---
  4605. + Find out whether you have a PCI motherboard. PCI is the name of a
  4606. + bus system, i.e. the way the CPU talks to the other stuff inside
  4607. + your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
  4608. + VESA. If you have PCI, say Y, otherwise N.
  4609. +
  4610. +choice
  4611. + prompt "PCI access mode"
  4612. + depends on X86_32 && PCI
  4613. + default PCI_GOANY
  4614. + ---help---
  4615. + On PCI systems, the BIOS can be used to detect the PCI devices and
  4616. + determine their configuration. However, some old PCI motherboards
  4617. + have BIOS bugs and may crash if this is done. Also, some embedded
  4618. + PCI-based systems don't have any BIOS at all. Linux can also try to
  4619. + detect the PCI hardware directly without using the BIOS.
  4620. +
  4621. + With this option, you can specify how Linux should detect the
  4622. + PCI devices. If you choose "BIOS", the BIOS will be used,
  4623. + if you choose "Direct", the BIOS won't be used, and if you
  4624. + choose "MMConfig", then PCI Express MMCONFIG will be used.
  4625. + If you choose "Any", the kernel will try MMCONFIG, then the
  4626. + direct access method and falls back to the BIOS if that doesn't
  4627. + work. If unsure, go with the default, which is "Any".
  4628. +
  4629. +config PCI_GOBIOS
  4630. + bool "BIOS"
  4631. +
  4632. +config PCI_GOMMCONFIG
  4633. + bool "MMConfig"
  4634. +
  4635. +config PCI_GODIRECT
  4636. + bool "Direct"
  4637. +
  4638. +config PCI_GOOLPC
  4639. + bool "OLPC XO-1"
  4640. + depends on OLPC
  4641. +
  4642. +config PCI_GOANY
  4643. + bool "Any"
  4644. +
  4645. +endchoice
  4646. +
  4647. +config PCI_BIOS
  4648. + def_bool y
  4649. + depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY)
  4650. +
  4651. +# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
  4652. +config PCI_DIRECT
  4653. + def_bool y
  4654. + depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC || PCI_GOMMCONFIG))
  4655. +
  4656. +config PCI_MMCONFIG
  4657. + def_bool y
  4658. + depends on X86_32 && PCI && (ACPI || SFI) && (PCI_GOMMCONFIG || PCI_GOANY)
  4659. +
  4660. +config PCI_OLPC
  4661. + def_bool y
  4662. + depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY)
  4663. +
  4664. +config PCI_XEN
  4665. + def_bool y
  4666. + depends on PCI && XEN
  4667. + select SWIOTLB_XEN
  4668. +
  4669. +config PCI_DOMAINS
  4670. + def_bool y
  4671. + depends on PCI
  4672. +
  4673. +config PCI_MMCONFIG
  4674. + bool "Support mmconfig PCI config space access"
  4675. + depends on X86_64 && PCI && ACPI
  4676. +
  4677. +config PCI_CNB20LE_QUIRK
  4678. + bool "Read CNB20LE Host Bridge Windows" if EXPERT
  4679. + depends on PCI
  4680. + help
  4681. + Read the PCI windows out of the CNB20LE host bridge. This allows
  4682. + PCI hotplug to work on systems with the CNB20LE chipset which do
  4683. + not have ACPI.
  4684. +
  4685. + There's no public spec for this chipset, and this functionality
  4686. + is known to be incomplete.
  4687. +
  4688. + You should say N unless you know you need this.
  4689. +
  4690. +source "drivers/pci/pcie/Kconfig"
  4691. +
  4692. +source "drivers/pci/Kconfig"
  4693. +
  4694. +# x86_64 have no ISA slots, but can have ISA-style DMA.
  4695. +config ISA_DMA_API
  4696. + bool "ISA-style DMA support" if (X86_64 && EXPERT)
  4697. + default y
  4698. + help
  4699. + Enables ISA-style DMA support for devices requiring such controllers.
  4700. + If unsure, say Y.
  4701. +
  4702. +if X86_32
  4703. +
  4704. +config ISA
  4705. + bool "ISA support"
  4706. + ---help---
  4707. + Find out whether you have ISA slots on your motherboard. ISA is the
  4708. + name of a bus system, i.e. the way the CPU talks to the other stuff
  4709. + inside your box. Other bus systems are PCI, EISA, MicroChannel
  4710. + (MCA) or VESA. ISA is an older system, now being displaced by PCI;
  4711. + newer boards don't support it. If you have ISA, say Y, otherwise N.
  4712. +
  4713. +config EISA
  4714. + bool "EISA support"
  4715. + depends on ISA
  4716. + ---help---
  4717. + The Extended Industry Standard Architecture (EISA) bus was
  4718. + developed as an open alternative to the IBM MicroChannel bus.
  4719. +
  4720. + The EISA bus provided some of the features of the IBM MicroChannel
  4721. + bus while maintaining backward compatibility with cards made for
  4722. + the older ISA bus. The EISA bus saw limited use between 1988 and
  4723. + 1995 when it was made obsolete by the PCI bus.
  4724. +
  4725. + Say Y here if you are building a kernel for an EISA-based machine.
  4726. +
  4727. + Otherwise, say N.
  4728. +
  4729. +source "drivers/eisa/Kconfig"
  4730. +
  4731. +config SCx200
  4732. + tristate "NatSemi SCx200 support"
  4733. + ---help---
  4734. + This provides basic support for National Semiconductor's
  4735. + (now AMD's) Geode processors. The driver probes for the
  4736. + PCI-IDs of several on-chip devices, so its a good dependency
  4737. + for other scx200_* drivers.
  4738. +
  4739. + If compiled as a module, the driver is named scx200.
  4740. +
  4741. +config SCx200HR_TIMER
  4742. + tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
  4743. + depends on SCx200
  4744. + default y
  4745. + ---help---
  4746. + This driver provides a clocksource built upon the on-chip
  4747. + 27MHz high-resolution timer. Its also a workaround for
  4748. + NSC Geode SC-1100's buggy TSC, which loses time when the
  4749. + processor goes idle (as is done by the scheduler). The
  4750. + other workaround is idle=poll boot option.
  4751. +
  4752. +config OLPC
  4753. + bool "One Laptop Per Child support"
  4754. + depends on !X86_PAE
  4755. + select GPIOLIB
  4756. + select OF
  4757. + select OF_PROMTREE
  4758. + select IRQ_DOMAIN
  4759. + ---help---
  4760. + Add support for detecting the unique features of the OLPC
  4761. + XO hardware.
  4762. +
  4763. +config OLPC_XO1_PM
  4764. + bool "OLPC XO-1 Power Management"
  4765. + depends on OLPC && MFD_CS5535 && PM_SLEEP
  4766. + select MFD_CORE
  4767. + ---help---
  4768. + Add support for poweroff and suspend of the OLPC XO-1 laptop.
  4769. +
  4770. +config OLPC_XO1_RTC
  4771. + bool "OLPC XO-1 Real Time Clock"
  4772. + depends on OLPC_XO1_PM && RTC_DRV_CMOS
  4773. + ---help---
  4774. + Add support for the XO-1 real time clock, which can be used as a
  4775. + programmable wakeup source.
  4776. +
  4777. +config OLPC_XO1_SCI
  4778. + bool "OLPC XO-1 SCI extras"
  4779. + depends on OLPC && OLPC_XO1_PM
  4780. + depends on INPUT=y
  4781. + select POWER_SUPPLY
  4782. + select GPIO_CS5535
  4783. + select MFD_CORE
  4784. + ---help---
  4785. + Add support for SCI-based features of the OLPC XO-1 laptop:
  4786. + - EC-driven system wakeups
  4787. + - Power button
  4788. + - Ebook switch
  4789. + - Lid switch
  4790. + - AC adapter status updates
  4791. + - Battery status updates
  4792. +
  4793. +config OLPC_XO15_SCI
  4794. + bool "OLPC XO-1.5 SCI extras"
  4795. + depends on OLPC && ACPI
  4796. + select POWER_SUPPLY
  4797. + ---help---
  4798. + Add support for SCI-based features of the OLPC XO-1.5 laptop:
  4799. + - EC-driven system wakeups
  4800. + - AC adapter status updates
  4801. + - Battery status updates
  4802. +
  4803. +config ALIX
  4804. + bool "PCEngines ALIX System Support (LED setup)"
  4805. + select GPIOLIB
  4806. + ---help---
  4807. + This option enables system support for the PCEngines ALIX.
  4808. + At present this just sets up LEDs for GPIO control on
  4809. + ALIX2/3/6 boards. However, other system specific setup should
  4810. + get added here.
  4811. +
  4812. + Note: You must still enable the drivers for GPIO and LED support
  4813. + (GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs
  4814. +
  4815. + Note: You have to set alix.force=1 for boards with Award BIOS.
  4816. +
  4817. +config NET5501
  4818. + bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)"
  4819. + select GPIOLIB
  4820. + ---help---
  4821. + This option enables system support for the Soekris Engineering net5501.
  4822. +
  4823. +config GEOS
  4824. + bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)"
  4825. + select GPIOLIB
  4826. + depends on DMI
  4827. + ---help---
  4828. + This option enables system support for the Traverse Technologies GEOS.
  4829. +
  4830. +config TS5500
  4831. + bool "Technologic Systems TS-5500 platform support"
  4832. + depends on MELAN
  4833. + select CHECK_SIGNATURE
  4834. + select NEW_LEDS
  4835. + select LEDS_CLASS
  4836. + ---help---
  4837. + This option enables system support for the Technologic Systems TS-5500.
  4838. +
  4839. +endif # X86_32
  4840. +
  4841. +config AMD_NB
  4842. + def_bool y
  4843. + depends on CPU_SUP_AMD && PCI
  4844. +
  4845. +source "drivers/pcmcia/Kconfig"
  4846. +
  4847. +source "drivers/pci/hotplug/Kconfig"
  4848. +
  4849. +config RAPIDIO
  4850. + bool "RapidIO support"
  4851. + depends on PCI
  4852. + default n
  4853. + help
  4854. + If you say Y here, the kernel will include drivers and
  4855. + infrastructure code to support RapidIO interconnect devices.
  4856. +
  4857. +source "drivers/rapidio/Kconfig"
  4858. +
  4859. +endmenu
  4860. +
  4861. +
  4862. +menu "Executable file formats / Emulations"
  4863. +
  4864. +source "fs/Kconfig.binfmt"
  4865. +
  4866. +config IA32_EMULATION
  4867. + bool "IA32 Emulation"
  4868. + depends on X86_64
  4869. + select BINFMT_ELF
  4870. + select COMPAT_BINFMT_ELF
  4871. + select HAVE_UID16
  4872. + ---help---
  4873. + Include code to run legacy 32-bit programs under a
  4874. + 64-bit kernel. You should likely turn this on, unless you're
  4875. + 100% sure that you don't have any 32-bit programs left.
  4876. +
  4877. +config IA32_AOUT
  4878. + tristate "IA32 a.out support"
  4879. + depends on IA32_EMULATION
  4880. + ---help---
  4881. + Support old a.out binaries in the 32bit emulation.
  4882. +
  4883. +config X86_X32
  4884. + bool "x32 ABI for 64-bit mode"
  4885. + depends on X86_64 && IA32_EMULATION
  4886. + ---help---
  4887. + Include code to run binaries for the x32 native 32-bit ABI
  4888. + for 64-bit processors. An x32 process gets access to the
  4889. + full 64-bit register file and wide data path while leaving
  4890. + pointers at 32 bits for smaller memory footprint.
  4891. +
  4892. + You will need a recent binutils (2.22 or later) with
  4893. + elf32_x86_64 support enabled to compile a kernel with this
  4894. + option set.
  4895. +
  4896. +config COMPAT
  4897. + def_bool y
  4898. + depends on IA32_EMULATION || X86_X32
  4899. + select ARCH_WANT_OLD_COMPAT_IPC
  4900. +
  4901. +if COMPAT
  4902. +config COMPAT_FOR_U64_ALIGNMENT
  4903. + def_bool y
  4904. +
  4905. +config SYSVIPC_COMPAT
  4906. + def_bool y
  4907. + depends on SYSVIPC
  4908. +
  4909. +config KEYS_COMPAT
  4910. + def_bool y
  4911. + depends on KEYS
  4912. +endif
  4913. +
  4914. +endmenu
  4915. +
  4916. +
  4917. +config HAVE_ATOMIC_IOMAP
  4918. + def_bool y
  4919. + depends on X86_32
  4920. +
  4921. +config HAVE_TEXT_POKE_SMP
  4922. + bool
  4923. + select STOP_MACHINE if SMP
  4924. +
  4925. +config X86_DEV_DMA_OPS
  4926. + bool
  4927. + depends on X86_64 || STA2X11
  4928. +
  4929. +config X86_DMA_REMAP
  4930. + bool
  4931. + depends on STA2X11
  4932. +
  4933. +source "net/Kconfig"
  4934. +
  4935. +source "drivers/Kconfig"
  4936. +
  4937. +source "drivers/firmware/Kconfig"
  4938. +
  4939. +source "fs/Kconfig"
  4940. +
  4941. +source "arch/x86/Kconfig.debug"
  4942. +
  4943. +source "security/Kconfig"
  4944. +
  4945. +source "crypto/Kconfig"
  4946. +
  4947. +source "arch/x86/kvm/Kconfig"
  4948. +
  4949. +source "lib/Kconfig"