From e3e97e7c90f4a40a56ea05f3a34f267edf41c9ed Mon Sep 17 00:00:00 2001 From: bellard Date: Mon, 2 Oct 2006 18:35:39 +0000 Subject: [PATCH] do not generate MP table if one CPU (no APIC in QEMU in this case) - added wbinvd (ignored in QEMU but useful on real hardware) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2191 c046a42c-6fe2-441c-8c8c-71466251a162 --- pc-bios/bios.bin | Bin 131072 -> 131072 bytes pc-bios/bios.diff | 241 +++++++++++------------------------------------------- 2 files changed, 46 insertions(+), 195 deletions(-) diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin index 1af4a4f0e55b34c1fda57a5f7db81e1f1efc0ef5..0161bde0f0c3aa503fe1ab5f7d3b329af7c1021e 100644 GIT binary patch delta 2153 zcma)7ZERCj7(Tb_wyt)xV;w?3Xy%kH5w;Fk_>_gRF%v(oyRPjvw~2x5<`M$x>JM?W zvm2pl8X#B245OJ-5#o;tA_$_LT^Kc}`~esD!)Zj%Tp1T3OxWQ1oO8Q{pZwU_`#$gU zex7sRhC-H5$dd1le^*;O-cd zgudf-rliSKQ=qys-KK_u<5K1Zldw&FH~Wx@%u$zF_C0RTQR?Lv5sa?Ar|aPndw9SW zKJO5x(U%SXZ81!kg{>6tsaKGwazE^_76GsH}!aLTg81woYADU(nJi8fj2 z#ap`WZ&3UaJvXK6xr7iCLW>NzK8Z{N4pdCYDFMg$>0>zE@o^4CZlyZofyw8U4a%!V zX_bg@YRh(nM~EdXt0=P*$*hF7B9lD_7R5U4;DAH4X)2kBy-rZ5&x1||8>l}tA@wXwmFz`7)rQ3^>CXNXQ938Aaukgp~8?t#yZf4lk-9b zuevQ4CFnfPc6Fz%Kp0c^*jD5wk&r(Mlb4=V&)e1unrg{iB-E(IxdTC4cwHNtV{qo8 z*ljxW6>kEi-(z0&jdC}>j#!f>MXG2o!`X9M1QUB{5?uwU#jltpI)O^+n;CW$lD|Rz z5RMYP38lp^f5w%+XE^iVS7n4?jxGKkR!KNMTa@TuoP}mb?%|t)V(@`j|n^^3wTf z%uDkOjCg4_$7BJXURpi_7tc@^8rUN+J7+*^n#ij0(5bs>gMEJRF!qhV0fS@>bVI>V zPVk}hK*8Wl(E>ICDN>iBZ*a06NJ(@Drz&|8-D>azi8gXG1{A+1#R3{V1l>K1HX{>g z5NVZ+T3W&Aeg&010ZFwuY)hFkm-{kl7AHtvn#mz#^U^!`fa?8{&qK8-b*W?V3u|DT z7>d@>y&JNl0j=aR67;ZVpg06gq#I!l56qRnK_|XQV&;K-j5z)VJwSc*5)Y{eKDvv8 zidjADD1920`RIBBfwY3LqE%W;$q-(^A!rjrdp*|3@*)J0V30#tUL`|{S;*wCbL3xL zAMFPZn@}yvd(PKC&X-7Jm-(E>LX<4IA2r21R*@byEQ(n^&mo6M-=2oNF^^NEU4}a7 znag&{3~_--x2Zqml?mUflX?D?abtacaGfPupcJto9=Xc1Di--i#KuRK*3;>$b3}Sn zjm|D~US<=bpWtb*P1nX=fvEP+R(!)SNOW=9P{~$OieALG%y?#b1ZIZ(VIa|})L^B# z5>?9O*dDSAs}2*Q3B#-h{$v3(x=(#8Uly*YWBCi#|AP?tef#H{uG0<;M-4m9u;bi+ zy3VhYeIxOJDVd-Lu`;5$Y`=CT13AgjMQXLPFnA%uOul@;zee!pm>!(}8u*d>Vt;y{ zoX%+?7t~SbncjGT^_a`^`$D&?$W^p)bKBO{uJW?7ic)u3X_?#Qu2{Wn)oS<3lbZ$M X*GoeA$+f=-XN$ATOUo+A)I0wJEM?`X delta 2092 zcma)7du&rx7(chWW2JQT?!^!WG-JYMLe_3$;W6i28Hl3Xa9!JNut~z>=FY@{twwRS zOE*@@eczyAu$*ve#;761;=A-$M2lmE&RzJJ^jAl z_xqmb>uEGbXrBMu)aDI1&5aR8> zt<`Eftt{_8ru6)F=8$kMVg9npPV{mR=&`&s$0U0#vIhs^?~r=^X22g&V#!?1LBn=9 zjRt)n*r*Yv9Yw9VMYEx-*O~AMs*MdY4V!vhvb)Ys+eGS7$t+$xeaI?vcZ`uVLR_5% zHbPSJz7qnI1w37yd3buMJ{qIb`aIY~C?j5A{OrhdmX1-{(5$euVBB<6EMy%C^J58V z4RSv`7)#o<=b3db;)r(jhg*%R8FM0jRX9b6R)e;S>76)nf+`%wS>h-(L5*S-=I3Au znzSk=|A6w*E$nty;q6>ZkD`c$;qau99?bL-Hfe_tW^#QKC2l@d*>WA=fu-SAN@+*C zxjTaKL$ArIiT>8qj$v?2t=_{yXaWm#Fom=+4x1+IP9Y)2N#n^lA`KHBHz~Cd68=)g z`$Gcj4Kl2bETonp|FMx*CZyrb*u;LEwjE0;$8U<0?plW+7T78=yWY6IqSJj3tb(`>}XF??zICU%t|_=BbWB0dqp;LzhnI3T$(u@E8xpv^TW6yWxgPQ zA!jZSM58S;5y{mgy7U7!(<|6QLz7yKTOHqIDta9pWjI@*ax}5+Qs7mTT7sIWzzjxj zW|+XOst+9%uycaCjw@qWmc?1ZIgHKxT7pMH7&_LU?UfaH#93JV^$7*ir-(NY##HEX zWHOBR8hmOzm{}OviAbmcxXj$=gGXM>!ur<5p>Z-b2+98=;?>mQ*hN3wamhdE>~WJCHH}Z2qs)Pk2U1_crBLCk_z!U zQ-(f#E`p6XP1eO%sI&yt20oduQNhXBy7QQyqSq&3FDKJ*Qh^w!YFP@rXYm9D-r{DQ zQvZY!51UYY5&`cu%&p(Yj9879wgFydd>on|YB(Py<3(xi9K{dMZ~)``VJ2rO0UwCt z#z)fP$a)0s4|UhWp4yD=uvu~iBOYP5FPNGnLlDie#BB8qtUaI);7ah-fb;lM3pUa) z1Yj6NOe_Ro9|tut09_V_W8YSrpF@VR z+uWjw>YE(Gc3=|n$9=gn{BEfieY4qPGDR$q;exR!+avsH1hRw6qSk}??>{VDfmXz3 zJbufHZC7_-Y(HeB0;kfio-V_L@ppD%?)z+T@CDx$rxs%C@VPNBM=Ob-L4n07Lk)Y1 zl2DWiE2^DnW=Q2N<5bSPtbEHr!+$ZN2{(*Ca@37FCz-GfZ)tKU`Y8TK#FCP_7mfHQ zRc%rVm)UWc9WLwwu0EiYUo!i_^oMPO18^MQrtVDku67NErw|AMiOZvIq{Sq z1$i@VPtR{fe#aBBd!CR}Ic+3i)aCUVVtzsIEQcZG*PL 0); -+ } - #endif - } - } -Index: rombios32start.S -=================================================================== -RCS file: /cvsroot/bochs/bochs/bios/rombios32start.S,v -retrieving revision 1.1 -diff -u -w -r1.1 rombios32start.S ---- rombios32start.S 28 Sep 2006 18:56:20 -0000 1.1 -+++ rombios32start.S 1 Oct 2006 16:03:54 -0000 -@@ -1,3 +1,25 @@ -+///////////////////////////////////////////////////////////////////////// -+// $Id: bios.diff,v 1.15 2006-10-01 16:08:15 bellard Exp $ -+///////////////////////////////////////////////////////////////////////// -+// -+// 32 bit Bochs BIOS init code -+// Copyright (C) 2006 Fabrice Bellard -+// -+// This library is free software; you can redistribute it and/or -+// modify it under the terms of the GNU Lesser General Public -+// License as published by the Free Software Foundation; either -+// version 2 of the License, or (at your option) any later version. -+// -+// This library 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 -+// Lesser General Public License for more details. -+// -+// You should have received a copy of the GNU Lesser General Public -+// License along with this library; if not, write to the Free Software -+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+#include "rombios.h" ++ if (smp_cpus <= 1) ++ return; ++#endif + - .globl _start - .globl smp_ap_boot_code_start - .globl smp_ap_boot_code_end -@@ -6,8 +28,6 @@ - .global smm_code_start - .global smm_code_end - --#define PM_IO_BASE 0xb000 -- - _start: - /* clear bss section */ - xor %eax, %eax -@@ -18,13 +38,11 @@ - - jmp rombios32_init - --#define CPU_COUNT 0xf000 -- - .code16 - smp_ap_boot_code_start: - xor %ax, %ax - mov %ax, %ds -- incw CPU_COUNT -+ incw CPU_COUNT_ADDR - 1: - hlt - jmp 1b -@@ -33,7 +51,7 @@ - /* code to relocate SMBASE to 0xa0000 */ - smm_relocation_start: - mov $0x38000 + 0x7efc, %ebx -- mov (%ebx), %al /* revision ID to see if x86_64 or x86 */ -+ addr32 mov (%ebx), %al /* revision ID to see if x86_64 or x86 */ - cmp $0x64, %al - je 1f - mov $0x38000 + 0x7ef8, %ebx -@@ -42,7 +60,7 @@ - mov $0x38000 + 0x7f00, %ebx - 2: - movl $0xa0000, %eax -- movl %eax, (%ebx) -+ addr32 movl %eax, (%ebx) - rsm - smm_relocation_end: - + #ifdef BX_USE_EBDA_TABLES + mp_config_table = (uint8_t *)(ram_size - ACPI_DATA_SIZE - MPTABLE_MAX_SIZE); + #else -- 2.7.4