Dorion Mode - A blog by Robinson Dorion.

November 1, 2020

A JWRD desktop aiming for open graphics

Filed under: JWRD — Robinson Dorion @ 19:34

I am in the process of building a desktop computer. I approached the task on the following fronts :

  1. a motherboard supported by an open source BIOS, e.g. Coreboot;
  2. an AMD CPU which is not locked down by AMD's Platform Security Processor (PSP);
  3. a graphics card with minimal to no proprietary microcode.

This was motivated by a couple goals :

  1. expand JWRD's hardware offering;
  2. have a desktop with which to play the masterclass in economy mascarading as a video game: Eulora published by The Ministry of Games.

The components I chose are :

Component Make & Model Note
Motherboard ASUS F2A85M
APU AMD A8-5600k with AMD Radeon HD 7560D 4 cores, 3.6GHz base clock
RAM Corsair CMZ8GX3M1A1600C10 DDR3, 2 x 8 GB
SSD Samsung 860 EVO 1 TB
HDD Seagate Barracuda 3.5" SATA, 2 TB
Power Supply CORSAIR TX650M 650W, 80 + Gold, semi-modular
Case Corsair Carbide 200R Mid-tower ATX
Case Fans Corsair AF120 3 x 120mm
UPS CyberPower CP1500AVRLCD 900W

Motherboard

I started my search by reading up on motherboard candidates via the Coreboot supported mainboards and board status wiki pages and git respository. The Coreboot wiki has a dedicated page for the ASUS F2A85M (archived).

This board is equipped with an FM2 socket which supports AMD APUs of the A85 Piledriver line on the CPU side and Terra Scale 3 based GPUs of the Trinty line.

The Read Only Memory (ROM) chip is a Winbound 25Q64F that will be flashed externally with an 8 pin chip clip to replace the vendor UEFI/BIOS with a BIOS I compile.

APU

To pick the APU, my starting point was the ASUS website which lists the 39(i) supported chips. Despite the long list, from what I managed to find, the supply for these is tight. This makes sense given they went out of print in October of 2012 and are supported by Coreboot.

For graphics support, I started at the wiki of the X Window System and in particular the page on the Radeon line of graphics cards due to the Radeon integration in many of the APUs supported by the motherboard.

I'm a bit less of a graphics noob than when I started this process, but still very much a graphics noob. As far as I understand at present, there are no graphics cards which do not require proprietary firmware. There are some rumors that the abandoned radeonhd driver did not require firmware compiled by the vendor, but the Pleased to meet you, hope you guess my name (archived) and Pleased to flash you, hope you change my name (archived) articles by Luc Verhaegen record that if you were familiar with the details, that was never the case. RadeonHD relied on the AtomBIOS, the source code of which was never published, to whit,

At no point do AtomBIOS functions come close to fitting the definition of script, at least not as we get them. It might start life as "scripts", but what we get is the bytecode, stuck into the ROM of our graphics cards or our mainboard.

After reading this, I didn't bother adding a discrete graphics card supported by radeonhd for this iteration. Despite being over a decade old, I did find some radeonhd supported cards still available.

For the APU, I picked the AMD A8-5600K which has the Radeon HD 7560D integrated GPU. The Radeon HD 7560D requires the 3 ARUBA_me.bin, ARUBA_pfp.bin and ARUBA_rlc.bin binary files from the Radeon Linux firmware list which weigh a combined 23.552 kb. Permitting 23kb of mystery meat to run graphics is not the worst of fates. While not ideal, the fact is the complexity the of hardware itself is much greater and likewise not available for the supposed owner to inspect.

RAM and Disks

To chose memory, I started from the qualified vendors list (pdf) of the F2A85M motherboard. I added the Samsung SSD because I also plan to test syncing a Bitcoin node and GBW-node with this set up.

Power Supply, Case, Case Fans

Gold 80 Plus power supply efficiency was good enough for me. Cases with tempered glass windows and shiny lights seem to be marketed heavily. I went all metal for sturdiness. The case has a built-in rear fan. My plan for the other three are to put two stacked from the bottom of the front and one on top for bottom-to-top, front-to-back cooling airflow.

Next Steps

The parts have started arriving. I'll start the build this week and report back. I focused this article on what I ended up choosing. I looked at several more set ups in this process, the notes for which need cleaning up prior to publishing.

