hi Kevin,

On Mon, May 11, 2015 at 05:20:54PM -0700, Kevin Hilman wrote:
> On Thu, May 7, 2015 at 4:11 PM, Brent Wang <wangbint...@gmail.com> wrote:
> > Hello Kevin,
> >
> > 2015-05-08 4:30 GMT+08:00 Kevin Hilman <khil...@linaro.org>:
> >> Bintian Wang <bintian.w...@huawei.com> writes:
> >>
> >>> Hi6220 is one mobile solution of Hisilicon, this patchset contains
> >>> initial support for Hi6220 SoC and HiKey development board, which
> >>> supports octal ARM Cortex A53 cores. Initial support is minimal and
> >>> includes just the arch configuration, clock driver, device tree
> >>> configuration.
> >>>
> >>> PSCI is enabled in device tree and there is no problem to boot all the
> >>> octal cores, and the CPU hotplug is also working now, you can download
> >>> and compile the latest firmware based on the following link to run this
> >>> patch set:
> >>> https://github.com/96boards/documentation/wiki/UEFI
> >>
> >> Do you have any tips for booting this using the HiSi bootloader?  It
> >> seems that I need to add the magic hisi,boardid property for dtbTool to
> >> work.  Could you share what that magic value is?
> > Yes, you need it.
> > Hisilicon has many different development boards and those boards have some
> > different hardware configuration, so we need different device tree
> > files for them.
> > the original hisi,boardid is used to distinguish different boards and
> > used by the
> > bootloader to judge which device tree to use at boot-up.
> >
> >> and maybe add it to the wiki someplace?
> > Maybe add to section "Known Issues" in
> > "https://github.com/96boards/documentation/wiki/UEFI";
> > is a good choice, I will update this section later.
> 
> You updated the wiki, but you didn't specify what the value should be
> for this to work with the old bootloader.
> 
> Can you please give the value of that property?
> 
> Also, have you tested this series with the old bootloader as well?

Below are my testing result w/t Bintian's patches and Hisilicon old
bootloader:
- Need add property "hisi,boardid" into dts;
- Need change cpu enable-method from "psci" to "spin-table";
- The bootloader has not initialized register *cntfrq_el0* so will
  introduce the failure during init arch timer.

For init cntfrq_el0, we need fix this issue in Hisilicon's old
bootloader, rather than directly add "clock-frequency" for arch
timer's node in DTS. i will try to commit one patch for fix this
issue for Hisilicon's old bootloader.

So i think upper issues mainly are introduced by Hisilicon's old
bootloader but not come from Bintian's patches. How about u think for
this?

Below is my local diff which is used to compatible w/t Hisilicon's
old bootloader; Just for your reference.

Thanks,
Leo Yan

---8<---

diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts 
b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
index e36a539..fd1f89e 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
@@ -14,6 +14,7 @@
 
 / {
        model = "HiKey Development Board";
+       hisi,boardid = <0 0 4 3>;
        compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
 
        aliases {
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi 
b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index 229937f..8ade3d9 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -13,11 +13,6 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       psci {
-               compatible = "arm,psci-0.2";
-               method = "smc";
-       };
-
        cpus {
                #address-cells = <2>;
                #size-cells = <0>;
@@ -57,56 +52,64 @@
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x0>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu1: cpu@1 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x1>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu2: cpu@2 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x2>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu3: cpu@3 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x3>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu4: cpu@100 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x100>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu5: cpu@101 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x101>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu6: cpu@102 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x102>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
 
                cpu7: cpu@103 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        reg = <0x0 0x103>;
-                       enable-method = "psci";
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x740fff8>;
                };
        };
 
@@ -129,6 +132,7 @@
                             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | 
IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | 
IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | 
IRQ_TYPE_LEVEL_LOW)>;
+               clock-frequency = <1200000>;
        };
 
        soc {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to