This is insanity. I wonder if ARM CPUs were able to start from scratch or a better place.

For one, there never was, and still isn't, any universal BIOS-like spec for how an ARM CPU should boot and which peripherals it should have.

Arm v7 was a Wild West, but with v8, Arm tried to standardize a lot. The Arm Trusted Firmware is the reference boot firmware implementation for v8+ CPUs: https://github.com/ARM-software/arm-trusted-firmware.

I'd think most of the referece documents can be discovered from that code base.

Relatedly, from the perspective of hands-on programming, the System Programmer's guide is the manual to start with: https://developer.arm.com/documentation/den0024/a/.