All of lore.kernel.org
 help / color / mirror / Atom feed
* removal of ia64 port
@ 2012-03-21  8:45 Jan Beulich
  2012-03-22 10:58 ` Keir Fraser
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Jan Beulich @ 2012-03-21  8:45 UTC (permalink / raw)
  To: KUWAMURA Shin'ya, xen-devel; +Cc: xen-ia64-devel

Given that the ia64 port hasn't really been maintained for the last couple
of years (I am apparently the only one to try to keep it building at least,
but I suspect that it has been non-functional for quite a while), I'd like to
propose to remove the port. After quite some time of trying to get an
opinion from Intel on this, I was now notified of their agreement to this
move.

>From my pov, the only thing to discuss here is whether this should
happen right away, or after 4.2 went out (then with a formal removal
proposal in that release - the port's state isn't being reflected correctly
anyway in ./MAINTAINERS afaict).

Thoughts?

Thanks, Jan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-21  8:45 removal of ia64 port Jan Beulich
@ 2012-03-22 10:58 ` Keir Fraser
  2012-03-22 11:04   ` Jan Beulich
  2012-03-23  6:52 ` KUWAMURA Shin'ya
       [not found] ` <20120323.155249.425911897.kuwa@jp.fujitsu.com>
  2 siblings, 1 reply; 13+ messages in thread
From: Keir Fraser @ 2012-03-22 10:58 UTC (permalink / raw)
  To: Jan Beulich, KUWAMURA Shin'ya, xen-devel; +Cc: xen-ia64-devel

On 21/03/2012 08:45, "Jan Beulich" <JBeulich@suse.com> wrote:

> Given that the ia64 port hasn't really been maintained for the last couple
> of years (I am apparently the only one to try to keep it building at least,
> but I suspect that it has been non-functional for quite a while), I'd like to
> propose to remove the port. After quite some time of trying to get an
> opinion from Intel on this, I was now notified of their agreement to this
> move.
> 
> From my pov, the only thing to discuss here is whether this should
> happen right away, or after 4.2 went out (then with a formal removal
> proposal in that release - the port's state isn't being reflected correctly
> anyway in ./MAINTAINERS afaict).
> 
> Thoughts?

I don't think it would be unreasonable to remove it ahead of 4.2. It's not
been working for a long time now.

 -- Keir

> Thanks, Jan
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-22 10:58 ` Keir Fraser
@ 2012-03-22 11:04   ` Jan Beulich
  2012-03-22 11:19     ` Keir Fraser
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Beulich @ 2012-03-22 11:04 UTC (permalink / raw)
  To: KUWAMURA Shin'ya, Keir Fraser; +Cc: xen-ia64-devel, xen-devel

>>> On 22.03.12 at 11:58, Keir Fraser <keir@xen.org> wrote:
> On 21/03/2012 08:45, "Jan Beulich" <JBeulich@suse.com> wrote:
> 
>> Given that the ia64 port hasn't really been maintained for the last couple
>> of years (I am apparently the only one to try to keep it building at least,
>> but I suspect that it has been non-functional for quite a while), I'd like to
>> propose to remove the port. After quite some time of trying to get an
>> opinion from Intel on this, I was now notified of their agreement to this
>> move.
>> 
>> From my pov, the only thing to discuss here is whether this should
>> happen right away, or after 4.2 went out (then with a formal removal
>> proposal in that release - the port's state isn't being reflected correctly
>> anyway in ./MAINTAINERS afaict).
>> 
>> Thoughts?
> 
> I don't think it would be unreasonable to remove it ahead of 4.2. It's not
> been working for a long time now.

Then how about waiting a few more days for eventual feedback from
the supposed maintainer or the ia64 list, but remove it the latest right
before -rc1?

Jan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-22 11:04   ` Jan Beulich
@ 2012-03-22 11:19     ` Keir Fraser
  2012-03-22 12:10       ` Ian Campbell
  0 siblings, 1 reply; 13+ messages in thread
From: Keir Fraser @ 2012-03-22 11:19 UTC (permalink / raw)
  To: Jan Beulich, KUWAMURA Shin'ya
  Cc: Ian Campbell, xen-ia64-devel, Lars Kurth, xen-devel

On 22/03/2012 11:04, "Jan Beulich" <JBeulich@suse.com> wrote:

>>>> On 22.03.12 at 11:58, Keir Fraser <keir@xen.org> wrote:
>> On 21/03/2012 08:45, "Jan Beulich" <JBeulich@suse.com> wrote:
>> 
>>> Given that the ia64 port hasn't really been maintained for the last couple
>>> of years (I am apparently the only one to try to keep it building at least,
>>> but I suspect that it has been non-functional for quite a while), I'd like
>>> to
>>> propose to remove the port. After quite some time of trying to get an
>>> opinion from Intel on this, I was now notified of their agreement to this
>>> move.
>>> 
>>> From my pov, the only thing to discuss here is whether this should
>>> happen right away, or after 4.2 went out (then with a formal removal
>>> proposal in that release - the port's state isn't being reflected correctly
>>> anyway in ./MAINTAINERS afaict).
>>> 
>>> Thoughts?
>> 
>> I don't think it would be unreasonable to remove it ahead of 4.2. It's not
>> been working for a long time now.
> 
> Then how about waiting a few more days for eventual feedback from
> the supposed maintainer or the ia64 list, but remove it the latest right
> before -rc1?

Cc Ian Campbell, who is managing the release process. Also Lars, who may
have an opinion on protocol for removing a port. However, as far as my own
vote counts these days, I agree and see no reason for a long-unmaintained
port to hang around during the 4.2 release process.

 -- Keir

> Jan
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-22 11:19     ` Keir Fraser
@ 2012-03-22 12:10       ` Ian Campbell
  0 siblings, 0 replies; 13+ messages in thread
From: Ian Campbell @ 2012-03-22 12:10 UTC (permalink / raw)
  To: Keir Fraser
  Cc: KUWAMURA Shin'ya, xen-ia64-devel, Lars Kurth, Jan Beulich, xen-devel

On Thu, 2012-03-22 at 11:19 +0000, Keir Fraser wrote:
> On 22/03/2012 11:04, "Jan Beulich" <JBeulich@suse.com> wrote:
> 
> >>>> On 22.03.12 at 11:58, Keir Fraser <keir@xen.org> wrote:
> >> On 21/03/2012 08:45, "Jan Beulich" <JBeulich@suse.com> wrote:
> >> 
> >>> Given that the ia64 port hasn't really been maintained for the last couple
> >>> of years (I am apparently the only one to try to keep it building at least,
> >>> but I suspect that it has been non-functional for quite a while), I'd like
> >>> to
> >>> propose to remove the port. After quite some time of trying to get an
> >>> opinion from Intel on this, I was now notified of their agreement to this
> >>> move.
> >>> 
> >>> From my pov, the only thing to discuss here is whether this should
> >>> happen right away, or after 4.2 went out (then with a formal removal
> >>> proposal in that release - the port's state isn't being reflected correctly
> >>> anyway in ./MAINTAINERS afaict).
> >>> 
> >>> Thoughts?
> >> 
> >> I don't think it would be unreasonable to remove it ahead of 4.2. It's not
> >> been working for a long time now.
> > 
> > Then how about waiting a few more days for eventual feedback from
> > the supposed maintainer or the ia64 list, but remove it the latest right
> > before -rc1?
> 
> Cc Ian Campbell, who is managing the release process.

FWIW I'm happy with Jan's plan.

Ian.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-21  8:45 removal of ia64 port Jan Beulich
  2012-03-22 10:58 ` Keir Fraser
@ 2012-03-23  6:52 ` KUWAMURA Shin'ya
       [not found] ` <20120323.155249.425911897.kuwa@jp.fujitsu.com>
  2 siblings, 0 replies; 13+ messages in thread
From: KUWAMURA Shin'ya @ 2012-03-23  6:52 UTC (permalink / raw)
  To: JBeulich; +Cc: xen-ia64-devel, xen-devel

Hi Jan,

Thank you for your work on ia64.
I am sorry that ia64 remains broken for a long time.

>>>>> On Wed, 21 Mar 2012 08:45:24 +0000
>>>>> JBeulich@suse.com("Jan Beulich")  said:
> 
> Given that the ia64 port hasn't really been maintained for the last couple
> of years (I am apparently the only one to try to keep it building at least,
> but I suspect that it has been non-functional for quite a while), I'd like to
> propose to remove the port. After quite some time of trying to get an
> opinion from Intel on this, I was now notified of their agreement to this
> move.
> From my pov, the only thing to discuss here is whether this should
> happen right away, or after 4.2 went out (then with a formal removal
> proposal in that release - the port's state isn't being reflected correctly
> anyway in ./MAINTAINERS afaict).

I hope that ia64 code remains in xen-unstable for the time being.
I am inspecting the problem of hypervisor now.

Current ia64 status is:

- xen-4.0-testing: work
It still work on ia64 with small fixes. I will send patches later.

- xen-4.1-testing: probably work with xend
  - libxl does not work on ia64.

- xen-unstable: not work
  - The hypervisor cannot boot.
  - It worked on ia64 in October, 2010.

Best regards,
-- 
  KUWAMURA Shin'ya

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
       [not found] ` <20120323.155249.425911897.kuwa@jp.fujitsu.com>
@ 2012-03-23  9:01   ` Jan Beulich
  2012-03-29  9:13     ` Ian Campbell
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Beulich @ 2012-03-23  9:01 UTC (permalink / raw)
  To: KUWAMURA Shin'ya; +Cc: xen-ia64-devel, xen-devel

>>> On 23.03.12 at 07:52, "KUWAMURA Shin'ya" <kuwa@jp.fujitsu.com> wrote:
>>>>>> On Wed, 21 Mar 2012 08:45:24 +0000
>>>>>> JBeulich@suse.com("Jan Beulich")  said:
>> 
>> Given that the ia64 port hasn't really been maintained for the last couple
>> of years (I am apparently the only one to try to keep it building at least,
>> but I suspect that it has been non-functional for quite a while), I'd like to
>> propose to remove the port. After quite some time of trying to get an
>> opinion from Intel on this, I was now notified of their agreement to this
>> move.
>> From my pov, the only thing to discuss here is whether this should
>> happen right away, or after 4.2 went out (then with a formal removal
>> proposal in that release - the port's state isn't being reflected correctly
>> anyway in ./MAINTAINERS afaict).
> 
> I hope that ia64 code remains in xen-unstable for the time being.
> I am inspecting the problem of hypervisor now.

If you're asking to keep the port, can we take this as commitment to
resume doing active work on it (not just limited to fixing the current
problems, but also going forward)?

> Current ia64 status is:
> 
> - xen-4.0-testing: work
> It still work on ia64 with small fixes. I will send patches later.

Since no-one cared for this long a time, I wonder whether it's really
worth fixing this branch (which will probably be dead after releasing
4.0.4 anyway).

> - xen-4.1-testing: probably work with xend
>   - libxl does not work on ia64.

While I'm not sure addressing this in 4.1-testing would make a lot of
sense at this point, dealing with this in -unstable is - afaic - certainly
a prereq for keeping the port.

> - xen-unstable: not work
>   - The hypervisor cannot boot.
>   - It worked on ia64 in October, 2010.

Hmm, this contradicts your assumption that 4.1 would work (which
was released on March 2011).

Jan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-23  9:01   ` Jan Beulich
@ 2012-03-29  9:13     ` Ian Campbell
  2012-03-30  8:54       ` KUWAMURA Shin'ya
       [not found]       ` <20120330.175445.321377065.kuwa@jp.fujitsu.com>
  0 siblings, 2 replies; 13+ messages in thread
From: Ian Campbell @ 2012-03-29  9:13 UTC (permalink / raw)
  To: Jan Beulich; +Cc: KUWAMURA Shin'ya, xen-devel, xen-ia64-devel

On Fri, 2012-03-23 at 09:01 +0000, Jan Beulich wrote:
> >>> On 23.03.12 at 07:52, "KUWAMURA Shin'ya" <kuwa@jp.fujitsu.com> wrote:
> >>>>>> On Wed, 21 Mar 2012 08:45:24 +0000
> >>>>>> JBeulich@suse.com("Jan Beulich")  said:
> >> 
> >> Given that the ia64 port hasn't really been maintained for the last couple
> >> of years (I am apparently the only one to try to keep it building at least,
> >> but I suspect that it has been non-functional for quite a while), I'd like to
> >> propose to remove the port. After quite some time of trying to get an
> >> opinion from Intel on this, I was now notified of their agreement to this
> >> move.
> >> From my pov, the only thing to discuss here is whether this should
> >> happen right away, or after 4.2 went out (then with a formal removal
> >> proposal in that release - the port's state isn't being reflected correctly
> >> anyway in ./MAINTAINERS afaict).
> > 
> > I hope that ia64 code remains in xen-unstable for the time being.
> > I am inspecting the problem of hypervisor now.
> 
> If you're asking to keep the port, can we take this as commitment to
> resume doing active work on it (not just limited to fixing the current
> problems, but also going forward)?

I think this question needs to be answered if we are to consider keeping
the ia64 port. Last time we had this conversation was back in July
2011[0] but I haven't seen any fixes from any other than Jan since then,
and the hg logs seem to confirm that impression.

Kuwamura, what is your motivation for wanting to keeping the ia64 port
in 4.2 and beyond?

I'm afraid I don't think it is sufficient to simply hope that it
remains, we need to see a commitment to it becoming actively maintained
in xen-unstable again.

Ian.

[0] http://lists.xen.org/archives/html/xen-devel/2011-07/msg00195.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-03-29  9:13     ` Ian Campbell
@ 2012-03-30  8:54       ` KUWAMURA Shin'ya
       [not found]       ` <20120330.175445.321377065.kuwa@jp.fujitsu.com>
  1 sibling, 0 replies; 13+ messages in thread