Conclusion
While it looks like a fully open desktop with graphics support is out of reach at present, I gained from the process and am looking forward to setting this machine up.

  1. The complete list:
    AMD A10-5700 (AD5700OKA44HJ, rev.A1, 3.4GHz, L2:4M, 65W) ALL 5008GO
    AMD A10-5800B (AD580BWOA44HJ, rev.A1, 3.8GHz, L2:4M, 100W) ALL 5008GO
    AMD A10-5800K (AD580KWOA44HJ, rev.A1, 3.8GHz, L2:4M, 100W) ALL 5008GO
    AMD A10-6700 (FM2, AD6700OKA44HL, rev.A1, 3.7GHz, 4C, L2:4M, HD 8670D, 65W) ALL 6002GO
    AMD A10-6700T (FM2, AD670TYHA44HL, rev.A1, 2.5GHz, 4C, L2:4M, HD 8650D, 45W) ALL 6402GO
    AMD A10-6790B (FM2, AD679BWOA44HL, rev.A1, 4.0GHz, 4C, L2:4M, HD 8670D, 100W) ALL 6501GO
    AMD A10-6790K (FM2, AD679KWOA44HL, rev.A1, 4.0GHz, 4C, L2:4M, HD 8670D, 100W) ALL 6501GO
    AMD A10-6800B (FM2, AD680BWOA44HL, rev.A1, 4.1GHz, 4C, L2:4M, HD 8670D, 100W) ALL 6002GO
    AMD A10-6800K (FM2, AD680KWOA44HL, rev.A1, 4.1GHz, 4C, L2:4M, HD 8670D, 100W) ALL 6002GO
    AMD A4-4000 (FM2, AD40000KA23HL,3.0Ghz, L2: 1M , HD7480, rev.A1, 65W) ALL 6102GO
    AMD A4-4020(FM2, AD4020OKA23HL,3.2Ghz, L2: 1M , HD7480D, rev.A1, 65W) ALL 6502GO
    AMD A4-5300 (AD5300OKA23HJ, rev.A1, 3.4GHz, L2:1M, 65W) ALL 5008GO
    AMD A4-5300B (FM2, AD530BOKA23HJ, rev.A1, 3.4GHz, L2:1M, 65W) ALL 5008GO
    AMD A4-6300 (FM2, AD6300OKA23HL, rev.A1, 3.7GHz, 2C, L2:1M, HD 8370D, 65W) ALL 6002GO
    AMD A4-6300B (FM2, AD630BOKA23HL, rev.A1, 3.7GHz, 2C, L2:1M, HD 8370D, 65W) ALL 6002GO
    AMD A4-6320(FM2, AD6320OKA23HL, rev.A1, 3.8GHz, 2C, L2:1M, HD 8370D, 65W) ALL 6502GO
    AMD A4-7300 (FM2, AD7300OKA23HLA, rev.A1, 3.8GHz, 2C, L2:1M, GCN Radeon R5, 65W) ALL 6506GO
    AMD A4-7300B (FM2, AD730BOKA23HLA, rev.A1, 3.8GHz, 2C, L2:1M, 65W) ALL 6506GO
    AMD A6-5400B (AD540BOKA23HJ, rev.A1, 3.6GHz, L2:1M, 65W) ALL 5008GO
    AMD A6-5400K (AD540KOKA23HJ, rev.A1, 3.6GHz, L2:1M, 65W) ALL 5008GO
    AMD A6-6400B (FM2, AD640BOKA23HL, rev.A1, 2C, 3.9GHz, L2:1M, HD 8470D, 65W) ALL 6002GO
    AMD A6-6400K (FM2, AD640KOKA23HL, rev.A1, 2C, 3.9GHz, L2:1M, HD 8470D, 65W) ALL 6002GO
    AMD A6-6420K (FM2, AD642KOKA23HL, rev.A1, 2C, 4.0GHz, L2:1M, HD 8470D, 65W) ALL 6502GO
    AMD A8-5500 (AD5500OKA44HJ, rev.A1, 3.2GHz, L2:4M, 65W) ALL 5008GO
    AMD A8-5500B (AD550BOKA44HJ, rev.A1, 3.2GHz, L2:4M, 65W) ALL 5008GO
    AMD A8-5600K (AD560KWOA44HJ, rev.A1, 3.6GHz, L2:4M, 100W) ALL 5008GO
    AMD A8-6500 (FM2, AD6500OKA44HL, rev.A1, 4C, 3.5GHz, L2:4M, HD 8570D, 65W) ALL 6002GO
    AMD A8-6500B (FM2, AD650BOKA44HL, rev.A1, 4C, 3.5GHz, L2:4M, HD 8570D, 65W) ALL 6002GO
    AMD A8-6500T (FM2, AD650TYHA44HL, rev.A1, 4C, 2.1GHz, L2:4M, HD 8550D, 45W) ALL 6402GO
    AMD A8-6600K (FM2, AD660KWOA44HL, rev.A1, 4C, 3.9GHz, L2:4M, HD 8570D, 100W) ALL 6002GO
    AMD Athlon X2 340 (FM2, 3.2Ghz, 2C, L2:1M, 65W) ALL 6102GO
    AMD AthlonX2 350 (FM2, AD350XOKA23HL, 2C, rev.A1, 3.5GHz, L2:1M, 65W) ALL 6102GO
    AMD AthlonX2 370K (FM2, AD370KOKA23HL, 2C, rev.A1, 4.0GHz, L2:4M, 65W) ALL 6404GO
    AMD AthlonX4 730 (FM2, AD730XOKA44HJ, rev.A1, 2.8GHz, L2:4M, 65W) ALL 5008GO
    AMD AthlonX4 740 (FM2, AD740XOKA44HJ, rev.A1, 3.2GHz, L2:4M, 65W) ALL 5008GO
    AMD AthlonX4 750 (FM2, AD750XOKA44HL, 4C, rev.A1, 3.4GHz, L2:4M, 65W) ALL 6102GO
    AMD AthlonX4 750K (FM2, AD750KWOA44HJ, rev.A1, 3.4GHz, L2:4M, 100W) ALL 5008GO
    AMD AthlonX4 760K (FM2, AD760KWOA44HL, 4C, rev.A1, 3.8GHz, L2:4M, 100W) ALL 6102GO
    AMD Sempron 250 (FM2, SD250XOKA23HL, 2C, rev.A1, 3.2GHz, L2:1M, 65W) ALL 6102GO [^]

