While doing my usual shopping patrols on ebay I found a bunch of sellers that had some interesting cards.
The title of the item was " ST425 PCIe X1 AST2400 2K VGA 1920 X 1200" so this seems to be an Aspeed AST2400 (a server integrated graphics and management chip) in pcie card form. The price was around 30 euros, so very affordable. The same item is also available on aliexpress if you search for ST425 or AST2400. Since this has only a tiny memory chip and a single VGA/S-Sub port, there is no management functionality and is just used as a GPU.
here it is, in all its glory:
Yes this card is not going to play any games at all, and it has only a VGA or D-Sub video out like a server would.
This is a basic low power GPU (5 watts or less) to place in a home server or NAS so you can use a CPU that does not have integrated graphics and still have a screen output to connect a screen for troubleshooting or even better a ipKVM.
Installing a CPU without integrated graphics on AM4 (and AM5 afaik) is the only way to bifurcate the x16 pcie slot in 4x4x4x4 mode to install 4 nvme ssds, since the APUs can only bifurcate up to 8x4x4 due to hardware limitations.
Since it was cheap I decided to pull the trigger and get one to try out. Since the listing does not mention UEFI support explicitly I had some doubts it would, and I was right.
After I got it, I quickly discovered that it works only with CSM/legacy mode/whatever enabled, or in other words the chinese manufacturer didn’t flash the firmware image that has the UEFI support module. I know that it exists, servers with this chipset had UEFI support and their graphics didn’t stop functioning when disabling CSM.
Thankfully, the Aspeed website provides all the firmware images to do this in the support drivers section, in the Vbios/UEFI tab and a somewhat simple manual explaining what is what in the “graphics document” tab. ASPEED - Drivers Download
The last firmware package that supports the 2400 is the 1.11.03, the newer ones only have images for newer Aspeed chipsets.
Warning: DO NOT USE THE FLASHING TOOLS, in my card they just erased the memory chip and bricked the card
I’m uploading the pdf file and the firmware zip of version 1.11.03 from the aspeed website, as a backup in case they remove them in the future.
Aspeed Graphics User Guide.pdf (668.1 KB)
v11103_vbios.zip (13.5 MB)
In the zip file there is a “VBIOS+UEFI ROM” folder, which contains the binaries you can just flash to the memory chip on this card.
Since this card only has a VGA/D-Sub port, I chose the “uefi_2400_396.rom” file since the others seem to be named for different video output ports, or for different video chipsets (the 2500, the 2600, etc).
I have memory chip hardware flashing tools and a hot air station to desolder the memory chip because OF COURSE you can’t read nor program the memory chip while it’s in the board. The memory chip is the black square one in the top left in the image, it’s marked as Puya P25Q80H.
Before doing anything, as tradition, I desoldered the memory chip and made a dump. So if something goes wrong I can always flash it again.
It’s a pretty huge memory chip for the firmware it contains, a whole 1MB of flash memory for a firmware image that is like 64k (for the bios-only version) or 76k (for the bios + UEFI module version).
Opening the dump in a hex editor, I see these as the first lines
1.08.00 |\. IBM COMPATIBLE
so the factory firmware is 1.08.
Opening the uefi_2400_396.rom image I get a similar structure as this one, but the version number is different, and there is more stuff at the end with UEFI strings and whatnot.
So far so good, it seems this is just a dumb firmware I can flash as-is.
First I try the flashing tools aspeed provides, under FreeDOS, and the tool fails with an error “write failed”.
On reboot the card is dead, so I pull it and desolder the chip again, to find out the chip was empty.
The tool managed to erase it but not to write it, so lesson learned, DO NOT USE THESE TOOLS.
Now I have the backup I did earlier but I wanted to test the uefi_2400_396.rom file, so I wrote that on the chip with the hardware flasher tool and resolder the memory chip on the card.
This works fine and now the card works when I disable CSM alltogether (while before it did not). Great Success!
It also works with a VGA-HDMI converter so I can pipe the output to a pikvm that only accepts HDMI.
It also works fine with my Linux OpenSUSE test disk (with icewm and KDE/wayland).
with lspci -vv I see the following two devices from aspeed in my test rig, a pci-pci bridge and a VGA controller.
06:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 03) (prog-if 00 [Normal decode])
Subsystem: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Bus: primary=06, secondary=07, subordinate=07, sec-latency=32
I/O behind bridge: f000-ffff [size=4K] [16-bit]
Memory behind bridge: f5000000-f60fffff [size=17M] [32-bit]
Prefetchable memory behind bridge: [disabled] [64-bit]
Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA+ VGA16+ MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [78] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [80] Express (v1) PCI-Express to PCI/PCI-X Bridge, IntMsgNum 0
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE- SlotPowerLimit 26W TEE-IO-
DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ BrConfRtry-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <16us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis-
LnkSta: Speed 2.5GT/s, Width x1
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [a4] Subsystem: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [800 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP-
ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr-
PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP-
ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr-
PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+
ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr-
PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CorrIntErr- HeaderOF-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrIntErr- HeaderOF-
AERCap: First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
07:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30) (prog-if 00 [VGA controller])
Subsystem: ASPEED Technology, Inc. ASPEED Graphics Family
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 24
Region 0: Memory at f5000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at f6020000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at f000 [size=128]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/4 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel driver in use: ast
Kernel modules: ast
I’m sharing my discovery and journey in the hopes it helps others.
If you are fine with leaving CSM/Legacy mode active you can just use it as-is, but if you need to use it in a system with CSM disabled (I remember I had to keep it disabled for pcie passthrough in the past, I don’t know if it’s still the case) or an even more modern system that has no CSM at all, you will need to flash the firmware manually on the chip as I did, or find a chinese seller that has flashed the right firmware from the start.
There is a single chinese seller on ebay that sells a different card also using the AST2400, and claims “Support UEFI mode, 1-13 generation main board can be displayed.” so it seems to support UEFI out of the box. It’s also around 60 euros so twice as expensive. I have not bought nor tested this card, I’m just providing this as information.
The title of the item on ebay is “Suitable for ASPEED AST2400 PCIE X1 low-power 2U graphics card X79/X99 with VGA”


