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
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
>>> 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
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 >
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.
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
>>> 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
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
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
>>> 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
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 >
>>> 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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-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 > >