7 Comments »

  1. For completeness or for other graphics noobs (though isn't it funny how none of this actually has anything to do with graphics? welcome to hardware-accelerated bureaucracy I guess) the alternatives for 3D graphics hardware - excluding the embedded stuff found on phones and such - are Intel and nVidia. AMD got into the game by acquisition of ATI. Intel is the low end with integrated chips only (on the motherboard, sharing system memory with CPU) but supposedly has strong open source driver support. Not sure of the firmware situation - I know they play the "'open driver' with closed firmware" game on their WiFi adapters at least - and of course it won't help if one has set the evil bit on Intel. nVidia traditionally had the best support for Linux through their fully-closed drivers but there's a reverse-engineered "nouveau" driver that's been in the works for ages and might be good enough in some cases. So in short, from what we know so far AMD is the least-bad option especially if one wants decent performance.

    Comment by Jacob Welsh — November 1, 2020 @ 21:37

  2. [...] [...]

    Pingback by #jwrd Logs for Nov 2020 « Fixpoint — December 1, 2020 @ 19:14

  3. [...] managed to install Gentoo on my JWRD desktop with the software in the table below. Below the table I've documented the steps I took and the [...]

    Pingback by A Gentoo install on JWRD desktop « Dorion Mode — December 24, 2020 @ 18:14

  4. I actually went and added full native VGA display init for the unichrome on the VIA K8M890 after RadeonHD got cancelled (and the world experienced the result of the 2008 financial crash): https://libv.livejournal.com/19432.html
    And the amount of code needed to get a discrete card with ATOMBIOS going is also pretty limited, it should be contained in ASICInit, which we used to initialize non-primary cards just fine.

    Comment by Luc Verhaegen — June 10, 2021 @ 21:28

  5. @Luc Verhaegen: sorry we had this languishing in the spam queue and then the otherwise neglected items bucket for quite so long.

    I actually went and added full native VGA display init for the unichrome on the VIA K8M890 after RadeonHD got cancelled

    I hadn't heard of unichrome (not to be confused with monochrome, apparently!) but found it was from S3 Graphics which was not related to ATI except perhaps as a competitor. So I infer the RadeonHD connection is only incidental, in the sense of unichrome being what you switched to working on once the RadeonHD revenue was cut; have I got that right?

    Otherwise what I get from the article is that one family of VIA boards and one particular Asus board gained fully-free text mode support, with more conceivably to follow. That might make a good option for low-end or server boxes but not for 3D graphics or even basic x11.

    And the amount of code needed to get a discrete card with ATOMBIOS going is also pretty limited, it should be contained in ASICInit, which we used to initialize non-primary cards just fine.

    I found an rhdAtomASICInit in xf86-video-radeonhd which serves as wrapper to an ASIC_Init which I take to be a bytecode routine provided by the GPU's ROM. So what's the implication - that the amount of such bytecode required is less than previously believed? That this makes radeonhd interesting despite supporting only hardware that's now out of production?

    Comment by Jacob Welsh — October 1, 2021 @ 18:34

  6. Apparently steel is just as fickle as silicon these days: even the case listed here is "Currently unavailable. We don't know when or if this item will be back in stock." on amazon (and that's after bypassing its own defective search that spams six "results" not matching the given terms, four not even matching the brand).

    Comment by Jacob Welsh — February 5, 2024 @ 04:41

  7. Myeah, poking around myself, looks like pretty much all Corsair's stuff is glass now.

    Comment by Robinson Dorion — March 9, 2024 @ 16:39

RSS feed for comments on this post. TrackBack URL

Leave a comment

Dorion Mode is proudly powered by MP-WP. Copyright Robinson Dorion