Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 914504 - dev-libs/bcm2835-1.73 version bump
Summary: dev-libs/bcm2835-1.73 version bump
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Chí-Thanh Christopher Nguyễn
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-21 21:49 UTC by John L. Poole
Modified: 2023-09-22 00:48 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
dev-libs/bcm2835-1.73 ebuild (bcm2835-1.73.ebuild,634 bytes, text/plain)
2023-09-21 21:49 UTC, John L. Poole
Details

Note You need to log in before you can comment on or make changes to this bug.
Description John L. Poole 2023-09-21 21:49:46 UTC
Created attachment 871090 [details]
dev-libs/bcm2835-1.73 ebuild

I copied dev-libs/bcm2835-1.71 to my local repository and changed the numbers and successfully installed on my Raspberry Pi 4B.

bcm-1.73 is the latest version specified by the developer on his page at: https://www.airspayce.com/mikem/bcm2835/index.html.  There are no dates associated with the release at the bottom of the page.

Important Caveat for users of Raspberry Pi 4B and Zero 2 W:

Note: The documentation at https://www.raspberrypi.com/documentation/computers/processors.html states:

     The BCM2835 is the Broadcom chip used in the Raspberry Pi 1 Models A, A+, B, B+, the Raspberry Pi Zero, the Raspberry Pi Zero W, and the Raspberry Pi Compute Module 1.

But, see: https://www.raspberrypi.com/documentation/computers/processors.html#bcm2711
 
     This [BCM2711] is the Broadcom chip used in the Raspberry Pi 4 Model B,

I successfully installed this on a disk running the GenPi64 Project's Gentoo Linux and emerge and installed while the disk was in a Raspberry Pi 4B.  I switch the SD card to the Raspberry Pi Zero 2 W which has the same ARM architecture. I've done some experiments mostly on the Rpi4B with the GPIO and have not found any problems.  Nonetheless, it looks like the Broadcom chip is not the same, nor even the BCM2835.

From Wikipedia as of 9/21/2023:

Zero 2 has:
    Instruction set: ARMv8-A (64/32-bit) 
    Processor: 4× Cortex-A53 1 GHz 
    Broadcom BCM2710A1 
Pi 4B has:
    Instruction set: ARMv8-A (64/32-bit) 
    Processor: 4× Cortex-A72 1.5 GHz or 1.8 GHz[23]
    Broadcom BCM2711

Further consideration as to the anomalies above should be made if deployment is going to be on Rpi4B and/or Pi Zero 2W.  I've been interchange the SD card between the two: in the Rpi4B I get the speed and 8 GB of RAM to build packages, then in the Pi Zero 2 W I run the applications which are not demand... just logging field data.
Comment 1 John L. Poole 2023-09-21 21:58:16 UTC
After posting the above, I did some further reading and... yes, there are different chips used.  The extent of which they vary does not seem documented, or much supported.  Further reference should be made to:

 http://groups.google.com/group/bcm2835


From some snippets I read, there are some different behaviors, so careful consideration as to what feature of the Broadcom chip you want to use and testing should be made if you're going to rely on the bcm2835 library to support GPIO activities on either the Rpi4B or Pi Zero 2 W.
Comment 2 John L. Poole 2023-09-21 23:30:30 UTC
I looked into this matter further and posted to the bcm2835 Google group.  I'll share here my findings which suggest that for the most part, this driver should suffice.

On a more careful reading of https://www.raspberrypi.com/documentation/computers/processors.html, BCM 2835 "is identical to" BCM 2836 which is "is identical to" BCM2837.  Then the Rpi4B's BCM2711 is "considerable upgrade", but nothing seems to negate prior features, just has faster and more features.  The RP3A0's BCM2710A1 is the silicon die packaged inside the Broadcom BCM2837, and then there is the "Please refer to the following BCM2836 document for details on the ARM peripherals specification, which also applies to the BCM2837 and RP3A0" which suggests no major changes.  Though, as I surveyed some of the postings in this list, it looks like there might be some differences, so a careful survey after I determine what services I'll end up using is warranted.

Notes:

1) BCM2835
    Raspberry Pi 1 Models A, A+, B, B+, the Raspberry Pi Zero, the Raspberry Pi Zero W

2) BCM2836    
    The underlying architecture in BCM2836 is identical to BCM2835. The only significant difference is the removal of the ARM1176JZF-S processor and replacement with a quad-core Cortex-A7 cluster.
    

3) BCM2837
    Raspberry Pi 3 Model B, later models of the Raspberry Pi 2 Model B, and the Raspberry Pi Compute Module 3. The underlying architecture of the BCM2837 is identical to the BCM2836. The only significant difference is the replacement of the ARMv7 quad core cluster with a quad-core ARM Cortex A53 (ARMv8) cluster.
    
...
5) BCM2711
    Raspberry Pi 4 Model B, the Raspberry Pi 400, and the Raspberry Pi Compute Module 4.   BCM2711 is a considerable upgrade on that used by the SoCs in earlier Raspberry Pi models. It continues the quad-core CPU design of the BCM2837, but uses the more powerful ARM A72 core. It has a greatly improved GPU feature set with much faster input/output, due to the incorporation of a PCIe link that connects the USB 2 and USB 3 ports, and a natively attached Ethernet controller. It is also capable of addressing more memory than the SoCs used before.
    
6) RP3A0
    The Raspberry Pi RP3A0 is our first System-in-Package (SiP) consisting of a Broadcom BCM2710A1 — which is the silicon die packaged inside the Broadcom BCM2837 chip which is used on the Raspberry Pi 3 — along with 512MB of DRAM.

    It is used by the Raspberry Pi Zero 2 W.
    
    Please refer to the following BCM2836 document for details on the ARM peripherals specification, which also applies to the BCM2837 and RP3A0.