All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH -next] xtensa: Fix build error due to missing include file
@ 2016-07-24  0:24 Guenter Roeck
  2016-07-24  0:45 ` Max Filippov
  0 siblings, 1 reply; 11+ messages in thread
From: Guenter Roeck @ 2016-07-24  0:24 UTC (permalink / raw)
  To: Chris Zankel
  Cc: Max Filippov, linux-xtensa, linux-kernel, Guenter Roeck,
	Kefeng Wang, Rob Herring

Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
with default match table") dropped various include files from
arch/xtensa/kernel/setup.c. This results in the following build error.

arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
arch/xtensa/kernel/setup.c:213:2: error:
	implicit declaration of function ‘of_read_ulong’

Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
I would suggest to merge this patch into the commit causing the problem
if possible.

 arch/xtensa/kernel/setup.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 18af563110a1..6f68c6045a70 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -23,6 +23,7 @@
 #include <linux/kernel.h>
 #include <linux/percpu.h>
 #include <linux/cpu.h>
+#include <linux/of.h>
 #include <linux/of_fdt.h>
 
 #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-24  0:24 [PATCH -next] xtensa: Fix build error due to missing include file Guenter Roeck
@ 2016-07-24  0:45 ` Max Filippov
  2016-07-24  6:00   ` Guenter Roeck
  0 siblings, 1 reply; 11+ messages in thread
From: Max Filippov @ 2016-07-24  0:45 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Chris Zankel, linux-xtensa, LKML, Kefeng Wang, Rob Herring

On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net> wrote:
> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
> with default match table") dropped various include files from
> arch/xtensa/kernel/setup.c. This results in the following build error.
>
> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
> arch/xtensa/kernel/setup.c:213:2: error:
>         implicit declaration of function ‘of_read_ulong’
>
> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> Cc: Rob Herring <robh@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> I would suggest to merge this patch into the commit causing the problem
> if possible.
>
>  arch/xtensa/kernel/setup.c | 1 +
>  1 file changed, 1 insertion(+)

Acked-by: Max Filippov <jcmvbkbc@gmail.com>

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-24  0:45 ` Max Filippov
@ 2016-07-24  6:00   ` Guenter Roeck
  2016-07-24 14:20     ` Max Filippov
  0 siblings, 1 reply; 11+ messages in thread
From: Guenter Roeck @ 2016-07-24  6:00 UTC (permalink / raw)
  To: Max Filippov; +Cc: Chris Zankel, linux-xtensa, LKML, Kefeng Wang, Rob Herring

On 07/23/2016 05:45 PM, Max Filippov wrote:
> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net> wrote:
>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>> with default match table") dropped various include files from
>> arch/xtensa/kernel/setup.c. This results in the following build error.
>>
>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
>> arch/xtensa/kernel/setup.c:213:2: error:
>>          implicit declaration of function ‘of_read_ulong’
>>
>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
>> Cc: Rob Herring <robh@kernel.org>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> I would suggest to merge this patch into the commit causing the problem
>> if possible.
>>
>>   arch/xtensa/kernel/setup.c | 1 +
>>   1 file changed, 1 insertion(+)
>
> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
>

Heads up: xtensa images build after this patch, but the image that
previously failed to build (generic_kc705_defconfig) doesn't boot,
at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
or by some other patch.

Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-24  6:00   ` Guenter Roeck
@ 2016-07-24 14:20     ` Max Filippov
  2016-07-24 15:18       ` Rob Herring
  0 siblings, 1 reply; 11+ messages in thread
From: Max Filippov @ 2016-07-24 14:20 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Chris Zankel, linux-xtensa, LKML, Kefeng Wang, Rob Herring

On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net> wrote:
> On 07/23/2016 05:45 PM, Max Filippov wrote:
>>
>> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net> wrote:
>>>
>>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>>> with default match table") dropped various include files from
>>> arch/xtensa/kernel/setup.c. This results in the following build error.
>>>
>>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
>>> arch/xtensa/kernel/setup.c:213:2: error:
>>>          implicit declaration of function ‘of_read_ulong’
>>>
>>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>>> with default match table")
>>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
>>> Cc: Rob Herring <robh@kernel.org>
>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>> ---
>>> I would suggest to merge this patch into the commit causing the problem
>>> if possible.
>>>
>>>   arch/xtensa/kernel/setup.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>
>>
>> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
>>
>
> Heads up: xtensa images build after this patch, but the image that
> previously failed to build (generic_kc705_defconfig) doesn't boot,
> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
> or by some other patch.

It seems to be booting, but serial console is non-functional.
With commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
with default match table") I see the following message during boot:

[    6.375284] of_serial fd050020.serial: clk or clock-frequency not defined

Reverting that commit fixes serial console for me.
Any suggestions on what might go wrong?

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-24 14:20     ` Max Filippov
@ 2016-07-24 15:18       ` Rob Herring
  2016-07-24 16:27         ` Guenter Roeck
  0 siblings, 1 reply; 11+ messages in thread
From: Rob Herring @ 2016-07-24 15:18 UTC (permalink / raw)
  To: Max Filippov; +Cc: Guenter Roeck, Chris Zankel, linux-xtensa, LKML, Kefeng Wang

On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net> wrote:
>> On 07/23/2016 05:45 PM, Max Filippov wrote:
>>>
>>> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net> wrote:
>>>>
>>>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>>>> with default match table") dropped various include files from
>>>> arch/xtensa/kernel/setup.c. This results in the following build error.
>>>>
>>>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
>>>> arch/xtensa/kernel/setup.c:213:2: error:
>>>>          implicit declaration of function ‘of_read_ulong’
>>>>
>>>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>>>> with default match table")
>>>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
>>>> Cc: Rob Herring <robh@kernel.org>
>>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>>> ---
>>>> I would suggest to merge this patch into the commit causing the problem
>>>> if possible.
>>>>
>>>>   arch/xtensa/kernel/setup.c | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>
>>>
>>> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
>>>
>>
>> Heads up: xtensa images build after this patch, but the image that
>> previously failed to build (generic_kc705_defconfig) doesn't boot,
>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
>> or by some other patch.
>
> It seems to be booting, but serial console is non-functional.
> With commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
> with default match table") I see the following message during boot:
>
> [    6.375284] of_serial fd050020.serial: clk or clock-frequency not defined
>
> Reverting that commit fixes serial console for me.
> Any suggestions on what might go wrong?

Probably the init order changed somehow and deferred probe is not
supported correctly.

Rob

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-24 15:18       ` Rob Herring
@ 2016-07-24 16:27         ` Guenter Roeck
  2016-07-25  8:07           ` Max Filippov
  0 siblings, 1 reply; 11+ messages in thread
From: Guenter Roeck @ 2016-07-24 16:27 UTC (permalink / raw)
  To: Rob Herring, Max Filippov; +Cc: Chris Zankel, linux-xtensa, LKML, Kefeng Wang

On 07/24/2016 08:18 AM, Rob Herring wrote:
> On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
>> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net> wrote:
>>> On 07/23/2016 05:45 PM, Max Filippov wrote:
>>>>
>>>> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net> wrote:
>>>>>
>>>>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>>>>> with default match table") dropped various include files from
>>>>> arch/xtensa/kernel/setup.c. This results in the following build error.
>>>>>
>>>>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
>>>>> arch/xtensa/kernel/setup.c:213:2: error:
>>>>>           implicit declaration of function ‘of_read_ulong’
>>>>>
>>>>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>>>>> with default match table")
>>>>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
>>>>> Cc: Rob Herring <robh@kernel.org>
>>>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>>>> ---
>>>>> I would suggest to merge this patch into the commit causing the problem
>>>>> if possible.
>>>>>
>>>>>    arch/xtensa/kernel/setup.c | 1 +
>>>>>    1 file changed, 1 insertion(+)
>>>>
>>>>
>>>> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
>>>>
>>>
>>> Heads up: xtensa images build after this patch, but the image that
>>> previously failed to build (generic_kc705_defconfig) doesn't boot,
>>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
>>> or by some other patch.
>>
>> It seems to be booting, but serial console is non-functional.
>> With commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
>> with default match table") I see the following message during boot:
>>
>> [    6.375284] of_serial fd050020.serial: clk or clock-frequency not defined
>>
>> Reverting that commit fixes serial console for me.
>> Any suggestions on what might go wrong?
>
> Probably the init order changed somehow and deferred probe is not
> supported correctly.
>

While the message is due to -EPROBE_DEFER (and there should really be no message
in this case), I suspect that the underlying problem is that of_clk_init() is
now called way too early, before the clock source is fully initialized.
Specifically, the call now happens before the message "clocksource: Switched
to clocksource ccount", which at least looks suspicious.

If I move of_clk_init() back into xtensa_device_probe(), to be called as
device_initcall(), everything is fine.

Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-24 16:27         ` Guenter Roeck
@ 2016-07-25  8:07           ` Max Filippov
  2016-07-25 13:22             ` Rob Herring
  2016-07-25 20:51             ` Guenter Roeck
  0 siblings, 2 replies; 11+ messages in thread
From: Max Filippov @ 2016-07-25  8:07 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Rob Herring, Chris Zankel, linux-xtensa, LKML, Kefeng Wang

[-- Attachment #1: Type: text/plain, Size: 3123 bytes --]

On Sun, Jul 24, 2016 at 7:27 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> On 07/24/2016 08:18 AM, Rob Herring wrote:
>>
>> On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
>>>
>>> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net>
>>> wrote:
>>>>
>>>> On 07/23/2016 05:45 PM, Max Filippov wrote:
>>>>>
>>>>>
>>>>> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary
>>>>>> of_platform_populate
>>>>>> with default match table") dropped various include files from
>>>>>> arch/xtensa/kernel/setup.c. This results in the following build error.
>>>>>>
>>>>>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
>>>>>> arch/xtensa/kernel/setup.c:213:2: error:
>>>>>>           implicit declaration of function ‘of_read_ulong’
>>>>>>
>>>>>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary
>>>>>> of_platform_populate
>>>>>> with default match table")
>>>>>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
>>>>>> Cc: Rob Herring <robh@kernel.org>
>>>>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>>>>> ---
>>>>>> I would suggest to merge this patch into the commit causing the
>>>>>> problem
>>>>>> if possible.
>>>>>>
>>>>>>    arch/xtensa/kernel/setup.c | 1 +
>>>>>>    1 file changed, 1 insertion(+)
>>>>>
>>>>>
>>>>>
>>>>> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
>>>>>
>>>>
>>>> Heads up: xtensa images build after this patch, but the image that
>>>> previously failed to build (generic_kc705_defconfig) doesn't boot,
>>>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
>>>> or by some other patch.
>>>
>>>
>>> It seems to be booting, but serial console is non-functional.
>>> With commit 69d99e6c0d621f ("xtensa: Remove unnecessary
>>> of_platform_populate
>>> with default match table") I see the following message during boot:
>>>
>>> [    6.375284] of_serial fd050020.serial: clk or clock-frequency not
>>> defined
>>>
>>> Reverting that commit fixes serial console for me.
>>> Any suggestions on what might go wrong?
>>
>>
>> Probably the init order changed somehow and deferred probe is not
>> supported correctly.
>>
>
> While the message is due to -EPROBE_DEFER (and there should really be no
> message
> in this case), I suspect that the underlying problem is that of_clk_init()
> is
> now called way too early, before the clock source is fully initialized.
> Specifically, the call now happens before the message "clocksource: Switched
> to clocksource ccount", which at least looks suspicious.
>
> If I move of_clk_init() back into xtensa_device_probe(), to be called as
> device_initcall(), everything is fine.

The problem is in the way the main clock on xtfpga platform is set up:
it is done by updating corresponding OF node's clock-frequency attribute
and that must happen before the of_clk_init call.
Looks like it's time to create a clock provider for xtfpga boards, something
like the one attached.

-- 
Thanks.
-- Max

[-- Attachment #2: 0001-xtensa-xtfpga-add-clock-provider.patch --]
[-- Type: text/x-patch, Size: 2605 bytes --]

From 8aa959869060cb5ffbc06c4c25cfb0e6d81bc8b4 Mon Sep 17 00:00:00 2001
From: Max Filippov <jcmvbkbc@gmail.com>
Date: Mon, 25 Jul 2016 10:58:10 +0300
Subject: [PATCH] xtensa: xtfpga: add clock provider

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
 arch/xtensa/boot/dts/xtfpga.dtsi     | 11 ++++++-----
 arch/xtensa/platforms/xtfpga/setup.c | 32 ++++++++++++++++++++++++++++----
 2 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/arch/xtensa/boot/dts/xtfpga.dtsi b/arch/xtensa/boot/dts/xtfpga.dtsi
index cd45f9c..b49b5d4 100644
--- a/arch/xtensa/boot/dts/xtfpga.dtsi
+++ b/arch/xtensa/boot/dts/xtfpga.dtsi
@@ -36,11 +36,6 @@
 	};
 
 	clocks {
-		osc: main-oscillator {
-			#clock-cells = <0>;
-			compatible = "fixed-clock";
-		};
-
 		clk54: clk54 {
 			#clock-cells = <0>;
 			compatible = "fixed-clock";
@@ -54,6 +49,12 @@
 		compatible = "simple-bus";
 		ranges = <0x00000000 0xf0000000 0x10000000>;
 
+		osc: main-oscillator {
+			reg = <0x0d020004 0x4>;
+			#clock-cells = <0>;
+			compatible = "cdns,xtfpga-clock";
+		};
+
 		serial0: serial@0d050020 {
 			device_type = "serial";
 			compatible = "ns16550a";
diff --git a/arch/xtensa/platforms/xtfpga/setup.c b/arch/xtensa/platforms/xtfpga/setup.c
index b509d1f..24f22e8 100644
--- a/arch/xtensa/platforms/xtfpga/setup.c
+++ b/arch/xtensa/platforms/xtfpga/setup.c
@@ -26,6 +26,8 @@
 #include <linux/console.h>
 #include <linux/delay.h>
 #include <linux/of.h>
+#include <linux/clk-provider.h>
+#include <linux/of_address.h>
 
 #include <asm/timex.h>
 #include <asm/processor.h>
@@ -135,14 +137,36 @@ static void __init update_local_mac(struct device_node *node)
 	of_update_property(node, newmac);
 }
 
+static void __init xtfpga_clk_setup(struct device_node *np)
+{
+	void __iomem *base = of_iomap(np, 0);
+	struct clk *clk;
+	u32 freq;
+
+	if (!base) {
+		pr_err("%s: invalid address\n", np->name);
+		return;
+	}
+
+	freq = __raw_readl(base);
+	clk = clk_register_fixed_rate(NULL, np->name, NULL, 0, freq);
+
+	if (IS_ERR(clk)) {
+		pr_err("%s: clk registration failed\n", np->name);
+		return;
+	}
+
+	if (of_clk_add_provider(np, of_clk_src_simple_get, clk)) {
+		pr_err("%s: clk provider registration failed\n", np->name);
+		return;
+	}
+}
+CLK_OF_DECLARE(xtfpga_clk, "cdns,xtfpga-clock", xtfpga_clk_setup);
+
 static int __init machine_setup(void)
 {
-	struct device_node *clock;
 	struct device_node *eth = NULL;
 
-	for_each_node_by_name(clock, "main-oscillator")
-		update_clock_frequency(clock);
-
 	if ((eth = of_find_compatible_node(eth, NULL, "opencores,ethoc")))
 		update_local_mac(eth);
 	return 0;
-- 
2.1.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-25  8:07           ` Max Filippov
@ 2016-07-25 13:22             ` Rob Herring
  2016-07-25 20:02               ` Max Filippov
  2016-07-25 20:51             ` Guenter Roeck
  1 sibling, 1 reply; 11+ messages in thread
From: Rob Herring @ 2016-07-25 13:22 UTC (permalink / raw)
  To: Max Filippov; +Cc: Guenter Roeck, Chris Zankel, linux-xtensa, LKML, Kefeng Wang

On Mon, Jul 25, 2016 at 3:07 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
> On Sun, Jul 24, 2016 at 7:27 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>> On 07/24/2016 08:18 AM, Rob Herring wrote:
>>>
>>> On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
>>>>
>>>> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net>
>>>> wrote:
>>>>>
>>>>> On 07/23/2016 05:45 PM, Max Filippov wrote:
>>>>>>
>>>>>>
>>>>>> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net>
>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary
>>>>>>> of_platform_populate
>>>>>>> with default match table") dropped various include files from
>>>>>>> arch/xtensa/kernel/setup.c. This results in the following build error.
>>>>>>>
>>>>>>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
>>>>>>> arch/xtensa/kernel/setup.c:213:2: error:
>>>>>>>           implicit declaration of function ‘of_read_ulong’
>>>>>>>
>>>>>>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary
>>>>>>> of_platform_populate
>>>>>>> with default match table")
>>>>>>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
>>>>>>> Cc: Rob Herring <robh@kernel.org>
>>>>>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>>>>>> ---
>>>>>>> I would suggest to merge this patch into the commit causing the
>>>>>>> problem
>>>>>>> if possible.
>>>>>>>
>>>>>>>    arch/xtensa/kernel/setup.c | 1 +
>>>>>>>    1 file changed, 1 insertion(+)
>>>>>>
>>>>>>
>>>>>>
>>>>>> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
>>>>>>
>>>>>
>>>>> Heads up: xtensa images build after this patch, but the image that
>>>>> previously failed to build (generic_kc705_defconfig) doesn't boot,
>>>>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
>>>>> or by some other patch.
>>>>
>>>>
>>>> It seems to be booting, but serial console is non-functional.
>>>> With commit 69d99e6c0d621f ("xtensa: Remove unnecessary
>>>> of_platform_populate
>>>> with default match table") I see the following message during boot:
>>>>
>>>> [    6.375284] of_serial fd050020.serial: clk or clock-frequency not
>>>> defined
>>>>
>>>> Reverting that commit fixes serial console for me.
>>>> Any suggestions on what might go wrong?
>>>
>>>
>>> Probably the init order changed somehow and deferred probe is not
>>> supported correctly.
>>>
>>
>> While the message is due to -EPROBE_DEFER (and there should really be no
>> message
>> in this case), I suspect that the underlying problem is that of_clk_init()
>> is
>> now called way too early, before the clock source is fully initialized.
>> Specifically, the call now happens before the message "clocksource: Switched
>> to clocksource ccount", which at least looks suspicious.
>>
>> If I move of_clk_init() back into xtensa_device_probe(), to be called as
>> device_initcall(), everything is fine.
>
> The problem is in the way the main clock on xtfpga platform is set up:
> it is done by updating corresponding OF node's clock-frequency attribute
> and that must happen before the of_clk_init call.
> Looks like it's time to create a clock provider for xtfpga boards, something
> like the one attached.

I don't think we should require a DT update to fix this. I think we
should revert all but the removing of of_platform_populate line for
now.

Rob

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-25 13:22             ` Rob Herring
@ 2016-07-25 20:02               ` Max Filippov
  0 siblings, 0 replies; 11+ messages in thread
From: Max Filippov @ 2016-07-25 20:02 UTC (permalink / raw)
  To: Rob Herring; +Cc: Guenter Roeck, Chris Zankel, linux-xtensa, LKML, Kefeng Wang

On Mon, Jul 25, 2016 at 4:22 PM, Rob Herring <robh@kernel.org> wrote:
> On Mon, Jul 25, 2016 at 3:07 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
>> On Sun, Jul 24, 2016 at 7:27 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>>> On 07/24/2016 08:18 AM, Rob Herring wrote:
>>>> On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
>>>>> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net>
>>>>> wrote:
>>>>>> Heads up: xtensa images build after this patch, but the image that
>>>>>> previously failed to build (generic_kc705_defconfig) doesn't boot,
>>>>>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
>>>>>> or by some other patch.
>>>>>
>>>>> It seems to be booting, but serial console is non-functional.
>>>>> With commit 69d99e6c0d621f ("xtensa: Remove unnecessary
>>>>> of_platform_populate
>>>>> with default match table") I see the following message during boot:
>>>>>
>>>>> [    6.375284] of_serial fd050020.serial: clk or clock-frequency not
>>>>> defined
>>>>>
>>>>> Reverting that commit fixes serial console for me.
>>>>> Any suggestions on what might go wrong?
>>>>
>>>> Probably the init order changed somehow and deferred probe is not
>>>> supported correctly.
>>>
>>> While the message is due to -EPROBE_DEFER (and there should really be no
>>> message
>>> in this case), I suspect that the underlying problem is that of_clk_init()
>>> is
>>> now called way too early, before the clock source is fully initialized.
>>> Specifically, the call now happens before the message "clocksource: Switched
>>> to clocksource ccount", which at least looks suspicious.
>>>
>>> If I move of_clk_init() back into xtensa_device_probe(), to be called as
>>> device_initcall(), everything is fine.
>>
>> The problem is in the way the main clock on xtfpga platform is set up:
>> it is done by updating corresponding OF node's clock-frequency attribute
>> and that must happen before the of_clk_init call.
>> Looks like it's time to create a clock provider for xtfpga boards, something
>> like the one attached.
>
> I don't think we should require a DT update to fix this. I think we
> should revert all but the removing of of_platform_populate line for
> now.

Fine with me too. Should I send the revert?

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-25  8:07           ` Max Filippov
  2016-07-25 13:22             ` Rob Herring
@ 2016-07-25 20:51             ` Guenter Roeck
  2016-07-25 22:24               ` Max Filippov
  1 sibling, 1 reply; 11+ messages in thread
From: Guenter Roeck @ 2016-07-25 20:51 UTC (permalink / raw)
  To: Max Filippov; +Cc: Rob Herring, Chris Zankel, linux-xtensa, LKML, Kefeng Wang

On Mon, Jul 25, 2016 at 11:07:00AM +0300, Max Filippov wrote:
> On Sun, Jul 24, 2016 at 7:27 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> > On 07/24/2016 08:18 AM, Rob Herring wrote:
> >>
> >> On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
> >>>
> >>> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net>
> >>> wrote:
> >>>>
> >>>> On 07/23/2016 05:45 PM, Max Filippov wrote:
> >>>>>
> >>>>>
> >>>>> On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@roeck-us.net>
> >>>>> wrote:
> >>>>>>
> >>>>>>
> >>>>>> Commit 69d99e6c0d621f ("xtensa: Remove unnecessary
> >>>>>> of_platform_populate
> >>>>>> with default match table") dropped various include files from
> >>>>>> arch/xtensa/kernel/setup.c. This results in the following build error.
> >>>>>>
> >>>>>> arch/xtensa/kernel/setup.c: In function ‘xtensa_dt_io_area’:
> >>>>>> arch/xtensa/kernel/setup.c:213:2: error:
> >>>>>>           implicit declaration of function ‘of_read_ulong’
> >>>>>>
> >>>>>> Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary
> >>>>>> of_platform_populate
> >>>>>> with default match table")
> >>>>>> Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
> >>>>>> Cc: Rob Herring <robh@kernel.org>
> >>>>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> >>>>>> ---
> >>>>>> I would suggest to merge this patch into the commit causing the
> >>>>>> problem
> >>>>>> if possible.
> >>>>>>
> >>>>>>    arch/xtensa/kernel/setup.c | 1 +
> >>>>>>    1 file changed, 1 insertion(+)
> >>>>>
> >>>>>
> >>>>>
> >>>>> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
> >>>>>
> >>>>
> >>>> Heads up: xtensa images build after this patch, but the image that
> >>>> previously failed to build (generic_kc705_defconfig) doesn't boot,
> >>>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
> >>>> or by some other patch.
> >>>
> >>>
> >>> It seems to be booting, but serial console is non-functional.
> >>> With commit 69d99e6c0d621f ("xtensa: Remove unnecessary
> >>> of_platform_populate
> >>> with default match table") I see the following message during boot:
> >>>
> >>> [    6.375284] of_serial fd050020.serial: clk or clock-frequency not
> >>> defined
> >>>
> >>> Reverting that commit fixes serial console for me.
> >>> Any suggestions on what might go wrong?
> >>
> >>
> >> Probably the init order changed somehow and deferred probe is not
> >> supported correctly.
> >>
> >
> > While the message is due to -EPROBE_DEFER (and there should really be no
> > message
> > in this case), I suspect that the underlying problem is that of_clk_init()
> > is
> > now called way too early, before the clock source is fully initialized.
> > Specifically, the call now happens before the message "clocksource: Switched
> > to clocksource ccount", which at least looks suspicious.
> >
> > If I move of_clk_init() back into xtensa_device_probe(), to be called as
> > device_initcall(), everything is fine.
> 
> The problem is in the way the main clock on xtfpga platform is set up:
> it is done by updating corresponding OF node's clock-frequency attribute
> and that must happen before the of_clk_init call.
> Looks like it's time to create a clock provider for xtfpga boards, something
> like the one attached.
> 
> -- 
> Thanks.
> -- Max

> From 8aa959869060cb5ffbc06c4c25cfb0e6d81bc8b4 Mon Sep 17 00:00:00 2001
> From: Max Filippov <jcmvbkbc@gmail.com>
> Date: Mon, 25 Jul 2016 10:58:10 +0300
> Subject: [PATCH] xtensa: xtfpga: add clock provider
> 
> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>

In case you want to apply this patch:

Tested-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  arch/xtensa/boot/dts/xtfpga.dtsi     | 11 ++++++-----
>  arch/xtensa/platforms/xtfpga/setup.c | 32 ++++++++++++++++++++++++++++----
>  2 files changed, 34 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/xtensa/boot/dts/xtfpga.dtsi b/arch/xtensa/boot/dts/xtfpga.dtsi
> index cd45f9c..b49b5d4 100644
> --- a/arch/xtensa/boot/dts/xtfpga.dtsi
> +++ b/arch/xtensa/boot/dts/xtfpga.dtsi
> @@ -36,11 +36,6 @@
>  	};
>  
>  	clocks {
> -		osc: main-oscillator {
> -			#clock-cells = <0>;
> -			compatible = "fixed-clock";
> -		};
> -
>  		clk54: clk54 {
>  			#clock-cells = <0>;
>  			compatible = "fixed-clock";
> @@ -54,6 +49,12 @@
>  		compatible = "simple-bus";
>  		ranges = <0x00000000 0xf0000000 0x10000000>;
>  
> +		osc: main-oscillator {
> +			reg = <0x0d020004 0x4>;
> +			#clock-cells = <0>;
> +			compatible = "cdns,xtfpga-clock";
> +		};
> +
>  		serial0: serial@0d050020 {
>  			device_type = "serial";
>  			compatible = "ns16550a";
> diff --git a/arch/xtensa/platforms/xtfpga/setup.c b/arch/xtensa/platforms/xtfpga/setup.c
> index b509d1f..24f22e8 100644
> --- a/arch/xtensa/platforms/xtfpga/setup.c
> +++ b/arch/xtensa/platforms/xtfpga/setup.c
> @@ -26,6 +26,8 @@
>  #include <linux/console.h>
>  #include <linux/delay.h>
>  #include <linux/of.h>
> +#include <linux/clk-provider.h>
> +#include <linux/of_address.h>
>  
>  #include <asm/timex.h>
>  #include <asm/processor.h>
> @@ -135,14 +137,36 @@ static void __init update_local_mac(struct device_node *node)
>  	of_update_property(node, newmac);
>  }
>  
> +static void __init xtfpga_clk_setup(struct device_node *np)
> +{
> +	void __iomem *base = of_iomap(np, 0);
> +	struct clk *clk;
> +	u32 freq;
> +
> +	if (!base) {
> +		pr_err("%s: invalid address\n", np->name);
> +		return;
> +	}
> +
> +	freq = __raw_readl(base);
> +	clk = clk_register_fixed_rate(NULL, np->name, NULL, 0, freq);
> +
> +	if (IS_ERR(clk)) {
> +		pr_err("%s: clk registration failed\n", np->name);
> +		return;
> +	}
> +
> +	if (of_clk_add_provider(np, of_clk_src_simple_get, clk)) {
> +		pr_err("%s: clk provider registration failed\n", np->name);
> +		return;
> +	}
> +}
> +CLK_OF_DECLARE(xtfpga_clk, "cdns,xtfpga-clock", xtfpga_clk_setup);
> +
>  static int __init machine_setup(void)
>  {
> -	struct device_node *clock;
>  	struct device_node *eth = NULL;
>  
> -	for_each_node_by_name(clock, "main-oscillator")
> -		update_clock_frequency(clock);
> -
>  	if ((eth = of_find_compatible_node(eth, NULL, "opencores,ethoc")))
>  		update_local_mac(eth);
>  	return 0;
> -- 
> 2.1.4
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH -next] xtensa: Fix build error due to missing include file
  2016-07-25 20:51             ` Guenter Roeck
@ 2016-07-25 22:24               ` Max Filippov
  0 siblings, 0 replies; 11+ messages in thread
From: Max Filippov @ 2016-07-25 22:24 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Rob Herring, Chris Zankel, linux-xtensa, LKML, Kefeng Wang

On Mon, Jul 25, 2016 at 11:51 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> On Mon, Jul 25, 2016 at 11:07:00AM +0300, Max Filippov wrote:
>> >>> On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@roeck-us.net>
>> >>> wrote:
>> >>>>
>> >>>> Heads up: xtensa images build after this patch, but the image that
>> >>>> previously failed to build (generic_kc705_defconfig) doesn't boot,
>> >>>> at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
>> >>>> or by some other patch.
>>
>> The problem is in the way the main clock on xtfpga platform is set up:
>> it is done by updating corresponding OF node's clock-frequency attribute
>> and that must happen before the of_clk_init call.
>> Looks like it's time to create a clock provider for xtfpga boards, something
>> like the one attached.
>>
>> From 8aa959869060cb5ffbc06c4c25cfb0e6d81bc8b4 Mon Sep 17 00:00:00 2001
>> From: Max Filippov <jcmvbkbc@gmail.com>
>> Date: Mon, 25 Jul 2016 10:58:10 +0300
>> Subject: [PATCH] xtensa: xtfpga: add clock provider
>>
>> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
>
> In case you want to apply this patch:
>
> Tested-by: Guenter Roeck <linux@roeck-us.net>

Thanks. I'll definitely get back to it in this release cycle.

-- Max

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-07-25 22:24 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-24  0:24 [PATCH -next] xtensa: Fix build error due to missing include file Guenter Roeck
2016-07-24  0:45 ` Max Filippov
2016-07-24  6:00   ` Guenter Roeck
2016-07-24 14:20     ` Max Filippov
2016-07-24 15:18       ` Rob Herring
2016-07-24 16:27         ` Guenter Roeck
2016-07-25  8:07           ` Max Filippov
2016-07-25 13:22             ` Rob Herring
2016-07-25 20:02               ` Max Filippov
2016-07-25 20:51             ` Guenter Roeck
2016-07-25 22:24               ` Max Filippov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.