Patchwork PATCH: model_6bx CPUs can go in a lot of places

login
register
about
Submitter Idwer Vollering
Date 2010-05-07 23:01:23
Message ID <h2wfdea27e41005071601k486803bbx3d8c71389eb1aec3@mail.gmail.com>
Download mbox | patch
Permalink /patch/1299/
State New
Headers show

Comments

Idwer Vollering - 2010-05-07 23:01:23
2010/5/7 Keith Hui <buurin@gmail.com>

> I think I should get CAR running. But CAR is not quite developed for
> the rest of the 6xx family.
>
> If you look at the boot log you'll see that it got through to SeaBIOS
> just fine. My coreboot is still on romcc.
>
> What are the steps needed to enable CAR on a board?
>

Example: see attached patch (as an example/reference only because
USE_PRINTK_IN_CAR, in src/mainboard/asus/p2b/Kconfig, somehow breaks
booting/serial output.. waiting for my pci post card to arrive).

>
> Thanks
> Keith
>
> On 5/7/10, Joseph Smith <joe@settoplinux.org> wrote:
> >
> >
> >
> > On Thu, 6 May 2010 23:31:49 -0400, Keith Hui <buurin@gmail.com> wrote:
> >> Hi all,
> >>
> >> Intel model 6bx CPUs (specifically 6B1 and 6B4) can end up in a lot of
> >> places, specifically Slot 1 and Socket 370. Ever since references to
> >> them were removed from cpu/intel/model_6xx my coreboot would die when
> >> initializing CPU with a "Unknown cpu" error. This patch fixes it by
> >> adding references to model_6bx to cpu/intel/slot_1 and
> >> cpu/intel/socket_PGA370. Also included are before and after boot logs
> >> with relevant sections highlighted.
> >>
> >> Before boot log: http://coreboot.pastebin.com/CGWgihaG
> >> After boot log: http://coreboot.pastebin.com/GLgnpZT6
> >>
> >> Signed-off-by: Keith Hui <buurin@gmail.com>
> >>
> >> ----- Begin patch -----
> >> Index: src/cpu/intel/slot_1/Makefile.inc
> >> ===================================================================
> >> --- src/cpu/intel/slot_1/Makefile.inc        (revision 5527)
> >> +++ src/cpu/intel/slot_1/Makefile.inc        (working copy)
> >> @@ -20,6 +20,7 @@
> >>
> >>  obj-y += slot_1.o
> >>  subdirs-y += ../model_6xx
> >> +subdirs-y += ../model_6bx
> >>  subdirs-y += ../../x86/tsc
> >>  subdirs-y += ../../x86/mtrr
> >>  subdirs-y += ../../x86/lapic
> >> Index: src/cpu/intel/socket_PGA370/Makefile.inc
> >> ===================================================================
> >> --- src/cpu/intel/socket_PGA370/Makefile.inc (revision 5527)
> >> +++ src/cpu/intel/socket_PGA370/Makefile.inc (working copy)
> >> @@ -20,6 +20,7 @@
> >>
> >>  obj-y += socket_PGA370.o
> >>  subdirs-y += ../model_6xx
> >> +subdirs-y += ../model_6bx
> >>  subdirs-y += ../../x86/tsc
> >>  subdirs-y += ../../x86/mtrr
> >>  subdirs-y += ../../x86/lapic
> >>
> >> ----- End patch -----
> >>
> > Hello Keith,
> > I kind of saw this coming. That is why I left the 6bx's in model_6xx. The
> > new model_6bx is intended for CAR, so I don't know how well it will work
> > with romcc. My advice is to either get CAR running on your board, or we
> put
> > back the 6bx's in model_6xx for the interim.
> >
> > --
> > Thanks,
> > Joseph Smith
> > Set-Top-Linux
> > www.settoplinux.org
> >
> >
>
> --
> coreboot mailing list: coreboot@coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>

Patch

