From: "Mylène Josserand" <mylene.josserand@bootlin.com>
To: linux@armlinux.org.uk, maxime.ripard@bootlin.com, wens@csie.org,
marc.zyngier@arm.com, mark.rutland@arm.com, robh+dt@kernel.org
Cc: devicetree@vger.kernel.org, clabbe.montjoie@gmail.com,
quentin.schulz@bootlin.com, thomas.petazzoni@bootlin.com,
mylene.josserand@bootlin.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v5 00/13] Sunxi: Add SMP support on A83T
Date: Tue, 3 Apr 2018 08:18:23 +0200 [thread overview]
Message-ID: <20180403061836.3926-1-mylene.josserand@bootlin.com> (raw)
Hello everyone,
This is a V5 of my series that adds SMP support for Allwinner sun8i-a83t.
Based on sunxi's tree, sunxi/for-next branch.
For boot CPU, I tried to add the CNTVOFF initialization in mc_smp.c file
(in sunxi_mc_smp_init function) but it is not working.
Instead of adding it in timer's function of sunxi.c file, I create
a new machine to handle this case. Thanks to that, it is specific to
sun8i-a83t SoC. Let me know what you think.
Changes since v4:
- Rebased my series according to new Chen-Yu series:
"ARM: sunxi: Clean and improvements for multi-cluster SMP"
https://lkml.org/lkml/2018/3/8/886
- Updated my series according to Marc Zyngier's reviews to add CNTVOFF
initialization's function into ARM's common part. Thanks to that, other
platforms such as Renesa can use this function.
- For boot CPU, create a new machine to handle the CNTVOFF initialization
using "init_early" callback.
Changes since v3:
- Take into account Maxime's reviews:
- split the first patch into 4 new patches: add sun9i device tree
parsing, rename some variables, add a83t support and finally,
add hotplug support.
- Move the code of previous patch 07 (to disable CPU0 disabling)
into hotplug support patch (see patch 04)
- Remove the patch that added PRCM register because it is already
available. Because of that, update the device tree parsing to use
"sun8i-a83t-r-ccu".
- Use a variable to know which SoC we currently have
- Take into account Chen-Yu's reviews: create two iounmap functions
to release the resources of the device tree parsing.
- Take into account Marc's review: Update the code to initialize CNTVOFF
register. As there is already assembly code in the driver, I decided
to create an assembly file not to mix assembly and C code.
For that, I create 3 new patches: move the current assembly code that
handles the cluster cache enabling into a file, move the cpu_resume entry
in this file and finally, add a new assembly entry to initialize the timer
offset for boot CPU and secondary CPUs.
Changes since v2:
- Rebased my modifications according to new Chen Yu's patch series
that adds SMP support for sun9i-a80 (without MCPM).
- Split the device-tree patches into 3 patches for CPUCFG, R_CPUCFG
and PRCM registers for more visibility.
- The hotplug of CPU0 is currently not working (even after trying what
Allwinner's code is doing) so remove the possibility of disabling
this CPU. Created a new patch for it.
Changes since v1:
- Add Chen Yu's patch in my series (see path 01)
- Add new compatibles for prcm and cpucfg registers for sun8i-a83t.
Create two functions to separate the DT parsing of sun9i-a80 and
sun8i-a83t.
- Thanks to Maxime's review: order device tree's nodes according
to physical addresses, remove unused label and fix registers' sizes.
Update the commit log and commit title of my last patch (see
patch 05).
Patch 01: To be able to use macro definition (such as ARM_CPU_PART_MASK)
in an assembly file, we need to separate macro difinitions and C functions
definitions. This is what this patch is doing.
Patch 02: Move assembly code into a new assembly file
Patch 03: Move another assembly code (resuming function) into above file
Patch 04-06: Add registers nodes (cpucfg, r_cpucfg and cci-400) needed
for SMP bringup.
Patch 07: Create a new assembly file to initialize the CNTVOFF register. Can
be used on other platform so add it in "common" ARM folder.
Patch 08: Create a new machine to initialize the timer offset for boot CPU.
Add a new entry to initialize the timer offset for secondary CPUs.
Patch 09: Prepare to handle sun8i-a83t by renaming some sun9i-a80 functions.
Patch 10: Again a preparation to support sun8i-a83t by moving some structures.
Patch 11: Add a new field to know if we are on sun9i-a80 or sun8i-a83t.
Patch 12: Convert the sunxi SMP driver to add support for A83T.
This SoC has a bit flip that needs to be handled.
Patch 13: Enable the smp support on sun8i-a83t by adding enable-method.
If you have any remarks/questions, let me know.
Thank you in advance,
Mylène
Mylène Josserand (13):
ARM: move cputype definitions into another file
ARM: sunxi: smp: Move assembly code into a file
ARM: sunxi: smp: Move cpu_resume assembly entry into file
ARM: dts: sun8i: Add CPUCFG device node for A83T dtsi
ARM: dts: sun8i: Add R_CPUCFG device node for the A83T dtsi
ARM: dts: sun8i: a83t: Add CCI-400 node
ARM: smp: Add initialization of CNTVOFF
ARM: sunxi: Add initialization of CNTVOFF
ARM: sun9i: smp: Rename clusters's power-off
ARM: sun9i: smp: Move structures
ARM: sun9i: smp: Add is_sun9i field
ARM: sun8i: smp: Add support for A83T
ARM: dts: sun8i: Add enable-method for SMP support for the A83T SoC
arch/arm/boot/dts/sun8i-a83t.dtsi | 59 ++++++++
arch/arm/common/Makefile | 1 +
arch/arm/common/smp_cntvoff.S | 35 +++++
arch/arm/include/asm/cputype.h | 94 +-----------
arch/arm/include/asm/cputype_def.h | 98 +++++++++++++
arch/arm/include/asm/smp_cntvoff.h | 8 ++
arch/arm/mach-sunxi/Makefile | 4 +-
arch/arm/mach-sunxi/headsmp.S | 81 +++++++++++
arch/arm/mach-sunxi/mc_smp.c | 287 ++++++++++++++++++++++---------------
arch/arm/mach-sunxi/sunxi.c | 18 ++-
10 files changed, 472 insertions(+), 213 deletions(-)
create mode 100644 arch/arm/common/smp_cntvoff.S
create mode 100644 arch/arm/include/asm/cputype_def.h
create mode 100644 arch/arm/include/asm/smp_cntvoff.h
create mode 100644 arch/arm/mach-sunxi/headsmp.S
--
2.11.0
next reply other threads:[~2018-04-03 6:20 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-03 6:18 Mylène Josserand [this message]
2018-04-03 6:18 ` [PATCH v5 01/13] ARM: move cputype definitions into another file Mylène Josserand
2018-04-03 6:52 ` Chen-Yu Tsai
2018-04-03 7:27 ` Mylène Josserand
2018-04-03 7:34 ` Chen-Yu Tsai
2018-04-03 19:56 ` Florian Fainelli
2018-04-04 13:49 ` Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 02/13] ARM: sunxi: smp: Move assembly code into a file Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 03/13] ARM: sunxi: smp: Move cpu_resume assembly entry into file Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 04/13] ARM: dts: sun8i: Add CPUCFG device node for A83T dtsi Mylène Josserand
2018-04-03 6:45 ` Chen-Yu Tsai
2018-04-03 6:18 ` [PATCH v5 05/13] ARM: dts: sun8i: Add R_CPUCFG device node for the " Mylène Josserand
2018-04-03 9:07 ` Chen-Yu Tsai
2018-04-03 19:52 ` Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 06/13] ARM: dts: sun8i: a83t: Add CCI-400 node Mylène Josserand
2018-04-03 6:44 ` Chen-Yu Tsai
2018-04-03 6:18 ` [PATCH v5 07/13] ARM: smp: Add initialization of CNTVOFF Mylène Josserand
2018-04-04 13:01 ` Marc Zyngier
2018-04-04 13:59 ` Mylène Josserand
2018-04-04 14:30 ` Marc Zyngier
2018-04-09 8:24 ` Geert Uytterhoeven
2018-04-09 9:04 ` Marc Zyngier
2018-04-11 7:44 ` Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 08/13] ARM: sunxi: " Mylène Josserand
2018-04-03 9:12 ` Maxime Ripard
2018-04-03 20:06 ` Mylène Josserand
2018-04-04 7:45 ` Maxime Ripard
2018-04-08 9:09 ` Mylène Josserand
2018-04-09 9:24 ` Maxime Ripard
2018-04-03 11:13 ` kbuild test robot
2018-04-03 6:18 ` [PATCH v5 09/13] ARM: sun9i: smp: Rename clusters's power-off Mylène Josserand
2018-04-03 9:06 ` Chen-Yu Tsai
2018-04-03 6:18 ` [PATCH v5 10/13] ARM: sun9i: smp: Move structures Mylène Josserand
2018-04-03 8:47 ` Maxime Ripard
2018-04-03 8:51 ` Chen-Yu Tsai
2018-04-03 6:18 ` [PATCH v5 11/13] ARM: sun9i: smp: Add is_sun9i field Mylène Josserand
2018-04-03 8:46 ` Maxime Ripard
2018-04-03 8:48 ` Chen-Yu Tsai
2018-04-03 20:08 ` Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 12/13] ARM: sun8i: smp: Add support for A83T Mylène Josserand
2018-04-03 8:47 ` Chen-Yu Tsai
2018-04-03 20:21 ` Mylène Josserand
2018-04-03 6:18 ` [PATCH v5 13/13] ARM: dts: sun8i: Add enable-method for SMP support for the A83T SoC Mylène Josserand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180403061836.3926-1-mylene.josserand@bootlin.com \
--to=mylene.josserand@bootlin.com \
--cc=clabbe.montjoie@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=maxime.ripard@bootlin.com \
--cc=quentin.schulz@bootlin.com \
--cc=robh+dt@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).