From 45cc550c3ab24e6c68fd0f9dd5ea2f96cf9afc38 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Fri, 6 Mar 2009 19:54:15 +0000 Subject: [PATCH] Some updates for core/core duo/core2/core2 duo cpus. The microcode is from Intel's Linux microcode file, so it's unproblematic. Signed-off-by: Stefan Reinauer Acked-by: Peter Stuge git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3983 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/cpu/intel/model_6ex/model_6ex_init.c | 94 +++++- src/cpu/intel/model_6fx/microcode_m206f257.h | 291 +++++++++++++++++++ src/cpu/intel/model_6fx/microcode_m206f6c7.h | 291 +++++++++++++++++++ src/cpu/intel/model_6fx/model_6fx_init.c | 146 +++++++++- 4 files changed, 817 insertions(+), 5 deletions(-) create mode 100644 src/cpu/intel/model_6fx/microcode_m206f257.h create mode 100644 src/cpu/intel/model_6fx/microcode_m206f6c7.h diff --git a/src/cpu/intel/model_6ex/model_6ex_init.c b/src/cpu/intel/model_6ex/model_6ex_init.c index 169b908901..6ecaca6d15 100644 --- a/src/cpu/intel/model_6ex/model_6ex_init.c +++ b/src/cpu/intel/model_6ex/model_6ex_init.c @@ -52,6 +52,76 @@ static void fill_processor_name(char *processor_name) strcpy(processor_name, processor_name_start); } +#define IA32_FEATURE_CONTROL 0x003a + +#define CPUID_VMX (1 << 5) +#define CPUID_SMX (1 << 6) +static void enable_vmx(void) +{ + struct cpuid_result regs; + msr_t msr; + + msr = rdmsr(IA32_FEATURE_CONTROL); + + if (msr.lo & (1 << 0)) { + /* VMX locked. If we set it again we get an illegal + * instruction + */ + return; + } + + regs = cpuid(1); + if (regs.ecx & CPUID_VMX) { + msr.lo |= (1 << 2); + if (regs.ecx & CPUID_SMX) + msr.lo |= (1 << 1); + } + + wrmsr(IA32_FEATURE_CONTROL, msr); + + msr.lo |= (1 << 0); /* Set lock bit */ + + wrmsr(IA32_FEATURE_CONTROL, msr); +} + +#define PMG_CST_CONFIG_CONTROL 0xe2 +static void configure_c_states(void) +{ + msr_t msr; + + msr = rdmsr(PMG_CST_CONFIG_CONTROL); + msr.lo &= ~(1 << 9); // Issue a single stop grant cycle upon stpclk + + // TODO Do we want Deep C4 and Dynamic L2 shrinking? + wrmsr(PMG_CST_CONFIG_CONTROL, msr); +} + +#define IA32_MISC_ENABLE 0x1a0 +static void configure_misc(void) +{ + msr_t msr; + + msr = rdmsr(IA32_MISC_ENABLE); + msr.lo |= (1 << 3); /* TM1 enable */ + msr.lo |= (1 << 13); /* TM2 enable */ + msr.lo |= (1 << 17); /* Bidirectional PROCHOT# */ + + msr.lo |= (1 << 10); /* FERR# multiplexing */ + + // TODO: Only if IA32_PLATFORM_ID[17] = 0 and IA32_PLATFORM_ID[50] = 1 + msr.lo |= (1 << 16); /* Enhanced SpeedStep Enable */ + + // TODO Do we want Deep C4 and Dynamic L2 shrinking? + wrmsr(IA32_MISC_ENABLE, msr); + + msr.lo |= (1 << 20); /* Lock Enhanced SpeedStep Enable */ + wrmsr(IA32_MISC_ENABLE, msr); +} + +#if CONFIG_USBDEBUG_DIRECT +static unsigned ehci_debug_addr; +#endif + static void model_6ex_init(device_t cpu) { char processor_name[49]; @@ -66,13 +136,35 @@ static void model_6ex_init(device_t cpu) fill_processor_name(processor_name); printk_info("CPU: %s.\n", processor_name); +#if CONFIG_USBDEBUG_DIRECT + // Is this caution really needed? + if(!ehci_debug_addr) + ehci_debug_addr = get_ehci_debug(); + set_ehci_debug(0); +#endif + /* Setup MTRRs */ x86_setup_mtrrs(36); x86_mtrr_check(); - + +#if CONFIG_USBDEBUG_DIRECT + set_ehci_debug(ehci_debug_addr); +#endif + /* Enable the local cpu apics */ setup_lapic(); + /* Enable virtualization */ + enable_vmx(); + + /* Configure C States */ + configure_c_states(); + + /* Configure Enhanced SpeedStep and Thermal Sensors */ + configure_misc(); + + /* TODO: PIC thermal sensor control */ + /* Start up my cpu siblings */ intel_sibling_init(cpu); } diff --git a/src/cpu/intel/model_6fx/microcode_m206f257.h b/src/cpu/intel/model_6fx/microcode_m206f257.h new file mode 100644 index 0000000000..96977667b5 --- /dev/null +++ b/src/cpu/intel/model_6fx/microcode_m206f257.h @@ -0,0 +1,291 @@ +//+++ +// Copyright (c) <1995-2008>, Intel Corporation. +// All rights reserved. +// +// Redistribution. Redistribution and use in binary form, without modification, are +// permitted provided that the following conditions are met: +// .Redistributions must reproduce the above copyright notice and the following +// disclaimer in the documentation and/or other materials provided with the +// distribution. +// .Neither the name of Intel Corporation nor the names of its suppliers may be used +// to endorse or promote products derived from this software without specific prior +// written permission. +// .No reverse engineering, decompilation, or disassembly of this software is +// permitted. +// ."Binary form" includes any format commonly used for electronic conveyance +// which is a reversible, bit-exact translation of binary representation to ASCII or +// ISO text, for example, "uuencode." +// +// DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT +// HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//--- +/* Wed Sep 10 11:53:28 CST 2008 */ +/* 2129-m206f257.inc */ +0x00000001, 0x00000057, 0x03152007, 0x000006f2, +0x07e77759, 0x00000001, 0x00000020, 0x00000fd0, +0x00001000, 0x00000000, 0x00000000, 0x00000000, +0xf0aefac0, 0x7c38e188, 0xba5a013f, 0xdfb167bf, +0x3c3fed5c, 0x9a7527d0, 0x7f3ae5a3, 0x8ab688d1, +0x348436ab, 0xdc4756d5, 0xfc2a0a22, 0x9f11b7bf, +0xa47e1335, 0xc1e04f7c, 0xdaaf86cf, 0xa870c161, +0x072e2279, 0x87ee60b8, 0x3e4b0622, 0x326b4d89, +0x0652f8e1, 0x2ea0c801, 0xbeaa5953, 0xdc1b6573, +0x701f392e, 0xed0630f9, 0xbc9b3dfa, 0x1640fe65, +0x571a23c1, 0x9d913021, 0x895d7d30, 0xd2d2d7d4, +0xd605ed58, 0x254a7575, 0x0cac66a8, 0xcfe8bbe5, +0xcdd30390, 0xbb2236d2, 0x4c5c5bee, 0x5aee0bec, +0xc7ccb2ce, 0x02e4a983, 0xc5920bf7, 0x4ce10d1f, +0x3fc17820, 0xda1b4e54, 0x3de20b4d, 0x5ff322d2, +0xd6de8959, 0xe35d9fbb, 0x7b450c74, 0xcdc09449, +0x25bb7745, 0x056e0ec0, 0x05c27088, 0xeece366b, +0xd99a08bd, 0xbf7aa5ff, 0xb99fb54a, 0x1e620294, +0x5498c8b6, 0x7e9feeb8, 0x0bd593db, 0x9ae9d723, +0xaf9ef586, 0xcf6b95a7, 0x8eb34bd2, 0x378c817a, +0xc0a0b5a8, 0xd92c8ec3, 0x756277de, 0x6c023ab6, +0x982be06c, 0xb8a70610, 0x7f5a8718, 0xa677cfa8, +0x2e7ade57, 0x3978eec5, 0xc34a97d1, 0x37733521, +0x5692ce95, 0x7b9fc090, 0x0d111e36, 0x6d9fb551, +0xc48f3b9e, 0x6a1b2dfc, 0x8ba4b179, 0xb00f6962, +0xfa149366, 0xbb1dc1b3, 0x23a921c0, 0xb96d73b7, +0xcd4dc6da, 0xfc5e8abb, 0xdb5fe0f2, 0xcb33f9dc, +0xaf75f866, 0x3dfd2478, 0xe7a5b475, 0x54a611b2, +0x73994c7d, 0x161b27bc, 0x7f810ba5, 0x8dd5733c, +0x72fe4c72, 0x2e76dbe3, 0x9f9f0c64, 0x0e21bdbd, +0x4331bf86, 0x879b1ddc, 0x40c84fce, 0x7c5d11c0, +0x3faf10ab, 0x3550eae6, 0x26996e67, 0x00ef27d2, +0xccda83ed, 0x11030e92, 0x757074d7, 0xc5a517dd, +0xfc3e7fd4, 0xc16d81ed, 0x9044cd87, 0x2d099580, +0xb25b9d47, 0x5b610359, 0x0e59eeb5, 0x7d19f029, +0x4cf9706f, 0x0f5c8597, 0xecf7aedb, 0x86d1ee8b, +0x2c85f041, 0x3015ac75, 0xa0db24d8, 0xa9f07271, +0xb78ec67e, 0xeca00670, 0xf7d05fe5, 0xdff30312, +0x6ae19969, 0x63375a04, 0x466a01f5, 0xc171c0da, +0x93ce8528, 0x703c1aed, 0xcd42cced, 0x32819c8d, +0xeb642286, 0x72723b25, 0x86c46d68, 0xb64d3c67, +0x3d3bb64c, 0x60eaf2be, 0x924b7f3d, 0x0bb38768, +0xaf2deef9, 0x2fa43b64, 0xdb0823ee, 0x7ddb339c, +0xea1cbf8a, 0xb19895d0, 0x1d6fd197, 0xb9a9343e, +0x31ce5f2e, 0x9399fc36, 0x14d6f1dd, 0xdd6ed0ac, +0xd9e8f45a, 0x56dba12c, 0xf5ef138a, 0x981a6eaf, +0x74fe5839, 0x370aab6a, 0x717df9f6, 0xa4dbc8d1, +0x3c665e8a, 0x07711522, 0x58911dfd, 0x9276384e, +0x70dd2327, 0x2613f4ad, 0x67043d57, 0x085bc73e, +0x13399b60, 0x28b0d7e3, 0xc7101b20, 0xa29550aa, +0x8177a1dc, 0x5bcc83b2, 0x1cf50fbc, 0x448c109a, +0x09288db1, 0x1700bdcf, 0xa119bf8e, 0xdaeb3c27, +0xf21a1004, 0x3490c7e4, 0x6562906d, 0x732225be, +0x4ca41b48, 0x9807ec37, 0x82c2c81a, 0x182ae052, +0x337f2a6c, 0x177a866f, 0xb0397a1e, 0x8aa9e3d2, +0xb596cae5, 0x52630925, 0x069e969f, 0xb8a6cf5d, +0xe206c823, 0x95768639, 0xeb9ef6c1, 0xdc879822, +0x805b7540, 0xdbdca41e, 0x92daf8aa, 0x2855131d, +0x98537e07, 0xf9f437ff, 0x4fd88be0, 0x07cadd26, +0x61c5f34a, 0xbb6a19cd, 0xc113d97e, 0xc2097fa8, +0x93df4c5c, 0x71f49496, 0xeeb280b9, 0xd8b31a12, +0x8c68fe2a, 0x6c85e6c5, 0x665d8833, 0xbf7ca2d8, +0x8ec9d5fb, 0x2d8ada4b, 0x1112da86, 0x1eadb344, +0x72bb72b4, 0x1146c42e, 0x9c4a1796, 0x103a8aa2, +0x4e22694d, 0xdabb9fb9, 0xa643d98b, 0xa1e82adb, +0x5e1f20ec, 0xc1179fc2, 0xdf5791d1, 0x1071ced5, +0x940a595b, 0x9d575c0c, 0x572a6eb6, 0x68866e0b, +0x2cc54642, 0xa0b47fe9, 0xd53f7591, 0x40c57980, +0x7e927dfc, 0xad644a5e, 0x2f6b3a0a, 0xb4c788d4, +0x59131505, 0xdf982aa7, 0x7eed9890, 0xc7a79316, +0xa390c1e8, 0xb6a81315, 0x8b6ecc2f, 0xa18d162e, +0xa96a54a1, 0xf9801a9e, 0x763aa20d, 0xfcba9e42, +0x1d8f9e51, 0xb63608fe, 0xd0bca8d5, 0xc05b6fc3, +0x1dabad44, 0x864011c5, 0x92a94ac3, 0x7e2bdb44, +0xf1e0e0a4, 0x4e988af4, 0x51934b03, 0xc2eb8a5d, +0xf58b0dfe, 0x88c9c264, 0xe81e0809, 0xb3087c8c, +0x1f0cdd31, 0xcab43925, 0x02120053, 0xd4d308cb, +0x5727a77a, 0xc0a58a07, 0x45b8004e, 0x4b887559, +0xd5a6cfbd, 0x096d6b43, 0x8f7c3cf9, 0x10a9f009, +0x8b55e8c8, 0x286cd461, 0x5d340d0f, 0x2e071f42, +0x3c156062, 0x4a2ba5ed, 0x466f979d, 0x36ad6534, +0x432a28d6, 0x23dd3681, 0xb782ecfd, 0x4ac65284, +0x190c3fe3, 0x32371293, 0x1b4a968c, 0x4d140c3b, +0xe9602892, 0xaa61bb7f, 0x87d82028, 0x833b076d, +0xf5dfc16a, 0xe7e7e8cc, 0x9b9b123d, 0xe55f7f06, +0x019ca425, 0x8c2ad978, 0x6e53312e, 0x4c68cc59, +0x1505573b, 0xe50246c3, 0xe13f8925, 0xb40d8c6a, +0x6df7688e, 0x64ddc299, 0xfa2de5ee, 0x8e22c09b, +0xfc43e080, 0x27bdf731, 0xbd811f19, 0x50eb4114, +0x33aefa80, 0x0dd5a922, 0xcb087d89, 0xf594aaaf, +0x469590d5, 0xc2610f7e, 0x357f27f1, 0xe30b5697, +0x744a47d4, 0x18703bcc, 0xbd00cbb4, 0x859b13b1, +0x83259929, 0x71700966, 0xa6586c05, 0x70a61cb9, +0x67af2d49, 0xbc1a3e58, 0xf6f3b5c7, 0x916983f3, +0x3b99438f, 0x993ea084, 0xd2e842ab, 0xaae24c93, +0x38902c9c, 0xcdcaa742, 0x1407900f, 0x4fa9a83f, +0x0d87845e, 0x3dab31dc, 0xd1f773ee, 0x0b5181b9, +0x0dd327f1, 0x9de29e99, 0x11d78ea2, 0xc66b0639, +0xc97fae80, 0xd352bbe1, 0xfc19afbc, 0x713381a9, +0x51b9502a, 0x355de567, 0x040ee678, 0xf4085bdf, +0xc8b52da4, 0x7b851dfd, 0x94f53879, 0x936c3596, +0x005b0eda, 0xb17d6d52, 0xf576900a, 0x99234c3d, +0xdd2388f3, 0x3920a2eb, 0xce320776, 0xbaa6bb20, +0x82ccef09, 0x15f3fa80, 0x30e218d5, 0x9f7c35f6, +0xfc422ad6, 0x697ba237, 0xe9bd989a, 0x20573da5, +0x526140be, 0x54023897, 0xd9ff4fbe, 0xee0c4495, +0xe62410a3, 0x5150c878, 0x9a2c671c, 0xf76de5ad, +0xd3eb74b4, 0x0688ec67, 0x7d4f12b3, 0x4fcbeb96, +0x81b9489b, 0x257b67a2, 0x0538b984, 0x4aeb1a19, +0xb3632b9f, 0x42148957, 0x71801f3e, 0x3ed494f4, +0xe1591118, 0xa4542eeb, 0xca3d0445, 0x03b948a9, +0x767a31b4, 0x090f62e1, 0x701890e7, 0x1cdf23f4, +0xaba00984, 0x1b42b0e0, 0xb5369d19, 0x0e582a3d, +0x079fc09d, 0x0a6b1256, 0x166e21c0, 0x4dfbf861, +0x68d90df7, 0x1392544f, 0x52e420f2, 0xaa437eb1, +0x355fe827, 0x5e5a497f, 0xb06b9003, 0x118c85ed, +0x7c8b1f9b, 0x710f30bf, 0xf42ad4e0, 0x70a17971, +0x3321840d, 0xebf2f3ca, 0x6820d080, 0xe5987997, +0xf1bcc9b5, 0x9357765e, 0x317884cf, 0x3449efff, +0x641d249c, 0x8dae0eec, 0xa5db1774, 0x1c06f4c6, +0x0dbd7c38, 0x18dd265a, 0x206eed23, 0x1b1f3780, +0x4e6b063c, 0x07169a13, 0x1b16ed6e, 0x87de6f65, +0xfe05eeca, 0xd3e6958f, 0xef53638e, 0xb8fa5b3a, +0xed4aa69c, 0xf229c96b, 0x922efea9, 0xf2e9f8d6, +0x7626207d, 0xac94bddd, 0xa055f4d1, 0x7cf49e93, +0xb68191fd, 0x5d1e0522, 0xb778bc1a, 0x667773ab, +0x0547d582, 0xb990ca6f, 0xae44199e, 0x090f8cbb, +0x66909346, 0x990b0a60, 0x866f804e, 0xafb29f1d, +0x85635204, 0x5531bc16, 0x766099af, 0x3128bdc5, +0x564838ac, 0x0f6a5d39, 0xc560f67b, 0xc7820c23, +0x05bb1328, 0x6f9484ee, 0x319809ab, 0xc0dead11, +0x30928a58, 0xcea6f365, 0xae4c63e2, 0x375bb2f5, +0x0d7b1cdb, 0x6777d042, 0x70d56f28, 0xa67ebccb, +0x1f02a61b, 0x148f5044, 0xa2ff3cd5, 0xdacfcf0e, +0xcec94c27, 0xee4af516, 0x0cddc248, 0x018cda30, +0x9d70143d, 0x197a6a8e, 0x6f651d33, 0x6faa4e8e, +0x8ebf8215, 0xead609df, 0xfd2f388b, 0xccb70ecc, +0x4a670925, 0xdd621f46, 0xb9e0bae9, 0xc9937471, +0x0a4232eb, 0xc7ba26cb, 0x8c3a7e17, 0xcef032c2, +0x73b75440, 0xcca87896, 0xb544c0d8, 0xcadfa89e, +0x3392961d, 0x5d99f95a, 0x00974612, 0xc5b871c6, +0x9336a0b2, 0x9dc01d28, 0xcf6f39e6, 0x847c7351, +0x0b990971, 0x70184dd8, 0xe5257c82, 0x721e7ef4, +0x8922a618, 0xacc61d52, 0xa31cb090, 0xec6e46bf, +0x0e22d152, 0x88c3a2f8, 0xd4cb10f6, 0x1e2bd43f, +0x67d26f37, 0xf6a2b4d3, 0xd4229cef, 0x89626856, +0x81400377, 0xa80b84d0, 0x1f5b6e64, 0xb5def54f, +0x8db7711e, 0x69b7f916, 0x1d3dda64, 0xe5c6d920, +0x6b3459ab, 0x5dc96ae2, 0x083308d7, 0xfa84b8a6, +0xb8f0a688, 0xa806c32f, 0x04d3a1a8, 0x58f5f04c, +0xf0233835, 0x7f5cb42f, 0x5eceef54, 0x577374c5, +0x51aa783b, 0x8ffe6da8, 0xc118f745, 0xe881675f, +0xb1e02bf3, 0x63db76ef, 0x8b0848ac, 0x0e0573ec, +0x1d4fc251, 0xf430354c, 0x38b5b60e, 0x0c942f9c, +0x67f1905c, 0x7428f8b0, 0x79297d7e, 0xa93f388c, +0x051e8616, 0x48e03984, 0x04d97406, 0x7413b6d4, +0x6a3f6f8d, 0xfaed5a44, 0xdc89c0a1, 0x1b2611d1, +0x21ca7dd6, 0x9c9d1448, 0xab3687c2, 0xc275130d, +0xbeec53d3, 0x93e05b62, 0xd164a9d6, 0x1418ada5, +0xcbb235da, 0x01cde834, 0x16d895fb, 0x5d916eeb, +0x2f8a4045, 0x671dd425, 0xab40ec3b, 0xed3eefda, +0xc1a93fd2, 0x348066fe, 0x538e9697, 0x3a73512a, +0x0eded14d, 0x7cc7085a, 0x1a769924, 0x8e11533c, +0xb961df1e, 0x73db50a8, 0xfe625496, 0x79b0bef6, +0x712f024b, 0x997a8bd8, 0x3009ce33, 0x38a922fa, +0x2f1b74d9, 0x70342c80, 0x587b1639, 0x9f02fd01, +0x5c8c4977, 0x6b0d1be1, 0xed9fb8fe, 0x0d1c9fa4, +0x3e51d08a, 0x2ecdd796, 0x71768e1b, 0x803c8b2d, +0xc009ac20, 0x242dc6ee, 0x6c9cfe25, 0x8cd3dbc4, +0xb35832db, 0x4613ba88, 0xab1274dd, 0xda19e833, +0x49c0fb40, 0xeb37ba33, 0xdf06e975, 0x90ad6d1b, +0x8aef380d, 0xa4cfb894, 0x107819ab, 0x01f89df1, +0x1ea242cc, 0x17626b76, 0x9568d1a8, 0x3e584238, +0x9c0ba10f, 0x3de6d8b8, 0xbcff277e, 0x94ba4d60, +0x24f88a80, 0x7d336afe, 0x04f4af38, 0xa435ae27, +0x82c5de40, 0x28b78b43, 0x5f4f3836, 0x809d1a13, +0xdb95ee3a, 0xacc8e9b4, 0xd0d6cf98, 0x9ba813cc, +0x6e89a462, 0x2afbe3c3, 0x5d662eef, 0x5365d477, +0x98bd0b86, 0x81c1601f, 0x15cd7693, 0x8b3d7ef9, +0xaf25331e, 0x49c24e40, 0xe6e8a26c, 0x0f083b65, +0xdcaa15a9, 0x26101687, 0x9dd1cad9, 0x80a9b15b, +0xac16e5e1, 0xb85861bd, 0x78c59bbe, 0x284648f0, +0x1f1af2cf, 0xbb834fbf, 0xd7d71460, 0xcf44c671, +0x573bd611, 0x76e94cde, 0x17c03286, 0x02621543, +0x705d0c85, 0x2b6d6b0f, 0xa8f17a22, 0xbde3ed1e, +0x09afd9cc, 0xf84955f8, 0xa7d1dabb, 0x82343b59, +0xa3fbc5f1, 0xfcdce701, 0xd600158c, 0x71262e33, +0xcb257268, 0xf3f17de9, 0x257ec37e, 0x366552f6, +0xd39c706d, 0x1372a7ef, 0x84fb48ea, 0xf1c4776a, +0x182f548f, 0xa5499971, 0x488e7904, 0x4167ba8d, +0x796aa238, 0x41eedf0e, 0xe65e7ffc, 0x7352ab66, +0x7ea8d981, 0x93c717f5, 0xc8124404, 0xa7447a65, +0x231dd863, 0x17581b25, 0xd10a9250, 0x5807994a, +0x12b18ae5, 0x80d03bbb, 0x7595c1b1, 0x6e878a42, +0xbc2db045, 0xde5c7e5d, 0x8f096855, 0x82dc150c, +0x7afd3dca, 0xf274e65a, 0x2abbe67f, 0x0145568c, +0x014dba37, 0x9a182028, 0xd71618ac, 0xc87934bd, +0xe96101d1, 0x55d1976c, 0x471c8505, 0x7a36d839, +0x5d62a9ee, 0xf3c54a8a, 0xa2be15d9, 0x244087c9, +0x042c8037, 0x23224689, 0x281c5d73, 0x2139ecfc, +0xffb8bc8a, 0x834fdd11, 0x9cd5a5bd, 0xa3368319, +0x7e5bef0c, 0x4ae2dbda, 0x86d90089, 0x6675dfce, +0x48876262, 0xcec72538, 0x11dc5c80, 0x86a730f9, +0x313565c9, 0xe3e5be11, 0x106d7cce, 0x752b8be2, +0x3d00a5bc, 0xe6f70e95, 0x44447ac8, 0x600df30c, +0x8335ac3b, 0x8816ddee, 0x700982fe, 0xee495741, +0x48c7e81c, 0xa3d55da2, 0xb0172982, 0x70ab2158, +0xd4460621, 0x3a9e528b, 0x59b18a7b, 0xf4dabc4c, +0xa8454763, 0x70877bb6, 0x66005c97, 0xaf292c06, +0x7b843db1, 0xf343b59b, 0x25cdc7b5, 0xa41da617, +0x9e9d895e, 0xc936f475, 0x7270925a, 0x30024230, +0x8e72f53d, 0x2b6c1b6f, 0x1a69732c, 0x7ed5aff5, +0xfc18a2a3, 0xaf377cc1, 0xbff09a78, 0x4b4e0814, +0x95a0b2c1, 0x270398de, 0x201fca94, 0x2a032a4f, +0x131542b4, 0x0d7306da, 0x2d1c3496, 0xcc3c6d8d, +0xa814ddc9, 0xa3b3a991, 0x17ee60c2, 0x852c0b8d, +0x11e5853a, 0x762002a7, 0x92c5311d, 0x0d4bf7e1, +0xfffec870, 0xe3d35e5b, 0xff6ecfb9, 0xdedae6ff, +0x0111a772, 0x9808e780, 0x29c336e8, 0xe9bc05df, +0x5bedde11, 0x945565af, 0xaff808fe, 0x87e3423d, +0x4de6f98f, 0x93b4adef, 0xbf704fa4, 0x09120e91, +0xd54f3692, 0xdf8eab1e, 0xfabbf59c, 0xe74318be, +0xaab87ffc, 0x29fa791c, 0xe3915552, 0xa652cb9b, +0xa1252e74, 0xb35b723b, 0x542aa28b, 0x12fcc5b0, +0x3941f962, 0x82bcc6cc, 0x47b11974, 0xb821611f, +0x78b34250, 0xf1be5659, 0x561b9e61, 0x6f3bd501, +0x584e6f5c, 0xd54ed547, 0xacebcd21, 0x7b5ff816, +0xb64ad233, 0x9f2f330d, 0x69fb1ece, 0xac8710dd, +0x58dc6c60, 0x9bee6139, 0xbb10ad0e, 0xbd8cd5dd, +0xebc0ce9d, 0xa733274f, 0x884d9b55, 0x42b08b63, +0xafa54a74, 0x1c7ccf64, 0x93a20191, 0xaaa3132e, +0xc69831d1, 0x54634889, 0xfbfe3efc, 0xd3cf68d4, +0x302e3117, 0xf5693131, 0xc3ce8c6c, 0x1f03cd89, +0x6243334c, 0xf16bc80f, 0xdca5f130, 0xcb2cd956, +0x4c1bb421, 0xe8de533c, 0x7f86703a, 0x29aa897e, +0xdd54acad, 0x76b2f2ae, 0x7ef82b71, 0x2e30970b, +0xba402597, 0x9a653ab4, 0xd68fcf53, 0x2d9f0d15, +0x7f9efd1c, 0x2363d147, 0x5327289a, 0xe89229f3, +0xd63a535c, 0x7efe9273, 0x64f2e3a3, 0x9bdf65a7, +0x26b6edfb, 0x1b9c7bfe, 0x5d14b3de, 0x54d575fb, +0x6d65db4c, 0x95648b7f, 0xa8a3b8f0, 0x7cc7ad46, +0xe20e6dbb, 0x8488a45f, 0x8ebc2932, 0xd4767316, +0x3e8c4b8a, 0xbab7402c, 0xfc1e217e, 0xe5c5bf82, +0x6928fe2e, 0xc88528e9, 0x4b2e4e8f, 0xdd938b86, +0x0c964f98, 0xfc88d480, 0x35fcaf9e, 0xdd7bbe9d, +0x197d005a, 0x4d40b3b3, 0xcf203155, 0x0d2fa621, +0x752d2c58, 0xb12bac12, 0x1e7e8c23, 0x94215d54, +0x9854a71c, 0x4de63c64, 0x7a012529, 0x9c171f8d, +0x9e71def7, 0x3bd17d50, 0x11f175d9, 0xec78abf3, +0x7b529eee, 0xd3a69fc3, 0x5b718676, 0x58214d29, +0xa8bd2c34, 0x41ea00ab, 0xa03f64d6, 0x4ee342b0, +0x32b1e444, 0x1c1801a4, 0xc8424702, 0x334a7e35, +0x50cf1543, 0x3b22b495, 0x88683776, 0x8e2e0154, +0x6155c033, 0x4e2fa6ac, 0x42ace700, 0x8d64f97c, +0xaf9ced17, 0xb2a5cb92, 0xa558582d, 0x88705de7, +0x9e528d59, 0x84bd45e4, 0x5cb680c0, 0xcd48fa5c, diff --git a/src/cpu/intel/model_6fx/microcode_m206f6c7.h b/src/cpu/intel/model_6fx/microcode_m206f6c7.h new file mode 100644 index 0000000000..12e58b2166 --- /dev/null +++ b/src/cpu/intel/model_6fx/microcode_m206f6c7.h @@ -0,0 +1,291 @@ +//+++ +// Copyright (c) <1995-2008>, Intel Corporation. +// All rights reserved. +// +// Redistribution. Redistribution and use in binary form, without modification, are +// permitted provided that the following conditions are met: +// .Redistributions must reproduce the above copyright notice and the following +// disclaimer in the documentation and/or other materials provided with the +// distribution. +// .Neither the name of Intel Corporation nor the names of its suppliers may be used +// to endorse or promote products derived from this software without specific prior +// written permission. +// .No reverse engineering, decompilation, or disassembly of this software is +// permitted. +// ."Binary form" includes any format commonly used for electronic conveyance +// which is a reversible, bit-exact translation of binary representation to ASCII or +// ISO text, for example, "uuencode." +// +// DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT +// HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//--- +/* Wed Sep 10 11:53:28 CST 2008 */ +/* 2127-m206f6c7.inc */ +0x00000001, 0x000000c7, 0x03152007, 0x000006f6, +0xd863aca5, 0x00000001, 0x00000020, 0x00000fd0, +0x00001000, 0x00000000, 0x00000000, 0x00000000, +0xf135893c, 0x4c42e3f3, 0xb73a55b6, 0x351ee5de, +0xb62b15d8, 0xa4b7a683, 0x15e59363, 0xb5a88344, +0x83cb3484, 0x27b18c8d, 0x94d04ac1, 0x8f1f77db, +0x13b4b7fe, 0xa649fe2c, 0xb24e07e8, 0x1599f3a0, +0xb3769963, 0xa12ac372, 0x250722b3, 0x9d15fb7d, +0x9813a1b2, 0x117335fd, 0x8c1230f9, 0x81968e27, +0x05a86156, 0x9b82a393, 0x9169c94d, 0x31b89d77, +0x973c1fb2, 0x8f75d325, 0x6386e9f8, 0xa8df1a90, +0xea70b02b, 0x5eb51ed7, 0x8c97f33c, 0xf9c1b8a6, +0x5eb80126, 0xbec523d7, 0xb974f767, 0x73b44b82, +0xf832f648, 0x8d196107, 0x7c0879bf, 0xcd6d630c, +0x22466897, 0x4816ea2d, 0x6efda835, 0x25832e9b, +0x7898d668, 0x59131743, 0x0f5c9772, 0x6f5a9ec7, +0xbe40da64, 0x2d376de9, 0x85fdddd4, 0x9721c351, +0x12a9d1de, 0xbfb37d7c, 0xb21a779f, 0x2593f254, +0xa1737d77, 0x9aa94919, 0x314de914, 0xb56a3111, +0x82a98637, 0x15fcc11e, 0x882e1550, 0x9dc71080, +0x2effb94c, 0xaca5f479, 0xaa2db04b, 0x2ec75a37, +0x80c324c1, 0xb387798a, 0x092e24c6, 0x82f54f78, +0x2799d295, 0x010b6198, 0x38d497ab, 0x255044a9, +0x28f09f9f, 0x12e3669b, 0x2937f975, 0x21332882, +0x2a0c3de4, 0x127b6e06, 0x196c4c4a, 0x339de5f3, +0x2d1952eb, 0x11b661e9, 0x38c5a4d9, 0x08d02b39, +0x07714640, 0x14394d59, 0x3e2f5bbd, 0x0898e888, +0x3ebde0c8, 0x11078f3c, 0x32e047cd, 0x3b8a1671, +0x3d5400a2, 0x1ee97d92, 0x057760c9, 0x31ddc483, +0x6b672bb1, 0x0239c65b, 0x5168de3c, 0x57da3987, +0x0a411c03, 0x6ac8c9c3, 0x38c1814d, 0x138ae982, +0x17fe9610, 0x22c1b2c2, 0x0f64d62b, 0x292f29a6, +0x172bd3a3, 0x2660983f, 0x3f34706f, 0x17ddc325, +0x3be7c056, 0x24297b2c, 0x0d7b4a97, 0x1ccace5e, +0x362c300c, 0x2d8a24c7, 0x40a8b209, 0x27e2b212, +0x51f58204, 0x47291d65, 0x049de5d0, 0x620f697e, +0x4a407809, 0x2c8afcc9, 0x3adb22f4, 0x4dec3b92, +0x46981a3b, 0x379b774c, 0x7f3ab853, 0x7d8d941d, +0x35d5717b, 0x4865f240, 0x657ae90a, 0x38db767f, +0x5ba5af85, 0x624bde90, 0x27ca5b94, 0x7d6de192, +0x74752869, 0x1aa685e2, 0x626ac31b, 0x78db6d6c, +0x10924be8, 0x7f5fa69a, 0x70b7ba13, 0x35ea4627, +0x6e8d8ce0, 0x5a36f924, 0x368ab401, 0x7271a3bb, +0x5a552eaa, 0x32d42181, 0x6db87723, 0x6459b69e, +0x3b7f2229, 0x516935fe, 0x7af35a05, 0x34d6f025, +0x4fb65637, 0x7f9446c9, 0x29279aae, 0x630458d9, +0x7d91017f, 0x12138189, 0x670175f5, 0x79410f28, +0x10096979, 0x6c00509a, 0x65007291, 0x231b6f99, +0x6c086043, 0x4bb85e3c, 0x2a14b537, 0x75ac8df6, +0x50f5171f, 0x3872a743, 0x624efe16, 0x654ede16, +0x388a9b3a, 0x52e4d776, 0x7875c3b4, 0x2487fd53, +0x468cd150, 0x6d323e69, 0x2ce7e3c2, 0x695c3c62, +0x77e824a3, 0x11756de6, 0x7bf7c901, 0x74e5c26d, +0x1afa9675, 0x69b9df37, 0x73b86637, 0x24e87f5d, +0x7c0e8526, 0x4901376c, 0x31fb6e1b, 0x660dbe1a, +0x53170be5, 0x21c35688, 0x73503139, 0x6064b5df, +0x29ba71f5, 0x53bdb0d1, 0x6536739e, 0x3a25f143, +0x443e2b84, 0x73bb1a43, 0x3711fbe7, 0x7c6e4a38, +0x7780f574, 0x16901e72, 0x69e9671d, 0x60ec9c20, +0x06890195, 0x7bb14d4b, 0x6292324e, 0x32c9abed, +0x799488db, 0x50b9af33, 0x299b8a16, 0x7209f8e0, +0x5add0439, 0x28f8fc56, 0x7f63fe6b, 0x71275304, +0x20b6a475, 0x4c9bdbbe, 0x662f84b0, 0x3d6cc2d1, +0x47d6afa4, 0x7ad1c011, 0x2ead22c5, 0x7d908a65, +0x6e6ccec4, 0x1d7689f7, 0x6ee48904, 0x733ccb6f, +0x1da0fb77, 0x7bb09d43, 0x7321dd51, 0x2701892c, +0x7d84793d, 0x4d6492cc, 0x2fa9a321, 0x76b7e6e2, +0x465dbd1c, 0x33b7fe03, 0x6282c0fc, 0x6301d671, +0x08afdd4b, 0x521c30f9, 0x165202e8, 0x0401a7ed, +0x32d4bdcd, 0x37002f6e, 0x29e0b079, 0x3b8f70e6, +0x1f32ea74, 0x17ca355f, 0x19c8eceb, 0x109551cd, +0x046136e7, 0x0d1b04c2, 0x3599e1f5, 0x3abb8250, +0x1bfa131d, 0x12193715, 0x77cdde86, 0x065f6895, +0x51718435, 0x4731e28b, 0x285fdb8c, 0x4fa6e3cc, +0x6aa41e77, 0x18cc12b7, 0x3d9bd449, 0x68254258, +0x41e7cb3e, 0x25b2eb61, 0x42133e78, 0x64f82d73, +0x112e4c48, 0x798379b6, 0x5f33622d, 0x14d4b234, +0x6325e99e, 0x524dd17f, 0x04ecf1c3, 0x49e60429, +0x7065602d, 0x2b0d9ae7, 0x5e7c9b5a, 0x780d283b, +0x0c835bcc, 0x6721511f, 0x75b36f07, 0x134145d7, +0x0e814738, 0x4e0aa44d, 0x51a96127, 0x188d63ea, +0x463147c0, 0x7477864c, 0x220d2e93, 0x4eca7e2f, +0xc1de753e, 0x078e240c, 0x80b8951a, 0xcd8c655b, +0x6157aed4, 0xbf7a4cbb, 0xeedfff8d, 0x6b6efec2, +0x3918ac62, 0xd2154ed5, 0x9d7ef787, 0x3cd4ca4d, +0x83cfb39b, 0xb2e41461, 0x177ed847, 0x979b8263, +0x063e5288, 0x25686303, 0x6ac4c002, 0x1daaee7b, +0x44a872f5, 0x6920fad9, 0x1615e22f, 0x7ee6b668, +0x46a20eca, 0x3f70299f, 0x6804ec4f, 0x438f3d2b, +0x21981b39, 0x56c56c26, 0x790e53f9, 0x3d075619, +0x73ec2706, 0x461887a3, 0x3289a477, 0x6dc41ff3, +0x7f5575d9, 0x15c41603, 0x5b529716, 0x75fe042a, +0x1ad545a3, 0x6c3bda68, 0x63a22b88, 0x0c762a66, +0x6414a225, 0x4211a57d, 0x3ee18677, 0x70672a56, +0x2263d25f, 0x147a0102, 0x2abb0809, 0x36d405a0, +0x370f7ebd, 0x3a633ec6, 0x21f35ed3, 0x0eaa0a9c, +0x18776376, 0x0d7cb3ae, 0x0c317ba7, 0x0e7f0abc, +0x04259abe, 0x02f52088, 0x030df095, 0x20c29d81, +0x882c52ea, 0x2d580ecc, 0xa92564dc, 0x802796ac, +0x3219a158, 0x9f257e87, 0x9cc10ff5, 0x34274f65, +0x83ee1c46, 0xa0220012, 0x1dde176a, 0x8bfbd3cf, +0xc1205b06, 0x3bd2cafc, 0xfb023b16, 0xca0dfb9b, +0x0a339312, 0xce3891c9, 0xd5f95269, 0x01011bc3, +0xda50d4a6, 0xe4bb68a0, 0x38a2d750, 0xcfea1bc8, +0x8f5e797c, 0x013aadfa, 0xf591d8c8, 0x8ee4aa28, +0x7355b612, 0xee0428b4, 0x9ae443a0, 0x6feac10a, +0xfd4339ca, 0x846da8fc, 0x0502cee5, 0xf4257dfc, +0xc9da3d3e, 0x3b300835, 0xde8627da, 0xcd8bea50, +0x1c8e4efc, 0xeb473eae, 0xe55d5e4b, 0x1627425e, +0xc596048d, 0xc625faa2, 0x1320a228, 0xc49aec7f, +0xeec906ce, 0x353f3489, 0xdfc5495e, 0xefa721f4, +0x35be9794, 0xe644add2, 0xd48800ba, 0x26d27892, +0xfac89ec0, 0xf876f427, 0x06861fa0, 0xe89c1407, +0xad86305a, 0x0031d329, 0xaec58f29, 0x9ded7311, +0x0f535848, 0x89751f81, 0x9453a5bd, 0x0593b715, +0x9cfb5340, 0x8f8cc387, 0x0ba81c6b, 0xab249d09, +0x47b98128, 0x3a59a622, 0x6bcc7e6d, 0x490d3f9e, +0x194d7172, 0x43bc0d54, 0x476d5302, 0x0e79ab9d, +0x043a2e4e, 0x6e23d982, 0x4f9275a2, 0x13482aaf, +0x4cd88767, 0x417af7bf, 0x2670b7b6, 0x6e3159e1, +0x7ee5fb88, 0x1690d436, 0x7c204b0c, 0x7f7bd21e, +0x1c44e6bd, 0x72aa216e, 0x762740e1, 0x3195f0af, +0x68f7a632, 0x405a48de, 0x4f47cf2b, 0x74802579, +0x306f294c, 0x5c40b9a2, 0x44882623, 0x1bc24415, +0x57479859, 0x77f1f9b6, 0x75e1d617, 0x5c0f58e0, +0x09ea315f, 0x439d0666, 0x7c896e85, 0x02a7bb07, +0x6faf5510, 0x4d84a791, 0x27fe2b91, 0x68aa7491, +0x52973597, 0x0222a1a1, 0x621446c4, 0x4e8a2246, +0x018f0189, 0x52fe91c5, 0x5c1dc78b, 0x0f3df43e, +0x46b83eca, 0x5ec0e882, 0x0794307d, 0x6fc5de80, +0x49d5654e, 0x354ee67c, 0x710ff7c0, 0x4ea654ae, +0x1c6b7d3b, 0x6e8a2a53, 0x77a83c55, 0x3876439d, +0x6c9b745e, 0x6caf0739, 0x5cdbcbb5, 0x2476ae0e, +0x0bb3d90e, 0xa6bfe765, 0x5ea2df7b, 0xf0787223, +0xce1d2f30, 0xe3f585a9, 0x862936aa, 0x760f8e61, +0xbe83028a, 0xe8b5836a, 0x3f511b31, 0xc14765f3, +0xcb58aca3, 0xcba6b2cd, 0xe4663a5d, 0x306d3a63, +0x9f92084b, 0x9ede4973, 0x782c5d7e, 0xff753f56, +0xe863b9fe, 0xb48dae56, 0x926718e6, 0x3f2df5a7, +0xb96e9045, 0xa7ffe8e3, 0x3d712112, 0x96a37460, +0xcf6d2da6, 0xb453af2f, 0xe2738a18, 0x46eab1c6, +0xb33f26c8, 0xacfaa37e, 0x5545aef9, 0xf6ee57bc, +0x9ab32696, 0x60f08210, 0xc6a68785, 0xbe0f8a26, +0x6ec47920, 0x6fd6f0d2, 0xbe21a54b, 0xc1ed9f13, +0x779b8ab2, 0x601e0135, 0xd707f98a, 0xbe8ba28c, +0x490cf7d2, 0xdabad447, 0x8e0447e3, 0x5aa97c13, +0xe0fa4ffc, 0x87c56421, 0x744c8d5d, 0xff38fc68, +0xeeb31201, 0x5183cc8b, 0x8cf20994, 0xd8043432, +0x5d9fe6c1, 0x5e1874f0, 0xc2955a2f, 0x84390ab0, +0x3ef119f8, 0x84f1a150, 0xedfd1684, 0x6b244bce, +0xef6b8b37, 0xd2b4b735, 0x0aabcb89, 0xc50ab6b6, +0xe99f0600, 0x016503fb, 0xeac92d6b, 0xe17828bb, +0x6f54ab62, 0xe442ad55, 0x8ac94c9c, 0x7fbd6462, +0x95fbbc51, 0x4312f35f, 0x15f95b03, 0x4b376589, +0x30054b1f, 0x4f93b30f, 0x3f893784, 0x7b1fe40d, +0x302a042a, 0xa7b52297, 0x1baf4c24, 0xb2d8045d, +0xc59c87e5, 0x6182bfae, 0xc0177c03, 0xa07f2b7d, +0x6d3c9042, 0xe119b6c0, 0xb95000e4, 0x5ef06018, +0xe329fddd, 0xb6c351e9, 0x561a9f22, 0x0e3d0ee5, +0xb1d82fa7, 0x24e5a591, 0x0f877f43, 0xc7fbf6dd, +0x2bd640c4, 0xac411744, 0xc0572fb3, 0x814e269f, +0xbff658b7, 0xa6fb6709, 0x8eb94c8a, 0xdd59b669, +0xaec2ec83, 0x0f975d58, 0xc007e63e, 0x34f1ef97, +0x1093e9ae, 0xf10306c2, 0x371d2ba6, 0x06d529e5, +0xcc5ba006, 0x62720191, 0x2760d5d9, 0xbcf9f2ef, +0x6cf26009, 0x3cc648ba, 0xad069852, 0x79d86abd, +0x2bd13a45, 0x6c59ab96, 0x7fe93fa9, 0xf4f9c8c4, +0x6659306e, 0x4ceb3f8e, 0xf8f3b54f, 0x22d47284, +0x25f00ac3, 0xdf42abde, 0x48232afe, 0x6b12c85a, +0xd3689402, 0x439533cc, 0x699ed29c, 0xc8579683, +0x4083f273, 0xc0133829, 0xcb4319da, 0xef666889, +0xdd90130f, 0xd6b42043, 0xfea82ce5, 0xc974a1c8, +0xc16fa70d, 0xf704cc46, 0xdde80293, 0xd19e56a5, +0xe92cc8b6, 0x50e56bf3, 0xc7c8b490, 0x7824c8ac, +0x49e11bfd, 0x5b430d40, 0x73b0ca71, 0x24d265ae, +0xab0c7b5b, 0x26f970b0, 0xc6ef1791, 0xe04eb2a0, +0x85f9948b, 0xde0bf679, 0x4a7dfccb, 0x93201bf0, +0x8a5898ba, 0xa2c8afb0, 0xdc169dda, 0x62eaa056, +0xbee610e4, 0xcfe62b41, 0x683c035e, 0xb154a8ff, +0x5bc3c6e1, 0x7f72f3f8, 0x2634ae89, 0x4dfab058, +0x0ecbcc90, 0x73948eaf, 0x2002cc46, 0x402c28ea, +0x316ee39e, 0x3491bc24, 0x05f329d3, 0x3e1b39ed, +0x8f939791, 0x3e8081e0, 0x9e3471fc, 0xb768956e, +0xf5001d85, 0xdd6a5d5f, 0x72f9ac8b, 0xa39e90b7, +0xda690817, 0x699362ea, 0xb1611e17, 0xd44046c6, +0x33771d3e, 0xe884be2f, 0x8c7a72d7, 0x7e51529d, +0xe1807e89, 0xa07cdfde, 0x64e8c668, 0xd3774939, +0xe8261a25, 0x430c6240, 0x991408e5, 0xd01517e0, +0xacfe1fbb, 0xd7aeeb57, 0x22ccc0c2, 0xfd449c99, +0x2d3f390f, 0x30f54c8c, 0x0dde0c1d, 0x3cb3c009, +0x5729d223, 0x6a25e468, 0x44eb6c4e, 0x3e5863e9, +0xa9639ce4, 0x096bf738, 0xea20cefb, 0xe187f5c8, +0x418ccab3, 0x4bc370ca, 0xa1200b64, 0xebcfc110, +0xeb942278, 0x4ba5d196, 0x48a7b4d0, 0x07aeaf38, +0xb7b71ee5, 0x59184abf, 0xfa2b23bc, 0xbcc9da17, +0xd846d1fc, 0x214f1278, 0x2bf7e99f, 0x1a04261a, +0xd7f6e905, 0x86ea57d7, 0xd71618ac, 0xc87934bd, +0xe96101d1, 0x55d1976c, 0x471c8505, 0x7a36d839, +0x5d62a9ee, 0xf3c54a8a, 0xa2be15d9, 0x244087c9, +0x042c8037, 0x23224689, 0x281c5d73, 0x2139ecfc, +0xffb8bc8a, 0x834fdd11, 0x9cd5a5bd, 0xa3368319, +0x7e5bef0c, 0x4ae2dbda, 0x86d90089, 0x6675dfce, +0x48876262, 0xcec72538, 0x11dc5c80, 0x86a730f9, +0x313565c9, 0xe3e5be11, 0x106d7cce, 0x752b8be2, +0x3d00a5bc, 0xe6f70e95, 0x44447ac8, 0x600df30c, +0x8335ac3b, 0x8816ddee, 0x700982fe, 0xee495741, +0x48c7e81c, 0xa3d55da2, 0xb0172982, 0x70ab2158, +0xd4460621, 0x3a9e528b, 0x59b18a7b, 0xf4dabc4c, +0xa8454763, 0x70877bb6, 0x66005c97, 0xaf292c06, +0x7b843db1, 0xf343b59b, 0x25cdc7b5, 0xa41da617, +0x9e9d895e, 0xc936f475, 0x7270925a, 0x30024230, +0x8e72f53d, 0x2b6c1b6f, 0x1a69732c, 0x7ed5aff5, +0xfc18a2a3, 0xaf377cc1, 0xbff09a78, 0x4b4e0814, +0x95a0b2c1, 0x270398de, 0x201fca94, 0x2a032a4f, +0x131542b4, 0x0d7306da, 0x2d1c3496, 0xcc3c6d8d, +0xa814ddc9, 0xa3b3a991, 0x17ee60c2, 0x852c0b8d, +0x11e5853a, 0x762002a7, 0x92c5311d, 0x0d4bf7e1, +0xfffec870, 0xe3d35e5b, 0xff6ecfb9, 0xdedae6ff, +0x0111a772, 0x9808e780, 0x29c336e8, 0xe9bc05df, +0x5bedde11, 0x945565af, 0xaff808fe, 0x87e3423d, +0x4de6f98f, 0x93b4adef, 0xbf704fa4, 0x09120e91, +0xd54f3692, 0xdf8eab1e, 0xfabbf59c, 0xe74318be, +0xaab87ffc, 0x29fa791c, 0xe3915552, 0xa652cb9b, +0xa1252e74, 0xb35b723b, 0x542aa28b, 0x12fcc5b0, +0x3941f962, 0x82bcc6cc, 0x47b11974, 0xb821611f, +0x78b34250, 0xf1be5659, 0x561b9e61, 0x6f3bd501, +0x584e6f5c, 0xd54ed547, 0xacebcd21, 0x7b5ff816, +0xb64ad233, 0x9f2f330d, 0x69fb1ece, 0xac8710dd, +0x58dc6c60, 0x9bee6139, 0xbb10ad0e, 0xbd8cd5dd, +0xebc0ce9d, 0xa733274f, 0x884d9b55, 0x42b08b63, +0xafa54a74, 0x1c7ccf64, 0x93a20191, 0xaaa3132e, +0xc69831d1, 0x54634889, 0xfbfe3efc, 0xd3cf68d4, +0x302e3117, 0xf5693131, 0xc3ce8c6c, 0x1f03cd89, +0x6243334c, 0xf16bc80f, 0xdca5f130, 0xcb2cd956, +0x4c1bb421, 0xe8de533c, 0x7f86703a, 0x29aa897e, +0xdd54acad, 0x76b2f2ae, 0x7ef82b71, 0x2e30970b, +0xba402597, 0x9a653ab4, 0xd68fcf53, 0x2d9f0d15, +0x7f9efd1c, 0x2363d147, 0x5327289a, 0xe89229f3, +0xd63a535c, 0x7efe9273, 0x64f2e3a3, 0x9bdf65a7, +0x26b6edfb, 0x1b9c7bfe, 0x5d14b3de, 0x54d575fb, +0x6d65db4c, 0x95648b7f, 0xa8a3b8f0, 0x7cc7ad46, +0xe20e6dbb, 0x8488a45f, 0x8ebc2932, 0xd4767316, +0x3e8c4b8a, 0xbab7402c, 0xfc1e217e, 0xe5c5bf82, +0x6928fe2e, 0xc88528e9, 0x4b2e4e8f, 0xdd938b86, +0x0c964f98, 0xfc88d480, 0x35fcaf9e, 0xdd7bbe9d, +0x197d005a, 0x4d40b3b3, 0xcf203155, 0x0d2fa621, +0x752d2c58, 0xb12bac12, 0x1e7e8c23, 0x94215d54, +0x9854a71c, 0x4de63c64, 0x7a012529, 0x9c171f8d, +0x9e71def7, 0x3bd17d50, 0x11f175d9, 0xec78abf3, +0x7b529eee, 0xd3a69fc3, 0x5b718676, 0x58214d29, +0xa8bd2c34, 0x41ea00ab, 0xa03f64d6, 0x4ee342b0, +0x32b1e444, 0x1c1801a4, 0xc8424702, 0x334a7e35, +0x50cf1543, 0x3b22b495, 0x88683776, 0x8e2e0154, +0x6155c033, 0x4e2fa6ac, 0x42ace700, 0x8d64f97c, +0xaf9ced17, 0xb2a5cb92, 0xa558582d, 0x88705de7, +0x9e528d59, 0x84bd45e4, 0x5cb680c0, 0xcd48fa5c, diff --git a/src/cpu/intel/model_6fx/model_6fx_init.c b/src/cpu/intel/model_6fx/model_6fx_init.c index 2ee950bfa0..64f77410aa 100644 --- a/src/cpu/intel/model_6fx/model_6fx_init.c +++ b/src/cpu/intel/model_6fx/model_6fx_init.c @@ -12,7 +12,8 @@ #include static const uint32_t microcode_updates[] = { - // #include "microcode_m206e839.h" + #include "microcode_m206f257.h" + #include "microcode_m206f6c7.h" /* Dummy terminator */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -52,7 +53,121 @@ static void fill_processor_name(char *processor_name) strcpy(processor_name, processor_name_start); } -static void model_6ex_init(device_t cpu) +#define IA32_FEATURE_CONTROL 0x003a + +#define CPUID_VMX (1 << 5) +#define CPUID_SMX (1 << 6) +static void enable_vmx(void) +{ + struct cpuid_result regs; + msr_t msr; + + msr = rdmsr(IA32_FEATURE_CONTROL); + + if (msr.lo & (1 << 0)) { + /* VMX locked. If we set it again we get an illegal + * instruction + */ + return; + } + + regs = cpuid(1); + if (regs.ecx & CPUID_VMX) { + msr.lo |= (1 << 2); + if (regs.ecx & CPUID_SMX) + msr.lo |= (1 << 1); + } + + wrmsr(IA32_FEATURE_CONTROL, msr); + + msr.lo |= (1 << 0); /* Set lock bit */ + + wrmsr(IA32_FEATURE_CONTROL, msr); +} + +#define PMG_CST_CONFIG_CONTROL 0xe2 +#define PMG_IO_BASE_ADDR 0xe3 +#define PMG_IO_CAPTURE_ADDR 0xe4 + +#define PMB0_BASE 0x580 +#define PMB1_BASE 0x800 +#define CST_RANGE 2 +static void configure_c_states(void) +{ + msr_t msr; + + msr = rdmsr(PMG_CST_CONFIG_CONTROL); + + msr.lo |= (1 << 15); // config lock until next reset + msr.lo |= (1 << 14); // Deeper Sleep + msr.lo |= (1 << 10); // Enable IO MWAIT redirection + msr.lo &= ~(1 << 9); // Issue a single stop grant cycle upon stpclk + msr.lo |= (1 << 3); // Dynamic L2 + + wrmsr(PMG_CST_CONFIG_CONTROL, msr); + + /* Set Processor MWAIT IO BASE */ + msr.hi = 0; + msr.lo = ((PMB0_BASE + 4) & 0xffff) | (((PMB1_BASE + 9) & 0xffff) << 16); + wrmsr(PMG_IO_BASE_ADDR, msr); + + /* Set IO Capture Address */ + msr.hi = 0; + msr.lo = ((PMB0_BASE + 4) & 0xffff) | (( CST_RANGE & 0xffff) << 16); + wrmsr(PMG_IO_CAPTURE_ADDR, msr); +} + +#define IA32_MISC_ENABLE 0x1a0 +static void configure_misc(void) +{ + msr_t msr; + + msr = rdmsr(IA32_MISC_ENABLE); + msr.lo |= (1 << 3); /* TM1 enable */ + msr.lo |= (1 << 13); /* TM2 enable */ + msr.lo |= (1 << 17); /* Bidirectional PROCHOT# */ + + msr.lo |= (1 << 10); /* FERR# multiplexing */ + + // TODO: Only if IA32_PLATFORM_ID[17] = 0 and IA32_PLATFORM_ID[50] = 1 + msr.lo |= (1 << 16); /* Enhanced SpeedStep Enable */ + + /* Enable C2E */ + msr.lo |= (1 << 26); + + /* Enable C4E */ + /* TODO This should only be done on mobile CPUs, see cpuid 5 */ + msr.hi |= (1 << (32 - 32)); // C4E + msr.hi |= (1 << (33 - 32)); // Hard C4E + + /* Enable EMTTM. */ + /* NOTE: We leave the EMTTM_CR_TABLE0-5 at their default values */ + msr.hi |= (1 << (36 - 32)); + + wrmsr(IA32_MISC_ENABLE, msr); + + msr.lo |= (1 << 20); /* Lock Enhanced SpeedStep Enable */ + wrmsr(IA32_MISC_ENABLE, msr); +} + +#define PIC_SENS_CFG 0x1aa +static void configure_pic_thermal_sensors(void) +{ + msr_t msr; + + msr = rdmsr(PIC_SENS_CFG); + + msr.lo |= (1 << 21); // inter-core lock TM1 + msr.lo |= (1 << 4); // Enable bypass filter + + wrmsr(PIC_SENS_CFG, msr); +} + +#if CONFIG_USBDEBUG_DIRECT +static unsigned ehci_debug_addr; +#endif + +static void model_6fx_init(device_t cpu) { char processor_name[49]; @@ -66,19 +181,42 @@ static void model_6ex_init(device_t cpu) fill_processor_name(processor_name); printk_info("CPU: %s.\n", processor_name); +#if CONFIG_USBDEBUG_DIRECT + // Is this caution really needed? + if(!ehci_debug_addr) + ehci_debug_addr = get_ehci_debug(); + set_ehci_debug(0); +#endif + /* Setup MTRRs */ x86_setup_mtrrs(36); x86_mtrr_check(); - + +#if CONFIG_USBDEBUG_DIRECT + set_ehci_debug(ehci_debug_addr); +#endif + /* Enable the local cpu apics */ setup_lapic(); + /* Enable virtualization */ + enable_vmx(); + + /* Configure C States */ + configure_c_states(); + + /* Configure Enhanced SpeedStep and Thermal Sensors */ + configure_misc(); + + /* PIC thermal sensor control */ + configure_pic_thermal_sensors(); + /* Start up my cpu siblings */ intel_sibling_init(cpu); } static struct device_operations cpu_dev_ops = { - .init = model_6ex_init, + .init = model_6fx_init, }; static struct cpu_device_id cpu_table[] = {