Index: src/cpu/intel/model_67x/Kconfig
===================================================================
--- src/cpu/intel/model_67x/Kconfig	(revision 0)
+++ src/cpu/intel/model_67x/Kconfig	(revision 0)
@@ -0,0 +1,3 @@ 
+config CPU_INTEL_MODEL_67X
+	bool
+#	select SMP
Index: src/cpu/intel/model_67x/Makefile.inc
===================================================================
--- src/cpu/intel/model_67x/Makefile.inc	(revision 0)
+++ src/cpu/intel/model_67x/Makefile.inc	(revision 0)
@@ -0,0 +1,2 @@ 
+driver-y += model_67x_init.o
+cpu_incs += $(src)/cpu/intel/model_67x/cache_as_ram.inc
Index: src/cpu/intel/model_67x/microcode-737-MU16b11c.h
===================================================================
--- src/cpu/intel/model_67x/microcode-737-MU16b11c.h	(revision 0)
+++ src/cpu/intel/model_67x/microcode-737-MU16b11c.h	(revision 0)
@@ -0,0 +1,163 @@ 
+//+++
+//       Copyright (c) <1995-2009>, 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.
+//
+//---
+/*  Sun Sep 27 10:52:54 CST 2009  */
+/*  737-MU16b11c.inc  */
+0x00000001,	0x0000001c,	0x02152001,	0x000006b1,
+0x6506e1cf,	0x00000001,	0x00000010,	0x00000000,
+0x00000000,	0x00000000,	0x00000000,	0x00000000,
+0x3ff8d1ac,	0x6ad5a5d7,	0x41bc1a2f,	0xc0cfcf98,
+0xae80b685,	0x4e7fdba5,	0xee70aae6,	0x857f82df,
+0x4c12ad1c,	0xc6eab058,	0x849e97b8,	0x4b425e5a,
+0xe6819908,	0x8134a945,	0x601aea2a,	0xc633b991,
+0x8f9e395f,	0x4699cb55,	0xcbc3795e,	0x85561846,
+0x6f4f5e1f,	0xcf0cf38f,	0xac133e0c,	0x4bbe51fc,
+0xc340f285,	0x8c63f67d,	0x45160027,	0xc85a74bb,
+0xaeb95e32,	0x4f4fc61d,	0xe5033858,	0x8e4e090f,
+0x4b5acb2a,	0xc75bc00c,	0x880daabb,	0x43d6f6af,
+0xefd1d4e8,	0x87575a65,	0x6ef3afc2,	0xc8062d96,
+0x8945ca80,	0x41c583c3,	0xcbb2f0a7,	0x8661bdce,
+0x6d21f128,	0xc24acdc4,	0xaeaf43d5,	0x46dcbcd3,
+0xcf544779,	0x82ea3983,	0x4b1656e2,	0xc3a0de21,
+0xa14ded06,	0x4e779174,	0xe01de86d,	0x80c33ba8,
+0x44762085,	0xc74f0d93,	0x85ca1cfa,	0x4dc7752f,
+0xe0c2bfd0,	0x853e48b1,	0x67f42503,	0xcfed157c,
+0x8d33cb2f,	0x43eb149b,	0xc71e279a,	0x82561424,
+0x60cc4578,	0xce0d779d,	0xa6254192,	0x43e5a2cf,
+0xcaee4715,	0x857afd44,	0x45ad93fa,	0xc6043ebf,
+0xa98f3eee,	0x4f8e481c,	0xee5d3fe4,	0x84e30c80,
+0x464de23b,	0xc76af7c3,	0x8155a3cb,	0x4a425a2f,
+0xe3fd06a4,	0x8b51c2ec,	0x61bda6b9,	0xc71d76c2,
+0x8bd436d3,	0x4e4a5c77,	0xc2cffcfd,	0x833c6a3c,
+0x65d4f768,	0xcbfe0635,	0xa9bd7c0a,	0x49d3018a,
+0xca646403,	0x8776d3d2,	0x426a93f7,	0xc03b8393,
+0xa8e7690c,	0x46d7b40c,	0xe6a47d18,	0x8b927811,
+0x4febdfe3,	0xc38a9d51,	0x8f76a603,	0x49d5cc1c,
+0xe79861ed,	0x8d4c5baa,	0x6c7da6df,	0xc157063a,
+0x87dbd994,	0x472dff09,	0xcc1742f2,	0x8de8e9c7,
+0x641ab500,	0xc437013a,	0xaeaedc04,	0x492e9f4e,
+0xc3de047e,	0x8dbd801d,	0x4cfd2f32,	0xcc34102c,
+0xac06dbb4,	0x4ac3f30b,	0xe83b3458,	0x8634b95b,
+0x444079d2,	0xc807d487,	0x8da4cd9e,	0x4760f318,
+0xec62523f,	0x816240b9,	0x6cba09ce,	0xca86a264,
+0x863f14ca,	0x49b9d4a1,	0xc6bd9715,	0x87edeb98,
+0x6fa1a092,	0xcb36670f,	0xa2edb3a7,	0x43545378,
+0xc3c35ad7,	0x8e2d1255,	0x4a06377c,	0xcd1b61d4,
+0xa83a9bc7,	0x4c48d28d,	0xe8a27b8a,	0x8a47665c,
+0x49a35371,	0xc8a8fb0a,	0x830dc900,	0x4c01d1bc,
+0xee2ffff4,	0x83243d8d,	0x61ead599,	0xc82c0451,
+0x8c19b0ec,	0x465ee1d4,	0xc52df943,	0x8490687c,
+0x68474c0d,	0xcc495773,	0xa04396d5,	0x4824c02c,
+0xceb15f4d,	0x80a78140,	0x4de85a0b,	0x8945e8c5,
+0xc981ea75,	0x7ff89629,	0x4e4ce4e2,	0x6e9ceb88,
+0x7f0b4dff,	0x165e46c8,	0xcf59bf6c,	0x9c430db4,
+0xb55a941c,	0x277a73f1,	0x6dbffb22,	0xb3081fe8,
+0xdebe60c6,	0x691d8c9e,	0x330333a2,	0x0b024599,
+0xe358aa28,	0xe70334b3,	0xe48d7707,	0x16318df8,
+0x0e34f491,	0x1c0d6223,	0x54315b5f,	0x040fcc96,
+0x5557f1d2,	0x5ccf28f6,	0xc0004404,	0x2f7a5fef,
+0x95b65ddd,	0xbaa1a873,	0x077783d4,	0x3f24b63b,
+0x9ae679fe,	0xaf11d97e,	0x51391564,	0xb3247855,
+0xcd10e6dc,	0x704e147c,	0xcc15de9d,	0xa5adf161,
+0x0179c9a6,	0xa579d74c,	0x28704a4d,	0x3e7a2d92,
+0x253437c4,	0x1162b521,	0x14a9c51d,	0x2129abbe,
+0x3b2d07c4,	0x1d84f76a,	0x016cd356,	0x3fd03cad,
+0x3f82ee67,	0x0275b51e,	0x5dd38dae,	0xdd022704,
+0x6b6d2f56,	0xbdb25b55,	0xe4188d73,	0xc03a6c98,
+0x8a303586,	0x4999d605,	0x82c9e7e8,	0x8169c654,
+0x838ba96f,	0x4f0239d3,	0xf295395e,	0xb3c38631,
+0x7ea7a143,	0x157a4e43,	0x46f8173f,	0xfbc18d4a,
+0xc401e17a,	0xc4620358,	0xd2ab5437,	0xa01db06f,
+0x58ce91fc,	0x850de1a3,	0x9b542dba,	0xee77f038,
+0xddd3ced6,	0xc225d2ce,	0x63a3f765,	0x3342a06c,
+0x6a780c2f,	0xfaa925b2,	0x366ebeec,	0xbcc9abea,
+0xc7b3fa4e,	0xf4f1123d,	0x5198702c,	0x3e3458b7,
+0x0b1ce9a1,	0x51b1bd7f,	0x711e791e,	0x927d8bed,
+0x91dbaea9,	0x7eefbda9,	0x7a19edd9,	0xdf7b8dce,
+0x5bb40613,	0x0b0c1e0f,	0x85b82c98,	0x18da4dc1,
+0xc5fd78ac,	0x57c1e31d,	0x4c4001b5,	0xe31d2643,
+0xa6afbf58,	0xad200e68,	0xf0114ba4,	0xd6a620f2,
+0xc753a720,	0xac9022a0,	0x28a41f01,	0x22a4ba95,
+0xc00b7531,	0x23d42795,	0xcd836a86,	0x90262708,
+0x3292cad0,	0x40022e39,	0xc1581b0a,	0xe5101550,
+0x6538096b,	0x208c549d,	0x3ce2bf88,	0xa71df38e,
+0x3dec3685,	0xca3949f1,	0x79f3ad1b,	0x3ee8b300,
+0x9d305fc6,	0x7a2e5288,	0xbe81a2f2,	0x7ada0c06,
+0x191c7f01,	0x58dfcbd1,	0xc78dee72,	0x72364226,
+0x1866de12,	0x8d22305c,	0x943a0f0e,	0xc81967ff,
+0x4d55fb0f,	0xaf199be1,	0x90bbda61,	0x4e7c234f,
+0x90cfec16,	0x9b4bcf26,	0x21622023,	0x0926f0fa,
+0x1d504377,	0xa58db427,	0x8d93ce2b,	0x90bfe900,
+0x29e67397,	0x2c1261ed,	0x4ace9474,	0xd5c60282,
+0xe53fb300,	0x8a61a0ab,	0xa7aa0918,	0x4389d7c5,
+0xd09d605c,	0x6c5bedb5,	0xd6d54c51,	0x433dea21,
+0x7ad9e677,	0x813bff76,	0x5a162c75,	0x1ee0661f,
+0x9b6c2030,	0x8e8dc989,	0xcd4bc9fc,	0x4454675b,
+0x8d583c9c,	0xe3400094,	0x116ebb83,	0xe847bc9a,
+0x2a4622dd,	0x2a901e6f,	0xd789b1c0,	0x094e2bbb,
+0x056e563f,	0x9f17e606,	0x8bc79b8d,	0xd2c535c1,
+0x06a45a27,	0x9dc56771,	0xa06649e2,	0x5ff25ac8,
+0x6554961e,	0x98e583d9,	0x38ba93da,	0xdee1de18,
+0x037cb9d5,	0x6b17f195,	0x3431faaf,	0x13860a0d,
+0x28bca10d,	0x0a54c011,	0x9957cdb6,	0x3aa1f429,
+0x9d41b7b3,	0x9aea5be2,	0x60c7ce6b,	0x4cd1c10b,
+0x24ddddcd,	0xe28412ba,	0xa03a5466,	0xa1896879,
+0x59edcb87,	0x1b241765,	0x157bf161,	0xf219f950,
+0xe86ff526,	0x262005d9,	0x11769531,	0xbca15d95,
+0x28f5ef17,	0x1f27e725,	0xc32631d2,	0x07249e61,
+0x1ba851e3,	0x4f49b577,	0xe2a1df5e,	0x826fa7ff,
+0xc34e1e2e,	0x7fe26024,	0xbc19800f,	0x0d368dc9,
+0xe03da0c6,	0xadaa4f9c,	0x9ad1e43c,	0x96f84e44,
+0x0b6cd695,	0x1bb46971,	0x942d6e5b,	0x6316170d,
+0x3164509f,	0xc6659450,	0xb2a0370a,	0xabc208e8,
+0x6d479811,	0x3684bc0e,	0x80b7b101,	0xa50b7bb5,
+0x43d21233,	0xb423559d,	0xf41dcd16,	0xdfd3c276,
+0x3e586469,	0xd9b7630a,	0xb88f9e44,	0x0cda6f4d,
+0xe5bf5844,	0x8709f788,	0xdae37da6,	0x1fb41777,
+0x1d903f69,	0x34383b69,	0xd409ae70,	0xd1c99758,
+0xdedfd7a4,	0xa4bdf018,	0xf4058202,	0x8565d66f,
+0x5365aed9,	0xfa69742e,	0x2cfbfbcf,	0x88a00b60,
+0x506c0713,	0x2866475b,	0x3e1df573,	0xb86f7feb,
+0x31d23a7f,	0xc6320e6a,	0x3ebbc2a5,	0x83a1d4ef,
+0x15169f5f,	0x42a61753,	0x893e553e,	0x4ddbc66d,
+0x7449ec1f,	0x76f65d22,	0x0622e13b,	0x32986f89,
+0x21181b4b,	0x99a80c0a,	0xd6fe00b0,	0x282c0e81,
+0x9fc1cf88,	0x919b855d,	0x618257d8,	0x82c448b8,
+0xe22537a1,	0xa90de388,	0xba73b90c,	0xd765eeb0,
+0x62b2727e,	0xa08dfe20,	0x70b3c8c5,	0x3ef04007,
+0x9f73732b,	0x2201edd7,	0xb836219c,	0xf913af7c,
+0xf50f64ca,	0x93ac107a,	0xf509f84a,	0x6f6026f6,
+0xd9bb8eac,	0x4b268cfa,	0xa65a3fa6,	0x9837cb75,
+0x784fb835,	0x2060576d,	0xb1604cae,	0xb9da4116,
+0xab320cf2,	0x60a1b501,	0x0c73fa79,	0x8d5a6f1e,
+0x57688086,	0x218e4005,	0xca054e3d,	0xc1a3c3ec,
Index: src/cpu/intel/model_67x/microcode-738-MU16b11d.h
===================================================================
--- src/cpu/intel/model_67x/microcode-738-MU16b11d.h	(revision 0)
+++ src/cpu/intel/model_67x/microcode-738-MU16b11d.h	(revision 0)
@@ -0,0 +1,163 @@ 
+//+++
+//       Copyright (c) <1995-2009>, 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.
+//
+//---
+/*  Sun Sep 27 10:52:54 CST 2009  */
+/*  738-MU16b11d.inc  */
+0x00000001,	0x0000001d,	0x02202001,	0x000006b1,
+0x6d9b5661,	0x00000001,	0x00000020,	0x00000000,
+0x00000000,	0x00000000,	0x00000000,	0x00000000,
+0x965e94ce,	0xea6ba8df,	0xbfae08d4,	0x3ec50299,
+0xbf2b31ed,	0xbd80d71d,	0x19bfb06d,	0x95e56995,
+0xa52265a7,	0x247242bb,	0x90900442,	0xa4d69328,
+0x15fb69e8,	0x940daeb6,	0x8d930183,	0x2ad6a75d,
+0x970bcd0c,	0xbfc335a6,	0x382df453,	0x8dfa472a,
+0x95f0eda4,	0x2feaf1e8,	0xb6e292dc,	0xb7c32497,
+0x2daa2a09,	0x83b58903,	0xaf122f90,	0x3730c2af,
+0xa8f684d3,	0xa7f33a97,	0x11b46600,	0x8f8af52b,
+0xab23714a,	0x2a87cf3b,	0x9ae73e3e,	0xa032cf57,
+0x0adc600d,	0x96117940,	0x9ac65c28,	0x3a23596e,
+0x94800c0f,	0xbf793392,	0x2c503bb1,	0x8dc252ce,
+0x9b7de53f,	0x2af3d7b4,	0xb7bd4575,	0xbc71e798,
+0x23d62362,	0x8393e39e,	0xafb59604,	0x290633b6,
+0xac09d0f8,	0xbaced873,	0x1fbd177c,	0x9b51acfe,
+0xa4d82134,	0x2dff3e84,	0x86d59af1,	0xa4789758,
+0x0469ae88,	0x9a3f986b,	0x8f18edcb,	0x3a200e44,
+0x8138b3f9,	0xb9aaf81c,	0x25af1d92,	0x8313e883,
+0x9a7ff75e,	0x20a6b69d,	0xa1bb0bbb,	0xbb78f982,
+0x27c1974a,	0x8dafbb13,	0xbc2ac530,	0x2c84f9a8,
+0xa1d686a1,	0xbd6b3d97,	0x07419bad,	0x99535e65,
+0xa1ee3deb,	0x3aca5a6d,	0x9c60ad82,	0xa9ac0d86,
+0x14ba77c2,	0x80b20413,	0x93be9f5f,	0x34c56863,
+0x87e25909,	0xbaaf9373,	0x2e9396d7,	0x836c3f99,
+0x8c81e59b,	0x24c4123f,	0xbc3b2921,	0xa2744f80,
+0x37dec6c6,	0x9e6b0ec7,	0xa6d652e6,	0x349f2dec,
+0xafcf34e5,	0xa81bf9cf,	0x046ce7f0,	0x973ce507,
+0xbd2386a9,	0x336dbfa6,	0x8de954fe,	0xb823c3bd,
+0x13088720,	0x86bec81c,	0x9265d562,	0x24574333,
+0x92f871dc,	0xa34ef2fd,	0x366b59f0,	0x84a9a050,
+0x81e55751,	0x3f326f2a,	0xbbf66ec3,	0xa784062a,
+0x2c9bc339,	0x889b495a,	0xa44822fe,	0x2e9b5fbd,
+0xa69f6830,	0xa446b369,	0x1da26dbb,	0x820f296a,
+0xbe2c600f,	0x27b90904,	0x88f003c9,	0xa9191c49,
+0x024286cb,	0x9fe1354e,	0x91a7670e,	0x38236d32,
+0x9c70820d,	0xbad8c44e,	0x2f9b35eb,	0x8fb157de,
+0x82ea988a,	0x32f204c5,	0xb6a7fd19,	0xbe64276b,
+0x2ad2ea1d,	0x95449132,	0xa7e07868,	0x3ae7a323,
+0xbd4b67ba,	0xa1a1914f,	0x1f964ad2,	0x85f986d7,
+0xa84bc3cc,	0x2739696c,	0x81196fea,	0xa90cd44b,
+0x05728610,	0x8873057c,	0x83035ccc,	0x24e56003,
+0x863ee7bf,	0xb4b92f27,	0x328f2941,	0x8ace163b,
+0x94f39234,	0x39f2eb7f,	0xa10f03e2,	0xbd9ae083,
+0x325e4950,	0x99241d8d,	0xa07f585f,	0xf2ed61ff,
+0x3341f541,	0x68372f11,	0xa01b5b7f,	0xcc5d571c,
+0x7ac343af,	0xa4a1568a,	0x142d7f47,	0x8f0b9477,
+0x720e7fff,	0xf9214071,	0x84fa4a07,	0x5463cfab,
+0xffa780fc,	0xb8fbd2fb,	0x84a2fdb4,	0xef1c1b2e,
+0x7e4ce78b,	0x8a5e9464,	0x60bbad48,	0x463ffc56,
+0x0d9ac7e7,	0x545e8378,	0x595db59f,	0x04edbae3,
+0x5e4540e3,	0x489aaeb4,	0x94b5b57c,	0xbe693e7a,
+0xcc870854,	0x7f6caa27,	0x0a85aa9d,	0xf678f31c,
+0xc0a00529,	0x350ee2b8,	0x163fd3f5,	0x13fc2e76,
+0xd92bb224,	0xdf829dcb,	0x07db061e,	0x2c99066b,
+0xcb0327e8,	0xe3d4e5e8,	0xd7d7da31,	0x643aed9f,
+0x1994a531,	0x73f84914,	0x5f296334,	0x874490b7,
+0x517b63f6,	0xc04b51ef,	0x34d7de4d,	0x478cb112,
+0x66642af0,	0x2f392ef9,	0x1811ec70,	0x943bc492,
+0x70c61209,	0xeec40884,	0x47bb5b01,	0x255afce3,
+0x393fcd34,	0x1cca4e00,	0x3d2ac97e,	0x314450fa,
+0x838ba96f,	0x4f0239d3,	0xf295395e,	0xb3c38631,
+0x7ea7a143,	0x157a4e43,	0x46f8173f,	0xfbc18d4a,
+0xc401e17a,	0xc4620358,	0xd2ab5437,	0xa01db06f,
+0x58ce91fc,	0x850de1a3,	0x9b542dba,	0xee77f038,
+0xddd3ced6,	0xc225d2ce,	0x63a3f765,	0x3342a06c,
+0x6a780c2f,	0xfaa925b2,	0x366ebeec,	0xbcc9abea,
+0xc7b3fa4e,	0xf4f1123d,	0x5198702c,	0x3e3458b7,
+0x0b1ce9a1,	0x51b1bd7f,	0x711e791e,	0x927d8bed,
+0x91dbaea9,	0x7eefbda9,	0x7a19edd9,	0xdf7b8dce,
+0x5bb40613,	0x0b0c1e0f,	0x85b82c98,	0x18da4dc1,
+0xc5fd78ac,	0x57c1e31d,	0x4c4001b5,	0xe31d2643,
+0xa6afbf58,	0xad200e68,	0xf0114ba4,	0xd6a620f2,
+0xc753a720,	0xac9022a0,	0x28a41f01,	0x22a4ba95,
+0xc00b7531,	0x23d42795,	0xcd836a86,	0x90262708,
+0x3292cad0,	0x40022e39,	0xc1581b0a,	0xe5101550,
+0x6538096b,	0x208c549d,	0x3ce2bf88,	0xa71df38e,
+0x3dec3685,	0xca3949f1,	0x79f3ad1b,	0x3ee8b300,
+0x9d305fc6,	0x7a2e5288,	0xbe81a2f2,	0x7ada0c06,
+0x191c7f01,	0x58dfcbd1,	0xc78dee72,	0x72364226,
+0x1866de12,	0x8d22305c,	0x943a0f0e,	0xc81967ff,
+0x4d55fb0f,	0xaf199be1,	0x90bbda61,	0x4e7c234f,
+0x90cfec16,	0x9b4bcf26,	0x21622023,	0x0926f0fa,
+0x1d504377,	0xa58db427,	0x8d93ce2b,	0x90bfe900,
+0x29e67397,	0x2c1261ed,	0x4ace9474,	0xd5c60282,
+0xe53fb300,	0x8a61a0ab,	0xa7aa0918,	0x4389d7c5,
+0xd09d605c,	0x6c5bedb5,	0xd6d54c51,	0x433dea21,
+0x7ad9e677,	0x813bff76,	0x5a162c75,	0x1ee0661f,
+0x9b6c2030,	0x8e8dc989,	0xcd4bc9fc,	0x4454675b,
+0x8d583c9c,	0xe3400094,	0x116ebb83,	0xe847bc9a,
+0x2a4622dd,	0x2a901e6f,	0xd789b1c0,	0x094e2bbb,
+0x056e563f,	0x9f17e606,	0x8bc79b8d,	0xd2c535c1,
+0x06a45a27,	0x9dc56771,	0xa06649e2,	0x5ff25ac8,
+0x6554961e,	0x98e583d9,	0x38ba93da,	0xdee1de18,
+0x037cb9d5,	0x6b17f195,	0x3431faaf,	0x13860a0d,
+0x28bca10d,	0x0a54c011,	0x9957cdb6,	0x3aa1f429,
+0x9d41b7b3,	0x9aea5be2,	0x60c7ce6b,	0x4cd1c10b,
+0x24ddddcd,	0xe28412ba,	0xa03a5466,	0xa1896879,
+0x59edcb87,	0x1b241765,	0x157bf161,	0xf219f950,
+0xe86ff526,	0x262005d9,	0x11769531,	0xbca15d95,
+0x28f5ef17,	0x1f27e725,	0xc32631d2,	0x07249e61,
+0x1ba851e3,	0x4f49b577,	0xe2a1df5e,	0x826fa7ff,
+0xc34e1e2e,	0x7fe26024,	0xbc19800f,	0x0d368dc9,
+0xe03da0c6,	0xadaa4f9c,	0x9ad1e43c,	0x96f84e44,
+0x0b6cd695,	0x1bb46971,	0x942d6e5b,	0x6316170d,
+0x3164509f,	0xc6659450,	0xb2a0370a,	0xabc208e8,
+0x6d479811,	0x3684bc0e,	0x80b7b101,	0xa50b7bb5,
+0x43d21233,	0xb423559d,	0xf41dcd16,	0xdfd3c276,
+0x3e586469,	0xd9b7630a,	0xb88f9e44,	0x0cda6f4d,
+0xe5bf5844,	0x8709f788,	0xdae37da6,	0x1fb41777,
+0x1d903f69,	0x34383b69,	0xd409ae70,	0xd1c99758,
+0xdedfd7a4,	0xa4bdf018,	0xf4058202,	0x8565d66f,
+0x5365aed9,	0xfa69742e,	0x2cfbfbcf,	0x88a00b60,
+0x506c0713,	0x2866475b,	0x3e1df573,	0xb86f7feb,
+0x31d23a7f,	0xc6320e6a,	0x3ebbc2a5,	0x83a1d4ef,
+0x15169f5f,	0x42a61753,	0x893e553e,	0x4ddbc66d,
+0x7449ec1f,	0x76f65d22,	0x0622e13b,	0x32986f89,
+0x21181b4b,	0x99a80c0a,	0xd6fe00b0,	0x282c0e81,
+0x9fc1cf88,	0x919b855d,	0x618257d8,	0x82c448b8,
+0xe22537a1,	0xa90de388,	0xba73b90c,	0xd765eeb0,
+0x62b2727e,	0xa08dfe20,	0x70b3c8c5,	0x3ef04007,
+0x9f73732b,	0x2201edd7,	0xb836219c,	0xf913af7c,
+0xf50f64ca,	0x93ac107a,	0xf509f84a,	0x6f6026f6,
+0xd9bb8eac,	0x4b268cfa,	0xa65a3fa6,	0x9837cb75,
+0x784fb835,	0x2060576d,	0xb1604cae,	0xb9da4116,
+0xab320cf2,	0x60a1b501,	0x0c73fa79,	0x8d5a6f1e,
+0x57688086,	0x218e4005,	0xca054e3d,	0xc1a3c3ec,
Index: src/cpu/intel/model_67x/model_67x_init.c
===================================================================
--- src/cpu/intel/model_67x/model_67x_init.c	(revision 0)
+++ src/cpu/intel/model_67x/model_67x_init.c	(revision 0)
@@ -0,0 +1,114 @@ 
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2007-2009 coresystems GmbH
+ * Copyright (C) 2010 Joseph Smith <joe@settoplinux.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <console/console.h>
+#include <device/device.h>
+#include <device/pci.h>
+#include <string.h>
+#include <cpu/cpu.h>
+#include <cpu/x86/mtrr.h>
+#include <cpu/x86/msr.h>
+#include <cpu/x86/lapic.h>
+#include <cpu/intel/microcode.h>
+#include <cpu/x86/cache.h>
+
+static const uint32_t microcode_updates[] = {
+	#include "microcode-737-MU16b11c.h"
+	#include "microcode-738-MU16b11d.h"
+	#include "microcode-875-MU16b401.h"
+	#include "microcode-885-MU16b402.h"
+	/*  Dummy terminator  */
+	0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0,
+};
+
+static inline void strcpy(char *dst, char *src)
+{
+	while (*src) *dst++ = *src++;
+}
+
+static void fill_processor_name(char *processor_name)
+{
+	struct cpuid_result regs;
+	char temp_processor_name[49];
+	char *processor_name_start;
+	unsigned int *name_as_ints = (unsigned int *)temp_processor_name;
+	int i;
+
+	for (i=0; i<3; i++) {
+		regs = cpuid(0x80000002 + i);
+		name_as_ints[i*4 + 0] = regs.eax;
+		name_as_ints[i*4 + 1] = regs.ebx;
+		name_as_ints[i*4 + 2] = regs.ecx;
+		name_as_ints[i*4 + 3] = regs.edx;
+	}
+
+	temp_processor_name[48] = 0;
+
+	/* Skip leading spaces */
+	processor_name_start = temp_processor_name;
+	while (*processor_name_start == ' ')
+		processor_name_start++;
+
+	memset(processor_name, 0, 49);
+	strcpy(processor_name, processor_name_start);
+}
+
+static void model_67x_init(device_t cpu)
+{
+	char processor_name[49];
+
+	/* Turn on caching if we haven't already */
+	x86_enable_cache();
+
+	/* Update the microcode */
+	intel_update_microcode(microcode_updates);
+
+	/* Print processor name */
+	fill_processor_name(processor_name);
+	printk(BIOS_INFO, "CPU: %s.\n", processor_name);
+
+	/* Setup MTRRs */
+	x86_setup_mtrrs(36);
+	x86_mtrr_check();
+
+	/* Enable the local cpu apics */
+	setup_lapic();
+}
+
+static struct device_operations cpu_dev_ops = {
+	.init     = model_67x_init,
+};
+
+static struct cpu_device_id cpu_table[] = {
+	{ X86_VENDOR_INTEL, 0x0672 },
+	{ X86_VENDOR_INTEL, 0x0673 },
+	{ 0, 0 },
+};
+
+static const struct cpu_driver driver __cpu_driver = {
+	.ops      = &cpu_dev_ops,
+	.id_table = cpu_table,
+};
+
Index: src/cpu/intel/model_67x/microcode-875-MU16b401.h
===================================================================
--- src/cpu/intel/model_67x/microcode-875-MU16b401.h	(revision 0)
+++ src/cpu/intel/model_67x/microcode-875-MU16b401.h	(revision 0)
@@ -0,0 +1,163 @@ 
+//+++
+//       Copyright (c) <1995-2009>, 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.
+//
+//---
+/*  Sun Sep 27 10:52:54 CST 2009  */
+/*  875-MU16b401.inc  */
+0x00000001,	0x00000001,	0x01102002,	0x000006b4,
+0x58213e6a,	0x00000001,	0x00000010,	0x00000000,
+0x00000000,	0x00000000,	0x00000000,	0x00000000,
+0x1016aa4c,	0xba6d2007,	0x139b094a,	0x8d5cd4f5,
+0xece206e4,	0xfac0aa68,	0x26674533,	0x9464601b,
+0x4b3f7f76,	0x64133194,	0x37c151ed,	0x3ee0e278,
+0x7cffc9c4,	0x562be2dc,	0xd1067021,	0xaf8f1728,
+0xbad0534c,	0xf7a67cca,	0xdd34e969,	0x774bb723,
+0x5635256e,	0xd23cce15,	0x3c7c50ce,	0xa5faaecc,
+0x1c717607,	0xcc1e6f3e,	0x16a4c6a7,	0x58bd5816,
+0x0a2e73b3,	0xd65104e4,	0xb873ec1a,	0xe6cdd62e,
+0xcd278f3c,	0x2e081c41,	0xf43f4439,	0xbcdfa892,
+0xbb20c46f,	0xe0c8f8e1,	0xa619c4cc,	0x48eea22e,
+0xcfdf4bc4,	0xefaf4494,	0xa7cac511,	0x783c367e,
+0x6fc43ebc,	0x67e32786,	0xf0c1fbb1,	0xf93d5b0d,
+0x36e9b7e8,	0xc3b4dc36,	0x4beec4fb,	0x88382c9d,
+0x735dd739,	0xc5e23b67,	0x0d325dd4,	0xfe8bd98b,
+0xa0f294f9,	0x1916bcd9,	0x7b73f066,	0x26758acb,
+0xf10be125,	0x5aee77d0,	0xa005f65a,	0xd4d88c84,
+0x02340625,	0x687da1c4,	0x29906f8c,	0x20ca4e9c,
+0xcad37ebf,	0x15ae02ef,	0x06ac0241,	0x60c210b8,
+0x07bb359b,	0x970ada27,	0xd15463c5,	0xb1df482a,
+0x32c0386e,	0x72719013,	0xbe45b1da,	0xda807e08,
+0xe1340a36,	0x9bbc789b,	0x71ae0eb2,	0xa7b0e639,
+0x12948517,	0x8bd37587,	0x083273be,	0x1a73a3be,
+0x2e0cf9a6,	0x3c401aa6,	0xc74c77f8,	0xe6ee9da6,
+0x3188f408,	0xcdfe98ff,	0x71369d02,	0x032e20b7,
+0xb9083418,	0xe5ef65a8,	0x3a9317d2,	0x23117ad6,
+0x6c303cfc,	0xe6aed513,	0x97b7af1e,	0xe277f5aa,
+0xd1f788a7,	0x72305569,	0x2a241259,	0x7f786fa4,
+0xeba79f99,	0x740b14fa,	0x2a8e8a3c,	0x7824a0f2,
+0xb1b4588e,	0xc775677d,	0xbc2372a6,	0xd485e398,
+0x8a989d5d,	0x960199ba,	0xe5dca6a2,	0x818b5c9c,
+0x655f760d,	0x8a75081a,	0x86a6d67a,	0x05e74583,
+0x160d2e9b,	0xecf3f2b6,	0xb0e5f342,	0x162dcc4b,
+0x95d05b92,	0xec736eb1,	0xad367c81,	0x6b98845e,
+0xaea10969,	0x32a923cc,	0x0e20e511,	0x11f1d80d,
+0xa80bff0c,	0xdee5c142,	0x5618820b,	0x9ab1530f,
+0xeb2e5aad,	0x71986a78,	0x4b9f79ab,	0xdcb38492,
+0x5d1df5ee,	0xa6947ea5,	0x4b81b7aa,	0x4fd1194a,
+0x809256af,	0x2d7d2c85,	0xc3a3d15b,	0x4e4dde55,
+0xa275c268,	0xe584005b,	0xe7975491,	0xed9d3d06,
+0x6aaf4acf,	0xf4e3f967,	0x7c04ded2,	0x9fefbb0c,
+0xff806dc8,	0xbe36d1ce,	0xdc9e4a45,	0xe54a5b71,
+0xea53d6aa,	0xf0e13f21,	0x250f7e77,	0x09429ec2,
+0xb34360be,	0xdf249256,	0x4b6b8d57,	0x6f3b9f7d,
+0x1dd4d988,	0x6a68c719,	0x82d171e5,	0x04de6517,
+0xd2628f0d,	0xfe6fd4e1,	0x8f3cbd0b,	0xd8517c88,
+0x7993bb4f,	0x9487f25f,	0x493ad1f1,	0x781b2745,
+0xd25de9ed,	0x63fe8ffa,	0x83be8468,	0x5955efd3,
+0xd07886cb,	0x3cbbf313,	0x10255dcf,	0x4fe6e5df,
+0x2afbe5ce,	0x2731cea5,	0x3ca3a0b4,	0x9a73e5b3,
+0x7022f776,	0x43f0062b,	0xac060c7c,	0x89c88761,
+0xdf86c5be,	0x0f705bcc,	0x811d31cd,	0x56e72be7,
+0x473becc1,	0x74d511a7,	0x7f44e656,	0xc04d3763,
+0x487e15a7,	0x851f93bd,	0xc0cfdff8,	0x11b62ba1,
+0x45ebf606,	0x5ae10f89,	0xcfd063cf,	0x25b52d80,
+0x03b35a1a,	0x7e5be251,	0x643e69b1,	0xe50e0a26,
+0x73a3be25,	0x7bd17fb9,	0x72ac0b0e,	0x2f04ee8b,
+0x8e614214,	0x73fbbb40,	0x6c87f572,	0xc2cca0b1,
+0x3a575557,	0xe38b025c,	0x57d61954,	0x5a77769b,
+0x123d2893,	0xd21f163e,	0xef617597,	0xbfd67b8c,
+0x838ba96f,	0x4f0239d3,	0xf295395e,	0xb3c38631,
+0x7ea7a143,	0x157a4e43,	0x46f8173f,	0xfbc18d4a,
+0xc401e17a,	0xc4620358,	0xd2ab5437,	0xa01db06f,
+0x58ce91fc,	0x850de1a3,	0x9b542dba,	0xee77f038,
+0xddd3ced6,	0xc225d2ce,	0x63a3f765,	0x3342a06c,
+0x6a780c2f,	0xfaa925b2,	0x366ebeec,	0xbcc9abea,
+0xc7b3fa4e,	0xf4f1123d,	0x5198702c,	0x3e3458b7,
+0x0b1ce9a1,	0x51b1bd7f,	0x711e791e,	0x927d8bed,
+0x91dbaea9,	0x7eefbda9,	0x7a19edd9,	0xdf7b8dce,
+0x5bb40613,	0x0b0c1e0f,	0x85b82c98,	0x18da4dc1,
+0xc5fd78ac,	0x57c1e31d,	0x4c4001b5,	0xe31d2643,
+0xa6afbf58,	0xad200e68,	0xf0114ba4,	0xd6a620f2,
+0xc753a720,	0xac9022a0,	0x28a41f01,	0x22a4ba95,
+0xc00b7531,	0x23d42795,	0xcd836a86,	0x90262708,
+0x3292cad0,	0x40022e39,	0xc1581b0a,	0xe5101550,
+0x6538096b,	0x208c549d,	0x3ce2bf88,	0xa71df38e,
+0x3dec3685,	0xca3949f1,	0x79f3ad1b,	0x3ee8b300,
+0x9d305fc6,	0x7a2e5288,	0xbe81a2f2,	0x7ada0c06,
+0x191c7f01,	0x58dfcbd1,	0xc78dee72,	0x72364226,
+0x1866de12,	0x8d22305c,	0x943a0f0e,	0xc81967ff,
+0x4d55fb0f,	0xaf199be1,	0x90bbda61,	0x4e7c234f,
+0x90cfec16,	0x9b4bcf26,	0x21622023,	0x0926f0fa,
+0x1d504377,	0xa58db427,	0x8d93ce2b,	0x90bfe900,
+0x29e67397,	0x2c1261ed,	0x4ace9474,	0xd5c60282,
+0xe53fb300,	0x8a61a0ab,	0xa7aa0918,	0x4389d7c5,
+0xd09d605c,	0x6c5bedb5,	0xd6d54c51,	0x433dea21,
+0x7ad9e677,	0x813bff76,	0x5a162c75,	0x1ee0661f,
+0x9b6c2030,	0x8e8dc989,	0xcd4bc9fc,	0x4454675b,
+0x8d583c9c,	0xe3400094,	0x116ebb83,	0xe847bc9a,
+0x2a4622dd,	0x2a901e6f,	0xd789b1c0,	0x094e2bbb,
+0x056e563f,	0x9f17e606,	0x8bc79b8d,	0xd2c535c1,
+0x06a45a27,	0x9dc56771,	0xa06649e2,	0x5ff25ac8,
+0x6554961e,	0x98e583d9,	0x38ba93da,	0xdee1de18,
+0x037cb9d5,	0x6b17f195,	0x3431faaf,	0x13860a0d,
+0x28bca10d,	0x0a54c011,	0x9957cdb6,	0x3aa1f429,
+0x9d41b7b3,	0x9aea5be2,	0x60c7ce6b,	0x4cd1c10b,
+0x24ddddcd,	0xe28412ba,	0xa03a5466,	0xa1896879,
+0x59edcb87,	0x1b241765,	0x157bf161,	0xf219f950,
+0xe86ff526,	0x262005d9,	0x11769531,	0xbca15d95,
+0x28f5ef17,	0x1f27e725,	0xc32631d2,	0x07249e61,
+0x1ba851e3,	0x4f49b577,	0xe2a1df5e,	0x826fa7ff,
+0xc34e1e2e,	0x7fe26024,	0xbc19800f,	0x0d368dc9,
+0xe03da0c6,	0xadaa4f9c,	0x9ad1e43c,	0x96f84e44,
+0x0b6cd695,	0x1bb46971,	0x942d6e5b,	0x6316170d,
+0x3164509f,	0xc6659450,	0xb2a0370a,	0xabc208e8,
+0x6d479811,	0x3684bc0e,	0x80b7b101,	0xa50b7bb5,
+0x43d21233,	0xb423559d,	0xf41dcd16,	0xdfd3c276,
+0x3e586469,	0xd9b7630a,	0xb88f9e44,	0x0cda6f4d,
+0xe5bf5844,	0x8709f788,	0xdae37da6,	0x1fb41777,
+0x1d903f69,	0x34383b69,	0xd409ae70,	0xd1c99758,
+0xdedfd7a4,	0xa4bdf018,	0xf4058202,	0x8565d66f,
+0x5365aed9,	0xfa69742e,	0x2cfbfbcf,	0x88a00b60,
+0x506c0713,	0x2866475b,	0x3e1df573,	0xb86f7feb,
+0x31d23a7f,	0xc6320e6a,	0x3ebbc2a5,	0x83a1d4ef,
+0x15169f5f,	0x42a61753,	0x893e553e,	0x4ddbc66d,
+0x7449ec1f,	0x76f65d22,	0x0622e13b,	0x32986f89,
+0x21181b4b,	0x99a80c0a,	0xd6fe00b0,	0x282c0e81,
+0x9fc1cf88,	0x919b855d,	0x618257d8,	0x82c448b8,
+0xe22537a1,	0xa90de388,	0xba73b90c,	0xd765eeb0,
+0x62b2727e,	0xa08dfe20,	0x70b3c8c5,	0x3ef04007,
+0x9f73732b,	0x2201edd7,	0xb836219c,	0xf913af7c,
+0xf50f64ca,	0x93ac107a,	0xf509f84a,	0x6f6026f6,
+0xd9bb8eac,	0x4b268cfa,	0xa65a3fa6,	0x9837cb75,
+0x784fb835,	0x2060576d,	0xb1604cae,	0xb9da4116,
+0xab320cf2,	0x60a1b501,	0x0c73fa79,	0x8d5a6f1e,
+0x57688086,	0x218e4005,	0xca054e3d,	0xc1a3c3ec,
Index: src/cpu/intel/model_67x/microcode-885-MU16b402.h
===================================================================
--- src/cpu/intel/model_67x/microcode-885-MU16b402.h	(revision 0)
+++ src/cpu/intel/model_67x/microcode-885-MU16b402.h	(revision 0)
@@ -0,0 +1,163 @@ 
+//+++
+//       Copyright (c) <1995-2009>, 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.
+//
+//---
+/*  Sun Sep 27 10:52:54 CST 2009  */
+/*  885-MU16b402.inc  */
+0x00000001,	0x00000002,	0x01112002,	0x000006b4,
+0xf512ec8f,	0x00000001,	0x00000020,	0x00000000,
+0x00000000,	0x00000000,	0x00000000,	0x00000000,
+0x8d14e438,	0x725bfb67,	0x2d37e08c,	0xe7b19dfb,
+0x4c8d3c95,	0xffc6f57a,	0xfccb06b2,	0xc6e24fdf,
+0x1a3c7f2b,	0xa4b0a3ca,	0x09db4042,	0x61f7da54,
+0xf3aa8795,	0x7b8f1487,	0xecd5a1b8,	0xdc8c213d,
+0xcca7e859,	0xea53a869,	0x6029671d,	0xa2aa975e,
+0x5ad10a3c,	0x61dcc9e8,	0x6949a4d4,	0x114d569b,
+0xf3373941,	0x1c1838fd,	0xb175a480,	0x4f01d669,
+0xe91ced35,	0xe1d0c798,	0xc51cb3ea,	0xb1ca685f,
+0xa6d307d8,	0x4abbe7b0,	0xd37e4089,	0x43f218ca,
+0x2c775ea9,	0x3e312577,	0x948e06b0,	0x09cc6398,
+0x0f717e24,	0xac27b46c,	0xbeb41e37,	0xb6f8bcfb,
+0xe357533b,	0xe99f4a97,	0xb20b928d,	0xa3239533,
+0xd483e1ee,	0xbe688435,	0x11ce1bc2,	0xef04a8b7,
+0x10c9a575,	0xd74f47ec,	0x7e1caa09,	0xbdf4f1b4,
+0xbf14445b,	0x21b2f2a2,	0x63f32e79,	0x49df792a,
+0xd81e7458,	0x8d1996f9,	0x0ccd33e5,	0x907d96dc,
+0xd5b4ae37,	0xd743e460,	0x8d1eeb27,	0xbefe322f,
+0x84edfa2e,	0x94a23dcb,	0x5519aa65,	0x60fb77a8,
+0xfb3b499d,	0x5accc8df,	0x7e4fa2ae,	0xee70a051,
+0xa00e5234,	0x7411fac7,	0x9e3bd4ac,	0x8870b19a,
+0x0bf8210d,	0xa13413ee,	0xb18ccc76,	0x72217b46,
+0xbac79caa,	0x3c196591,	0x975b9d8e,	0x8750facc,
+0x4f4ba92a,	0x54a1c0e8,	0x2c30a8bc,	0xcb228a22,
+0x8a1a76a9,	0x20f0b73c,	0xcbf6d97d,	0x2c3d632f,
+0x487e9718,	0xdb39229d,	0x9dec941c,	0x857c67ac,
+0x3fcb6bed,	0x24b8a438,	0x19802922,	0x6e2ef495,
+0x2363800c,	0x8ed26f96,	0xe833a8b4,	0xf0f90321,
+0xeee74569,	0x6fe1b339,	0xb571118c,	0x96faaa1f,
+0xc0a5b115,	0xe0103aa4,	0x09679bc9,	0xe6c7ecc3,
+0xddd7fab7,	0x169d9eab,	0x46de7a6b,	0x8e62dc8d,
+0x0352127f,	0x9bbec1b4,	0xb4a22510,	0x06f94e5f,
+0xd7cc03d6,	0xb2e2c178,	0x8d8a48ea,	0xa089e856,
+0x6f2e29a3,	0xa6de73c0,	0x099bb823,	0xd642a2b6,
+0xd222edee,	0x4d618164,	0x8028d02a,	0xe7462bd9,
+0x993d5b65,	0x0d76b5b0,	0x20166d1b,	0x5000520b,
+0x2d1b6fc8,	0x417d7251,	0x7c13ac74,	0x1aac7da6,
+0xe3843e3d,	0xb76299a0,	0x9fb249c1,	0x4864d56e,
+0xe12eab25,	0x38ce3d26,	0xc0d5b8a5,	0xd4910b5c,
+0xbd428d74,	0x58ff0ae3,	0x78669ee4,	0x10471ff9,
+0x534e002a,	0xe1d8feeb,	0xf4feee35,	0x76f222b0,
+0x68c0270c,	0x0030d599,	0xd4241546,	0x8cfda1d1,
+0x3852f115,	0xd7fb3466,	0x58fe4578,	0x57038162,
+0xdb6dc364,	0x88baec17,	0xaf062790,	0xb70f6e83,
+0x73fd4542,	0x010debbc,	0xdd02bcda,	0xd7b44398,
+0xb2856418,	0x76aa8ecb,	0x72043c88,	0x00ba511e,
+0x58df48d2,	0x8a10f33c,	0x684fd7a5,	0x47f15765,
+0xe38065bf,	0x584d4eed,	0xa434b261,	0xc9254576,
+0xe10ff696,	0x9882bde6,	0xb0967eda,	0x8b12dd5b,
+0x1155b6a9,	0x679e8f2d,	0xe522ca3c,	0xff4432e0,
+0xf1172213,	0x540032ff,	0xeaa78315,	0x003217dc,
+0x96a5e987,	0x02d92ea1,	0x176db865,	0xbff26fc8,
+0xa1ed85cc,	0x8d1e3673,	0xaf598c4d,	0xbb472150,
+0xa522b7dc,	0x755194c6,	0x2cdafab3,	0x8ebd657c,
+0x6197fa59,	0x2ef39c18,	0x8f63f7e8,	0xf1cf5923,
+0x55e21350,	0xd44e22d0,	0xe134e739,	0xbd670fe0,
+0xe2685063,	0x6dae2e19,	0xfbce6e8d,	0x3d4fdea6,
+0xa7f23d9c,	0x1c7fe950,	0x2a23ef65,	0xf3f3a2f6,
+0xa3c1fa25,	0xc5b98bc7,	0xc2f482b2,	0xc7745101,
+0xfcf64472,	0x3f22aecb,	0x92018d3c,	0x24818346,
+0x838ba96f,	0x4f0239d3,	0xf295395e,	0xb3c38631,
+0x7ea7a143,	0x157a4e43,	0x46f8173f,	0xfbc18d4a,
+0xc401e17a,	0xc4620358,	0xd2ab5437,	0xa01db06f,
+0x58ce91fc,	0x850de1a3,	0x9b542dba,	0xee77f038,
+0xddd3ced6,	0xc225d2ce,	0x63a3f765,	0x3342a06c,
+0x6a780c2f,	0xfaa925b2,	0x366ebeec,	0xbcc9abea,
+0xc7b3fa4e,	0xf4f1123d,	0x5198702c,	0x3e3458b7,
+0x0b1ce9a1,	0x51b1bd7f,	0x711e791e,	0x927d8bed,
+0x91dbaea9,	0x7eefbda9,	0x7a19edd9,	0xdf7b8dce,
+0x5bb40613,	0x0b0c1e0f,	0x85b82c98,	0x18da4dc1,
+0xc5fd78ac,	0x57c1e31d,	0x4c4001b5,	0xe31d2643,
+0xa6afbf58,	0xad200e68,	0xf0114ba4,	0xd6a620f2,
+0xc753a720,	0xac9022a0,	0x28a41f01,	0x22a4ba95,
+0xc00b7531,	0x23d42795,	0xcd836a86,	0x90262708,
+0x3292cad0,	0x40022e39,	0xc1581b0a,	0xe5101550,
+0x6538096b,	0x208c549d,	0x3ce2bf88,	0xa71df38e,
+0x3dec3685,	0xca3949f1,	0x79f3ad1b,	0x3ee8b300,
+0x9d305fc6,	0x7a2e5288,	0xbe81a2f2,	0x7ada0c06,
+0x191c7f01,	0x58dfcbd1,	0xc78dee72,	0x72364226,
+0x1866de12,	0x8d22305c,	0x943a0f0e,	0xc81967ff,
+0x4d55fb0f,	0xaf199be1,	0x90bbda61,	0x4e7c234f,
+0x90cfec16,	0x9b4bcf26,	0x21622023,	0x0926f0fa,
+0x1d504377,	0xa58db427,	0x8d93ce2b,	0x90bfe900,
+0x29e67397,	0x2c1261ed,	0x4ace9474,	0xd5c60282,
+0xe53fb300,	0x8a61a0ab,	0xa7aa0918,	0x4389d7c5,
+0xd09d605c,	0x6c5bedb5,	0xd6d54c51,	0x433dea21,
+0x7ad9e677,	0x813bff76,	0x5a162c75,	0x1ee0661f,
+0x9b6c2030,	0x8e8dc989,	0xcd4bc9fc,	0x4454675b,
+0x8d583c9c,	0xe3400094,	0x116ebb83,	0xe847bc9a,
+0x2a4622dd,	0x2a901e6f,	0xd789b1c0,	0x094e2bbb,
+0x056e563f,	0x9f17e606,	0x8bc79b8d,	0xd2c535c1,
+0x06a45a27,	0x9dc56771,	0xa06649e2,	0x5ff25ac8,
+0x6554961e,	0x98e583d9,	0x38ba93da,	0xdee1de18,
+0x037cb9d5,	0x6b17f195,	0x3431faaf,	0x13860a0d,
+0x28bca10d,	0x0a54c011,	0x9957cdb6,	0x3aa1f429,
+0x9d41b7b3,	0x9aea5be2,	0x60c7ce6b,	0x4cd1c10b,
+0x24ddddcd,	0xe28412ba,	0xa03a5466,	0xa1896879,
+0x59edcb87,	0x1b241765,	0x157bf161,	0xf219f950,
+0xe86ff526,	0x262005d9,	0x11769531,	0xbca15d95,
+0x28f5ef17,	0x1f27e725,	0xc32631d2,	0x07249e61,
+0x1ba851e3,	0x4f49b577,	0xe2a1df5e,	0x826fa7ff,
+0xc34e1e2e,	0x7fe26024,	0xbc19800f,	0x0d368dc9,
+0xe03da0c6,	0xadaa4f9c,	0x9ad1e43c,	0x96f84e44,
+0x0b6cd695,	0x1bb46971,	0x942d6e5b,	0x6316170d,
+0x3164509f,	0xc6659450,	0xb2a0370a,	0xabc208e8,
+0x6d479811,	0x3684bc0e,	0x80b7b101,	0xa50b7bb5,
+0x43d21233,	0xb423559d,	0xf41dcd16,	0xdfd3c276,
+0x3e586469,	0xd9b7630a,	0xb88f9e44,	0x0cda6f4d,
+0xe5bf5844,	0x8709f788,	0xdae37da6,	0x1fb41777,
+0x1d903f69,	0x34383b69,	0xd409ae70,	0xd1c99758,
+0xdedfd7a4,	0xa4bdf018,	0xf4058202,	0x8565d66f,
+0x5365aed9,	0xfa69742e,	0x2cfbfbcf,	0x88a00b60,
+0x506c0713,	0x2866475b,	0x3e1df573,	0xb86f7feb,
+0x31d23a7f,	0xc6320e6a,	0x3ebbc2a5,	0x83a1d4ef,
+0x15169f5f,	0x42a61753,	0x893e553e,	0x4ddbc66d,
+0x7449ec1f,	0x76f65d22,	0x0622e13b,	0x32986f89,
+0x21181b4b,	0x99a80c0a,	0xd6fe00b0,	0x282c0e81,
+0x9fc1cf88,	0x919b855d,	0x618257d8,	0x82c448b8,
+0xe22537a1,	0xa90de388,	0xba73b90c,	0xd765eeb0,
+0x62b2727e,	0xa08dfe20,	0x70b3c8c5,	0x3ef04007,
+0x9f73732b,	0x2201edd7,	0xb836219c,	0xf913af7c,
+0xf50f64ca,	0x93ac107a,	0xf509f84a,	0x6f6026f6,
+0xd9bb8eac,	0x4b268cfa,	0xa65a3fa6,	0x9837cb75,
+0x784fb835,	0x2060576d,	0xb1604cae,	0xb9da4116,
+0xab320cf2,	0x60a1b501,	0x0c73fa79,	0x8d5a6f1e,
+0x57688086,	0x218e4005,	0xca054e3d,	0xc1a3c3ec,
Index: src/cpu/intel/model_67x/cache_as_ram.inc
===================================================================
--- src/cpu/intel/model_67x/cache_as_ram.inc	(revision 0)
+++ src/cpu/intel/model_67x/cache_as_ram.inc	(revision 0)
@@ -0,0 +1,412 @@ 
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2000,2007 Ronald G. Minnich <rminnich@gmail.com>
+ * Copyright (C) 2005 Eswar Nallusamy, LANL
+ * Copyright (C) 2005 Tyan
+ * (Written by Yinghai Lu <yhlu@tyan.com> for Tyan)
+ * Copyright (C) 2007 coresystems GmbH
+ * (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
+ * Copyright (C) 2007 Carl-Daniel Hailfinger
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+/* We will use 4K bytes only */
+/* disable HyperThreading is done by eswar*/
+/* other's is the same as AMD except remove amd specific msr */
+
+#define CacheSize CONFIG_DCACHE_RAM_SIZE
+#define CacheBase (0xd0000 - CacheSize)
+
+#include <cpu/x86/stack.h>
+#include <cpu/x86/mtrr.h>
+
+	/* Save the BIST result */
+	movl	%eax, %ebp
+
+CacheAsRam:
+	// Check whether the processor has HT capability
+	movl	$01, %eax
+	cpuid
+	btl	$28, %edx
+	jnc	NotHtProcessor
+	bswapl	%ebx
+	cmpb	$01, %bh
+	jbe	NotHtProcessor
+
+	// It is a HT processor; Send SIPI to the other logical processor
+	// within this processor so that the CAR related common system registers
+	// are programmed accordingly
+
+	// Use some register that is common to both logical processors
+	// as semaphore. Refer Appendix B, Vol.3
+	xorl	%eax, %eax
+	xorl	%edx, %edx
+	movl	$0x250, %ecx
+	wrmsr
+
+	// Figure out the logical AP's APIC ID; the following logic will work
+	// only for processors with 2 threads
+	// Refer to Vol 3. Table 7-1 for details about this logic
+	movl	$0xFEE00020, %esi
+	movl	(%esi), %ebx
+	andl	$0xFF000000, %ebx
+	bswapl	%ebx
+	btl	$0, %ebx
+	jnc	LogicalAP0
+	andb	$0xFE, %bl
+	jmp	Send_SIPI
+LogicalAP0:
+	orb	$0x01, %bl
+Send_SIPI:
+	bswapl	%ebx  // ebx - logical AP's APIC ID
+
+	// Fill up the IPI command registers in the Local APIC mapped to default address
+	// and issue SIPI to the other logical processor within this processor die.
+Retry_SIPI:
+	movl	%ebx, %eax
+	movl	$0xFEE00310, %esi
+	movl	%eax, (%esi)
+
+	// SIPI vector - F900:0000
+	movl	$0x000006F9, %eax
+	movl	$0xFEE00300, %esi
+	movl	%eax, (%esi)
+
+	movl	$0x30, %ecx
+SIPI_Delay:
+	pause
+	decl	%ecx
+	jnz	SIPI_Delay
+
+	movl	(%esi), %eax
+	andl	$0x00001000, %eax
+	jnz	Retry_SIPI
+
+	// Wait for the Logical AP to complete initialization
+LogicalAP_SIPINotdone:
+	movl	$0x250, %ecx
+	rdmsr
+	orl	%eax, %eax
+	jz	LogicalAP_SIPINotdone
+
+NotHtProcessor:
+
+#if 1
+	/* Set the default memory type and enable fixed and variable MTRRs */
+	movl	$MTRRdefType_MSR, %ecx
+	xorl	%edx, %edx
+	/* Enable Variable and Fixed MTRRs */
+	movl	$0x00000c00, %eax
+	wrmsr
+#endif
+
+	/* Clear all MTRRs */
+	xorl	%edx, %edx
+	movl	$fixed_mtrr_msr, %esi
+
+clear_fixed_var_mtrr:
+	lodsl	(%esi), %eax
+	testl	%eax, %eax
+	jz	clear_fixed_var_mtrr_out
+
+	movl	%eax, %ecx
+	xorl	%eax, %eax
+	wrmsr
+
+	jmp	clear_fixed_var_mtrr
+
+fixed_mtrr_msr:
+	.long	0x250, 0x258, 0x259
+	.long	0x268, 0x269, 0x26A
+	.long	0x26B, 0x26C, 0x26D
+	.long	0x26E, 0x26F
+var_mtrr_msr:
+	.long	0x200, 0x201, 0x202, 0x203
+	.long	0x204, 0x205, 0x206, 0x207
+	.long	0x208, 0x209, 0x20A, 0x20B
+	.long	0x20C, 0x20D, 0x20E, 0x20F
+	.long	0x000 /* NULL, end of table */
+
+clear_fixed_var_mtrr_out:
+
+/* 0x06 is the WB IO type for a given 4k segment.
+ * segs is the number of 4k segments in the area of the particular
+ *   register we want to use for CAR.
+ * reg is the register where the IO type should be stored.
+ */
+.macro extractmask segs, reg
+.if \segs <= 0
+	/* The xorl here is superfluous because at the point of first execution
+	 * of this macro, %eax and %edx are cleared. Later invocations of this
+	 * macro will have a monotonically increasing segs parameter.
+	 */
+	xorl \reg, \reg
+.elseif \segs == 1
+	movl $0x06000000, \reg /* WB IO type */
+.elseif \segs == 2
+	movl $0x06060000, \reg /* WB IO type */
+.elseif \segs == 3
+	movl $0x06060600, \reg /* WB IO type */
+.elseif \segs >= 4
+	movl $0x06060606, \reg /* WB IO type */
+.endif
+.endm
+
+/* size is the cache size in bytes we want to use for CAR.
+ * windowoffset is the 32k-aligned window into CAR size
+ */
+.macro simplemask carsize, windowoffset
+	.set gas_bug_workaround,(((\carsize - \windowoffset) / 0x1000) - 4)
+	extractmask gas_bug_workaround, %eax
+	.set gas_bug_workaround,(((\carsize - \windowoffset) / 0x1000))
+	extractmask gas_bug_workaround, %edx
+/* Without the gas bug workaround, the entire macro would consist only of the
+ * two lines below.
+	extractmask (((\carsize - \windowoffset) / 0x1000) - 4), %eax
+	extractmask (((\carsize - \windowoffset) / 0x1000)), %edx
+ */
+.endm
+
+#if CacheSize > 0x10000
+#error Invalid CAR size, must be at most 64k.
+#endif
+#if CacheSize < 0x1000
+#error Invalid CAR size, must be at least 4k. This is a processor limitation.
+#endif
+#if (CacheSize & (0x1000 - 1))
+#error Invalid CAR size, is not a multiple of 4k. This is a processor limitation.
+#endif
+
+#if CacheSize > 0x8000
+	/* enable caching for 32K-64K using fixed mtrr */
+	movl	$0x268, %ecx  /* fix4k_c0000*/
+	simplemask CacheSize, 0x8000
+	wrmsr
+#endif
+
+	/* enable caching for 0-32K using fixed mtrr */
+	movl	$0x269, %ecx  /* fix4k_c8000*/
+	simplemask CacheSize, 0
+	wrmsr
+
+#if defined(CONFIG_XIP_ROM_SIZE) && defined(CONFIG_XIP_ROM_BASE)
+#if defined(CONFIG_TINY_BOOTBLOCK) && CONFIG_TINY_BOOTBLOCK
+#define REAL_XIP_ROM_BASE AUTO_XIP_ROM_BASE
+#else
+#define REAL_XIP_ROM_BASE CONFIG_XIP_ROM_BASE
+#endif
+	/* enable write base caching so we can do execute in place
+	 * on the flash rom.
+	 */
+	movl	$0x202, %ecx
+	xorl	%edx, %edx
+	movl    $REAL_XIP_ROM_BASE, %eax
+	orl     $MTRR_TYPE_WRBACK, %eax
+	wrmsr
+
+	movl	$0x203, %ecx
+	movl	$0x0000000f, %edx
+	movl	$(~(CONFIG_XIP_ROM_SIZE - 1) | 0x800), %eax
+	wrmsr
+#endif /* CONFIG_XIP_ROM_SIZE && CONFIG_XIP_ROM_BASE */
+
+	/* enable cache */
+	movl	%cr0, %eax
+	andl	$0x9fffffff, %eax
+	movl	%eax, %cr0
+
+	/* Read the range with lodsl*/
+	movl	$CacheBase, %esi
+	cld
+	movl	$(CacheSize >> 2), %ecx
+	rep	lodsl
+
+	/* Clear the range */
+	movl	$CacheBase, %edi
+	movl	$(CacheSize >> 2), %ecx
+	xorl	%eax, %eax
+	rep	stosl
+
+
+#if 0
+	/* check the cache as ram */
+	movl	$CacheBase, %esi
+	movl	$(CacheSize>>2), %ecx
+.xin1:
+	movl	%esi, %eax
+	movl	%eax, (%esi)
+	decl	%ecx
+	je	.xout1
+	add	$4, %esi
+	jmp	.xin1
+.xout1:
+
+	movl	$CacheBase, %esi
+//        movl    $(CacheSize>>2), %ecx
+	movl $4, %ecx
+.xin1x:
+	movl	%esi, %eax
+
+	movl	$0x4000, %edx
+	movb	%ah, %al
+.testx1:
+	outb %al, $0x80
+	decl	%edx
+	jnz .testx1
+
+	movl	(%esi), %eax
+	cmpb 0xff, %al
+	je .xin2  /* dont show */
+
+	movl	$0x4000, %edx
+.testx2:
+	outb %al, $0x80
+	decl	%edx
+	jnz .testx2
+
+.xin2:  decl     %ecx
+	je	.xout1x
+	add	$4, %esi
+	jmp	.xin1x
+.xout1x:
+
+#endif
+
+	movl	$(CacheBase + CacheSize - 4), %eax
+	movl	%eax, %esp
+
+	/* Load a different set of data segments */
+#if CONFIG_USE_INIT
+	movw	$CACHE_RAM_DATA_SEG, %ax
+	movw	%ax, %ds
+	movw	%ax, %es
+	movw	%ax, %ss
+#endif
+
+lout:
+	/* Restore the BIST result */
+	movl	%ebp, %eax
+
+	/* We need to set ebp ? No need */
+	movl	%esp, %ebp
+	pushl	%eax  /* bist */
+	call	main
+
+	/*
+	FIXME : backup stack in CACHE_AS_RAM into mmx and sse and after we get STACK up, we restore that.
+		It is only needed if we want to go back
+	*/
+
+        /* We don't need cache as ram for now on */
+        /* disable cache */
+	movl    %cr0, %eax
+	orl    $(0x1<<30),%eax
+	movl    %eax, %cr0
+
+        /* clear sth */
+	movl    $0x269, %ecx  /* fix4k_c8000*/
+	xorl    %edx, %edx
+	xorl    %eax, %eax
+	wrmsr
+
+#if CONFIG_DCACHE_RAM_SIZE > 0x8000
+	movl    $0x268, %ecx  /* fix4k_c0000*/
+	wrmsr
+#endif
+
+        /* Set the default memory type and disable fixed and enable variable MTRRs */
+	movl    $0x2ff, %ecx
+//	movl    $MTRRdefType_MSR, %ecx
+	xorl    %edx, %edx
+        /* Enable Variable and Disable Fixed MTRRs */
+	movl    $0x00000800, %eax
+	wrmsr
+
+#if defined(CLEAR_FIRST_1M_RAM)
+        /* enable caching for first 1M using variable mtrr */
+	movl    $0x200, %ecx
+	xorl    %edx, %edx
+	movl     $(0 | 1), %eax
+//	movl     $(0 | MTRR_TYPE_WRCOMB), %eax
+	wrmsr
+
+	movl    $0x201, %ecx
+	movl    $0x0000000f, %edx /* AMD 40 bit 0xff*/
+	movl    $((~(( 0 + 0x100000) - 1)) | 0x800), %eax
+	wrmsr
+#endif
+
+        /* enable cache */
+	movl    %cr0, %eax
+	andl    $0x9fffffff,%eax
+	movl    %eax, %cr0
+
+#if defined(CLEAR_FIRST_1M_RAM)
+        /* clear the first 1M */
+	movl    $0x0, %edi
+	cld
+	movl    $(0x100000>>2), %ecx
+	xorl    %eax, %eax
+	rep     stosl
+
+        /* disable cache */
+	movl    %cr0, %eax
+	orl    $(0x1<<30),%eax
+	movl    %eax, %cr0
+
+        /* enable caching for first 1M using variable mtrr */
+	movl    $0x200, %ecx
+	xorl    %edx, %edx
+	movl     $(0 | 6), %eax
+//	movl     $(0 | MTRR_TYPE_WRBACK), %eax
+	wrmsr
+
+	movl    $0x201, %ecx
+	movl    $0x0000000f, %edx /* AMD 40 bit 0xff*/
+	movl    $((~(( 0 + 0x100000) - 1)) | 0x800), %eax
+	wrmsr
+
+        /* enable cache */
+	movl    %cr0, %eax
+	andl    $0x9fffffff,%eax
+	movl    %eax, %cr0
+	invd
+
+	/* FIXME: I hope we don't need to change esp and ebp value here, so we
+	 * can restore value from mmx sse back But the problem is the range is
+	 * some io related, So don't go back
+	 */
+#endif
+
+	/* clear boot_complete flag */
+	xorl	%ebp, %ebp
+__main:
+	post_code(0x11)
+	cld			/* clear direction flag */
+
+	movl	%ebp, %esi
+
+	movl $ROMSTAGE_STACK, %esp
+	movl	%esp, %ebp
+	pushl %esi
+	call copy_and_run
+
+.Lhlt:
+	post_code(0xee)
+	hlt
+	jmp	.Lhlt
+
Index: src/cpu/intel/slot_1/Kconfig
===================================================================
--- src/cpu/intel/slot_1/Kconfig	(revision 5527)
+++ src/cpu/intel/slot_1/Kconfig	(working copy)
@@ -20,6 +20,7 @@ 
 
 config CPU_INTEL_SLOT_1
 	bool
+	select CPU_INTEL_MODEL_67X
 
 config DCACHE_RAM_BASE
 	hex
Index: src/mainboard/asus/p2b/Kconfig
===================================================================
--- src/mainboard/asus/p2b/Kconfig	(revision 5527)
+++ src/mainboard/asus/p2b/Kconfig	(working copy)
@@ -25,10 +25,12 @@ 
 	select NORTHBRIDGE_INTEL_I440BX
 	select SOUTHBRIDGE_INTEL_I82371EB
 	select SUPERIO_WINBOND_W83977TF
-	select ROMCC
+#	select ROMCC
+	select USE_PRINTK_IN_CAR
 	select HAVE_PIRQ_TABLE
 	select UDELAY_TSC
 	select BOARD_ROMSIZE_KB_256
+	select USE_DCACHE_RAM
 
 config MAINBOARD_DIR
 	string
@@ -50,3 +52,12 @@ 
 	default 6
 	depends on BOARD_ASUS_P2B
 
+config DCACHE_RAM_BASE
+	hex
+	default 0xffdf8000
+	depends on BOARD_ASUS_P2B
+
+config DCACHE_RAM_SIZE
+	hex
+	default 0x8000
+	depends on BOARD_ASUS_P2B
Index: src/mainboard/asus/p2b/romstage.c
===================================================================
--- src/mainboard/asus/p2b/romstage.c	(revision 5527)
+++ src/mainboard/asus/p2b/romstage.c	(working copy)
@@ -34,7 +34,7 @@ 
 #include "lib/debug.c"
 #include "pc80/udelay_io.c"
 #include "lib/delay.c"
-#include "cpu/x86/mtrr/earlymtrr.c"
+//#include "cpu/x86/mtrr/earlymtrr.c"
 #include "cpu/x86/bist.h"
 #include "superio/winbond/w83977tf/w83977tf_early_serial.c"
 
@@ -48,10 +48,11 @@ 
 #include "northbridge/intel/i440bx/raminit.c"
 #include "northbridge/intel/i440bx/debug.c"
 
-static void main(unsigned long bist)
+//static void main(unsigned long bist)
+void main(unsigned long bist)
 {
-	if (bist == 0)
-		early_mtrr_init();
+//	if (bist == 0)
+//		early_mtrr_init();
 
 	w83977tf_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE);
 	uart_init();