From 960daf32f7539dc2551af634edd9e6600b6d9f22 Mon Sep 17 00:00:00 2001 From: aurel32 Date: Mon, 28 Apr 2008 08:54:51 +0000 Subject: [PATCH] BIOS: Reenable processor SSDT generation. Don't advertise ACPI C2 or C3 support. Thanks to Avi Kivity for the pointer. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4275 c046a42c-6fe2-441c-8c8c-71466251a162 --- pc-bios/bios.bin | Bin 131072 -> 131072 bytes pc-bios/bios.diff | 81 ++++++++++++++++++++++++++---------------------------- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin index 408dc7737eb9e1478646e23eb615e4cc39329284..e34914661c7f23b26b32360cd354335f70795e58 100644 GIT binary patch delta 2348 zcmZuyYfw~G9KUzD%Y}qBh^v7^wrg52YQiq-BOxDzj}X!taT;fe3Y5mjf-A*o zWpuoKY9?nG94#pa!;-x{Tv*!G{Gc(80aCMyPDfdE1M`~HcaX$)tl2plOG(;tsM2UJNcg8uvH^X-dbH);40>6rdid;N8eEKV-tSKg@V{FX9uHf1Ef%lbK3m)XzB7hcE;m3yYISm zu#uCnjJA^7Fz|6JN($3``NFc-SKy;tZYwUW^ySB>$}HRub!s<~GQDR@1kz_F7j9Uh5hSvF0`{6C7?WDan@; z5R+JoNUzsgCRF;Y>%w}hZ-w{cXa0XELkj+ za}wK&hMpbM&F;O<@&Rw5Cx`PEO8xN}S;@%O%k$m>K8A4?U?1K0eFcaLzv9bkveTu^ zgqd?T-a?4t0O=>TAPLe%qe|mg0xX%dhm(LEj-lCTxXk7PrsdM!giQNlI5dHT$Iv#FmMVmrp*>BTxl(x|i*;qy$`VH)$7$2j zU!gVk5D&vY1INl5W`V(m;D|IoF(W=E{lWAqQ#n_9KXGBqt(z5WVYv>zI#OT6>z6ttLyFb$3;WQx9mdjX11{H$^TE7&rzSFJE^SP!#24?+2qOyotaU; z@qkX6o02hg#Y1;$g)4mpcNrZEV5z(hJa($#H^Q832 z2DC1nF>cnF#Y`R*3GxTz3gos%f-Nd|7eFb00|Sg}?YIPuqRXUvlSO+gBzP)r_cmH4IBSC0=Vf-` zl3-Lcd+z9uP|J<1de0*h^+d!8ghfn0UbY`osgBn=?`iEf0+7OkT@r>r95&2kU3-W5q>0yybB zSSm{BXuh;PP1G*|bL95)peggDwzReU0V&p)GVK%AASIO$eUe!z7*_RzXIO%Lj?*TT zy2O~8V;ICP^{K`bH6k)z8b0#EaZxN^j?;5Aa7o%{H1oAmw=s*al7@}X#kM{yhwg6A Om~tY1r|F=HKl?A^XmuU{ delta 2313 zcmZuydu&rx9KN@^lUvx*?$rTXv6G5hEM#4Hj6lq`QidpkjN%B}c*z7&LvTEzj1J2N zCv}3k8a1GC&Ihk3FoN5SK*z8bLcnG5v4N4wW^%>~l#OJa;_7#9dmR%0x&6-X@txoI zJHK;UQzO>Yh{<-}*;V-h*K!h{oS}iky|a!dcjFyF1ru?hzt z6*!~{9LMdv&2cYm2Wv3q^pbp&_~|d<9-tkT^pPZ^J{j zTg9E{4vHLCFMOYmAmXGsA-Vo+X`r$1L?Pb&B*RwzGGTHimx#PLy>l!bzFoinJmnD=9cK*Qi;f zWzxGT#R;iu6(YGx#}7z7DJ%JW$(g!M-wc5)^%u#Xnw>HnVx@{LtgUhlKJ?M*d`bg5oiC%t6K)y0RTk4%>I zIQR_u7A8>MgirHE9@<8R zKF|5o<>hVckek&*u8Y#y8TA|g(n)1wvmVbINvCU&N}s|bMaLnCRt-lYjDzl%J{vpH zy%l|}uMWv`kwKgR^}%6t7^bJu0i1J~_5egDE=)hvjC+~!8I}~L62nWPc()dCMFU>| z#BNU5b1s>_&!XAoLFS2Y6Fh&D94Gd|CAplPsKhw;v_Kq1U>jBts8zJnr6SPUuO?Sgud(E(G4O%I)@kGGu zu=Q3vU|0=<%CQVUUKQ<0xl}OT(imnB1&G%(92ec>ZycM- zc~1j<8n~f>E)BE;kbW>In&k`tsOG5!pU|v_H1MegKG48B0IK|21{l}&m<5fZ8zpmw z)qM#TuPZRvxuKA`M_&n)A2Nt4ZECw;}5 zqLvb-PqHW#BWh>&53Im0&!t>Q-C)kJP4C7jb!ovOG-7A`)9}%MHZG3U%W(#dCUi?D n%yzz1>M>{Y`=rDPPb7Lr> 12; writel(APIC_BASE + APIC_ICR_LOW, 0x000C4600 | sipi_vector); @@ -158,42 +182,15 @@ diff -u -d -p -r1.26 rombios32.c smp_cpus = readw((void *)CPU_COUNT_ADDR); } -@@ -1081,7 +1086,7 @@ struct rsdp_descriptor /* Root S - struct rsdt_descriptor_rev1 - { - ACPI_TABLE_HEADER_DEF /* ACPI common table header */ -- uint32_t table_offset_entry [3]; /* Array of pointers to other */ -+ uint32_t table_offset_entry [2]; /* Array of pointers to other */ - /* ACPI tables */ - }; - -@@ -1335,8 +1340,8 @@ void acpi_bios_init(void) - struct fadt_descriptor_rev1 *fadt; - struct facs_descriptor_rev1 *facs; - struct multiple_apic_table *madt; -- uint8_t *dsdt, *ssdt; -- uint32_t base_addr, rsdt_addr, fadt_addr, addr, facs_addr, dsdt_addr, ssdt_addr; -+ uint8_t *dsdt; -+ uint32_t base_addr, rsdt_addr, fadt_addr, addr, facs_addr, dsdt_addr; - uint32_t acpi_tables_size, madt_addr, madt_size; - int i; - -@@ -1370,10 +1375,6 @@ void acpi_bios_init(void) - dsdt = (void *)(addr); - addr += sizeof(AmlCode); - -- ssdt_addr = addr; -- ssdt = (void *)(addr); -- addr += acpi_build_processor_ssdt(ssdt); -- - addr = (addr + 7) & ~7; - madt_addr = addr; - madt_size = sizeof(*madt) + -@@ -1403,7 +1404,6 @@ void acpi_bios_init(void) - memset(rsdt, 0, sizeof(*rsdt)); - rsdt->table_offset_entry[0] = cpu_to_le32(fadt_addr); - rsdt->table_offset_entry[1] = cpu_to_le32(madt_addr); -- rsdt->table_offset_entry[2] = cpu_to_le32(ssdt_addr); - acpi_build_table_header((struct acpi_table_header *)rsdt, - "RSDT", sizeof(*rsdt), 1); - +@@ -1423,9 +1428,8 @@ void acpi_bios_init(void) + fadt->pm1_evt_len = 4; + fadt->pm1_cnt_len = 2; + fadt->pm_tmr_len = 4; +- fadt->plvl2_lat = cpu_to_le16(50); +- fadt->plvl3_lat = cpu_to_le16(50); +- fadt->plvl3_lat = cpu_to_le16(50); ++ fadt->plvl2_lat = cpu_to_le16(0x0fff); // C2 state not supported ++ fadt->plvl3_lat = cpu_to_le16(0x0fff); // C3 state not supported + /* WBINVD + PROC_C1 + PWR_BUTTON + SLP_BUTTON + FIX_RTC */ + fadt->flags = cpu_to_le32((1 << 0) | (1 << 2) | (1 << 4) | (1 << 5) | (1 << 6)); + acpi_build_table_header((struct acpi_table_header *)fadt, "FACP", -- 2.7.4