Group: Hardware/Computers/BMC/Talos II

From LibrePlanet
Jump to: navigation, search
(Specifications: Add RAM)
(Rework article structure to add more pointers to fix the issue)
Line 6: Line 6:
  
 
The main issue is that while all the hardware works with free software, there is no FSDG compliant distribution for the BMC.
 
The main issue is that while all the hardware works with free software, there is no FSDG compliant distribution for the BMC.
 
There might be a way to fix that either by adding support for the BMC in small distributions like LibreCMC or ProteanOS or by writing a small firmware that just boot the main computer without exposing any BMC features.
 
 
There is also [https://gitlab.raptorengineering.com/kestrel-collaboration/kestrel-litex/litex-boards/-/blob/master/README.md some documentation] about using the FPGA as BMC. This also explains exactly how to deactivate the BMC once booted. So it might be possible to do very basic initialization in one way or another and just deactivate it when done.
 
  
 
== Specifications ==
 
== Specifications ==
Line 39: Line 35:
 
| ? Can usually be deduced from firmware updates.
 
| ? Can usually be deduced from firmware updates.
 
|}
 
|}
 +
 +
== Possible solutions ==
 +
 +
There are several approaches for fixing this issue:
 +
* Support for ARMv6, the Talos II BMC, and the necessary software to boot the host could be added to LibreCMC or ProteanOS.
 +
* Another way to fix it could be to make the most minimal software to boot the host without exposing any of the BMC features.
 +
 +
There is some documentation about other implementations than OpenBMC that might turn really useful for any of these approaches:
 +
* There is [https://gitlab.raptorengineering.com/kestrel-collaboration/kestrel-litex/litex-boards/-/blob/master/README.md some documentation] about using the FPGA as BMC. This also explains exactly how to deactivate the BMC once booted. So it might be possible to do very basic initialization in one way or another and just deactivate it when done.
 +
* https://wiki.raptorcs.com/wiki/BangBMC
  
 
== References ==
 
== References ==
 
<references/>
 
<references/>

Revision as of 15:58, 30 April 2023

Introduction

This page will have information about the BMC used in the Talos II (and maybe the Talos II Lite as well).

Issue

The main issue is that while all the hardware works with free software, there is no FSDG compliant distribution for the BMC.

Specifications

Comments
System on a chip Aspeed AST2500 BMC
CPU ARMv6.[1] We have no FSDG distributions officially supporting ARMv6, though:
  • LibreCMC supports only ARMv7 (cortex A9[2]). So it might be necessary to look if OpenWRT has armv6 support, and to add the BMC to LibreCMC.
  • Guix has an ARMv6 toolchain (to build some free Raspberry Pi bootloaders), though due to the lack of GNU/Linux ARMv6 support (adding it would be time consuming) and minimum rootfs size (in the order of GiB), it could probably only be used to build a minimal firmware or kernel+initramfs.
RAM 512 MiB [3] 512 MiB is more than enough for small distributions or even Parabola. Guix needs 2GiB though (for guix pull -M 1 -c 1).
Storage ? Can usually be deduced from firmware updates.

Possible solutions

There are several approaches for fixing this issue:

  • Support for ARMv6, the Talos II BMC, and the necessary software to boot the host could be added to LibreCMC or ProteanOS.
  • Another way to fix it could be to make the most minimal software to boot the host without exposing any of the BMC features.

There is some documentation about other implementations than OpenBMC that might turn really useful for any of these approaches:

References

  1. According to the vendor Talos_II wiki page, the Talos II has an "AST2500 BMC with OpenBMC". That then links to their AST2500 wiki page that the AST2500 "Incorporates an ARM11 main CPU, as well as a ColdFire coprocessor.". And according to Wikipedia, ARM11 CPUs implements the ARMv6 architecture.
  2. https://librecmc.org/librecmc/downloads/snapshots/v1.5.10/targets/mvebu/cortexa9/
  3. aspeed-bmc-opp-talos.dts has the following: memory@80000000 { reg = <0x80000000 0x20000000>; }; 0x20000000 is 512 MiB (512 x 1024 x 1024 == 0x20000000).