blob: 54f78ab432ac353c0c41f7c501a2c60693f0c2f0 [file] [log] [blame]
Vladimir Serbinenko3129f792014-10-15 21:51:47 +02001package main
2
3import "fmt"
4
5func FIXMEEC(ctx Context) {
6 ap := Create(ctx, "acpi/platform.asl")
7 defer ap.Close()
8
Vladimir Serbinenko91195c62015-05-29 23:53:37 +02009 hasKeyboard := ctx.InfoSource.HasPS2()
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020010
11 sbGPE := GuessECGPE(ctx)
12 var GPEUnsure bool
13 if sbGPE < 0 {
14 sbGPE = SouthBridge.EncodeGPE(1)
15 GPEUnsure = true
16 SouthBridge.NeedRouteGPIOManually()
17 } else {
18 GPEUnsure = false
19 SouthBridge.EnableGPE(SouthBridge.DecodeGPE(sbGPE))
20 }
21
Iru Cai16f213a2020-09-16 16:23:46 +080022 Add_gpl(ap)
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020023 ap.WriteString(
Paul Menzel56258ff2020-01-15 14:28:58 +010024 `Method(_WAK, 1)
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020025{
Angel Pons6779d232020-01-08 15:05:56 +010026 /* FIXME: EC support */
Paul Menzel56258ff2020-01-15 14:28:58 +010027 Return(Package() {0, 0})
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020028}
29
30Method(_PTS,1)
31{
Angel Pons6779d232020-01-08 15:05:56 +010032 /* FIXME: EC support */
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020033}
34`)
35
36 ecs := ctx.InfoSource.GetEC()
37 MainboardIncludes = append(MainboardIncludes, "ec/acpi/ec.h")
Vladimir Serbinenko5868ab42015-05-29 21:51:54 +020038 MainboardIncludes = append(MainboardIncludes, "console/console.h")
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020039
40 MainboardInit +=
41 ` /* FIXME: trim this down or remove if necessary */
42 {
43 int i;
44 const u8 dmp[256] = {`
45 for i := 0; i < 0x100; i++ {
46 if (i & 0xf) == 0 {
47 MainboardInit += fmt.Sprintf("\n\t\t\t/* %02x */ ", i)
48 }
49 MainboardInit += fmt.Sprintf("0x%02x,", ecs[i])
50 if (i & 0xf) != 0xf {
51 MainboardInit += " "
52 }
53 }
54 MainboardInit += "\n\t\t};\n"
55 MainboardInit += `
56 printk(BIOS_DEBUG, "Replaying EC dump ...");
57 for (i = 0; i < 256; i++)
58 ec_write (i, dmp[i]);
59 printk(BIOS_DEBUG, "done\n");
60 }
61`
62
Vladimir Serbinenko5868ab42015-05-29 21:51:54 +020063 KconfigBool["EC_ACPI"] = true
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020064 si := Create(ctx, "acpi/superio.asl")
65 defer si.Close()
66
67 if hasKeyboard {
Iru Cai16f213a2020-09-16 16:23:46 +080068 Add_gpl(si)
Stefan Reinauer86ddd732016-03-11 20:22:28 -080069 si.WriteString("#include <drivers/pc80/pc/ps2_controller.asl>\n")
Iru Cai8bf53a9f2017-01-26 20:33:29 +080070 MainboardInit += fmt.Sprintf("\tpc_keyboard_init(NO_AUX_DEVICE);\n")
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020071 MainboardIncludes = append(MainboardIncludes, "pc80/keyboard.h")
72 }
73
74 ec := Create(ctx, "acpi/ec.asl")
75 defer ec.Close()
76
Iru Cai16f213a2020-09-16 16:23:46 +080077 Add_gpl(ec)
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020078 ec.WriteString(`Device(EC)
79{
80 Name (_HID, EISAID("PNP0C09"))
81 Name (_UID, 0)
82`)
83 if GPEUnsure {
84 ec.WriteString("\t/* FIXME: Set GPE */\n")
85 ec.WriteString("\t/* Name (_GPE, ?) */\n")
86 } else {
87 fmt.Fprintf(ec, "\tName (_GPE, %d)\n", sbGPE)
88 }
89 ec.WriteString("/* FIXME: EC support */\n")
Vladimir Serbinenko5868ab42015-05-29 21:51:54 +020090 ec.WriteString("}\n")
Vladimir Serbinenko3129f792014-10-15 21:51:47 +020091}