From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [V3 3/3] amd/seattle: Initial revision of AMD Seattle support Date: Thu, 02 Oct 2014 22:46:50 +0100 Message-ID: <542DC7CA.8020109@linaro.org> References: <1412285135-25468-1-git-send-email-suravee.suthikulpanit@amd.com> <1412285135-25468-4-git-send-email-suravee.suthikulpanit@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1412285135-25468-4-git-send-email-suravee.suthikulpanit@amd.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: suravee.suthikulpanit@amd.com, stefano.stabellini@eu.citrix.com, ian.campbell@citrix.com, konrad.wilk@oracle.com Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Hi Suravee, On 02/10/2014 22:25, suravee.suthikulpanit@amd.com wrote: > From: Suravee Suthikulpanit > > This patch add inital (minimal) platform support for AMD Seattle, > which mainly just define the matching ID, and specify system_off, > and system_reset mechanism. > > Initially, the firmware only support a subset of PSCI-0.2 functions, > system-off and sytem-reset. The mechanism for bring up auxiliary processors > is still using spin-table. > > Signed-off-by: Suravee Suthikulpanit I let you decide for the smc call... So: Reviewed-by: Julien Grall Regards, > --- > xen/arch/arm/platforms/Makefile | 1 + > xen/arch/arm/platforms/seattle.c | 65 ++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 66 insertions(+) > create mode 100644 xen/arch/arm/platforms/seattle.c > > diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile > index 680364f..e1fde6e 100644 > --- a/xen/arch/arm/platforms/Makefile > +++ b/xen/arch/arm/platforms/Makefile > @@ -3,4 +3,5 @@ obj-$(CONFIG_ARM_32) += exynos5.o > obj-$(CONFIG_ARM_32) += midway.o > obj-$(CONFIG_ARM_32) += omap5.o > obj-$(CONFIG_ARM_32) += sunxi.o > +obj-$(CONFIG_ARM_64) += seattle.o > obj-$(CONFIG_ARM_64) += xgene-storm.o > diff --git a/xen/arch/arm/platforms/seattle.c b/xen/arch/arm/platforms/seattle.c > new file mode 100644 > index 0000000..d298393 > --- /dev/null > +++ b/xen/arch/arm/platforms/seattle.c > @@ -0,0 +1,65 @@ > +/* > + * xen/arch/arm/seattle.c > + * > + * AMD Seattle specific settings > + * > + * Suravee Suthikulpanit > + * Copyright (c) 2014 Advance Micro Devices Inc. > + * > + * 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 > +#include > + > +static const char * const seattle_dt_compat[] __initconst = > +{ > + "amd,seattle", > + NULL > +}; > + > +/* Seattle firmware only implements PSCI handler for > + * system off and system reset at this point. > + * This is temporary until full PSCI-0.2 is supported. > + * Then, these function will be removed. > + */ > +static noinline void seattle_smc_psci(register_t func_id) > +{ > + asm volatile( > + "smc #0" > + : "+r" (func_id) > + :); > +} > + > +static void seattle_system_reset(void) > +{ > + seattle_smc_psci(PSCI_0_2_FN_SYSTEM_RESET); > +} > + > +static void seattle_system_off(void) > +{ > + seattle_smc_psci(PSCI_0_2_FN_SYSTEM_OFF); > +} > + > +PLATFORM_START(seattle, "SEATTLE") > + .compatible = seattle_dt_compat, > + .reset = seattle_system_reset, > + .poweroff = seattle_system_off, > +PLATFORM_END > + > +/* > + * Local variables: > + * mode: C > + * c-file-style: "BSD" > + * c-basic-offset: 4 > + * indent-tabs-mode: nil > + * End: > + */ > -- Julien Grall