mbox series

[0/2] ARM: Expose Raspberry Pi revision code in /proc/cpuinfo

Message ID 20240708-raspi-revision-v1-0-66e7e403e0b5@gmx.net (mailing list archive)
Headers show
Series ARM: Expose Raspberry Pi revision code in /proc/cpuinfo | expand

Message

J. Neuschäfer July 7, 2024, 11:08 p.m. UTC
Raspberry Pi boards have a "revision code", documented here:

  https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#new-style-revision-codes

This patch copies what the downstream kernel does and reads it from the
devicetree property /system/linux,revision. This enables some software
to work as intended on mainline kernels:

  https://github.com/hzeller/rpi-rgb-led-matrix/blob/a3eea997a9254b83ab2de97ae80d83588f696387/lib/gpio.cc#L247

Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
---
Jonathan Neuschäfer (2):
      dt-bindings: arm: bcm2835: Specify /system/linux,revision property
      ARM: bcm2835: Detect system revision

 Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml | 12 ++++++++++++
 arch/arm/mach-bcm/board_bcm2835.c                      | 11 +++++++++++
 2 files changed, 23 insertions(+)
---
base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
change-id: 20240707-raspi-revision-84dffdfaebce

Best regards,
--
Jonathan Neuschäfer <j.neuschaefer@gmx.net>

Comments

Stefan Wahren July 8, 2024, 4:14 p.m. UTC | #1
Hi Jonathan,

Am 08.07.24 um 01:08 schrieb Jonathan Neuschäfer:
> Raspberry Pi boards have a "revision code", documented here:
>
>    https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#new-style-revision-codes
AFAIK these revision codes mostly refer to the board and not to the CPU.
The abuse of /proc/cpuinfo has been rejected in the past and from my
understanding this applies also in this case.
> This patch copies what the downstream kernel does and reads it from the
> devicetree property /system/linux,revision. This enables some software
> to work as intended on mainline kernels:
>
>    https://github.com/hzeller/rpi-rgb-led-matrix/blob/a3eea997a9254b83ab2de97ae80d83588f696387/lib/gpio.cc#L247
This is a bad example because the application doesn't really care about
the kernel and directly access the hardware registers via /dev/mem. A
proper application would use the dedicated userspace API (GPIO Character
Device or PWM). I would bet that the application does not work with the
Raspberry Pi 5.

Regards
>
> Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
> ---
> Jonathan Neuschäfer (2):
>        dt-bindings: arm: bcm2835: Specify /system/linux,revision property
>        ARM: bcm2835: Detect system revision
>
>   Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml | 12 ++++++++++++
>   arch/arm/mach-bcm/board_bcm2835.c                      | 11 +++++++++++
>   2 files changed, 23 insertions(+)
> ---
> base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
> change-id: 20240707-raspi-revision-84dffdfaebce
>
> Best regards,
> --
> Jonathan Neuschäfer <j.neuschaefer@gmx.net>
>
J. Neuschäfer July 9, 2024, 7:56 p.m. UTC | #2
On Mon, Jul 08, 2024 at 06:14:01PM +0200, Stefan Wahren wrote:
> Hi Jonathan,
>
> Am 08.07.24 um 01:08 schrieb Jonathan Neuschäfer:
> > Raspberry Pi boards have a "revision code", documented here:
> >
> >    https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#new-style-revision-codes
> AFAIK these revision codes mostly refer to the board and not to the CPU.

True.

> The abuse of /proc/cpuinfo has been rejected in the past and from my
> understanding this applies also in this case.

Alright

> > This patch copies what the downstream kernel does and reads it from the
> > devicetree property /system/linux,revision. This enables some software
> > to work as intended on mainline kernels:
> >
> >    https://github.com/hzeller/rpi-rgb-led-matrix/blob/a3eea997a9254b83ab2de97ae80d83588f696387/lib/gpio.cc#L247
> This is a bad example because the application doesn't really care about
> the kernel and directly access the hardware registers via /dev/mem. A
> proper application would use the dedicated userspace API (GPIO Character
> Device or PWM).

Right

> I would bet that the application does not work with the Raspberry Pi 5.

Probably, yeah.


Jonathan