From: KUWAMURA Shin'ya @ 2012-03-30  8:54 UTC (permalink / raw)
  To: Ian.Campbell, JBeulich; +Cc: xen-devel, xen-ia64-devel

Hi Ian and Jan,

>>>>> On Thu, 29 Mar 2012 10:13:04 +0100
>>>>> Ian.Campbell@citrix.com(Ian Campbell)  said:
> 
> Kuwamura, what is your motivation for wanting to keeping the ia64 port
> in 4.2 and beyond?

As the result of my consideration,
I agree that ia64 port will be dropped on xen-unstable, since it seems
to be hardly needed:
- There was little discussion on xen-ia64-devel ML recently.
- There are few Xen ia64 developers.
- No new feature will be added.

Best regards,
-- 
  KUWAMURA Shin'ya

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
       [not found]       ` <20120330.175445.321377065.kuwa@jp.fujitsu.com>
@ 2012-04-02 15:16         ` Jan Beulich
  2012-04-02 15:33           ` Keir Fraser
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Beulich @ 2012-04-02 15:16 UTC (permalink / raw)
  To: Keir Fraser; +Cc: KUWAMURA Shin'ya, xen-ia64-devel, Ian.Campbell, xen-devel

>>> On 30.03.12 at 10:54, "KUWAMURA Shin'ya" <kuwa@jp.fujitsu.com> wrote:
>>>>>> On Thu, 29 Mar 2012 10:13:04 +0100
>>>>>> Ian.Campbell@citrix.com(Ian Campbell)  said:
>> 
>> Kuwamura, what is your motivation for wanting to keeping the ia64 port
>> in 4.2 and beyond?
> 
> As the result of my consideration,
> I agree that ia64 port will be dropped on xen-unstable, since it seems
> to be hardly needed:
> - There was little discussion on xen-ia64-devel ML recently.
> - There are few Xen ia64 developers.
> - No new feature will be added.

Keir,

now that we apparently having reached consensus here, are you
going to purge the ia64 bits from the tree, or do you want me to?

Jan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-04-02 15:16         ` Jan Beulich
@ 2012-04-02 15:33           ` Keir Fraser
  2012-04-03  8:18             ` Jan Beulich
  0 siblings, 1 reply; 13+ messages in thread
From: Keir Fraser @ 2012-04-02 15:33 UTC (permalink / raw)
  To: Jan Beulich; +Cc: KUWAMURA Shin'ya, xen-ia64-devel, Ian.Campbell, xen-devel

On 02/04/2012 16:16, "Jan Beulich" <JBeulich@suse.com> wrote:

>>>> On 30.03.12 at 10:54, "KUWAMURA Shin'ya" <kuwa@jp.fujitsu.com> wrote:
>>>>>>> On Thu, 29 Mar 2012 10:13:04 +0100
>>>>>>> Ian.Campbell@citrix.com(Ian Campbell)  said:
>>> 
>>> Kuwamura, what is your motivation for wanting to keeping the ia64 port
>>> in 4.2 and beyond?
>> 
>> As the result of my consideration,
>> I agree that ia64 port will be dropped on xen-unstable, since it seems
>> to be hardly needed:
>> - There was little discussion on xen-ia64-devel ML recently.
>> - There are few Xen ia64 developers.
>> - No new feature will be added.
> 
> Keir,
> 
> now that we apparently having reached consensus here, are you
> going to purge the ia64 bits from the tree, or do you want me to?

Please go ahead.

 -- Keir

