u-root / u-bmc

Open-source firmware for your baseboard management controller (BMC)
https://u-bmc.readthedocs.io
BSD 3-Clause "New" or "Revised" License
275 stars 32 forks source link

Add AST2050 platform (KGPE-D16/KCMA-D16 motherboards) #133

Open tlaurion opened 5 years ago

tlaurion commented 5 years ago

This OpenBMC port for the KGPE-D16 and KCMA-D8 works but is left unmaintained.

PCB plans for the ASMv4 have been open sourced. PCB can be ordered online here.

Let's remember that the KGPE-d16 (and KCMA-d8) are the last FSF' RYF certifiable x86 motherboards, containing zero binary blobs.

The KGPE-D16 has been ported to Heads ~and measured boot works without a TPM for the moment(works with LibremKey), until coreboot 4.9.1 measured boot @zaolin work is merged upstream.~ and has measured boot under coreboot 4.11 under Heads tree in workstation and server boards configs even with USB HID at boot (USB keyboard).

bluecmd commented 5 years ago

Thanks for the issue, definitely seems like a cool board to support.

From the old port there are some data available: 1 2 3

This email says the AST2050 uses ARM926EJ which should be what the AST2400 series uses. However, I'm not sure if it's so close that you could boot a Linux kernel using the AST2400 configuration, and I'm not sure what the AST2050 mainline situation is. The linked kernel appears to be 2.6.x series, which sadly makes it quite a burden to update.

I would say that the next step is to look at how the QEMU and Kernel situation is in terms of this particular SoC and then make sure those are supported upstream.

EDIT: If anyone is interesting in purchasing this board + CPUs, they seem to go for quite cheap at eBay.

tlaurion commented 5 years ago

@bluecmd : what would be needed to port to this board from knowledgeable people? HW?

bluecmd commented 5 years ago

HW ideally, an emulator like qemu would also be acceptable.

tlaurion commented 5 years ago

@bluecmd

I would say that the next step is to look at how the QEMU and Kernel situation is in terms of this particular SoC and then make sure those are supported upstream.

Please point me to a minimal starting point and i'll try to test this myself!

bluecmd commented 5 years ago

Sure, I'd love to help. Are you thinking of pursuing hardware or emulation?

In either case, compiling and getting a modern Linux kernel to boot on the BMC SoC is a good first task. If you managed to do that everything else is just hooking it up to the build system.

One good first step might be to build an u-boot image and burn it to the BMC and make sure you have access to a bootloader for debugging. u-bmc is not using u-boot by itself, but getting u-boot up is a standard thing for these types of SoCs so that should be a good start.

bluecmd commented 5 years ago

Coreboot seems to have ast2050 support as well, so might be a good lead: https://github.com/coreboot/coreboot/tree/master/src/drivers/aspeed/ast2050

tlaurion commented 5 years ago

Sure, I'd love to help. Are you thinking of pursuing hardware or emulation?

@bluecmd hardware for sure!

Sent from my Galaxy S3 using FastHub-Libre

pkubaj commented 4 years ago

The drivers for ast2050 are out-of-tree and only for 2.6.29.6. I tried to upgrade the kernel and managed to get only 2.6.30.10 (https://github.com/pkubaj/ast2050-linux-kernel/tree/linux-2.6.30.10). 2.6.31 compiles, but doesn't boot and I have no JTAG soldered, so can't check why it doesn't boot.

Newer kernels differ a lot, the driver has been completely rewritten and so would have to support for ast2050. AFAIR the oldest supported ast is ast2400.

macpijan commented 3 years ago

@pkubaj We are looking into that (how much effort would it be to bump the patches to the current mainline kernel) as part of this effort:https://github.com/osresearch/heads/issues/719

Just wanted to reach out if you have tried anything more than what you reported here.

The oldest supported ASPEED SoC is in fact AST2400 currently. What might be worth to note that it also has ARM926 (just with higher clock) so it may be not that far from AST2050 (?)

The AST2400 is 2 generations newer (marked as Gen 4, while the AST2050 is marked as Gen 2 SoC).

pkubaj commented 3 years ago

No, I abandoned this effort since I don't have JTAG on my board and have no experience whatsoever with soldering.