Computer Old Farts Forum
 help / color / mirror / Atom feed
From: Dan Cross <crossd@gmail.com>
To: segaloco <segaloco@protonmail.com>
Cc: COFF <coff@tuhs.org>
Subject: [COFF] Re: Intel ME, UEFI, User Control was Re: Question about BSD disklabel history
Date: Thu, 4 Jan 2024 16:20:44 -0500	[thread overview]
Message-ID: <CAEoi9W5ZLVnNGMNALfEE-80U+_4cafkoTSGUoPrTc5eAA9QcFw@mail.gmail.com> (raw)
In-Reply-To: <A5n2hNVuD7rdJLV2VOaE8EwoJYZeG0usvW39J1hoP5c--kLskTgu4SJxibHamShtF88Vq6bm9tXMPpJ4i52UhcrebKH-gkrHNpP31EJ8Jog=@protonmail.com>

On Thu, Jan 4, 2024 at 2:20 PM segaloco via COFF <coff@tuhs.org> wrote:
> [TUHS bcc, moved to COFF]
>
> On Thursday, January 4th, 2024 at 10:26 AM, Kevin Bowling <kevin.bowling@kev009.com> wrote:
> > For whatever reason, intel makes it difficult to impossible to remove
> > the ME in later generations.
>
> Part of me wonders if the general computing industry is starting to cheat off of the smartphone sector's homework, this phenomenon where whole critical components of a hardware device you literally own are still heavily controlled and provisioned by the vendor unless you do a whole bunch of tinkering to break through their stuff and "root" your device.  That I can fully pay for and own a "computer" and I am not granted full root control over that device is one of the key things that keeps "smart" devices besides my work issued mobile at arms length.
>
> For me this smells of the same stuff, they've gotten outside of the lane of *essential to function* design decisions and instead have now put in a "feature" that you are only guaranteed to opt out of by purchasing an entirely different product.  In other words, the only guaranteed recourse if a CPU has something like this going on is to not use that CPU, rather than as the device owner having leeway to do what you want.  Depends on the vendor really, some give more control than others, but IMO there is only one level of control you give to someone who has bought and paid for a complete device: unlimited.  Anything else suggests they do not own the device, it is a permanently leased product that just stops requiring payments after a while, but if I don't get the keys, I don't consider myself to own it, I'm just borrowing it, kinda like how the Bell System used to own your telephone no matter how many decades it had been sitting on your desk.
>
> My two cents, much of this can also be said of BIOS, UEFI, anything else that gets between you and the CPUs reset vector.  Is it a nice option to have some vendor provided blob to do your DRAM training, possibly transition out of real mode, enumerate devices, whatever.  Absolutely, but it's nice as an *option* that can be turned off should I want to study and commit to doing those things myself.  I fear we are approaching an age where the only way you get reset vector is by breadboarding your own thing.  I get wanting to protect users from say bricking the most basic firmware on a board, but if I want to risk that, I should be completely free to do so on a device I've fully paid for.  For me the key point of contention is choice and consent.  I'm fine having this as a selectable option.  I'm not fine with it becoming an endemic "requirement."  Are we there yet?  Can't say, I don't run anything serious on x86-family stuff, not that ARM and RISC-V don't also have weird stuff like this going on.  SBI and all that are their own wonderful kettle of fish.

We've been there for a while.

I've been swimming in these waters for a couple of years now, and it
_is_ an issue. That said, I can kind of sympathize with the vendors to
an extent; they're between a rock and a hard place in a lot of ways.

Starting up a modern CPU (even one in an end-user device like a phone
or a laptop) is, I imagine, a bit like starting the engines on a
container ship. You don't just press a switch and have massive
two-story diesel pistons start firing in enormous cylinders; instead,
you push a switch which starts an electric motor which turns on
something like a V8 engine, which starts up a larger engine that
starts the process of compressing the big pistons so the thing can
start; it's a slow, multi-stage process out of physical necessity.

Modern CPUs follow a similar process: you apply power to a board and
it's going to do all sorts of stuff like power sequencing for DIMM
sockets, asking them what's there, whether they're working properly,
etc. Then there's turning on thermal sensors, the IO bus, flash, etc.
A slew of internal diagnostics are going to run across a number of
components. And all of this is happening before you even begin
bringing the CPU socket online, let alone allowing the CPUs to come
out of reset. And most of this is going to be done with FPGAs or
little rinky-dink microcontrollers embedded in various places (an
interesting exercise might be trying to count the number of CPUs on a
modern mainboard): and that's not even counting the CPUs on IO
devices. Most of those aren't just hidden, they're invisible to anyone
other than the device manufacturer. Even if I had the documentation
and the means to replace the images in those disparate components,
it'd be a daunting task from a time/reward perspective. Most of the
time, it's just not possible.

How did we get here? Well, in part because systems are a lot more
complex now than they were in the past, and that has reflected itself
back onto software. The reality is that, for most users, even those
who care about what software they run, most of this stuff just isn't
that _interesting_. We care what runs on the x86 CPU (or whatever)
sure, but how many people even _know_ about the little CPU embedded in
their USB flash stick? So there's little incentive for the software
vendors to put a lot of effort into supporting this stuff, and so it
falls on board vendors, who just do what they've got to do to ship a
product.

I've mentioned the Oxide architecture before: we have no UEFI and we
have no BIOS. We also designed our own custom boards.
At Oxide, we build a service processor board based on an ARM Cortex-M
profile microcontroller that runs its own OS that we built in-house
most of the pre-CPU-poweron tasks. And yet, there are still some
things that we can't get away from (firmware on peripherals, and the
aforementioned PSP). The PSP is an interesting case in point; even if
we _wanted_ to bypass it entirely, we can't; it's built into the CPU
SoC complex and it's just how the thing works. And we build the
computers! Imagine the situation for a user of a commodity COTS
system.

> BTW sorry that's pretty rambly, the lack of intimate user control over especially smart devices these days is one of the pillars of my gripes with modern tech.  Only time will tell how this plays out.  Unfortunately the general public just isn't educated enough (by design, not their own fault) on their rights to really get a big push on a societal scale to change this.  People just want I push button I get Netflix, they'll happily throw all their rights in the garbage over bread and circuses....but that ain't new...

I think most people just want a computer (or phone, tablet, whatever)
at all and the entire system has congealed (again, to use Roscoe's
term) around the way that things are now. Even for those of us who
don't like it, it's damned hard to change the status quo.

        - Dan C.

  reply	other threads:[~2024-01-04 21:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 19:10 segaloco via COFF
2024-01-04 21:20 ` Dan Cross [this message]
2024-01-04 22:14 ` [COFF] Re: [TUHS] " Nevin Liber
2024-01-05  2:03   ` segaloco via COFF
2024-01-05  2:35   ` Dan Cross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEoi9W5ZLVnNGMNALfEE-80U+_4cafkoTSGUoPrTc5eAA9QcFw@mail.gmail.com \
    --to=crossd@gmail.com \
    --cc=coff@tuhs.org \
    --cc=segaloco@protonmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).