> Jan
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-04-02 15:33           ` Keir Fraser
@ 2012-04-03  8:18             ` Jan Beulich
  2012-04-03  8:57               ` Keir Fraser
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Beulich @ 2012-04-03  8:18 UTC (permalink / raw)
  To: Keir Fraser, xen-devel; +Cc: KUWAMURA Shin'ya, Ian.Campbell, xen-ia64-devel

[-- Attachment #1: Type: text/plain, Size: 21273 bytes --]

>>> On 02.04.12 at 17:33, Keir Fraser <keir.xen@gmail.com> wrote:
> On 02/04/2012 16:16, "Jan Beulich" <JBeulich@suse.com> wrote:
>> now that we apparently having reached consensus here, are you
>> going to purge the ia64 bits from the tree, or do you want me to?
> 
> Please go ahead.

This is the patch I'm intending to commit (omitting all the ia64 files
that are going to be removed).

It retains IA64-specific bits in code imported from elsewhere (e.g.
ACPI, EFI) as well as in the public headers.

It also doesn't touch the tools, mini-os, and unmodified_drivers
sub-trees.

--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -138,14 +138,6 @@ M:	Tim Deegan <tim@xen.org>
 S:	Supported
 F:	tools/debugger/kdd/
 
-IA64 ARCHITECTURE
-M:	KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
-S:	Supported
-L:	xen-ia64-devel@lists.xensource.com 
-F:	xen/arch/ia64/*
-F:	xen/include/asm-ia64/*
-F:	tools/libxc/ia64/*
-
 INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
 M:	Joseph Cihula <joseph.cihula@intel.com>
 M:	Gang Wei <gang.wei@intel.com>
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -58,7 +58,6 @@ subdir-$(CONFIG_COMPAT) += compat
 
 subdir-$(x86_32) += hvm
 subdir-$(x86_64) += hvm
-subdir-$(ia64) += hvm
 
 subdir-y += libelf
 subdir-$(HAS_DEVICE_TREE) += libfdt
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -1514,9 +1514,7 @@ gnttab_transfer(
             goto copyback;
         }
 
-#ifndef __ia64__ /* IA64 implicitly replaces the old page in steal_page(). */
         guest_physmap_remove_page(d, gop.mfn, mfn, 0);
-#endif
         flush_tlb_mask(d->domain_dirty_cpumask);
 
         /* Find the target domain. */
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -721,11 +721,7 @@ static void crash_save_vmcoreinfo(void)
     VMCOREINFO_STRUCT_SIZE(domain);
 
     VMCOREINFO_OFFSET(page_info, count_info);
-#ifdef __ia64__
-    VMCOREINFO_OFFSET_SUB(page_info, u.inuse, _domain);
-#else
     VMCOREINFO_OFFSET_SUB(page_info, v.inuse, _domain);
-#endif
     VMCOREINFO_OFFSET(domain, domain_id);
     VMCOREINFO_OFFSET(domain, next_in_list);
 
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -23,9 +23,7 @@
 #include <xen/tmem_xen.h>
 #include <asm/current.h>
 #include <asm/hardirq.h>
-#ifndef __ia64__
 #include <asm/p2m.h>
-#endif
 #include <xen/numa.h>
 #include <public/memory.h>
 #include <xsm/xsm.h>
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1141,7 +1141,7 @@ void __init scrub_heap_pages(void)
  * XEN-HEAP SUB-ALLOCATOR
  */
 
-#if !defined(__x86_64__) && !defined(__ia64__)
+#if !defined(__x86_64__)
 
 void init_xenheap_pages(paddr_t ps, paddr_t pe)
 {
--- a/xen/common/tmem_xen.c
+++ b/xen/common/tmem_xen.c
@@ -88,7 +88,7 @@ void tmh_copy_page(char *to, char*from)
 #endif
 }
 
-#if defined(__ia64__) || defined (CONFIG_ARM)
+#if defined(CONFIG_ARM)
 static inline void *cli_get_page(tmem_cli_mfn_t cmfn, unsigned long *pcli_mfn,
                                  pfp_t **pcli_pfp, bool_t cli_write)
 {
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -442,16 +442,6 @@ int set_px_pminfo(uint32_t acpi_id, stru
             goto out;
         }
 
-#ifdef CONFIG_IA64
-        /* for IA64, currently it only supports FFH */
-        if (dom0_px_info->control_register.space_id !=
-            ACPI_ADR_SPACE_FIXED_HARDWARE)
-        {
-            ret = -EINVAL;
-            goto out;
-        }
-#endif
-
         memcpy ((void *)&pxpt->control_register,
                 (void *)&dom0_px_info->control_register,
                 sizeof(struct xen_pct_register));
@@ -493,7 +483,6 @@ int set_px_pminfo(uint32_t acpi_id, stru
     {
 #ifdef CONFIG_X86
         /* for X86, check domain coordination */
-        /* for IA64, _PSD is optional for current IA64 cpufreq algorithm */
         if (dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
             dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
             dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_HW)
--- a/xen/drivers/passthrough/Makefile
+++ b/xen/drivers/passthrough/Makefile
@@ -1,5 +1,4 @@
 subdir-$(x86) += vtd
-subdir-$(ia64) += vtd
 subdir-$(x86) += amd
 subdir-$(x86_64) += x86
 
--- a/xen/drivers/passthrough/io.c
+++ b/xen/drivers/passthrough/io.c
@@ -419,7 +419,6 @@ int hvm_do_IRQ_dpci(struct domain *d, st
     return 1;
 }
 
-#ifdef SUPPORT_MSI_REMAPPING
 /* called with d->event_lock held */
 static void __msi_pirq_eoi(struct hvm_pirq_dpci *pirq_dpci)
 {
@@ -479,7 +478,6 @@ static int hvm_pci_msi_assert(struct dom
             ? send_guest_pirq(d, pirq)
             : vmsi_deliver_pirq(d, pirq_dpci));
 }
-#endif
 
 static int _hvm_dirq_assist(struct domain *d, struct hvm_pirq_dpci *pirq_dpci,
                             void *arg)
@@ -489,13 +487,12 @@ static int _hvm_dirq_assist(struct domai
 
     if ( test_and_clear_bool(pirq_dpci->masked) )
     {
-#ifdef SUPPORT_MSI_REMAPPING
         if ( pirq_dpci->flags & HVM_IRQ_DPCI_GUEST_MSI )
         {
             hvm_pci_msi_assert(d, pirq_dpci);
             return 0;
         }
-#endif
+
         list_for_each_entry ( digl, &pirq_dpci->digl_list, list )
         {
             struct pirq *info = dpci_pirq(pirq_dpci);
@@ -508,13 +505,11 @@ static int _hvm_dirq_assist(struct domai
                 hvm_pci_intx_assert(d, device, intx);
             pirq_dpci->pending++;
 
-#ifdef SUPPORT_MSI_REMAPPING
             if ( pirq_dpci->flags & HVM_IRQ_DPCI_TRANSLATE )
             {
                 /* for translated MSI to INTx interrupt, eoi as early as possible */
                 __msi_pirq_eoi(pirq_dpci);
             }
-#endif
         }
 
         /*
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -593,17 +593,6 @@ int iommu_do_domctl(
         bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
         devfn = domctl->u.assign_device.machine_sbdf & 0xff;
 
-#ifdef __ia64__ /* XXX Is this really needed? */
-        if ( device_assigned(seg, bus, devfn) )
-        {
-            printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: "
-                   "%04x:%02x:%02x.%u already assigned, or non-existent\n",
-                   seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
-            ret = -EINVAL;
-            goto assign_device_out;
-        }
-#endif
-
         ret = assign_device(d, seg, bus, devfn);
         if ( ret )
             printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: "
@@ -632,14 +621,6 @@ int iommu_do_domctl(
         bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
         devfn = domctl->u.assign_device.machine_sbdf & 0xff;
 
-#ifdef __ia64__ /* XXX Is this really needed? */
-        if ( !device_assigned(seg, bus, devfn) )
-        {
-            ret = -EINVAL;
-            goto deassign_device_out;
-        }
-#endif
-
         spin_lock(&pcidevs_lock);
         ret = deassign_device(d, seg, bus, devfn);
         spin_unlock(&pcidevs_lock);
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -696,7 +696,6 @@ void __init setup_dom0_pci_devices(
     spin_unlock(&pcidevs_lock);
 }
 
-#ifdef SUPPORT_MSI_REMAPPING
 static int _dump_pci_devices(struct pci_seg *pseg, void *arg)
 {
     struct pci_dev *pdev;
@@ -738,8 +737,6 @@ static int __init setup_dump_pcidevs(voi
     return 0;
 }
 __initcall(setup_dump_pcidevs);
-#endif
-
 
 /*
  * Local variables:
--- a/xen/drivers/passthrough/vtd/Makefile
+++ b/xen/drivers/passthrough/vtd/Makefile
@@ -1,5 +1,4 @@
 subdir-$(x86) += x86
-subdir-$(ia64) += ia64
 
 obj-y += iommu.o
 obj-y += dmar.o
--- a/xen/drivers/passthrough/vtd/intremap.c
+++ b/xen/drivers/passthrough/vtd/intremap.c
@@ -31,26 +31,7 @@
 #include "vtd.h"
 #include "extern.h"
 
-#ifdef __ia64__
-#define nr_ioapics              iosapic_get_nr_iosapics()
-#define nr_ioapic_entries(i)  iosapic_get_nr_pins(i)
-#define __io_apic_read(apic, reg) \
-    (*IO_APIC_BASE(apic) = reg, *(IO_APIC_BASE(apic)+4))
-#define __io_apic_write(apic, reg, val) \
-    (*IO_APIC_BASE(apic) = reg, *(IO_APIC_BASE(apic)+4) = (val))
-#define __ioapic_read_entry(apic, pin, raw) ({ \
-    struct IO_xAPIC_route_entry _e_; \
-    ASSERT(raw); \
-    ((u32 *)&_e_)[0] = __io_apic_read(apic, 0x10 + 2 * (pin)); \
-    ((u32 *)&_e_)[1] = __io_apic_read(apic, 0x11 + 2 * (pin)); \
-    _e_; \
-})
-#define __ioapic_write_entry(apic, pin, raw, ent) ({ \
-    ASSERT(raw); \
-    __io_apic_write(apic, 0x10 + 2 * (pin), ((u32 *)&(ent))[0]); \
-    __io_apic_write(apic, 0x11 + 2 * (pin), ((u32 *)&(ent))[1]); \
-})
-#else
+#if defined(__i386__) || defined(__x86_64__)
 #include <asm/apic.h>
 #include <asm/io_apic.h>
 #define nr_ioapic_entries(i)  nr_ioapic_entries[i]
@@ -326,8 +307,6 @@ static int ioapic_rte_to_remap_entry(str
             new_ire.lo.dst = value;
         else
             new_ire.lo.dst = (value >> 24) << 8;
-#else /* __ia64__ */
-        new_ire.lo.dst = value >> 16;
 #endif
     }
     else
@@ -625,12 +604,8 @@ static int msi_msg_to_remap_entry(
     new_ire.lo.dm = (msg->address_lo >> MSI_ADDR_DESTMODE_SHIFT) & 0x1;
     new_ire.lo.tm = (msg->data >> MSI_DATA_TRIGGER_SHIFT) & 0x1;
     new_ire.lo.dlm = (msg->data >> MSI_DATA_DELIVERY_MODE_SHIFT) & 0x1;
-#ifdef CONFIG_X86
     /* Hardware require RH = 1 for LPR delivery mode */
     new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio);
-#else
-    new_ire.lo.rh = 0;
-#endif
     new_ire.lo.avail = 0;
     new_ire.lo.res_1 = 0;
     new_ire.lo.vector = (msg->data >> MSI_DATA_VECTOR_SHIFT) &
@@ -703,18 +678,6 @@ void msi_msg_write_remap_rte(
 
     msi_msg_to_remap_entry(iommu, pdev, msi_desc, msg);
 }
-#elif defined(__ia64__)
-void msi_msg_read_remap_rte(
-    struct msi_desc *msi_desc, struct msi_msg *msg)
-{
-    /* TODO. */
-}
-
-void msi_msg_write_remap_rte(
-    struct msi_desc *msi_desc, struct msi_msg *msg)
-{
-    /* TODO. */
-}
 #endif
 
 int enable_intremap(struct iommu *iommu, int eim)
@@ -838,8 +801,6 @@ out:
     spin_unlock_irqrestore(&iommu->register_lock, flags);
 }
 
-#ifndef __ia64__
-
 /*
  * This function is used to enable Interrupt remapping when
  * enable x2apic
@@ -914,5 +875,3 @@ void iommu_disable_x2apic_IR(void)
     for_each_drhd_unit ( drhd )
         disable_qinval(drhd->iommu);
 }
-
-#endif /* !__ia64__ */
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -33,7 +33,7 @@
 #include <xen/keyhandler.h>
 #include <asm/msi.h>
 #include <asm/irq.h>
-#ifndef __ia64__
+#if defined(__i386__) || defined(__x86_64__)
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/p2m.h>
 #include <mach_apic.h>
@@ -44,10 +44,6 @@
 #include "vtd.h"
 #include "../ats.h"
 
-#ifdef __ia64__
-#define nr_ioapics              iosapic_get_nr_iosapics()
-#endif
-
 /* Possible unfiltered LAPIC/MSI messages from untrusted sources? */
 bool_t __read_mostly untrusted_msi;
 
@@ -1057,11 +1053,7 @@ static unsigned int dma_msi_startup(stru
     return 0;
 }
 
-#ifndef __ia64__
 static void dma_msi_end(struct irq_desc *desc, u8 vector)
-#else
-static void dma_msi_end(struct irq_desc *desc)
-#endif
 {
     dma_msi_unmask(desc);
     ack_APIC_irq();
@@ -1841,7 +1833,6 @@ void iommu_pte_flush(struct domain *d, u
 
 static int vtd_ept_page_compatible(struct iommu *iommu)
 {
-#ifndef __ia64__
     u64 ept_cap, vtd_cap = iommu->cap;
 
     /* EPT is not initialised yet, so we must check the capability in
@@ -1851,9 +1842,6 @@ static int vtd_ept_page_compatible(struc
 
     return ( ept_has_2mb(ept_cap) == cap_sps_2mb(vtd_cap) 
              && ept_has_1gb(ept_cap) == cap_sps_1gb(vtd_cap) );
-#else
-    return 0;
-#endif
 }
 
 /*
@@ -1861,7 +1849,6 @@ static int vtd_ept_page_compatible(struc
  */
 void iommu_set_pgd(struct domain *d)
 {
-#ifndef __ia64__
     struct hvm_iommu *hd  = domain_hvm_iommu(d);
     mfn_t pgd_mfn;
 
@@ -1872,7 +1859,6 @@ void iommu_set_pgd(struct domain *d)
 
     pgd_mfn = pagetable_get_mfn(p2m_get_pagetable(p2m_get_hostp2m(d)));
     hd->pgd_maddr = pagetable_get_paddr(pagetable_from_mfn(pgd_mfn));
-#endif
 }
 
 static int rmrr_identity_mapping(struct domain *d,
--- a/xen/drivers/passthrough/vtd/utils.c
+++ b/xen/drivers/passthrough/vtd/utils.c
@@ -301,8 +301,7 @@ static void dump_iommu_info(unsigned cha
         }
     }
 #else
-    printk("%s: not implemnted on IA64 for now.\n", __func__);
-    /* ia64: TODO */
+    printk("%s: not implemented for now\n", __func__);
 #endif
 }
 
--- a/xen/drivers/passthrough/vtd/vtd.h
+++ b/xen/drivers/passthrough/vtd/vtd.h
@@ -26,44 +26,8 @@
 #define MAP_ME_PHANTOM_FUNC      1
 #define UNMAP_ME_PHANTOM_FUNC    0
 
-/* Accomodate both IOAPIC and IOSAPIC. */
-#ifndef __ia64__
+/* Allow for both IOAPIC and IOSAPIC. */
 #define IO_xAPIC_route_entry IO_APIC_route_entry
-#else
-struct IO_xAPIC_route_entry {
-    __u32   vector      :  8,
-        delivery_mode   :  3,   /* 000: FIXED
-                                 * 001: lowest prio
-                                 * 111: ExtINT
-                                 */
-        dest_mode       :  1,   /* 0: physical, 1: logical */
-        delivery_status :  1,
-        polarity        :  1,
-        irr             :  1,
-        trigger         :  1,   /* 0: edge, 1: level */
-        mask            :  1,   /* 0: enabled, 1: disabled */
-        __reserved_2    : 15;
-
-    union {
-        struct { __u32
-            __reserved_1    : 24,
-            physical_dest   :  4,
-            __reserved_2    :  4;
-        } physical;
-
-        struct { __u32
-            __reserved_1    : 24,
-            logical_dest    :  8;
-        } logical;
-
-        struct { __u32
-            __reserved_1    : 16,
-            dest_id         : 16;
-        };
-    } dest;
-
-} __attribute__ ((packed));
-#endif
 
 struct IO_APIC_route_remap_entry {
     union {
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -38,7 +38,7 @@ suffix-$(CONFIG_X86)      := \#pragma pa
 endif
 
 public-$(CONFIG_X86) := $(wildcard public/arch-x86/*.h public/arch-x86/*/*.h)
-public-$(CONFIG_IA64) := $(wildcard public/arch-ia64/*.h public/arch-ia64/*/*.h)
+public-$(CONFIG_ARM) := $(wildcard public/arch-arm/*.h public/arch-arm/*/*.h)
 
 .PHONY: all
 all: $(headers-y)
@@ -74,8 +74,6 @@ compat/xlat.h: xlat.lst $(filter-out com
 	mv -f $@.new $@
 
 ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
-# public/arch-ia64.h explicitly bails on __STRICT_ANSI__
-ifeq ($(CONFIG_IA64),)
 
 all: headers.chk
 
@@ -84,7 +82,6 @@ headers.chk: $(filter-out public/arch-% 
 	mv $@.new $@
 
 endif
-endif
 
 clean::
 	rm -rf compat headers.chk
--- a/xen/include/asm-x86/hvm/irq.h
+++ b/xen/include/asm-x86/hvm/irq.h
@@ -104,11 +104,4 @@ struct hvm_intack hvm_vcpu_has_pending_i
 struct hvm_intack hvm_vcpu_ack_pending_irq(struct vcpu *v,
                                            struct hvm_intack intack);
 
-/*
- * Currently IA64 Xen doesn't support MSI. So for x86, we define this macro
- * to control the conditional compilation of some MSI-related functions.
- * This macro will be removed once IA64 has MSI support.
- */
-#define SUPPORT_MSI_REMAPPING 1
-
 #endif /* __ASM_X86_HVM_IRQ_H__ */
--- a/xen/include/asm-x86/hvm/vioapic.h
+++ b/xen/include/asm-x86/hvm/vioapic.h
@@ -41,7 +41,7 @@
 /* Direct registers. */
 #define VIOAPIC_REG_SELECT  0x00
 #define VIOAPIC_REG_WINDOW  0x10
-#define VIOAPIC_REG_EOI     0x40 /* IA64 IOSAPIC only */
+#define VIOAPIC_REG_EOI     0x40
 
 /* Indirect registers. */
 #define VIOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */
--- a/xen/include/xen/cpumask.h
+++ b/xen/include/xen/cpumask.h
@@ -82,7 +82,7 @@ typedef struct cpumask{ DECLARE_BITMAP(b
 
 extern unsigned int nr_cpu_ids;
 
-#if NR_CPUS > 4 * BITS_PER_LONG && !defined(__ia64__)
+#if NR_CPUS > 4 * BITS_PER_LONG
 /* Assuming NR_CPUS is huge, a runtime limit is more efficient.  Also,
  * not all bits may be allocated. */
 extern unsigned int nr_cpumask_bits;
@@ -263,37 +263,6 @@ static inline const cpumask_t *cpumask_o
 	return (const cpumask_t *)(p - cpu / BITS_PER_LONG);
 }
 
-#if defined(__ia64__) /* XXX needs cleanup */
-#define CPU_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(NR_CPUS)
-
-#if NR_CPUS <= BITS_PER_LONG
-
-#define CPU_MASK_ALL							\
-/*(cpumask_t)*/ { {							\
-	[BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD			\
-} }
-
-#else
-
-#define CPU_MASK_ALL							\
-/*(cpumask_t)*/ { {							\
-	[0 ... BITS_TO_LONGS(NR_CPUS)-2] = ~0UL,			\
-	[BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD			\
-} }
-
-#endif
-
-#define CPU_MASK_NONE							\
-/*(cpumask_t)*/ { {							\
-	0UL								\
-} }
-
-#define CPU_MASK_CPU0							\
-/*(cpumask_t)*/ { {							\
-	[0] =  1UL							\
-} }
-#endif /* __ia64__ */
-
 #define cpumask_bits(maskp) ((maskp)->bits)
 
 static inline int cpumask_scnprintf(char *buf, int len,
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -5,15 +5,11 @@
 #include <xen/types.h>
 #endif
 
-#if defined(__ia64__)
-# include_next <linux/efi.h>
+#if defined(__i386__)
+# define efi_enabled 0
 #else
-
-# if defined(__i386__)
-#  define efi_enabled 0
-# else
 extern const bool_t efi_enabled;
-# endif
+#endif
 
 #define EFI_INVALID_TABLE_ADDR (~0UL)
 
@@ -27,8 +23,6 @@ struct efi {
 
 extern struct efi efi;
 
-#endif
-
 #ifndef __ASSEMBLY__
 
 union xenpf_efi_info;
--- a/xen/include/xen/elfcore.h
+++ b/xen/include/xen/elfcore.h
@@ -69,9 +69,6 @@ typedef struct {
     unsigned long xen_phys_start;
     unsigned long dom0_pfn_to_mfn_frame_list_list;
 #endif
-#if defined(__ia64__)
-    unsigned long dom0_mm_pgd_mfn;
-#endif
 } crash_xen_info_t;
 
 #endif /* __ELFCOREC_H__ */
--- a/xen/include/xen/hvm/irq.h
+++ b/xen/include/xen/hvm/irq.h
@@ -78,8 +78,6 @@ struct hvm_girq_dpci_mapping {
 #define NR_LINK     4
 #if defined(__i386__) || defined(__x86_64__)
 # define NR_HVM_IRQS VIOAPIC_NUM_PINS
-#elif defined(__ia64__)
-# define NR_HVM_IRQS VIOSAPIC_NUM_PINS
 #endif
 
 /* Protected by domain's event_lock */
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -35,11 +35,7 @@ extern bool_t iommu_debug;
 extern bool_t amd_iommu_perdev_intremap;
 
 /* Does this domain have a P2M table we can use as its IOMMU pagetable? */
-#ifndef __ia64__
 #define iommu_use_hap_pt(d) (hap_enabled(d) && iommu_hap_pt_share)
-#else
-#define iommu_use_hap_pt(d) 0
-#endif
 
 extern struct rangeset *mmio_ro_ranges;
 
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -95,37 +95,19 @@ int arch_init_one_irq_desc(struct irq_de
 
 #define irq_desc_initialized(desc) ((desc)->handler != NULL)
 
-#if defined(__ia64__)
-extern irq_desc_t irq_desc[NR_VECTORS];
-
-#define setup_irq(irq, action) \
-    setup_irq_vector(irq_to_vector(irq), action)
-
-#define release_irq(irq) \
-    release_irq_vector(irq_to_vector(irq))
-
-#define request_irq(irq, handler, irqflags, devname, devid) \
-    request_irq_vector(irq_to_vector(irq), handler, irqflags, devname, devid)
-
-#elif defined(__arm__)
+#if defined(__arm__)
 
 #define NR_IRQS		1024
 #define nr_irqs NR_IRQS
 extern irq_desc_t irq_desc[NR_IRQS];
 
-extern int setup_irq(unsigned int irq, struct irqaction *);
-extern void release_irq(unsigned int irq);
-extern int request_irq(unsigned int irq,
-               void (*handler)(int, void *, struct cpu_user_regs *),
-               unsigned long irqflags, const char * devname, void *dev_id);
+#endif
 
-#else
 extern int setup_irq(unsigned int irq, struct irqaction *);
 extern void release_irq(unsigned int irq);
 extern int request_irq(unsigned int irq,
                void (*handler)(int, void *, struct cpu_user_regs *),
                unsigned long irqflags, const char * devname, void *dev_id);
-#endif
 
 extern hw_irq_controller no_irq_type;
 extern void no_action(int cpl, void *dev_id, struct cpu_user_regs *regs);
--- a/xen/include/xen/libelf.h
+++ b/xen/include/xen/libelf.h
@@ -23,7 +23,7 @@
 #ifndef __XEN_LIBELF_H__
 #define __XEN_LIBELF_H__
 
-#if defined(__i386__) || defined(__x86_64__) || defined(__ia64__) || defined(__arm__)
+#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
 #define XEN_ELF_LITTLE_ENDIAN
 #else
 #error define architectural endianness
--- a/xen/include/xen/symbols.h
+++ b/xen/include/xen/symbols.h
@@ -21,13 +21,9 @@ static void __check_printsym_format(cons
 {
 }
 
-/* ia64 and ppc64 use function descriptors, which contain the real address */
-#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
-#define print_fn_descriptor_symbol(fmt, addr)		\
-do {						\
-	unsigned long *__faddr = (unsigned long*) addr;		\
-	print_symbol(fmt, __faddr[0]);		\
-} while (0)
+#if 0
+#define print_fn_descriptor_symbol(fmt, addr)	\
+	print_symbol(fmt, *(unsigned long *)addr)
 #else
 #define print_fn_descriptor_symbol(fmt, addr) print_symbol(fmt, addr)
 #endif



[-- Attachment #2: ia64-purge.patch --]
[-- Type: text/plain, Size: 20868 bytes --]

It retains IA64-specific bits in code imported from elsewhere (e.g.
ACPI, EFI) as well as in the public headers.

It also doesn't touch the tools, mini-os, and unmodified_drivers
sub-trees.

--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -138,14 +138,6 @@ M:	Tim Deegan <tim@xen.org>
 S:	Supported
 F:	tools/debugger/kdd/
 
-IA64 ARCHITECTURE
-M:	KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
-S:	Supported
-L:	xen-ia64-devel@lists.xensource.com
-F:	xen/arch/ia64/*
-F:	xen/include/asm-ia64/*
-F:	tools/libxc/ia64/*
-
 INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
 M:	Joseph Cihula <joseph.cihula@intel.com>
 M:	Gang Wei <gang.wei@intel.com>
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -58,7 +58,6 @@ subdir-$(CONFIG_COMPAT) += compat
 
 subdir-$(x86_32) += hvm
 subdir-$(x86_64) += hvm
-subdir-$(ia64) += hvm
 
 subdir-y += libelf
 subdir-$(HAS_DEVICE_TREE) += libfdt
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -1514,9 +1514,7 @@ gnttab_transfer(
             goto copyback;
         }
 
-#ifndef __ia64__ /* IA64 implicitly replaces the old page in steal_page(). */
         guest_physmap_remove_page(d, gop.mfn, mfn, 0);
-#endif
         flush_tlb_mask(d->domain_dirty_cpumask);
 
         /* Find the target domain. */
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -721,11 +721,7 @@ static void crash_save_vmcoreinfo(void)
     VMCOREINFO_STRUCT_SIZE(domain);
 
     VMCOREINFO_OFFSET(page_info, count_info);
-#ifdef __ia64__
-    VMCOREINFO_OFFSET_SUB(page_info, u.inuse, _domain);
-#else
     VMCOREINFO_OFFSET_SUB(page_info, v.inuse, _domain);
-#endif
     VMCOREINFO_OFFSET(domain, domain_id);
     VMCOREINFO_OFFSET(domain, next_in_list);
 
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -23,9 +23,7 @@
 #include <xen/tmem_xen.h>
 #include <asm/current.h>
 #include <asm/hardirq.h>
-#ifndef __ia64__
 #include <asm/p2m.h>
-#endif
 #include <xen/numa.h>
 #include <public/memory.h>
 #include <xsm/xsm.h>
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1141,7 +1141,7 @@ void __init scrub_heap_pages(void)
  * XEN-HEAP SUB-ALLOCATOR
  */
 
-#if !defined(__x86_64__) && !defined(__ia64__)
+#if !defined(__x86_64__)
 
 void init_xenheap_pages(paddr_t ps, paddr_t pe)
 {
--- a/xen/common/tmem_xen.c
+++ b/xen/common/tmem_xen.c
@@ -88,7 +88,7 @@ void tmh_copy_page(char *to, char*from)
 #endif
 }
 
-#if defined(__ia64__) || defined (CONFIG_ARM)
+#if defined(CONFIG_ARM)
 static inline void *cli_get_page(tmem_cli_mfn_t cmfn, unsigned long *pcli_mfn,
                                  pfp_t **pcli_pfp, bool_t cli_write)
 {
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -442,16 +442,6 @@ int set_px_pminfo(uint32_t acpi_id, stru
             goto out;
         }
 
-#ifdef CONFIG_IA64
-        /* for IA64, currently it only supports FFH */
-        if (dom0_px_info->control_register.space_id !=
-            ACPI_ADR_SPACE_FIXED_HARDWARE)
-        {
-            ret = -EINVAL;
-            goto out;
-        }
-#endif
-
         memcpy ((void *)&pxpt->control_register,
                 (void *)&dom0_px_info->control_register,
                 sizeof(struct xen_pct_register));
@@ -493,7 +483,6 @@ int set_px_pminfo(uint32_t acpi_id, stru
     {
 #ifdef CONFIG_X86
         /* for X86, check domain coordination */
-        /* for IA64, _PSD is optional for current IA64 cpufreq algorithm */
         if (dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
             dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
             dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_HW)
--- a/xen/drivers/passthrough/Makefile
+++ b/xen/drivers/passthrough/Makefile
@@ -1,5 +1,4 @@
 subdir-$(x86) += vtd
-subdir-$(ia64) += vtd
 subdir-$(x86) += amd
 subdir-$(x86_64) += x86
 
--- a/xen/drivers/passthrough/io.c
+++ b/xen/drivers/passthrough/io.c
@@ -419,7 +419,6 @@ int hvm_do_IRQ_dpci(struct domain *d, st
     return 1;
 }
 
-#ifdef SUPPORT_MSI_REMAPPING
 /* called with d->event_lock held */
 static void __msi_pirq_eoi(struct hvm_pirq_dpci *pirq_dpci)
 {
@@ -479,7 +478,6 @@ static int hvm_pci_msi_assert(struct dom
             ? send_guest_pirq(d, pirq)
             : vmsi_deliver_pirq(d, pirq_dpci));
 }
-#endif
 
 static int _hvm_dirq_assist(struct domain *d, struct hvm_pirq_dpci *pirq_dpci,
                             void *arg)
@@ -489,13 +487,12 @@ static int _hvm_dirq_assist(struct domai
 
     if ( test_and_clear_bool(pirq_dpci->masked) )
     {
-#ifdef SUPPORT_MSI_REMAPPING
         if ( pirq_dpci->flags & HVM_IRQ_DPCI_GUEST_MSI )
         {
             hvm_pci_msi_assert(d, pirq_dpci);
             return 0;
         }
-#endif
+
         list_for_each_entry ( digl, &pirq_dpci->digl_list, list )
         {
             struct pirq *info = dpci_pirq(pirq_dpci);
@@ -508,13 +505,11 @@ static int _hvm_dirq_assist(struct domai
                 hvm_pci_intx_assert(d, device, intx);
             pirq_dpci->pending++;
 
-#ifdef SUPPORT_MSI_REMAPPING
             if ( pirq_dpci->flags & HVM_IRQ_DPCI_TRANSLATE )
             {
                 /* for translated MSI to INTx interrupt, eoi as early as possible */
                 __msi_pirq_eoi(pirq_dpci);
             }
-#endif
         }
 
         /*
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -593,17 +593,6 @@ int iommu_do_domctl(
         bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
         devfn = domctl->u.assign_device.machine_sbdf & 0xff;
 
-#ifdef __ia64__ /* XXX Is this really needed? */
-        if ( device_assigned(seg, bus, devfn) )
-        {
-            printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: "
-                   "%04x:%02x:%02x.%u already assigned, or non-existent\n",
-                   seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
-            ret = -EINVAL;
-            goto assign_device_out;
-        }
-#endif
-
         ret = assign_device(d, seg, bus, devfn);
         if ( ret )
             printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: "
@@ -632,14 +621,6 @@ int iommu_do_domctl(
         bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
         devfn = domctl->u.assign_device.machine_sbdf & 0xff;
 
-#ifdef __ia64__ /* XXX Is this really needed? */
-        if ( !device_assigned(seg, bus, devfn) )
-        {
-            ret = -EINVAL;
-            goto deassign_device_out;
-        }
-#endif
-
         spin_lock(&pcidevs_lock);
         ret = deassign_device(d, seg, bus, devfn);
         spin_unlock(&pcidevs_lock);
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -696,7 +696,6 @@ void __init setup_dom0_pci_devices(
     spin_unlock(&pcidevs_lock);
 }
 
-#ifdef SUPPORT_MSI_REMAPPING
 static int _dump_pci_devices(struct pci_seg *pseg, void *arg)
 {
     struct pci_dev *pdev;
@@ -738,8 +737,6 @@ static int __init setup_dump_pcidevs(voi
     return 0;
 }
 __initcall(setup_dump_pcidevs);
-#endif
-
 
 /*
  * Local variables:
--- a/xen/drivers/passthrough/vtd/Makefile
+++ b/xen/drivers/passthrough/vtd/Makefile
@@ -1,5 +1,4 @@
 subdir-$(x86) += x86
-subdir-$(ia64) += ia64
 
 obj-y += iommu.o
 obj-y += dmar.o
--- a/xen/drivers/passthrough/vtd/intremap.c
+++ b/xen/drivers/passthrough/vtd/intremap.c
@@ -31,26 +31,7 @@
 #include "vtd.h"
 #include "extern.h"
 
-#ifdef __ia64__
-#define nr_ioapics              iosapic_get_nr_iosapics()
-#define nr_ioapic_entries(i)  iosapic_get_nr_pins(i)
-#define __io_apic_read(apic, reg) \
-    (*IO_APIC_BASE(apic) = reg, *(IO_APIC_BASE(apic)+4))
-#define __io_apic_write(apic, reg, val) \
-    (*IO_APIC_BASE(apic) = reg, *(IO_APIC_BASE(apic)+4) = (val))
-#define __ioapic_read_entry(apic, pin, raw) ({ \
-    struct IO_xAPIC_route_entry _e_; \
-    ASSERT(raw); \
-    ((u32 *)&_e_)[0] = __io_apic_read(apic, 0x10 + 2 * (pin)); \
-    ((u32 *)&_e_)[1] = __io_apic_read(apic, 0x11 + 2 * (pin)); \
-    _e_; \
-})
-#define __ioapic_write_entry(apic, pin, raw, ent) ({ \
-    ASSERT(raw); \
-    __io_apic_write(apic, 0x10 + 2 * (pin), ((u32 *)&(ent))[0]); \
-    __io_apic_write(apic, 0x11 + 2 * (pin), ((u32 *)&(ent))[1]); \
-})
-#else
+#if defined(__i386__) || defined(__x86_64__)
 #include <asm/apic.h>
 #include <asm/io_apic.h>
 #define nr_ioapic_entries(i)  nr_ioapic_entries[i]
@@ -326,8 +307,6 @@ static int ioapic_rte_to_remap_entry(str
             new_ire.lo.dst = value;
         else
             new_ire.lo.dst = (value >> 24) << 8;
-#else /* __ia64__ */
-        new_ire.lo.dst = value >> 16;
 #endif
     }
     else
@@ -625,12 +604,8 @@ static int msi_msg_to_remap_entry(
     new_ire.lo.dm = (msg->address_lo >> MSI_ADDR_DESTMODE_SHIFT) & 0x1;
     new_ire.lo.tm = (msg->data >> MSI_DATA_TRIGGER_SHIFT) & 0x1;
     new_ire.lo.dlm = (msg->data >> MSI_DATA_DELIVERY_MODE_SHIFT) & 0x1;
-#ifdef CONFIG_X86
     /* Hardware require RH = 1 for LPR delivery mode */
     new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio);
-#else
-    new_ire.lo.rh = 0;
-#endif
     new_ire.lo.avail = 0;
     new_ire.lo.res_1 = 0;
     new_ire.lo.vector = (msg->data >> MSI_DATA_VECTOR_SHIFT) &
@@ -703,18 +678,6 @@ void msi_msg_write_remap_rte(
 
     msi_msg_to_remap_entry(iommu, pdev, msi_desc, msg);
 }
-#elif defined(__ia64__)
-void msi_msg_read_remap_rte(
-    struct msi_desc *msi_desc, struct msi_msg *msg)
-{
-    /* TODO. */
-}
-
-void msi_msg_write_remap_rte(
-    struct msi_desc *msi_desc, struct msi_msg *msg)
-{
-    /* TODO. */
-}
 #endif
 
 int enable_intremap(struct iommu *iommu, int eim)
@@ -838,8 +801,6 @@ out:
     spin_unlock_irqrestore(&iommu->register_lock, flags);
 }
 
-#ifndef __ia64__
-
 /*
  * This function is used to enable Interrupt remapping when
  * enable x2apic
@@ -914,5 +875,3 @@ void iommu_disable_x2apic_IR(void)
     for_each_drhd_unit ( drhd )
         disable_qinval(drhd->iommu);
 }
-
-#endif /* !__ia64__ */
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -33,7 +33,7 @@
 #include <xen/keyhandler.h>
 #include <asm/msi.h>
 #include <asm/irq.h>
-#ifndef __ia64__
+#if defined(__i386__) || defined(__x86_64__)
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/p2m.h>
 #include <mach_apic.h>
@@ -44,10 +44,6 @@
 #include "vtd.h"
 #include "../ats.h"
 
-#ifdef __ia64__
-#define nr_ioapics              iosapic_get_nr_iosapics()
-#endif
-
 /* Possible unfiltered LAPIC/MSI messages from untrusted sources? */
 bool_t __read_mostly untrusted_msi;
 
@@ -1057,11 +1053,7 @@ static unsigned int dma_msi_startup(stru
     return 0;
 }
 
-#ifndef __ia64__
 static void dma_msi_end(struct irq_desc *desc, u8 vector)
-#else
-static void dma_msi_end(struct irq_desc *desc)
-#endif
 {
     dma_msi_unmask(desc);
     ack_APIC_irq();
@@ -1841,7 +1833,6 @@ void iommu_pte_flush(struct domain *d, u
 
 static int vtd_ept_page_compatible(struct iommu *iommu)
 {
-#ifndef __ia64__
     u64 ept_cap, vtd_cap = iommu->cap;
 
     /* EPT is not initialised yet, so we must check the capability in
@@ -1851,9 +1842,6 @@ static int vtd_ept_page_compatible(struc
 
     return ( ept_has_2mb(ept_cap) == cap_sps_2mb(vtd_cap) 
              && ept_has_1gb(ept_cap) == cap_sps_1gb(vtd_cap) );
-#else
-    return 0;
-#endif
 }
 
 /*
@@ -1861,7 +1849,6 @@ static int vtd_ept_page_compatible(struc
  */
 void iommu_set_pgd(struct domain *d)
 {
-#ifndef __ia64__
     struct hvm_iommu *hd  = domain_hvm_iommu(d);
     mfn_t pgd_mfn;
 
@@ -1872,7 +1859,6 @@ void iommu_set_pgd(struct domain *d)
 
     pgd_mfn = pagetable_get_mfn(p2m_get_pagetable(p2m_get_hostp2m(d)));
     hd->pgd_maddr = pagetable_get_paddr(pagetable_from_mfn(pgd_mfn));
-#endif
 }
 
 static int rmrr_identity_mapping(struct domain *d,
--- a/xen/drivers/passthrough/vtd/utils.c
+++ b/xen/drivers/passthrough/vtd/utils.c
@@ -301,8 +301,7 @@ static void dump_iommu_info(unsigned cha
         }
     }
 #else
-    printk("%s: not implemnted on IA64 for now.\n", __func__);
-    /* ia64: TODO */
+    printk("%s: not implemented for now\n", __func__);
 #endif
 }
 
--- a/xen/drivers/passthrough/vtd/vtd.h
+++ b/xen/drivers/passthrough/vtd/vtd.h
@@ -26,44 +26,8 @@
 #define MAP_ME_PHANTOM_FUNC      1
 #define UNMAP_ME_PHANTOM_FUNC    0
 
-/* Accomodate both IOAPIC and IOSAPIC. */
-#ifndef __ia64__
+/* Allow for both IOAPIC and IOSAPIC. */
 #define IO_xAPIC_route_entry IO_APIC_route_entry
-#else
-struct IO_xAPIC_route_entry {
-    __u32   vector      :  8,
-        delivery_mode   :  3,   /* 000: FIXED
-                                 * 001: lowest prio
-                                 * 111: ExtINT
-                                 */
-        dest_mode       :  1,   /* 0: physical, 1: logical */
-        delivery_status :  1,
-        polarity        :  1,
-        irr             :  1,
-        trigger         :  1,   /* 0: edge, 1: level */
-        mask            :  1,   /* 0: enabled, 1: disabled */
-        __reserved_2    : 15;
-
-    union {
-        struct { __u32
-            __reserved_1    : 24,
-            physical_dest   :  4,
-            __reserved_2    :  4;
-        } physical;
-
-        struct { __u32
-            __reserved_1    : 24,
-            logical_dest    :  8;
-        } logical;
-
-        struct { __u32
-            __reserved_1    : 16,
-            dest_id         : 16;
-        };
-    } dest;
-
-} __attribute__ ((packed));
-#endif
 
 struct IO_APIC_route_remap_entry {
     union {
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -38,7 +38,7 @@ suffix-$(CONFIG_X86)      := \#pragma pa
 endif
 
 public-$(CONFIG_X86) := $(wildcard public/arch-x86/*.h public/arch-x86/*/*.h)
-public-$(CONFIG_IA64) := $(wildcard public/arch-ia64/*.h public/arch-ia64/*/*.h)
+public-$(CONFIG_ARM) := $(wildcard public/arch-arm/*.h public/arch-arm/*/*.h)
 
 .PHONY: all
 all: $(headers-y)
@@ -74,8 +74,6 @@ compat/xlat.h: xlat.lst $(filter-out com
 	mv -f $@.new $@
 
 ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
-# public/arch-ia64.h explicitly bails on __STRICT_ANSI__
-ifeq ($(CONFIG_IA64),)
 
 all: headers.chk
 
@@ -84,7 +82,6 @@ headers.chk: $(filter-out public/arch-% 
 	mv $@.new $@
 
 endif
-endif
 
 clean::
 	rm -rf compat headers.chk
--- a/xen/include/asm-x86/hvm/irq.h
+++ b/xen/include/asm-x86/hvm/irq.h
@@ -104,11 +104,4 @@ struct hvm_intack hvm_vcpu_has_pending_i
 struct hvm_intack hvm_vcpu_ack_pending_irq(struct vcpu *v,
                                            struct hvm_intack intack);
 
-/*
- * Currently IA64 Xen doesn't support MSI. So for x86, we define this macro
- * to control the conditional compilation of some MSI-related functions.
- * This macro will be removed once IA64 has MSI support.
- */
-#define SUPPORT_MSI_REMAPPING 1
-
 #endif /* __ASM_X86_HVM_IRQ_H__ */
--- a/xen/include/asm-x86/hvm/vioapic.h
+++ b/xen/include/asm-x86/hvm/vioapic.h
@@ -41,7 +41,7 @@
 /* Direct registers. */
 #define VIOAPIC_REG_SELECT  0x00
 #define VIOAPIC_REG_WINDOW  0x10
-#define VIOAPIC_REG_EOI     0x40 /* IA64 IOSAPIC only */
+#define VIOAPIC_REG_EOI     0x40
 
 /* Indirect registers. */
 #define VIOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */
--- a/xen/include/xen/cpumask.h
+++ b/xen/include/xen/cpumask.h
@@ -82,7 +82,7 @@ typedef struct cpumask{ DECLARE_BITMAP(b
 
 extern unsigned int nr_cpu_ids;
 
-#if NR_CPUS > 4 * BITS_PER_LONG && !defined(__ia64__)
+#if NR_CPUS > 4 * BITS_PER_LONG
 /* Assuming NR_CPUS is huge, a runtime limit is more efficient.  Also,
  * not all bits may be allocated. */
 extern unsigned int nr_cpumask_bits;
@@ -263,37 +263,6 @@ static inline const cpumask_t *cpumask_o
 	return (const cpumask_t *)(p - cpu / BITS_PER_LONG);
 }
 
-#if defined(__ia64__) /* XXX needs cleanup */
-#define CPU_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(NR_CPUS)
-
-#if NR_CPUS <= BITS_PER_LONG
-
-#define CPU_MASK_ALL							\
-/*(cpumask_t)*/ { {							\
-	[BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD			\
-} }
-
-#else
-
-#define CPU_MASK_ALL							\
-/*(cpumask_t)*/ { {							\
-	[0 ... BITS_TO_LONGS(NR_CPUS)-2] = ~0UL,			\
-	[BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD			\
-} }
-
-#endif
-
-#define CPU_MASK_NONE							\
-/*(cpumask_t)*/ { {							\
-	0UL								\
-} }
-
-#define CPU_MASK_CPU0							\
-/*(cpumask_t)*/ { {							\
-	[0] =  1UL							\
-} }
-#endif /* __ia64__ */
-
 #define cpumask_bits(maskp) ((maskp)->bits)
 
 static inline int cpumask_scnprintf(char *buf, int len,
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -5,15 +5,11 @@
 #include <xen/types.h>
 #endif
 
-#if defined(__ia64__)
-# include_next <linux/efi.h>
+#if defined(__i386__)
+# define efi_enabled 0
 #else
-
-# if defined(__i386__)
-#  define efi_enabled 0
-# else
 extern const bool_t efi_enabled;
-# endif
+#endif
 
 #define EFI_INVALID_TABLE_ADDR (~0UL)
 
@@ -27,8 +23,6 @@ struct efi {
 
 extern struct efi efi;
 
-#endif
-
 #ifndef __ASSEMBLY__
 
 union xenpf_efi_info;
--- a/xen/include/xen/elfcore.h
+++ b/xen/include/xen/elfcore.h
@@ -69,9 +69,6 @@ typedef struct {
     unsigned long xen_phys_start;
     unsigned long dom0_pfn_to_mfn_frame_list_list;
 #endif
-#if defined(__ia64__)
-    unsigned long dom0_mm_pgd_mfn;
-#endif
 } crash_xen_info_t;
 
 #endif /* __ELFCOREC_H__ */
--- a/xen/include/xen/hvm/irq.h
+++ b/xen/include/xen/hvm/irq.h
@@ -78,8 +78,6 @@ struct hvm_girq_dpci_mapping {
 #define NR_LINK     4
 #if defined(__i386__) || defined(__x86_64__)
 # define NR_HVM_IRQS VIOAPIC_NUM_PINS
-#elif defined(__ia64__)
-# define NR_HVM_IRQS VIOSAPIC_NUM_PINS
 #endif
 
 /* Protected by domain's event_lock */
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -35,11 +35,7 @@ extern bool_t iommu_debug;
 extern bool_t amd_iommu_perdev_intremap;
 
 /* Does this domain have a P2M table we can use as its IOMMU pagetable? */
-#ifndef __ia64__
 #define iommu_use_hap_pt(d) (hap_enabled(d) && iommu_hap_pt_share)
-#else
-#define iommu_use_hap_pt(d) 0
-#endif
 
 extern struct rangeset *mmio_ro_ranges;
 
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -95,37 +95,19 @@ int arch_init_one_irq_desc(struct irq_de
 
 #define irq_desc_initialized(desc) ((desc)->handler != NULL)
 
-#if defined(__ia64__)
-extern irq_desc_t irq_desc[NR_VECTORS];
-
-#define setup_irq(irq, action) \
-    setup_irq_vector(irq_to_vector(irq), action)
-
-#define release_irq(irq) \
-    release_irq_vector(irq_to_vector(irq))
-
-#define request_irq(irq, handler, irqflags, devname, devid) \
-    request_irq_vector(irq_to_vector(irq), handler, irqflags, devname, devid)
-
-#elif defined(__arm__)
+#if defined(__arm__)
 
 #define NR_IRQS		1024
 #define nr_irqs NR_IRQS
 extern irq_desc_t irq_desc[NR_IRQS];
 
-extern int setup_irq(unsigned int irq, struct irqaction *);
-extern void release_irq(unsigned int irq);
-extern int request_irq(unsigned int irq,
-               void (*handler)(int, void *, struct cpu_user_regs *),
-               unsigned long irqflags, const char * devname, void *dev_id);
+#endif
 
-#else
 extern int setup_irq(unsigned int irq, struct irqaction *);
 extern void release_irq(unsigned int irq);
 extern int request_irq(unsigned int irq,
                void (*handler)(int, void *, struct cpu_user_regs *),
                unsigned long irqflags, const char * devname, void *dev_id);
-#endif
 
 extern hw_irq_controller no_irq_type;
 extern void no_action(int cpl, void *dev_id, struct cpu_user_regs *regs);
--- a/xen/include/xen/libelf.h
+++ b/xen/include/xen/libelf.h
@@ -23,7 +23,7 @@
 #ifndef __XEN_LIBELF_H__
 #define __XEN_LIBELF_H__
 
-#if defined(__i386__) || defined(__x86_64__) || defined(__ia64__) || defined(__arm__)
+#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
 #define XEN_ELF_LITTLE_ENDIAN
 #else
 #error define architectural endianness
--- a/xen/include/xen/symbols.h
+++ b/xen/include/xen/symbols.h
@@ -21,13 +21,9 @@ static void __check_printsym_format(cons
 {
 }
 
-/* ia64 and ppc64 use function descriptors, which contain the real address */
-#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
-#define print_fn_descriptor_symbol(fmt, addr)		\
-do {						\
-	unsigned long *__faddr = (unsigned long*) addr;		\
-	print_symbol(fmt, __faddr[0]);		\
-} while (0)
+#if 0
+#define print_fn_descriptor_symbol(fmt, addr)	\
+	print_symbol(fmt, *(unsigned long *)addr)
 #else
 #define print_fn_descriptor_symbol(fmt, addr) print_symbol(fmt, addr)
 #endif

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: removal of ia64 port
  2012-04-03  8:18             ` Jan Beulich
@ 2012-04-03  8:57               ` Keir Fraser
  0 siblings, 0 replies; 13+ messages in thread
From: Keir Fraser @ 2012-04-03  8:57 UTC (permalink / raw)
  To: Jan Beulich, xen-devel; +Cc: KUWAMURA Shin'ya, Ian.Campbell, xen-ia64-devel

On 03/04/2012 09:18, "Jan Beulich" <JBeulich@suse.com> wrote:

>>>> On 02.04.12 at 17:33, Keir Fraser <keir.xen@gmail.com> wrote:
>> On 02/04/2012 16:16, "Jan Beulich" <JBeulich@suse.com> wrote:
>>> now that we apparently having reached consensus here, are you
>>> going to purge the ia64 bits from the tree, or do you want me to?
>> 
>> Please go ahead.
> 
> This is the patch I'm intending to commit (omitting all the ia64 files
> that are going to be removed).
> 
> It retains IA64-specific bits in code imported from elsewhere (e.g.
> ACPI, EFI) as well as in the public headers.
> 
> It also doesn't touch the tools, mini-os, and unmodified_drivers
> sub-trees.

Acked-by: Keir Fraser <keir@xen.org>

> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -138,14 +138,6 @@ M: Tim Deegan <tim@xen.org>
>  S: Supported
>  F: tools/debugger/kdd/
>  
> -IA64 ARCHITECTURE
> -M: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
> -S: Supported
> -L: xen-ia64-devel@lists.xensource.com
> -F: xen/arch/ia64/*
> -F: xen/include/asm-ia64/*
> -F: tools/libxc/ia64/*
> -
>  INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
>  M: Joseph Cihula <joseph.cihula@intel.com>
>  M: Gang Wei <gang.wei@intel.com>
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -58,7 +58,6 @@ subdir-$(CONFIG_COMPAT) += compat
>  
>  subdir-$(x86_32) += hvm
>  subdir-$(x86_64) += hvm
> -subdir-$(ia64) += hvm
>  
>  subdir-y += libelf
>  subdir-$(HAS_DEVICE_TREE) += libfdt
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -1514,9 +1514,7 @@ gnttab_transfer(
>              goto copyback;
>          }
>  
> -#ifndef __ia64__ /* IA64 implicitly replaces the old page in steal_page(). */
>          guest_physmap_remove_page(d, gop.mfn, mfn, 0);
> -#endif
>          flush_tlb_mask(d->domain_dirty_cpumask);
>  
>          /* Find the target domain. */
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -721,11 +721,7 @@ static void crash_save_vmcoreinfo(void)
>      VMCOREINFO_STRUCT_SIZE(domain);
>  
>      VMCOREINFO_OFFSET(page_info, count_info);
> -#ifdef __ia64__
> -    VMCOREINFO_OFFSET_SUB(page_info, u.inuse, _domain);
> -#else
>      VMCOREINFO_OFFSET_SUB(page_info, v.inuse, _domain);
> -#endif
>      VMCOREINFO_OFFSET(domain, domain_id);
>      VMCOREINFO_OFFSET(domain, next_in_list);
>  
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -23,9 +23,7 @@
>  #include <xen/tmem_xen.h>
>  #include <asm/current.h>
>  #include <asm/hardirq.h>
> -#ifndef __ia64__
>  #include <asm/p2m.h>
> -#endif
>  #include <xen/numa.h>
>  #include <public/memory.h>
>  #include <xsm/xsm.h>
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -1141,7 +1141,7 @@ void __init scrub_heap_pages(void)
>   * XEN-HEAP SUB-ALLOCATOR
>   */
>  
> -#if !defined(__x86_64__) && !defined(__ia64__)
> +#if !defined(__x86_64__)
>  
>  void init_xenheap_pages(paddr_t ps, paddr_t pe)
>  {
> --- a/xen/common/tmem_xen.c
> +++ b/xen/common/tmem_xen.c
> @@ -88,7 +88,7 @@ void tmh_copy_page(char *to, char*from)
>  #endif
>  }
>  
> -#if defined(__ia64__) || defined (CONFIG_ARM)
> +#if defined(CONFIG_ARM)
>  static inline void *cli_get_page(tmem_cli_mfn_t cmfn, unsigned long
> *pcli_mfn,
>                                   pfp_t **pcli_pfp, bool_t cli_write)
>  {
> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -442,16 +442,6 @@ int set_px_pminfo(uint32_t acpi_id, stru
>              goto out;
>          }
>  
> -#ifdef CONFIG_IA64
> -        /* for IA64, currently it only supports FFH */
> -        if (dom0_px_info->control_register.space_id !=
> -            ACPI_ADR_SPACE_FIXED_HARDWARE)
> -        {
> -            ret = -EINVAL;
> -            goto out;
> -        }
> -#endif
> -
>          memcpy ((void *)&pxpt->control_register,
>                  (void *)&dom0_px_info->control_register,
>                  sizeof(struct xen_pct_register));
> @@ -493,7 +483,6 @@ int set_px_pminfo(uint32_t acpi_id, stru
>      {
>  #ifdef CONFIG_X86
>          /* for X86, check domain coordination */
> -        /* for IA64, _PSD is optional for current IA64 cpufreq algorithm */
>          if (dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
>              dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
>              dom0_px_info->shared_type != CPUFREQ_SHARED_TYPE_HW)
> --- a/xen/drivers/passthrough/Makefile
> +++ b/xen/drivers/passthrough/Makefile
> @@ -1,5 +1,4 @@
>  subdir-$(x86) += vtd
> -subdir-$(ia64) += vtd
>  subdir-$(x86) += amd
>  subdir-$(x86_64) += x86
>  
> --- a/xen/drivers/passthrough/io.c
> +++ b/xen/drivers/passthrough/io.c
> @@ -419,7 +419,6 @@ int hvm_do_IRQ_dpci(struct domain *d, st
>      return 1;
>  }
>  
> -#ifdef SUPPORT_MSI_REMAPPING
>  /* called with d->event_lock held */
>  static void __msi_pirq_eoi(struct hvm_pirq_dpci *pirq_dpci)
>  {
> @@ -479,7 +478,6 @@ static int hvm_pci_msi_assert(struct dom
>              ? send_guest_pirq(d, pirq)
>              : vmsi_deliver_pirq(d, pirq_dpci));
>  }
> -#endif
>  
>  static int _hvm_dirq_assist(struct domain *d, struct hvm_pirq_dpci
> *pirq_dpci,
>                              void *arg)
> @@ -489,13 +487,12 @@ static int _hvm_dirq_assist(struct domai
>  
>      if ( test_and_clear_bool(pirq_dpci->masked) )
>      {
> -#ifdef SUPPORT_MSI_REMAPPING
>          if ( pirq_dpci->flags & HVM_IRQ_DPCI_GUEST_MSI )
>          {
>              hvm_pci_msi_assert(d, pirq_dpci);
>              return 0;
>          }
> -#endif
> +
>          list_for_each_entry ( digl, &pirq_dpci->digl_list, list )
>          {
>              struct pirq *info = dpci_pirq(pirq_dpci);
> @@ -508,13 +505,11 @@ static int _hvm_dirq_assist(struct domai
>                  hvm_pci_intx_assert(d, device, intx);
>              pirq_dpci->pending++;
>  
> -#ifdef SUPPORT_MSI_REMAPPING
>              if ( pirq_dpci->flags & HVM_IRQ_DPCI_TRANSLATE )
>              {
>                  /* for translated MSI to INTx interrupt, eoi as early as
> possible */
>                  __msi_pirq_eoi(pirq_dpci);
>              }
> -#endif
>          }
>  
>          /*
> --- a/xen/drivers/passthrough/iommu.c
> +++ b/xen/drivers/passthrough/iommu.c
> @@ -593,17 +593,6 @@ int iommu_do_domctl(
>          bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
>          devfn = domctl->u.assign_device.machine_sbdf & 0xff;
>  
> -#ifdef __ia64__ /* XXX Is this really needed? */
> -        if ( device_assigned(seg, bus, devfn) )
> -        {
> -            printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: "
> -                   "%04x:%02x:%02x.%u already assigned, or non-existent\n",
> -                   seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
> -            ret = -EINVAL;
> -            goto assign_device_out;
> -        }
> -#endif
> -
>          ret = assign_device(d, seg, bus, devfn);
>          if ( ret )
>              printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: "
> @@ -632,14 +621,6 @@ int iommu_do_domctl(
>          bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
>          devfn = domctl->u.assign_device.machine_sbdf & 0xff;
>  
> -#ifdef __ia64__ /* XXX Is this really needed? */
> -        if ( !device_assigned(seg, bus, devfn) )
> -        {
> -            ret = -EINVAL;
> -            goto deassign_device_out;
> -        }
> -#endif
> -
>          spin_lock(&pcidevs_lock);
>          ret = deassign_device(d, seg, bus, devfn);
>          spin_unlock(&pcidevs_lock);
> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -696,7 +696,6 @@ void __init setup_dom0_pci_devices(
>      spin_unlock(&pcidevs_lock);
>  }
>  
> -#ifdef SUPPORT_MSI_REMAPPING
>  static int _dump_pci_devices(struct pci_seg *pseg, void *arg)
>  {
>      struct pci_dev *pdev;
> @@ -738,8 +737,6 @@ static int __init setup_dump_pcidevs(voi
>      return 0;
>  }
>  __initcall(setup_dump_pcidevs);
> -#endif
> -
>  
>  /*
>   * Local variables:
> --- a/xen/drivers/passthrough/vtd/Makefile
> +++ b/xen/drivers/passthrough/vtd/Makefile
> @@ -1,5 +1,4 @@
>  subdir-$(x86) += x86
> -subdir-$(ia64) += ia64
>  
>  obj-y += iommu.o
>  obj-y += dmar.o
> --- a/xen/drivers/passthrough/vtd/intremap.c
> +++ b/xen/drivers/passthrough/vtd/intremap.c
> @@ -31,26 +31,7 @@
>  #include "vtd.h"
>  #include "extern.h"
>  
> -#ifdef __ia64__
> -#define nr_ioapics              iosapic_get_nr_iosapics()
> -#define nr_ioapic_entries(i)  iosapic_get_nr_pins(i)
> -#define __io_apic_read(apic, reg) \
> -    (*IO_APIC_BASE(apic) = reg, *(IO_APIC_BASE(apic)+4))
> -#define __io_apic_write(apic, reg, val) \
> -    (*IO_APIC_BASE(apic) = reg, *(IO_APIC_BASE(apic)+4) = (val))
> -#define __ioapic_read_entry(apic, pin, raw) ({ \
> -    struct IO_xAPIC_route_entry _e_; \
> -    ASSERT(raw); \
> -    ((u32 *)&_e_)[0] = __io_apic_read(apic, 0x10 + 2 * (pin)); \
> -    ((u32 *)&_e_)[1] = __io_apic_read(apic, 0x11 + 2 * (pin)); \
> -    _e_; \
> -})
> -#define __ioapic_write_entry(apic, pin, raw, ent) ({ \
> -    ASSERT(raw); \
> -    __io_apic_write(apic, 0x10 + 2 * (pin), ((u32 *)&(ent))[0]); \
> -    __io_apic_write(apic, 0x11 + 2 * (pin), ((u32 *)&(ent))[1]); \
> -})
> -#else
> +#if defined(__i386__) || defined(__x86_64__)
>  #include <asm/apic.h>
>  #include <asm/io_apic.h>
>  #define nr_ioapic_entries(i)  nr_ioapic_entries[i]
> @@ -326,8 +307,6 @@ static int ioapic_rte_to_remap_entry(str
>              new_ire.lo.dst = value;
>          else
>              new_ire.lo.dst = (value >> 24) << 8;
> -#else /* __ia64__ */
> -        new_ire.lo.dst = value >> 16;
>  #endif
>      }
>      else
> @@ -625,12 +604,8 @@ static int msi_msg_to_remap_entry(
>      new_ire.lo.dm = (msg->address_lo >> MSI_ADDR_DESTMODE_SHIFT) & 0x1;
>      new_ire.lo.tm = (msg->data >> MSI_DATA_TRIGGER_SHIFT) & 0x1;
>      new_ire.lo.dlm = (msg->data >> MSI_DATA_DELIVERY_MODE_SHIFT) & 0x1;
> -#ifdef CONFIG_X86
>      /* Hardware require RH = 1 for LPR delivery mode */
>      new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio);
> -#else
> -    new_ire.lo.rh = 0;
> -#endif
>      new_ire.lo.avail = 0;
>      new_ire.lo.res_1 = 0;
>      new_ire.lo.vector = (msg->data >> MSI_DATA_VECTOR_SHIFT) &
> @@ -703,18 +678,6 @@ void msi_msg_write_remap_rte(
>  
>      msi_msg_to_remap_entry(iommu, pdev, msi_desc, msg);
>  }
> -#elif defined(__ia64__)
> -void msi_msg_read_remap_rte(
> -    struct msi_desc *msi_desc, struct msi_msg *msg)
> -{
> -    /* TODO. */
> -}
> -
> -void msi_msg_write_remap_rte(
> -    struct msi_desc *msi_desc, struct msi_msg *msg)
> -{
> -    /* TODO. */
> -}
>  #endif
>  
>  int enable_intremap(struct iommu *iommu, int eim)
> @@ -838,8 +801,6 @@ out:
>      spin_unlock_irqrestore(&iommu->register_lock, flags);
>  }
>  
> -#ifndef __ia64__
> -
>  /*
>   * This function is used to enable Interrupt remapping when
>   * enable x2apic
> @@ -914,5 +875,3 @@ void iommu_disable_x2apic_IR(void)
>      for_each_drhd_unit ( drhd )
>          disable_qinval(drhd->iommu);
>  }
> -
> -#endif /* !__ia64__ */
> --- a/xen/drivers/passthrough/vtd/iommu.c
> +++ b/xen/drivers/passthrough/vtd/iommu.c
> @@ -33,7 +33,7 @@
>  #include <xen/keyhandler.h>
>  #include <asm/msi.h>
>  #include <asm/irq.h>
> -#ifndef __ia64__
> +#if defined(__i386__) || defined(__x86_64__)
>  #include <asm/hvm/vmx/vmx.h>
>  #include <asm/p2m.h>
>  #include <mach_apic.h>
> @@ -44,10 +44,6 @@
>  #include "vtd.h"
>  #include "../ats.h"
>  
> -#ifdef __ia64__
> -#define nr_ioapics              iosapic_get_nr_iosapics()
> -#endif
> -
>  /* Possible unfiltered LAPIC/MSI messages from untrusted sources? */
>  bool_t __read_mostly untrusted_msi;
>  
> @@ -1057,11 +1053,7 @@ static unsigned int dma_msi_startup(stru
>      return 0;
>  }
>  
> -#ifndef __ia64__
>  static void dma_msi_end(struct irq_desc *desc, u8 vector)
> -#else
> -static void dma_msi_end(struct irq_desc *desc)
> -#endif
>  {
>      dma_msi_unmask(desc);
>      ack_APIC_irq();
> @@ -1841,7 +1833,6 @@ void iommu_pte_flush(struct domain *d, u
>  
>  static int vtd_ept_page_compatible(struct iommu *iommu)
>  {
> -#ifndef __ia64__
>      u64 ept_cap, vtd_cap = iommu->cap;
>  
>      /* EPT is not initialised yet, so we must check the capability in
> @@ -1851,9 +1842,6 @@ static int vtd_ept_page_compatible(struc
>  
>      return ( ept_has_2mb(ept_cap) == cap_sps_2mb(vtd_cap)
>               && ept_has_1gb(ept_cap) == cap_sps_1gb(vtd_cap) );
> -#else
> -    return 0;
> -#endif
>  }
>  
>  /*
> @@ -1861,7 +1849,6 @@ static int vtd_ept_page_compatible(struc
>   */
>  void iommu_set_pgd(struct domain *d)
>  {
> -#ifndef __ia64__
>      struct hvm_iommu *hd  = domain_hvm_iommu(d);
>      mfn_t pgd_mfn;
>  
> @@ -1872,7 +1859,6 @@ void iommu_set_pgd(struct domain *d)
>  
>      pgd_mfn = pagetable_get_mfn(p2m_get_pagetable(p2m_get_hostp2m(d)));
>      hd->pgd_maddr = pagetable_get_paddr(pagetable_from_mfn(pgd_mfn));
> -#endif
>  }
>  
>  static int rmrr_identity_mapping(struct domain *d,
> --- a/xen/drivers/passthrough/vtd/utils.c
> +++ b/xen/drivers/passthrough/vtd/utils.c
> @@ -301,8 +301,7 @@ static void dump_iommu_info(unsigned cha
>          }
>      }
>  #else
> -    printk("%s: not implemnted on IA64 for now.\n", __func__);
> -    /* ia64: TODO */
> +    printk("%s: not implemented for now\n", __func__);
>  #endif
>  }
>  
> --- a/xen/drivers/passthrough/vtd/vtd.h
> +++ b/xen/drivers/passthrough/vtd/vtd.h
> @@ -26,44 +26,8 @@
>  #define MAP_ME_PHANTOM_FUNC      1
>  #define UNMAP_ME_PHANTOM_FUNC    0
>  
> -/* Accomodate both IOAPIC and IOSAPIC. */
> -#ifndef __ia64__
> +/* Allow for both IOAPIC and IOSAPIC. */
>  #define IO_xAPIC_route_entry IO_APIC_route_entry
> -#else
> -struct IO_xAPIC_route_entry {
> -    __u32   vector      :  8,
> -        delivery_mode   :  3,   /* 000: FIXED
> -                                 * 001: lowest prio
> -                                 * 111: ExtINT
> -                                 */
> -        dest_mode       :  1,   /* 0: physical, 1: logical */
> -        delivery_status :  1,
> -        polarity        :  1,
> -        irr             :  1,
> -        trigger         :  1,   /* 0: edge, 1: level */
> -        mask            :  1,   /* 0: enabled, 1: disabled */
> -        __reserved_2    : 15;
> -
> -    union {
> -        struct { __u32
> -            __reserved_1    : 24,
> -            physical_dest   :  4,
> -            __reserved_2    :  4;
> -        } physical;
> -
> -        struct { __u32
> -            __reserved_1    : 24,
> -            logical_dest    :  8;
> -        } logical;
> -
> -        struct { __u32
> -            __reserved_1    : 16,
> -            dest_id         : 16;
> -        };
> -    } dest;
> -
> -} __attribute__ ((packed));
> -#endif
>  
>  struct IO_APIC_route_remap_entry {
>      union {
> --- a/xen/include/Makefile
> +++ b/xen/include/Makefile
> @@ -38,7 +38,7 @@ suffix-$(CONFIG_X86)      := \#pragma pa
>  endif
>  
>  public-$(CONFIG_X86) := $(wildcard public/arch-x86/*.h public/arch-x86/*/*.h)
> -public-$(CONFIG_IA64) := $(wildcard public/arch-ia64/*.h
> public/arch-ia64/*/*.h)
> +public-$(CONFIG_ARM) := $(wildcard public/arch-arm/*.h public/arch-arm/*/*.h)
>  
>  .PHONY: all
>  all: $(headers-y)
> @@ -74,8 +74,6 @@ compat/xlat.h: xlat.lst $(filter-out com
> mv -f $@.new $@
>  
>  ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
> -# public/arch-ia64.h explicitly bails on __STRICT_ANSI__
> -ifeq ($(CONFIG_IA64),)
>  
>  all: headers.chk
>  
> @@ -84,7 +82,6 @@ headers.chk: $(filter-out public/arch-%
> mv $@.new $@
>  
>  endif
> -endif
>  
>  clean::
> rm -rf compat headers.chk
> --- a/xen/include/asm-x86/hvm/irq.h
> +++ b/xen/include/asm-x86/hvm/irq.h
> @@ -104,11 +104,4 @@ struct hvm_intack hvm_vcpu_has_pending_i
>  struct hvm_intack hvm_vcpu_ack_pending_irq(struct vcpu *v,
>                                             struct hvm_intack intack);
>  
> -/*
> - * Currently IA64 Xen doesn't support MSI. So for x86, we define this macro
> - * to control the conditional compilation of some MSI-related functions.
> - * This macro will be removed once IA64 has MSI support.
> - */
> -#define SUPPORT_MSI_REMAPPING 1
> -
>  #endif /* __ASM_X86_HVM_IRQ_H__ */
> --- a/xen/include/asm-x86/hvm/vioapic.h
> +++ b/xen/include/asm-x86/hvm/vioapic.h
> @@ -41,7 +41,7 @@
>  /* Direct registers. */
>  #define VIOAPIC_REG_SELECT  0x00
>  #define VIOAPIC_REG_WINDOW  0x10
> -#define VIOAPIC_REG_EOI     0x40 /* IA64 IOSAPIC only */
> +#define VIOAPIC_REG_EOI     0x40
>  
>  /* Indirect registers. */
>  #define VIOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */
> --- a/xen/include/xen/cpumask.h
> +++ b/xen/include/xen/cpumask.h
> @@ -82,7 +82,7 @@ typedef struct cpumask{ DECLARE_BITMAP(b
>  
>  extern unsigned int nr_cpu_ids;
>  
> -#if NR_CPUS > 4 * BITS_PER_LONG && !defined(__ia64__)
> +#if NR_CPUS > 4 * BITS_PER_LONG
>  /* Assuming NR_CPUS is huge, a runtime limit is more efficient.  Also,
>   * not all bits may be allocated. */
>  extern unsigned int nr_cpumask_bits;
> @@ -263,37 +263,6 @@ static inline const cpumask_t *cpumask_o
> return (const cpumask_t *)(p - cpu / BITS_PER_LONG);
>  }
>  
> -#if defined(__ia64__) /* XXX needs cleanup */
> -#define CPU_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(NR_CPUS)
> -
> -#if NR_CPUS <= BITS_PER_LONG
> -
> -#define CPU_MASK_ALL       \
> -/*(cpumask_t)*/ { {       \
> - [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD   \
> -} }
> -
> -#else
> -
> -#define CPU_MASK_ALL       \
> -/*(cpumask_t)*/ { {       \
> - [0 ... BITS_TO_LONGS(NR_CPUS)-2] = ~0UL,   \
> - [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD   \
> -} }
> -
> -#endif
> -
> -#define CPU_MASK_NONE       \
> -/*(cpumask_t)*/ { {       \
> - 0UL        \
> -} }
> -
> -#define CPU_MASK_CPU0       \
> -/*(cpumask_t)*/ { {       \
> - [0] =  1UL       \
> -} }
> -#endif /* __ia64__ */
> -
>  #define cpumask_bits(maskp) ((maskp)->bits)
>  
>  static inline int cpumask_scnprintf(char *buf, int len,
> --- a/xen/include/xen/efi.h
> +++ b/xen/include/xen/efi.h
> @@ -5,15 +5,11 @@
>  #include <xen/types.h>
>  #endif
>  
> -#if defined(__ia64__)
> -# include_next <linux/efi.h>
> +#if defined(__i386__)
> +# define efi_enabled 0
>  #else
> -
> -# if defined(__i386__)
> -#  define efi_enabled 0
> -# else
>  extern const bool_t efi_enabled;
> -# endif
> +#endif
>  
>  #define EFI_INVALID_TABLE_ADDR (~0UL)
>  
> @@ -27,8 +23,6 @@ struct efi {
>  
>  extern struct efi efi;
>  
> -#endif
> -
>  #ifndef __ASSEMBLY__
>  
>  union xenpf_efi_info;
> --- a/xen/include/xen/elfcore.h
> +++ b/xen/include/xen/elfcore.h
> @@ -69,9 +69,6 @@ typedef struct {
>      unsigned long xen_phys_start;
>      unsigned long dom0_pfn_to_mfn_frame_list_list;
>  #endif
> -#if defined(__ia64__)
> -    unsigned long dom0_mm_pgd_mfn;
> -#endif
>  } crash_xen_info_t;
>  
>  #endif /* __ELFCOREC_H__ */
> --- a/xen/include/xen/hvm/irq.h
> +++ b/xen/include/xen/hvm/irq.h
> @@ -78,8 +78,6 @@ struct hvm_girq_dpci_mapping {
>  #define NR_LINK     4
>  #if defined(__i386__) || defined(__x86_64__)
>  # define NR_HVM_IRQS VIOAPIC_NUM_PINS
> -#elif defined(__ia64__)
> -# define NR_HVM_IRQS VIOSAPIC_NUM_PINS
>  #endif
>  
>  /* Protected by domain's event_lock */
> --- a/xen/include/xen/iommu.h
> +++ b/xen/include/xen/iommu.h
> @@ -35,11 +35,7 @@ extern bool_t iommu_debug;
>  extern bool_t amd_iommu_perdev_intremap;
>  
>  /* Does this domain have a P2M table we can use as its IOMMU pagetable? */
> -#ifndef __ia64__
>  #define iommu_use_hap_pt(d) (hap_enabled(d) && iommu_hap_pt_share)
> -#else
> -#define iommu_use_hap_pt(d) 0
> -#endif
>  
>  extern struct rangeset *mmio_ro_ranges;
>  
> --- a/xen/include/xen/irq.h
> +++ b/xen/include/xen/irq.h
> @@ -95,37 +95,19 @@ int arch_init_one_irq_desc(struct irq_de
>  
>  #define irq_desc_initialized(desc) ((desc)->handler != NULL)
>  
> -#if defined(__ia64__)
> -extern irq_desc_t irq_desc[NR_VECTORS];
> -
> -#define setup_irq(irq, action) \
> -    setup_irq_vector(irq_to_vector(irq), action)
> -
> -#define release_irq(irq) \
> -    release_irq_vector(irq_to_vector(irq))
> -
> -#define request_irq(irq, handler, irqflags, devname, devid) \
> -    request_irq_vector(irq_to_vector(irq), handler, irqflags, devname, devid)
> -
> -#elif defined(__arm__)
> +#if defined(__arm__)
>  
>  #define NR_IRQS  1024
>  #define nr_irqs NR_IRQS
>  extern irq_desc_t irq_desc[NR_IRQS];
>  
> -extern int setup_irq(unsigned int irq, struct irqaction *);
> -extern void release_irq(unsigned int irq);
> -extern int request_irq(unsigned int irq,
> -               void (*handler)(int, void *, struct cpu_user_regs *),
> -               unsigned long irqflags, const char * devname, void *dev_id);
> +#endif
>  
> -#else
>  extern int setup_irq(unsigned int irq, struct irqaction *);
>  extern void release_irq(unsigned int irq);
>  extern int request_irq(unsigned int irq,
>                 void (*handler)(int, void *, struct cpu_user_regs *),
>                 unsigned long irqflags, const char * devname, void *dev_id);
> -#endif
>  
>  extern hw_irq_controller no_irq_type;
>  extern void no_action(int cpl, void *dev_id, struct cpu_user_regs *regs);
> --- a/xen/include/xen/libelf.h
> +++ b/xen/include/xen/libelf.h
> @@ -23,7 +23,7 @@
>  #ifndef __XEN_LIBELF_H__
>  #define __XEN_LIBELF_H__
>  
> -#if defined(__i386__) || defined(__x86_64__) || defined(__ia64__) ||
> defined(__arm__)
> +#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
>  #define XEN_ELF_LITTLE_ENDIAN
>  #else
>  #error define architectural endianness
> --- a/xen/include/xen/symbols.h
> +++ b/xen/include/xen/symbols.h
> @@ -21,13 +21,9 @@ static void __check_printsym_format(cons
>  {
>  }
>  
> -/* ia64 and ppc64 use function descriptors, which contain the real address */
> -#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
> -#define print_fn_descriptor_symbol(fmt, addr)  \
> -do {      \
> - unsigned long *__faddr = (unsigned long*) addr;  \
> - print_symbol(fmt, __faddr[0]);  \
> -} while (0)
> +#if 0
> +#define print_fn_descriptor_symbol(fmt, addr) \
> + print_symbol(fmt, *(unsigned long *)addr)
>  #else
>  #define print_fn_descriptor_symbol(fmt, addr) print_symbol(fmt, addr)
>  #endif
> 
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-04-03  8:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-21  8:45 removal of ia64 port Jan Beulich
2012-03-22 10:58 ` Keir Fraser
2012-03-22 11:04   ` Jan Beulich
2012-03-22 11:19     ` Keir Fraser
2012-03-22 12:10       ` Ian Campbell
2012-03-23  6:52 ` KUWAMURA Shin'ya
     [not found] ` <20120323.155249.425911897.kuwa@jp.fujitsu.com>
2012-03-23  9:01   ` Jan Beulich
2012-03-29  9:13     ` Ian Campbell
2012-03-30  8:54       ` KUWAMURA Shin'ya
     [not found]       ` <20120330.175445.321377065.kuwa@jp.fujitsu.com>
2012-04-02 15:16         ` Jan Beulich
2012-04-02 15:33           ` Keir Fraser
2012-04-03  8:18             ` Jan Beulich
2012-04-03  8:57               ` Keir Fraser

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.