iansjack wrote:
204 pages... kinda thing after 13 pages of BCM2711. let's see.
Quote:
1 Introduction
1.1 Overview
BCM2835 contains the following peripherals which may safely be accessed by the ARM:
• Timers
• Interrupt controller
• GPIO
• USB
• PCM / I2S
• DMA controller
• I2C master
• I2C / SPI slave
• SPI0, SPI1, SPI2
• PWM
• UART0, UART1
The purpose of this datasheet is to provide documentation for these peripherals in sufficient
detail to allow a developer to port an operating system to BCM2835.
There are a number of peripherals which are intended to be controlled by the GPU. These are
omitted from this datasheet. Accessing these peripherals from the ARM is not recommended.
LOL. that's all? UARTs and SPIs?
... Well, this is basically what I tried to say - Broadcom SoCs are NOT ARM processors. You can't even program SD card controller! I2C, SPI and UART? seriously? accessing other peripherals from the ARM "is not recommended"?
Just read the quoted lines:
Quote:
There are a number of peripherals which are intended to be controlled by the GPU. These are
omitted from this datasheet. Accessing these peripherals from the ARM is not recommended.
Were they high making this? So ethernet, wifi, blutooth, sd cards are "intended to be controlled by the GPU"? entirely? not even a chance to program them? amazing. and of course that CPU/GPU mutant isn't nearly known how to program it. except those moronic mailboxes. and of course, this all lets one very "good" example of how to create an OS on ARM and in general. That "OS" would be able to only make blinking LEDs by itself, because GPIO is accessible! tada! Honestly, I'm shocked. Basically all RPi "system" programming boils down to knocking on that VC thing and asking it to do everything - hey, read SD card please, oh, send this on ethernet... It's even cringiest, than I thought. Because I thought peripherals are accessible and controllable from ARM, just aren't documented. Nope, they aren't even accessible.
And this:
Quote:
1.2 Address map
1.2.1 Diagrammatic overview
In addition to the ARM’s MMU, BCM2835 includes a second coarse-grained MMU for
mapping ARM physical addresses onto system bus addresses. This diagram shows the main
address spaces of interest:
co
ARSE-grained - good term for this, by the way! Oh, boy. ARM physical addresses are not enough. there are additional "system bus addresses".
But it's expected - since ARM is not CPU there, it doesn't own system address space.
in sum - we still don't have info on how to program the SD controller. One of the first crucial peripherals on an SBC. No, we do have the info. And it says - we cannot program it! Yay. Good luck with that to everybody wishing to mess around with this abysmal design. Fortunately, there is plenty of real ARM computers, with the normal architectural organization. By the way, next year Rockchip will release rk3588 - octacore dual-clustered design with x4 Cortex-A76 and x4 Cortex-A55! both are the newest ARM thingies. And IIRC, it will be made with something like 7nm or 12nm node size!
awesome.