* [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).