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 |
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 34746a9c48165f89f80fb664d46b646ca9e44779
- 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