[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 4/4] xen/arm: Reuse R-Car Gen2 platform code for Stout board
On Thu, Aug 9, 2018 at 7:18 PM, Oleksandr Tyshchenko <olekstysh@xxxxxxxxx> wrote: > On Thu, Aug 9, 2018 at 7:10 PM, Julien Grall <julien.grall@xxxxxxx> wrote: >> Hi Oleksandr, > Hi Julien. Hi. > >> >> >> On 08/07/2018 08:13 PM, Oleksandr Tyshchenko wrote: >>> >>> On Tue, Aug 7, 2018 at 8:21 PM, Julien Grall <julien.grall@xxxxxxx> wrote: >>>> >>>> On 07/08/18 18:12, Oleksandr Tyshchenko wrote: >>>>> >>>>> >>>>> Hi, Julien >>>> >>>> >>>> >>>> Hi Oleksandr, >>> >>> Hi Julien >>> >>>> >>>> >>>>> >>>>> On Tue, Aug 7, 2018 at 6:18 PM, Julien Grall <julien.grall@xxxxxxx> >>>>> wrote: >>>>>> >>>>>> >>>>>> Hi, >>>>>> >>>>>> On 06/08/18 19:35, Oleksandr Tyshchenko wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx> >>>>>>> >>>>>>> Renesas "Stout" development board (with different expansion boards) >>>>>>> is also based on R-Car Gen2 SoC. So extend compat array with >>>>>>> board's compatible strings. >>>>>>> >>>>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx> >>>>>>> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> >>>>>>> CC: Julien Grall <julien.grall@xxxxxxx> >>>>>>> --- >>>>>>> xen/arch/arm/platforms/rcar2.c | 4 ++++ >>>>>>> 1 file changed, 4 insertions(+) >>>>>>> >>>>>>> diff --git a/xen/arch/arm/platforms/rcar2.c >>>>>>> b/xen/arch/arm/platforms/rcar2.c >>>>>>> index df0ac84..ee2ded0 100644 >>>>>>> --- a/xen/arch/arm/platforms/rcar2.c >>>>>>> +++ b/xen/arch/arm/platforms/rcar2.c >>>>>>> @@ -49,6 +49,10 @@ static int __init rcar2_smp_init(void) >>>>>>> static const char *const rcar2_dt_compat[] __initconst = >>>>>>> { >>>>>>> "renesas,lager", >>>>>>> + "renesas,r8a7790stout", >>>>>>> + "renesas,r8a7790stout-view", >>>>>>> + "renesas,r8a7790stout-had", >>>>>>> + "renesas,r8a7790stout-full", >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> I am quite reluctant to add compatible that are not present in upstream >>>>>> Linux. Looking at the DT upstreamed in Linux, the compatible for >>>>>> r8a7790 >>>>>> SoC >>>>>> seem to be "renesas,r8a7790". Wouldn't it be sufficient to cover all >>>>>> the >>>>>> boards? But ... >>>>> >>>>> >>>>> >>>>> This compatible came from official BSP for this board... >>>>> https://elinux.org/R-Car/Boards/Yocto#Running >>>>> >>>>> I have just checked "renesas,r8a7790" and you was right, it covers >>>>> these modifications. So, I will change. >>>>> Moreover, we can just have only single compatible, which will cover (I >>>>> hope) all boards based on R-Car H2 SoC, including Lager board >>>>> (compatible = "renesas,lager", "renesas,r8a7790") >>>>> >>>>> static const char *const rcar2_dt_compat[] __initconst = >>>>> { >>>>> - "renesas,lager", >>>>> + "renesas,r8a7790", >>>>> NULL >>>>> }; >>>>> >>>>> What do you think? >>>> >>>> >>>> >>>> That would be the best. >>>> >>>>> >>>>>> >>>>>> ... don't you have PSCI support on those platforms? >>>>> >>>>> >>>>> >>>>> AFAIK, no. >>>>> This code is definitely needed for Stout board as well, since the SoC >>>>> is the same (R-Car Gen2). >>>> >>>> >>>> >>>> When I looked at the device-tree upstreamed for R-Car Gen2 (I think >>>> r8a7790), PSCI is supported. So I am a bit surprised that the Stout (or >>>> even >>>> lager) does not support it. Are you sure you are not using an old >>>> firmware? >>> >>> >>> This is the topic I am not quite familiar with, so may mistake... >>> >>> Yes, the BSP I use is quite old, but I managed to run it on top of Xen... >>> Just to clarify, saying firmware you mean something running in Secure >>> World, like ARM TF, for example >>> and providing PSCI services? If yes, the BSP for R-Car Gen2 seems >>> doesn't contain it. Only U-Boot is available. >>> But U-Boot was modified to be able to switch A15 cores to HYP mode. >>> Here [1] you can see how it was done for Lager board, >>> something similar I did for Stout board. >>> >>> So, in a nutshell, SMP bring-up under Xen is done in following way: >>> - U-Boot switches all cores to HYP mode and jumps to Xen on a boot >>> core, while non-boot cores are waiting in U-Boot. >>> - Platform SMP init code (rcar2.c) brings each non-boot core to Xen. >>> >>>> >>>> If not, can you please point me to the code in Linux (upstream or BSP) >>>> doing >>>> the SMP bring-up for the R-Car? >>> >>> >>> BSP is based on + additional patches in Yocto layers: >>> >>> https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-backport.git/tree/arch/arm/boot/dts/r8a7790.dtsi?h=bsp/v3.10.31-ltsi/rcar-gen2-1.9.8 >>> >>> https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-backport.git/tree/arch/arm/mach-shmobile/platsmp-apmu.c?h=bsp/v3.10.31-ltsi/rcar-gen2-1.9.8 >>> >>> Upstream code: >>> >>> https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/r8a7790.dtsi >>> >>> https://github.com/torvalds/linux/blob/master/arch/arm/mach-shmobile/platsmp-apmu.c >>> >>> Could you point me a link to device-tree where PSCI is supported? >> >> >> Somehow I thought the platform was 64-bit and found a SOC name very similar >> to it. Sorry for the confusion. PSCI seems indeed not supported for that >> platform. > R-Car Gen3 is ARM64 (H2 SoC -> r8a7790) and does support PSCI. Sorry for the typo, should be: R-Car Gen3 is ARM64 (H3 SoC -> r8a7795) and does support PSCI. > But R-Car Gen2 is ARM32 (H2 SoC -> r8a7790) > >> >> However, the code looks fairly different than what we have in Xen. For >> instance secondary CPU seems to require to initialize CNTVOFF, the function >> to power on a CPU also looks different. > Sorry, which code you are taking about, U-Boot or Linux? > >> >> Could you explain why such differences? >> >> Cheers, >> >> -- >> Julien Grall > > > > -- > Regards, > > Oleksandr Tyshchenko -- Regards, Oleksandr Tyshchenko _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |