Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-28 Thread Stefano Stabellini
On Thu, 28 Jan 2016, Shannon Zhao wrote:
> On 2016/1/28 19:27, Stefano Stabellini wrote:
> > On Thu, 28 Jan 2016, Shannon Zhao wrote:
> >> On 2016/1/28 18:44, Stefano Stabellini wrote:
> >>> On Thu, 28 Jan 2016, Shannon Zhao wrote:
> > On 2016/1/27 22:54, Stefano Stabellini wrote:
> >>> On Sat, 23 Jan 2016, Shannon Zhao wrote:
> >>> From: Shannon Zhao 
> >>>
> >>> acpi_boot_table_init() will be called in start_xen to get the 
> >>> RSDP and
> >>> all the table pointers. With this patch, we can get ACPI boot-time
> >>> tables from firmware on ARM64.
> >>>
> >>> Signed-off-by: Naresh Bhat 
> >>> Signed-off-by: Parth Dixit 
> >>> Signed-off-by: Shannon Zhao 
> >>> ---
> >>>  xen/arch/arm/acpi/Makefile |  1 +
> >>>  xen/arch/arm/acpi/boot.c   | 58 
> >>> ++
> >>>  xen/arch/arm/setup.c   |  4 
> >>>  3 files changed, 63 insertions(+)
> >>>  create mode 100644 xen/arch/arm/acpi/boot.c
> >>>
> >>> diff --git a/xen/arch/arm/acpi/Makefile 
> >>> b/xen/arch/arm/acpi/Makefile
> >>> index b5be22d..196c40a 100644
> >>> --- a/xen/arch/arm/acpi/Makefile
> >>> +++ b/xen/arch/arm/acpi/Makefile
> >>> @@ -1 +1,2 @@
> >>>  obj-y += lib.o
> >>> +obj-y += boot.o
> >>> diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
> >>> new file mode 100644
> >>> index 000..1570f7e
> >>> --- /dev/null
> >>> +++ b/xen/arch/arm/acpi/boot.c
> >>> @@ -0,0 +1,58 @@
> >>> +/*
> >>> + *  ARM Specific Low-Level ACPI Boot Support
> >>> + *
> >>> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
> >>> 
> >>> + *  Copyright (C) 2001 Jun Nakajima 
> >>> + *  Copyright (C) 2014, Naresh Bhat 
> >>> + *  Copyright (C) 2015, Shannon Zhao 
> >>> + *
> >>> + * 
> >>> ~~
> >>> + *
> >>> + *  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.
> >>> + *
> >>> + *  You should have received a copy of the GNU General Public 
> >>> License
> >>> + *  along with this program; if not, write to the Free Software
> >>> + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  
> >>> 02111-1307  USA
> >>> + *
> >>> + * 
> >>> ~~
> >>> + */
> >>> +
> >>> +#include 
> >>> +#include 
> >>> +
> >>> +#include 
> >>> +
> >>> +/*
> >>> + * acpi_boot_table_init() called from setup_arch(), always.
> >>> + *  1. find RSDP and get its address, and then find XSDT
> >>> + *  2. extract all tables and checksums them all
> >>> + *
> >>> + * return value: (currently ignored)
> >>> + *   0: success
> >>> + *   !0: failure
> >>> + *
> >>> + * We can parse ACPI boot-time tables such as FADT, MADT after
> >>> + * this function is called.
> >>> + */
> >>> +int __init acpi_boot_table_init(void)
> >>> +{
> >>> +int error;
> >>> +
> >>> +/* Initialize the ACPI boot-time table parser. */
> >>> +error = acpi_table_init();
> >>> +if ( error )
> >>> +{
> >>> +disable_acpi();
> >>> +return error;
> >>> +}
> >>> +
> >>> +return 0;
> >>> +}
> >>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> >>> index 0ba601e..c15a09d 100644
> >>> --- a/xen/arch/arm/setup.c
> >>> +++ b/xen/arch/arm/setup.c
> >>> @@ -36,6 +36,7 @@
> >>>  #include 
> >>>  #include 
> >>>  #include 
> >>> +#include 
> >>>  #include 
> >>>  

Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-28 Thread Stefano Stabellini
On Thu, 28 Jan 2016, Shannon Zhao wrote:
> On 2016/1/27 22:54, Stefano Stabellini wrote:
> > On Sat, 23 Jan 2016, Shannon Zhao wrote:
> >> > From: Shannon Zhao 
> >> > 
> >> > acpi_boot_table_init() will be called in start_xen to get the RSDP and
> >> > all the table pointers. With this patch, we can get ACPI boot-time
> >> > tables from firmware on ARM64.
> >> > 
> >> > Signed-off-by: Naresh Bhat 
> >> > Signed-off-by: Parth Dixit 
> >> > Signed-off-by: Shannon Zhao 
> >> > ---
> >> >  xen/arch/arm/acpi/Makefile |  1 +
> >> >  xen/arch/arm/acpi/boot.c   | 58 
> >> > ++
> >> >  xen/arch/arm/setup.c   |  4 
> >> >  3 files changed, 63 insertions(+)
> >> >  create mode 100644 xen/arch/arm/acpi/boot.c
> >> > 
> >> > diff --git a/xen/arch/arm/acpi/Makefile b/xen/arch/arm/acpi/Makefile
> >> > index b5be22d..196c40a 100644
> >> > --- a/xen/arch/arm/acpi/Makefile
> >> > +++ b/xen/arch/arm/acpi/Makefile
> >> > @@ -1 +1,2 @@
> >> >  obj-y += lib.o
> >> > +obj-y += boot.o
> >> > diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
> >> > new file mode 100644
> >> > index 000..1570f7e
> >> > --- /dev/null
> >> > +++ b/xen/arch/arm/acpi/boot.c
> >> > @@ -0,0 +1,58 @@
> >> > +/*
> >> > + *  ARM Specific Low-Level ACPI Boot Support
> >> > + *
> >> > + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
> >> > 
> >> > + *  Copyright (C) 2001 Jun Nakajima 
> >> > + *  Copyright (C) 2014, Naresh Bhat 
> >> > + *  Copyright (C) 2015, Shannon Zhao 
> >> > + *
> >> > + * 
> >> > ~~
> >> > + *
> >> > + *  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.
> >> > + *
> >> > + *  You should have received a copy of the GNU General Public License
> >> > + *  along with this program; if not, write to the Free Software
> >> > + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  
> >> > 02111-1307  USA
> >> > + *
> >> > + * 
> >> > ~~
> >> > + */
> >> > +
> >> > +#include 
> >> > +#include 
> >> > +
> >> > +#include 
> >> > +
> >> > +/*
> >> > + * acpi_boot_table_init() called from setup_arch(), always.
> >> > + *  1. find RSDP and get its address, and then find XSDT
> >> > + *  2. extract all tables and checksums them all
> >> > + *
> >> > + * return value: (currently ignored)
> >> > + *  0: success
> >> > + *  !0: failure
> >> > + *
> >> > + * We can parse ACPI boot-time tables such as FADT, MADT after
> >> > + * this function is called.
> >> > + */
> >> > +int __init acpi_boot_table_init(void)
> >> > +{
> >> > +int error;
> >> > +
> >> > +/* Initialize the ACPI boot-time table parser. */
> >> > +error = acpi_table_init();
> >> > +if ( error )
> >> > +{
> >> > +disable_acpi();
> >> > +return error;
> >> > +}
> >> > +
> >> > +return 0;
> >> > +}
> >> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> >> > index 0ba601e..c15a09d 100644
> >> > --- a/xen/arch/arm/setup.c
> >> > +++ b/xen/arch/arm/setup.c
> >> > @@ -36,6 +36,7 @@
> >> >  #include 
> >> >  #include 
> >> >  #include 
> >> > +#include 
> >> >  #include 
> >> >  #include 
> >> >  #include 
> >> > @@ -749,6 +750,9 @@ void __init start_xen(unsigned long boot_phys_offset,
> >> >  
> >> >  setup_mm(fdt_paddr, fdt_size);
> >> >  
> >> > +/* Parse the ACPI tables for possible boot-time configuration */
> >> > +acpi_boot_table_init();
> > As I asked before, why do you need to call acpi_boot_table_init() before
> > vm_init?  If you called acpi_boot_table_init() after vm_init(), you
> > could implement __acpi_map_table with vmap, which would be better.
> > 
> Yes, if we call acpi_boot_table_init() before vm_init, it needs to move
> end_boot_allocator after acpi_boot_table_init because it will assert in
> acpi_os_zalloc_memory.

Why does acpi_os_zalloc_memory assert exactly?


> TBH, I'm not sure where acpi_boot_table_init should be called. The
> current way refers to x86.

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-28 Thread Shannon Zhao


On 2016/1/27 22:54, Stefano Stabellini wrote:
> On Sat, 23 Jan 2016, Shannon Zhao wrote:
>> > From: Shannon Zhao 
>> > 
>> > acpi_boot_table_init() will be called in start_xen to get the RSDP and
>> > all the table pointers. With this patch, we can get ACPI boot-time
>> > tables from firmware on ARM64.
>> > 
>> > Signed-off-by: Naresh Bhat 
>> > Signed-off-by: Parth Dixit 
>> > Signed-off-by: Shannon Zhao 
>> > ---
>> >  xen/arch/arm/acpi/Makefile |  1 +
>> >  xen/arch/arm/acpi/boot.c   | 58 
>> > ++
>> >  xen/arch/arm/setup.c   |  4 
>> >  3 files changed, 63 insertions(+)
>> >  create mode 100644 xen/arch/arm/acpi/boot.c
>> > 
>> > diff --git a/xen/arch/arm/acpi/Makefile b/xen/arch/arm/acpi/Makefile
>> > index b5be22d..196c40a 100644
>> > --- a/xen/arch/arm/acpi/Makefile
>> > +++ b/xen/arch/arm/acpi/Makefile
>> > @@ -1 +1,2 @@
>> >  obj-y += lib.o
>> > +obj-y += boot.o
>> > diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
>> > new file mode 100644
>> > index 000..1570f7e
>> > --- /dev/null
>> > +++ b/xen/arch/arm/acpi/boot.c
>> > @@ -0,0 +1,58 @@
>> > +/*
>> > + *  ARM Specific Low-Level ACPI Boot Support
>> > + *
>> > + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
>> > 
>> > + *  Copyright (C) 2001 Jun Nakajima 
>> > + *  Copyright (C) 2014, Naresh Bhat 
>> > + *  Copyright (C) 2015, Shannon Zhao 
>> > + *
>> > + * 
>> > ~~
>> > + *
>> > + *  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.
>> > + *
>> > + *  You should have received a copy of the GNU General Public License
>> > + *  along with this program; if not, write to the Free Software
>> > + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
>> > USA
>> > + *
>> > + * 
>> > ~~
>> > + */
>> > +
>> > +#include 
>> > +#include 
>> > +
>> > +#include 
>> > +
>> > +/*
>> > + * acpi_boot_table_init() called from setup_arch(), always.
>> > + *  1. find RSDP and get its address, and then find XSDT
>> > + *  2. extract all tables and checksums them all
>> > + *
>> > + * return value: (currently ignored)
>> > + *0: success
>> > + *!0: failure
>> > + *
>> > + * We can parse ACPI boot-time tables such as FADT, MADT after
>> > + * this function is called.
>> > + */
>> > +int __init acpi_boot_table_init(void)
>> > +{
>> > +int error;
>> > +
>> > +/* Initialize the ACPI boot-time table parser. */
>> > +error = acpi_table_init();
>> > +if ( error )
>> > +{
>> > +disable_acpi();
>> > +return error;
>> > +}
>> > +
>> > +return 0;
>> > +}
>> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>> > index 0ba601e..c15a09d 100644
>> > --- a/xen/arch/arm/setup.c
>> > +++ b/xen/arch/arm/setup.c
>> > @@ -36,6 +36,7 @@
>> >  #include 
>> >  #include 
>> >  #include 
>> > +#include 
>> >  #include 
>> >  #include 
>> >  #include 
>> > @@ -749,6 +750,9 @@ void __init start_xen(unsigned long boot_phys_offset,
>> >  
>> >  setup_mm(fdt_paddr, fdt_size);
>> >  
>> > +/* Parse the ACPI tables for possible boot-time configuration */
>> > +acpi_boot_table_init();
> As I asked before, why do you need to call acpi_boot_table_init() before
> vm_init?  If you called acpi_boot_table_init() after vm_init(), you
> could implement __acpi_map_table with vmap, which would be better.
> 
Yes, if we call acpi_boot_table_init() before vm_init, it needs to move
end_boot_allocator after acpi_boot_table_init because it will assert in
acpi_os_zalloc_memory.
TBH, I'm not sure where acpi_boot_table_init should be called. The
current way refers to x86.

Thanks,
-- 
Shannon


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-28 Thread Shannon Zhao


On 2016/1/28 18:44, Stefano Stabellini wrote:
> On Thu, 28 Jan 2016, Shannon Zhao wrote:
>> > On 2016/1/27 22:54, Stefano Stabellini wrote:
>>> > > On Sat, 23 Jan 2016, Shannon Zhao wrote:
> > >> > From: Shannon Zhao 
> > >> > 
> > >> > acpi_boot_table_init() will be called in start_xen to get the RSDP 
> > >> > and
> > >> > all the table pointers. With this patch, we can get ACPI boot-time
> > >> > tables from firmware on ARM64.
> > >> > 
> > >> > Signed-off-by: Naresh Bhat 
> > >> > Signed-off-by: Parth Dixit 
> > >> > Signed-off-by: Shannon Zhao 
> > >> > ---
> > >> >  xen/arch/arm/acpi/Makefile |  1 +
> > >> >  xen/arch/arm/acpi/boot.c   | 58 
> > >> > ++
> > >> >  xen/arch/arm/setup.c   |  4 
> > >> >  3 files changed, 63 insertions(+)
> > >> >  create mode 100644 xen/arch/arm/acpi/boot.c
> > >> > 
> > >> > diff --git a/xen/arch/arm/acpi/Makefile 
> > >> > b/xen/arch/arm/acpi/Makefile
> > >> > index b5be22d..196c40a 100644
> > >> > --- a/xen/arch/arm/acpi/Makefile
> > >> > +++ b/xen/arch/arm/acpi/Makefile
> > >> > @@ -1 +1,2 @@
> > >> >  obj-y += lib.o
> > >> > +obj-y += boot.o
> > >> > diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
> > >> > new file mode 100644
> > >> > index 000..1570f7e
> > >> > --- /dev/null
> > >> > +++ b/xen/arch/arm/acpi/boot.c
> > >> > @@ -0,0 +1,58 @@
> > >> > +/*
> > >> > + *  ARM Specific Low-Level ACPI Boot Support
> > >> > + *
> > >> > + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
> > >> > 
> > >> > + *  Copyright (C) 2001 Jun Nakajima 
> > >> > + *  Copyright (C) 2014, Naresh Bhat 
> > >> > + *  Copyright (C) 2015, Shannon Zhao 
> > >> > + *
> > >> > + * 
> > >> > ~~
> > >> > + *
> > >> > + *  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.
> > >> > + *
> > >> > + *  You should have received a copy of the GNU General Public 
> > >> > License
> > >> > + *  along with this program; if not, write to the Free Software
> > >> > + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  
> > >> > 02111-1307  USA
> > >> > + *
> > >> > + * 
> > >> > ~~
> > >> > + */
> > >> > +
> > >> > +#include 
> > >> > +#include 
> > >> > +
> > >> > +#include 
> > >> > +
> > >> > +/*
> > >> > + * acpi_boot_table_init() called from setup_arch(), always.
> > >> > + *  1. find RSDP and get its address, and then find XSDT
> > >> > + *  2. extract all tables and checksums them all
> > >> > + *
> > >> > + * return value: (currently ignored)
> > >> > + *0: success
> > >> > + *!0: failure
> > >> > + *
> > >> > + * We can parse ACPI boot-time tables such as FADT, MADT after
> > >> > + * this function is called.
> > >> > + */
> > >> > +int __init acpi_boot_table_init(void)
> > >> > +{
> > >> > +int error;
> > >> > +
> > >> > +/* Initialize the ACPI boot-time table parser. */
> > >> > +error = acpi_table_init();
> > >> > +if ( error )
> > >> > +{
> > >> > +disable_acpi();
> > >> > +return error;
> > >> > +}
> > >> > +
> > >> > +return 0;
> > >> > +}
> > >> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> > >> > index 0ba601e..c15a09d 100644
> > >> > --- a/xen/arch/arm/setup.c
> > >> > +++ b/xen/arch/arm/setup.c
> > >> > @@ -36,6 +36,7 @@
> > >> >  #include 
> > >> >  #include 
> > >> >  #include 
> > >> > +#include 
> > >> >  #include 
> > >> >  #include 
> > >> >  #include 
> > >> > @@ -749,6 +750,9 @@ void __init start_xen(unsigned long 
> > >> > boot_phys_offset,
> > >> >  
> > >> >  setup_mm(fdt_paddr, fdt_size);
> > >> >  
> > >> > +/* Parse the ACPI tables for 

Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-28 Thread Stefano Stabellini
On Thu, 28 Jan 2016, Shannon Zhao wrote:
> On 2016/1/28 18:44, Stefano Stabellini wrote:
> > On Thu, 28 Jan 2016, Shannon Zhao wrote:
> >> > On 2016/1/27 22:54, Stefano Stabellini wrote:
> >>> > > On Sat, 23 Jan 2016, Shannon Zhao wrote:
> > > >> > From: Shannon Zhao 
> > > >> > 
> > > >> > acpi_boot_table_init() will be called in start_xen to get the 
> > > >> > RSDP and
> > > >> > all the table pointers. With this patch, we can get ACPI 
> > > >> > boot-time
> > > >> > tables from firmware on ARM64.
> > > >> > 
> > > >> > Signed-off-by: Naresh Bhat 
> > > >> > Signed-off-by: Parth Dixit 
> > > >> > Signed-off-by: Shannon Zhao 
> > > >> > ---
> > > >> >  xen/arch/arm/acpi/Makefile |  1 +
> > > >> >  xen/arch/arm/acpi/boot.c   | 58 
> > > >> > ++
> > > >> >  xen/arch/arm/setup.c   |  4 
> > > >> >  3 files changed, 63 insertions(+)
> > > >> >  create mode 100644 xen/arch/arm/acpi/boot.c
> > > >> > 
> > > >> > diff --git a/xen/arch/arm/acpi/Makefile 
> > > >> > b/xen/arch/arm/acpi/Makefile
> > > >> > index b5be22d..196c40a 100644
> > > >> > --- a/xen/arch/arm/acpi/Makefile
> > > >> > +++ b/xen/arch/arm/acpi/Makefile
> > > >> > @@ -1 +1,2 @@
> > > >> >  obj-y += lib.o
> > > >> > +obj-y += boot.o
> > > >> > diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
> > > >> > new file mode 100644
> > > >> > index 000..1570f7e
> > > >> > --- /dev/null
> > > >> > +++ b/xen/arch/arm/acpi/boot.c
> > > >> > @@ -0,0 +1,58 @@
> > > >> > +/*
> > > >> > + *  ARM Specific Low-Level ACPI Boot Support
> > > >> > + *
> > > >> > + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
> > > >> > 
> > > >> > + *  Copyright (C) 2001 Jun Nakajima 
> > > >> > + *  Copyright (C) 2014, Naresh Bhat 
> > > >> > + *  Copyright (C) 2015, Shannon Zhao 
> > > >> > + *
> > > >> > + * 
> > > >> > ~~
> > > >> > + *
> > > >> > + *  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.
> > > >> > + *
> > > >> > + *  You should have received a copy of the GNU General Public 
> > > >> > License
> > > >> > + *  along with this program; if not, write to the Free Software
> > > >> > + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  
> > > >> > 02111-1307  USA
> > > >> > + *
> > > >> > + * 
> > > >> > ~~
> > > >> > + */
> > > >> > +
> > > >> > +#include 
> > > >> > +#include 
> > > >> > +
> > > >> > +#include 
> > > >> > +
> > > >> > +/*
> > > >> > + * acpi_boot_table_init() called from setup_arch(), always.
> > > >> > + *  1. find RSDP and get its address, and then find XSDT
> > > >> > + *  2. extract all tables and checksums them all
> > > >> > + *
> > > >> > + * return value: (currently ignored)
> > > >> > + *  0: success
> > > >> > + *  !0: failure
> > > >> > + *
> > > >> > + * We can parse ACPI boot-time tables such as FADT, MADT after
> > > >> > + * this function is called.
> > > >> > + */
> > > >> > +int __init acpi_boot_table_init(void)
> > > >> > +{
> > > >> > +int error;
> > > >> > +
> > > >> > +/* Initialize the ACPI boot-time table parser. */
> > > >> > +error = acpi_table_init();
> > > >> > +if ( error )
> > > >> > +{
> > > >> > +disable_acpi();
> > > >> > +return error;
> > > >> > +}
> > > >> > +
> > > >> > +return 0;
> > > >> > +}
> > > >> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> > > >> > index 0ba601e..c15a09d 100644
> > > >> > --- a/xen/arch/arm/setup.c
> > > >> > +++ b/xen/arch/arm/setup.c
> > > >> > @@ -36,6 +36,7 @@
> > > >> >  #include 
> > > >> >  #include 
> > > >> >  #include 
> > > >> > +#include 

Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-28 Thread Shannon Zhao


On 2016/1/28 19:27, Stefano Stabellini wrote:
> On Thu, 28 Jan 2016, Shannon Zhao wrote:
>> On 2016/1/28 18:44, Stefano Stabellini wrote:
>>> On Thu, 28 Jan 2016, Shannon Zhao wrote:
> On 2016/1/27 22:54, Stefano Stabellini wrote:
>>> On Sat, 23 Jan 2016, Shannon Zhao wrote:
>>> From: Shannon Zhao 
>>>
>>> acpi_boot_table_init() will be called in start_xen to get the RSDP 
>>> and
>>> all the table pointers. With this patch, we can get ACPI boot-time
>>> tables from firmware on ARM64.
>>>
>>> Signed-off-by: Naresh Bhat 
>>> Signed-off-by: Parth Dixit 
>>> Signed-off-by: Shannon Zhao 
>>> ---
>>>  xen/arch/arm/acpi/Makefile |  1 +
>>>  xen/arch/arm/acpi/boot.c   | 58 
>>> ++
>>>  xen/arch/arm/setup.c   |  4 
>>>  3 files changed, 63 insertions(+)
>>>  create mode 100644 xen/arch/arm/acpi/boot.c
>>>
>>> diff --git a/xen/arch/arm/acpi/Makefile b/xen/arch/arm/acpi/Makefile
>>> index b5be22d..196c40a 100644
>>> --- a/xen/arch/arm/acpi/Makefile
>>> +++ b/xen/arch/arm/acpi/Makefile
>>> @@ -1 +1,2 @@
>>>  obj-y += lib.o
>>> +obj-y += boot.o
>>> diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
>>> new file mode 100644
>>> index 000..1570f7e
>>> --- /dev/null
>>> +++ b/xen/arch/arm/acpi/boot.c
>>> @@ -0,0 +1,58 @@
>>> +/*
>>> + *  ARM Specific Low-Level ACPI Boot Support
>>> + *
>>> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
>>> 
>>> + *  Copyright (C) 2001 Jun Nakajima 
>>> + *  Copyright (C) 2014, Naresh Bhat 
>>> + *  Copyright (C) 2015, Shannon Zhao 
>>> + *
>>> + * 
>>> ~~
>>> + *
>>> + *  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.
>>> + *
>>> + *  You should have received a copy of the GNU General Public 
>>> License
>>> + *  along with this program; if not, write to the Free Software
>>> + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  
>>> 02111-1307  USA
>>> + *
>>> + * 
>>> ~~
>>> + */
>>> +
>>> +#include 
>>> +#include 
>>> +
>>> +#include 
>>> +
>>> +/*
>>> + * acpi_boot_table_init() called from setup_arch(), always.
>>> + *  1. find RSDP and get its address, and then find XSDT
>>> + *  2. extract all tables and checksums them all
>>> + *
>>> + * return value: (currently ignored)
>>> + * 0: success
>>> + * !0: failure
>>> + *
>>> + * We can parse ACPI boot-time tables such as FADT, MADT after
>>> + * this function is called.
>>> + */
>>> +int __init acpi_boot_table_init(void)
>>> +{
>>> +int error;
>>> +
>>> +/* Initialize the ACPI boot-time table parser. */
>>> +error = acpi_table_init();
>>> +if ( error )
>>> +{
>>> +disable_acpi();
>>> +return error;
>>> +}
>>> +
>>> +return 0;
>>> +}
>>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>>> index 0ba601e..c15a09d 100644
>>> --- a/xen/arch/arm/setup.c
>>> +++ b/xen/arch/arm/setup.c
>>> @@ -36,6 +36,7 @@
>>>  #include 
>>>  #include 
>>>  #include 
>>> +#include 
>>>  #include 
>>>  #include 
>>>  #include 
>>> @@ -749,6 +750,9 @@ void __init start_xen(unsigned long 
>>> boot_phys_offset,
>>>  
>>>  setup_mm(fdt_paddr, fdt_size);
>>>  
>>> +/* Parse the ACPI tables for possible boot-time configuration 
>>> */
>>> +

Re: [Xen-devel] [PATCH v4 05/21] arm/acpi: Add basic ACPI initialization

2016-01-27 Thread Stefano Stabellini
On Sat, 23 Jan 2016, Shannon Zhao wrote:
> From: Shannon Zhao 
> 
> acpi_boot_table_init() will be called in start_xen to get the RSDP and
> all the table pointers. With this patch, we can get ACPI boot-time
> tables from firmware on ARM64.
> 
> Signed-off-by: Naresh Bhat 
> Signed-off-by: Parth Dixit 
> Signed-off-by: Shannon Zhao 
> ---
>  xen/arch/arm/acpi/Makefile |  1 +
>  xen/arch/arm/acpi/boot.c   | 58 
> ++
>  xen/arch/arm/setup.c   |  4 
>  3 files changed, 63 insertions(+)
>  create mode 100644 xen/arch/arm/acpi/boot.c
> 
> diff --git a/xen/arch/arm/acpi/Makefile b/xen/arch/arm/acpi/Makefile
> index b5be22d..196c40a 100644
> --- a/xen/arch/arm/acpi/Makefile
> +++ b/xen/arch/arm/acpi/Makefile
> @@ -1 +1,2 @@
>  obj-y += lib.o
> +obj-y += boot.o
> diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
> new file mode 100644
> index 000..1570f7e
> --- /dev/null
> +++ b/xen/arch/arm/acpi/boot.c
> @@ -0,0 +1,58 @@
> +/*
> + *  ARM Specific Low-Level ACPI Boot Support
> + *
> + *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
> + *  Copyright (C) 2001 Jun Nakajima 
> + *  Copyright (C) 2014, Naresh Bhat 
> + *  Copyright (C) 2015, Shannon Zhao 
> + *
> + * ~~
> + *
> + *  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.
> + *
> + *  You should have received a copy of the GNU General Public License
> + *  along with this program; if not, write to the Free Software
> + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> + *
> + * ~~
> + */
> +
> +#include 
> +#include 
> +
> +#include 
> +
> +/*
> + * acpi_boot_table_init() called from setup_arch(), always.
> + *  1. find RSDP and get its address, and then find XSDT
> + *  2. extract all tables and checksums them all
> + *
> + * return value: (currently ignored)
> + *   0: success
> + *   !0: failure
> + *
> + * We can parse ACPI boot-time tables such as FADT, MADT after
> + * this function is called.
> + */
> +int __init acpi_boot_table_init(void)
> +{
> +int error;
> +
> +/* Initialize the ACPI boot-time table parser. */
> +error = acpi_table_init();
> +if ( error )
> +{
> +disable_acpi();
> +return error;
> +}
> +
> +return 0;
> +}
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 0ba601e..c15a09d 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -36,6 +36,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -749,6 +750,9 @@ void __init start_xen(unsigned long boot_phys_offset,
>  
>  setup_mm(fdt_paddr, fdt_size);
>  
> +/* Parse the ACPI tables for possible boot-time configuration */
> +acpi_boot_table_init();

As I asked before, why do you need to call acpi_boot_table_init() before
vm_init?  If you called acpi_boot_table_init() after vm_init(), you
could implement __acpi_map_table with vmap, which would be better.



>  end_boot_allocator();
>  
>  vm_init();
> -- 
> 2.0.4
> 
> 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel