Raspberry Pi 4 model Bs arriving with newer 'C0' stepping

Owing to a mishap with the Pi 4 model B I use for testing—more on how Red Shirt Jeff ruined that board later this week—I had to go buy a new Pi 4 last week.

The local Micro Center only had the 8 GB model in stock, so I went a little over budget and bought it. When I arrived home, I checked the board, and noticed a bit of a difference on the Broadcom SoC:

Raspberry Pi 4 model B C0 stepping on BCM2711 SoC

Can you spot it? The model number of the BCM2711 chip on this board is 2711ZPKFSB06C0T, which is the same as the chip found on the Pi 400.

This is a newer stepping of the original Pi 4 model B chip, which has the model number 2711ZPKFSB06B0T. The difference is the third-to-last character, the C versus the B.

Apparently 8 GB models may have had that version of the chip since their introduction in 2020, if this GitHub comment by pelwell is to be believed. But according to a few others, even the 2 GB model produced in the past year have this newer C0 stepping:

I covered the B0-vs-C0 stepping in an earlier post, my Raspberry Pi 400 Teardown, but I've learned a few new things that I'll mention here.

Identifying the stepping on your Pi 4

If you want to see if you have the newer revision to the BCM2711 SoC on your Pi, there are two ways.

The easiest, if you can take a peek at the SoC on top of the board, is to look at its model number. If it reads 'B0T' at the end, it's the older model. If it's 'C0T', its the newer model (like the one in the Pi 400):

Pi 4 model B and Pi 400 BCM2711 SoC Broadcom chip number difference

If you can't see the top of the SoC (e.g. if you have it installed in a case), you can determine the revision in software.

From a comment by pelwell on GitHub, you run the command od -An -tx1 /proc/device-tree/emmc2bus/dma-ranges, and it will give you different output depending on the stepping:

# B0
[email protected]:~$ od -An -tx1 /proc/device-tree/emmc2bus/dma-ranges
 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00
 40 00 00 00

# C0
[email protected]:~$ od -An -tx1 /proc/device-tree/emmc2bus/dma-ranges
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 fc 00 00 00

What's new in the C0 stepping?

So the big question: what am I missing if I have the older B0 stepping? Fortunately, not much. A new stepping doesn't add new features like a faster processor, a better GPU, or more encoders. It represents an updated 'process', usually meaning some bugs in the silicon were fixed.

In the case of the BCM2711, it looks like the two main fixes are related to RAM addressing:

  1. The EMMC2 bus can only directly address the first 1GB.
  2. The PCIe interface can only directly address the first 3GB.

And this is probably why the chip first showed up 8 GB Pi 4 models, since it wouldn't affect the lower end models as much. And from other forum posts, it looks like there are also 'power gating improvements'.

I have seen more stable overclocks on CM4 and Pi 400 boards, and that's probably because the newer C0 chips on them are able to handle higher clock speeds with very slightly improved thermals. Though I don't know if anyone will confirm that outside of anecdotal test data. And I don't have the budget to buy hundreds of boards to confirm whether that's just luck or an actual difference in older Pi 4s.

One thing to watch out for is any software that expects the B0 stepping as a feature flag—like u-boot did until earlier this year—having weird issues on newer Pi 4 model B boards. Software that relies on that level of detail is not too common, though, and none of the things I run on my Pis has had an issue.

Comments

I didn't really need a reason to buy another Pi, but now I have one. Great read, thanks for the article.

Whatever it's worth, my 8gb pi 4 seems to run much cooler to the touch than my 4gb one. Both in the same inexpensive aluminum "armor" heat sink case, but silver finish on the newer one and anodized black on the hotter, older pi.

I have an early 8GB Pi4 and it has the B0 stepping as per the od command above.

I have two 8gb PI 4's bought from Vilros.com on 12/20 and 7/20, they both have B0 stepping.

I've had my pi 8gb pretty much as they were released, and I appear to have the C0 stepping based in the cli output. Never had issues and the thing is a workhorse.

Just checked my pi4 8GB, I got it when they first came out and it comes up with a 40 code using the dma-ranges command listed

Thanks for the great post! I wonder if the revision number changed with this new model? If anybody who has one could run `cat /proc/cpuinfo`, I would be most grateful.

