[PATCH 00/44] Raspberry Pi 4B machine

2023-10-09 Thread Ben Dooks

Hi, is there an git tree with this series or a newer one available
please?

--
Ben Dooks   http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius

https://www.codethink.co.uk/privacy.html



Re: [PATCH 00/44] Raspberry Pi 4B machine

2023-08-04 Thread Peter Maydell
On Fri, 4 Aug 2023 at 13:13, Peter Maydell  wrote:
>
> On Wed, 26 Jul 2023 at 14:56, Sergey Kambalin  wrote:
> >
> > Introducing Raspberry Pi 4B model.
> > It contains new BCM2838 SoC, PCIE subsystem,
> > RNG200, Thermal sensor and Genet network controller.
> >
> > It can work with recent linux kernels 6.x.x.
> > Two avocado tests was added to check that.
> >
> > Unit tests has been made as read/write operations
> > via mailbox properties.
> >
> > Genet integration test is under development.
> >
> > Every single commit
> > 1) builds without errors
> > 2) passes regression tests
> > 3) passes style check*
> > *the only exception is bcm2838-mbox-property-test.c file
> > containing heavy macros usage which cause a lot of
> > false-positives of checkpatch.pl.
> >
> > I did my best to keep the commits less than 200 changes,
> > but had to make some of them a bit more in order to
> > keep their integrity.
>
> Thanks for doing this -- I really like the way the split
> has turned out, and the overall structure of the patchseries
> is good. I'm going through the patches individually
> (which will probably take me into next week to finish)
> but I'm not seeing anything major, just some smaller
> issues.

I got through the second half of the patchset faster
than I expected, so I'm now done with my first pass
review of it. Please let me know if you have any
questions about my comments/suggestions on the
individual patches.

-- PMM



Re: [PATCH 00/44] Raspberry Pi 4B machine

2023-08-04 Thread Peter Maydell
On Wed, 26 Jul 2023 at 14:56, Sergey Kambalin  wrote:
>
> Introducing Raspberry Pi 4B model.
> It contains new BCM2838 SoC, PCIE subsystem,
> RNG200, Thermal sensor and Genet network controller.
>
> It can work with recent linux kernels 6.x.x.
> Two avocado tests was added to check that.
>
> Unit tests has been made as read/write operations
> via mailbox properties.
>
> Genet integration test is under development.
>
> Every single commit
> 1) builds without errors
> 2) passes regression tests
> 3) passes style check*
> *the only exception is bcm2838-mbox-property-test.c file
> containing heavy macros usage which cause a lot of
> false-positives of checkpatch.pl.
>
> I did my best to keep the commits less than 200 changes,
> but had to make some of them a bit more in order to
> keep their integrity.

Thanks for doing this -- I really like the way the split
has turned out, and the overall structure of the patchseries
is good. I'm going through the patches individually
(which will probably take me into next week to finish)
but I'm not seeing anything major, just some smaller
issues.

-- PMM



[PATCH 00/44] Raspberry Pi 4B machine

2023-07-26 Thread Sergey Kambalin
Introducing Raspberry Pi 4B model.
It contains new BCM2838 SoC, PCIE subsystem,
RNG200, Thermal sensor and Genet network controller.

It can work with recent linux kernels 6.x.x.
Two avocado tests was added to check that.

Unit tests has been made as read/write operations
via mailbox properties.

Genet integration test is under development.

Every single commit
1) builds without errors
2) passes regression tests
3) passes style check*
*the only exception is bcm2838-mbox-property-test.c file
containing heavy macros usage which cause a lot of
false-positives of checkpatch.pl.

I did my best to keep the commits less than 200 changes,
but had to make some of them a bit more in order to
keep their integrity.

