mbox series

[v5,00/12] Initial MStar/Sigmastar ARMv7 SoC support

Message ID 20200710094544.430258-1-daniel@0x0f.com
Headers show
Series Initial MStar/Sigmastar ARMv7 SoC support | expand

Message

Daniel Palmer July 10, 2020, 9:45 a.m. UTC
This patch set adds initial support for MStar/Sigmastar's
Armv7 based SoCs. There is just enough here to get to a shell
with an initramfs but support for a lot of the hardware is
in progress and will follow.

MStar also shipped chips with MIPS cores and ARM9 etc which
are incompatible so I've tried to make the distinction in the
code that this is strictly for the Armv7 based chips.

Sorry for the spamming this. I just really want to make some
progress on this because I'm worried the other bits that are
needed for these SoCs (Really old AT91 support in macb and
the fotg210 usb host) will be lost or stop working in the meantime.
This already happened in u-boot.

Differences from v4:

1. Removed the crustx board from the MStar YAML that slipped in
during rebasing. (I think that change is small enough that it
doesn't affect Rob's Review-by but feel free to tell me off..)

2. Changed the comment for the SoC series in the MStar YAML to
a description as requested by Rob Herring.

3. Added Acked-by and Reviewed-by tags from Rob Herring.

Differences from v3:
1. Fixed the issue with the mstar binding that Rob Herring's bot
found.
2. Fixed the filename for the midrived08 dts.

Differences from v2:

1. With Marc Zyngier's help the GIC node has been filled out properly.

2. A comment was added to the arch timer node to explain why the
clock-frequency is specified. Basically the vendor u-boot is old and
broken.

3. Based on Arnd Bergmann's feedback the heavy memory barrier is now
implemented using a DT node to specify where the registers are instead
of hardcoding their location. A binding description has been added for
the new node.

4. Expanded comments around the heavy memory barrier code so it's more
obvious why it looks like it does.

5. The heavy memory barrier init code was folded into the machine init
function.

6. Updated the device tree bindings and prefixes based on Andreas Färber's
feedback. They have also been split out into a number of commits

7. Based on Andreas Färber's feedback I've added the "riu" (register interface
unit) internal bus that contains all of the peripheral registers and the proper
ranges for the soc node. This bus has clocks, interrupts and some configuration
register so it might get it's own driver in the future.

8. I've dropped the pmu node for now as it's not needed to boot and I'm not
sure of the relationship between the single core in most of the chips and
the 4 documented interrupts.

9. Numerous cosmetic changes based on Andreas Färber's feedback.

Differences from v1:

1. v1 only really supported two specific chips that were known
at the time of submitting that patch series. Since then it's
become apparent that there are a few families of SoCs based
on the same ARMv7 core, clk blocks, interrupt controllers etc
and this v2 attempts to make support more generic so in the future
more SoCs from this lineage can be added. Support for some other
chips is already in progress and will follow.

2. v1 only added support for the BreadBee boards that I have been
working on. v2 also adds support for a readily available car dash
camera.

3. Support for the BreadBee board has been split into two top level
dts to cleanly support if either the msc313 or msc313e is mounted on
the board. The chips are pin compatible but some of the internal
hardware is different. The u-boot port for these SoCs can detect
which chip it is running on and select the right dts so the user
doesn't have to care which chip is mounted on their board.