Cheers

I bought an 8gb Pi4 in September 2020, and it has the B0 stepping cpu

I have a 4Gb model bought in July that has the c0 stepping.

I have a Pi 4B 8Gb that I bought in September 2021 here in Sweden, it has the B0 chip :/ But it works just fine so far (except one crash, that probably was due to VLC) :)
It may have been in stock with my supplier for a while, but considering how hard it is to get hold of a Pi here in Sweden at the moment, I doubt it was on the shelf for a year+. Is there a way to see manufacturing date on the Pi? It says 2018 on the board next to the logo, but I assume that is the design release year.

Overclocking is very good on my C0 stepping. My Pi400 is running 2.4GHz under 50°C.

_,met$$$$$gg. [email protected]400
,g$$$$$$$$$$$$$$$P. OS: Debian 10 buster
,g$$P"" """Y$$.". Kernel: aarch64 Linux 5.10.63-v8+
,$$P' `$$$. Uptime: 23h 17m
',$$P ,ggs. `$$b: Packages: 2138
`d$$' ,$P"' . $$$ Shell: bash
$$P d$' , $$P Resolution: 2560x1440
$$: $$. - ,d$$' DE: LXDE
$$\; Y$b._ _,d$P' WM: OpenBox
Y$$. `.`"Y$$$$P"' CPU: BCM2835 @ 4x 2.4GHz [38.4°C]
`$$b "-.__ GPU: V3D 4.2
`Y$$ RAM: 1620MiB / 3358MiB
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`""""

[email protected]:~ $ vcgencmd measure_clock arm
frequency(48)=2400574208

Hi,
I have an C0 version according to the command above, but after upgrading (not a fresh install) to bullseye following an article everything works fine, I still get 1500Mhz. Is there some extra thing I can do to get the default 1800Mhz?

I saw the comments (and yours) on https://www.raspberrypi.com/news/bullseye-bonus-1-8ghz-raspberry-pi-4/
So C0 doesn't mean automatic speedboost. But I just followed the advice to put arm_freq=1800 in the config.txt.
Everything is a bit more snappy (i use rpi-lite). I think the 64 bit arm_64bit=1 kernel helped with that, but maybe i'm just imagining ;-). But its stable and the average temperature went up two or three degrees (still well below 50 degrees celcius). In the Argon m1 case.
installed cpufreq it gave me these numbers on all 4 CPUs;
current CPU frequency is 1.80 GHz.
cpufreq stats: 600 MHz:1.23%, 700 MHz:1.93%, 800 MHz:1.62%, 900 MHz:0.55%, 1000 MHz:0.19%, 1.10 GHz:0.24%, 1.20 GHz:0.19%, 1.30 GHz:0.00%, 1.40 GHz:0.00%, 1.50 GHz:0.00%, 1.60 GHz:0.00%, 1.70 GHz:0.00%, 1.80 GHz:94.06% (1481)

I was shocked to see "C0T". Trusting you it is not an edit to the image.

The T is not relevant to the actual stepping number (B0 vs C0); it is most definitely present on the processor itself, I don't doctor images, only tweak exposure and fix white balance.

Adding NVMe UAS and an overclocking makes the C0 a beast. Updating a work image takes 4.5 minutes on a slow ARM SBC with eMMC and 30 seconds on a C0 with NVMe UAS

I have a 2 gb model bought at 16 april and its the new variant (but it only overclocks up to 1850 mhz)

I bought the RPi 4 8GB 4B on Nov 21 from MicroCenter as it was only 1 of 2 available in Denver.
My version is B0.

Am I at a functional defict with this chip version?
Such as stable, bugs, hangs and crashes.
What effect is the memory addressing limitations ?

How do I get my model to clock to 1.8Ghz by setup files?
I like snappier systems, lol.

Thanks for any help.

There is not a pi4 within 150 mi of me in Northern California you are blessed to have a micro center that has them!

Same in Colorado. Same in most of the U.S. right now, I believe. Which is odd, because I was under the impression / heard a news story that the Pi foundation had recently received a nice "stimulus" grant to get the assembly line moving again. Perhaps they are being held up by another supplier.