<p>Angel Pons has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27256">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mb/asus/x555la: Add new mainboard (NOT WORKING)<br><br>This is a Haswell laptop which happens to not have Intel Boot Guard.<br>This has been based off google/slippy. This change also affects some<br>Haswell files to ease debugging. It adds several printk() calls and<br>works around bugs in SPI flashconsole and monotonic timer. This laptop<br>shares the SPI flash with the EC, whose firmware is at the beginning of<br>the BIOS region defined by the flash descriptor and is 128K in size.<br><br>Currently the laptop tries to initialize the onboard RAM with one of<br>the provided SPD files (from the Google chromebook files) and mrc.bin<br>does not return an error, but testing the memory results in a hang.<br>Due to lack of proper flashing hardware I have to put this aside.<br><br>Working: Embedded Controller firmware, flashconsole.<br>Not working: Everything else.<br><br>Change-Id: I361c1f06ed8d5c61ee7fa0f25e3ec93f292a3296<br>Signed-off-by: Angel Pons <th3fanbus@gmail.com><br>---<br>M src/cpu/intel/haswell/Kconfig<br>M src/cpu/intel/haswell/Makefile.inc<br>M src/cpu/intel/haswell/romstage.c<br>M src/lib/ramtest.c<br>A src/mainboard/asus/x555la/Kconfig<br>A src/mainboard/asus/x555la/Kconfig.name<br>A src/mainboard/asus/x555la/Makefile.inc<br>A src/mainboard/asus/x555la/acpi/ec.asl<br>A src/mainboard/asus/x555la/acpi/haswell_pci_irqs.asl<br>A src/mainboard/asus/x555la/acpi/mainboard.asl<br>A src/mainboard/asus/x555la/acpi/platform.asl<br>A src/mainboard/asus/x555la/acpi/superio.asl<br>A src/mainboard/asus/x555la/acpi/thermal.asl.OFF<br>A src/mainboard/asus/x555la/acpi_tables.c<br>A src/mainboard/asus/x555la/board_info.txt<br>A src/mainboard/asus/x555la/cmos.layout<br>A src/mainboard/asus/x555la/devicetree.cb<br>A src/mainboard/asus/x555la/dsdt.asl<br>A src/mainboard/asus/x555la/fadt.c<br>A src/mainboard/asus/x555la/gma-mainboard.ads<br>A src/mainboard/asus/x555la/gpio.h<br>A src/mainboard/asus/x555la/hda_verb.c<br>A src/mainboard/asus/x555la/mainboard.c<br>A src/mainboard/asus/x555la/romstage.c<br>A src/mainboard/asus/x555la/spd/.hSamsung_M471B5674QH0.spdex<br>A src/mainboard/asus/x555la/spd/Elpida_EDJ4216EFBG.spd.hex<br>A src/mainboard/asus/x555la/spd/Hynix_HMT425S6AFR6A.spd.hex<br>A src/mainboard/asus/x555la/spd/Micron_4KTF25664HZ.spd.hex<br>A src/mainboard/asus/x555la/spd/Samsung_K4B4G1646B.spd.hex<br>A src/mainboard/asus/x555la/spd/Samsung_K4B4G1646Q.spd.hex<br>A src/mainboard/asus/x555la/spd/Samsung_M471B5674QH0.spd.hex<br>A src/mainboard/asus/x555la/thermal.h<br>32 files changed, 1,635 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/56/27256/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/cpu/intel/haswell/Kconfig b/src/cpu/intel/haswell/Kconfig</span><br><span>index 423966c..368fee9 100644</span><br><span>--- a/src/cpu/intel/haswell/Kconfig</span><br><span>+++ b/src/cpu/intel/haswell/Kconfig</span><br><span>@@ -10,7 +10,7 @@</span><br><span>  select ARCH_VERSTAGE_X86_32</span><br><span>  select ARCH_ROMSTAGE_X86_32</span><br><span>  select ARCH_RAMSTAGE_X86_32</span><br><span style="color: hsl(0, 100%, 40%);">-     select HAVE_MONOTONIC_TIMER</span><br><span style="color: hsl(120, 100%, 40%);">+   #select HAVE_MONOTONIC_TIMER</span><br><span>         select SMP</span><br><span>   select MMX</span><br><span>   select SSE</span><br><span>diff --git a/src/cpu/intel/haswell/Makefile.inc b/src/cpu/intel/haswell/Makefile.inc</span><br><span>index bbd98da..eae9a80 100644</span><br><span>--- a/src/cpu/intel/haswell/Makefile.inc</span><br><span>+++ b/src/cpu/intel/haswell/Makefile.inc</span><br><span>@@ -7,14 +7,14 @@</span><br><span> ramstage-y += acpi.c</span><br><span> ramstage-$(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM) += stage_cache.c</span><br><span> ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smmrelocate.c</span><br><span style="color: hsl(0, 100%, 40%);">-ramstage-y += monotonic_timer.c</span><br><span style="color: hsl(120, 100%, 40%);">+#ramstage-y += monotonic_timer.c</span><br><span> </span><br><span> romstage-$(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM) += stage_cache.c</span><br><span> postcar-$(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM) += stage_cache.c</span><br><span> </span><br><span> smm-$(CONFIG_HAVE_SMI_HANDLER) += finalize.c</span><br><span> smm-$(CONFIG_HAVE_SMI_HANDLER) += tsc_freq.c</span><br><span style="color: hsl(0, 100%, 40%);">-smm-y += monotonic_timer.c</span><br><span style="color: hsl(120, 100%, 40%);">+#smm-y += monotonic_timer.c</span><br><span> </span><br><span> cpu_incs-y += $(src)/cpu/intel/car/non-evict/cache_as_ram.S</span><br><span> postcar-y += ../car/non-evict/exit_car.S</span><br><span>diff --git a/src/cpu/intel/haswell/romstage.c b/src/cpu/intel/haswell/romstage.c</span><br><span>index 0e91dae..3fd389f 100644</span><br><span>--- a/src/cpu/intel/haswell/romstage.c</span><br><span>+++ b/src/cpu/intel/haswell/romstage.c</span><br><span>@@ -83,6 +83,7 @@</span><br><span> </span><br><span> void romstage_common(const struct romstage_params *params)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+   printk(BIOS_EMERG, "Romstage begins...\n");</span><br><span>        int boot_mode;</span><br><span>       int wake_from_s3;</span><br><span> </span><br><span>@@ -94,6 +95,7 @@</span><br><span> </span><br><span>        wake_from_s3 = early_pch_init(params->gpio_map, params->rcba_config);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       printk(BIOS_EMERG, "Report BIST failure...\n");</span><br><span>    /* Halt if there was a built in self test failure */</span><br><span>         report_bist_failure(params->bist);</span><br><span> </span><br><span>@@ -125,20 +127,24 @@</span><br><span> </span><br><span>        timestamp_add_now(TS_BEFORE_INITRAM);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+     printk(BIOS_EMERG, "RAM INIT will start now...\n");</span><br><span>        report_platform_info();</span><br><span> </span><br><span>  if (params->copy_spd != NULL)</span><br><span>             params->copy_spd(params->pei_data);</span><br><span> </span><br><span>        sdram_initialize(params->pei_data);</span><br><span style="color: hsl(120, 100%, 40%);">+        printk(BIOS_EMERG, "RAM INIT worked properly...\n");</span><br><span> </span><br><span>   timestamp_add_now(TS_AFTER_INITRAM);</span><br><span> </span><br><span>     post_code(0x3b);</span><br><span> </span><br><span>         intel_early_me_status();</span><br><span style="color: hsl(120, 100%, 40%);">+      printk(BIOS_EMERG, "ME status worked properly\n");</span><br><span> </span><br><span>     quick_ram_check();</span><br><span style="color: hsl(120, 100%, 40%);">+    printk(BIOS_EMERG, "RAM check worked properly...\n");</span><br><span>      post_code(0x3e);</span><br><span> </span><br><span>         if (!wake_from_s3) {</span><br><span>diff --git a/src/lib/ramtest.c b/src/lib/ramtest.c</span><br><span>index 461a028..d1e13b1 100644</span><br><span>--- a/src/lib/ramtest.c</span><br><span>+++ b/src/lib/ramtest.c</span><br><span>@@ -186,30 +186,41 @@</span><br><span> {</span><br><span>   int fail = 0;</span><br><span>        u32 backup;</span><br><span style="color: hsl(120, 100%, 40%);">+   printk(BIOS_EMERG, "RAM CHECK START!\n");</span><br><span>  backup = read_phys(dst);</span><br><span>     write_phys(dst, 0x55555555);</span><br><span>         phys_memory_barrier();</span><br><span style="color: hsl(120, 100%, 40%);">+        printk(BIOS_EMERG, "RAM CYCLE 1!\n");</span><br><span>      if (read_phys(dst) != 0x55555555)</span><br><span>            fail = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     printk(BIOS_EMERG, "RAM TEST 1!\n");</span><br><span>       write_phys(dst, 0xaaaaaaaa);</span><br><span>         phys_memory_barrier();</span><br><span style="color: hsl(120, 100%, 40%);">+        printk(BIOS_EMERG, "RAM CYCLE 2!\n");</span><br><span>      if (read_phys(dst) != 0xaaaaaaaa)</span><br><span>            fail = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     printk(BIOS_EMERG, "RAM TEST 2!\n");</span><br><span>       write_phys(dst, 0x00000000);</span><br><span>         phys_memory_barrier();</span><br><span style="color: hsl(120, 100%, 40%);">+        printk(BIOS_EMERG, "RAM CYCLE 3!\n");</span><br><span>      if (read_phys(dst) != 0x00000000)</span><br><span>            fail = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     printk(BIOS_EMERG, "RAM TEST 3!\n");</span><br><span>       write_phys(dst, 0xffffffff);</span><br><span>         phys_memory_barrier();</span><br><span style="color: hsl(120, 100%, 40%);">+        printk(BIOS_EMERG, "RAM CYCLE 4!\n");</span><br><span>      if (read_phys(dst) != 0xffffffff)</span><br><span>            fail = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     printk(BIOS_EMERG, "RAM TEST 4!\n");</span><br><span> </span><br><span>   write_phys(dst, backup);</span><br><span>     if (fail) {</span><br><span>          post_code(0xea);</span><br><span>             die("RAM INIT FAILURE!\n");</span><br><span>        }</span><br><span style="color: hsl(120, 100%, 40%);">+     printk(BIOS_EMERG, "RAM INIT SUCCESS!\n");</span><br><span>         phys_memory_barrier();</span><br><span style="color: hsl(120, 100%, 40%);">+        printk(BIOS_EMERG, "RAM INIT END!\n");</span><br><span> }</span><br><span> </span><br><span> void quick_ram_check(void)</span><br><span>diff --git a/src/mainboard/asus/x555la/Kconfig b/src/mainboard/asus/x555la/Kconfig</span><br><span>new file mode 100644</span><br><span>index 0000000..d7f4c9a</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/Kconfig</span><br><span>@@ -0,0 +1,82 @@</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## Copyright (C) 2018 Angel Pons <th3fanbus@gmail.com></span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+## it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+## the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+## but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+## GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if BOARD_ASUS_X555LA</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config BOARD_SPECIFIC_OPTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+   def_bool y</span><br><span style="color: hsl(120, 100%, 40%);">+    select SYSTEM_TYPE_LAPTOP</span><br><span style="color: hsl(120, 100%, 40%);">+     select CPU_INTEL_HASWELL</span><br><span style="color: hsl(120, 100%, 40%);">+      select NORTHBRIDGE_INTEL_HASWELL</span><br><span style="color: hsl(120, 100%, 40%);">+      select SOUTHBRIDGE_INTEL_LYNXPOINT</span><br><span style="color: hsl(120, 100%, 40%);">+    select INTEL_LYNXPOINT_LP</span><br><span style="color: hsl(120, 100%, 40%);">+     select BOARD_ROMSIZE_KB_8192</span><br><span style="color: hsl(120, 100%, 40%);">+  select HAVE_ACPI_TABLES</span><br><span style="color: hsl(120, 100%, 40%);">+       select HAVE_OPTION_TABLE</span><br><span style="color: hsl(120, 100%, 40%);">+      select HAVE_ACPI_RESUME</span><br><span style="color: hsl(120, 100%, 40%);">+       select INTEL_INT15</span><br><span style="color: hsl(120, 100%, 40%);">+    select HAVE_SMI_HANDLER</span><br><span style="color: hsl(120, 100%, 40%);">+       select MAINBOARD_HAS_LIBGFXINIT</span><br><span style="color: hsl(120, 100%, 40%);">+       select TSC_MONOTONIC_TIMER</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config HAVE_IFD_BIN</span><br><span style="color: hsl(120, 100%, 40%);">+     bool</span><br><span style="color: hsl(120, 100%, 40%);">+  default n</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config HAVE_ME_BIN</span><br><span style="color: hsl(120, 100%, 40%);">+       bool</span><br><span style="color: hsl(120, 100%, 40%);">+  default n</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config MAINBOARD_DIR</span><br><span style="color: hsl(120, 100%, 40%);">+     string</span><br><span style="color: hsl(120, 100%, 40%);">+        default asus/x555la</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config MAINBOARD_PART_NUMBER</span><br><span style="color: hsl(120, 100%, 40%);">+   string</span><br><span style="color: hsl(120, 100%, 40%);">+        default "X555LA"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config VGA_BIOS_FILE</span><br><span style="color: hsl(120, 100%, 40%);">+    string</span><br><span style="color: hsl(120, 100%, 40%);">+        default "pci8086,0a16.rom"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##config VGA_BIOS_ID</span><br><span style="color: hsl(120, 100%, 40%);">+  ##string</span><br><span style="color: hsl(120, 100%, 40%);">+      ##default "8086,0a16"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID</span><br><span style="color: hsl(120, 100%, 40%);">+ ##hex</span><br><span style="color: hsl(120, 100%, 40%);">+ ##default 0x21dd</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID</span><br><span style="color: hsl(120, 100%, 40%);">+        ##hex</span><br><span style="color: hsl(120, 100%, 40%);">+ ##default 0x17aa</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##config DRAM_RESET_GATE_GPIO</span><br><span style="color: hsl(120, 100%, 40%);">+     ##int</span><br><span style="color: hsl(120, 100%, 40%);">+ ##default 60</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config MMCONF_BASE_ADDRESS</span><br><span style="color: hsl(120, 100%, 40%);">+    hex</span><br><span style="color: hsl(120, 100%, 40%);">+   default 0xf0000000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config MAX_CPUS</span><br><span style="color: hsl(120, 100%, 40%);">+ int</span><br><span style="color: hsl(120, 100%, 40%);">+   default 8</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config USBDEBUG_HCD_INDEX</span><br><span style="color: hsl(120, 100%, 40%);">+        int</span><br><span style="color: hsl(120, 100%, 40%);">+   default 2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+endif # BOARD_ASUS_X555LA</span><br><span>diff --git a/src/mainboard/asus/x555la/Kconfig.name b/src/mainboard/asus/x555la/Kconfig.name</span><br><span>new file mode 100644</span><br><span>index 0000000..d9ed9ad</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/Kconfig.name</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+config BOARD_ASUS_X555LA</span><br><span style="color: hsl(120, 100%, 40%);">+      bool "X555LA"</span><br><span>diff --git a/src/mainboard/asus/x555la/Makefile.inc b/src/mainboard/asus/x555la/Makefile.inc</span><br><span>new file mode 100644</span><br><span>index 0000000..7d0bc4e</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/Makefile.inc</span><br><span>@@ -0,0 +1,45 @@</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+## it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+## the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+## but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+## GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+## DIMM SPD for on-board memory</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_BIN = $(obj)/spd.bin</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+## Order of names in SPD_SOURCES is important!</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES  = Micron_4KTF25664HZ  # 0: 4GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Hynix_HMT425S6AFR6A       # 1: 4GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Samsung_K4B4G1646B        # 2: 4GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Samsung_K4B4G1646Q        # 1: 4GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Samsung_M471B5674QH0      # 0: 4GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Micron_4KTF25664HZ        # 3: 2GB / CH0</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Hynix_HMT425S6AFR6A     # 4: 2GB / CH0</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Samsung_K4B4G1646B      # 4: 2GB / CH0</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Samsung_K4B4G1646Q      # 4: 2GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_SOURCES += Samsung_M471B5674QH0      # 3: 2GB / CH0 + CH1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#SPD_DEPS := $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$(f).spd.hex)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Include spd rom data</span><br><span style="color: hsl(120, 100%, 40%);">+#$(SPD_BIN): $(SPD_DEPS)</span><br><span style="color: hsl(120, 100%, 40%);">+ #for f in $+; \</span><br><span style="color: hsl(120, 100%, 40%);">+         #do for c in $$(cat $$f | grep -v ^#); \</span><br><span style="color: hsl(120, 100%, 40%);">+        #do printf $$(printf '\%o' 0x$$c); \</span><br><span style="color: hsl(120, 100%, 40%);">+        #done; \</span><br><span style="color: hsl(120, 100%, 40%);">+    #done > $@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#cbfs-files-y += spd.bin</span><br><span style="color: hsl(120, 100%, 40%);">+#spd.bin-file := $(SPD_BIN)</span><br><span style="color: hsl(120, 100%, 40%);">+#spd.bin-type := spd</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi/ec.asl b/src/mainboard/asus/x555la/acpi/ec.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..2997587</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi/ec.asl</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/* dummy */</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi/haswell_pci_irqs.asl b/src/mainboard/asus/x555la/acpi/haswell_pci_irqs.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..0900a3d</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi/haswell_pci_irqs.asl</span><br><span>@@ -0,0 +1,82 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2007-2009 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* This is board specific information: IRQ routing for Haswell */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// PCI Interrupt Routing</span><br><span style="color: hsl(120, 100%, 40%);">+Method(_PRT)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       If (PICM) {</span><br><span style="color: hsl(120, 100%, 40%);">+           Return (Package() {</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Onboard graphics (IGD)       0:2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                 Package() { 0x0002ffff, 0, 0, 16 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Mini-HD Audio                0:3.0</span><br><span style="color: hsl(120, 100%, 40%);">+                 Package() { 0x0003ffff, 0, 0, 16 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // High Definition Audio        0:1b.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001bffff, 0, 0, 22 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // PCIe Root Ports              0:1c.x</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001cffff, 0, 0, 16 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x001cffff, 1, 0, 17 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x001cffff, 2, 0, 18 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x001cffff, 3, 0, 19 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // EHCI                         0:1d.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001dffff, 0, 0, 19 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // XHCI                         0:14.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x0014ffff, 0, 0, 18 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // LPC devices                  0:1f.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001fffff, 0, 0, 22 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x001fffff, 1, 0, 18 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x001fffff, 2, 0, 17 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x001fffff, 3, 0, 16 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Serial IO                    0:15.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x0015ffff, 0, 0, 20 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x0015ffff, 1, 0, 21 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x0015ffff, 2, 0, 21 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   Package() { 0x0015ffff, 3, 0, 21 },</span><br><span style="color: hsl(120, 100%, 40%);">+                   // SDIO                         0:17.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x0017ffff, 0, 0, 23 },</span><br><span style="color: hsl(120, 100%, 40%);">+           })</span><br><span style="color: hsl(120, 100%, 40%);">+    } Else {</span><br><span style="color: hsl(120, 100%, 40%);">+              Return (Package() {</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Onboard graphics (IGD)       0:2.0</span><br><span style="color: hsl(120, 100%, 40%);">+                 Package() { 0x0002ffff, 0, \_SB.PCI0.LPCB.LNKA, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // Mini-HD Audio                0:3.0</span><br><span style="color: hsl(120, 100%, 40%);">+                 Package() { 0x0003ffff, 0, \_SB.PCI0.LPCB.LNKA, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // High Definition Audio        0:1b.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001bffff, 0, \_SB.PCI0.LPCB.LNKG, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // PCIe Root Ports              0:1c.x</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001cffff, 0, \_SB.PCI0.LPCB.LNKA, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x001cffff, 1, \_SB.PCI0.LPCB.LNKB, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x001cffff, 2, \_SB.PCI0.LPCB.LNKC, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x001cffff, 3, \_SB.PCI0.LPCB.LNKD, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // EHCI                         0:1d.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001dffff, 0, \_SB.PCI0.LPCB.LNKD, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // XHCI                         0:14.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x0014ffff, 0, \_SB.PCI0.LPCB.LNKC, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // LPC device                   0:1f.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x001fffff, 0, \_SB.PCI0.LPCB.LNKG, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x001fffff, 1, \_SB.PCI0.LPCB.LNKC, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x001fffff, 2, \_SB.PCI0.LPCB.LNKB, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x001fffff, 3, \_SB.PCI0.LPCB.LNKA, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // Serial IO                    0:15.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x0015ffff, 0, \_SB.PCI0.LPCB.LNKE, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x0015ffff, 1, \_SB.PCI0.LPCB.LNKF, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x0015ffff, 2, \_SB.PCI0.LPCB.LNKF, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  Package() { 0x0015ffff, 3, \_SB.PCI0.LPCB.LNKF, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  // SDIO                         0:17.0</span><br><span style="color: hsl(120, 100%, 40%);">+                        Package() { 0x0017ffff, 0, \_SB.PCI0.LPCB.LNKH, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+          })</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi/mainboard.asl b/src/mainboard/asus/x555la/acpi/mainboard.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..fa2b153</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi/mainboard.asl</span><br><span>@@ -0,0 +1,72 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or</span><br><span style="color: hsl(120, 100%, 40%);">+ * modify it under the terms of the GNU General Public License as</span><br><span style="color: hsl(120, 100%, 40%);">+ * published by the Free Software Foundation; version 2 of</span><br><span style="color: hsl(120, 100%, 40%);">+ * the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Scope (\_SB)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ Device (PWRB)</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name(_HID, EisaId("PNP0C0C"))</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Scope (\_SB.PCI0.I2C0)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     Device (CTPA)</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (_HID, "CYAP0000")</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (_DDN, "Cypress Touchpad")</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (_UID, 3)</span><br><span style="color: hsl(120, 100%, 40%);">+                Name (ISTP, 1) /* Touchpad */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               Name (_CRS, ResourceTemplate()</span><br><span style="color: hsl(120, 100%, 40%);">+                {</span><br><span style="color: hsl(120, 100%, 40%);">+                     I2cSerialBus (</span><br><span style="color: hsl(120, 100%, 40%);">+                                0x67,                     // SlaveAddress</span><br><span style="color: hsl(120, 100%, 40%);">+                             ControllerInitiated,      // SlaveMode</span><br><span style="color: hsl(120, 100%, 40%);">+                                400000,                   // ConnectionSpeed</span><br><span style="color: hsl(120, 100%, 40%);">+                          AddressingMode7Bit,       // AddressingMode</span><br><span style="color: hsl(120, 100%, 40%);">+                           "\\_SB.PCI0.I2C0"        // ResourceSource</span><br><span style="color: hsl(120, 100%, 40%);">+                  )</span><br><span style="color: hsl(120, 100%, 40%);">+                     Interrupt (ResourceConsumer, Edge, ActiveLow)</span><br><span style="color: hsl(120, 100%, 40%);">+                 {</span><br><span style="color: hsl(120, 100%, 40%);">+                             BOARD_TRACKPAD_IRQ</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             })</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          Method (_STA)</span><br><span style="color: hsl(120, 100%, 40%);">+         {</span><br><span style="color: hsl(120, 100%, 40%);">+                     If (LEqual (\S1EN, 1)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                              Return (0xF)</span><br><span style="color: hsl(120, 100%, 40%);">+                  } Else {</span><br><span style="color: hsl(120, 100%, 40%);">+                              Return (0x0)</span><br><span style="color: hsl(120, 100%, 40%);">+                  }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           Name (_PRW, Package() { BOARD_TRACKPAD_WAKE_GPIO, 0x3 })</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            Method (_DSW, 3, NotSerialized)</span><br><span style="color: hsl(120, 100%, 40%);">+               {</span><br><span style="color: hsl(120, 100%, 40%);">+                     Store (BOARD_TRACKPAD_WAKE_GPIO, Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+                      If (LEqual (Arg0, 1)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               // Enable GPIO as wake source</span><br><span style="color: hsl(120, 100%, 40%);">+                         \_SB.PCI0.LPCB.GWAK (Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+                  }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           /* Allow device to power off in S0 */</span><br><span style="color: hsl(120, 100%, 40%);">+         Name (_S0W, 4)</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi/platform.asl b/src/mainboard/asus/x555la/acpi/platform.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..270464e</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi/platform.asl</span><br><span>@@ -0,0 +1,68 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2007-2009 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* The APM port can be used for generating software SMIs */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OperationRegion (APMP, SystemIO, 0xb2, 2)</span><br><span style="color: hsl(120, 100%, 40%);">+Field (APMP, ByteAcc, NoLock, Preserve)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      APMC, 8,        // APM command</span><br><span style="color: hsl(120, 100%, 40%);">+        APMS, 8         // APM status</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Port 80 POST */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OperationRegion (POST, SystemIO, 0x80, 1)</span><br><span style="color: hsl(120, 100%, 40%);">+Field (POST, ByteAcc, Lock, Preserve)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ DBG0, 8</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* SMI I/O Trap */</span><br><span style="color: hsl(120, 100%, 40%);">+Method(TRAP, 1, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      Store (Arg0, SMIF)      // SMI Function</span><br><span style="color: hsl(120, 100%, 40%);">+       Store (0, TRP0)         // Generate trap</span><br><span style="color: hsl(120, 100%, 40%);">+      Return (SMIF)           // Return value of SMI handler</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* The _PIC method is called by the OS to choose between interrupt</span><br><span style="color: hsl(120, 100%, 40%);">+ * routing via the i8259 interrupt controller or the APIC.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * _PIC is called with a parameter of 0 for i8259 configuration and</span><br><span style="color: hsl(120, 100%, 40%);">+ * with a parameter of 1 for Local Apic/IOAPIC configuration.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Method(_PIC, 1)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        // Remember the OS' IRQ routing choice.</span><br><span style="color: hsl(120, 100%, 40%);">+   Store(Arg0, PICM)</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* The _PTS method (Prepare To Sleep) is called before the OS is</span><br><span style="color: hsl(120, 100%, 40%);">+ * entering a sleep state. The sleep state number is passed in Arg0</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Method(_PTS,1)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* The _WAK method is called on system wakeup */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Method(_WAK,1)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   Return(Package(){0,0})</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi/superio.asl b/src/mainboard/asus/x555la/acpi/superio.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..2997587</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi/superio.asl</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/* dummy */</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi/thermal.asl.OFF b/src/mainboard/asus/x555la/acpi/thermal.asl.OFF</span><br><span>new file mode 100644</span><br><span>index 0000000..0c694c0</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi/thermal.asl.OFF</span><br><span>@@ -0,0 +1,133 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// Thermal Zone</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define HAVE_THERMALZONE</span><br><span style="color: hsl(120, 100%, 40%);">+Scope (\_TZ)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     // Handler for throttle requests on this platform</span><br><span style="color: hsl(120, 100%, 40%);">+     //  0 = Stop throttling</span><br><span style="color: hsl(120, 100%, 40%);">+       //  1 = Start throttling</span><br><span style="color: hsl(120, 100%, 40%);">+      Method (THRT, 1, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+  {</span><br><span style="color: hsl(120, 100%, 40%);">+             If (LEqual (Arg0, 0)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       /* Disable Power Limit */</span><br><span style="color: hsl(120, 100%, 40%);">+                     \_SB.PCI0.MCHC.CTLD ()</span><br><span style="color: hsl(120, 100%, 40%);">+                } Else {</span><br><span style="color: hsl(120, 100%, 40%);">+                      /* Enable Power Limit */</span><br><span style="color: hsl(120, 100%, 40%);">+                      \_SB.PCI0.MCHC.CTLE (\F0PW)</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   ThermalZone (THRM)</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (_TC1, 0x02)</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (_TC2, 0x05)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           // Thermal zone polling frequency: 10 seconds</span><br><span style="color: hsl(120, 100%, 40%);">+         Name (_TZP, 100)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            // Thermal sampling period for passive cooling: 2 seconds</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (_TSP, 20)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+             // Convert from Degrees C to 1/10 Kelvin for ACPI</span><br><span style="color: hsl(120, 100%, 40%);">+             Method (CTOK, 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    // 10th of Degrees C</span><br><span style="color: hsl(120, 100%, 40%);">+                  Multiply (Arg0, 10, Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                 // Convert to Kelvin</span><br><span style="color: hsl(120, 100%, 40%);">+                  Add (Local0, 2732, Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                  Return (Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           // Threshold for OS to shutdown</span><br><span style="color: hsl(120, 100%, 40%);">+               Method (_CRT, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+          {</span><br><span style="color: hsl(120, 100%, 40%);">+                     Return (CTOK (\TCRT))</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           // Threshold for passive cooling</span><br><span style="color: hsl(120, 100%, 40%);">+              Method (_PSV, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+          {</span><br><span style="color: hsl(120, 100%, 40%);">+                     Return (CTOK (\TPSV))</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           // Processors used for passive cooling</span><br><span style="color: hsl(120, 100%, 40%);">+                Method (_PSL, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+          {</span><br><span style="color: hsl(120, 100%, 40%);">+                     Return (\PPKG ())</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           Method (TCHK, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+          {</span><br><span style="color: hsl(120, 100%, 40%);">+                     // Get Temperature from TIN# set in NVS</span><br><span style="color: hsl(120, 100%, 40%);">+                       Store (\_SB.PCI0.LPCB.EC0.TINS (TMPS), Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                      // Check for sensor not calibrated</span><br><span style="color: hsl(120, 100%, 40%);">+                    If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TNCA)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               Return (CTOK(0))</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Check for sensor not present</span><br><span style="color: hsl(120, 100%, 40%);">+                       If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TNPR)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               Return (CTOK(0))</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Check for sensor not powered</span><br><span style="color: hsl(120, 100%, 40%);">+                       If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TNOP)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               Return (CTOK(0))</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Check for sensor bad reading</span><br><span style="color: hsl(120, 100%, 40%);">+                       If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TBAD)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               Return (CTOK(0))</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   // Adjust by offset to get Kelvin</span><br><span style="color: hsl(120, 100%, 40%);">+                     Add (\_SB.PCI0.LPCB.EC0.TOFS, Local0, Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                       // Convert to 1/10 Kelvin</span><br><span style="color: hsl(120, 100%, 40%);">+                     Multiply (Local0, 10, Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+                 Return (Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           Method (_TMP, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+          {</span><br><span style="color: hsl(120, 100%, 40%);">+                     // Get temperature from EC in deci-kelvin</span><br><span style="color: hsl(120, 100%, 40%);">+                     Store (TCHK (), Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     // Critical temperature in deci-kelvin</span><br><span style="color: hsl(120, 100%, 40%);">+                        Store (CTOK (\TCRT), Local1)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                        If (LGreaterEqual (Local0, Local1)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         Store ("CRITICAL TEMPERATURE", Debug)</span><br><span style="color: hsl(120, 100%, 40%);">+                               Store (Local0, Debug)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                               // Wait 1 second for EC to re-poll</span><br><span style="color: hsl(120, 100%, 40%);">+                            Sleep (1000)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                                // Re-read temperature from EC</span><br><span style="color: hsl(120, 100%, 40%);">+                                Store (TCHK (), Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                             Store ("RE-READ TEMPERATURE", Debug)</span><br><span style="color: hsl(120, 100%, 40%);">+                                Store (Local0, Debug)</span><br><span style="color: hsl(120, 100%, 40%);">+                 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   Return (Local0)</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/acpi_tables.c b/src/mainboard/asus/x555la/acpi_tables.c</span><br><span>new file mode 100644</span><br><span>index 0000000..ec97c1d</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/acpi_tables.c</span><br><span>@@ -0,0 +1,57 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <southbridge/intel/lynxpoint/pch.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <southbridge/intel/lynxpoint/nvs.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "thermal.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void acpi_update_thermal_table(global_nvs_t *gnvs)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     gnvs->tcrt = CRITICAL_TEMPERATURE;</span><br><span style="color: hsl(120, 100%, 40%);">+ gnvs->tpsv = PASSIVE_TEMPERATURE;</span><br><span style="color: hsl(120, 100%, 40%);">+  gnvs->tmax = MAX_TEMPERATURE;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void acpi_create_gnvs(global_nvs_t *gnvs)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Enable USB ports in S3 */</span><br><span style="color: hsl(120, 100%, 40%);">+  gnvs->s3u0 = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+    gnvs->s3u1 = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Disable USB ports in S5 */</span><br><span style="color: hsl(120, 100%, 40%);">+ gnvs->s5u0 = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    gnvs->s5u1 = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  acpi_update_thermal_table(gnvs);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+unsigned long acpi_fill_madt(unsigned long current)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Local APICs */</span><br><span style="color: hsl(120, 100%, 40%);">+     current = acpi_create_madt_lapics(current);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* IOAPIC *//*</span><br><span style="color: hsl(120, 100%, 40%);">+        current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current,</span><br><span style="color: hsl(120, 100%, 40%);">+                            2, IO_APIC_ADDR, 0);*/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* INT_SRC_OVR *//*</span><br><span style="color: hsl(120, 100%, 40%);">+   current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)</span><br><span style="color: hsl(120, 100%, 40%);">+            current, 0, 0, 2, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+        current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)</span><br><span style="color: hsl(120, 100%, 40%);">+            current, 0, 9, 9, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_HIGH);</span><br><span style="color: hsl(120, 100%, 40%);">+*/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        return current;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/board_info.txt b/src/mainboard/asus/x555la/board_info.txt</span><br><span>new file mode 100644</span><br><span>index 0000000..fc1d86e</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/board_info.txt</span><br><span>@@ -0,0 +1,7 @@</span><br><span style="color: hsl(120, 100%, 40%);">+Vendor name: ASUS</span><br><span style="color: hsl(120, 100%, 40%);">+Board name: X555LA</span><br><span style="color: hsl(120, 100%, 40%);">+Category: laptop</span><br><span style="color: hsl(120, 100%, 40%);">+ROM package: SOIC-8</span><br><span style="color: hsl(120, 100%, 40%);">+ROM protocol: SPI</span><br><span style="color: hsl(120, 100%, 40%);">+ROM socketed: n</span><br><span style="color: hsl(120, 100%, 40%);">+Flashrom support: n</span><br><span>diff --git a/src/mainboard/asus/x555la/cmos.layout b/src/mainboard/asus/x555la/cmos.layout</span><br><span>new file mode 100644</span><br><span>index 0000000..c2cbdbc</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/cmos.layout</span><br><span>@@ -0,0 +1,97 @@</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## Copyright (C) 2007-2008 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+## it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+## the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+## This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+## but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+## GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+##</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+entries</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# Status Register A</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# Status Register B</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# Status Register C</span><br><span style="color: hsl(120, 100%, 40%);">+#96           4       r       0        status_c_rsvd</span><br><span style="color: hsl(120, 100%, 40%);">+#100          1       r       0        uf_flag</span><br><span style="color: hsl(120, 100%, 40%);">+#101          1       r       0        af_flag</span><br><span style="color: hsl(120, 100%, 40%);">+#102          1       r       0        pf_flag</span><br><span style="color: hsl(120, 100%, 40%);">+#103          1       r       0        irqf_flag</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# Status Register D</span><br><span style="color: hsl(120, 100%, 40%);">+#104          7       r       0        status_d_rsvd</span><br><span style="color: hsl(120, 100%, 40%);">+#111          1       r       0        valid_cmos_ram</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# Diagnostic Status Register</span><br><span style="color: hsl(120, 100%, 40%);">+#112          8       r       0        diag_rsvd1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+0          120       r       0        reserved_memory</span><br><span style="color: hsl(120, 100%, 40%);">+#120        264       r       0        unused</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# RTC_BOOT_BYTE (coreboot hardcoded)</span><br><span style="color: hsl(120, 100%, 40%);">+384          1       e       4        boot_option</span><br><span style="color: hsl(120, 100%, 40%);">+388          4       h       0        reboot_counter</span><br><span style="color: hsl(120, 100%, 40%);">+#390          2       r       0        unused?</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+# coreboot config options: console</span><br><span style="color: hsl(120, 100%, 40%);">+#392          3       r       0        unused</span><br><span style="color: hsl(120, 100%, 40%);">+395          4       e       6        debug_level</span><br><span style="color: hsl(120, 100%, 40%);">+#399          1       r       0        unused</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# coreboot config options: cpu</span><br><span style="color: hsl(120, 100%, 40%);">+400          1       e       2        hyper_threading</span><br><span style="color: hsl(120, 100%, 40%);">+#401          7       r       0        unused</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# coreboot config options: southbridge</span><br><span style="color: hsl(120, 100%, 40%);">+408          1       e       1        nmi</span><br><span style="color: hsl(120, 100%, 40%);">+409          2       e       7        power_on_after_fail</span><br><span style="color: hsl(120, 100%, 40%);">+#411          5       r       0        unused</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# SandyBridge MRC Scrambler Seed values</span><br><span style="color: hsl(120, 100%, 40%);">+896         32        r       0        mrc_scrambler_seed</span><br><span style="color: hsl(120, 100%, 40%);">+928         32        r       0        mrc_scrambler_seed_s3</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# coreboot config options: check sums</span><br><span style="color: hsl(120, 100%, 40%);">+984         16       h       0        check_sum</span><br><span style="color: hsl(120, 100%, 40%);">+#1000        24       r       0        amd_reserved</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+enumerations</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ID value   text</span><br><span style="color: hsl(120, 100%, 40%);">+1     0     Disable</span><br><span style="color: hsl(120, 100%, 40%);">+1     1     Enable</span><br><span style="color: hsl(120, 100%, 40%);">+2     0     Enable</span><br><span style="color: hsl(120, 100%, 40%);">+2     1     Disable</span><br><span style="color: hsl(120, 100%, 40%);">+4     0     Fallback</span><br><span style="color: hsl(120, 100%, 40%);">+4     1     Normal</span><br><span style="color: hsl(120, 100%, 40%);">+6     0     Emergency</span><br><span style="color: hsl(120, 100%, 40%);">+6     1     Alert</span><br><span style="color: hsl(120, 100%, 40%);">+6     2     Critical</span><br><span style="color: hsl(120, 100%, 40%);">+6     3     Error</span><br><span style="color: hsl(120, 100%, 40%);">+6     4     Warning</span><br><span style="color: hsl(120, 100%, 40%);">+6     5     Notice</span><br><span style="color: hsl(120, 100%, 40%);">+6     6     Info</span><br><span style="color: hsl(120, 100%, 40%);">+6     7     Debug</span><br><span style="color: hsl(120, 100%, 40%);">+6     8     Spew</span><br><span style="color: hsl(120, 100%, 40%);">+7     0     Disable</span><br><span style="color: hsl(120, 100%, 40%);">+7     1     Enable</span><br><span style="color: hsl(120, 100%, 40%);">+7     2     Keep</span><br><span style="color: hsl(120, 100%, 40%);">+# -----------------------------------------------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+checksums</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+checksum 392 415 984</span><br><span>diff --git a/src/mainboard/asus/x555la/devicetree.cb b/src/mainboard/asus/x555la/devicetree.cb</span><br><span>new file mode 100644</span><br><span>index 0000000..7466ed4</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/devicetree.cb</span><br><span>@@ -0,0 +1,122 @@</span><br><span style="color: hsl(120, 100%, 40%);">+chip northbridge/intel/haswell</span><br><span style="color: hsl(120, 100%, 40%);">+ # IGD Displays</span><br><span style="color: hsl(120, 100%, 40%);">+        register "gfx.ndid" = "3"</span><br><span style="color: hsl(120, 100%, 40%);">+ register "gfx.did" = "{ 0x80000100, 0x80000240, 0x80000410 }"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   # Enable eDP Hotplug with 6ms pulse</span><br><span style="color: hsl(120, 100%, 40%);">+   register "gpu_dp_d_hotplug" = "0x06"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    # Disable DisplayPort C Hotplug</span><br><span style="color: hsl(120, 100%, 40%);">+       register "gpu_dp_c_hotplug" = "0x00"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    # Enable HDMI Hotplug with 6ms pulse</span><br><span style="color: hsl(120, 100%, 40%);">+  register "gpu_dp_b_hotplug" = "0x06"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    # Set backlight PWM values for eDP</span><br><span style="color: hsl(120, 100%, 40%);">+    register "gpu_cpu_backlight" = "0x00000200"</span><br><span style="color: hsl(120, 100%, 40%);">+       register "gpu_pch_backlight" = "0x04000000"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     # Enable Panel and configure power delays</span><br><span style="color: hsl(120, 100%, 40%);">+     register "gpu_panel_port_select" = "1"                      # eDP</span><br><span style="color: hsl(120, 100%, 40%);">+ register "gpu_panel_power_cycle_delay" = "6"                # 500ms (T11+T12)</span><br><span style="color: hsl(120, 100%, 40%);">+     register "gpu_panel_power_up_delay" = "2000"                # 200ms (T3)</span><br><span style="color: hsl(120, 100%, 40%);">+  register "gpu_panel_power_down_delay" = "500"               # 50ms (T10)</span><br><span style="color: hsl(120, 100%, 40%);">+  register "gpu_panel_power_backlight_on_delay" = "10"        # 1ms (T8)</span><br><span style="color: hsl(120, 100%, 40%);">+    register "gpu_panel_power_backlight_off_delay" = "2000"     # 200ms (T9)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        device cpu_cluster 0 on</span><br><span style="color: hsl(120, 100%, 40%);">+               chip cpu/intel/haswell</span><br><span style="color: hsl(120, 100%, 40%);">+                        device lapic 0 on end</span><br><span style="color: hsl(120, 100%, 40%);">+                 # Magic APIC ID to locate this chip</span><br><span style="color: hsl(120, 100%, 40%);">+                   device lapic 0xACAC off end</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "c1_battery" = "2" # ACPI(C1) = MWAIT(C1E)</span><br><span style="color: hsl(120, 100%, 40%);">+                       register "c2_battery" = "3" # ACPI(C2) = MWAIT(C3)</span><br><span style="color: hsl(120, 100%, 40%);">+                        register "c3_battery" = "9" # ACPI(C3) = MWAIT(C7S)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     register "c1_acpower" = "2" # ACPI(C1) = MWAIT(C1E)</span><br><span style="color: hsl(120, 100%, 40%);">+                       register "c2_acpower" = "3" # ACPI(C2) = MWAIT(C3)</span><br><span style="color: hsl(120, 100%, 40%);">+                        register "c3_acpower" = "9" # ACPI(C3) = MWAIT(C7S)</span><br><span style="color: hsl(120, 100%, 40%);">+               end</span><br><span style="color: hsl(120, 100%, 40%);">+   end</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ device domain 0 on</span><br><span style="color: hsl(120, 100%, 40%);">+            device pci 00.0 on end # host bridge</span><br><span style="color: hsl(120, 100%, 40%);">+          device pci 02.0 on end # vga controller</span><br><span style="color: hsl(120, 100%, 40%);">+               device pci 03.0 on end # mini-hd audio</span><br><span style="color: hsl(120, 100%, 40%);">+                device pci 04.0 on end # Thermal</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            chip southbridge/intel/lynxpoint</span><br><span style="color: hsl(120, 100%, 40%);">+                      #register "pirqa_routing" = "0x8b"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqb_routing" = "0x8a"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqc_routing" = "0x8b"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqd_routing" = "0x8b"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqe_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqf_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqg_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "pirqh_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                      # EC range is 0x800-0x9ff</span><br><span style="color: hsl(120, 100%, 40%);">+                     #register "gen1_dec" = "0x00fc0801"</span><br><span style="color: hsl(120, 100%, 40%);">+                       #register "gen2_dec" = "0x00fc0901"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                     # EC_SMI is GPIO34</span><br><span style="color: hsl(120, 100%, 40%);">+                    #register "alt_gp_smi_en" = "0x0004"</span><br><span style="color: hsl(120, 100%, 40%);">+                      #register "gpe0_en_1" = "0x00000000"</span><br><span style="color: hsl(120, 100%, 40%);">+                      # EC_SCI is GPIO36</span><br><span style="color: hsl(120, 100%, 40%);">+                    #register "gpe0_en_2" = "0x00000010"</span><br><span style="color: hsl(120, 100%, 40%);">+                      #register "gpe0_en_3" = "0x00000000"</span><br><span style="color: hsl(120, 100%, 40%);">+                      #register "gpe0_en_4" = "0x00000000"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                    register "sata_ahci" = "0x1"</span><br><span style="color: hsl(120, 100%, 40%);">+                      register "sata_port_map" = "0x33"</span><br><span style="color: hsl(120, 100%, 40%);">+                 #register "sata_devslp_disable" = "0x1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                 # DTLE DATA / EDGE values</span><br><span style="color: hsl(120, 100%, 40%);">+                     #register "sata_port0_gen3_dtle" = "0x5"</span><br><span style="color: hsl(120, 100%, 40%);">+                  #register "sata_port1_gen3_dtle" = "0x5"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                        #register "sio_acpi_mode" = "1"</span><br><span style="color: hsl(120, 100%, 40%);">+                   #register "sio_i2c0_voltage" = "0" # 3.3V</span><br><span style="color: hsl(120, 100%, 40%);">+                 #register "sio_i2c1_voltage" = "0" # 3.3V</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                       # Force enable ASPM for PCIe Port 1</span><br><span style="color: hsl(120, 100%, 40%);">+                   #register "pcie_port_force_aspm" = "0x01"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                       # Route all USB ports to XHCI per default</span><br><span style="color: hsl(120, 100%, 40%);">+                     register "xhci_default" = "1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   # Disable PCIe CLKOUT 2-5 and CLKOUT_XDP</span><br><span style="color: hsl(120, 100%, 40%);">+                      #register "icc_clock_disable" = "0x013c0000"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                    #device pci 13.0 off end # Smart Sound Audio DSP</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 14.0 on end # USB3 XHCI</span><br><span style="color: hsl(120, 100%, 40%);">+                    device pci 15.0 off end # Serial I/O DMA</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 15.1 off end # I2C0</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 15.2 off end # I2C1</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 15.3 off end # GSPI0</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 15.4 off end # GSPI1</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 15.5 off end # UART0</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 15.6 off end # UART1</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 16.0 on end # Management Engine Interface 1</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 16.1 off end # Management Engine Interface 2</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 16.2 off end # Management Engine IDE-R</span><br><span style="color: hsl(120, 100%, 40%);">+                     device pci 16.3 off end # Management Engine KT</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 17.0 off end # SDIO</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 19.0 off end # GbE</span><br><span style="color: hsl(120, 100%, 40%);">+                 device pci 1b.0 off end # High Definition Audio</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 1c.0 on end # PCIe Port #1</span><br><span style="color: hsl(120, 100%, 40%);">+                 device pci 1c.1 off end # PCIe Port #2</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 1c.2 on end # PCIe Port #3</span><br><span style="color: hsl(120, 100%, 40%);">+                 device pci 1c.3 on end # PCIe Port #4</span><br><span style="color: hsl(120, 100%, 40%);">+                 device pci 1c.4 off end # PCIe Port #5</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 1c.5 off end # PCIe Port #6</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 1d.0 on end # USB2 EHCI</span><br><span style="color: hsl(120, 100%, 40%);">+                    device pci 1e.0 off end # PCI bridge</span><br><span style="color: hsl(120, 100%, 40%);">+                  device pci 1f.0 on end # LPC bridge</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1f.2 on end # SATA Controller</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 1f.3 on end # SMBus</span><br><span style="color: hsl(120, 100%, 40%);">+                        device pci 1f.6 on end # Thermal</span><br><span style="color: hsl(120, 100%, 40%);">+              end</span><br><span style="color: hsl(120, 100%, 40%);">+   end</span><br><span style="color: hsl(120, 100%, 40%);">+end</span><br><span>diff --git a/src/mainboard/asus/x555la/dsdt.asl b/src/mainboard/asus/x555la/dsdt.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..4e64020</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/dsdt.asl</span><br><span>@@ -0,0 +1,65 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2007-2009 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DefinitionBlock(</span><br><span style="color: hsl(120, 100%, 40%);">+ "dsdt.aml",</span><br><span style="color: hsl(120, 100%, 40%);">+ "DSDT",</span><br><span style="color: hsl(120, 100%, 40%);">+     0x02,           // DSDT revision: ACPI v2.0</span><br><span style="color: hsl(120, 100%, 40%);">+   "COREv4",     // OEM id</span><br><span style="color: hsl(120, 100%, 40%);">+     "COREBOOT",   // OEM table id</span><br><span style="color: hsl(120, 100%, 40%);">+       0x20110725      // OEM revision</span><br><span style="color: hsl(120, 100%, 40%);">+)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ // Some generic macros</span><br><span style="color: hsl(120, 100%, 40%);">+        #include "acpi/platform.asl"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      // Thermal handler</span><br><span style="color: hsl(120, 100%, 40%);">+    //#include "acpi/thermal.asl"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     // global NVS and variables</span><br><span style="color: hsl(120, 100%, 40%);">+   #include <southbridge/intel/lynxpoint/acpi/globalnvs.asl></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     // General Purpose Events</span><br><span style="color: hsl(120, 100%, 40%);">+     //#include "acpi/gpe.asl"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ // CPU</span><br><span style="color: hsl(120, 100%, 40%);">+        #include <cpu/intel/haswell/acpi/cpu.asl></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     Scope (\_SB) {</span><br><span style="color: hsl(120, 100%, 40%);">+                Device (PCI0)</span><br><span style="color: hsl(120, 100%, 40%);">+         {</span><br><span style="color: hsl(120, 100%, 40%);">+                     #include <northbridge/intel/haswell/acpi/haswell.asl></span><br><span style="color: hsl(120, 100%, 40%);">+                   #include <southbridge/intel/lynxpoint/acpi/pch.asl></span><br><span style="color: hsl(120, 100%, 40%);">+                     #include <drivers/intel/gma/acpi/default_brightness_levels.asl></span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+       Scope (\_SB.PCI0.RP01)</span><br><span style="color: hsl(120, 100%, 40%);">+        {</span><br><span style="color: hsl(120, 100%, 40%);">+             Device (WLAN)</span><br><span style="color: hsl(120, 100%, 40%);">+         {</span><br><span style="color: hsl(120, 100%, 40%);">+                     Name (_ADR, Zero)</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+*/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       // Mainboard specific</span><br><span style="color: hsl(120, 100%, 40%);">+ //#include "acpi/mainboard.asl"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   // Chipset specific sleep states</span><br><span style="color: hsl(120, 100%, 40%);">+      #include <southbridge/intel/lynxpoint/acpi/sleepstates.asl></span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/fadt.c b/src/mainboard/asus/x555la/fadt.c</span><br><span>new file mode 100644</span><br><span>index 0000000..fe50215</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/fadt.c</span><br><span>@@ -0,0 +1,153 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2007-2009 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/pci.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <arch/acpi.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <cpu/x86/smm.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <southbridge/intel/lynxpoint/pch.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   acpi_header_t *header = &(fadt->header);</span><br><span style="color: hsl(120, 100%, 40%);">+       //u16 pmbase = get_pmbase();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        memset((void *) fadt, 0, sizeof(acpi_fadt_t));</span><br><span style="color: hsl(120, 100%, 40%);">+        memcpy(header->signature, "FACP", 4);</span><br><span style="color: hsl(120, 100%, 40%);">+    header->length = sizeof(acpi_fadt_t);</span><br><span style="color: hsl(120, 100%, 40%);">+      header->revision = ACPI_FADT_REV_ACPI_3_0;</span><br><span style="color: hsl(120, 100%, 40%);">+ memcpy(header->oem_id, OEM_ID, 6);</span><br><span style="color: hsl(120, 100%, 40%);">+ memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+       memcpy(header->asl_compiler_id, ASLC, 4);</span><br><span style="color: hsl(120, 100%, 40%);">+  header->asl_compiler_revision = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->firmware_ctrl = (unsigned long) facs;</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->dsdt = (unsigned long) dsdt;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->model = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->preferred_pm_profile = PM_MOBILE;</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->sci_int = 0x9;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->smi_cmd = APM_CNT;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->acpi_enable = APM_CNT_ACPI_ENABLE;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->acpi_disable = APM_CNT_ACPI_DISABLE;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->s4bios_req = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->pstate_cnt = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->pm1a_evt_blk = pmbase;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->pm1b_evt_blk = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->pm1a_cnt_blk = pmbase + 0x4;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->pm1b_cnt_blk = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->pm2_cnt_blk = pmbase + 0x50;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->pm_tmr_blk = pmbase + 0x8;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->gpe0_blk = pmbase + 0x80;</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->gpe1_blk = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->pm1_evt_len = 4;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->pm1_cnt_len = 2;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->pm2_cnt_len = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->pm_tmr_len = 4;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->gpe0_blk_len = 32;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->gpe1_blk_len = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->gpe1_base = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->cst_cnt = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->p_lvl2_lat = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->p_lvl3_lat = 87;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->flush_size = 1024;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->flush_stride = 16;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->duty_offset = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->duty_width = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->day_alrm = 0xd;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->mon_alrm = 0x00;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->century = 0x00;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |</span><br><span style="color: hsl(120, 100%, 40%);">+                  ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |</span><br><span style="color: hsl(120, 100%, 40%);">+                  ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |</span><br><span style="color: hsl(120, 100%, 40%);">+                    ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->reset_reg.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->reset_reg.bit_width = 8;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->reset_reg.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->reset_reg.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->reset_reg.addrl = 0xcf9;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->reset_reg.addrh = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->reset_value = 6;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_firmware_ctl_l = (unsigned long)facs;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->x_firmware_ctl_h = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_dsdt_l = (unsigned long)dsdt;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->x_dsdt_h = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->x_pm1a_evt_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm1a_evt_blk.bit_width = 32;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1a_evt_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1a_evt_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_pm1a_evt_blk.addrl = pmbase;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1a_evt_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm1b_evt_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm1b_evt_blk.bit_width = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm1b_evt_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1b_evt_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_pm1b_evt_blk.addrl = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->x_pm1b_evt_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm1a_cnt_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm1a_cnt_blk.bit_width = 16;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1a_cnt_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1a_cnt_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_pm1a_cnt_blk.addrl = pmbase + 0x4;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm1a_cnt_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm1b_cnt_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm1b_cnt_blk.bit_width = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm1b_cnt_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm1b_cnt_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_pm1b_cnt_blk.addrl = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->x_pm1b_cnt_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm2_cnt_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->x_pm2_cnt_blk.bit_width = 8;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm2_cnt_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_pm2_cnt_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->x_pm2_cnt_blk.addrl = pmbase + 0x50;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm2_cnt_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm_tmr_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->x_pm_tmr_blk.bit_width = 32;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm_tmr_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_pm_tmr_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       fadt->x_pm_tmr_blk.addrl = pmbase + 0x8;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->x_pm_tmr_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  fadt->x_gpe0_blk.space_id = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_gpe0_blk.bit_width = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->x_gpe0_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->x_gpe0_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_gpe0_blk.addrl = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        fadt->x_gpe0_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->x_gpe1_blk.space_id = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     fadt->x_gpe1_blk.bit_width = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    fadt->x_gpe1_blk.bit_offset = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   fadt->x_gpe1_blk.resv = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ fadt->x_gpe1_blk.addrl = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+      fadt->x_gpe1_blk.addrh = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+*/</span><br><span style="color: hsl(120, 100%, 40%);">+  header->checksum =</span><br><span style="color: hsl(120, 100%, 40%);">+     acpi_checksum((void *) fadt, header->length);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/gma-mainboard.ads b/src/mainboard/asus/x555la/gma-mainboard.ads</span><br><span>new file mode 100644</span><br><span>index 0000000..338f1fc</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/gma-mainboard.ads</span><br><span>@@ -0,0 +1,38 @@</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Copyright (C) 2016 Arthur Heymans arthur@aheymans.xyz</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+-- it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+-- the Free Software Foundation; either version 2 of the License, or</span><br><span style="color: hsl(120, 100%, 40%);">+-- (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+-- but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+-- GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+with HW.GFX.GMA;</span><br><span style="color: hsl(120, 100%, 40%);">+with HW.GFX.GMA.Display_Probing;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+use HW.GFX.GMA;</span><br><span style="color: hsl(120, 100%, 40%);">+use HW.GFX.GMA.Display_Probing;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+private package GMA.Mainboard is</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   -- For a three-pipe setup, bandwidth is shared between the 2nd and</span><br><span style="color: hsl(120, 100%, 40%);">+   -- the 3rd pipe (if it's not eDP). Thus, probe ports that likely</span><br><span style="color: hsl(120, 100%, 40%);">+   -- have a high-resolution display attached first, `Internal` last.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   -- #FIXME: Check what is actually used</span><br><span style="color: hsl(120, 100%, 40%);">+   ports : constant Port_List :=</span><br><span style="color: hsl(120, 100%, 40%);">+     (DP1,</span><br><span style="color: hsl(120, 100%, 40%);">+      DP2,</span><br><span style="color: hsl(120, 100%, 40%);">+      DP3,</span><br><span style="color: hsl(120, 100%, 40%);">+      HDMI1,</span><br><span style="color: hsl(120, 100%, 40%);">+      HDMI2,</span><br><span style="color: hsl(120, 100%, 40%);">+      HDMI3,</span><br><span style="color: hsl(120, 100%, 40%);">+      Internal,</span><br><span style="color: hsl(120, 100%, 40%);">+      others => Disabled);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+end GMA.Mainboard;</span><br><span>diff --git a/src/mainboard/asus/x555la/gpio.h b/src/mainboard/asus/x555la/gpio.h</span><br><span>new file mode 100644</span><br><span>index 0000000..8e24b3a</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/gpio.h</span><br><span>@@ -0,0 +1,120 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2018 Angel Pons <th3fanbus@gmail.com></span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef X555LA_GPIO_H</span><br><span style="color: hsl(120, 100%, 40%);">+#define X555LA_GPIO_H</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct pch_lp_gpio_map;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+const struct pch_lp_gpio_map mainboard_gpio_map[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+   LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_PIRQ,</span><br><span style="color: hsl(120, 100%, 40%);">+ LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_ACPI_SCI,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_ACPI_SCI,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_OUT_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+      LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_ACPI_SCI,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_ACPI_SMI,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_OUT_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+      LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_OUT_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+      LP_GPIO_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+        LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+        LP_GPIO_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+        LP_GPIO_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+        LP_GPIO_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+        LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_INPUT_INVERT,</span><br><span style="color: hsl(120, 100%, 40%);">+ LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_NATIVE,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_OUT_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+      LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_OUT_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+      LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_OUT_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+     LP_GPIO_OUT_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+      LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_UNUSED,</span><br><span style="color: hsl(120, 100%, 40%);">+       LP_GPIO_END</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>diff --git a/src/mainboard/asus/x555la/hda_verb.c b/src/mainboard/asus/x555la/hda_verb.c</span><br><span>new file mode 100644</span><br><span>index 0000000..56fe320</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/hda_verb.c</span><br><span>@@ -0,0 +1,108 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2013 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or</span><br><span style="color: hsl(120, 100%, 40%);">+ * modify it under the terms of the GNU General Public License as</span><br><span style="color: hsl(120, 100%, 40%);">+ * published by the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/azalia_device.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+const u32 cim_verb_data[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+      /* coreboot specific header */</span><br><span style="color: hsl(120, 100%, 40%);">+        0x10ec0283,     // Codec Vendor / Device ID: Realtek ALC283</span><br><span style="color: hsl(120, 100%, 40%);">+   0x10ec0283,     // Subsystem ID</span><br><span style="color: hsl(120, 100%, 40%);">+       0x0000000e,     // Number of jacks (NID entries)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    0x0017ff00,     // Function Reset</span><br><span style="color: hsl(120, 100%, 40%);">+     0x0017ff00,     // Double Function Reset</span><br><span style="color: hsl(120, 100%, 40%);">+      0x000F0000,     // Pad - get vendor id</span><br><span style="color: hsl(120, 100%, 40%);">+        0x000F0002,     // Pad - get revision id</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Bits 31:28 - Codec Address */</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Bits 27:20 - NID */</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Bits 19:8 - Verb ID */</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Bits 7:0  - Payload */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* NID 0x01, HDA Codec Subsystem ID Verb Table */</span><br><span style="color: hsl(120, 100%, 40%);">+     AZALIA_SUBVENDOR(0x0, 0x11790670),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Pin Widget Verb Table */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Pin Complex (NID 0x12) DMIC - interior mobile lid */</span><br><span style="color: hsl(120, 100%, 40%);">+       AZALIA_PIN_CFG(0x0, 0x12, 0xb7a60110),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x14) SPKR-OUT - Internal Speakers */</span><br><span style="color: hsl(120, 100%, 40%);">+     // group 1, cap 0</span><br><span style="color: hsl(120, 100%, 40%);">+     // no connector, no jack detect</span><br><span style="color: hsl(120, 100%, 40%);">+       // speaker out, analog</span><br><span style="color: hsl(120, 100%, 40%);">+        // fixed function, internal, Location N/A</span><br><span style="color: hsl(120, 100%, 40%);">+     AZALIA_PIN_CFG(0x0, 0x14, 0x90170110),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x17) MONO Out - Disabled */</span><br><span style="color: hsl(120, 100%, 40%);">+      AZALIA_PIN_CFG(0x0, 0x17, 0x411111f0),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x18) MIC1 PORTB - Disabled */</span><br><span style="color: hsl(120, 100%, 40%);">+    AZALIA_PIN_CFG(0x0, 0x18, 0x411111f0),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x19) MIC2 - 3.5mm Jack */</span><br><span style="color: hsl(120, 100%, 40%);">+        // group2, cap 0</span><br><span style="color: hsl(120, 100%, 40%);">+      // black, jack detect</span><br><span style="color: hsl(120, 100%, 40%);">+ // Mic in, 3.5mm Jack</span><br><span style="color: hsl(120, 100%, 40%);">+ // connector, External left panel</span><br><span style="color: hsl(120, 100%, 40%);">+     AZALIA_PIN_CFG(0x0, 0x19, 0x03a11020),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x1A) LINE1 PORTC - Disabled */</span><br><span style="color: hsl(120, 100%, 40%);">+   AZALIA_PIN_CFG(0x0, 0x1a, 0x411111f0),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x1B) LINE2 - Disabled */</span><br><span style="color: hsl(120, 100%, 40%);">+ AZALIA_PIN_CFG(0x0, 0x1b, 0x411111f0),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x1D) PCBeep */</span><br><span style="color: hsl(120, 100%, 40%);">+   // eapd low on ex-amp, laptop, custom enable</span><br><span style="color: hsl(120, 100%, 40%);">+  // mute spkr on hpout</span><br><span style="color: hsl(120, 100%, 40%);">+ // pcbeep en able, checksum</span><br><span style="color: hsl(120, 100%, 40%);">+   // no physical, Internal, Location N/A</span><br><span style="color: hsl(120, 100%, 40%);">+        AZALIA_PIN_CFG(0x0, 0x1d, 0x4015812d),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x1E) SPDIF-OUT - Disabled*/</span><br><span style="color: hsl(120, 100%, 40%);">+      AZALIA_PIN_CFG(0x0, 0x1e, 0x411111f0),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Pin Complex (NID 0x21) HP-OUT - 3.5mm Jack*/</span><br><span style="color: hsl(120, 100%, 40%);">+       // group2, cap 1</span><br><span style="color: hsl(120, 100%, 40%);">+      // black, jack detect</span><br><span style="color: hsl(120, 100%, 40%);">+ // HPOut, 3.5mm Jack</span><br><span style="color: hsl(120, 100%, 40%);">+  // connector, left panel</span><br><span style="color: hsl(120, 100%, 40%);">+      AZALIA_PIN_CFG(0x0, 0x21, 0x03211021),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Undocumented settings from Realtek (needed for beep_gen) */</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Widget node 0x20 */</span><br><span style="color: hsl(120, 100%, 40%);">+        0x02050010,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x02040c20,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x0205001b,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x0204081b,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Tuned jack detection */</span><br><span style="color: hsl(120, 100%, 40%);">+    0x02050043,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x0204A614,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x02050047,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x02049470,</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+const u32 pc_beep_verbs[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+      0x00170500,     /* power up everything (codec, dac, adc, mixers)  */</span><br><span style="color: hsl(120, 100%, 40%);">+  0x01470740,     /* enable speaker out */</span><br><span style="color: hsl(120, 100%, 40%);">+      0x01470c02,     /* set speaker EAPD pin */</span><br><span style="color: hsl(120, 100%, 40%);">+    0x0143b01f,     /* unmute speaker */</span><br><span style="color: hsl(120, 100%, 40%);">+  0x00c37100,     /* unmute mixer nid 0xc input 1 */</span><br><span style="color: hsl(120, 100%, 40%);">+    0x00b37410,     /* unmute mixer nid 0xb beep input and set volume */</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AZALIA_ARRAY_SIZES;</span><br><span>diff --git a/src/mainboard/asus/x555la/mainboard.c b/src/mainboard/asus/x555la/mainboard.c</span><br><span>new file mode 100644</span><br><span>index 0000000..22b8c97</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/mainboard.c</span><br><span>@@ -0,0 +1,34 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2007-2009 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2016 Patrick Rudolph <siro@das-labor.org></span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/device.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <drivers/intel/gma/int15.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <types.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+// mainboard_enable is executed as first thing after</span><br><span style="color: hsl(120, 100%, 40%);">+// enumerate_buses().</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void mainboard_enable(struct device *dev)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_EDP,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     GMA_INT15_PANEL_FIT_CENTERING,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct chip_operations mainboard_ops = {</span><br><span style="color: hsl(120, 100%, 40%);">+    .enable_dev = mainboard_enable,</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span>diff --git a/src/mainboard/asus/x555la/romstage.c b/src/mainboard/asus/x555la/romstage.c</span><br><span>new file mode 100644</span><br><span>index 0000000..ece10b2</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/romstage.c</span><br><span>@@ -0,0 +1,181 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2007-2010 coresystems GmbH</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <delay.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <stdint.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <stdlib.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <cbfs.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <console/console.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <cpu/intel/romstage.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <cpu/intel/haswell/haswell.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <northbridge/intel/haswell/haswell.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <northbridge/intel/haswell/raminit.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <southbridge/intel/lynxpoint/pch.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <southbridge/intel/lynxpoint/lp_gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "gpio.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <timer.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+const struct rcba_config_instruction rcba_config[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /*</span><br><span style="color: hsl(120, 100%, 40%);">+     *             GFX    INTA -> PIRQA (MSI)</span><br><span style="color: hsl(120, 100%, 40%);">+   * D28IP_P1IP  PCIE   INTA -> PIRQA</span><br><span style="color: hsl(120, 100%, 40%);">+         * D29IP_E1P   EHCI   INTA -> PIRQD</span><br><span style="color: hsl(120, 100%, 40%);">+         * D20IP_XHCI  XHCI   INTA -> PIRQC (MSI)</span><br><span style="color: hsl(120, 100%, 40%);">+   * D31IP_SIP   SATA   INTA -> PIRQF (MSI)</span><br><span style="color: hsl(120, 100%, 40%);">+   * D31IP_SMIP  SMBUS  INTB -> PIRQG</span><br><span style="color: hsl(120, 100%, 40%);">+         * D31IP_TTIP  THRT   INTC -> PIRQA</span><br><span style="color: hsl(120, 100%, 40%);">+         * D27IP_ZIP   HDA    INTA -> PIRQG (MSI)</span><br><span style="color: hsl(120, 100%, 40%);">+   */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Device interrupt pin register (board specific) */</span><br><span style="color: hsl(120, 100%, 40%);">+  RCBA_SET_REG_32(D31IP, (INTC << D31IP_TTIP) | (NOINT << D31IP_SIP2) |</span><br><span style="color: hsl(120, 100%, 40%);">+                     (INTB << D31IP_SMIP) | (INTA << D31IP_SIP)),</span><br><span style="color: hsl(120, 100%, 40%);">+      RCBA_SET_REG_32(D29IP, (INTA << D29IP_E1P)),</span><br><span style="color: hsl(120, 100%, 40%);">+    RCBA_SET_REG_32(D28IP, (INTA << D28IP_P1IP) | (INTC << D28IP_P3IP) |</span><br><span style="color: hsl(120, 100%, 40%);">+                      (INTB << D28IP_P4IP)),</span><br><span style="color: hsl(120, 100%, 40%);">+  RCBA_SET_REG_32(D27IP, (INTA << D27IP_ZIP)),</span><br><span style="color: hsl(120, 100%, 40%);">+    RCBA_SET_REG_32(D26IP, (INTA << D26IP_E2P)),</span><br><span style="color: hsl(120, 100%, 40%);">+    RCBA_SET_REG_32(D22IP, (NOINT << D22IP_MEI1IP)),</span><br><span style="color: hsl(120, 100%, 40%);">+        RCBA_SET_REG_32(D20IP, (INTA << D20IP_XHCI)),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Device interrupt route registers */</span><br><span style="color: hsl(120, 100%, 40%);">+        RCBA_SET_REG_32(D31IR, DIR_ROUTE(PIRQG, PIRQC, PIRQB, PIRQA)),/* LPC */</span><br><span style="color: hsl(120, 100%, 40%);">+       RCBA_SET_REG_32(D29IR, DIR_ROUTE(PIRQD, PIRQD, PIRQD, PIRQD)),/* EHCI */</span><br><span style="color: hsl(120, 100%, 40%);">+      RCBA_SET_REG_32(D28IR, DIR_ROUTE(PIRQA, PIRQB, PIRQC, PIRQD)),/* PCIE */</span><br><span style="color: hsl(120, 100%, 40%);">+      RCBA_SET_REG_32(D27IR, DIR_ROUTE(PIRQG, PIRQG, PIRQG, PIRQG)),/* HDA */</span><br><span style="color: hsl(120, 100%, 40%);">+       RCBA_SET_REG_32(D22IR, DIR_ROUTE(PIRQA, PIRQA, PIRQA, PIRQA)),/* ME */</span><br><span style="color: hsl(120, 100%, 40%);">+        RCBA_SET_REG_32(D21IR, DIR_ROUTE(PIRQE, PIRQF, PIRQF, PIRQF)),/* SIO */</span><br><span style="color: hsl(120, 100%, 40%);">+       RCBA_SET_REG_32(D20IR, DIR_ROUTE(PIRQC, PIRQC, PIRQC, PIRQC)),/* XHCI */</span><br><span style="color: hsl(120, 100%, 40%);">+      RCBA_SET_REG_32(D23IR, DIR_ROUTE(PIRQH, PIRQH, PIRQH, PIRQH)),/* SDIO */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Disable unused devices (board specific) */</span><br><span style="color: hsl(120, 100%, 40%);">+ RCBA_RMW_REG_32(FD, ~0, PCH_DISABLE_ALWAYS),</span><br><span style="color: hsl(120, 100%, 40%);">+  RCBA_END_CONFIG,</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Copy SPD data for on-board memory *//*</span><br><span style="color: hsl(120, 100%, 40%);">+static void copy_spd(struct pei_data *peid)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     const int gpio_vector[] = {13, 9, 47, -1};</span><br><span style="color: hsl(120, 100%, 40%);">+    int spd_index = get_gpios(gpio_vector);</span><br><span style="color: hsl(120, 100%, 40%);">+       char *spd_file;</span><br><span style="color: hsl(120, 100%, 40%);">+       size_t spd_file_len;</span><br><span style="color: hsl(120, 100%, 40%);">+  size_t spd_len = sizeof(peid->spd_data[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      printk(BIOS_DEBUG, "SPD index %d\n", spd_index);</span><br><span style="color: hsl(120, 100%, 40%);">+    spd_file = cbfs_boot_map_with_leak("spd.bin", CBFS_TYPE_SPD,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                &spd_file_len);</span><br><span style="color: hsl(120, 100%, 40%);">+   if (!spd_file)</span><br><span style="color: hsl(120, 100%, 40%);">+                //die("SPD data not found.");</span><br><span style="color: hsl(120, 100%, 40%);">+               printk(BIOS_EMERG, "EMERGENCY: SPD data not found.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (spd_file_len < ((spd_index + 1) * spd_len)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          printk(BIOS_ERR, "SPD index override to 0 - old hardware?\n");</span><br><span style="color: hsl(120, 100%, 40%);">+              spd_index = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (spd_file_len < spd_len)</span><br><span style="color: hsl(120, 100%, 40%);">+                //die("Missing SPD data.");</span><br><span style="color: hsl(120, 100%, 40%);">+         printk(BIOS_EMERG, "EMERGENCY: Missing SPD data.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     memcpy(peid->spd_data[0], spd_file + (spd_index * spd_len), spd_len);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  switch (spd_index) {</span><br><span style="color: hsl(120, 100%, 40%);">+  case 0: case 1: case 2:</span><br><span style="color: hsl(120, 100%, 40%);">+               memcpy(peid->spd_data[1],</span><br><span style="color: hsl(120, 100%, 40%);">+                  spd_file + (spd_index * spd_len), spd_len);</span><br><span style="color: hsl(120, 100%, 40%);">+           break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 3: case 4: case 5:</span><br><span style="color: hsl(120, 100%, 40%);">+               peid->dimm_channel1_disabled = 3;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+}*/</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Index 0-2, are 4GB config with both CH0 and CH1</span><br><span style="color: hsl(120, 100%, 40%);">+     * Index 3-5, are 2GB config with CH0 only</span><br><span style="color: hsl(120, 100%, 40%);">+     */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void mainboard_romstage_entry(unsigned long bist)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   struct pei_data pei_data = {</span><br><span style="color: hsl(120, 100%, 40%);">+          .pei_version = PEI_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+           .mchbar = (uintptr_t)DEFAULT_MCHBAR,</span><br><span style="color: hsl(120, 100%, 40%);">+          .dmibar = (uintptr_t)DEFAULT_DMIBAR,</span><br><span style="color: hsl(120, 100%, 40%);">+          .epbar = DEFAULT_EPBAR,</span><br><span style="color: hsl(120, 100%, 40%);">+               .pciexbar = DEFAULT_PCIEXBAR,</span><br><span style="color: hsl(120, 100%, 40%);">+         .smbusbar = SMBUS_IO_BASE,</span><br><span style="color: hsl(120, 100%, 40%);">+            .wdbbar = 0x4000000,</span><br><span style="color: hsl(120, 100%, 40%);">+          .wdbsize = 0x1000,</span><br><span style="color: hsl(120, 100%, 40%);">+            .hpet_address = HPET_ADDR,</span><br><span style="color: hsl(120, 100%, 40%);">+            .rcba = (uintptr_t)DEFAULT_RCBA,</span><br><span style="color: hsl(120, 100%, 40%);">+              .pmbase = DEFAULT_PMBASE,</span><br><span style="color: hsl(120, 100%, 40%);">+             .gpiobase = DEFAULT_GPIOBASE,</span><br><span style="color: hsl(120, 100%, 40%);">+         .temp_mmio_base = 0xfed08000,</span><br><span style="color: hsl(120, 100%, 40%);">+         .system_type = 5, /* ULT */</span><br><span style="color: hsl(120, 100%, 40%);">+           .tseg_size = CONFIG_SMM_TSEG_SIZE,</span><br><span style="color: hsl(120, 100%, 40%);">+            //.spd_addresses = { 0xff, 0x00, 0xff, 0x00 },</span><br><span style="color: hsl(120, 100%, 40%);">+                .spd_addresses = { 0xa0, 0xa2, 0xa4, 0xa6 },</span><br><span style="color: hsl(120, 100%, 40%);">+          .ec_present = 0,</span><br><span style="color: hsl(120, 100%, 40%);">+              //.ec_present = 1,</span><br><span style="color: hsl(120, 100%, 40%);">+            // 0 = leave channel enabled</span><br><span style="color: hsl(120, 100%, 40%);">+          // 1 = disable dimm 0 on channel</span><br><span style="color: hsl(120, 100%, 40%);">+              // 2 = disable dimm 1 on channel</span><br><span style="color: hsl(120, 100%, 40%);">+              // 3 = disable dimm 0+1 on channel</span><br><span style="color: hsl(120, 100%, 40%);">+            .dimm_channel0_disabled = 0,</span><br><span style="color: hsl(120, 100%, 40%);">+          .dimm_channel1_disabled = 0,</span><br><span style="color: hsl(120, 100%, 40%);">+          .max_ddr3_freq = 1600,</span><br><span style="color: hsl(120, 100%, 40%);">+                .usb_xhci_on_resume = 1,</span><br><span style="color: hsl(120, 100%, 40%);">+              .usb2_ports = {</span><br><span style="color: hsl(120, 100%, 40%);">+                       /* Length, Enable, OCn#, Location */</span><br><span style="color: hsl(120, 100%, 40%);">+                  { 0x0040, 1, 0,               /* P0: Port A, CN10 */</span><br><span style="color: hsl(120, 100%, 40%);">+                    USB_PORT_BACK_PANEL },</span><br><span style="color: hsl(120, 100%, 40%);">+                      { 0x0040, 1, 2,               /* P1: Port B, CN11  */</span><br><span style="color: hsl(120, 100%, 40%);">+                   USB_PORT_BACK_PANEL },</span><br><span style="color: hsl(120, 100%, 40%);">+                      { 0x0080, 1, USB_OC_PIN_SKIP, /* P2: CCD */</span><br><span style="color: hsl(120, 100%, 40%);">+                     USB_PORT_INTERNAL },</span><br><span style="color: hsl(120, 100%, 40%);">+                        { 0x0040, 1, USB_OC_PIN_SKIP, /* P3: BT */</span><br><span style="color: hsl(120, 100%, 40%);">+                      USB_PORT_MINI_PCIE },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { 0x0040, 1, USB_OC_PIN_SKIP, /* P4: LTE */</span><br><span style="color: hsl(120, 100%, 40%);">+                     USB_PORT_INTERNAL },</span><br><span style="color: hsl(120, 100%, 40%);">+                        { 0x0000, 1, USB_OC_PIN_SKIP, /* P5: EMPTY */</span><br><span style="color: hsl(120, 100%, 40%);">+                   USB_PORT_SKIP },</span><br><span style="color: hsl(120, 100%, 40%);">+                    { 0x0040, 1, USB_OC_PIN_SKIP, /* P6: SD Card */</span><br><span style="color: hsl(120, 100%, 40%);">+                         USB_PORT_INTERNAL },</span><br><span style="color: hsl(120, 100%, 40%);">+                        { 0x0000, 0, USB_OC_PIN_SKIP, /* P7: EMPTY */</span><br><span style="color: hsl(120, 100%, 40%);">+                   USB_PORT_SKIP  },</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            .usb3_ports = {</span><br><span style="color: hsl(120, 100%, 40%);">+                       /* Enable, OCn# */</span><br><span style="color: hsl(120, 100%, 40%);">+                    { 1, 0               }, /* P1; Port A, CN10 */</span><br><span style="color: hsl(120, 100%, 40%);">+                        { 1, 2               }, /* P2; Port B, CN11  */</span><br><span style="color: hsl(120, 100%, 40%);">+                       { 0, USB_OC_PIN_SKIP }, /* P3; */</span><br><span style="color: hsl(120, 100%, 40%);">+                     { 0, USB_OC_PIN_SKIP }, /* P4; */</span><br><span style="color: hsl(120, 100%, 40%);">+             },</span><br><span style="color: hsl(120, 100%, 40%);">+    };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  struct romstage_params romstage_params = {</span><br><span style="color: hsl(120, 100%, 40%);">+            .pei_data = &pei_data,</span><br><span style="color: hsl(120, 100%, 40%);">+            .gpio_map = &mainboard_gpio_map,</span><br><span style="color: hsl(120, 100%, 40%);">+          .rcba_config = &rcba_config[0],</span><br><span style="color: hsl(120, 100%, 40%);">+           .bist = bist,</span><br><span style="color: hsl(120, 100%, 40%);">+         .copy_spd = NULL,</span><br><span style="color: hsl(120, 100%, 40%);">+             //.copy_spd = copy_spd,</span><br><span style="color: hsl(120, 100%, 40%);">+       };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Call into the real romstage main with this board's attributes. */</span><br><span style="color: hsl(120, 100%, 40%);">+      romstage_common(&romstage_params);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/.hSamsung_M471B5674QH0.spdex b/src/mainboard/asus/x555la/spd/.hSamsung_M471B5674QH0.spdex</span><br><span>new file mode 100644</span><br><span>index 0000000..c2a23cd</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/.hSamsung_M471B5674QH0.spdex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Samsung M471B5674QH0-YK0 (K4B4G1646Q)</span><br><span style="color: hsl(120, 100%, 40%);">+92 12 0B 03 04 19 02 02 03 11 01 08 0A 00 FE 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 18 81 20 08 3C 3C 01 40 83 01</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 88 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 0F 01 11 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 80 CE 01 00 00 00 00 00 00 6C F9</span><br><span style="color: hsl(120, 100%, 40%);">+4D 34 37 31 42 35 36 37 34 51 48 30 2D 59 4B 30</span><br><span style="color: hsl(120, 100%, 40%);">+20 20 00 00 80 CE 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/Elpida_EDJ4216EFBG.spd.hex b/src/mainboard/asus/x555la/spd/Elpida_EDJ4216EFBG.spd.hex</span><br><span>new file mode 100644</span><br><span>index 0000000..eb41f0b</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/Elpida_EDJ4216EFBG.spd.hex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Elpida EDJ4216EFBG-GN-F</span><br><span style="color: hsl(120, 100%, 40%);">+92 12 0B 03 04 19 02 02 03 11 01 08 0A 00 FE 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 18 81 20 08 3C 3C 01 40 83 81</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 02 FE 00 00 00 00 00 00 00 A1 CE</span><br><span style="color: hsl(120, 100%, 40%);">+45 44 4A 34 32 31 36 45 46 42 47 2D 47 4E 2D 46</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 02 FE 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/Hynix_HMT425S6AFR6A.spd.hex b/src/mainboard/asus/x555la/spd/Hynix_HMT425S6AFR6A.spd.hex</span><br><span>new file mode 100644</span><br><span>index 0000000..7b09327</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/Hynix_HMT425S6AFR6A.spd.hex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Hynix HMT425S6AFR6A-PBA</span><br><span style="color: hsl(120, 100%, 40%);">+92 12 0B 03 04 19 02 02 03 52 01 08 0A 00 FE 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 18 81 20 08 3C 3C 01 40 83 01</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 0F 11 62 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 80 AD 01 00 00 00 00 00 00 FF AB</span><br><span style="color: hsl(120, 100%, 40%);">+48 4D 54 34 32 35 53 36 41 46 52 36 41 2D 50 42</span><br><span style="color: hsl(120, 100%, 40%);">+20 20 4E 30 80 AD 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/Micron_4KTF25664HZ.spd.hex b/src/mainboard/asus/x555la/spd/Micron_4KTF25664HZ.spd.hex</span><br><span>new file mode 100644</span><br><span>index 0000000..cbe9e4f</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/Micron_4KTF25664HZ.spd.hex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Micron 4KTF25664HZ-1G6E1</span><br><span style="color: hsl(120, 100%, 40%);">+92 11 0B 03 04 19 02 02 03 11 01 08 0A 00 FE 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 18 81 20 08 3C 3C 01 40 83 05</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 0F 01 02 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 80 2C 00 00 00 00 00 00 00 AD 75</span><br><span style="color: hsl(120, 100%, 40%);">+34 4B 54 46 32 35 36 36 34 48 5A 2D 31 47 36 45</span><br><span style="color: hsl(120, 100%, 40%);">+31 20 45 31 80 2C 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/Samsung_K4B4G1646B.spd.hex b/src/mainboard/asus/x555la/spd/Samsung_K4B4G1646B.spd.hex</span><br><span>new file mode 100644</span><br><span>index 0000000..fb529d0</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/Samsung_K4B4G1646B.spd.hex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Samsung K4B4G1646B-HYXX</span><br><span style="color: hsl(120, 100%, 40%);">+92 11 0B 03 04 19 02 02 03 11 01 08 0C 00 3E 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 20 89 20 08 3C 3C 01 68 83 01</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 0F 11 02 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 80 CE 01 00 00 00 00 00 00 2A E3</span><br><span style="color: hsl(120, 100%, 40%);">+4D 34 37 31 42 35 36 37 34 42 48 30 2D 43 48 39</span><br><span style="color: hsl(120, 100%, 40%);">+20 20 00 00 80 CE 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span>\ No newline at end of file</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/Samsung_K4B4G1646Q.spd.hex b/src/mainboard/asus/x555la/spd/Samsung_K4B4G1646Q.spd.hex</span><br><span>new file mode 100644</span><br><span>index 0000000..d6b0770</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/Samsung_K4B4G1646Q.spd.hex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Samsung K4B4G1646Q-HYK0</span><br><span style="color: hsl(120, 100%, 40%);">+92 12 0B 03 04 19 02 02 03 11 01 08 0A 00 FE 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 18 81 20 08 3C 3C 01 40 83 05</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 88 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 0F 01 02 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 80 CE 01 00 00 00 00 00 00 6C F9</span><br><span style="color: hsl(120, 100%, 40%);">+4D 34 37 31 42 35 36 37 34 51 48 30 2D 59 4B 30</span><br><span style="color: hsl(120, 100%, 40%);">+20 20 00 00 80 CE 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span>\ No newline at end of file</span><br><span>diff --git a/src/mainboard/asus/x555la/spd/Samsung_M471B5674QH0.spd.hex b/src/mainboard/asus/x555la/spd/Samsung_M471B5674QH0.spd.hex</span><br><span>new file mode 100644</span><br><span>index 0000000..c2a23cd</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/spd/Samsung_M471B5674QH0.spd.hex</span><br><span>@@ -0,0 +1,17 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Samsung M471B5674QH0-YK0 (K4B4G1646Q)</span><br><span style="color: hsl(120, 100%, 40%);">+92 12 0B 03 04 19 02 02 03 11 01 08 0A 00 FE 00</span><br><span style="color: hsl(120, 100%, 40%);">+69 78 69 3C 69 11 18 81 20 08 3C 3C 01 40 83 01</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 88 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 0F 01 11 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 80 CE 01 00 00 00 00 00 00 6C F9</span><br><span style="color: hsl(120, 100%, 40%);">+4D 34 37 31 42 35 36 37 34 51 48 30 2D 59 4B 30</span><br><span style="color: hsl(120, 100%, 40%);">+20 20 00 00 80 CE 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span style="color: hsl(120, 100%, 40%);">+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF</span><br><span>diff --git a/src/mainboard/asus/x555la/thermal.h b/src/mainboard/asus/x555la/thermal.h</span><br><span>new file mode 100644</span><br><span>index 0000000..921bbfc</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asus/x555la/thermal.h</span><br><span>@@ -0,0 +1,28 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2012 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef THERMAL_H</span><br><span style="color: hsl(120, 100%, 40%);">+#define THERMAL_H</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Temperature which OS will shutdown at */</span><br><span style="color: hsl(120, 100%, 40%);">+#define CRITICAL_TEMPERATURE             99</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Temperature which OS will throttle CPU */</span><br><span style="color: hsl(120, 100%, 40%);">+#define PASSIVE_TEMPERATURE         95</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Tj_max value for calculating PECI CPU temperature */</span><br><span style="color: hsl(120, 100%, 40%);">+#define MAX_TEMPERATURE                  100</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27256">change 27256</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27256"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I361c1f06ed8d5c61ee7fa0f25e3ec93f292a3296 </div>
<div style="display:none"> Gerrit-Change-Number: 27256 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Angel Pons <th3fanbus@gmail.com> </div>