Board:asus/m4a785t-m: Difference between revisions
Jump to navigation
Jump to search
m (Correct link to M4A785T-M version) |
|||
(139 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This HOWTO explains how to use coreboot on the M4A785T-M board. The main difference between the '''[https://www.asus.com/Motherboards/M4A785M/ ASUS M4A785-M]''' and the '''[https://www.asus.com/Motherboards/M4A785TM/ M4A785T-M]''' is the support of DDR3 on the latter. | |||
== Status == | == Status == | ||
=== RAM issue === | |||
* 32bit untested. | |||
* 64bit was tested and works with 2G of RAM. | |||
** When using more than 4G of RAM, I can't boot GNU/Linux anymore: | |||
***USB devices not seen, some errors -71), with mem=4000M, that works ok again. | |||
***SATA devices are also not seen, and with mem=4000M, it also works ok again. | |||
=== Status === | |||
{{Status| | {{Status| | ||
|CPU_status = OK | |CPU_status = OK | ||
|CPU_comments = Tested: AMD Athlon64 X2 | |CPU_comments = Tested: AMD Athlon64 X2 240e. | ||
|CPU_L1_status = | |CPU_L1_status = Unknown | ||
|CPU_L1_comments = | |CPU_L1_comments = How to test? | ||
|CPU_L2_status = | |CPU_L2_status = Unknown | ||
|CPU_L2_comments = | |CPU_L2_comments = How to test? | ||
|CPU_L3_status = N/A | |CPU_L3_status = N/A | ||
|CPU_multiple_status = N/A | |CPU_multiple_status = N/A | ||
|CPU_multicore_status = | |CPU_multicore_status = Unknown | ||
|CPU_virt_status = | |CPU_virt_status = Unknown | ||
|RAM_EDO_status = N/A | |RAM_EDO_status = N/A | ||
|RAM_SDRAM_status = N/A | |RAM_SDRAM_status = N/A | ||
|RAM_SODIMM_status = N/A | |RAM_SODIMM_status = N/A | ||
|RAM_DDR_status = N/A | |RAM_DDR_status = N/A | ||
|RAM_DDR2_status = Unknown | |||
|RAM_DDR2_status = | |RAM_DDR3_status = No | ||
|RAM_DDR3_status = | |RAM_DDR3_comments = 2G works, 4G or more have issues. | ||
|RAM_DDR3_comments = 2G works. | |||
|RAM_dualchannel_status = Untested | |RAM_dualchannel_status = Untested | ||
|RAM_ecc_status = Untested | |RAM_ecc_status = Untested | ||
|RAM_ecc_comments = | |RAM_ecc_comments = I'm not sure if hardware supports it. | ||
|IDE_status = Untested | |||
|IDE_status = | |||
|IDE_25_status = N/A | |IDE_25_status = N/A | ||
|IDE_CF_status = | |IDE_CF_status = N/A | ||
|CDROM_DVD_status = Untested | |||
|CDROM_DVD_status = | |SATA_status = Untested | ||
|SATA_comments = At least 2 of the 6 SATA port works. The rest is untested. | |||
|SATA_status = | |||
|SATA_comments = | |||
|USB_status = OK | |USB_status = OK | ||
|USB_comments = | |USB_comments = tested in SeaBIOS and with the linux-libre kernel. | ||
|Onboard_VGA_status = | |Onboard_VGA_status = Untested | ||
|Onboard_VGA_comments = | |Onboard_VGA_comments = I only tested the external GPU, see below for more informations. | ||
|Onboard_ethernet_status = | |Onboard_ethernet_status = OK | ||
|Onboard_audio_status = | |Onboard_ethernet_comments = Tested in linux-libre and ipxe, works flawlessly. | ||
|Onboard_audio_comments = | |Onboard_audio_status = Untested | ||
|Onboard_audio_comments = Not tested but it boots fine with it and the sound card appears. | |||
|Onboard_modem_status = N/A | |Onboard_modem_status = N/A | ||
|Onboard_firewire_status = N/A | |Onboard_firewire_status = N/A | ||
Line 47: | Line 51: | ||
|Onboard_CF_status = N/A | |Onboard_CF_status = N/A | ||
|Onboard_PCMCIA_status = N/A | |Onboard_PCMCIA_status = N/A | ||
|ISA_cards_status = N/A | |ISA_cards_status = N/A | ||
|AMR_cards_status = N/A | |AMR_cards_status = N/A | ||
|PCI_cards_status = OK | |PCI_cards_status = OK | ||
|PCI_cards_comments = | |PCI_cards_comments = Tested booting on an ATA sil card: booting on it works when adding its PCI ID to coreboot. | ||
|Mini_PCI_cards_status = N/A | |Mini_PCI_cards_status = N/A | ||
|PCIX_cards_status = N/A | |PCIX_cards_status = N/A | ||
|AGP_cards_status = N/A | |AGP_cards_status = N/A | ||
|PCIE_x1_status = Untested | |PCIE_x1_status = Untested | ||
|PCIE_x2_status = Untested | |||
|PCIE_x2_status = | |||
|PCIE_x4_status = Untested | |PCIE_x4_status = Untested | ||
|PCIE_x8_status = | |PCIE_x8_status = Untested | ||
|PCIE_x16_status = | |PCIE_x16_status = OK | ||
|PCIE_x16_comments = | |PCIE_x16_comments = Works with "02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218 [GeForce 210] [10de:0a65] (rev a2)" | ||
|PCIE_x32_status = N/A | |PCIE_x32_status = N/A | ||
|HTX_status = N/A | |HTX_status = N/A | ||
|Floppy_status = N/A | |Floppy_status = N/A | ||
|Floppy_comments = There is no floppy connector | |Floppy_comments = There is no floppy connector. There seem to be an unpopulated header for it. | ||
|COM1_status = OK | |COM1_status = OK | ||
|COM1_comments = | |COM1_comments = [[Serial_console#Non-standard_.22intel_configuration.22_10_pins_header|10 pins intel header]] | ||
|COM2_status = N/A | |COM2_status = N/A | ||
|PP_status = Untested | |PP_status = Untested | ||
|PP_comments = | |PP_comments = Headers on board only. | ||
|PS2_keyboard_status = | |PS2_keyboard_status = Untested | ||
|PS2_mouse_status = Untested | |PS2_mouse_status = Untested | ||
|Game_port_status = N/A | |Game_port_status = N/A | ||
|IR_status = | |IR_status = Untested | ||
|IR_status_comments = I'm not sure if that mainboard has a connector for it. | |||
|Speaker_status = Untested | |Speaker_status = Untested | ||
|DiskOnChip_status = N/A | |DiskOnChip_status = N/A | ||
|Sensors_status = Untested | |Sensors_status = Untested | ||
|Watchdog_status = Untested | |||
|Watchdog_status = | |||
|CAN_bus_status = N/A | |CAN_bus_status = N/A | ||
|CPUfreq_status = Untested | |CPUfreq_status = Untested | ||
|Powersave_status = Untested | |Powersave_status = Untested | ||
|ACPI_status = Untested | |ACPI_status = Untested | ||
|Reboot_status = OK | |Reboot_status = OK | ||
|Poweroff_status = OK | |Poweroff_status = OK | ||
|LEDs_status = | |LEDs_status = Untested | ||
|HPET_status = Untested | |||
|HPET_status = | |||
|RNG_status = Untested | |RNG_status = Untested | ||
|WakeOnModem_status = Untested | |WakeOnModem_status = Untested | ||
|WakeOnLAN_status = | |WakeOnLAN_status = Untested | ||
|WakeOnKeyboard_status = Untested | |WakeOnKeyboard_status = Untested | ||
|WakeOnMouse_status = Untested | |WakeOnMouse_status = Untested | ||
|Flashrom_status = OK | |Flashrom_status = OK | ||
|Flashrom_comments = | |Flashrom_comments = Works fine from coreboot to coreboot, and from BIOS to coreboot. From coreboot to BIOS works but you may have to do some tricks like clearing CMOS to make it start again. | ||
}} | |||
} | == proprietary components status == | ||
* Optional CPU Microcode | |||
* Optional VGA option rom: wihtout it you will get no graphics, Note that if you use an external graphic card, SeaBIOS load the option rom with its default configuration from the graphic card. | |||
** You can also patch SeaBIOS to put the option rom in memory without running it. That way the linux driver will then find the option rom bytecodes and tables to initialize that GPU. | |||
From 83bbd30b3ef76fc346c417fa08ba716b4e2fb179 Mon Sep 17 00:00:00 2001 | |||
From: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> | |||
Date: Sat, 7 Mar 2015 15:39:52 +0100 | |||
Subject: [PATCH] Kconfig: Add option not to run option roms | |||
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> | |||
--- | |||
src/Kconfig | 8 ++++++++ | |||
src/optionroms.c | 2 ++ | |||
2 files changed, 10 insertions(+) | |||
diff --git a/src/Kconfig b/src/Kconfig | |||
index b873cd3..2438ab7 100644 | |||
--- a/src/Kconfig | |||
+++ b/src/Kconfig | |||
@@ -403,6 +403,14 @@ menu "BIOS interfaces" | |||
default y | |||
help | |||
Support Post Memory Manager (PMM) entry point. | |||
+ config OPTIONROMS_NORUN | |||
+ depends on OPTIONROMS | |||
+ bool "Put the option roms in memory, but don't run them" | |||
+ default n | |||
+ help | |||
+ Some GPU drivers are capable of initializing the display alone, | |||
+ but they still require some data from the option rom. | |||
+ | |||
config BOOT | |||
bool "Boot interface" | |||
default y | |||
diff --git a/src/optionroms.c b/src/optionroms.c | |||
index c81eff2..c7c89da 100644 | |||
--- a/src/optionroms.c | |||
+++ b/src/optionroms.c | |||
@@ -53,7 +53,9 @@ __callrom(struct rom_header *rom, u16 offset, u16 bdf) | |||
void | |||
callrom(struct rom_header *rom, u16 bdf) | |||
{ | |||
+#if (!CONFIG_OPTIONROMS_NORUN) | |||
__callrom(rom, OPTION_ROM_INITVECTOR, bdf); | |||
+#endif | |||
} | |||
// Execute a BCV option rom registered via add_bcv(). | |||
-- | |||
2.6.2 | |||
== | == Building the serial port adapter == | ||
The serial port is available on the [[Serial_console#Non-standard_.22intel_configuration.22_10_pins_header|10 pin "intel" header]]. | |||
== Adapting GNU/Linux == | |||
Add mem=4000M to the kennel cmdline, that can be done by adding the following to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub and regenerating grub.cfg: | |||
mem=4096M | |||
== | == TODO == | ||
* <s>Add defaults for the nvram settings.</s> | |||
* <s>find a clean way to merge the patch for the PCIe graphic card.</s> | |||
* <s>fix the Audio CODEC(it's the same than the x60 and it works on the x60)</s>Test audio | |||
* Fix RAM layout to prevent issues with more than 4G of RAM | |||
* lock SMM/SMI if it's not already | |||
* make it possible to run the BIOS under serialICE | |||
* Native GPU init for ATI and Nvidia GPUs | |||
== SerialICE == | |||
* Selecting the ASUS M4A77TD-PRO mainboard makes the serialICE shell appear once flashed(however running the BIOS under SerialICE fails at some point). | |||
=== Howto === | |||
<div class="boilerplate" style="background-color: red; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px dotted #aaa;">'''WARNING, This Howto is for SerialICE and not for coreboot, don't flash the resulting image unless you really know what you're doing...'''</div> | |||
git clone http://review.coreboot.org/p/serialice.git | |||
cd serialice | |||
make menuconfig | |||
make | |||
cd ../ | |||
cd qemu-0.15.x | |||
sh build.sh | |||
ln -s ../SerialICE/simba/*.lua ./ | |||
Add the following to asus_m4a77td_pro.lua: | |||
microcode_patchlevel_eax = 0x010000b7 | |||
function do_mainboard_setup() | |||
do_minimal_setup() | |||
do_default_setup() | |||
enable_hook(cpumsr_hooks, filter_amd_microcode) | |||
end | |||
== | === Failing === | ||
It fails like that(it inits the 2 cores and we have 1 core(qemu)): | |||
[fffc06a:0c0f] e25f.e260 LAPIC: [00000380] <= 00000000 | |||
[fffc06a:1321] e26b.e26d PCI: 0:18.0 [60] => 00010000 | |||
[fffc06a:12e3] e273.e275 PCI: 0:18.3 [e8] => 00075f79 | |||
[fffc06a:1397] e27e.e27f CPUID: eax: 00000001; ecx: 0000001b => 00100f62.00020800.00802009.178bfbff | |||
[fffc06a:1321] e290.e292 PCI: 0:18.3 [e8] => 00075f79 | |||
[fffc06a:1397] e297.e298 CPUID: eax: 00000001; ecx: 0000001b => 00100f62.00020800.00802009.178bfbff | |||
[fffc06a:121e] e2a5.e2a6 CPUID: eax: 80000001; ecx: 0000001b => 00100f62.10001b26.000037ff.efd3fbff | |||
[fffc06a:12ff] e2bb.e2bc CPUID: eax: 80000008; ecx: 0000001b => 00003030.00000000.00002001.00000000 | |||
[fffc06a:130c] e2bf.e2c0 CPU MSR: [c001001f] => 00584000.00000008 | |||
[fffc06a:131d] e2c4.e2c5 CPU MSR: [c001001f] <= 00584000.00000008 | |||
[fffc06a:131d] e2cf.e2d1 PCI: 0:18.3 [90] => 00000000 | |||
[fffc06a:1348] e2dc.e2dd CPUID: eax: 80000008; ecx: 0000001b => 00003030.00000000.00002001.00000000 | |||
[fffc06a:135d] e2e2.e2e3 CPU MSR: [c001001f] <= 00584000.00000008 | |||
[fffc06a:0b7d] e2f2.e2f3 CPU MSR: [0000001b] => 00000000.fee00900 | |||
[fffc06a:0b7d] e2f4.e2f5 LAPIC: [00000020] => 00000000 | |||
[fffc06a:127a] e2f9.e2fa CPUID: eax: 00000001; ecx: 0000001b => 00100f62.00020800.00802009.178bfbff | |||
[fffc06a:1289] e2f9.e2fb CPUID: eax: 80000008; ecx: 00802009 => 00003030.00000000.00002001.00000000 | |||
[fffc06a:1057] e302.e304 PCI: 0:18.0 [68] => 004fac0f | |||
[fffc06a:1071] e30d.e30f PCI: 0:18.0 [68] <= 004fac2f | |||
Readback error! 30/72 | |||
Readback error! a/63 | |||
Readback error! 72/30 | |||
Readback error! 3e/30 | |||
Readback error! 20/30 | |||
Readback error! 63/30 | |||
Readback error! 66/30 | |||
Readback error! 45/30 | |||
Readback error! a/31 | |||
Readback error! 52/62 | |||
Readback error! 3e/2e | |||
Readback error! 52/66 | |||
Readback error! 20/66 | |||
Readback error! 4f/66 | |||
Readback error! 30/65 | |||
Readback error! 52/62 | |||
Readback error! a/30 | |||
Readback error! a/30 | |||
Readback error! 3e/30 | |||
[fffc06a:0c50] e31d.e31e CPU MSR: [0000001b] => 00000000.00000000 |
Latest revision as of 18:59, 13 October 2016
This HOWTO explains how to use coreboot on the M4A785T-M board. The main difference between the ASUS M4A785-M and the M4A785T-M is the support of DDR3 on the latter.
Status
RAM issue
- 32bit untested.
- 64bit was tested and works with 2G of RAM.
- When using more than 4G of RAM, I can't boot GNU/Linux anymore:
- USB devices not seen, some errors -71), with mem=4000M, that works ok again.
- SATA devices are also not seen, and with mem=4000M, it also works ok again.
- When using more than 4G of RAM, I can't boot GNU/Linux anymore:
Status
Device/functionality | Status | Comments | ||||||
---|---|---|---|---|---|---|---|---|
CPU | ||||||||
CPU works | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested: AMD Athlon64 X2 240e. | ||||||
L1 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | How to test? | ||||||
L2 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | How to test? | ||||||
L3 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Multiple CPU support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Multi-core support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
Hardware virtualization | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
RAM | ||||||||
EDO | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
SDRAM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
SO-DIMM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR2 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
DDR3 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | No | 2G works, 4G or more have issues. | ||||||
Dual channel support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
ECC support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | I'm not sure if hardware supports it. | ||||||
On-board Hardware | ||||||||
On-board IDE 3.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
On-board IDE 2.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board SATA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | At least 2 of the 6 SATA port works. The rest is untested. | ||||||
On-board SCSI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
On-board USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | tested in SeaBIOS and with the linux-libre kernel. | ||||||
On-board VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | I only tested the external GPU, see below for more informations. | ||||||
On-board Ethernet | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested in linux-libre and ipxe, works flawlessly. | ||||||
On-board Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | Not tested but it boots fine with it and the sound card appears. | ||||||
On-board Modem | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board FireWire | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Smartcard reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board CompactFlash | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board PCMCIA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Wifi | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Bluetooth | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board SD card reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Add-on slots/cards | ||||||||
ISA add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Audio/Modem-Riser (AMR/CNR) cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested booting on an ATA sil card: booting on it works when adding its PCI ID to coreboot. | ||||||
Mini-PCI add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Mini-PCI-Express add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
PCI-X add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
AGP graphics cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x1 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PCI Express x2 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PCI Express x4 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PCI Express x8 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PCI Express x16 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works with "02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218 [GeForce 210] [10de:0a65] (rev a2)" | ||||||
PCI Express x32 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
HTX add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Legacy / Super I/O | ||||||||
Floppy | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | There is no floppy connector. There seem to be an unpopulated header for it. | ||||||
Serial port 1 (COM1) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | 10 pins intel header | ||||||
Serial port 2 (COM2) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Parallel port | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | Headers on board only. | ||||||
PS/2 keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PS/2 mouse | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Game port | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Infrared | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PC speaker | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
DiskOnChip | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Input | ||||||||
Trackpoint | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Touchpad | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Fn Hotkeys | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Fingerprint Reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Laptop | ||||||||
Docking VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking Displayport | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Thinklight | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Webcam | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Miscellaneous | ||||||||
Sensors / fan control | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Hardware watchdog | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
SMBus | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
CAN bus | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
CPU frequency scaling | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Other powersaving features | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
ACPI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Reboot | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Poweroff | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Suspend | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
Nonstandard LEDs | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
High precision event timers (HPET) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Random number generator (RNG) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on modem ring | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Wake on mouse | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
TPM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
Flashrom | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine from coreboot to coreboot, and from BIOS to coreboot. From coreboot to BIOS works but you may have to do some tricks like clearing CMOS to make it start again. |
proprietary components status
- Optional CPU Microcode
- Optional VGA option rom: wihtout it you will get no graphics, Note that if you use an external graphic card, SeaBIOS load the option rom with its default configuration from the graphic card.
- You can also patch SeaBIOS to put the option rom in memory without running it. That way the linux driver will then find the option rom bytecodes and tables to initialize that GPU.
From 83bbd30b3ef76fc346c417fa08ba716b4e2fb179 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> Date: Sat, 7 Mar 2015 15:39:52 +0100 Subject: [PATCH] Kconfig: Add option not to run option roms Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> --- src/Kconfig | 8 ++++++++ src/optionroms.c | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/Kconfig b/src/Kconfig index b873cd3..2438ab7 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -403,6 +403,14 @@ menu "BIOS interfaces" default y help Support Post Memory Manager (PMM) entry point. + config OPTIONROMS_NORUN + depends on OPTIONROMS + bool "Put the option roms in memory, but don't run them" + default n + help + Some GPU drivers are capable of initializing the display alone, + but they still require some data from the option rom. + config BOOT bool "Boot interface" default y diff --git a/src/optionroms.c b/src/optionroms.c index c81eff2..c7c89da 100644 --- a/src/optionroms.c +++ b/src/optionroms.c @@ -53,7 +53,9 @@ __callrom(struct rom_header *rom, u16 offset, u16 bdf) void callrom(struct rom_header *rom, u16 bdf) { +#if (!CONFIG_OPTIONROMS_NORUN) __callrom(rom, OPTION_ROM_INITVECTOR, bdf); +#endif } // Execute a BCV option rom registered via add_bcv(). -- 2.6.2
Building the serial port adapter
The serial port is available on the 10 pin "intel" header.
Adapting GNU/Linux
Add mem=4000M to the kennel cmdline, that can be done by adding the following to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub and regenerating grub.cfg:
mem=4096M
TODO
Add defaults for the nvram settings.find a clean way to merge the patch for the PCIe graphic card.fix the Audio CODEC(it's the same than the x60 and it works on the x60)Test audio- Fix RAM layout to prevent issues with more than 4G of RAM
- lock SMM/SMI if it's not already
- make it possible to run the BIOS under serialICE
- Native GPU init for ATI and Nvidia GPUs
SerialICE
- Selecting the ASUS M4A77TD-PRO mainboard makes the serialICE shell appear once flashed(however running the BIOS under SerialICE fails at some point).
Howto
WARNING, This Howto is for SerialICE and not for coreboot, don't flash the resulting image unless you really know what you're doing...
git clone http://review.coreboot.org/p/serialice.git cd serialice make menuconfig make
cd ../ cd qemu-0.15.x sh build.sh ln -s ../SerialICE/simba/*.lua ./
Add the following to asus_m4a77td_pro.lua:
microcode_patchlevel_eax = 0x010000b7 function do_mainboard_setup() do_minimal_setup() do_default_setup() enable_hook(cpumsr_hooks, filter_amd_microcode) end
Failing
It fails like that(it inits the 2 cores and we have 1 core(qemu)):
[fffc06a:0c0f] e25f.e260 LAPIC: [00000380] <= 00000000 [fffc06a:1321] e26b.e26d PCI: 0:18.0 [60] => 00010000 [fffc06a:12e3] e273.e275 PCI: 0:18.3 [e8] => 00075f79 [fffc06a:1397] e27e.e27f CPUID: eax: 00000001; ecx: 0000001b => 00100f62.00020800.00802009.178bfbff [fffc06a:1321] e290.e292 PCI: 0:18.3 [e8] => 00075f79 [fffc06a:1397] e297.e298 CPUID: eax: 00000001; ecx: 0000001b => 00100f62.00020800.00802009.178bfbff [fffc06a:121e] e2a5.e2a6 CPUID: eax: 80000001; ecx: 0000001b => 00100f62.10001b26.000037ff.efd3fbff [fffc06a:12ff] e2bb.e2bc CPUID: eax: 80000008; ecx: 0000001b => 00003030.00000000.00002001.00000000 [fffc06a:130c] e2bf.e2c0 CPU MSR: [c001001f] => 00584000.00000008 [fffc06a:131d] e2c4.e2c5 CPU MSR: [c001001f] <= 00584000.00000008 [fffc06a:131d] e2cf.e2d1 PCI: 0:18.3 [90] => 00000000 [fffc06a:1348] e2dc.e2dd CPUID: eax: 80000008; ecx: 0000001b => 00003030.00000000.00002001.00000000 [fffc06a:135d] e2e2.e2e3 CPU MSR: [c001001f] <= 00584000.00000008 [fffc06a:0b7d] e2f2.e2f3 CPU MSR: [0000001b] => 00000000.fee00900 [fffc06a:0b7d] e2f4.e2f5 LAPIC: [00000020] => 00000000 [fffc06a:127a] e2f9.e2fa CPUID: eax: 00000001; ecx: 0000001b => 00100f62.00020800.00802009.178bfbff [fffc06a:1289] e2f9.e2fb CPUID: eax: 80000008; ecx: 00802009 => 00003030.00000000.00002001.00000000 [fffc06a:1057] e302.e304 PCI: 0:18.0 [68] => 004fac0f [fffc06a:1071] e30d.e30f PCI: 0:18.0 [68] <= 004fac2f Readback error! 30/72 Readback error! a/63 Readback error! 72/30 Readback error! 3e/30 Readback error! 20/30 Readback error! 63/30 Readback error! 66/30 Readback error! 45/30 Readback error! a/31 Readback error! 52/62 Readback error! 3e/2e Readback error! 52/66 Readback error! 20/66 Readback error! 4f/66 Readback error! 30/65 Readback error! 52/62 Readback error! a/30 Readback error! a/30 Readback error! 3e/30 [fffc06a:0c50] e31d.e31e CPU MSR: [0000001b] => 00000000.00000000