···11+/*22+ * This file is subject to the terms and conditions of the GNU General Public33+ * License. See the file "COPYING" in the main directory of this archive44+ * for more details.55+ *66+ * SGI UV architectural definitions77+ *88+ * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved.99+ */1010+1111+#ifndef __ASM_IA64_UV_HUB_H__1212+#define __ASM_IA64_UV_HUB_H__1313+1414+#include <linux/numa.h>1515+#include <linux/percpu.h>1616+#include <asm/types.h>1717+#include <asm/percpu.h>1818+1919+2020+/*2121+ * Addressing Terminology2222+ *2323+ * M - The low M bits of a physical address represent the offset2424+ * into the blade local memory. RAM memory on a blade is physically2525+ * contiguous (although various IO spaces may punch holes in2626+ * it)..2727+ *2828+ * N - Number of bits in the node portion of a socket physical2929+ * address.3030+ *3131+ * NASID - network ID of a router, Mbrick or Cbrick. Nasid values of3232+ * routers always have low bit of 1, C/MBricks have low bit3333+ * equal to 0. Most addressing macros that target UV hub chips3434+ * right shift the NASID by 1 to exclude the always-zero bit.3535+ * NASIDs contain up to 15 bits.3636+ *3737+ * GNODE - NASID right shifted by 1 bit. Most mmrs contain gnodes instead3838+ * of nasids.3939+ *4040+ * PNODE - the low N bits of the GNODE. The PNODE is the most useful variant4141+ * of the nasid for socket usage.4242+ *4343+ *4444+ * NumaLink Global Physical Address Format:4545+ * +--------------------------------+---------------------+4646+ * |00..000| GNODE | NodeOffset |4747+ * +--------------------------------+---------------------+4848+ * |<-------53 - M bits --->|<--------M bits ----->4949+ *5050+ * M - number of node offset bits (35 .. 40)5151+ *5252+ *5353+ * Memory/UV-HUB Processor Socket Address Format:5454+ * +----------------+---------------+---------------------+5555+ * |00..000000000000| PNODE | NodeOffset |5656+ * +----------------+---------------+---------------------+5757+ * <--- N bits --->|<--------M bits ----->5858+ *5959+ * M - number of node offset bits (35 .. 40)6060+ * N - number of PNODE bits (0 .. 10)6161+ *6262+ * Note: M + N cannot currently exceed 44 (x86_64) or 46 (IA64).6363+ * The actual values are configuration dependent and are set at6464+ * boot time. M & N values are set by the hardware/BIOS at boot.6565+ */6666+6767+6868+/*6969+ * Maximum number of bricks in all partitions and in all coherency domains.7070+ * This is the total number of bricks accessible in the numalink fabric. It7171+ * includes all C & M bricks. Routers are NOT included.7272+ *7373+ * This value is also the value of the maximum number of non-router NASIDs7474+ * in the numalink fabric.7575+ *7676+ * NOTE: a brick may contain 1 or 2 OS nodes. Don't get these confused.7777+ */7878+#define UV_MAX_NUMALINK_BLADES 163847979+8080+/*8181+ * Maximum number of C/Mbricks within a software SSI (hardware may support8282+ * more).8383+ */8484+#define UV_MAX_SSI_BLADES 18585+8686+/*8787+ * The largest possible NASID of a C or M brick (+ 2)8888+ */8989+#define UV_MAX_NASID_VALUE (UV_MAX_NUMALINK_NODES * 2)9090+9191+/*9292+ * The following defines attributes of the HUB chip. These attributes are9393+ * frequently referenced and are kept in the per-cpu data areas of each cpu.9494+ * They are kept together in a struct to minimize cache misses.9595+ */9696+struct uv_hub_info_s {9797+ unsigned long global_mmr_base;9898+ unsigned long gpa_mask;9999+ unsigned long gnode_upper;100100+ unsigned long lowmem_remap_top;101101+ unsigned long lowmem_remap_base;102102+ unsigned short pnode;103103+ unsigned short pnode_mask;104104+ unsigned short coherency_domain_number;105105+ unsigned short numa_blade_id;106106+ unsigned char blade_processor_id;107107+ unsigned char m_val;108108+ unsigned char n_val;109109+};110110+DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);111111+#define uv_hub_info (&__get_cpu_var(__uv_hub_info))112112+#define uv_cpu_hub_info(cpu) (&per_cpu(__uv_hub_info, cpu))113113+114114+/*115115+ * Local & Global MMR space macros.116116+ * Note: macros are intended to be used ONLY by inline functions117117+ * in this file - not by other kernel code.118118+ * n - NASID (full 15-bit global nasid)119119+ * g - GNODE (full 15-bit global nasid, right shifted 1)120120+ * p - PNODE (local part of nsids, right shifted 1)121121+ */122122+#define UV_NASID_TO_PNODE(n) (((n) >> 1) & uv_hub_info->pnode_mask)123123+#define UV_PNODE_TO_NASID(p) (((p) << 1) | uv_hub_info->gnode_upper)124124+125125+#define UV_LOCAL_MMR_BASE 0xf4000000UL126126+#define UV_GLOBAL_MMR32_BASE 0xf8000000UL127127+#define UV_GLOBAL_MMR64_BASE (uv_hub_info->global_mmr_base)128128+129129+#define UV_GLOBAL_MMR32_PNODE_SHIFT 15130130+#define UV_GLOBAL_MMR64_PNODE_SHIFT 26131131+132132+#define UV_GLOBAL_MMR32_PNODE_BITS(p) ((p) << (UV_GLOBAL_MMR32_PNODE_SHIFT))133133+134134+#define UV_GLOBAL_MMR64_PNODE_BITS(p) \135135+ ((unsigned long)(p) << UV_GLOBAL_MMR64_PNODE_SHIFT)136136+137137+/*138138+ * Macros for converting between kernel virtual addresses, socket local physical139139+ * addresses, and UV global physical addresses.140140+ * Note: use the standard __pa() & __va() macros for converting141141+ * between socket virtual and socket physical addresses.142142+ */143143+144144+/* socket phys RAM --> UV global physical address */145145+static inline unsigned long uv_soc_phys_ram_to_gpa(unsigned long paddr)146146+{147147+ if (paddr < uv_hub_info->lowmem_remap_top)148148+ paddr += uv_hub_info->lowmem_remap_base;149149+ return paddr | uv_hub_info->gnode_upper;150150+}151151+152152+153153+/* socket virtual --> UV global physical address */154154+static inline unsigned long uv_gpa(void *v)155155+{156156+ return __pa(v) | uv_hub_info->gnode_upper;157157+}158158+159159+/* socket virtual --> UV global physical address */160160+static inline void *uv_vgpa(void *v)161161+{162162+ return (void *)uv_gpa(v);163163+}164164+165165+/* UV global physical address --> socket virtual */166166+static inline void *uv_va(unsigned long gpa)167167+{168168+ return __va(gpa & uv_hub_info->gpa_mask);169169+}170170+171171+/* pnode, offset --> socket virtual */172172+static inline void *uv_pnode_offset_to_vaddr(int pnode, unsigned long offset)173173+{174174+ return __va(((unsigned long)pnode << uv_hub_info->m_val) | offset);175175+}176176+177177+178178+/*179179+ * Access global MMRs using the low memory MMR32 space. This region supports180180+ * faster MMR access but not all MMRs are accessible in this space.181181+ */182182+static inline unsigned long *uv_global_mmr32_address(int pnode,183183+ unsigned long offset)184184+{185185+ return __va(UV_GLOBAL_MMR32_BASE |186186+ UV_GLOBAL_MMR32_PNODE_BITS(pnode) | offset);187187+}188188+189189+static inline void uv_write_global_mmr32(int pnode, unsigned long offset,190190+ unsigned long val)191191+{192192+ *uv_global_mmr32_address(pnode, offset) = val;193193+}194194+195195+static inline unsigned long uv_read_global_mmr32(int pnode,196196+ unsigned long offset)197197+{198198+ return *uv_global_mmr32_address(pnode, offset);199199+}200200+201201+/*202202+ * Access Global MMR space using the MMR space located at the top of physical203203+ * memory.204204+ */205205+static inline unsigned long *uv_global_mmr64_address(int pnode,206206+ unsigned long offset)207207+{208208+ return __va(UV_GLOBAL_MMR64_BASE |209209+ UV_GLOBAL_MMR64_PNODE_BITS(pnode) | offset);210210+}211211+212212+static inline void uv_write_global_mmr64(int pnode, unsigned long offset,213213+ unsigned long val)214214+{215215+ *uv_global_mmr64_address(pnode, offset) = val;216216+}217217+218218+static inline unsigned long uv_read_global_mmr64(int pnode,219219+ unsigned long offset)220220+{221221+ return *uv_global_mmr64_address(pnode, offset);222222+}223223+224224+/*225225+ * Access hub local MMRs. Faster than using global space but only local MMRs226226+ * are accessible.227227+ */228228+static inline unsigned long *uv_local_mmr_address(unsigned long offset)229229+{230230+ return __va(UV_LOCAL_MMR_BASE | offset);231231+}232232+233233+static inline unsigned long uv_read_local_mmr(unsigned long offset)234234+{235235+ return *uv_local_mmr_address(offset);236236+}237237+238238+static inline void uv_write_local_mmr(unsigned long offset, unsigned long val)239239+{240240+ *uv_local_mmr_address(offset) = val;241241+}242242+243243+/*244244+ * Structures and definitions for converting between cpu, node, pnode, and blade245245+ * numbers.246246+ */247247+248248+/* Blade-local cpu number of current cpu. Numbered 0 .. <# cpus on the blade> */249249+static inline int uv_blade_processor_id(void)250250+{251251+ return smp_processor_id();252252+}253253+254254+/* Blade number of current cpu. Numnbered 0 .. <#blades -1> */255255+static inline int uv_numa_blade_id(void)256256+{257257+ return 0;258258+}259259+260260+/* Convert a cpu number to the the UV blade number */261261+static inline int uv_cpu_to_blade_id(int cpu)262262+{263263+ return 0;264264+}265265+266266+/* Convert linux node number to the UV blade number */267267+static inline int uv_node_to_blade_id(int nid)268268+{269269+ return 0;270270+}271271+272272+/* Convert a blade id to the PNODE of the blade */273273+static inline int uv_blade_to_pnode(int bid)274274+{275275+ return 0;276276+}277277+278278+/* Determine the number of possible cpus on a blade */279279+static inline int uv_blade_nr_possible_cpus(int bid)280280+{281281+ return num_possible_cpus();282282+}283283+284284+/* Determine the number of online cpus on a blade */285285+static inline int uv_blade_nr_online_cpus(int bid)286286+{287287+ return num_online_cpus();288288+}289289+290290+/* Convert a cpu id to the PNODE of the blade containing the cpu */291291+static inline int uv_cpu_to_pnode(int cpu)292292+{293293+ return 0;294294+}295295+296296+/* Convert a linux node number to the PNODE of the blade */297297+static inline int uv_node_to_pnode(int nid)298298+{299299+ return 0;300300+}301301+302302+/* Maximum possible number of blades */303303+static inline int uv_num_possible_blades(void)304304+{305305+ return 1;306306+}307307+308308+#endif /* __ASM_IA64_UV_HUB__ */309309+
+266
include/asm-ia64/uv/uv_mmrs.h
···11+/*22+ * This file is subject to the terms and conditions of the GNU General Public33+ * License. See the file "COPYING" in the main directory of this archive44+ * for more details.55+ *66+ * SGI UV MMR definitions77+ *88+ * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.99+ */1010+1111+#ifndef __ASM_IA64_UV_MMRS__1212+#define __ASM_IA64_UV_MMRS__1313+1414+/*1515+ * AUTO GENERATED - Do not edit1616+ */1717+1818+ #define UV_MMR_ENABLE (1UL << 63)1919+2020+/* ========================================================================= */2121+/* UVH_NODE_ID */2222+/* ========================================================================= */2323+#define UVH_NODE_ID 0x0UL2424+2525+#define UVH_NODE_ID_FORCE1_SHFT 02626+#define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL2727+#define UVH_NODE_ID_MANUFACTURER_SHFT 12828+#define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL2929+#define UVH_NODE_ID_PART_NUMBER_SHFT 123030+#define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL3131+#define UVH_NODE_ID_REVISION_SHFT 283232+#define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL3333+#define UVH_NODE_ID_NODE_ID_SHFT 323434+#define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL3535+#define UVH_NODE_ID_NODES_PER_BIT_SHFT 483636+#define UVH_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL3737+#define UVH_NODE_ID_NI_PORT_SHFT 563838+#define UVH_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL3939+4040+union uvh_node_id_u {4141+ unsigned long v;4242+ struct uvh_node_id_s {4343+ unsigned long force1 : 1; /* RO */4444+ unsigned long manufacturer : 11; /* RO */4545+ unsigned long part_number : 16; /* RO */4646+ unsigned long revision : 4; /* RO */4747+ unsigned long node_id : 15; /* RW */4848+ unsigned long rsvd_47 : 1; /* */4949+ unsigned long nodes_per_bit : 7; /* RW */5050+ unsigned long rsvd_55 : 1; /* */5151+ unsigned long ni_port : 4; /* RO */5252+ unsigned long rsvd_60_63 : 4; /* */5353+ } s;5454+};5555+5656+/* ========================================================================= */5757+/* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */5858+/* ========================================================================= */5959+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL6060+6161+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 246262+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL6363+6464+union uvh_rh_gam_alias210_redirect_config_0_mmr_u {6565+ unsigned long v;6666+ struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {6767+ unsigned long rsvd_0_23 : 24; /* */6868+ unsigned long dest_base : 22; /* RW */6969+ unsigned long rsvd_46_63: 18; /* */7070+ } s;7171+};7272+7373+/* ========================================================================= */7474+/* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */7575+/* ========================================================================= */7676+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL7777+7878+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 247979+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL8080+8181+union uvh_rh_gam_alias210_redirect_config_1_mmr_u {8282+ unsigned long v;8383+ struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {8484+ unsigned long rsvd_0_23 : 24; /* */8585+ unsigned long dest_base : 22; /* RW */8686+ unsigned long rsvd_46_63: 18; /* */8787+ } s;8888+};8989+9090+/* ========================================================================= */9191+/* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */9292+/* ========================================================================= */9393+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL9494+9595+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 249696+#define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL9797+9898+union uvh_rh_gam_alias210_redirect_config_2_mmr_u {9999+ unsigned long v;100100+ struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {101101+ unsigned long rsvd_0_23 : 24; /* */102102+ unsigned long dest_base : 22; /* RW */103103+ unsigned long rsvd_46_63: 18; /* */104104+ } s;105105+};106106+107107+/* ========================================================================= */108108+/* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */109109+/* ========================================================================= */110110+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL111111+112112+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28113113+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL114114+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 46115115+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0000400000000000UL116116+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52117117+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL118118+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63119119+#define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL120120+121121+union uvh_rh_gam_gru_overlay_config_mmr_u {122122+ unsigned long v;123123+ struct uvh_rh_gam_gru_overlay_config_mmr_s {124124+ unsigned long rsvd_0_27: 28; /* */125125+ unsigned long base : 18; /* RW */126126+ unsigned long gr4 : 1; /* RW */127127+ unsigned long rsvd_47_51: 5; /* */128128+ unsigned long n_gru : 4; /* RW */129129+ unsigned long rsvd_56_62: 7; /* */130130+ unsigned long enable : 1; /* RW */131131+ } s;132132+};133133+134134+/* ========================================================================= */135135+/* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */136136+/* ========================================================================= */137137+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL138138+139139+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26140140+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL141141+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46142142+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL143143+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63144144+#define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL145145+146146+union uvh_rh_gam_mmr_overlay_config_mmr_u {147147+ unsigned long v;148148+ struct uvh_rh_gam_mmr_overlay_config_mmr_s {149149+ unsigned long rsvd_0_25: 26; /* */150150+ unsigned long base : 20; /* RW */151151+ unsigned long dual_hub : 1; /* RW */152152+ unsigned long rsvd_47_62: 16; /* */153153+ unsigned long enable : 1; /* RW */154154+ } s;155155+};156156+157157+/* ========================================================================= */158158+/* UVH_RTC */159159+/* ========================================================================= */160160+#define UVH_RTC 0x28000UL161161+162162+#define UVH_RTC_REAL_TIME_CLOCK_SHFT 0163163+#define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL164164+165165+union uvh_rtc_u {166166+ unsigned long v;167167+ struct uvh_rtc_s {168168+ unsigned long real_time_clock : 56; /* RW */169169+ unsigned long rsvd_56_63 : 8; /* */170170+ } s;171171+};172172+173173+/* ========================================================================= */174174+/* UVH_SI_ADDR_MAP_CONFIG */175175+/* ========================================================================= */176176+#define UVH_SI_ADDR_MAP_CONFIG 0xc80000UL177177+178178+#define UVH_SI_ADDR_MAP_CONFIG_M_SKT_SHFT 0179179+#define UVH_SI_ADDR_MAP_CONFIG_M_SKT_MASK 0x000000000000003fUL180180+#define UVH_SI_ADDR_MAP_CONFIG_N_SKT_SHFT 8181181+#define UVH_SI_ADDR_MAP_CONFIG_N_SKT_MASK 0x0000000000000f00UL182182+183183+union uvh_si_addr_map_config_u {184184+ unsigned long v;185185+ struct uvh_si_addr_map_config_s {186186+ unsigned long m_skt : 6; /* RW */187187+ unsigned long rsvd_6_7: 2; /* */188188+ unsigned long n_skt : 4; /* RW */189189+ unsigned long rsvd_12_63: 52; /* */190190+ } s;191191+};192192+193193+/* ========================================================================= */194194+/* UVH_SI_ALIAS0_OVERLAY_CONFIG */195195+/* ========================================================================= */196196+#define UVH_SI_ALIAS0_OVERLAY_CONFIG 0xc80008UL197197+198198+#define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_SHFT 24199199+#define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL200200+#define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_SHFT 48201201+#define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL202202+#define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_SHFT 63203203+#define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL204204+205205+union uvh_si_alias0_overlay_config_u {206206+ unsigned long v;207207+ struct uvh_si_alias0_overlay_config_s {208208+ unsigned long rsvd_0_23: 24; /* */209209+ unsigned long base : 8; /* RW */210210+ unsigned long rsvd_32_47: 16; /* */211211+ unsigned long m_alias : 5; /* RW */212212+ unsigned long rsvd_53_62: 10; /* */213213+ unsigned long enable : 1; /* RW */214214+ } s;215215+};216216+217217+/* ========================================================================= */218218+/* UVH_SI_ALIAS1_OVERLAY_CONFIG */219219+/* ========================================================================= */220220+#define UVH_SI_ALIAS1_OVERLAY_CONFIG 0xc80010UL221221+222222+#define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_SHFT 24223223+#define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL224224+#define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_SHFT 48225225+#define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL226226+#define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_SHFT 63227227+#define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL228228+229229+union uvh_si_alias1_overlay_config_u {230230+ unsigned long v;231231+ struct uvh_si_alias1_overlay_config_s {232232+ unsigned long rsvd_0_23: 24; /* */233233+ unsigned long base : 8; /* RW */234234+ unsigned long rsvd_32_47: 16; /* */235235+ unsigned long m_alias : 5; /* RW */236236+ unsigned long rsvd_53_62: 10; /* */237237+ unsigned long enable : 1; /* RW */238238+ } s;239239+};240240+241241+/* ========================================================================= */242242+/* UVH_SI_ALIAS2_OVERLAY_CONFIG */243243+/* ========================================================================= */244244+#define UVH_SI_ALIAS2_OVERLAY_CONFIG 0xc80018UL245245+246246+#define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_SHFT 24247247+#define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL248248+#define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_SHFT 48249249+#define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL250250+#define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_SHFT 63251251+#define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL252252+253253+union uvh_si_alias2_overlay_config_u {254254+ unsigned long v;255255+ struct uvh_si_alias2_overlay_config_s {256256+ unsigned long rsvd_0_23: 24; /* */257257+ unsigned long base : 8; /* RW */258258+ unsigned long rsvd_32_47: 16; /* */259259+ unsigned long m_alias : 5; /* RW */260260+ unsigned long rsvd_53_62: 10; /* */261261+ unsigned long enable : 1; /* RW */262262+ } s;263263+};264264+265265+266266+#endif /* __ASM_IA64_UV_MMRS__ */