Reorder drivers to fit src/drivers/[X]/[Y]/ scheme to make them pluggable. Also, fix up the following driver subdirectories by switching to the src/drivers/[X]/[Y]/ scheme as these are hard requirements for the main change: * drivers/intel * drivers/pc80 * drivers/dec Change-Id: I455d3089a317181d5b99bf658df759ec728a5f6b Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: https://review.coreboot.org/14047 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
		
			
				
	
	
		
			89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import "fmt"
 | 
						|
 | 
						|
func FIXMEEC(ctx Context) {
 | 
						|
	ap := Create(ctx, "acpi/platform.asl")
 | 
						|
	defer ap.Close()
 | 
						|
 | 
						|
	hasKeyboard := ctx.InfoSource.HasPS2()
 | 
						|
 | 
						|
	sbGPE := GuessECGPE(ctx)
 | 
						|
	var GPEUnsure bool
 | 
						|
	if sbGPE < 0 {
 | 
						|
		sbGPE = SouthBridge.EncodeGPE(1)
 | 
						|
		GPEUnsure = true
 | 
						|
		SouthBridge.NeedRouteGPIOManually()
 | 
						|
	} else {
 | 
						|
		GPEUnsure = false
 | 
						|
		SouthBridge.EnableGPE(SouthBridge.DecodeGPE(sbGPE))
 | 
						|
	}
 | 
						|
 | 
						|
	ap.WriteString(
 | 
						|
		`Method(_WAK,1)
 | 
						|
{
 | 
						|
        /* FIXME: EC support  */
 | 
						|
	Return(Package(){0,0})
 | 
						|
}
 | 
						|
 | 
						|
Method(_PTS,1)
 | 
						|
{
 | 
						|
        /* FIXME: EC support  */
 | 
						|
}
 | 
						|
`)
 | 
						|
 | 
						|
	ecs := ctx.InfoSource.GetEC()
 | 
						|
	MainboardIncludes = append(MainboardIncludes, "ec/acpi/ec.h")
 | 
						|
	MainboardIncludes = append(MainboardIncludes, "console/console.h")
 | 
						|
 | 
						|
	MainboardInit +=
 | 
						|
		`	/* FIXME: trim this down or remove if necessary */
 | 
						|
	{
 | 
						|
		int i;
 | 
						|
		const u8 dmp[256] = {`
 | 
						|
	for i := 0; i < 0x100; i++ {
 | 
						|
		if (i & 0xf) == 0 {
 | 
						|
			MainboardInit += fmt.Sprintf("\n\t\t\t/* %02x */ ", i)
 | 
						|
		}
 | 
						|
		MainboardInit += fmt.Sprintf("0x%02x,", ecs[i])
 | 
						|
		if (i & 0xf) != 0xf {
 | 
						|
			MainboardInit += " "
 | 
						|
		}
 | 
						|
	}
 | 
						|
	MainboardInit += "\n\t\t};\n"
 | 
						|
	MainboardInit += `
 | 
						|
		printk(BIOS_DEBUG, "Replaying EC dump ...");
 | 
						|
		for (i = 0; i < 256; i++)
 | 
						|
			ec_write (i, dmp[i]);
 | 
						|
		printk(BIOS_DEBUG, "done\n");
 | 
						|
	}
 | 
						|
`
 | 
						|
 | 
						|
	KconfigBool["EC_ACPI"] = true
 | 
						|
	si := Create(ctx, "acpi/superio.asl")
 | 
						|
	defer si.Close()
 | 
						|
 | 
						|
	if hasKeyboard {
 | 
						|
		si.WriteString("#include <drivers/pc80/pc/ps2_controller.asl>\n")
 | 
						|
		MainboardInit += fmt.Sprintf("\tpc_keyboard_init();\n")
 | 
						|
		MainboardIncludes = append(MainboardIncludes, "pc80/keyboard.h")
 | 
						|
	}
 | 
						|
 | 
						|
	ec := Create(ctx, "acpi/ec.asl")
 | 
						|
	defer ec.Close()
 | 
						|
 | 
						|
	ec.WriteString(`Device(EC)
 | 
						|
{
 | 
						|
	Name (_HID, EISAID("PNP0C09"))
 | 
						|
	Name (_UID, 0)
 | 
						|
`)
 | 
						|
	if GPEUnsure {
 | 
						|
		ec.WriteString("\t/* FIXME: Set GPE  */\n")
 | 
						|
		ec.WriteString("\t/* Name (_GPE, ?)  */\n")
 | 
						|
	} else {
 | 
						|
		fmt.Fprintf(ec, "\tName (_GPE, %d)\n", sbGPE)
 | 
						|
	}
 | 
						|
	ec.WriteString("/* FIXME: EC support */\n")
 | 
						|
	ec.WriteString("}\n")
 | 
						|
}
 |