hey wanna see somethng cursed

one part of this NIC is downloading UEFI boot options from another part of this NIC over HTTP. (well, failing to do it for some reason)

you're welcome

before it does this, the SoC (soldered to the card) asks the BMC (soldered to the same card) to give it an IP address over DHCP (so that it can load/store UEFI variables)

whoever did this was a proper crackhead.

@whitequark when all you have is a network engineer, everything is a network, or something
@gsuberland i think it's the HTTP bit that upsets me the most. just maximally inefficient way to transfer UEFI boot options. request them serially one by one (probably opening a new TCP connection for each—I didn't tcpdump it though)
@gsuberland do you think there's any funny headers involved
@gsuberland (galaxy brain moment) hey! i could put the UEFI boot options... into git-pages
@whitequark oh no. oh no that implies multiple fucking processors
@freya yes it has two linuxes on it
@whitequark why. what. what. what
@freya second is AST2600
@whitequark what the fuuuuck, that's a wholeass BMC
@freya yup
@whitequark that is a cursed object and I hate it
@freya with 1 GB of RAM (256 MB of it is full of some crap)
@whitequark yeah that's basically a full BMC like on a supermicro
@whitequark @freya would not be surprised if that was (reserved for) the (host's) video framebuffer
@vmp_ @whitequark yep, you would be exactly correct, the AST2600 is configured to prevent to be a Matrox MGA-G200 VGA chipset

@freya @vmp_ what

no that's not the case at all. what the hell are you talking about

@whitequark @vmp_ the Aspeed AST2600 uses a hunk of ram to be a VGA chipset because it's used as a BMC in servers, right?
@freya @vmp_ first, you need barely any RAM for a Matrox framebuffer (the Matrox card you're talking about came with eight megabytes of it. today you could put that in on-die SRAM if you wanted). second, i'm talking about Linux-accessible RAM, on the Linux kernel, that I have root on
@whitequark @vmp_ nvm ok I misunderstood
@freya @vmp_ also this thing doesn't connect the AST2600 over PCIe, it has a USB link to th main SoC
@whitequark @vmp_ oh what the fuck? what is the AST2600 even doing then?
@freya @vmp_ it lets you connect to the serial console of the main SoC. you can use minicom to configure the firmware. it does something funny with escape sequences so all of that barely works
@whitequark @vmp_ oh that is so fucking..... who designed this? who designed this and why.......
@freya @vmp_ the entire thing is like this top to bottom
@whitequark @vmp_ this is like..... this is like a hardware device designed by.... I was going to say designed bny AI but no AI wouldn't be like thjis, this is a hardware devcie designed like a node.js project
@freya @vmp_ ... this is actually kinda true yeah
@freya @whitequark @vmp_ I happen to know a company working exactly like this. And they still sell shit (small scale)

@freya @vmp_ there's not enough storage to store one "bf-bundle" (installation media) on the BMC and bfb-install can only install from a file so i don't think you could reinstall the main SoC from it

maybe if you mounted it via nfs...?

@whitequark @freya (also from x86 experience) the BMC can emulate USB storage forwarded from somewhere else, e.g. from a human's web browser over websockets
@vmp_ @freya this specific BMC is not configured the way you'd see it on a SuperMicro board even though it is the same chip; you just get ssh. it's running OpenBMC firmware
@vmp_ @freya admittedly i don't fully understand how it works (i doubt anybody fully understands how it works) but this is my findings so far. the docs assume you'd install a bf-bundle from the PCIe host, and then you can use the main OS itself to upgrade via apt or yum
@whitequark @freya that would be good BMC firmware. Bad firmware would make you host ISO images on a samba server
@whitequark @freya pfft, insufficient overkill
@whitequark @freya ah well, just speculating. When it's bolted to an x86 as a PCIe endpoint, the AST2500 and AST2400 share a chunk of their DRAM with the PCIe host, as part of a VGA class device (the ones I've seen did declare themselves aspeed though
.. I've seen others declared as Matrox (Nuvoton?)). The aspeed side can then read it and implement "KVM over IP". This would be configured in aspeed's devicetree and, well, 256MB in not implausible.

@whitequark @freya @vmp_

Also, the G200 is a 3D GPU. If you just want to just draw a simple GUI once a fortnight, it's total overkill.

Although that does make me wonder what's the simplest and/or cheapest video chip manufactured today. Some kind of dumb RAMDAC where the CPU does all the work, I guess?

@argv_minus_one @freya @vmp_ this will 100% depend on your definition of "video chip"

@whitequark @freya @vmp_

A device that generates a DP/HDMI/whatever video signal by reading pixel data from a block of memory, I guess.

@argv_minus_one @freya @vmp_ how "whatever" are we talking?

@whitequark

I'm…not sure? VGA and SCART and such are fine too, I guess, but I assume those are more complex because there's DAC involved.

Must be pixel graphics, though, so vector displays and RS232 don't count.

@freya @vmp_

@argv_minus_one @freya @vmp_ you can get LCDs where you can write the framebuffer via SPI, so probably "a shift register" could be a video card :p
@argv_minus_one @freya @vmp_ there are also ones without a framebuffer (there's one on my desk that's basically SPI but you have to drive it in an exactly specific way so it refreshes at 60 Hz or something)

@whitequark

Yep, that's pretty simple.

What about actual DP/HDMI/DVI-D? What's the simplest solution there?

@freya @vmp_

@argv_minus_one @whitequark @freya @vmp_ Maybe whatever Dell uses on PowerEdge T160 – that thing couldn't smoothly fade in Server 2025 login screen on a 1280x1024 monitor.
@whitequark that is not an NIC
@freya @whitequark Who the fuck does this outside of an espionage op?
@drwho @whitequark fucking software-defined networking datacenter assholes
@freya @drwho it can also (with a different firmware) act as a PCIe root complex and directly talk to NVMe drives
@whitequark @drwho why. why is it like this. whjy is everything so software-defined I hate it
@whitequark @drwho it's a fucking NIC. it should interface networks, on a controller, in a network interfacey controllery way
@whitequark @freya What the waste heat emitting fuck?

@drwho @freya well it sort of makes sense, if you just want a NAS you might as well skip the bits between "400 Gbps NIC with a Linux on it already" and "NVMe drives"

however from talking to people who use this card it's really just... not good

@whitequark @freya

Yo dawg, I heard you like Linux.

@whitequark Thanks, I hate it.