1 | diff -iru cham-stock/trunk/i386/boot2/boot.h cham-new/trunk/i386/boot2/boot.h␊ |
2 | --- trunk/i386/boot2/boot.h␉2012-06-07 12:14:58.000000000 +0400␊ |
3 | +++ trunk/i386/boot2/boot.h␉2012-06-07 13:40:26.000000000 +0400␊ |
4 | @@ -78,6 +78,7 @@␊ |
5 | #define kDSDT␉␉␉␉"DSDT"␉␉␉␉/* acpi_patcher.c */␊ |
6 | #define kDropSSDT␉␉␉"DropSSDT"␉␉␉/* acpi_patcher.c */␊ |
7 | #define kRestartFix␉␉␉"RestartFix"␉␉/* acpi_patcher.c */␊ |
8 | +#define kPS2RestartFix␉␉"PS2RestartFix"␉␉/* acpi_patcher.c */␊ |
9 | #define kGeneratePStates␉"GeneratePStates"␉/* acpi_patcher.c */␊ |
10 | #define kGenerateCStates␉"GenerateCStates"␉/* acpi_patcher.c */␊ |
11 | #define kCSTUsingSystemIO␉"CSTUsingSystemIO"␉/* acpi_patcher.c */␊ |
12 | Only in cham-new/trunk/i386/libsaio: .DS_Store␊ |
13 | diff -iru cham-stock/trunk/i386/libsaio/acpi_patcher.c cham-new/trunk/i386/libsaio/acpi_patcher.c␊ |
14 | --- trunk/i386/libsaio/acpi_patcher.c␉2012-06-07 12:14:48.000000000 +0400␊ |
15 | +++ trunk/i386/libsaio/acpi_patcher.c␉2012-06-07 17:32:45.000000000 +0400␊ |
16 | @@ -681,12 +681,18 @@␊ |
17 | ␉struct acpi_2_fadt *fadt_mod;␊ |
18 | ␉bool fadt_rev2_needed = false;␊ |
19 | ␉bool fix_restart;␊ |
20 | +␉bool fix_restart_ps2;␊ |
21 | ␉const char * value;␊ |
22 | ␉␊ |
23 | ␉// Restart Fix␊ |
24 | ␉if (Platform.CPU.Vendor == 0x756E6547) {␉/* Intel */␊ |
25 | ␉␉fix_restart = true;␊ |
26 | -␉␉getBoolForKey(kRestartFix, &fix_restart, &bootInfo->chameleonConfig);␊ |
27 | +␉␉fix_restart_ps2 = false;␊ |
28 | +␉␉if ( getBoolForKey(kPS2RestartFix, &fix_restart_ps2, &bootInfo->chameleonConfig) && fix_restart_ps2)␊ |
29 | +␉␉␉fix_restart = true;␊ |
30 | +␉␉else ␊ |
31 | +␉␉␉getBoolForKey(kRestartFix, &fix_restart, &bootInfo->chameleonConfig);␊ |
32 | +␉␉␊ |
33 | ␉} else {␊ |
34 | ␉␉verbose ("Not an Intel platform: Restart Fix not applied !!!\n");␊ |
35 | ␉␉fix_restart = false;␊ |
36 | @@ -741,14 +747,27 @@␊ |
37 | ␉// Patch FADT to fix restart␊ |
38 | ␉if (fix_restart)␊ |
39 | ␉{␊ |
40 | -␉␉fadt_mod->Flags|= 0x400;␊ |
41 | -␉␉fadt_mod->Reset_SpaceID␉␉= 0x01; // System I/O␊ |
42 | -␉␉fadt_mod->Reset_BitWidth␉= 0x08; // 1 byte␊ |
43 | -␉␉fadt_mod->Reset_BitOffset␉= 0x00; // Offset 0␊ |
44 | -␉␉fadt_mod->Reset_AccessWidth␉= 0x01; // Byte access␊ |
45 | -␉␉fadt_mod->Reset_Address␉␉= 0x0cf9; // Address of the register␊ |
46 | -␉␉fadt_mod->Reset_Value␉␉= 0x06; // Value to write to reset the system␊ |
47 | -␉␉verbose("FADT: Restart Fix applied!\n");␊ |
48 | +␉␉if (fix_restart_ps2) {␊ |
49 | +␉␉␉fadt_mod->Flags|= 0x400;␊ |
50 | +␉␉␉fadt_mod->Reset_SpaceID␉␉= 0x01; // System I/O␊ |
51 | +␉␉␉fadt_mod->Reset_BitWidth␉= 0x08; // 1 byte␊ |
52 | +␉␉␉fadt_mod->Reset_BitOffset␉= 0x00; // Offset 0␊ |
53 | +␉␉␉fadt_mod->Reset_AccessWidth␉= 0x01; // Byte access␊ |
54 | +␉␉␉fadt_mod->Reset_Address␉␉= 0x64; // Address of the register␊ |
55 | +␉␉␉fadt_mod->Reset_Value␉␉= 0xfe; // Value to write to reset the system␊ |
56 | +␉␉␉msglog("FADT: PS2 Restart Fix applied!\n");␊ |
57 | +␉␉}␊ |
58 | +␉␉else {␊ |
59 | +␉␉␉fadt_mod->Flags|= 0x400;␊ |
60 | +␉␉␉fadt_mod->Reset_SpaceID␉␉= 0x01; // System I/O␊ |
61 | +␉␉␉fadt_mod->Reset_BitWidth␉= 0x08; // 1 byte␊ |
62 | +␉␉␉fadt_mod->Reset_BitOffset␉= 0x00; // Offset 0␊ |
63 | +␉␉␉fadt_mod->Reset_AccessWidth␉= 0x01; // Byte access␊ |
64 | +␉␉␉fadt_mod->Reset_Address␉␉= 0x0cf9; // Address of the register␊ |
65 | +␉␉␉fadt_mod->Reset_Value␉␉= 0x06; // Value to write to reset the system␊ |
66 | +␉␉␉verbose("FADT: ACPI Restart Fix applied!\n");␊ |
67 | +␉␉}␊ |
68 | +␊ |
69 | ␉}␊ |
70 | ␉␊ |
71 | ␉// Patch DSDT Address if we have loaded DSDT.aml␊ |
72 | |