Situation:
- The author is running macOS ARM64
- off of a USB disk
- plugged into DFU capable USB-C port
- that shouldn't be the DFU one according to docs
- attempting to run macOS updater
- (supposedly)there's nothing else connected to it
Outcomes:
- updates were failing and rolling back with cryptic errors
- errors persist despite all efforts
- -> later magically solved after changing the port
- -> the problematic port later revealed to be the DFU port
- contradictory to Apple documentation
Or at least that's how it reads to me. As for reasons, I don't know why anything that can boot from USB can't from DFU-enabled USB port, but maybe it's configured as a special non-USB debug connector while bootloader is executing.Fine, but a normal USB stick isn't a DFU capable USB *host*. DFU is a protocol for a *host* to update on a device. Unless you're trying to update the firmware of the USB stick the direction is wrong.
At most the DFU capable USB port on the Mac doesn't support booting of USB mass storage devices for some stupid reason.
The source the author is referring to, Michael Tsai, indeed found that he had plugged his external disk into the DFU port. The author then (reasonably, but IMHO erroneously) deduced that his problem, also solved by changing ports, must thus have had the same cause. I say it may be confounding factors, and the only way to validate the wrong DFU port hypothesis is putting their mac in DFU mode and then running Recovery Assistant (from another machine) against it, on various ports.
Tangentially, it is infuriating that Apple would swap what the DFU port is across generations, as if it wasn't confusing enough.
Also...
> As for reasons, I don't know why anything that can boot from USB can't from DFU-enabled USB port, but maybe it's configured as a special non-USB debug connector while bootloader is executing.
My guess is it's because DFU requires the port to be in Device mode, whereas booting from a external disk requires the port to be in Host mode. Apple care about boot time, so perhaps they don't want to waste time in the boot process to check the port in Device mode for a few secs, then switch to Host mode to try external disk booting.