12.07.2015 Views

IDT WinChip BIOS Writers Guide

IDT WinChip BIOS Writers Guide

IDT WinChip BIOS Writers Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IdtProcessor Family<strong>BIOS</strong> <strong>Writers</strong> <strong>Guide</strong>


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEINTRODUCTION7KH,'7:LQ&KLS3URFHVVRU)DPLO\LVDQ[FRPSDWLEOHSURFHVVRUIDPLO\ZLWKXQLTXHIHDWXUHVDQGUHVWULFWLRQV7KLVJXLGHVKRXOGVHUYHDVDVWDUWLQJSRLQWIRUDQ\%,26SURJUDPPHUVDGDSWLQJWKHLU%,26FRGHWRUHFRJQL]HDQGIXOO\XWLOL]HWKH,'7:LQ&KLS3URFHVVRU)DPLO\&38V7KLVLVQRWDVWDQGDORQHGRFXPHQWLWLVPHDQWDVDFRPSDQLRQWRWKH,'7:LQ&KLS3URFHVVRU)DPLO\'DWD6KHHW7KH'DWD6KHHWSURYLGHVWKHGHWDLOHGLQIRUPDWLRQ7KLVGRFXPHQWGLVFXVVHVWKH,'7:LQ&KLS&DQGPDLQO\WKHYDULRXVYHUVLRQVRIWKH,'7:LQ&KLSZLWKVRPHDGYDQFHLQIRUPDWLRQDERXWWKH,'7:LQ&KLS6RPHSURJUDPPLQJLQIRUPDWLRQKDVFKDQJHGVHHVDPSOHFRGHWRHQDEOHE\WHFRPELQLQJ7KHQHZFRGHLVVWLOOEDFNZDUGFRPSDWLEOHZLWKWKH,'7:LQ&KLS&EXWZLOOQRZVXSSRUWIXWXUHSURGXFWVGENERAL COMPATIBILITY7KH,'7:LQ&KLS3URFHVVRU)DPLO\SURFHVVRUVDUHKLJKO\FRPSDWLEOHZLWKVWDQGDUG§FODVV¨[LPSOHPHQWDWLRQV6RPHPHPEHUVRIWKH,'7:LQ&KLSIDPLO\DOVRVXSSRUWLQGXVWU\FRPSDWLEOHLQVWUXFWLRQVHWH[WHQVLRQVWKDWVSHHGXSFHUWDLQJUDSKLFVRSHUDWLRQV$0''7HFKQRORJ\7KHKDQGOLQJRI60,LVFRPSDWLEOHZLWKWKH,QWHO3HQWLXP3&'LIIHUHQWPHPEHUVRIWKH,'7:LQ&KLSIDPLO\VXSSRUWGLIIHUHQWFORFNVSHHGPXOWLSOHV(DUOLHUPHPEHUVRIWKH,'7:LQ&KLSIDPLO\VXSSRUWPXOWLSOLHUVRIDQG[RQO\7KH:LQ&KLS&DQGHDUOLHUYHUVLRQVRIWKH:LQ&KLSRIIHUQRPHWKRGWKURXJKVRIWZDUHIRUWKHSURJUDPPHUWRGHWHUPLQHWKHFORFNPXOWLSOLHU7KLVVLWXDWLRQZDVUHPHGLHGLQWKH0+]EXVYHUVLRQVRIWKH:LQ&KLS7KHYHUVLRQVFDQEHGLVWLQJXLVKHGWKURXJKWKHXVHRIWKH&38,'LQVWUXFWLRQGHVFULEHGLQDODWHUVHFWLRQ3Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE7KHIROORZLQJWDEOHVXPPDUL]HVWKH,'7:LQ&KLSXVDJHRIWKH%)SLQVDVFRPSDUHGWRWKH3&3OHDVHUHIHUWRWKH'DWD6KHHWIRUPRUHGHWDLOHGLQIRUPDWLRQPinsClock MultiplierBus FrequencyMultipliersFor <strong>WinChip</strong> 2(originalversion)BF2 BF1 BF0 <strong>IDT</strong> <strong>WinChip</strong> 2 Intel P54C1 0 0 2x 2.5 x1 0 1 3 x 3 x1 1 0 2 x 2 x1 1 1 4 x 1.5 x0 0 0 4x0 0 1 5 x0 1 0 4 x0 1 1 5x7KH0+]EXVIUHTXHQF\YHUVLRQWKH,'7:LQ&KLS$VXSSRUWVDGLIIHUHQWVHWRIFORFNPXOWLSOLHUVLQFOXGLQJIUDFWLRQDOPXOWLSOLHUVQRWVXSSRUWHGE\SUHYLRXVYHUVLRQV7KHVHPXOWLSOLHUVDUHVXPPDUL]HGLQWKHIROORZLQJWDEOHPinsClock MultiplierBus FrequencyMultipliers<strong>WinChip</strong> 2A(100MHz Busversion)and <strong>WinChip</strong> 3BF2 BF1 BF0 <strong>IDT</strong> <strong>WinChip</strong> 2A1 0 0 2.5x1 0 1 3 x1 1 0 3.33 x1 1 1 3.5 x0 0 0 4.5 x0 0 1 2.33 x0 1 0 4 x0 1 1 2.66 x4Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE,QWKH:LQ&KLS$WKHPXOWLSOLHULQIRUPDWLRQFDQEHUHDGIURPPDFKLQHVSHFLILFUHJLVWHUV065[$DQG[DVIROORZVRatio MSR 0x147 [26:23] MSR 0x10A [1:0]2.5X 0011b 00b3.0X 0100b 00b3.33X 1000b 01b3.5X 0101b 00b4.5X 0111b 00b2.33X 0101b 01b4.0X 0110b 00b2.66X 0110b 01bRegister SettingsRatio = ( MSR 0x147 [26:23] + 2 ) ÷ ( MSR 0x10A[1:0] + 2 )7KH0DFKLQH6SHFLILF5HJLVWHUV065VDUHQRWFXUUHQWO\FRPSDWLEOHZLWKD3&H[FHSWIRUWKH7LPHVWDPS&RXQWHUPRUHRQWKDWODWHU:KHQDQ,'7:LQ&KLSIDPLO\&38LVUHFRJQL]HGZULWHVWRDQGUHDGVIURP065VVKRXOGEHDYRLGHGZLWKWKHH[FHSWLRQRI065KWKH7LPHVWDPS&RXQWHU7KHUHDUHVRPHSHUIRUPDQFHHQKDQFLQJIHDWXUHVWKDWFDQDQGVKRXOGEHHQDEOHG:ULWHFRPELQLQJZHDNUHDGRUGHULQJDQGOLQHDUEXUVWRUGHULQJDUHVXFKIHDWXUHVGHVFULEHGODWHU$OWKRXJK§00;FRPSDWLEOH¨LQVWUXFWLRQVDUHVXSSRUWHGWKHVWULQJ§00;¨VKRXOGQRWEHGLVSOD\HGZLWKWKHSURFHVVRUQDPH)XUWKHUPRUHWKH§6¨VWULQJWKDW,QWHOXVHVWRLGHQWLI\&38VWKDWVXSSRUW60,VKRXOGQRWEHXVHGHYHQWKRXJK60,LVVXSSRUWHG7KHRQO\LGHQWLILHUVWKDWVKRXOGEHGLVSOD\HGDUHWKHSURFHVVRUQDPHHJ§,'7:LQ&KLS¨DQGDPHJDKHUW]RU35UDWLQJ7KLVPHJDKHUW]UDWLQJLVWKHDFWXDOLQWHUQDOFORFNIUHTXHQF\ZKLOHWKH35UDWLQJLVDVJLYHQLQWKHIROORZLQJWDEOH7KHDFWXDO&380+]VKRXOGEHGLVSOD\HGZKHQHYHUWKHEXVVSHHGLVEHORZ0+]:KHQWKHEXVVSHHGLVHLWKHU0+]RU0+]WKHQWKH35UDWLQJVKRXOGEHXVHG1RWHWKDWWKHVXIIL[§0+]¨VKRXOGQRWEHXVHGDVLQGLFDWHGLQWKHWDEOHVEHORZ5Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE<strong>WinChip</strong> 2APR RatingTableClockSpeedMHzPRRatingMultiplierand BusFrequencyIdentifier200 200 3x66MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 200200 233 2x100MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 233208 233 2.5x83MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 233233 233 3.5x66MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 233233 266 2.33x100MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 266250 266 3x83MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 266250 300 2.5x100MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 300266 266 4x66MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 266266 300 2.66x100MHz <strong>IDT</strong> <strong>WinChip</strong> 2 – 300:LQ&KLSUHSUHVHQWVDVLJQLILFDQWLPSURYHPHQWLQSHUIRUPDQFHRYHUWKH:LQ&KLS7KHQH[WWDEOHVKRZVWKH35UDWLQJVRIWKH:LQ&KLS$JDLQSOHDVHQRWHWKDWQHLWKHU§35¨QRU§0+]¨DSSHDULQWKHLGHQWLILHUVWULQJClockSpeedMHzPRRatingMultiplierand BusFrequencyIdentifier<strong>WinChip</strong> 3PR RatingTable200 233 3x66MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 233233 266 3.5x66MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 266233 300 2.33x100MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 300266 300 4x66MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 233266 333 2.66x100MHz <strong>IDT</strong> <strong>WinChip</strong> 3 – 333285 350 3x95MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 350300 333 4.5x66MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 333300 366 3x100MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 366316 380 3.33x95MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 380333 366 5x66MHz <strong>IDT</strong> <strong>WinChip</strong> 3 – 366333 400 3.33x100MHz <strong>IDT</strong> <strong>WinChip</strong> 3 - 4006Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE<strong>IDT</strong> WINCHIP RECOGNITION7KHILUVWVWHSLVWRUHFRJQL]HWKH,'7:LQ&KLSDQGLWVUHYLVLRQOHYHO%HFDXVHHDFKUHYLVLRQOHYHOFDQKDYHXQLTXHIHDWXUHVERWKVWHSVDUHQHFHVVDU\.&38UHFRJQLWLRQLVDFFRPSOLVKHGWKURXJKWKHXVHRIWKH&38,'LQVWUXFWLRQ7KH&38,'LQVWUXFWLRQRQ,'7:LQ&KLSIDPLO\&38VLVFRPSDWLEOHZLWKWKDWRIRWKHU[FRPSDWLEOHVEXWZLWKDGGHGIXQFWLRQDOLW\5HIHUWRWKH'DWD6KHHWIRUPRUHGHWDLOHGLQIRUPDWLRQRQ&38,':HZLOOVXPPDUL]HRQO\WKHIHDWXUHVZHXVHLQUHFRJQL]LQJDQGZRUNLQJZLWKWKH,'7:LQ&KLS3URFHVVRU)DPLO\&38V2SHUDWLRQRI&38,'%DVLF)XQFWLRQV:Input value: eax: 0Output values:eax: 1ebx: 0x746E6543edx: 0x48727561ecx: 0x736C7561Note that this makes the vendor ID string "CentaurHauls"Input value: eax: 1Output values:eax[3:0] Stepping IDeax[7:4] Modeleax[11:8] Familyeax[31:12] Reservedebx Reservedecx Reservededx Feature flagsThe stepping ID, model, family and feature flags are definedcompatibly. The <strong>IDT</strong> <strong>WinChip</strong> C6 returns an eax value of 0x54z,where z is the stepping number. The <strong>IDT</strong> <strong>WinChip</strong> 2 returns 0x58z.For the original <strong>WinChip</strong> 2, the value of z (the stepping ID) is 0x5 or 0xAand for the 100MHz version, the value of z (the stepping ID) is 7, 8 or 9.The <strong>WinChip</strong> 3 will return 0x59z.7Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE([WHQGHG&38,')XQFWLRQV7KHH[WHQGHGIXQFWLRQVDUHGHVFULEHGLQGHWDLOLQWKH'DWD6KHHW:HZLOOGHVFULEHRQO\WKHRQHZHXVHLQGHWHFWLQJWKH&38W\SHDQGIHDWXUHVHW7KHRULJLQDO,'7:LQ&KLS&VXSSRUWHGRQHH[WHQGHGIXQFWLRQInput value: eax: 0xC0000000Output value:eax: 0xC0000000In other words, the input value must return unchanged. This indicates that onlyC6 features are supported.The input value eax = 0x80000000 will also be returned unchanged for an <strong>IDT</strong><strong>WinChip</strong> C6. This can be used instead of eax = 0xC0000000. For the <strong>IDT</strong><strong>WinChip</strong> 2 and beyond, the input value eax = 0x80000000 produces the followingoutput:eax = 0x80000005 (highest extended cpuid function number)ebx, ecx, edx reserved7KH,'7:LQ&KLSVXSSRUWVVHYHUDOH[WHQGHGIXQFWLRQVLQDGGLWLRQWRWKHRQHGHVFULEHGDERYH7KHVHVKRXOGQRWEHXVHGXQOHVVLWLVSUHYLRXVO\GHWHUPLQHGWKDW\RXDUHUXQQLQJRQDQ,'7:LQ&KLSSHUWKHDERYHInput value: eax: 0x80000001Pertinent output values:eax[3:0] Stepping IDeax[7:4] Modeleax[11:8] Familyeax[31:12] Reservededx[31] 1 if AMD-3D instructions supported0 if AMD-3D instructions not supported7KLVLQIRUPDWLRQFDQEHXVHGWRVHOHFWDQLGHQWLILFDWLRQVWULQJWRGLVSOD\DWERRWWLPH+RZHYHUWKHUHLVDQRWKHUDUFKLWHFWHGPHDQVRIGHWHUPLQLQJWKHFRUUHFWGLVSOD\VWULQJZKLFKPLJKWEHVLPSOHUWRLPSOHPHQWLIWKDWLVDOOWKDWLV8Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEGHVLUHG7KHUHLVDVHWRIWKUHHH[WHQGHG&38,'IXQFWLRQVWKDWUHWXUQVWKHFRUUHFW&38,GHQWLILHU6WULQJ7KH\VKRXOGEHLQYRNHGVHTXHQWLDOO\WRUHDGWKHFRPSOHWH:LQ&KLSLGHQWLILHUInput values: eax: 0x80000002 – 0x80000004 (three values)Output:Returns the name of the processor, suitable for <strong>BIOS</strong> to display on the screen(ASCII). The string can be up to 48 characters in length. If the string is shorter,the rightmost characters are padded with zero. The leftmost characters go ineax, then ebx, ecx, and edx. The leftmost character goes in least significant byte(little endian).For example, the string “<strong>IDT</strong> <strong>WinChip</strong> 2” would be returned by extended functioneax = 0x80000002 as follows:eax = 0x20544449ebx = 0x436E6957ecx = 0x20706968edx = 0x00000032Since the string is only 13 bytes, the extended functions eax = 0x80000003 andeax = 0x80000004 return zero in eax, ebx, ecx and edx. A longer display stringwould require the use of functions eax = 0x80000003 and eax = 0x80000004.CLOCK FREQUENCY DETERMINATION7KHEHVWDOJRULWKPVIRUGHWHUPLQLQJWKHFORFNIUHTXHQF\PDNHXVHRIWKH5'76&LQVWUXFWLRQ7KLVLQVWUXFWLRQ\LHOGVDUXQQLQJELWFRXQWRIWKHQXPEHURISURFHVVRUFORFNVVLQFHSRZHUXS7KLVFRXQWFDQEHUXQDJDLQVWHLWKHURIWZRLQGHSHQGHQWFORFNVLQWKH3&DUFKLWHFWXUH7KHVHWZRFORFNVRXUFHVFDQEHSURJUDPPHGWRJHQHUDWHLQWHUUXSWVDQGWKH76&FRXQWFDQEHFRPSDUHGEHWZHHQWZRVXFFHVVLYHLQWHUUXSWV7KLVFRXQWLVDFFXUDWHHQRXJKWRSODFHWKH&38LQWRRQHRIVHYHUDO§PHJDKHUW]ELQV¨$V\VWHPZLOOJHQHUDOO\VXSSRUWVHYHUDOEXVVSHHGVVXFKDV0+]0+]0+]RU0+]7KHVHIUHTXHQFLHVPXOWLSOLHGE\WKHDYDLODEOHPXOWLSOLHUVRIDQG\LHOGWKHDIRUHPHQWLRQHGPHJDKHUW]ELQ7KHWZRVRXUFHVDUHWKHUHDOWLPHFORFNZKLFKZLOOJHQHUDWHWKHVRFDOOHG§SHULRGLFLQWHUUXSW¨DQGWKHV\VWHPWLPHUWLFNZLWKLWVIUHTXHQF\RIFORVHWRWLPHVSHUVHFRQG9Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEDTLOCK'7/2&.SUHYHQWVWKHWDEOHZDONVWDWHPDFKLQHIURPSHUIRUPLQJDUHDGPRGLI\ZULWHVHTXHQFHRQXSGDWHVWRWKH$FFHVVHGDQG'LUW\ELWVLQWKHSDJHGLUHFWRU\WDEOHV'7/2&.LVFRQWUROOHGE\ELWRIWKH)HDWXUH&RQWURO5HJLVWHU065[7KLVELWPXVWEHVHWWRIRUQRUPDORSHUDWLRQLINEAR BURST MODE/LQHDUEXUVWPRGHLPSURYHVPHPRU\SHUIRUPDQFHLQWKHFDVHVZKHUHWKHILUVWDGGUHVVRIDEXUVWUHDGF\FOHLVQRWDPXOWLSOHRI/LQHDU%XUVW0RGHLVHQDEOHGIRUWKH,'7:LQ&KLSE\VHWWLQJELWRIWKH)HDWXUH&RQWURO5HJLVWHU065[WR7KLVIHDWXUHPXVWEHVXSSRUWHGE\WKHFKLSVHWLQRUGHUWREHXVHG3OHDVHUHIHUWRWKHLQGLYLGXDOFKLSVHWGRFXPHQWDWLRQIRUKRZWRHQDEOHWKLVIHDWXUHTRAIT MODE KEY,IV\VWHPVRIWZDUHLVRQO\FRQFHUQHGZLWKSURJUDPPLQJWKHPHPRU\FRQILJXUDWLRQUHJLVWHUVWKHQLWFDQUHDGWKH0&5B&75/UHJLVWHU065[DQGLQVSHFWWKH7UDLW0RGH.H\ILHOG0&5B&75/>@,QWKH,'7:LQ&KLSDQGODWHUYHUVLRQVRIWKHSURFHVVRUIDPLO\WKH7UDLW0RGH.H\PXVWEHZULWWHQWRWKH7UDLW0RGHFRQWUROILHOG0&5B&75/>@LQRUGHUWRDFWLYDWHWKHPHPRU\FRQILJXUDWLRQUHJLVWHUV6\VWHPVRIWZDUHVKRXOGGHWHUPLQHZKHWKHULWUHFRJQL]HVWKHYDOXHRIWKHWUDLWPRGHNH\EHIRUHZULWLQJLWWR0&5B&75/>@)RUWKH,'7:LQ&KLSDQG:LQ&KLSWKHYDOXHLVE,IWKHYDOXHLVQRWUHFRJQL]HGE\WKHVRIWZDUHWKHNH\PXVWQRWEHZULWWHQWRDYRLGVHULRXVSUREOHPV,QJHQHUDOV\VWHPVRIWZDUHFDQGHWHUPLQHWKHSURFHVVRUYHUVLRQE\ FRPSDULQJ WKH )DPLO\ DQG 0RGHO ,GHQWLILFDWLRQ ILHOGVUHWXUQHGE\WKH&38,'VWDQGDUGIXQFWLRQ($; ,IWKHSURFHVVRUYHUVLRQLVQRWUHFRJQL]HGWKHQV\VWHPVRIWZDUHPXVWQRWDWWHPSWWRDFWLYDWHDQ\PDFKLQHVSHFLILFIHDWXUH10Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE7KHIROORZLQJWDEOHLQGLFDWHVKRZWRLQWHUSUHWWKHUHVXOWVRIERWKPHWKRGV)DPLO\ 0RGHO 7UDLW 0RGH .H\0&5B&75/>@3URFHVVRU9HUVLRQ ,'7:LQ&KLS& ,'7:LQ&KLS ,'7:LQ&KLSWRITE-COMBINING AND WEAK READ ORDERING7KHVHDUHIHDWXUHVWKDWDUHGHVFULEHGLQGHWDLOLQWKH'DWD6KHHW%ULHIO\ZKHQZULWHFRPELQLQJLVHQDEOHGWKH,'7:LQ&KLSZLOODWWHPSWWRDFFXPXODWHPHPRU\ZULWHVRIOHVVWKDQDIXOOGZRUG7KLVUHGXFHVWKHPHPRU\DFFHVVRYHUKHDGDQGLPSURYHVSHUIRUPDQFH7KLVIHDWXUHVKRXOGEHHQDEOHGZKHQWKH,'7:LQ&KLSRUWKH:LQ&KLS&LVUHFRJQL]HG:HDNUHDGRUGHULQJDOORZVUHDGRSHUDWLRQVWREHUHRUGHUHGDKHDGRIZULWHVWRGLIIHUHQWFDFKHOLQHVZKLFKFDQUHVXOWLQGDWDEHLQJDYDLODEOHWRDSURJUDPHDUOLHU7KHDFWXDOLPSOHPHQWDWLRQRIWKHVHIHDWXUHVYDULHVZLWKWKH)HDWXUH6HW/HYHOVRLWLVLPSHUDWLYHWKDWWKLVEHFKHFNHGEHIRUHHQDEOLQJWKHIHDWXUHV7KHVHFRQFHSWVDUHEHWWHUGHVFULEHGLQWKHVDPSOHVRXUFHFRGHEHORZ7KLVLVDYHU\EDVLFDOJRULWKPGHVLJQHGIRUVLPSOLFLW\WRLOOXVWUDWHWKHFRQFHSWV5HILQHPHQWVWRWKLVDOJRULWKPFDQEHPDGHHDVLO\WRDFFRPPRGDWHRWKHUPHPRU\FDSDFLWLHV3OHDVHUHIHUWRWKHGDWDVKHHWIRUPRUHGHWDLOHGLQIRUPDWLRQ$UHDVRILPSURYHPHQWWRWKLVYHU\EDVLFDOJRULWKPPLJKWLQFOXGHEHWWHUVXSSRUWIRUPHPRU\VL]HVQRWDSRZHURIWZRPHJDE\WHV7KHDOJRULWKPVKRZQWUHDWVDQ\WKLQJJUHDWHUWKDQWKHFORVHVWSRZHURIWZRPHJDE\WHVDVQRQZULWHFRPELQLQJVSDFHVRIRUH[DPSOHLIWKHPHPRU\11Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEVL]HLV0%WKHQWKHUHJLRQIURP0%LVQRWHQDEOHGIRUZULWHFRPELQLQJ%HWWHUVXSSRUWIRUWKHVRFDOOHG§26PHPRU\KROH¨LVDOVRSRVVLEOH:KHQHQDEOHGWKLVKROHLVIURP0%7KHVDPSOHDOJRULWKPZLOOFUHDWHDQRQZULWHFRPELQLQJQRQZHDNUHDGRUGHUHGKROHIURP0%1RWHWKHXVHRIFSXLGZLWKHD[ [&WRGHWHUPLQHZKLFK,'7:LQ&KLSLVLQVWDOOHG7KHVDPSOHFRGHZLOODOVRVHWWKH('&7/%ELWLQWKH)HDWXUH&RQWURO5HJLVWHUDVUHTXLUHG1RWHDOVRWKHXVHRIWKH7UDLW0RGH.H\DVGHVFULEHGDERYH6LPSOH6DPSOH$OJRULWKPWR(QDEOH:ULWH&RPELQLQJ; This sample source code is placed in the public domain.; Centaur Technology, Inc. disclaims all warranties, express; or implied, and all liability, including consequential; and other indirect damages, for the use of this source; code, including the warranties of merchantability and; fitness for a particular purpose.; Centaur Technology, Inc. does not assume any; responsibility for any errors which may appear in this; program nor any responsibility to update it.;===========================================================; <strong>IDT</strong> <strong>WinChip</strong> 2 Write Combining Support;===========================================================; base/mask pairs for memory ranges; 0 - 512Kbase_0 equ 00000000000000000000000000000000bmask_512K equ 11111111111110000000000000000000b; 512K 640Kbase_512K equ 00000000000010000000000000000000bmask_640K equ 11111111111111100000000000000000b; 1M - 2Mbase_1 equ 00000000000100000000000000000000bmask_2 equ 11111111111100000000000000000000b; 2M - 4Mbase_2 equ 00000000001000000000000000000000bmask_4 equ 11111111111000000000000000000000b; 4M - 8Mbase_4 equ 00000000010000000000000000000000bmask_8 equ 11111111110000000000000000000000b; 8M - 16Mbase_8 equ 00000000100000000000000000000000b12Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEmask_16 equ 11111111100000000000000000000000bmask_12 equ 11111111110000000000000000000000b; 16M - 32Mbase_16 equ 00000001000000000000000000000000bmask_32 equ 11111111000000000000000000000000b; 32M - 64Mbase_32 equ 00000010000000000000000000000000bmask_64 equ 11111110000000000000000000000000b; 64M - 128Mbase_64 equ 00000100000000000000000000000000bmask_128 equ 11111100000000000000000000000000b; 128M - 256Mbase_128 equ 00001000000000000000000000000000bmask_256 equ 11111000000000000000000000000000b; 256M - 512Mbase_256 equ 00010000000000000000000000000000bmask_512 equ 11110000000000000000000000000000b; 512M - 1024Mbase_512 equ 00100000000000000000000000000000bmask_1024 equ 11100000000000000000000000000000b; 1024M - 2048Mbase_1024 equ 01000000000000000000000000000000bmask_2048 equ 11000000000000000000000000000000b; 2048M - 4096Mbase_2048 equ 10000000000000000000000000000000bmask_4096 equ 10000000000000000000000000000000b; programming table for memory range registers<strong>IDT</strong>_MCR_table label dworddd base_2048dd mask_4096ddddbase_1024mask_2048ddddddddddddddbase_512mask_1024base_256mask_512base_128mask_256base_6413Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEddddddddddddddddddddddddddddddmask_128base_32mask_64base_16mask_32base_8mask_16base_4mask_8base_2mask_4base_1mask_2base_512Kmask_640Kdd -1MCRbaseno equ 110hMCR_CTRL equ 120hMCRvalue equ 1111100000000000000001111bBCRno equ 145hTLOCKbit equ 3;=========================================================;Name : Winchip Memory Features;; ** This routine should be called ONLY AFTER an <strong>IDT</strong>; <strong>WinChip</strong> CPU has been identified;;Function : To enable the <strong>IDT</strong> <strong>WinChip</strong> write combining and; weak read ordering;;Inputs: edi = memory size in MB; bp = 1 if memory hole exists from 15 to 16MB; 0 if not;;=========================================================<strong>WinChip</strong>_Memory_Features Procnear; first assume C6pushad14Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDE; see memory range descriptors for details; bh has trait bits, bl = 0 if C6, 1 if <strong>WinChip</strong> 2; traits=111b, bl=0mov ebx, 11100000000b; now check feature level to see if we understand what to do; we have to skip the programming if we are dealing with the; wrong levelsmov ecx, MCR_CTRLrdmsrand eax, 111b shl 17 ; check [19:17]jz sub_1M ; if 0, it’s C6cmp eax, 1 shl 17 ; if 1, it’s WC2jne No_Memory_Features ;skip if not 1; here if <strong>WinChip</strong> 2; traits to turn on are weak read ordering and byte; combining; traits=10001b, bl=1movebx, 1000100000001bsub_1M:; always set up 0-512K regionmovmovmovorwrmsrecx, MCRbasenoedx, base_0eax, mask_512Kal, bh ;OR in the local trait bits; now calculate offset into table to program the rest of ;the memory range registers; bsr returns the bit index of the highest 1 (largest power; of 2 in the number)bsrnegleaecx, ediecxesi, [8*ecx+offset <strong>IDT</strong>_MCR_table+96]; esi now contains the offsetmovprogram_one_mcr:movecx, MCRbaseno+1edx, cs:dword ptr [si]cmp edx, -1je short mcr_donemovcmpjneeax, cs:dword ptr [si+4]edx, base_8short around_hole_check15Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEor bp, bpjz short around_hole_checkmov eax, mask_12 ; if hole enabledaround_hole_check:oral, bh ;OR in the local trait bitswrmsrmcr_done:add si, 8inc ecxcmp ecx, MCRbaseno+8jb program_one_mcr; finally set up MCR_CTRL; no trait mode control for c2cmov edx, 0mov ecx, MCR_CTRLtest bl, bl ; check for <strong>WinChip</strong> 2jz c2cwc ; if C6; if <strong>WinChip</strong> 2, need to get trait mode control bitsrdmsr ; bits 19:17 trait mode control; isolate these bitsand eax, 111b shl 17shr eax, 11 ; move them to 8:6mov edx, eax ; save the isolated bitsc2cwc:mov eax, MCRvalue ; get control valueor eax, edx ; OR in trait mode controlmov edx, 0 ; prepare to write backwrmsrmovrdmsrorwrmsrecx, BCRnoax, 1 shl TLOCKbitNo_Memory_Features:popadret<strong>WinChip</strong>_Memory_Features endp16Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99


Preliminary InformationJanuary 1999<strong>IDT</strong> <strong>WinChip</strong> 2 TM <strong>BIOS</strong> WRITERS GUIDEMCR ControlRegister(MCR_CTRL)MSR 0x120SYSTEM SOFTWARE CONSIDERATIONS0RVWRIWKHWLPHWKHV\VWHP%,26ZLOOVHWXSWKHPHPRU\FRQWUROUHJLVWHUVDVVXJJHVWHGLQWKHVDPSOHFRGHDERYH,IV\VWHPVRIWZDUHVXFKDVWKHRSHUDWLQJV\VWHPRUGHYLFHGULYHUVZLVKWRUHSURJUDPDQ\RIWKHPHPRU\FRQWUROUHJLVWHUVFHUWDLQVWHSVPXVWEHWDNHQWRDYRLGFRQIOLFWVDQGXQSUHGLFWDEOHEHKDYLRU7KHUHLVDILHOGRIELWVLQWKH0&5&RQWURO5HJLVWHU065[7KHVHELWVLQGLFDWHZKLFKPHPRU\FRQWUROUHJLVWHUV0&5VDUHLQXVHZLWKQRQ]HURWUDLWV7KHIROORZLQJWDEOHGHVFULEHVWKHUHOHYDQWELWVRIWKH0&5&RQWURO5HJLVWHUBit Description Default Notes9 MCR 0 in use0: MCR0[4:0] attributes is all zero1: MCR0[4:0] attributes is non-zero0 Read-Only(RO)10 MCR 1 in use (see MCR 0) 0 RO11 MCR 2 in use (see MCR 0) 0 RO12 MCR 3 in use (see MCR 0) 0 RO13 MCR 4 in use (see MCR 0) 0 RO14 MCR 5 in use (see MCR 0) 0 RO15 MCR 6 in use (see MCR 0) 0 RO16 MCR 7 in use (see MCR 0) 0 RO$]HURLQDQ\SRVLWLRQLQGLFDWHVWKDWWKDW0&5LVXQXVHG7KLVPHDQVWKDWDV\VWHPSURJUDPPHUIRUH[DPSOHDYLGHRGHYLFHGULYHUZULWHUPD\HQDEOHPHPRU\WUDLWVIRUDVSHFLDOPHPRU\EXIIHU7KHWUDLWVDUHDGGLWLYHLIWKHUHDUHRYHUODSVLQUHJLRQV7KLVFDQFDXVHXQSUHGLFWDEOHEHKDYLRULQFDVHRIUDQJHRYHUODSV,QGHEXJJLQJVXFKSUREOHPVWKHEHVWWKLQJWRGRLV]HURDOORIWKH0&5VILUVW17Version 0.91 CENTAUR TECHNOLOGY CONFIDENTIAL 01/27/99

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!