10 ms·
Ridiculous that they use a real CPU, 512Mb of RAM and Linux to just implement a simple controller. I would prefer they use something like Arduino.
by codedokode 4y ago
Ridiculous that they use a real CPU, 512Mb of RAM and Linux to just implement a simple controller. I would prefer they use something like Arduino.
- fake-name 4y agoConsidering the thing needs to have ethernet, presumably to support at least HTTP(S) and SNMP and ideally has the crunch to simulate a display device, and the bandwidth to stream at least an IP-KVM over the network, I'd love to hear how you would implement that on an arduino. In this case, It exposes a PCIe interface (really!), USB, multiple SPI/QSPI, and various I2C/Serial interfaces to the host to monitor various facets of the system. The high bandwidth interfaces aren't exactly easy to implement on any small micro. Really, basically you have either a LwIP-based implementation probably in completely new C (and all the fun security issues with that kind of codebase), or something running a whole host OS. Considering how it seems basically every time any security researcher takes a quick glance at LwIP half a dozen security issues seem to fall out, I think I'd trust linux way more then anything bespoke. What do you exactly think a BMC does?
- fake-name 4y agoLooking through the DC-SCM specs [1], this thing is nuts. - 13 (*Thirteen*) separate I2C interfaces - 4 I3C interfaces (Update to I2C, still mostly proprietary) - 2 QSPI interfaces - 2 UART Interfaces - 2 USB-2.0 interfaces - PCIe 3.0 1x interface - PCIe 5.0 4x interface - JTAG to host system - Various simple control signals (power, ok, etc..) It's pretty goddamn future proof, though there's zero chance you could support all the various interfaces on anything arduino-esque. Note: Apparently this isn't exactly news, here's[2] the antmicro press-release about this thing from 2021. Here's [3] the actual docs on the DC-SCM (including kicad schematic & PCB layout!). 1: https://www.opencompute.org/documents/ocp-dc-scm-spec-rev-1-0-pdf https://www.opencompute.org/documents/ocp-dc-scm-spec-rev-1-... 2: https://antmicro.com/blog/2021/07/dc-scm-open-hardware-for-fpga-bmc/ https://antmicro.com/blog/2021/07/dc-scm-open-hardware-for-f... 3: https://github.com/antmicro/artix-dc-scm https://github.com/antmicro/artix-dc-scm
- unwind 4y agoWow, I was not aware of I3C being a thing, thanks for digging that up and making it visible! It looks like [1] it's from 2016 but I hadn't heard of it. I spend too little time in that part of the embedded world, it seems. From my quick reading it pushes the maximum data rate up from 5 Mbps to 25 by using various tricks, pretty cool. In my more sedate embedded world, I2C tops out at 400 kbps, old-school style. :) Also, completely agreed that this board management controller is massively (over)speced, it's really very capable. Of course the flip side of that is worrying about abuse ("with great power ...").
- fake-name 4y agoI read most of the complex facilities as being to allow it to act as a display adapter (to emulate a IP-KVM) and/or a boot disk (for remote provisioning). I don't think this is the sort of thing I'd worry about being misused, it's big and complex and will get hot and way more obvious then anything you'd use for clandestine purposes.
- rbanffy 4y ago> Wow, I was not aware of I3C being a thing One of the saddest thing about fancy servers is that we, ordinary mortals, never get to lay our hands on one. I'd be OK with writing COBOL in order to use a z16 mainframe.
- rbanffy 4y ago> I'd love to hear how you would implement that on an arduino. It may be possible, but I'm absolutely sure it's not pleasing.
- ofrzeta 4y agoI don't totally get it but the fact the MicroWatt core is able to run on an FPGA board like OrangeCrab makes me think it's a quite tiny core. Also, as far as I understand, this core does not exist in silicon but is run on a board (https://www.electronics-lab.com/open-source-dc-scm-compatible-bmc-hardware-platform/ https://www.electronics-lab.com/open-source-dc-scm-compatibl...) with an Artix 7 FPGA.
- panick21_ 4y agoYeah. We are not that far away from the point where the BMC will require its own chip to handle startup. Because they require so much memory they often use DDR3 Ram and this causes issue, soon BMC will require DDR4 and starting that up is quite tricky.
- rbanffy 4y agoBMCs are a lot like the service modules you find in mainframes - it's a small computer that does the job of bringing up the big one step by step, because there are a LOT of different things that need to happen before you are sure you can bring up the very expensive silicon you bought. On mainframes, they even load microcode that's specific to a given machine configuration and the OSs each core is licensed to run. It's a bit like powering up the external hard disk before turning on your Apple /// (or Lisa)