Board:asus/m4a785t-m
The wiki is being retired!
Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!
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 250. | ||||||
L1 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | Not tested yet (how to test?) | ||||||
L2 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | Not tested yet (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 }}" | OK | |||||||
Hardware virtualization | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | KVM seem to work | ||||||
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 | N/A | ||||||
DDR2 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
DDR3 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | 2G works, 4G(2 * 2G) works with lastest coreboot | ||||||
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 | |||||||
On-board Hardware | ||||||||
On-board IDE 3.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested: 500GB HDD | ||||||
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 }}" | OK | Tested some ports, works fine | ||||||
On-board SCSI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | USB keyboard works | ||||||
On-board VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested:analog VGA and HDMI,dual screen. | ||||||
On-board Ethernet | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | No | Linux driver crashes. | ||||||
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 | I've an ath9k wifi PCI card and it works. | ||||||
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 }}" | N/A | |||||||
PCI Express x4 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x8 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x16 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested with Nvidia card | ||||||
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 at all. | ||||||
Serial port 1 (COM1) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | COM1 is only pin header on board. DB-9 serial connector is available, but not included with board. | ||||||
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 | No connector, pins on board only | ||||||
PS/2 keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
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 }}" | N/A | |||||||
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 }}" | N/A | |||||||
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 }}" | OK | works in GNU/Linux | ||||||
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 }}" | | |||||||
High precision event timers (HPET) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | | |||||||
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 }}" | | |||||||
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 | The chip is SPI |
proprietary components status
- CPU Microcode (optional)
- VGA option rom (optional): wihtout it you will get no graphics, Note that if you use an external graphic card, SeaBIOS will probably(depending on its configuration) load the option rom(that you don't have to touch) from the graphic card.
Introduction
This pages is about the port to the M4A785T-M, this mainboard is very similar to the M4A785-M, but:
- it has DDR3 instead of DDR2
Building the serial port adapter
You'll need to build a serial port adapter to get the coreboot logs during.
Here's a picture of the serial port connector on the mainboard:
And here's the kind of cable you will need:
And you'll need to build a cable similar to this one(on the picture the DB9 is connector is a male connector):
Here's how it looks like on the mainboard:
_____________________ | |NC|09| |08|07| |06|05| |04|03| |02|01| | |
Here's a table of corresponding pins:
Mainboard connector pin | Mainboard pin Function | Standard DE9 pin connector | Standard DE9 pin Function | Mandatory for coreboot |
---|---|---|---|---|
1 | ? | ? | ? | No |
2 | RX | 3 | TX | Yes (you could do without but it's advised to get it, to be able to use certain functions of coreboot) |
3 | TX | 2 | RX | Yes |
4 | 4 | DTR | No | |
5 | Ground | 5 | Ground | Yes |
6 | ? | ? | ? | No |
7 | 7 | RTS | No | |
8 | 8 | CTS | No | |
9 | ? | ? | ? | No |
Adapting GNU/Linux
Before booting with coreboot, do the following:
- blacklist the snd-hda* modules (refer to the usual way to get help for the GNU/Linux distribution you want to run for doing that)
- 32bit GNU/Linux trisquel distribution tested
- 64bit GNU/Linux trisquel distribution failed to initialize the USB.
Building Coreboot
To build coreboot for this mainboard:
- checkout coreboot revision d5c998be99709c92f200b3b08aed2ca3fee2d519
- optionally apply the azalia patch below in the azalia section of this page.
- select the stable revision of seabios for more anti-brick safety
- Configure and Build it as usual(for having graphics you need to extract your VGA BIOS ROM from your BIOS)
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
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
Azalia
This diff permits not to have to blacklist the intel hda module:
diff --git a/src/mainboard/asus/m4a785t-m/devicetree.cb b/src/mainboard/asus/m4a785t-m/devicetree.cb index 0299fc2..6880770 100644 --- a/src/mainboard/asus/m4a785t-m/devicetree.cb +++ b/src/mainboard/asus/m4a785t-m/devicetree.cb @@ -57,7 +57,7 @@ chip northbridge/amd/amdfam10/root_complex end end # SM device pci 14.1 on end # IDE 0x439c - device pci 14.2 on end # HDA 0x4383 + device pci 14.2 off end # HDA 0x4383 device pci 14.3 on # LPC 0x439d chip superio/ite/it8712f device pnp 2e.0 off end # Floppy
it seem to have worked with only one revision of the linux kernel(the previous and next version broke it) from the parabola GNU/Linux distribution:
[ 0.000000] Linux version 3.7.3-1-LIBRE (nobody@root) (gcc version 4.7.2 (GCC) ) #1 SMP PREEMPT Fri Jan 18 14:16:00 UYST 2013 [...] [ 12.299818] hda-intel: azx_get_response timeout, switching to polling mode: last cmd=0x200f0000 [ 13.167704] r8169 0000:03:00.0 enp3s0: link up [ 13.167712] IPv6: ADDRCONF(NETDEV_CHANGE): enp3s0: link becomes ready [ 13.305107] hda-intel: Codec #2 probe error; disabling it... [ 13.383482] input: HDA ATI SB Line as /devices/pci0000:00/0000:00:14.2/sound/card0/input6 [ 13.383597] input: HDA ATI SB Front Mic as /devices/pci0000:00/0000:00:14.2/sound/card0/input7 [ 13.383692] input: HDA ATI SB Rear Mic as /devices/pci0000:00/0000:00:14.2/sound/card0/input8 [ 13.383789] input: HDA ATI SB Front Headphone as /devices/pci0000:00/0000:00:14.2/sound/card0/input9 [ 13.383899] input: HDA ATI SB Line Out Side as /devices/pci0000:00/0000:00:14.2/sound/card0/input10 [ 13.383995] input: HDA ATI SB Line Out CLFE as /devices/pci0000:00/0000:00:14.2/sound/card0/input11 [ 13.384080] input: HDA ATI SB Line Out Surround as /devices/pci0000:00/0000:00:14.2/sound/card0/input12 [ 13.384160] input: HDA ATI SB Line Out Front as /devices/pci0000:00/0000:00:14.2/sound/card0/input13 [ 13.384663] snd_hda_intel 0000:01:05.1: setting latency timer to 64 [ 13.408194] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:05.1/sound/card1/input14 [ 13.408610] hda_intel: Disabling MSI [ 13.408626] hda-intel: 0000:02:00.1: Handle VGA-switcheroo audio client [ 14.203934] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:02.0/0000:02:00.1/sound/card2/input15 [ 14.204079] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:02.0/0000:02:00.1/sound/card2/input16 [ 14.204124] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:02.0/0000:02:00.1/sound/card2/input17 [ 14.204166] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:02.0/0000:02:00.1/sound/card2/input18 [...]
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)
- handle suspend to ram
- lock SMM/SMI
- make it possible to run the BIOS under serialICE
- 64bit support