Hi, On Mon, Jun 27, 2016 at 6:47 PM, Andre Przywara <andre.przyw...@arm.com> wrote: > Hi Masahiro, > > On 25/06/16 05:08, Masahiro Yamada wrote: >> Hi Andre, >> >> >> 2016-06-19 19:33 GMT+09:00 André Przywara <andre.przyw...@arm.com>: >>> Hi, >>> >>> On 19/06/16 09:57, Masahiro Yamada wrote: >>>> 2016-06-18 18:40 GMT+09:00 Linus Walleij <linus.wall...@linaro.org>: >>>>> On Fri, Jun 17, 2016 at 2:51 PM, Masahiro Yamada >>>>> <yamada.masah...@socionext.com> wrote: >>>>> >>>>>> There are two enable methods supported by ARM64 Linux; psci and >>>>>> spin-table. The latter is simpler and easier to use for quick SoC >>>>>> bring-up. >>>>>> >>>>>> So, I used the spin-table for my first ARMv8 SoC porting, but I >>>>>> found its support in U-Boot was poor. It is true there exists a >>>>>> code fragment for the spin code in arch/arm/cpu/armv8/start.S, >>>>>> but I see some problems: >>>>> >>>>> Is part of the motivation for this approach to boot an ARMv8 system >>>>> without using the ARM Trusted Firmware? >>>>> >>>>> Yours, >>>>> Linus Walleij >>>> >>>> Yes, exactly. >>>> >>>> It would be the best choice >>>> to switch over to PSCI with ATF in a long run, >>>> but, I decided to use spin-table for the initial SoC bring-up >>>> because of tight schedule. >>> >>> So if you don't have an ATF port ready, why not use U-Boot's PSCI >>> implementation meanwhile? I think there are efforts underway to make >>> PSCI enablement for random new boards a walk in the park (by making the >>> PSCI support as generic as possible, CCing Chen-Yu for this). >> >> >> So, you mean U-Boot can serve PSCI for ARMv8 SoCs without ATF, right? >> (and efforts underway for further improvement) > > Yes, if I am not mistaken then there are patches floating around to > achieve this.
The first part of the PSCI rework is already in master. The second part is here: http://lists.denx.de/pipermail/u-boot/2016-June/258484.html Or a rebased version: https://github.com/wens/u-boot-sunxi/tree/psci-improve-part2 >> I know PSCI support is available for ARMv7 >> (arch/arm/cpu/armv7/psci.S), >> but I could not find PSCI implementation >> in arch/arm/cpu/armv8/ directory in the mainline U-Boot. > > I think that's work in progress (as in "on the ML"). My work is still focused on ARMv7. However, with a lot of the code rewritten in C and modularized, I see no reason it could be moved up to arch/arm and reused for ARMv8. Same probably goes for the non-secure related stuff, but I haven't looked into those yet. The remaining bits of assembly for PSCI are: - exception vector table - PSCI secure monitor entry - stack setup - CPU entry function - ARMv7(?) SMP toggling (can be done in C with inline assembly) - ARMv7 specific cache flush My only ARMv8 board (Pine64) is still gathering dust, and Andre is already working on an ATF port, so it's unlikely I will spend time there. Also I'm very unfamiliar with ARMv8. >> I checked Chen-Yu's patches on Patchwork, >> but I think they are mostly for improvement of ARMv7 PSCI support. >> >> If I am missing something, >> could you point me to the reference, please? > > I think you found this yourself already in that other mail of yours? > >>> IIRC the spin-table boot method was just introduced to cope with cores >>> that don't have EL3 and thus cannot provide PSCI services the normal way >>> (and that don't want to or cannot sacrifice EL2 for that). >>> So I am a bit wary of proliferating this SMP method. >> >> Proliferating? >> >> Many of ARM 32bit SoCs have vendor-specific SMP methods. > > Yes, and this is a massive PITA, but hard to change now. Get everyone on board with PSCI? :) Regards ChenYu >> On the other hand, ARM64 only has two methods; psci and spin-table. > > For a reason: Actually we just wanted to have PSCI only, but it turns > out that it's not easily possible on cores that don't implement EL3 > (which is architecturally allowed and also implemented). > So spin-table support was added to provide a fall-back for those cases. > But if you have the choice, then PSCI is your friend. > Please note that any support for another SMP method is very unlikely to > ever get merged into upstream Linux. > >> Is this a problem? > > As mentioned, if you have a proper PSCI framework (as we are about to > get for U-Boot and which ATF already provides), adding SMP support is > not more involved than implementing spin tables. After all it's about > specifying the pen address and possibly providing per-core power hooks. > > Cheers, > Andre. > >>> Wouldn't it be better to help making U-Boot's PSCI stack as easy to use >>> as possible? I don't see technical reasons that adding PSCI support for >>> a board should be harder or more involved than adding spin-table support >>> - in the end you need to tell it about the SMP pen, maybe providing (or >>> faking?) reset and shutdown for 0.2 compliance. >> >> >> Right. >> >> My motivation is to bring up Linux quickly >> before ATF becomes ready. >> >> From your statement, I felt >> efforts for the ARMv8 PSCI implementation in U-Boot are underway. >> If so, I am definitely interested in it. >> >> > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot