Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-28 Thread Julien Grall

create ^
title it tools/acpi: Make mk_dsdt more architecture agnostic
severity it wishlist
thanks

On 28/11/16 08:02, Jan Beulich wrote:

On 25.11.16 at 18:59,  wrote:

On 25/11/16 17:00, Julien Grall wrote:

On 25/11/16 15:52, Jan Beulich wrote:

On 25.11.16 at 16:30,  wrote:

On 23/11/16 10:47, Jan Beulich wrote:

On 23.11.16 at 11:29,  wrote:

Building latest XEN master branch
(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform
using
the same yocto as here
https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X

I've
faced following issue:

Maximum error count (200) exceeded

/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+

gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
Error4084 -

 Object does not exist ^  (\_SB.MSUA)


Looking at the source I see that this statement gets included for
x86 only. Are you perhaps doing a cross build of the ARM tools
on an x86 host? If so, it looks like some work would be needed to
make that work (again? not sure if it ever worked), as there are
various build host architecture conditionals in mk_dsdt.c.


I gave a look at this error, I had in mind to replace all the #if
defined(__*__) by the CONFIG_* equivalent.

However, the CONFIG_* are not available for the tools. I guess we need
to add them in the tools config.h. Any opinions?


The CONFIG_* values are available in the Makefile (from
config/arm*.mk). I think it would be better if the tool was told
via command line option what architecture to build tables for.
That would imply converting the problematic #if-s to if()s. Of
course the per-arch #include-s at the top may be a problem
here, but then again I'm not convinced the full xen/arch-arm.h
is really needed here (I'm pretty sure including
xen/hvm/hvm_info_table.h would cause no issue for ARM, the
more that nominally this is an arch-independent header anyway).


FYI, I am only planning to fix the compilation issue as this is a
problem for some user.

Regarding hvm/hvm_info_table.h, It contains few things that are x86
specific (such as the PFN).

Furthermore, I don't think this header should be included on ARM because
it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS
the correct value for ARM guests.


I forgot to mention that xen/arch-arm.h is necessary in order to get
GUEST_MAX_VCPUS.


I think we should strive to solve this in a more elegant way, without
(almost) colliding definitions, and without the need to include stuff
we don't really need here. But yes, as a first step just fixing the
build issue without converting to runtime controlled behavior is going
to be fine. We just shouldn't put the issue fully to rest afterwards.

Jan



--
Julien Grall

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-28 Thread Jan Beulich
>>> On 25.11.16 at 18:59,  wrote:
> On 25/11/16 17:00, Julien Grall wrote:
>> On 25/11/16 15:52, Jan Beulich wrote:
>> On 25.11.16 at 16:30,  wrote:
 On 23/11/16 10:47, Jan Beulich wrote:
 On 23.11.16 at 11:29,  wrote:
>> Building latest XEN master branch
>> (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform
>> using
>> the same yocto as here
>> https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X
>>  
>>
>> I've
>> faced following issue:
>>
>> Maximum error count (200) exceeded
>>
>> /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
>>
>> gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
>>  3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
>> Error4084 -
>>
>>  Object does not exist ^  (\_SB.MSUA)
>
> Looking at the source I see that this statement gets included for
> x86 only. Are you perhaps doing a cross build of the ARM tools
> on an x86 host? If so, it looks like some work would be needed to
> make that work (again? not sure if it ever worked), as there are
> various build host architecture conditionals in mk_dsdt.c.

 I gave a look at this error, I had in mind to replace all the #if
 defined(__*__) by the CONFIG_* equivalent.

 However, the CONFIG_* are not available for the tools. I guess we need
 to add them in the tools config.h. Any opinions?
>>>
>>> The CONFIG_* values are available in the Makefile (from
>>> config/arm*.mk). I think it would be better if the tool was told
>>> via command line option what architecture to build tables for.
>>> That would imply converting the problematic #if-s to if()s. Of
>>> course the per-arch #include-s at the top may be a problem
>>> here, but then again I'm not convinced the full xen/arch-arm.h
>>> is really needed here (I'm pretty sure including
>>> xen/hvm/hvm_info_table.h would cause no issue for ARM, the
>>> more that nominally this is an arch-independent header anyway).
>>
>> FYI, I am only planning to fix the compilation issue as this is a
>> problem for some user.
>>
>> Regarding hvm/hvm_info_table.h, It contains few things that are x86
>> specific (such as the PFN).
>>
>> Furthermore, I don't think this header should be included on ARM because
>> it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS
>> the correct value for ARM guests.
> 
> I forgot to mention that xen/arch-arm.h is necessary in order to get 
> GUEST_MAX_VCPUS.

I think we should strive to solve this in a more elegant way, without
(almost) colliding definitions, and without the need to include stuff
we don't really need here. But yes, as a first step just fixing the
build issue without converting to runtime controlled behavior is going
to be fine. We just shouldn't put the issue fully to rest afterwards.

Jan


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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-25 Thread Julien Grall

Hi,

On 25/11/16 17:00, Julien Grall wrote:

On 25/11/16 15:52, Jan Beulich wrote:

On 25.11.16 at 16:30,  wrote:

On 23/11/16 10:47, Jan Beulich wrote:

On 23.11.16 at 11:29,  wrote:

Building latest XEN master branch
(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform
using
the same yocto as here
https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X

I've
faced following issue:

Maximum error count (200) exceeded

/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+

gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
Error4084 -

 Object does not exist ^  (\_SB.MSUA)


Looking at the source I see that this statement gets included for
x86 only. Are you perhaps doing a cross build of the ARM tools
on an x86 host? If so, it looks like some work would be needed to
make that work (again? not sure if it ever worked), as there are
various build host architecture conditionals in mk_dsdt.c.


I gave a look at this error, I had in mind to replace all the #if
defined(__*__) by the CONFIG_* equivalent.

However, the CONFIG_* are not available for the tools. I guess we need
to add them in the tools config.h. Any opinions?


The CONFIG_* values are available in the Makefile (from
config/arm*.mk). I think it would be better if the tool was told
via command line option what architecture to build tables for.
That would imply converting the problematic #if-s to if()s. Of
course the per-arch #include-s at the top may be a problem
here, but then again I'm not convinced the full xen/arch-arm.h
is really needed here (I'm pretty sure including
xen/hvm/hvm_info_table.h would cause no issue for ARM, the
more that nominally this is an arch-independent header anyway).


FYI, I am only planning to fix the compilation issue as this is a
problem for some user.

Regarding hvm/hvm_info_table.h, It contains few things that are x86
specific (such as the PFN).

Furthermore, I don't think this header should be included on ARM because
it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS
the correct value for ARM guests.


I forgot to mention that xen/arch-arm.h is necessary in order to get 
GUEST_MAX_VCPUS.


Regards,

--
Julien Grall

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-25 Thread Julien Grall

Hi Wei,

On 25/11/16 15:55, Wei Liu wrote:

On Fri, Nov 25, 2016 at 03:30:44PM +, Julien Grall wrote:

Hi all,

On 23/11/16 10:47, Jan Beulich wrote:

On 23.11.16 at 11:29,  wrote:

Building latest XEN master branch
(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
the same yocto as here
https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X
I've
faced following issue:

Maximum error count (200) exceeded

/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
Error4084 -

Object does not exist ^  (\_SB.MSUA)


Looking at the source I see that this statement gets included for
x86 only. Are you perhaps doing a cross build of the ARM tools
on an x86 host? If so, it looks like some work would be needed to
make that work (again? not sure if it ever worked), as there are
various build host architecture conditionals in mk_dsdt.c.


I gave a look at this error, I had in mind to replace all the #if
defined(__*__) by the CONFIG_* equivalent.

However, the CONFIG_* are not available for the tools. I guess we need to
add them in the tools config.h. Any opinions?


I would rather we limit the scope to libacpi.

How do you cross-compile tools?

If CONFIG_ARM_64 is usable within Makefile, we can do something like:

 MKDSDT_CFLAGS-$(CONFIG_ARM_64) = -DCONFIG_ARM_64
 MKDSDT_CFLAGS-$(CONFIG_X86) = -DCONFIG_X86

Then add MKDIST_CFLAGS-y to mkdsdt's build rune.

Change mkdsdt.c source code accordingly.


This would work. I was actually expecting a nicer way :).

I will prepare a patch based on this suggestion.

Cheers,

--
Julien Grall

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-25 Thread Julien Grall

Hi Jan,

On 25/11/16 15:52, Jan Beulich wrote:

On 25.11.16 at 16:30,  wrote:

On 23/11/16 10:47, Jan Beulich wrote:

On 23.11.16 at 11:29,  wrote:

Building latest XEN master branch
(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
the same yocto as here
https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X
I've
faced following issue:

Maximum error count (200) exceeded

/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
Error4084 -

 Object does not exist ^  (\_SB.MSUA)


Looking at the source I see that this statement gets included for
x86 only. Are you perhaps doing a cross build of the ARM tools
on an x86 host? If so, it looks like some work would be needed to
make that work (again? not sure if it ever worked), as there are
various build host architecture conditionals in mk_dsdt.c.


I gave a look at this error, I had in mind to replace all the #if
defined(__*__) by the CONFIG_* equivalent.

However, the CONFIG_* are not available for the tools. I guess we need
to add them in the tools config.h. Any opinions?


The CONFIG_* values are available in the Makefile (from
config/arm*.mk). I think it would be better if the tool was told
via command line option what architecture to build tables for.
That would imply converting the problematic #if-s to if()s. Of
course the per-arch #include-s at the top may be a problem
here, but then again I'm not convinced the full xen/arch-arm.h
is really needed here (I'm pretty sure including
xen/hvm/hvm_info_table.h would cause no issue for ARM, the
more that nominally this is an arch-independent header anyway).


FYI, I am only planning to fix the compilation issue as this is a 
problem for some user.


Regarding hvm/hvm_info_table.h, It contains few things that are x86 
specific (such as the PFN).


Furthermore, I don't think this header should be included on ARM because 
it defines HVM_MAX_VCPUS and may cause confusion with GUEST_MAX_VCPUS 
the correct value for ARM guests.


Regards,

--
Julien Grall

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-25 Thread Wei Liu
On Fri, Nov 25, 2016 at 03:30:44PM +, Julien Grall wrote:
> Hi all,
> 
> On 23/11/16 10:47, Jan Beulich wrote:
> On 23.11.16 at 11:29,  wrote:
> >>Building latest XEN master branch
> >>(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
> >>the same yocto as here
> >>https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X
> >>I've
> >>faced following issue:
> >>
> >>Maximum error count (200) exceeded
> >>
> >>/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
> >>gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
> >> 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
> >>Error4084 -
> >>
> >> Object does not exist ^  (\_SB.MSUA)
> >
> >Looking at the source I see that this statement gets included for
> >x86 only. Are you perhaps doing a cross build of the ARM tools
> >on an x86 host? If so, it looks like some work would be needed to
> >make that work (again? not sure if it ever worked), as there are
> >various build host architecture conditionals in mk_dsdt.c.
> 
> I gave a look at this error, I had in mind to replace all the #if
> defined(__*__) by the CONFIG_* equivalent.
> 
> However, the CONFIG_* are not available for the tools. I guess we need to
> add them in the tools config.h. Any opinions?

I would rather we limit the scope to libacpi.

How do you cross-compile tools?

If CONFIG_ARM_64 is usable within Makefile, we can do something like:

 MKDSDT_CFLAGS-$(CONFIG_ARM_64) = -DCONFIG_ARM_64
 MKDSDT_CFLAGS-$(CONFIG_X86) = -DCONFIG_X86

Then add MKDIST_CFLAGS-y to mkdsdt's build rune.

Change mkdsdt.c source code accordingly.


> 
> Cheers,
> 
> -- 
> Julien Grall

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-25 Thread Jan Beulich
>>> On 25.11.16 at 16:30,  wrote:
> On 23/11/16 10:47, Jan Beulich wrote:
> On 23.11.16 at 11:29,  wrote:
>>> Building latest XEN master branch
>>> (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
>>> the same yocto as here
>>> https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X 
>>> I've
>>> faced following issue:
>>>
>>> Maximum error count (200) exceeded
>>>
>>> /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
>>> gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
>>>  3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
>>> Error4084 -
>>>
>>>  Object does not exist ^  (\_SB.MSUA)
>>
>> Looking at the source I see that this statement gets included for
>> x86 only. Are you perhaps doing a cross build of the ARM tools
>> on an x86 host? If so, it looks like some work would be needed to
>> make that work (again? not sure if it ever worked), as there are
>> various build host architecture conditionals in mk_dsdt.c.
> 
> I gave a look at this error, I had in mind to replace all the #if 
> defined(__*__) by the CONFIG_* equivalent.
> 
> However, the CONFIG_* are not available for the tools. I guess we need 
> to add them in the tools config.h. Any opinions?

The CONFIG_* values are available in the Makefile (from
config/arm*.mk). I think it would be better if the tool was told
via command line option what architecture to build tables for.
That would imply converting the problematic #if-s to if()s. Of
course the per-arch #include-s at the top may be a problem
here, but then again I'm not convinced the full xen/arch-arm.h
is really needed here (I'm pretty sure including
xen/hvm/hvm_info_table.h would cause no issue for ARM, the
more that nominally this is an arch-independent header anyway).

Jan


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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-25 Thread Julien Grall

Hi all,

On 23/11/16 10:47, Jan Beulich wrote:

On 23.11.16 at 11:29,  wrote:

Building latest XEN master branch
(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
the same yocto as here
https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X
I've
faced following issue:

Maximum error count (200) exceeded

/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
Error4084 -

 Object does not exist ^  (\_SB.MSUA)


Looking at the source I see that this statement gets included for
x86 only. Are you perhaps doing a cross build of the ARM tools
on an x86 host? If so, it looks like some work would be needed to
make that work (again? not sure if it ever worked), as there are
various build host architecture conditionals in mk_dsdt.c.


I gave a look at this error, I had in mind to replace all the #if 
defined(__*__) by the CONFIG_* equivalent.


However, the CONFIG_* are not available for the tools. I guess we need 
to add them in the tools config.h. Any opinions?


Cheers,

--
Julien Grall

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-23 Thread Andrii Anisov
> Looking at the source I see that this statement gets included for
> x86 only. Are you perhaps doing a cross build of the ARM tools
> on an x86 host?
Indeed. I do.

Sincerely,
Andrii Anisov.

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


Re: [Xen-devel] XEN tools for ARM64 build issue

2016-11-23 Thread Jan Beulich
>>> On 23.11.16 at 11:29,  wrote:
> Building latest XEN master branch
> (58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
> the same yocto as here
> https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X 
> I've
> faced following issue:
> 
> Maximum error count (200) exceeded
> 
> /home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+
> gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
>  3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
> Error4084 -
> 
>  Object does not exist ^  (\_SB.MSUA)

Looking at the source I see that this statement gets included for
x86 only. Are you perhaps doing a cross build of the ARM tools
on an x86 host? If so, it looks like some work would be needed to
make that work (again? not sure if it ever worked), as there are
various build host architecture conditionals in mk_dsdt.c.

Shannon, it was you who introduced this (in commit c4ac107799),
so would you please take a look?

Jan


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


[Xen-devel] XEN tools for ARM64 build issue

2016-11-23 Thread Andrii Anisov
Dear all,

Building latest XEN master branch
(58bd0c7985890e0292212f94a56235228a3445c3) for salvator-x platform using
the same yocto as here
https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Salvator-X
I've
faced following issue:

Maximum error count (200) exceeded

/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
 3: OperationRegion ( MSUM, SystemMemory, \_SB.MSUA, 1 )
Error4084 -

 Object does not exist ^  (\_SB.MSUA)
/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
 8: If ( LLess(Arg0, NCPU) ) {
Error4084 -

   Object does not exist ^  (NCPU)
/home/aanisov/DEV/salvatorx-new/build/tmp/work/aarch64-poky-linux/xen/4.8.0+gitAUTOINC+58bd0c7985-r0/git/tools/libxl/dsdt_anycpu_arm.asl
16: OperationRegion ( MATR, SystemMemory, Add(\_SB.MAPA,
0), 8 )
Error4084 -

 Object does not exist ^  (\_SB.MAPA)

See attached full log [log.do_compile.14752.tbz2].
The original yocto adopts iasl 20120215. I upgraded iasl to 20160527, but
nothing noticeably to me changed, see [log.do_compile.18488.tbz2].

Unfortunately I'm not really familiar with the ACPI stuff so have no ideas
about the issue.
Any suggestions?

Sincerely,
Andrii Anisov.


log.do_compile.14752.tbz2
Description: application/bzip-compressed-tar


log.do_compile.18488.tbz2
Description: application/bzip-compressed-tar
___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel