> And a lot of these parts either don’t have crypto acceleration or security-by-obscurity lock up the docs to the crypto accelerator, which is an absolute dealbreaker for me.
I have to wonder if locking up the docs is some kind of export control or government contract requirement.
Despite STM32 in the product name, this is a dual core Cortex-A35 SOC intended to run Linux, though he brings it up as bare metal. The STM32MP257F-EV1 dev board that he used costs $425 at Digikey. His thing is interfacing it to FPGA's. So this seems to be a hardware person's product. Most of us can probably use simpler stuff. The Pocketbeagle 2 looks interesting to me.
STM32MP257 application processors (STM32 MPUs) are based on a dual Arm® Cortex®-A35 cores running at up to 1.5 GHz and Cortex®-M33 cores running at 400 MHz.
Why do they put a full-desktop-capable A35 processor in the sme product line as the M0 microcontrollers? I presume they're trying to milk value out of the name recognition but they're just diluting the name.
The idea is to move realtime-ish stuff to a popular processor many people have worked with and moving the Linux stuff over to an appropriate platform.
When it came out we used STM32MP257 to demo a quadrature encoder debugger/logger (for internal use, not a product) since the IO supports easy interfacing of encoders. The micro's peripherals (SPI, I2C, GPIO etc.) are easy to program at the register level and you can run a simple mainloop+interrupts thing on the micro, then run Linux for your UI, networking, etc.
The fact that there's not much activity around these kinds of platforms (CPU+micro or CPU+FPGA) suggests it's too hard to combine the two in a way that makes sense for enough people, easier to just use standard components and have them side-by-side on the PCB.
It is nice to have them on the same die, though, for people like myself who like to work on both ends but don't know how to make their own PCBs.
The truth is that those are just niche items. Having a need for both a Linux-grade CPU and a real time MCU-like core is not that common. It tends to show up in projects too advanced for most to attempt.
Virtually all big computers (mainframes, workstations, rackmount servers, PCs, laptops, tablets, cellphones, and e-readers) use this architecture: the Linux-grade CPU doesn't directly drive things like the USB port, the HDMI signal, the SSD's flash translation layer, or the hard disk head movements. Instead, real-time MCU-like cores do it.
The only difference is that a lot of them are on separate chips.
Probably programming a computer is too advanced for most to attempt, so that doesn't seem like a legitimate criticism.
It’s common for embedded systems to have some powerful cores running Linux and some microcontroller cores running real time code.
The fusion of the two is very valuable if you have applications that require real time work.
> I presume they're trying to milk value out of the name recognition but they're just diluting the name.
No, absolutely not. This is a very valuable structure for embedded work and it’s very common. I don’t know why you’d jump to such a cynical conclusion.
Interrupts trash high end cores throughput and they have high latency and non deterministic execution times. Smaller cores like an Cortex-M series handle interrupts quickly and deterministically. And they are very power efficient.
That was a gut feel of mine 30 years ago. And it wasn't as bad then.
Newer gut feel but I remember a processor designer saying the same thing a few years ago. Modern systems the processor very often is doing basically jack all nothing 95% of the time. They aren't very power efficient in that mode. Where Cortex-M processors are.
A soft poke. An Arm Cortex-M4 is as powerful as an 486 of yore that was what people were running windows 3.1 on and playing DOOM.
The processor by Texas Instruments used in the Beaglebone boards had a main CPU plus two small cores inside the die. Unfortunately those two smaller cores didn't get their own compiler until the Beaglebone was many years old and easier to use, more open source products ate TI's lunch in that domain. (Although TI has never been concerned with the hobbyist domain).
But once TI provided that compiler it was easier for people to have the two smaller cores handle peripherals in real time, while the main processor was busy. Those kinds of heterogenous chips are super interesting if you're into bare metal programming.
Calling Cortex-A35 "full-desktop-capable" is quite a stretch.
Even if it supports the 64-bit ARM ISA, it is a very small and slow core, much slower than even the little Cortex-A53 and Cortex-A55 cores, which were used in the early Raspberry Pi versions.
As mentioned in TFA, at the same clock frequency Cortex-A35 is much slower than the fastest microcontroller cores, i.e. Cortex-M85 and Cortex-M7.
The only advantage of Cortex-A35 is that it has a deeper pipeline, which increases the latency of many things, like interrupt handling, but it allows a higher clock frequency, thus a greater throughput.
Having a MMU, it is suitable for Linux, but using it for a desktop would be ridiculous, as even the slowest Atom CPU from 17 years ago was much faster.
I doubt that. Android has advantages only for consumer devices.
Anything with Cortex-A35/Cortex-A32/Cortex-A34 may be useful only for some embedded devices which run Linux. They are much slower than even the chips with Cortex-A53 that were used in the cheapest smartphones from more than a decade ago.
In fact anything with Cortex-A35/Cortex-A32/Cortex-A34 is too slow to be useful for anything, because much faster chips with Cortex-A55 are available at much lower prices from vendors like Rockchip and several others. Even some much better SBCs with Intel Atom CPUs are available for a price 4 times lower.
A board with Cortex-A55, PCIe, USB 3 and with everything else that the author of the TFA desired can be bought for a 10 times lower price than that ST development system.
I am using a lot of ST development boards, but they are various versions of the cheap Nucleo boards, which have an excellent price/performance ratio.
Their more expensive boards and more expensive microcontrollers that can run Linux are not competitive in price and features with the boards using cheaper N-series Intel CPUs or with the boards using various Cortex-A55, Cortex-A520, Cortex-A76, Cortex-A78 or Cortex-A720 that are available from Chinese vendors.
I'm so glad we are finally seeing small cores, something to threaten the Cortex A7, which harkens back to 2011!!
But also: Cortex A35 is from 2015! And it's still just a trickle of these small application processor cores. Having a MMU enables so much more. Look at what Baochip and Xous are doing, with small cores but with MMU, for radically better interesting OS / systems architectures.
It just feels so cursed, is so beyond my surprise here well past half way through 202X that so many cores from early 201X are still not just alive but utterly dominant. Something has gone super super super wrong in the House of ARM!
The pipeline from new ARM cores to shipping silicon is surprisingly long. Cortex-M85 was announced in 2022, and there's still almost nothing on the market that implements it.
I don't think it's merely long pipeline. Simpler explanation is that there is just not much demand for these middle-class cores; A55 cores are from same generation and started appearing in socs pretty quickly. I suspect that the benefits of A3x (compared to A5x) just werent there for vendors to justify adding them to their portfolios
As I have already mentioned in another comment, Cortex-A35 is not the replacement for Cortex-A7, but for the smaller and slower Cortex-A5. Because of that, Cortex-A35 is slower at the same clock frequency than Cortex-A7.
The successor of Cortex-A7 was Cortex-A53, which was followed by Cortex-A55, then by Cortex-A510, and so on, until the current Arm C1-Nano.
The line of Cortex-A5 and Cortex-A35, which includes Cortex-A32 and Cortex-A34, can be considered dead, because using so slow CPUs instead of the best Cortex-M or Cortex-R cores (like Cortex-M85 and Cortex-R82) does not make sense.
27 comments
[ 2.2 ms ] story [ 23.6 ms ] threadI have to wonder if locking up the docs is some kind of export control or government contract requirement.
> The Pocketbeagle 2 looks interesting to me.
If only it had 2GB+ RAM. Since it has 4 cores, even more RAM would be better.
And 1Gbit Ethernet is what I'm missing.
Most would start with the significantly cheaper Discovery Kit version.
With ST, the developer kit is usually only needed if you need every pin and function exposed because you’re developing your own board.
When it came out we used STM32MP257 to demo a quadrature encoder debugger/logger (for internal use, not a product) since the IO supports easy interfacing of encoders. The micro's peripherals (SPI, I2C, GPIO etc.) are easy to program at the register level and you can run a simple mainloop+interrupts thing on the micro, then run Linux for your UI, networking, etc.
The fact that there's not much activity around these kinds of platforms (CPU+micro or CPU+FPGA) suggests it's too hard to combine the two in a way that makes sense for enough people, easier to just use standard components and have them side-by-side on the PCB.
It is nice to have them on the same die, though, for people like myself who like to work on both ends but don't know how to make their own PCBs.
Engineers actually use these in real products and embedded systems.
The combination of Linux and microcontrollers isn’t new. It’s a very valuable and common structure.
The comments here trying to dismiss it or call it uncommon are bizarre.
The only difference is that a lot of them are on separate chips.
Probably programming a computer is too advanced for most to attempt, so that doesn't seem like a legitimate criticism.
Must be an embedded thing.
The fusion of the two is very valuable if you have applications that require real time work.
> I presume they're trying to milk value out of the name recognition but they're just diluting the name.
No, absolutely not. This is a very valuable structure for embedded work and it’s very common. I don’t know why you’d jump to such a cynical conclusion.
That was a gut feel of mine 30 years ago. And it wasn't as bad then.
Newer gut feel but I remember a processor designer saying the same thing a few years ago. Modern systems the processor very often is doing basically jack all nothing 95% of the time. They aren't very power efficient in that mode. Where Cortex-M processors are.
A soft poke. An Arm Cortex-M4 is as powerful as an 486 of yore that was what people were running windows 3.1 on and playing DOOM.
You keep the linux on the beafy cheip, and hand over the real-time stuff to the M0.
But once TI provided that compiler it was easier for people to have the two smaller cores handle peripherals in real time, while the main processor was busy. Those kinds of heterogenous chips are super interesting if you're into bare metal programming.
Even if it supports the 64-bit ARM ISA, it is a very small and slow core, much slower than even the little Cortex-A53 and Cortex-A55 cores, which were used in the early Raspberry Pi versions.
As mentioned in TFA, at the same clock frequency Cortex-A35 is much slower than the fastest microcontroller cores, i.e. Cortex-M85 and Cortex-M7.
The only advantage of Cortex-A35 is that it has a deeper pipeline, which increases the latency of many things, like interrupt handling, but it allows a higher clock frequency, thus a greater throughput.
Having a MMU, it is suitable for Linux, but using it for a desktop would be ridiculous, as even the slowest Atom CPU from 17 years ago was much faster.
Anything with Cortex-A35/Cortex-A32/Cortex-A34 may be useful only for some embedded devices which run Linux. They are much slower than even the chips with Cortex-A53 that were used in the cheapest smartphones from more than a decade ago.
In fact anything with Cortex-A35/Cortex-A32/Cortex-A34 is too slow to be useful for anything, because much faster chips with Cortex-A55 are available at much lower prices from vendors like Rockchip and several others. Even some much better SBCs with Intel Atom CPUs are available for a price 4 times lower.
A board with Cortex-A55, PCIe, USB 3 and with everything else that the author of the TFA desired can be bought for a 10 times lower price than that ST development system.
I am using a lot of ST development boards, but they are various versions of the cheap Nucleo boards, which have an excellent price/performance ratio.
Their more expensive boards and more expensive microcontrollers that can run Linux are not competitive in price and features with the boards using cheaper N-series Intel CPUs or with the boards using various Cortex-A55, Cortex-A520, Cortex-A76, Cortex-A78 or Cortex-A720 that are available from Chinese vendors.
But also: Cortex A35 is from 2015! And it's still just a trickle of these small application processor cores. Having a MMU enables so much more. Look at what Baochip and Xous are doing, with small cores but with MMU, for radically better interesting OS / systems architectures.
It just feels so cursed, is so beyond my surprise here well past half way through 202X that so many cores from early 201X are still not just alive but utterly dominant. Something has gone super super super wrong in the House of ARM!
The pipeline from new ARM cores to shipping silicon is surprisingly long. Cortex-M85 was announced in 2022, and there's still almost nothing on the market that implements it.
So if you are willing to pay a high price, which might not be worthwhile, it is not difficult to find MCUs or development systems with Cortex-M85.
The successor of Cortex-A7 was Cortex-A53, which was followed by Cortex-A55, then by Cortex-A510, and so on, until the current Arm C1-Nano.
The line of Cortex-A5 and Cortex-A35, which includes Cortex-A32 and Cortex-A34, can be considered dead, because using so slow CPUs instead of the best Cortex-M or Cortex-R cores (like Cortex-M85 and Cortex-R82) does not make sense.