Daniel Palmer (12):
  dt-bindings: vendor-prefixes: Add mstar vendor prefix
  dt-bindings: vendor-prefixes: Add sstar vendor prefix
  dt-bindings: vendor-prefixes: Add 70mai vendor prefix
  dt-bindings: vendor-prefixes: Add thingy.jp prefix
  dt-bindings: arm: Add mstar YAML schema
  ARM: mstar: Add machine for MStar/Sigmastar Armv7 SoCs
  ARM: mstar: Add binding details for mstar,l3bridge
  ARM: mstar: Add Armv7 base dtsi
  ARM: mstar: Add infinity/infinity3 family dtsis
  ARM: mstar: Add mercury5 series dtsis
  ARM: mstar: Add dts for msc313(e) based BreadBee boards
  ARM: mstar: Add dts for 70mai midrive d08

 .../devicetree/bindings/arm/mstar.yaml        | 33 ++++++++
 .../bindings/misc/mstar,l3bridge.yaml         | 44 ++++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |  8 ++
 MAINTAINERS                                   | 11 +++
 arch/arm/Kconfig                              |  2 +
 arch/arm/Makefile                             |  1 +
 arch/arm/boot/dts/Makefile                    |  4 +
 .../dts/infinity-msc313-breadbee_crust.dts    | 25 ++++++
 arch/arm/boot/dts/infinity-msc313.dtsi        | 14 ++++
 arch/arm/boot/dts/infinity.dtsi               |  7 ++
 .../boot/dts/infinity3-msc313e-breadbee.dts   | 25 ++++++
 arch/arm/boot/dts/infinity3-msc313e.dtsi      | 14 ++++
 arch/arm/boot/dts/infinity3.dtsi              |  7 ++
 .../boot/dts/mercury5-ssc8336n-midrived08.dts | 25 ++++++
 arch/arm/boot/dts/mercury5-ssc8336n.dtsi      | 14 ++++
 arch/arm/boot/dts/mercury5.dtsi               |  7 ++
 arch/arm/boot/dts/mstar-v7.dtsi               | 83 +++++++++++++++++++
 arch/arm/mach-mstar/Kconfig                   | 26 ++++++
 arch/arm/mach-mstar/Makefile                  |  1 +
 arch/arm/mach-mstar/mstarv7.c                 | 80 ++++++++++++++++++
 20 files changed, 431 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/mstar.yaml
 create mode 100644 Documentation/devicetree/bindings/misc/mstar,l3bridge.yaml
 create mode 100644 arch/arm/boot/dts/infinity-msc313-breadbee_crust.dts
 create mode 100644 arch/arm/boot/dts/infinity-msc313.dtsi
 create mode 100644 arch/arm/boot/dts/infinity.dtsi
 create mode 100644 arch/arm/boot/dts/infinity3-msc313e-breadbee.dts
 create mode 100644 arch/arm/boot/dts/infinity3-msc313e.dtsi
 create mode 100644 arch/arm/boot/dts/infinity3.dtsi
 create mode 100644 arch/arm/boot/dts/mercury5-ssc8336n-midrived08.dts
 create mode 100644 arch/arm/boot/dts/mercury5-ssc8336n.dtsi
 create mode 100644 arch/arm/boot/dts/mercury5.dtsi
 create mode 100644 arch/arm/boot/dts/mstar-v7.dtsi
 create mode 100644 arch/arm/mach-mstar/Kconfig
 create mode 100644 arch/arm/mach-mstar/Makefile
 create mode 100644 arch/arm/mach-mstar/mstarv7.c

Comments

Arnd Bergmann July 24, 2020, 2:37 p.m. UTC | #1
On Fri, Jul 10, 2020 at 11:46 AM Daniel Palmer <daniel@0x0f.com> wrote:
>
> This patch set adds initial support for MStar/Sigmastar's
> Armv7 based SoCs. There is just enough here to get to a shell
> with an initramfs but support for a lot of the hardware is
> in progress and will follow.
>
> MStar also shipped chips with MIPS cores and ARM9 etc which
> are incompatible so I've tried to make the distinction in the
> code that this is strictly for the Armv7 based chips.
>
> Sorry for the spamming this. I just really want to make some
> progress on this because I'm worried the other bits that are
> needed for these SoCs (Really old AT91 support in macb and
> the fotg210 usb host) will be lost or stop working in the meantime.
> This already happened in u-boot.

Hi Daniel,

I just found the series again after looking through some backlog,
and noticing I missed your submission from July 10. This looks
all good to me now, so I've merged the series into the arm/newsoc
branch that already contains added support for the keembay and
sparx5 SoCs.

If you require any changes to this, please send incremental
patches against the soc tree, and submit it to soc@kernel.org
so it makes it gets into patchwork.

       Arnd
Daniel Palmer July 25, 2020, 4:44 a.m. UTC | #2
Hi Arnd,

Thanks.

There is one small fix for the v5 set. One of the DTS file names got
broken when I rebased on a different machine.
I'll send a patch for that later today.

Cheer,

Daniel

On Fri, 24 Jul 2020 at 23:37, Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Fri, Jul 10, 2020 at 11:46 AM Daniel Palmer <daniel@0x0f.com> wrote:
> >
> > This patch set adds initial support for MStar/Sigmastar's
> > Armv7 based SoCs. There is just enough here to get to a shell
> > with an initramfs but support for a lot of the hardware is
> > in progress and will follow.
> >
> > MStar also shipped chips with MIPS cores and ARM9 etc which
> > are incompatible so I've tried to make the distinction in the
> > code that this is strictly for the Armv7 based chips.
> >
> > Sorry for the spamming this. I just really want to make some
> > progress on this because I'm worried the other bits that are
> > needed for these SoCs (Really old AT91 support in macb and
> > the fotg210 usb host) will be lost or stop working in the meantime.
> > This already happened in u-boot.
>
> Hi Daniel,
>
> I just found the series again after looking through some backlog,
> and noticing I missed your submission from July 10. This looks
> all good to me now, so I've merged the series into the arm/newsoc
> branch that already contains added support for the keembay and
> sparx5 SoCs.
>
> If you require any changes to this, please send incremental
> patches against the soc tree, and submit it to soc@kernel.org
> so it makes it gets into patchwork.
>
>        Arnd