From: Julien Grall <julien.grall@linaro.org>
To: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
Cc: patches@linaro.org, stefano.stabellini@citrix.com,
ian.campbell@citrix.com, Anup Patel <anup.patel@linaro.org>,
xen-devel@lists.xen.org
Subject: Re: [PATCH 1/4] xen: arm64: Add Basic Platform support for APM X-Gene Storm.
Date: Fri, 20 Sep 2013 13:09:44 +0100 [thread overview]
Message-ID: <523C3B08.1000909@linaro.org> (raw)
In-Reply-To: <1379670763-14895-2-git-send-email-pranavkumar@linaro.org>
On 09/20/2013 10:52 AM, Pranavkumar Sawargaonkar wrote:
> This patch adds following things:
> Early printk support for APM X-Gene platform.
Does the UART is compatible with 8250?
If so, can you rename the your debug-xgene-storm.inc in debug-8250.inc?
Future ARM64 server with 8250-compatible UART will be able to use the
same code.
Also, can you divide this patch in 2 part:
- Early printk support;
- Initial platform support.
> Initial platform stubs for APM X-Gene.
>
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> ---
> xen/arch/arm/Rules.mk | 5 +++
> xen/arch/arm/arm64/debug-xgene-storm.inc | 55 ++++++++++++++++++++++++++++++
> xen/arch/arm/platforms/Makefile | 1 +
> xen/arch/arm/platforms/xgene-storm.c | 57 ++++++++++++++++++++++++++++++++
> 4 files changed, 118 insertions(+)
> create mode 100644 xen/arch/arm/arm64/debug-xgene-storm.inc
> create mode 100644 xen/arch/arm/platforms/xgene-storm.c
>
> diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk
> index bd79b26..b36120e 100644
> --- a/xen/arch/arm/Rules.mk
> +++ b/xen/arch/arm/Rules.mk
> @@ -77,6 +77,11 @@ EARLY_PRINTK_INC := 8250
> EARLY_UART_BASE_ADDRESS := 0x01c28000
> EARLY_UART_REG_SHIFT := 2
> endif
> +ifeq ($(CONFIG_EARLY_PRINTK), xgene-storm)
> +EARLY_PRINTK_INC := xgene-storm
> +EARLY_PRINTK_BAUD := 115200
> +EARLY_UART_BASE_ADDRESS := 0x1c020000
> +endif
>
> ifneq ($(EARLY_PRINTK_INC),)
> EARLY_PRINTK := y
> diff --git a/xen/arch/arm/arm64/debug-xgene-storm.inc b/xen/arch/arm/arm64/debug-xgene-storm.inc
> new file mode 100644
> index 0000000..ebbb8d2
> --- /dev/null
> +++ b/xen/arch/arm/arm64/debug-xgene-storm.inc
> @@ -0,0 +1,55 @@
> +/*
> + * xen/arch/arm/arm64/debug-xgene-storm.inc
> + *
> + * X-Gene Storm specific debug code
> + *
> + * Copyright (c) 2013 Applied Micro.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <xen/8250-uart.h>
> +
> +#define XGENE_STORM_UART_LSR 0x14
> +#define XGENE_STORM_UART_THR 0x00
I guess these defines contains the shift (=4), right?
To be more generic, you should allow a different shift via
EARLY_UART_REG_SHIFT (see arm32/debug-8250.inc) and use this define.
> +
> +/* UART initialization
> + * rb: register which contains the UART base address
> + * rc: scratch register 1
> + * rd: scratch register 2 */
> +.macro early_uart_init rb rc rd
> +.endm
early_uart_init is only needed if EARLY_PRINTK_INIT_UART is defined.
In your case it's not defined, so you can remove this macro.
> +
> +/* UART wait UART to be ready to transmit
> + * xb: register which contains the UART base address
> + * c: scratch register */
> +.macro early_uart_ready xb c
> +1:
> + ldrb w\c, [\xb, #XGENE_STORM_UART_LSR]
> + and w\c, w\c, #UART_LSR_THRE
> + cmp w\c, #UART_LSR_THRE
> + b.ne 1b
> +.endm
> +
> +/* UART transmit character
> + * xb: register which contains the UART base address
> + * wt: register which contains the character to transmit */
> +.macro early_uart_transmit xb wt
> + /* UART_THR transmit holding */
> + strb \wt, [\xb, #XGENE_STORM_UART_THR]
> +.endm
> +
> +/*
> + * Local variables:
> + * mode: ASM
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile
> index 4aa82e8..8a6709f 100644
> --- a/xen/arch/arm/platforms/Makefile
> +++ b/xen/arch/arm/platforms/Makefile
> @@ -2,3 +2,4 @@ obj-y += vexpress.o
> obj-y += exynos5.o
> obj-y += midway.o
> obj-y += omap5.o
> +obj-y += xgene-storm.o
Shouldn't it be only enabled on ARM64?
> diff --git a/xen/arch/arm/platforms/xgene-storm.c b/xen/arch/arm/platforms/xgene-storm.c
> new file mode 100644
> index 0000000..8e2b3b6
> --- /dev/null
> +++ b/xen/arch/arm/platforms/xgene-storm.c
> @@ -0,0 +1,57 @@
> +/*
> + * xen/arch/arm/platforms/xgene-storm.c
> + *
> + * Applied Micro's X-Gene specific settings
> + *
> + * Pranavkumar Sawargaonkar <psawargaonkar@apm.com>
> + * Anup Patel <apatel@apm.com>
> + * Copyright (c) 2013 Applied Micro.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <xen/config.h>
> +#include <xen/device_tree.h>
> +#include <xen/domain_page.h>
> +#include <xen/mm.h>
> +#include <xen/vmap.h>
> +#include <asm/platform.h>
> +#include <asm/early_printk.h>
> +
> +static void xgene_storm_reset(void)
> +{
> +}
> +
> +static int xgene_storm_init(void)
> +{
> + return 0;
> +}
You don't need these empty functions, the platform code copes with empty
callback.
> +static const char const *xgene_storm_dt_compat[] __initdata =
> +{
> + "apm,xgene-storm",
> + NULL
> +};
> +
> +PLATFORM_START(xgene_storm, "APM X-GENE STORM")
> + .compatible = xgene_storm_dt_compat,
> + .init = xgene_storm_init,
> + .reset = xgene_storm_reset,
> +PLATFORM_END
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
>
--
Julien Grall
next prev parent reply other threads:[~2013-09-20 12:09 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-20 9:52 [PATCH 0/4] Initial patches for ARM64 based APM X-Gene Storm Pranavkumar Sawargaonkar
2013-09-20 9:52 ` [PATCH 1/4] xen: arm64: Add Basic Platform support for " Pranavkumar Sawargaonkar
2013-09-20 12:09 ` Julien Grall [this message]
2013-09-20 13:28 ` Pranavkumar Sawargaonkar
2013-09-20 13:38 ` Ian Campbell
2013-09-20 13:59 ` Pranavkumar Sawargaonkar
2013-09-20 14:06 ` Ian Campbell
2013-09-20 13:41 ` Julien Grall
2013-09-20 9:52 ` [PATCH 2/4] xen: arm64: Add APM implementor id to processor implementers Pranavkumar Sawargaonkar
2013-09-20 12:10 ` Julien Grall
2013-09-20 9:52 ` [PATCH 3/4] xen: drivers: char: Add Device Tree Based NS16550 UART driver Pranavkumar Sawargaonkar
2013-09-20 13:40 ` Ian Campbell
2013-09-20 13:55 ` Pranavkumar Sawargaonkar
2013-09-20 14:08 ` Ian Campbell
2013-09-20 9:52 ` [PATCH 4/4] xen: arm: arm64: Enabling compilation of device tree based ns16550 UART Pranavkumar Sawargaonkar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=523C3B08.1000909@linaro.org \
--to=julien.grall@linaro.org \
--cc=anup.patel@linaro.org \
--cc=ian.campbell@citrix.com \
--cc=patches@linaro.org \
--cc=pranavkumar@linaro.org \
--cc=stefano.stabellini@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.