Difference between revisions of "ASUS M4A785T-M"
(→Building Coreboot) |
(→Building Coreboot) |
||
| (3 intermediate revisions by one user not shown) | |||
| Line 201: | Line 201: | ||
To build coreboot for this mainboard: | To build coreboot for this mainboard: | ||
* checkout coreboot revision d5c998be99709c92f200b3b08aed2ca3fee2d519 | * 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) | * Configure and Build it as usual(for having graphics you need to extract your VGA BIOS ROM from your BIOS) | ||
Revision as of 14:18, 23 January 2013
Contents |
Status
| Device/functionality | Status | Comments | ||||||
|---|---|---|---|---|---|---|---|---|
| CPU | ||||||||
| CPU works | OK | Tested: AMD Athlon64 X2 250. | ||||||
| L1 cache enabled | Untested | Not tested yet (how to test?) | ||||||
| L2 cache enabled | Untested | Not tested yet (how to test?) | ||||||
| L3 cache enabled | N/A | |||||||
| Multiple CPU support | N/A | |||||||
| Multi-core support | OK | |||||||
| Hardware virtualization | OK | KVM seem to work | ||||||
| RAM | ||||||||
| EDO | N/A | |||||||
| SDRAM | N/A | |||||||
| SO-DIMM | N/A | |||||||
| DDR | N/A | N/A | ||||||
| DDR2 | Untested | |||||||
| DDR3 | OK | 2G works, 4G(2 * 2G) works with lastest coreboot | ||||||
| Dual channel support | Untested | |||||||
| ECC support | Untested | |||||||
| On-board Hardware | ||||||||
| On-board IDE 3.5" | OK | Tested: 500GB HDD | ||||||
| On-board IDE 2.5" | N/A | |||||||
| On-board SATA | OK | Tested some ports, works fine | ||||||
| On-board SCSI | N/A | |||||||
| On-board USB | OK | USB keyboard works | ||||||
| On-board VGA | OK | Tested:analog VGA and HDMI,dual screen. | ||||||
| On-board ethernet | OK | |||||||
| On-board audio | No | Linux driver crashes. | ||||||
| On-board modem | N/A | |||||||
| On-board FireWire | N/A | |||||||
| On-board smartcard reader | N/A | |||||||
| On-board CompactFlash | N/A | |||||||
| On-board PCMCIA | N/A | |||||||
| Add-on slots/cards | ||||||||
| ISA add-on cards | N/A | |||||||
| Audio/Modem-Riser (AMR/CNR) cards | N/A | |||||||
| PCI add-on cards | OK | I've an ath9k wifi PCI card and it works. | ||||||
| Mini-PCI add-on cards | N/A | |||||||
| PCI-X add-on cards | N/A | |||||||
| AGP graphics cards | N/A | |||||||
| PCI Express x1 add-on cards | Untested | |||||||
| PCI Express x2 add-on cards | N/A | |||||||
| PCI Express x4 add-on cards | N/A | |||||||
| PCI Express x8 add-on cards | N/A | |||||||
| PCI Express x16 add-on cards | OK | Tested with Nvidia card | ||||||
| PCI Express x32 add-on cards | N/A | |||||||
| HTX add-on cards | N/A | |||||||
| Legacy / Super I/O | ||||||||
| Floppy | N/A | There is no floppy connector at all. | ||||||
| Serial port 1 (COM1) | OK | COM1 is only pin header on board. DB-9 serial connector is available, but not included with board. | ||||||
| Serial port 2 (COM2) | N/A | |||||||
| Parallel port | Untested | No connector, pins on board only | ||||||
| PS/2 keyboard | OK | |||||||
| PS/2 mouse | Untested | |||||||
| Game port | N/A | |||||||
| Infrared | N/A | |||||||
| PC speaker | Untested | |||||||
| DiskOnChip | N/A | |||||||
| Miscellaneous | ||||||||
| Sensors / fan control | Untested | |||||||
| Hardware watchdog | N/A | |||||||
| SMBus | Unknown | |||||||
| CAN bus | N/A | |||||||
| CPU frequency scaling | OK | works in GNU/Linux | ||||||
| Other powersaving features | Untested | |||||||
| ACPI | Untested | |||||||
| Reboot | OK | |||||||
| Poweroff | OK | |||||||
| Suspend | Unknown | |||||||
| Nonstandard LEDs | ||||||||
| High precision event timers (HPET) | ||||||||
| Random number generator (RNG) | Untested | |||||||
| Wake on modem ring | Untested | |||||||
| Wake on LAN | ||||||||
| Wake on keyboard | Untested | |||||||
| Wake on mouse | Untested | |||||||
| Flashrom | 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 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