Sergey Kambalin (44):
  Split out common part of BCM283X classes
  Split out common part of peripherals
  Split out raspi machine common part
  Introduce BCM2838 SoC
  Add GIC-400 to BCM2838 SoC
  Add BCM2838 GPIO stub
  Implement BCM2838 GPIO functionality
  Connect SD controller to BCM2838 GPIO
  Add GPIO and SD to BCM2838 periph
  Add BCM2838 checkpoint support
  Introduce Raspberry PI 4 machine
  Temporary disable unimplemented rpi4b devices
  Add memory region for BCM2837 RPiVid ASB
  Add BCM2838 PCIE Root Complex
  Add BCM2838 PCIE host
  Enable BCM2838 PCIE
  Add RNG200 skeleton
  Add RNG200 RNG and RBG
  Add RNG200 timer
  Implement BCM2838 thermal sensor
  Add clock_isp stub
  Add GENET stub
  Add GENET register structs. Part 1
  Add GENET register structs. Part 2
  Add GENET register structs. Part 3
  Add GENET register structs. Part 4
  Add GENET register access macros
  Impl GENET register ops.
  Impl GENET MDIO
  Impl GENET TX path
  Impl GENET RX path
  Enable BCM2838 GENET controller
  Connect RNG200, PCIE and GENET to GIC
  Add Rpi4b boot tests
  Add mailbox test stub
  Add mailbox test constants
  Add mailbox tests tags. Part 1
  Add mailbox tests tags. Part 2
  Add mailbox tests tags. Part 3
  Add mailbox property tests. Part 1
  Add mailbox property tests. Part 2
  Add mailbox property tests. Part 3
  Add missed BCM2835 properties
  Append added properties to mailbox test

 hw/arm/bcm2835_peripherals.c | 218 ---
 hw/arm/bcm2836.c | 116 ++--
 hw/arm/bcm2838.c | 298 +
 hw/arm/bcm2838_pcie.c| 293 +
 hw/arm/bcm2838_peripherals.c | 288 +
 hw/arm/meson.build   |   8 +-
 hw/arm/raspi.c   | 128 ++--
 hw/arm/raspi4b.c | 225 +++
 hw/arm/trace-events  |   6 +
 hw/gpio/bcm2838_gpio.c   | 392 
 hw/gpio/meson.build  |   5 +-
 hw/misc/bcm2835_property.c   | 170 +
 hw/misc/bcm2838_rng200.c | 419 +
 hw/misc/bcm2838_thermal.c|  96 +++
 hw/misc/meson.build  |   2 +
 hw/misc/trace-events |  10 +
 hw/net/bcm2838_genet.c   | 756 +++
 hw/net/meson.build   |   2 +
 hw/net/trace-events  |  17 +
 include/hw/arm/bcm2835_peripherals.h |  29 +-
 include/hw/arm/bcm2836.h |  27 +-
 include/hw/arm/bcm2838.h |  28 +
 include/hw/arm/bcm2838_pcie.h|  67 ++
 include/hw/arm/bcm2838_peripherals.h |  95 +++
 include/hw/arm/raspi_platform.h  |  34 +
 include/hw/display/bcm2835_fb.h  |   2 +
 include/hw/gpio/bcm2838_gpio.h   |  45 ++
 include/hw/misc/bcm2838_rng200.h |  77 +++
 include/hw/misc/bcm2838_thermal.h|  24 +
 include/hw/misc/raspberrypi-fw-defs.h|  11 +
 include/hw/net/bcm2838_genet.h   | 732 ++
 tests/avocado/boot_linux_console.py  |  92 +++
 tests/qtest/bcm2838-mailbox.c|  70 +++
 tests/qtest/bcm2838-mailbox.h| 603 ++
 tests/qtest/bcm2838-mbox-property-test.c | 666 
 tests/qtest/meson.build  |   3 +-
 36 files changed, 5857 insertions(+), 197 deletions(-)
 create mode 100644 hw/arm/bcm2838.c
 create mode 100644 hw/arm/bcm2838_pcie.c
 create mode 100644 hw/arm/bcm2838_peripherals.c
 create mode 100644 hw/arm/raspi4b.c
 create mode 100644 hw/gpio/bcm2838_gpio.c
 create mode 100644 hw/misc/bcm2838_rng200.c
 create mode 100644 hw/misc/bcm2838_thermal.c
 create mode 100644 hw/net/bcm2838_genet.c
 create mode 100644 include/hw/arm/bcm2838.h
 create mode 100644 include/hw/arm/bcm2838_pcie.h
 create mode 100644 include/hw/arm/bcm2838_peripherals.h
 create mode 100644 include/hw/gpio/bcm2838_gpio.h
 create mode 100644 include/hw/misc/bcm2838_rng200.h
 create mode 100644 include/hw/misc/bcm2838_thermal.h
 create mode 100644 include/hw/net/bcm2838_genet.h
 create mode 100644 tests/qtest/bcm2838-mailbox.c
 create mode 100644 tests/qtest/bcm2838-mailbox.h
 create mode 100644