On Tue, 17 Nov 2015 15:32:30 +0100 Jens Kuske <jensku...@gmail.com> wrote:
> On 16/11/15 07:26, Chen-Yu Tsai wrote: > > Hi everyone, > > > > I got my Orange Pi PC booting U-boot now, using Hans' sunxi-wip branch that > > includes Jens' patches. > > > > For PSCI and SMP, it seems the H3 follows the structure of previous sun8i > > SoCs. > > The CPUCFG registers line up. The manual doesn't have the PRCM, so I'll > > have to > > dig through the SDK. > > > > One other thing is the SMTA, or Secure Memory Touch Arbiter, which we last > > encountered issues with on the A31s. This controls non-secure access to a > > whole > > bunch of peripherals, which we'll need to enable for Linux to run > > non-secure. > > There is also register 0x2f0 in the CCU, it defaults to disabling > non-secure access to all clock registers. > > Jens > How about just enabling SMP on Allwinner H3 in an old unfashionable way while all these non-secure access limiters are still being under investigation? diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi index 0faa38a..d23ed84 100644 --- a/arch/arm/boot/dts/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/sun8i-h3.dtsi @@ -51,6 +51,7 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "allwinner,sun6i-a31"; cpu@0 { compatible = "arm,cortex-a7"; @@ -591,5 +592,15 @@ interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; }; + + prcm@01f01400 { + compatible = "allwinner,sun8i-h3-prcm"; + reg = <0x01f01400 0x200>; + }; + + cpucfg@01f01c00 { + compatible = "allwinner,sun8i-h3-cpuconfig"; + reg = <0x01f01c00 0x300>; + }; }; }; diff --git a/arch/arm/mach-sunxi/platsmp.c b/arch/arm/mach-sunxi/platsmp.c index e8483ec..8ca4064 100644 --- a/arch/arm/mach-sunxi/platsmp.c +++ b/arch/arm/mach-sunxi/platsmp.c @@ -44,6 +44,9 @@ static void __init sun6i_smp_prepare_cpus(unsigned int max_cpus) struct device_node *node; node = of_find_compatible_node(NULL, NULL, "allwinner,sun6i-a31-prcm"); + if (!node) + node = of_find_compatible_node(NULL, NULL, + "allwinner,sun8i-h3-prcm"); if (!node) { pr_err("Missing A31 PRCM node in the device tree\n"); return; @@ -57,6 +60,9 @@ static void __init sun6i_smp_prepare_cpus(unsigned int max_cpus) node = of_find_compatible_node(NULL, NULL, "allwinner,sun6i-a31-cpuconfig"); + if (!node) + node = of_find_compatible_node(NULL, NULL, + "allwinner,sun8i-h3-cpuconfig"); if (!node) { pr_err("Missing A31 CPU config node in the device tree\n"); return; -- 2.4.10 -- Best regards, Siarhei Siamashka _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot