xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] A new PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE quirk and smp initialization callbacks for omap5
@ 2013-10-15  8:45 Chen Baozi
  2013-10-15  8:45 ` [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11 Chen Baozi
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Chen Baozi @ 2013-10-15  8:45 UTC (permalink / raw)
  To: Xen Developer List; +Cc: Chen Baozi

This series contains the work I've mentioned in the previous mail.
It is still under development. I plan to re-ship it after I boot
the dom0 kernel successfully again on my OMAP5 board. So this is just
supplement information for the last mail.

Chen Baozi (3):
  xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11
  xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE
  xen/arm: implement smp initialization callbacks for omap5

 xen/arch/arm/domain_build.c           |  3 ++-
 xen/arch/arm/platforms/omap5.c        | 37 ++++++++++++++++++++++++++++++++++-
 xen/include/asm-arm/platform.h        |  8 +++++++-
 xen/include/asm-arm/platforms/omap5.h |  3 +++
 4 files changed, 48 insertions(+), 3 deletions(-)

-- 
1.8.1.4

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

* [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11
  2013-10-15  8:45 [PATCH 0/3] A new PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE quirk and smp initialization callbacks for omap5 Chen Baozi
@ 2013-10-15  8:45 ` Chen Baozi
  2013-10-21 16:42   ` Julien Grall
  2013-10-15  8:45 ` [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE Chen Baozi
  2013-10-15  8:45 ` [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5 Chen Baozi
  2 siblings, 1 reply; 11+ messages in thread
From: Chen Baozi @ 2013-10-15  8:45 UTC (permalink / raw)
  To: Xen Developer List; +Cc: Chen Baozi


Signed-off-by: Chen Baozi <baozich@gmail.com>
---
 xen/include/asm-arm/platform.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/asm-arm/platform.h b/xen/include/asm-arm/platform.h
index dbd2a15..43afebb 100644
--- a/xen/include/asm-arm/platform.h
+++ b/xen/include/asm-arm/platform.h
@@ -41,7 +41,7 @@ struct platform_desc {
 
 /*
  * Quirk to map dom0 memory in 1:1
- * Usefull on platform where System MMU is not yet implemented
+ * Useful on platform where System MMU is not yet implemented
  */
 #define PLATFORM_QUIRK_DOM0_MAPPING_11 (1 << 0)
 
-- 
1.8.1.4

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

* [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE
  2013-10-15  8:45 [PATCH 0/3] A new PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE quirk and smp initialization callbacks for omap5 Chen Baozi
  2013-10-15  8:45 ` [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11 Chen Baozi
@ 2013-10-15  8:45 ` Chen Baozi
  2013-10-24 14:04   ` Ian Campbell
  2013-10-15  8:45 ` [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5 Chen Baozi
  2 siblings, 1 reply; 11+ messages in thread
From: Chen Baozi @ 2013-10-15  8:45 UTC (permalink / raw)
  To: Xen Developer List; +Cc: Chen Baozi

Add a new quirk to map all disabled device in dom0, for omap5 kernel would
try to access the modules that are listed in DT and then do a soft-reset to
get those modules to a known state.

Signed-off-by: Chen Baozi <baozich@gmail.com>
---
 xen/arch/arm/domain_build.c    | 3 ++-
 xen/arch/arm/platforms/omap5.c | 3 ++-
 xen/include/asm-arm/platform.h | 6 ++++++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 4f91327..b6f5b72 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -714,7 +714,8 @@ static int handle_node(struct domain *d, struct kernel_info *kinfo,
      *  solution can be use later for pass through.
      */
     if ( !dt_device_type_is_equal(np, "memory") &&
-         dt_device_is_available(np) )
+         (dt_device_is_available(np) ||
+          platform_has_quirk(PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE)))
     {
         res = map_device(d, np);
 
diff --git a/xen/arch/arm/platforms/omap5.c b/xen/arch/arm/platforms/omap5.c
index a40d016..a583e2b 100644
--- a/xen/arch/arm/platforms/omap5.c
+++ b/xen/arch/arm/platforms/omap5.c
@@ -123,7 +123,8 @@ static int omap5_specific_mapping(struct domain *d)
 
 static uint32_t omap5_quirks(void)
 {
-    return PLATFORM_QUIRK_DOM0_MAPPING_11;
+    return PLATFORM_QUIRK_DOM0_MAPPING_11 |
+           PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE;
 }
 
 static const char const *omap5_dt_compat[] __initdata =
diff --git a/xen/include/asm-arm/platform.h b/xen/include/asm-arm/platform.h
index 43afebb..09360a4 100644
--- a/xen/include/asm-arm/platform.h
+++ b/xen/include/asm-arm/platform.h
@@ -44,6 +44,12 @@ struct platform_desc {
  * Useful on platform where System MMU is not yet implemented
  */
 #define PLATFORM_QUIRK_DOM0_MAPPING_11 (1 << 0)
+/*
+ * Quirk to map disabled device
+ * Useful on platform where dom0 kernel would access device addresses
+ * whether it is disabled or not.
+ */
+#define PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE (1 << 1)
 
 int __init platform_init(void);
 int __init platform_init_time(void);
-- 
1.8.1.4

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

* [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5
  2013-10-15  8:45 [PATCH 0/3] A new PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE quirk and smp initialization callbacks for omap5 Chen Baozi
  2013-10-15  8:45 ` [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11 Chen Baozi
  2013-10-15  8:45 ` [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE Chen Baozi
@ 2013-10-15  8:45 ` Chen Baozi
  2013-10-23 13:59   ` Julien Grall
  2 siblings, 1 reply; 11+ messages in thread
From: Chen Baozi @ 2013-10-15  8:45 UTC (permalink / raw)
  To: Xen Developer List; +Cc: Chen Baozi


Signed-off-by: Chen Baozi <baozich@gmail.com>
---
 xen/arch/arm/platforms/omap5.c        | 34 ++++++++++++++++++++++++++++++++++
 xen/include/asm-arm/platforms/omap5.h |  3 +++
 2 files changed, 37 insertions(+)

diff --git a/xen/arch/arm/platforms/omap5.c b/xen/arch/arm/platforms/omap5.c
index a583e2b..b90e570 100644
--- a/xen/arch/arm/platforms/omap5.c
+++ b/xen/arch/arm/platforms/omap5.c
@@ -121,6 +121,38 @@ static int omap5_specific_mapping(struct domain *d)
     return 0;
 }
 
+static int __init omap5_smp_init(void)
+{
+    void __iomem *wugen_base;
+
+    wugen_base = ioremap_nocache(OMAP5_WKUPGEN_BASE, PAGE_SIZE);
+    if ( !wugen_base )
+    {
+        dprintk(XENLOG_ERR, "Unable to map omap5 MMIO\n");
+        return -EFAULT;
+    }
+
+    printk("Set AuxCoreBoot1 to %"PRIpaddr" (%p)\n",
+           __pa(init_secondary), init_secondary);
+    writel(__pa(init_secondary), wugen_base + OMAP_AUX_CORE_BOOT_1_OFFSET);
+
+    printk("Set AuxCoreBoot0 to 0x20\n");
+    writel(0x20, wugen_base + OMAP_AUX_CORE_BOOT_0_OFFSET);
+
+    iounmap(wugen_base);
+
+    return 0;
+}
+
+static int __init omap5_cpu_up(int cpu)
+{
+    /* Nothing to do here, the generic sev() will suffice to kick CPUs
+     * out of either the firmware or our own smp_up_cpu gate,
+     * depending on where they have ended up. */
+
+    return 0;
+}
+
 static uint32_t omap5_quirks(void)
 {
     return PLATFORM_QUIRK_DOM0_MAPPING_11 |
@@ -137,6 +169,8 @@ PLATFORM_START(omap5, "TI OMAP5")
     .compatible = omap5_dt_compat,
     .init_time = omap5_init_time,
     .specific_mapping = omap5_specific_mapping,
+    .smp_init = omap5_smp_init,
+    .cpu_up = omap5_cpu_up,
     .quirks = omap5_quirks,
 PLATFORM_END
 
diff --git a/xen/include/asm-arm/platforms/omap5.h b/xen/include/asm-arm/platforms/omap5.h
index dd8c6ca..c559c84 100644
--- a/xen/include/asm-arm/platforms/omap5.h
+++ b/xen/include/asm-arm/platforms/omap5.h
@@ -17,6 +17,9 @@
 #define OMAP5_WKUPGEN_BASE                      0x48281000
 #define OMAP5_SRAM_PA                           0x40300000
 
+#define OMAP_AUX_CORE_BOOT_0_OFFSET             0x800
+#define OMAP_AUX_CORE_BOOT_1_OFFSET             0x804
+
 #endif /* __ASM_ARM_PLATFORMS_OMAP5_H */
 
 /*
-- 
1.8.1.4

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

* Re: [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11
  2013-10-15  8:45 ` [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11 Chen Baozi
@ 2013-10-21 16:42   ` Julien Grall
  2013-10-22  1:06     ` Chen Baozi
  2013-10-24 14:03     ` Ian Campbell
  0 siblings, 2 replies; 11+ messages in thread
From: Julien Grall @ 2013-10-21 16:42 UTC (permalink / raw)
  To: Chen Baozi; +Cc: Ian Campbell, Xen Developer List

(+ Ian Campbell in CC)

On 10/15/2013 09:45 AM, Chen Baozi wrote:
>
> Signed-off-by: Chen Baozi <baozich@gmail.com>

If you don't mind, I think this patch can go upstream :).

Acked-by: Julien Grall <julien.grall@linaro.org>

> ---
>   xen/include/asm-arm/platform.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/include/asm-arm/platform.h b/xen/include/asm-arm/platform.h
> index dbd2a15..43afebb 100644
> --- a/xen/include/asm-arm/platform.h
> +++ b/xen/include/asm-arm/platform.h
> @@ -41,7 +41,7 @@ struct platform_desc {
>
>   /*
>    * Quirk to map dom0 memory in 1:1
> - * Usefull on platform where System MMU is not yet implemented
> + * Useful on platform where System MMU is not yet implemented
>    */
>   #define PLATFORM_QUIRK_DOM0_MAPPING_11 (1 << 0)
>
>

-- 
Julien Grall

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

* Re: [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11
  2013-10-21 16:42   ` Julien Grall
@ 2013-10-22  1:06     ` Chen Baozi
  2013-10-24 14:03     ` Ian Campbell
  1 sibling, 0 replies; 11+ messages in thread
From: Chen Baozi @ 2013-10-22  1:06 UTC (permalink / raw)
  To: Julien Grall; +Cc: Ian Campbell, Xen Developer List


On Oct 22, 2013, at 12:42 AM, Julien Grall <julien.grall@linaro.org> wrote:

> (+ Ian Campbell in CC)
> 
> On 10/15/2013 09:45 AM, Chen Baozi wrote:
>> 
>> Signed-off-by: Chen Baozi <baozich@gmail.com>
> 
> If you don't mind, I think this patch can go upstream :).

Never mind, ;-)

> 
> Acked-by: Julien Grall <julien.grall@linaro.org>
> 
>> ---
>>  xen/include/asm-arm/platform.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/xen/include/asm-arm/platform.h b/xen/include/asm-arm/platform.h
>> index dbd2a15..43afebb 100644
>> --- a/xen/include/asm-arm/platform.h
>> +++ b/xen/include/asm-arm/platform.h
>> @@ -41,7 +41,7 @@ struct platform_desc {
>> 
>>  /*
>>   * Quirk to map dom0 memory in 1:1
>> - * Usefull on platform where System MMU is not yet implemented
>> + * Useful on platform where System MMU is not yet implemented
>>   */
>>  #define PLATFORM_QUIRK_DOM0_MAPPING_11 (1 << 0)
>> 
>> 
> 
> -- 
> Julien Grall

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

* Re: [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5
  2013-10-15  8:45 ` [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5 Chen Baozi
@ 2013-10-23 13:59   ` Julien Grall
  2013-10-24 14:03     ` Ian Campbell
  0 siblings, 1 reply; 11+ messages in thread
From: Julien Grall @ 2013-10-23 13:59 UTC (permalink / raw)
  To: Chen Baozi, Xen Developer List; +Cc: Ian Campbell



On 10/15/2013 09:45 AM, Chen Baozi wrote:
>
> Signed-off-by: Chen Baozi <baozich@gmail.com>

If you don't modify the patch in the next version:

Acked-by: Julien Grall <julien.grall@linaro.org>

> ---
>   xen/arch/arm/platforms/omap5.c        | 34 ++++++++++++++++++++++++++++++++++
>   xen/include/asm-arm/platforms/omap5.h |  3 +++
>   2 files changed, 37 insertions(+)
>
> diff --git a/xen/arch/arm/platforms/omap5.c b/xen/arch/arm/platforms/omap5.c
> index a583e2b..b90e570 100644
> --- a/xen/arch/arm/platforms/omap5.c
> +++ b/xen/arch/arm/platforms/omap5.c
> @@ -121,6 +121,38 @@ static int omap5_specific_mapping(struct domain *d)
>       return 0;
>   }
>
> +static int __init omap5_smp_init(void)
> +{
> +    void __iomem *wugen_base;
> +
> +    wugen_base = ioremap_nocache(OMAP5_WKUPGEN_BASE, PAGE_SIZE);
> +    if ( !wugen_base )
> +    {
> +        dprintk(XENLOG_ERR, "Unable to map omap5 MMIO\n");
> +        return -EFAULT;
> +    }
> +
> +    printk("Set AuxCoreBoot1 to %"PRIpaddr" (%p)\n",
> +           __pa(init_secondary), init_secondary);
> +    writel(__pa(init_secondary), wugen_base + OMAP_AUX_CORE_BOOT_1_OFFSET);
> +
> +    printk("Set AuxCoreBoot0 to 0x20\n");
> +    writel(0x20, wugen_base + OMAP_AUX_CORE_BOOT_0_OFFSET);
> +
> +    iounmap(wugen_base);
> +
> +    return 0;
> +}
> +
> +static int __init omap5_cpu_up(int cpu)
> +{
> +    /* Nothing to do here, the generic sev() will suffice to kick CPUs
> +     * out of either the firmware or our own smp_up_cpu gate,
> +     * depending on where they have ended up. */
> +
> +    return 0;
> +}
> +
>   static uint32_t omap5_quirks(void)
>   {
>       return PLATFORM_QUIRK_DOM0_MAPPING_11 |
> @@ -137,6 +169,8 @@ PLATFORM_START(omap5, "TI OMAP5")
>       .compatible = omap5_dt_compat,
>       .init_time = omap5_init_time,
>       .specific_mapping = omap5_specific_mapping,
> +    .smp_init = omap5_smp_init,
> +    .cpu_up = omap5_cpu_up,
>       .quirks = omap5_quirks,
>   PLATFORM_END
>
> diff --git a/xen/include/asm-arm/platforms/omap5.h b/xen/include/asm-arm/platforms/omap5.h
> index dd8c6ca..c559c84 100644
> --- a/xen/include/asm-arm/platforms/omap5.h
> +++ b/xen/include/asm-arm/platforms/omap5.h
> @@ -17,6 +17,9 @@
>   #define OMAP5_WKUPGEN_BASE                      0x48281000
>   #define OMAP5_SRAM_PA                           0x40300000
>
> +#define OMAP_AUX_CORE_BOOT_0_OFFSET             0x800
> +#define OMAP_AUX_CORE_BOOT_1_OFFSET             0x804
> +
>   #endif /* __ASM_ARM_PLATFORMS_OMAP5_H */
>
>   /*
>

-- 
Julien Grall

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

* Re: [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11
  2013-10-21 16:42   ` Julien Grall
  2013-10-22  1:06     ` Chen Baozi
@ 2013-10-24 14:03     ` Ian Campbell
  1 sibling, 0 replies; 11+ messages in thread
From: Ian Campbell @ 2013-10-24 14:03 UTC (permalink / raw)
  To: Julien Grall; +Cc: Chen Baozi, Xen Developer List

On Mon, 2013-10-21 at 17:42 +0100, Julien Grall wrote:
> (+ Ian Campbell in CC)
> 
> On 10/15/2013 09:45 AM, Chen Baozi wrote:
> >
> > Signed-off-by: Chen Baozi <baozich@gmail.com>
> 
> If you don't mind, I think this patch can go upstream :).
> 
> Acked-by: Julien Grall <julien.grall@linaro.org>

Yep. Applied.

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

* Re: [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5
  2013-10-23 13:59   ` Julien Grall
@ 2013-10-24 14:03     ` Ian Campbell
  0 siblings, 0 replies; 11+ messages in thread
From: Ian Campbell @ 2013-10-24 14:03 UTC (permalink / raw)
  To: Julien Grall; +Cc: Chen Baozi, Xen Developer List

On Wed, 2013-10-23 at 14:59 +0100, Julien Grall wrote:
> 
> On 10/15/2013 09:45 AM, Chen Baozi wrote:
> >
> > Signed-off-by: Chen Baozi <baozich@gmail.com>
> 
> If you don't modify the patch in the next version:
> 
> Acked-by: Julien Grall <julien.grall@linaro.org>

Applied.

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

* Re: [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE
  2013-10-15  8:45 ` [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE Chen Baozi
@ 2013-10-24 14:04   ` Ian Campbell
  2013-11-05 17:19     ` Chen Baozi
  0 siblings, 1 reply; 11+ messages in thread
From: Ian Campbell @ 2013-10-24 14:04 UTC (permalink / raw)
  To: Chen Baozi; +Cc: Xen Developer List

On Tue, 2013-10-15 at 16:45 +0800, Chen Baozi wrote:
> Add a new quirk to map all disabled device in dom0, for omap5 kernel would
> try to access the modules that are listed in DT and then do a soft-reset to
> get those modules to a known state.
> 
> Signed-off-by: Chen Baozi <baozich@gmail.com>

Are we intending to run with this approach or is the kernel getting
fixed?

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

* Re: [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE
  2013-10-24 14:04   ` Ian Campbell
@ 2013-11-05 17:19     ` Chen Baozi
  0 siblings, 0 replies; 11+ messages in thread
From: Chen Baozi @ 2013-11-05 17:19 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Xen Developer List

Hi Ian,

Sorry for the late reply.

On Oct 24, 2013, at 10:04 PM, Ian Campbell <Ian.Campbell@citrix.com> wrote:

> On Tue, 2013-10-15 at 16:45 +0800, Chen Baozi wrote:
>> Add a new quirk to map all disabled device in dom0, for omap5 kernel would
>> try to access the modules that are listed in DT and then do a soft-reset to
>> get those modules to a known state.
>> 
>> Signed-off-by: Chen Baozi <baozich@gmail.com>
> 
> Are we intending to run with this approach or is the kernel getting
> fixed?

I prefer to run with this approach. After hacking the dom0 not to
initialize UART3's state, I booted dom0 again with this patch finally.
I think I could add more hacks to avoid using this patch booting
dom0, but I don't think those hacks are neat enough to be merged
to mainline kernel.

Cheers,

Baozi

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

end of thread, other threads:[~2013-11-05 17:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-15  8:45 [PATCH 0/3] A new PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE quirk and smp initialization callbacks for omap5 Chen Baozi
2013-10-15  8:45 ` [PATCH 1/3] xen/arm: fix a typo in comment of PLATFORM_QUIRK_DOM0_MAPPING_11 Chen Baozi
2013-10-21 16:42   ` Julien Grall
2013-10-22  1:06     ` Chen Baozi
2013-10-24 14:03     ` Ian Campbell
2013-10-15  8:45 ` [PATCH 2/3] xen/arm: Add PLATFORM_QUIRK_DOM0_MAP_DISABLED_DEVICE Chen Baozi
2013-10-24 14:04   ` Ian Campbell
2013-11-05 17:19     ` Chen Baozi
2013-10-15  8:45 ` [PATCH 3/3] xen/arm: implement smp initialization callbacks for omap5 Chen Baozi
2013-10-23 13:59   ` Julien Grall
2013-10-24 14:03     ` Ian Campbell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).