1# ASUS A88XM-E 2 3This page describes how to run coreboot on the [ASUS A88XM-E]. 4 5## Technology 6 7Both "Trinity" and "Richland" FM2 desktop processing units are working, 8the CPU architecture in these CPUs/APUs are [Piledriver], 9and their GPU is [TeraScale 3] (VLIW4-based). 10 11Kaveri is non-working at the moment (FM2+), 12the CPU architecture in these CPUs/APUs are [Steamroller], 13and their GPU is [Sea Islands] (GCN2-based). 14 15A10 Richland is recommended for the best performance and working IOMMU. 16 17```{eval-rst} 18+------------------+--------------------------------------------------+ 19| A88XM-E | | 20+------------------+--------------------------------------------------+ 21| DDR voltage IC | Nuvoton 3101S | 22+------------------+--------------------------------------------------+ 23| Network | Realtek RTL8111G | 24+------------------+--------------------------------------------------+ 25| Northbridge | Integrated into CPU with IMC and GPU (APUs only) | 26+------------------+--------------------------------------------------+ 27| Southbridge | Bolton-D4 | 28+------------------+--------------------------------------------------+ 29| Sound IC | Realtek ALC887 | 30+------------------+--------------------------------------------------+ 31| Super I/O | ITE IT8603E | 32+------------------+--------------------------------------------------+ 33| VRM controller | DIGI VRM ASP1206 | 34+------------------+--------------------------------------------------+ 35``` 36 37## Flashing coreboot 38 39```{eval-rst} 40+---------------------+------------+ 41| Type | Value | 42+=====================+============+ 43| Socketed flash | yes | 44+---------------------+------------+ 45| Model | [GD25Q64] | 46+---------------------+------------+ 47| Size | 8 MiB | 48+---------------------+------------+ 49| Package | DIP-8 | 50+---------------------+------------+ 51| Write protection | yes | 52+---------------------+------------+ 53| Dual BIOS feature | no | 54+---------------------+------------+ 55| Internal flashing | yes | 56+---------------------+------------+ 57``` 58 59### Internal programming 60 61The main SPI flash can be accessed using [flashrom], if the 62AmdSpiRomProtect modules have been deleted in the factory image previously. 63 64### External flashing 65 66Using a PLCC Extractor or any other appropriate tool, carefully remove the 67DIP-8 BIOS chip from its' socket while avoiding the bent pins, if possible. 68To flash it, use a [flashrom]-supported USB CH341A programmer - preferably with a 69green PCB - and double check that it's giving a 3.3V voltage on the socket pins. 70 71## Integrated graphics 72 73### Retrieve the VGA optionrom ("Retrieval via Linux kernel" method) 74 75Make sure a proprietary UEFI is flashed and boot Linux with iomem=relaxed flag. 76Some Linux drivers (e.g. radeon for AMD) make option ROMs like the video blob 77available to user space via sysfs. To use that to get the blob you need to 78enable it first. To that end you need to determine the path within /sys 79corresponding to your graphics chip. It looks like this: 80 81 # /sys/devices/pci<domain>:<bus>/<domain>:<bus>:<slot>.<function>/rom. 82 83You can get the respective information with lspci, for example: 84 85 # lspci -tv 86 # -[0000:00]-+-00.0 Advanced Micro Devices, Inc. [AMD] Family 16h Processor Root Complex 87 # +-01.0 Advanced Micro Devices, Inc. [AMD/ATI] Kabini [Radeon HD 8210] 88 # ... 89 90Here the the needed bits (for the ROM of the Kabini device) are: 91 92 # PCI domain: (almost always) 0000 93 # PCI bus: (also very commonly) 00 94 # PCI slot: 01 (logical slot; different from any physical slots) 95 # PCI function: 0 (a PCI device might have multiple functions... shouldn't matter here) 96 97To enable reading of the ROM you need to write 1 to the respective file, e.g.: 98 99 # echo 1 > /sys/devices/pci0000:00/0000:00:01.0/rom 100 101The same file should then contain the video blob and it should be possible to simply copy it, e.g.: 102 103 # cp /sys/devices/pci0000:00/0000:00:01.0/rom vgabios.bin 104 105romheaders should print reasonable output for this file. 106 107This version is usable for all the GPUs. 108 1002,9901 Trinity (Radeon HD 7660D) 109 1002,9904 Trinity (Radeon HD 7560D) 110 1002,990c Richland (Radeon HD 8670D) 111 1002,990e Richland (Radeon HD 8570D) 112 1002,9991 Trinity (Radeon HD 7540D) 113 1002,9993 Trinity (Radeon HD 7480D) 114 1002,9996 Richland (Radeon HD 8470D) 115 1002,9998 Richland (Radeon HD 8370D) 116 1002,999d Richland (Radeon HD 8550D) 117 1002,130f Kaveri (Radeon R7) 118 119## Known issues 120 121- AHCI hot-plug 122- S3 resume (sometimes) 123- Windows 7 can't boot because of the incomplete ACPI implementation 124- XHCI 125 126### XHCI ports can break after using any of the blobs, restarting the 127board with factory image makes it work again as fallback. 128Tested even with/without the Bolton and Hudson blobs. 129 130## Untested 131 132- audio over HDMI 133 134## TODOs 135 136- one ATOMBIOS module for all the integrated GPUs 137- manage to work with Kaveri/Godavary (they are using a binaryPI) 138- IRQ routing is done incorrect way - common problem of fam15h boards 139 140## Working 141 142- ACPI 143- CPU frequency scaling 144- flashrom under coreboot 145- Gigabit Ethernet 146- Hardware monitoring 147- Integrated graphics 148- KVM virtualization 149- Onboard audio 150- PCI 151- PCIe 152- PS/2 keyboard mouse (during payload, bootloader) 153- SATA 154- Serial port 155- SuperIO based fan control 156- USB (disabling XHCI controller makes to work as fallback USB2.0 ports) 157- IOMMU 158 159## Extra resources 160 161- [Board manual] 162 163[ASUS A88XM-E]: https://www.asus.com/Motherboards/A88XME/ 164[Board manual]: https://dlcdnets.asus.com/pub/ASUS/mb/SocketFM2/A88XM-E/E9125_A88XM-E.pdf 165[flashrom]: https://flashrom.org/Flashrom 166[GD25Q64]: http://www.elm-tech.com/ja/products/spi-flash-memory/gd25q64/gd25q64.pdf 167[Piledriver]: https://en.wikipedia.org/wiki/Piledriver_%28microarchitecture%29#APU_lines 168[Sea Islands]: https://en.wikipedia.org/wiki/Graphics_Core_Next#GCN_2nd_generation 169[Steamroller]: https://en.wikipedia.org/wiki/Steamroller_(microarchitecture) 170[TeraScale 3]: https://en.wikipedia.org/wiki/TeraScale_%28microarchitecture%29#TeraScale_3 171