Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
4bba626e
Commit
4bba626e
authored
Jun 29, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://lia64.bkbits.net/to-linus-2.5
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
523cc485
f9f0080e
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
439 additions
and
415 deletions
+439
-415
arch/ia64/Kconfig
arch/ia64/Kconfig
+1
-1
arch/ia64/Makefile
arch/ia64/Makefile
+2
-1
arch/ia64/configs/sn2_defconfig
arch/ia64/configs/sn2_defconfig
+205
-281
arch/ia64/kernel/efi_stub.S
arch/ia64/kernel/efi_stub.S
+5
-1
arch/ia64/kernel/entry.S
arch/ia64/kernel/entry.S
+2
-2
arch/ia64/kernel/head.S
arch/ia64/kernel/head.S
+13
-9
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/iosapic.c
+8
-17
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca.c
+1
-1
arch/ia64/kernel/module.c
arch/ia64/kernel/module.c
+20
-2
arch/ia64/kernel/pal.S
arch/ia64/kernel/pal.S
+15
-4
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+29
-0
arch/ia64/mm/discontig.c
arch/ia64/mm/discontig.c
+1
-1
arch/ia64/sn/io/sn2/bte_error.c
arch/ia64/sn/io/sn2/bte_error.c
+2
-2
arch/ia64/sn/kernel/bte.c
arch/ia64/sn/kernel/bte.c
+90
-58
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/setup.c
+0
-3
include/asm-ia64/iosapic.h
include/asm-ia64/iosapic.h
+18
-3
include/asm-ia64/smp.h
include/asm-ia64/smp.h
+4
-0
include/asm-ia64/sn/bte.h
include/asm-ia64/sn/bte.h
+23
-26
include/asm-ia64/sn/pda.h
include/asm-ia64/sn/pda.h
+0
-2
include/asm-ia64/sn/sn_cpuid.h
include/asm-ia64/sn/sn_cpuid.h
+0
-1
No files found.
arch/ia64/Kconfig
View file @
4bba626e
...
@@ -388,7 +388,7 @@ config IA64_GRANULE_16MB
...
@@ -388,7 +388,7 @@ config IA64_GRANULE_16MB
config IA64_GRANULE_64MB
config IA64_GRANULE_64MB
bool "64MB"
bool "64MB"
depends on !(IA64_GENERIC || IA64_HP_ZX1)
depends on !(IA64_GENERIC || IA64_HP_ZX1
|| IA64_SGI_SN2
)
endchoice
endchoice
...
...
arch/ia64/Makefile
View file @
4bba626e
...
@@ -43,7 +43,8 @@ endif
...
@@ -43,7 +43,8 @@ endif
ifeq
($(GCC_VERSION),3)
ifeq
($(GCC_VERSION),3)
ifeq
($(GCC_MINOR_VERSION),4)
ifeq
($(GCC_MINOR_VERSION),4)
cflags-$(CONFIG_ITANIUM)
+=
-mtune
=
merced
# Workaround Itanium 1 bugs in gcc 3.4.
# cflags-$(CONFIG_ITANIUM) += -mtune=merced
cflags-$(CONFIG_MCKINLEY)
+=
-mtune
=
mckinley
cflags-$(CONFIG_MCKINLEY)
+=
-mtune
=
mckinley
endif
endif
endif
endif
...
...
arch/ia64/configs/sn2_defconfig
View file @
4bba626e
...
@@ -140,6 +140,7 @@ CONFIG_HOTPLUG_PCI_SGI=y
...
@@ -140,6 +140,7 @@ CONFIG_HOTPLUG_PCI_SGI=y
#
#
# Generic Driver Options
# Generic Driver Options
#
#
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DRIVER is not set
...
@@ -162,12 +163,12 @@ CONFIG_FW_LOADER=m
...
@@ -162,12 +163,12 @@ CONFIG_FW_LOADER=m
#
#
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_DAC960 is not set
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_
CARMEL
is not set
# CONFIG_BLK_DEV_
SX8
is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INITRD=y
...
@@ -181,12 +182,12 @@ CONFIG_BLK_DEV_IDE=y
...
@@ -181,12 +182,12 @@ CONFIG_BLK_DEV_IDE=y
#
#
# Please see Documentation/ide.txt for help/info on IDE drives
# Please see Documentation/ide.txt for help/info on IDE drives
#
#
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_
IDEDISK_MULTI_MODE
is not set
# CONFIG_
BLK_DEV_IDEDISK
is not set
CONFIG_BLK_DEV_IDECD=
m
CONFIG_BLK_DEV_IDECD=
y
CONFIG_BLK_DEV_IDETAPE=m
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
# CONFIG_IDE_TASKFILE_IO is not set
...
@@ -195,9 +196,9 @@ CONFIG_BLK_DEV_IDESCSI=m
...
@@ -195,9 +196,9 @@ CONFIG_BLK_DEV_IDESCSI=m
#
#
CONFIG_IDE_GENERIC=y
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
...
@@ -207,20 +208,19 @@ CONFIG_BLK_DEV_ADMA=y
...
@@ -207,20 +208,19 @@ CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_AMD74XX is not set
CONFIG_BLK_DEV_CMD64X=m
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5530 is not set
CONFIG_BLK_DEV_HPT34X=m
# CONFIG_BLK_DEV_HPT34X is not set
CONFIG_HPT34X_AUTODMA=y
# CONFIG_BLK_DEV_HPT366 is not set
CONFIG_BLK_DEV_HPT366=m
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
CONFIG_BLK_DEV_SVWKS=m
# CONFIG_BLK_DEV_SVWKS is not set
CONFIG_BLK_DEV_SGIIOC4=y
CONFIG_BLK_DEV_SGIIOC4=y
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
...
@@ -243,8 +243,8 @@ CONFIG_SCSI_PROC_FS=y
...
@@ -243,8 +243,8 @@ CONFIG_SCSI_PROC_FS=y
#
#
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=
y
CONFIG_BLK_DEV_SR=
m
# CONFIG_BLK_DEV_SR_VENDOR is not set
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SG=m
...
@@ -265,37 +265,25 @@ CONFIG_SCSI_FC_ATTRS=y
...
@@ -265,37 +265,25 @@ CONFIG_SCSI_FC_ATTRS=y
# SCSI low-level drivers
# SCSI low-level drivers
#
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=m
# CONFIG_SCSI_AIC7XXX is not set
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
# CONFIG_SCSI_AIC7XXX_OLD is not set
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
CONFIG_AIC7XXX_DEBUG_ENABLE=y
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
CONFIG_AIC79XX_DEBUG_ENABLE=y
CONFIG_AIC79XX_DEBUG_MASK=0
CONFIG_AIC79XX_REG_PRETTY_PRINT=y
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ADVANSYS is not set
CONFIG_SCSI_MEGARAID=m
# CONFIG_SCSI_MEGARAID is not set
CONFIG_SCSI_SATA=y
CONFIG_SCSI_SATA=y
CONFIG_SCSI_SATA_SVW=m
# CONFIG_SCSI_SATA_SVW is not set
CONFIG_SCSI_ATA_PIIX=m
# CONFIG_SCSI_ATA_PIIX is not set
CONFIG_SCSI_SATA_PROMISE=m
# CONFIG_SCSI_SATA_NV is not set
# CONFIG_SCSI_SATA_PROMISE is not set
# CONFIG_SCSI_SATA_SX4 is not set
# CONFIG_SCSI_SATA_SX4 is not set
# CONFIG_SCSI_SATA_SIL is not set
# CONFIG_SCSI_SATA_SIL is not set
# CONFIG_SCSI_SATA_SIS is not set
# CONFIG_SCSI_SATA_SIS is not set
CONFIG_SCSI_SATA_VIA=m
# CONFIG_SCSI_SATA_VIA is not set
CONFIG_SCSI_SATA_VITESSE=y
CONFIG_SCSI_SATA_VITESSE=y
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_EATA_PIO is not set
...
@@ -303,11 +291,7 @@ CONFIG_SCSI_SATA_VITESSE=y
...
@@ -303,11 +291,7 @@ CONFIG_SCSI_SATA_VITESSE=y
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_INIA100 is not set
CONFIG_SCSI_SYM53C8XX_2=m
# CONFIG_SCSI_SYM53C8XX_2 is not set
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_FC is not set
...
@@ -317,8 +301,8 @@ CONFIG_SCSI_QLA2XXX=y
...
@@ -317,8 +301,8 @@ CONFIG_SCSI_QLA2XXX=y
CONFIG_SCSI_QLA22XX=y
CONFIG_SCSI_QLA22XX=y
CONFIG_SCSI_QLA2300=y
CONFIG_SCSI_QLA2300=y
CONFIG_SCSI_QLA2322=y
CONFIG_SCSI_QLA2322=y
CONFIG_SCSI_QLA6312=y
# CONFIG_SCSI_QLA6312 is not set
CONFIG_SCSI_QLA6322=y
# CONFIG_SCSI_QLA6322 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DEBUG is not set
...
@@ -336,6 +320,9 @@ CONFIG_MD_RAID5=y
...
@@ -336,6 +320,9 @@ CONFIG_MD_RAID5=y
CONFIG_MD_MULTIPATH=y
CONFIG_MD_MULTIPATH=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
#
#
# Fusion MPT device support
# Fusion MPT device support
...
@@ -344,7 +331,6 @@ CONFIG_FUSION=y
...
@@ -344,7 +331,6 @@ CONFIG_FUSION=y
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_ISENSE=m
CONFIG_FUSION_ISENSE=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_CTL=m
# CONFIG_FUSION_LAN is not set
#
#
# IEEE 1394 (FireWire) support
# IEEE 1394 (FireWire) support
...
@@ -371,126 +357,38 @@ CONFIG_UNIX=y
...
@@ -371,126 +357,38 @@ CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_MULTIPLE_TABLES=y
# CONFIG_IP_ROUTE_FWMARK is not set
CONFIG_IP_ROUTE_NAT=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_TOS=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
# CONFIG_NET_IPIP is not set
CONFIG_NET_IPGRE=m
# CONFIG_NET_IPGRE is not set
# CONFIG_NET_IPGRE_BROADCAST is not set
# CONFIG_IP_MROUTE is not set
CONFIG_IP_MROUTE=y
# CONFIG_ARPD is not set
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_ARPD=y
CONFIG_SYN_COOKIES=y
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
# CONFIG_INET_AH is not set
CONFIG_INET_ESP=m
# CONFIG_INET_ESP is not set
CONFIG_INET_IPCOMP=m
# CONFIG_INET_IPCOMP is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
CONFIG_IPV6=m
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
# CONFIG_IPV6_PRIVACY is not set
CONFIG_INET6_AH=m
# CONFIG_INET6_AH is not set
CONFIG_INET6_ESP=m
# CONFIG_INET6_ESP is not set
CONFIG_INET6_IPCOMP=m
# CONFIG_INET6_IPCOMP is not set
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_TUNNEL is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER is not set
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_PHYSDEV=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
# CONFIG_IP_NF_NAT_LOCAL is not set
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_NAT_TFTP=m
CONFIG_IP_NF_NAT_AMANDA=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
# CONFIG_IP_NF_RAW is not set
#
# IPv6: Netfilter Configuration
#
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
#
# Bridge: Netfilter Configuration
#
# CONFIG_BRIDGE_NF_EBTABLES is not set
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
#
#
# SCTP Configuration (EXPERIMENTAL)
# SCTP Configuration (EXPERIMENTAL)
#
#
# CONFIG_IP_SCTP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_ATM is not set
CONFIG_BRIDGE=m
# CONFIG_BRIDGE is not set
CONFIG_VLAN_8021Q=m
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_LAPB is not set
CONFIG_NET_DIVERT=y
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_FASTROUTE is not set
...
@@ -499,31 +397,8 @@ CONFIG_NET_DIVERT=y
...
@@ -499,31 +397,8 @@ CONFIG_NET_DIVERT=y
#
#
# QoS and/or fair queueing
# QoS and/or fair queueing
#
#
CONFIG_NET_SCHED=y
# CONFIG_NET_SCHED is not set
CONFIG_NET_SCH_CBQ=m
# CONFIG_NET_CLS_ROUTE is not set
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
# CONFIG_NET_SCH_DELAY is not set
# CONFIG_NET_SCH_INGRESS is not set
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_POLICE=y
#
#
# Network testing
# Network testing
...
@@ -537,10 +412,10 @@ CONFIG_NET_POLL_CONTROLLER=y
...
@@ -537,10 +412,10 @@ CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_IRDA is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_DUMMY is not set
CONFIG_BONDING=m
# CONFIG_BONDING is not set
CONFIG_EQUALIZER=m
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
# CONFIG_ETHERTAP is not set
#
#
...
@@ -551,66 +426,27 @@ CONFIG_TUN=m
...
@@ -551,66 +426,27 @@ CONFIG_TUN=m
#
#
# Ethernet (10 or 100Mbit)
# Ethernet (10 or 100Mbit)
#
#
CONFIG_NET_ETHERNET=y
# CONFIG_NET_ETHERNET is not set
CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
#
# Tulip family network device support
#
CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
CONFIG_EEPRO100=m
# CONFIG_EEPRO100_PIO is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set
#
#
# Ethernet (1000 Mbit)
# Ethernet (1000 Mbit)
#
#
CONFIG_ACENIC=m
# CONFIG_ACENIC is not set
# CONFIG_ACENIC_OMIT_TIGON_I is not set
# CONFIG_DL2K is not set
CONFIG_DL2K=m
# CONFIG_E1000 is not set
CONFIG_E1000=y
# CONFIG_NS83820 is not set
# CONFIG_E1000_NAPI is not set
# CONFIG_HAMACHI is not set
CONFIG_NS83820=m
# CONFIG_YELLOWFIN is not set
CONFIG_HAMACHI=m
# CONFIG_R8169 is not set
CONFIG_YELLOWFIN=m
# CONFIG_SK98LIN is not set
CONFIG_R8169=m
CONFIG_SK98LIN=m
CONFIG_TIGON3=y
CONFIG_TIGON3=y
#
#
# Ethernet (10000 Mbit)
# Ethernet (10000 Mbit)
#
#
CONFIG_IXGB=m
# CONFIG_IXGB is not set
# CONFIG_IXGB_NAPI is not set
CONFIG_S2IO=m
# CONFIG_S2IO is not set
# CONFIG_S2IO
_NAPI
is not set
#
#
# Token Ring devices
# Token Ring devices
...
@@ -628,16 +464,9 @@ CONFIG_IXGB=m
...
@@ -628,16 +464,9 @@ CONFIG_IXGB=m
# CONFIG_WAN is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=m
# CONFIG_PPP is not set
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
# CONFIG_SLIP is not set
CONFIG_NET_FC=y
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
CONFIG_NETCONSOLE=y
...
@@ -660,7 +489,7 @@ CONFIG_INPUT=y
...
@@ -660,7 +489,7 @@ CONFIG_INPUT=y
# Userland interfaces
# Userland interfaces
#
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_JOYDEV is not set
...
@@ -673,25 +502,14 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
...
@@ -673,25 +502,14 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
#
#
# CONFIG_GAMEPORT is not set
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
# CONFIG_SERIO is not set
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_I8042 is not set
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
#
#
# Input Device Drivers
# Input Device Drivers
#
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_INPUT_KEYBOARD is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_INPUT_MOUSE is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
# CONFIG_INPUT_MISC is not set
...
@@ -746,6 +564,7 @@ CONFIG_EFI_RTC=y
...
@@ -746,6 +564,7 @@ CONFIG_EFI_RTC=y
# CONFIG_AGP is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_DRM is not set
CONFIG_RAW_DRIVER=m
CONFIG_RAW_DRIVER=m
# CONFIG_HPET is not set
CONFIG_MAX_RAW_DEVS=256
CONFIG_MAX_RAW_DEVS=256
#
#
...
@@ -787,7 +606,102 @@ CONFIG_DUMMY_CONSOLE=y
...
@@ -787,7 +606,102 @@ CONFIG_DUMMY_CONSOLE=y
#
#
# USB support
# USB support
#
#
# CONFIG_USB is not set
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
# CONFIG_USB_DEVICEFS is not set
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=m
#
# USB Device Class drivers
#
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_STORAGE is not set
#
# USB Human Interface Devices (HID)
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set
#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network adaptors
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
#
# USB port drivers
#
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETSERVO is not set
#
#
# USB Gadget Support
# USB Gadget Support
...
@@ -797,18 +711,23 @@ CONFIG_DUMMY_CONSOLE=y
...
@@ -797,18 +711,23 @@ CONFIG_DUMMY_CONSOLE=y
#
#
# File systems
# File systems
#
#
CONFIG_EXT2_FS=
y
CONFIG_EXT2_FS=
m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_EXT3_FS_SECURITY=y
CONFIG_JBD=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
CONFIG_XFS_FS=y
...
@@ -822,8 +741,8 @@ CONFIG_QUOTA=y
...
@@ -822,8 +741,8 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=
y
CONFIG_AUTOFS_FS=
m
CONFIG_AUTOFS4_FS=
y
CONFIG_AUTOFS4_FS=
m
#
#
# CD-ROM/DVD Filesystems
# CD-ROM/DVD Filesystems
...
@@ -839,6 +758,8 @@ CONFIG_UDF_FS=m
...
@@ -839,6 +758,8 @@ CONFIG_UDF_FS=m
CONFIG_FAT_FS=y
CONFIG_FAT_FS=y
# CONFIG_MSDOS_FS is not set
# CONFIG_MSDOS_FS is not set
CONFIG_VFAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_FS is not set
#
#
...
@@ -874,22 +795,25 @@ CONFIG_RAMFS=y
...
@@ -874,22 +795,25 @@ CONFIG_RAMFS=y
#
#
# Network File Systems
# Network File Systems
#
#
CONFIG_NFS_FS=
y
CONFIG_NFS_FS=
m
CONFIG_NFS_V3=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V4 is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=
y
CONFIG_NFSD=
m
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
CONFIG_NFSD_V4=y
# CONFIG_NFSD_TCP is not set
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=
y
CONFIG_LOCKD=
m
CONFIG_LOCKD_V4=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_EXPORTFS=m
CONFIG_SUNRPC=y
CONFIG_SUNRPC=m
# CONFIG_RPCSEC_GSS_KRB5 is not set
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_SMB_FS=m
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_CIFS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_POSIX is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_AFS_FS is not set
...
@@ -909,7 +833,6 @@ CONFIG_MSDOS_PARTITION=y
...
@@ -909,7 +833,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_NEC98_PARTITION is not set
CONFIG_SGI_PARTITION=y
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
...
@@ -920,7 +843,7 @@ CONFIG_EFI_PARTITION=y
...
@@ -920,7 +843,7 @@ CONFIG_EFI_PARTITION=y
#
#
CONFIG_NLS=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
...
@@ -943,7 +866,8 @@ CONFIG_NLS_DEFAULT="iso8859-1"
...
@@ -943,7 +866,8 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_4 is not set
...
@@ -956,7 +880,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
...
@@ -956,7 +880,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
CONFIG_NLS_UTF8=y
#
#
# Library routines
# Library routines
...
@@ -985,7 +909,7 @@ CONFIG_MAGIC_SYSRQ=y
...
@@ -985,7 +909,7 @@ CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
# CONFIG_IA64_DEBUG_IRQ is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_INFO=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
#
#
...
...
arch/ia64/kernel/efi_stub.S
View file @
4bba626e
...
@@ -44,7 +44,7 @@
...
@@ -44,7 +44,7 @@
GLOBAL_ENTRY
(
efi_call_phys
)
GLOBAL_ENTRY
(
efi_call_phys
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
8
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
8
)
alloc
loc1
=
ar
.
pfs
,
8
,
5
,
7
,
0
alloc
loc1
=
ar
.
pfs
,
8
,
7
,
7
,
0
ld8
r2
=[
in0
],
8
//
load
EFI
function
's entry point
ld8
r2
=[
in0
],
8
//
load
EFI
function
's entry point
mov
loc0
=
rp
mov
loc0
=
rp
.
body
.
body
...
@@ -70,9 +70,13 @@ GLOBAL_ENTRY(efi_call_phys)
...
@@ -70,9 +70,13 @@ GLOBAL_ENTRY(efi_call_phys)
mov
out3
=
in4
mov
out3
=
in4
mov
out5
=
in6
mov
out5
=
in6
mov
out6
=
in7
mov
out6
=
in7
mov
loc5
=
r19
mov
loc6
=
r20
br.call.sptk.many
rp
=
b6
//
call
the
EFI
function
br.call.sptk.many
rp
=
b6
//
call
the
EFI
function
.
ret1
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
.
ret1
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
r16
=
loc3
mov
r16
=
loc3
mov
r19
=
loc5
mov
r20
=
loc6
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
.
ret2
:
mov
ar
.
rsc
=
loc4
//
restore
RSE
configuration
.
ret2
:
mov
ar
.
rsc
=
loc4
//
restore
RSE
configuration
mov
ar
.
pfs
=
loc1
mov
ar
.
pfs
=
loc1
...
...
arch/ia64/kernel/entry.S
View file @
4bba626e
...
@@ -182,7 +182,7 @@ GLOBAL_ENTRY(ia64_switch_to)
...
@@ -182,7 +182,7 @@ GLOBAL_ENTRY(ia64_switch_to)
movl
r25
=
init_task
movl
r25
=
init_task
mov
r27
=
IA64_KR
(
CURRENT_STACK
)
mov
r27
=
IA64_KR
(
CURRENT_STACK
)
adds
r21
=
IA64_TASK_THREAD_KSP_OFFSET
,
in0
adds
r21
=
IA64_TASK_THREAD_KSP_OFFSET
,
in0
dep
r20
=
0
,
in0
,
61
,
3
//
physical
address
of
"
curren
t"
dep
r20
=
0
,
in0
,
61
,
3
//
physical
address
of
"
nex
t"
;;
;;
st8
[
r22
]=
sp
//
save
kernel
stack
pointer
of
old
task
st8
[
r22
]=
sp
//
save
kernel
stack
pointer
of
old
task
shr.u
r26
=
r20
,
IA64_GRANULE_SHIFT
shr.u
r26
=
r20
,
IA64_GRANULE_SHIFT
...
@@ -195,7 +195,7 @@ GLOBAL_ENTRY(ia64_switch_to)
...
@@ -195,7 +195,7 @@ GLOBAL_ENTRY(ia64_switch_to)
(
p6
)
br.cond.dpnt
.
map
(
p6
)
br.cond.dpnt
.
map
;;
;;
.
done
:
.
done
:
(
p6
)
ssm
psr
.
ic
//
if
we
we
had
to
map
,
r
enable
the
psr
.
ic
bit
FIRST
!!!
(
p6
)
ssm
psr
.
ic
//
if
we
had
to
map
,
re
enable
the
psr
.
ic
bit
FIRST
!!!
;;
;;
(
p6
)
srlz.d
(
p6
)
srlz.d
ld8
sp
=[
r21
]
//
load
kernel
stack
pointer
of
new
task
ld8
sp
=[
r21
]
//
load
kernel
stack
pointer
of
new
task
...
...
arch/ia64/kernel/head.S
View file @
4bba626e
...
@@ -67,7 +67,7 @@ start_ap:
...
@@ -67,7 +67,7 @@ start_ap:
*
Initialize
kernel
region
registers
:
*
Initialize
kernel
region
registers
:
*
rr
[
5
]
:
VHPT
enabled
,
page
size
=
PAGE_SHIFT
*
rr
[
5
]
:
VHPT
enabled
,
page
size
=
PAGE_SHIFT
*
rr
[
6
]
:
VHPT
disabled
,
page
size
=
IA64_GRANULE_SHIFT
*
rr
[
6
]
:
VHPT
disabled
,
page
size
=
IA64_GRANULE_SHIFT
*
rr
[
5
]
:
VHPT
disabled
,
page
size
=
IA64_GRANULE_SHIFT
*
rr
[
7
]
:
VHPT
disabled
,
page
size
=
IA64_GRANULE_SHIFT
*/
*/
mov
r16
=((
ia64_rid
(
IA64_REGION_ID_KERNEL
,
(
5
<<
61
))
<<
8
)
| (PAGE_SHIFT << 2) |
1
)
mov
r16
=((
ia64_rid
(
IA64_REGION_ID_KERNEL
,
(
5
<<
61
))
<<
8
)
| (PAGE_SHIFT << 2) |
1
)
movl
r17
=(
5
<<
61
)
movl
r17
=(
5
<<
61
)
...
@@ -154,8 +154,7 @@ start_ap:
...
@@ -154,8 +154,7 @@ start_ap:
#endif
#endif
;;
;;
tpa
r3
=
r2
//
r3
==
phys
addr
of
task
struct
tpa
r3
=
r2
//
r3
==
phys
addr
of
task
struct
;;
mov
r16
=-
1
shr.u
r16
=
r3
,
IA64_GRANULE_SHIFT
(
isBP
)
br.cond.dpnt
.
load_current
//
BP
stack
is
on
region
5
---
no
need
to
map
it
(
isBP
)
br.cond.dpnt
.
load_current
//
BP
stack
is
on
region
5
---
no
need
to
map
it
//
load
mapping
for
stack
(
virtaddr
in
r2
,
physaddr
in
r3
)
//
load
mapping
for
stack
(
virtaddr
in
r2
,
physaddr
in
r3
)
...
@@ -169,6 +168,7 @@ start_ap:
...
@@ -169,6 +168,7 @@ start_ap:
dep
r2
=-
1
,
r3
,
61
,
3
//
IMVA
of
task
dep
r2
=-
1
,
r3
,
61
,
3
//
IMVA
of
task
;;
;;
mov
r17
=
rr
[
r2
]
mov
r17
=
rr
[
r2
]
shr.u
r16
=
r3
,
IA64_GRANULE_SHIFT
;;
;;
dep
r17
=
0
,
r17
,
8
,
24
dep
r17
=
0
,
r17
,
8
,
24
;;
;;
...
@@ -706,6 +706,9 @@ END(__ia64_init_fpu)
...
@@ -706,6 +706,9 @@ END(__ia64_init_fpu)
*
*
*
Inputs
:
*
Inputs
:
*
r16
=
new
psr
to
establish
*
r16
=
new
psr
to
establish
*
Output
:
*
r19
=
old
virtual
address
of
ar
.
bsp
*
r20
=
old
virtual
address
of
sp
*
*
*
Note
:
RSE
must
already
be
in
enforced
lazy
mode
*
Note
:
RSE
must
already
be
in
enforced
lazy
mode
*/
*/
...
@@ -724,12 +727,13 @@ GLOBAL_ENTRY(ia64_switch_mode_phys)
...
@@ -724,12 +727,13 @@ GLOBAL_ENTRY(ia64_switch_mode_phys)
mov
cr
.
ipsr
=
r16
//
set
new
PSR
mov
cr
.
ipsr
=
r16
//
set
new
PSR
add
r3
=
1
f
-
ia64_switch_mode_phys
,
r15
add
r3
=
1
f
-
ia64_switch_mode_phys
,
r15
mov
r17
=
ar
.
bsp
mov
r19
=
ar
.
bsp
mov
r20
=
sp
mov
r14
=
rp
//
get
return
address
into
a
general
register
mov
r14
=
rp
//
get
return
address
into
a
general
register
;;
;;
//
going
to
physical
mode
,
use
tpa
to
translate
virt
->
phys
//
going
to
physical
mode
,
use
tpa
to
translate
virt
->
phys
tpa
r17
=
r1
7
tpa
r17
=
r1
9
tpa
r3
=
r3
tpa
r3
=
r3
tpa
sp
=
sp
tpa
sp
=
sp
tpa
r14
=
r14
tpa
r14
=
r14
...
@@ -752,6 +756,8 @@ END(ia64_switch_mode_phys)
...
@@ -752,6 +756,8 @@ END(ia64_switch_mode_phys)
*
*
*
Inputs
:
*
Inputs
:
*
r16
=
new
psr
to
establish
*
r16
=
new
psr
to
establish
*
r19
=
new
bspstore
to
establish
*
r20
=
new
sp
to
establish
*
*
*
Note
:
RSE
must
already
be
in
enforced
lazy
mode
*
Note
:
RSE
must
already
be
in
enforced
lazy
mode
*/
*/
...
@@ -770,7 +776,6 @@ GLOBAL_ENTRY(ia64_switch_mode_virt)
...
@@ -770,7 +776,6 @@ GLOBAL_ENTRY(ia64_switch_mode_virt)
mov
cr
.
ipsr
=
r16
//
set
new
PSR
mov
cr
.
ipsr
=
r16
//
set
new
PSR
add
r3
=
1
f
-
ia64_switch_mode_virt
,
r15
add
r3
=
1
f
-
ia64_switch_mode_virt
,
r15
mov
r17
=
ar
.
bsp
mov
r14
=
rp
//
get
return
address
into
a
general
register
mov
r14
=
rp
//
get
return
address
into
a
general
register
;;
;;
...
@@ -781,15 +786,14 @@ GLOBAL_ENTRY(ia64_switch_mode_virt)
...
@@ -781,15 +786,14 @@ GLOBAL_ENTRY(ia64_switch_mode_virt)
movl
r18
=
KERNEL_START
movl
r18
=
KERNEL_START
dep
r3
=
0
,
r3
,
KERNEL_TR_PAGE_SHIFT
,
64
-
KERNEL_TR_PAGE_SHIFT
dep
r3
=
0
,
r3
,
KERNEL_TR_PAGE_SHIFT
,
64
-
KERNEL_TR_PAGE_SHIFT
dep
r14
=
0
,
r14
,
KERNEL_TR_PAGE_SHIFT
,
64
-
KERNEL_TR_PAGE_SHIFT
dep
r14
=
0
,
r14
,
KERNEL_TR_PAGE_SHIFT
,
64
-
KERNEL_TR_PAGE_SHIFT
dep
r17
=-
1
,
r17
,
61
,
3
mov
sp
=
r20
dep
sp
=-
1
,
sp
,
61
,
3
;;
;;
or
r3
=
r3
,
r18
or
r3
=
r3
,
r18
or
r14
=
r14
,
r18
or
r14
=
r14
,
r18
;;
;;
mov
r18
=
ar
.
rnat
//
save
ar
.
rnat
mov
r18
=
ar
.
rnat
//
save
ar
.
rnat
mov
ar
.
bspstore
=
r1
7
//
this
steps
on
ar
.
rnat
mov
ar
.
bspstore
=
r1
9
//
this
steps
on
ar
.
rnat
mov
cr
.
iip
=
r3
mov
cr
.
iip
=
r3
mov
cr
.
ifs
=
r0
mov
cr
.
ifs
=
r0
;;
;;
...
...
arch/ia64/kernel/iosapic.c
View file @
4bba626e
...
@@ -217,10 +217,8 @@ set_rte (unsigned int vector, unsigned int dest, int mask)
...
@@ -217,10 +217,8 @@ set_rte (unsigned int vector, unsigned int dest, int mask)
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
{
{
writel
(
IOSAPIC_RTE_HIGH
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
iosapic_write
(
addr
,
IOSAPIC_RTE_HIGH
(
rte_index
),
high32
);
writel
(
high32
,
addr
+
IOSAPIC_WINDOW
);
iosapic_write
(
addr
,
IOSAPIC_RTE_LOW
(
rte_index
),
low32
);
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
writel
(
low32
,
addr
+
IOSAPIC_WINDOW
);
iosapic_intr_info
[
vector
].
low32
=
low32
;
iosapic_intr_info
[
vector
].
low32
=
low32
;
}
}
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
...
@@ -249,12 +247,9 @@ mask_irq (unsigned int irq)
...
@@ -249,12 +247,9 @@ mask_irq (unsigned int irq)
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
{
{
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
/* set only the mask bit */
/* set only the mask bit */
low32
=
iosapic_intr_info
[
vec
].
low32
|=
IOSAPIC_MASK
;
low32
=
iosapic_intr_info
[
vec
].
low32
|=
IOSAPIC_MASK
;
iosapic_write
(
addr
,
IOSAPIC_RTE_LOW
(
rte_index
),
low32
);
writel
(
low32
,
addr
+
IOSAPIC_WINDOW
);
}
}
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
}
}
...
@@ -275,9 +270,8 @@ unmask_irq (unsigned int irq)
...
@@ -275,9 +270,8 @@ unmask_irq (unsigned int irq)
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
{
{
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
low32
=
iosapic_intr_info
[
vec
].
low32
&=
~
IOSAPIC_MASK
;
low32
=
iosapic_intr_info
[
vec
].
low32
&=
~
IOSAPIC_MASK
;
writel
(
low32
,
addr
+
IOSAPIC_WINDOW
);
iosapic_write
(
addr
,
IOSAPIC_RTE_LOW
(
rte_index
),
low32
);
}
}
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
}
}
...
@@ -325,10 +319,8 @@ iosapic_set_affinity (unsigned int irq, cpumask_t mask)
...
@@ -325,10 +319,8 @@ iosapic_set_affinity (unsigned int irq, cpumask_t mask)
low32
|=
(
IOSAPIC_FIXED
<<
IOSAPIC_DELIVERY_SHIFT
);
low32
|=
(
IOSAPIC_FIXED
<<
IOSAPIC_DELIVERY_SHIFT
);
iosapic_intr_info
[
vec
].
low32
=
low32
;
iosapic_intr_info
[
vec
].
low32
=
low32
;
writel
(
IOSAPIC_RTE_HIGH
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
iosapic_write
(
addr
,
IOSAPIC_RTE_HIGH
(
rte_index
),
high32
);
writel
(
high32
,
addr
+
IOSAPIC_WINDOW
);
iosapic_write
(
addr
,
IOSAPIC_RTE_LOW
(
rte_index
),
low32
);
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
writel
(
low32
,
addr
+
IOSAPIC_WINDOW
);
}
}
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
#endif
#endif
...
@@ -351,7 +343,7 @@ iosapic_end_level_irq (unsigned int irq)
...
@@ -351,7 +343,7 @@ iosapic_end_level_irq (unsigned int irq)
ia64_vector
vec
=
irq_to_vector
(
irq
);
ia64_vector
vec
=
irq_to_vector
(
irq
);
move_irq
(
irq
);
move_irq
(
irq
);
writel
(
vec
,
iosapic_intr_info
[
vec
].
addr
+
IOSAPIC_EOI
);
iosapic_eoi
(
iosapic_intr_info
[
vec
].
addr
,
vec
);
}
}
#define iosapic_shutdown_level_irq mask_irq
#define iosapic_shutdown_level_irq mask_irq
...
@@ -428,8 +420,7 @@ iosapic_version (char *addr)
...
@@ -428,8 +420,7 @@ iosapic_version (char *addr)
* unsigned int reserved2 : 8;
* unsigned int reserved2 : 8;
* }
* }
*/
*/
writel
(
IOSAPIC_VERSION
,
addr
+
IOSAPIC_REG_SELECT
);
return
iosapic_read
(
addr
,
IOSAPIC_VERSION
);
return
readl
(
IOSAPIC_WINDOW
+
addr
);
}
}
/*
/*
...
...
arch/ia64/kernel/mca.c
View file @
4bba626e
...
@@ -256,7 +256,7 @@ ia64_mca_log_sal_error_record(int sal_info_type)
...
@@ -256,7 +256,7 @@ ia64_mca_log_sal_error_record(int sal_info_type)
salinfo_log_wakeup
(
sal_info_type
,
buffer
,
size
,
irq_safe
);
salinfo_log_wakeup
(
sal_info_type
,
buffer
,
size
,
irq_safe
);
if
(
irq_safe
)
if
(
irq_safe
)
printk
(
KERN_INFO
"CPU %d: SAL log contains %s error record
\n
"
,
IA64_MCA_DEBUG
(
"CPU %d: SAL log contains %s error record
\n
"
,
smp_processor_id
(),
smp_processor_id
(),
sal_info_type
<
ARRAY_SIZE
(
rec_name
)
?
rec_name
[
sal_info_type
]
:
"UNKNOWN"
);
sal_info_type
<
ARRAY_SIZE
(
rec_name
)
?
rec_name
[
sal_info_type
]
:
"UNKNOWN"
);
...
...
arch/ia64/kernel/module.c
View file @
4bba626e
...
@@ -656,8 +656,26 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
...
@@ -656,8 +656,26 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
case
RV_PCREL
:
case
RV_PCREL
:
switch
(
r_type
)
{
switch
(
r_type
)
{
case
R_IA64_PCREL21B
:
case
R_IA64_PCREL21B
:
/* special because it can cross into other module/kernel-core. */
if
(
in_init
(
mod
,
val
))
{
if
(
!
is_internal
(
mod
,
val
))
/* Calls to init code from core are bad news */
if
(
in_core
(
mod
,
(
uint64_t
)
location
))
{
printk
(
KERN_ERR
"%s: init symbol 0x%lx used in module code at %p
\n
"
,
mod
->
name
,
val
,
location
);
return
-
ENOEXEC
;
}
}
else
if
(
in_core
(
mod
,
val
))
{
/*
* Init section may have been allocated far away from core,
* if the branch won't reach, then allocate a plt for it.
*/
if
(
in_init
(
mod
,
(
uint64_t
)
location
))
{
uint64_t
delta
=
((
int64_t
)
val
-
(
int64_t
)
location
)
/
16
;
if
(
delta
+
(
1
<<
20
)
>=
(
1
<<
21
))
{
val
=
get_fdesc
(
mod
,
val
,
&
ok
);
val
=
get_plt
(
mod
,
location
,
val
,
&
ok
);
}
}
}
else
val
=
get_plt
(
mod
,
location
,
val
,
&
ok
);
val
=
get_plt
(
mod
,
location
,
val
,
&
ok
);
/* FALL THROUGH */
/* FALL THROUGH */
default:
default:
...
...
arch/ia64/kernel/pal.S
View file @
4bba626e
...
@@ -55,7 +55,7 @@ END(ia64_pal_default_handler)
...
@@ -55,7 +55,7 @@ END(ia64_pal_default_handler)
*/
*/
GLOBAL_ENTRY
(
ia64_pal_call_static
)
GLOBAL_ENTRY
(
ia64_pal_call_static
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
6
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
6
)
alloc
loc1
=
ar
.
pfs
,
6
,
90
,
0
,
0
alloc
loc1
=
ar
.
pfs
,
5
,
5
,
0
,
0
movl
loc2
=
pal_entry_point
movl
loc2
=
pal_entry_point
1
:
{
1
:
{
mov
r28
=
in0
mov
r28
=
in0
...
@@ -66,7 +66,9 @@ GLOBAL_ENTRY(ia64_pal_call_static)
...
@@ -66,7 +66,9 @@ GLOBAL_ENTRY(ia64_pal_call_static)
ld8
loc2
=
[
loc2
]
//
loc2
<-
entry
point
ld8
loc2
=
[
loc2
]
//
loc2
<-
entry
point
tbit.nz
p6
,
p7
=
in4
,
0
tbit.nz
p6
,
p7
=
in4
,
0
adds
r8
=
1
f
-
1
b
,
r8
adds
r8
=
1
f
-
1
b
,
r8
mov
loc4
=
ar
.
rsc
//
save
RSE
configuration
;;
;;
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
loc3
=
psr
mov
loc3
=
psr
mov
loc0
=
rp
mov
loc0
=
rp
.
body
.
body
...
@@ -82,6 +84,7 @@ GLOBAL_ENTRY(ia64_pal_call_static)
...
@@ -82,6 +84,7 @@ GLOBAL_ENTRY(ia64_pal_call_static)
mov
rp
=
r8
mov
rp
=
r8
br.cond.sptk.many
b7
br.cond.sptk.many
b7
1
:
mov
psr
.
l
=
loc3
1
:
mov
psr
.
l
=
loc3
mov
ar
.
rsc
=
loc4
//
restore
RSE
configuration
mov
ar
.
pfs
=
loc1
mov
ar
.
pfs
=
loc1
mov
rp
=
loc0
mov
rp
=
loc0
;;
;;
...
@@ -98,7 +101,7 @@ END(ia64_pal_call_static)
...
@@ -98,7 +101,7 @@ END(ia64_pal_call_static)
*/
*/
GLOBAL_ENTRY
(
ia64_pal_call_stacked
)
GLOBAL_ENTRY
(
ia64_pal_call_stacked
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
5
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
5
)
alloc
loc1
=
ar
.
pfs
,
5
,
4
,
87
,
0
alloc
loc1
=
ar
.
pfs
,
4
,
4
,
4
,
0
movl
loc2
=
pal_entry_point
movl
loc2
=
pal_entry_point
mov
r28
=
in0
//
Index
MUST
be
copied
to
r28
mov
r28
=
in0
//
Index
MUST
be
copied
to
r28
...
@@ -145,7 +148,7 @@ END(ia64_pal_call_stacked)
...
@@ -145,7 +148,7 @@ END(ia64_pal_call_stacked)
GLOBAL_ENTRY
(
ia64_pal_call_phys_static
)
GLOBAL_ENTRY
(
ia64_pal_call_phys_static
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
6
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
6
)
alloc
loc1
=
ar
.
pfs
,
6
,
90
,
0
,
0
alloc
loc1
=
ar
.
pfs
,
4
,
7
,
0
,
0
movl
loc2
=
pal_entry_point
movl
loc2
=
pal_entry_point
1
:
{
1
:
{
mov
r28
=
in0
//
copy
procedure
index
mov
r28
=
in0
//
copy
procedure
index
...
@@ -176,10 +179,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static)
...
@@ -176,10 +179,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static)
andcm
r16
=
loc3
,
r16
//
removes
bits
to
clear
from
psr
andcm
r16
=
loc3
,
r16
//
removes
bits
to
clear
from
psr
br.call.sptk.many
rp
=
ia64_switch_mode_phys
br.call.sptk.many
rp
=
ia64_switch_mode_phys
.
ret1
:
mov
rp
=
r8
//
install
return
address
(
physical
)
.
ret1
:
mov
rp
=
r8
//
install
return
address
(
physical
)
mov
loc5
=
r19
mov
loc6
=
r20
br.cond.sptk.many
b7
br.cond.sptk.many
b7
1
:
1
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
r16
=
loc3
//
r16
=
original
psr
mov
r16
=
loc3
//
r16
=
original
psr
mov
r19
=
loc5
mov
r20
=
loc6
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
.
ret2
:
.
ret2
:
mov
psr
.
l
=
loc3
//
restore
init
PSR
mov
psr
.
l
=
loc3
//
restore
init
PSR
...
@@ -201,7 +208,7 @@ END(ia64_pal_call_phys_static)
...
@@ -201,7 +208,7 @@ END(ia64_pal_call_phys_static)
*/
*/
GLOBAL_ENTRY
(
ia64_pal_call_phys_stacked
)
GLOBAL_ENTRY
(
ia64_pal_call_phys_stacked
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
5
)
.
prologue
ASM_UNW_PRLG_RP
|
ASM_UNW_PRLG_PFS
,
ASM_UNW_PRLG_GRSAVE
(
5
)
alloc
loc1
=
ar
.
pfs
,
5
,
5
,
86
,
0
alloc
loc1
=
ar
.
pfs
,
5
,
7
,
4
,
0
movl
loc2
=
pal_entry_point
movl
loc2
=
pal_entry_point
1
:
{
1
:
{
mov
r28
=
in0
//
copy
procedure
index
mov
r28
=
in0
//
copy
procedure
index
...
@@ -230,10 +237,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked)
...
@@ -230,10 +237,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked)
andcm
r16
=
loc3
,
r16
//
removes
bits
to
clear
from
psr
andcm
r16
=
loc3
,
r16
//
removes
bits
to
clear
from
psr
br.call.sptk.many
rp
=
ia64_switch_mode_phys
br.call.sptk.many
rp
=
ia64_switch_mode_phys
.
ret6
:
.
ret6
:
mov
loc5
=
r19
mov
loc6
=
r20
br.call.sptk.many
rp
=
b7
//
now
make
the
call
br.call.sptk.many
rp
=
b7
//
now
make
the
call
.
ret7
:
.
ret7
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
r16
=
loc3
//
r16
=
original
psr
mov
r16
=
loc3
//
r16
=
original
psr
mov
r19
=
loc5
mov
r20
=
loc6
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
.
ret8
:
mov
psr
.
l
=
loc3
//
restore
init
PSR
.
ret8
:
mov
psr
.
l
=
loc3
//
restore
init
PSR
...
...
arch/ia64/kernel/setup.c
View file @
4bba626e
...
@@ -277,6 +277,29 @@ setup_serial_legacy (void)
...
@@ -277,6 +277,29 @@ setup_serial_legacy (void)
}
}
#endif
#endif
/**
* early_console_setup - setup debugging console
*
* Consoles started here require little enough setup that we can start using
* them very early in the boot process, either right after the machine
* vector initialization, or even before if the drivers can detect their hw.
*
* Returns non-zero if a console couldn't be setup.
*/
static
inline
int
__init
early_console_setup
(
void
)
{
#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
{
extern
int
sn_serial_console_early_setup
(
void
);
if
(
!
sn_serial_console_early_setup
())
return
0
;
}
#endif
return
-
1
;
}
void
__init
void
__init
setup_arch
(
char
**
cmdline_p
)
setup_arch
(
char
**
cmdline_p
)
{
{
...
@@ -294,6 +317,12 @@ setup_arch (char **cmdline_p)
...
@@ -294,6 +317,12 @@ setup_arch (char **cmdline_p)
machvec_init
(
acpi_get_sysname
());
machvec_init
(
acpi_get_sysname
());
#endif
#endif
#ifdef CONFIG_SMP
/* If we register an early console, allow CPU 0 to printk */
if
(
!
early_console_setup
())
cpu_set
(
smp_processor_id
(),
cpu_online_map
);
#endif
#ifdef CONFIG_ACPI_BOOT
#ifdef CONFIG_ACPI_BOOT
/* Initialize the ACPI boot-time table parser */
/* Initialize the ACPI boot-time table parser */
acpi_table_init
();
acpi_table_init
();
...
...
arch/ia64/mm/discontig.c
View file @
4bba626e
...
@@ -549,7 +549,7 @@ void call_pernode_memory(unsigned long start, unsigned long len, void *arg)
...
@@ -549,7 +549,7 @@ void call_pernode_memory(unsigned long start, unsigned long len, void *arg)
if
(
!
num_node_memblks
)
{
if
(
!
num_node_memblks
)
{
/* No SRAT table, so assume one node (node 0) */
/* No SRAT table, so assume one node (node 0) */
if
(
start
<
end
)
if
(
start
<
end
)
(
*
func
)(
start
,
len
,
0
);
(
*
func
)(
start
,
end
-
start
,
0
);
return
;
return
;
}
}
...
...
arch/ia64/sn/io/sn2/bte_error.c
View file @
4bba626e
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* License. See the file "COPYING" in the main directory of this archive
* License. See the file "COPYING" in the main directory of this archive
* for more details.
* for more details.
*
*
* Copyright (c) 2000-200
3
Silicon Graphics, Inc. All Rights Reserved.
* Copyright (c) 2000-200
4
Silicon Graphics, Inc. All Rights Reserved.
*/
*/
...
@@ -199,7 +199,7 @@ bte_error_handler(unsigned long _nodepda)
...
@@ -199,7 +199,7 @@ bte_error_handler(unsigned long _nodepda)
err_nodepda
->
bte_if
[
i
].
cleanup_active
=
0
;
err_nodepda
->
bte_if
[
i
].
cleanup_active
=
0
;
BTE_PRINTK
((
"eh:%p:%d Unlocked %d
\n
"
,
err_nodepda
,
BTE_PRINTK
((
"eh:%p:%d Unlocked %d
\n
"
,
err_nodepda
,
smp_processor_id
(),
i
));
smp_processor_id
(),
i
));
spin_unlock
(
&
pda
->
cpu_bte_if
[
i
]
->
spinlock
);
spin_unlock
(
&
err_nodepda
->
bte_if
[
i
].
spinlock
);
}
}
del_timer
(
recovery_timer
);
del_timer
(
recovery_timer
);
...
...
arch/ia64/sn/kernel/bte.c
View file @
4bba626e
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/module.h>
#include <asm/sn/sgi.h>
#include <asm/sn/sgi.h>
#include <asm/sn/nodepda.h>
#include <asm/sn/nodepda.h>
#include <asm/sn/addrs.h>
#include <asm/sn/addrs.h>
...
@@ -27,10 +28,18 @@
...
@@ -27,10 +28,18 @@
#define L1_CACHE_MASK (L1_CACHE_BYTES - 1)
#define L1_CACHE_MASK (L1_CACHE_BYTES - 1)
#endif
#endif
/*
/* two interfaces on two btes */
* The base address of for each set of bte registers.
#define MAX_INTERFACES_TO_TRY 4
*/
static
int
bte_offsets
[]
=
{
IIO_IBLS0
,
IIO_IBLS1
};
static
struct
bteinfo_s
*
bte_if_on_node
(
nasid_t
nasid
,
int
interface
)
{
nodepda_t
*
tmp_nodepda
;
tmp_nodepda
=
NODEPDA
(
nasid_to_cnodeid
(
nasid
));
return
&
tmp_nodepda
->
bte_if
[
interface
];
}
/************************************************************************
/************************************************************************
...
@@ -61,11 +70,12 @@ static int bte_offsets[] = { IIO_IBLS0, IIO_IBLS1 };
...
@@ -61,11 +70,12 @@ static int bte_offsets[] = { IIO_IBLS0, IIO_IBLS1 };
bte_result_t
bte_result_t
bte_copy
(
u64
src
,
u64
dest
,
u64
len
,
u64
mode
,
void
*
notification
)
bte_copy
(
u64
src
,
u64
dest
,
u64
len
,
u64
mode
,
void
*
notification
)
{
{
int
bte_to_use
;
u64
transfer_size
;
u64
transfer_size
;
struct
bteinfo_s
*
bte
;
struct
bteinfo_s
*
bte
;
bte_result_t
bte_status
;
bte_result_t
bte_status
;
unsigned
long
irq_flags
;
unsigned
long
irq_flags
;
struct
bteinfo_s
*
btes_to_try
[
MAX_INTERFACES_TO_TRY
];
int
bte_if_index
;
BTE_PRINTK
((
"bte_copy(0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%p)
\n
"
,
BTE_PRINTK
((
"bte_copy(0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%p)
\n
"
,
...
@@ -79,17 +89,57 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
...
@@ -79,17 +89,57 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
(
src
&
L1_CACHE_MASK
)
||
(
dest
&
L1_CACHE_MASK
)));
(
src
&
L1_CACHE_MASK
)
||
(
dest
&
L1_CACHE_MASK
)));
ASSERT
(
len
<
((
BTE_LEN_MASK
+
1
)
<<
L1_CACHE_SHIFT
));
ASSERT
(
len
<
((
BTE_LEN_MASK
+
1
)
<<
L1_CACHE_SHIFT
));
if
(
mode
&
BTE_USE_DEST
)
{
/* try remote then local */
btes_to_try
[
0
]
=
bte_if_on_node
(
NASID_GET
(
dest
),
0
);
btes_to_try
[
1
]
=
bte_if_on_node
(
NASID_GET
(
dest
),
1
);
if
(
mode
&
BTE_USE_ANY
)
{
btes_to_try
[
2
]
=
bte_if_on_node
(
get_nasid
(),
0
);
btes_to_try
[
3
]
=
bte_if_on_node
(
get_nasid
(),
1
);
}
else
{
btes_to_try
[
2
]
=
NULL
;
btes_to_try
[
3
]
=
NULL
;
}
}
else
{
/* try local then remote */
btes_to_try
[
0
]
=
bte_if_on_node
(
get_nasid
(),
0
);
btes_to_try
[
1
]
=
bte_if_on_node
(
get_nasid
(),
1
);
if
(
mode
&
BTE_USE_ANY
)
{
btes_to_try
[
2
]
=
bte_if_on_node
(
NASID_GET
(
dest
),
0
);
btes_to_try
[
3
]
=
bte_if_on_node
(
NASID_GET
(
dest
),
1
);
}
else
{
btes_to_try
[
2
]
=
NULL
;
btes_to_try
[
3
]
=
NULL
;
}
}
do
{
do
{
local_irq_save
(
irq_flags
);
local_irq_save
(
irq_flags
);
bte_to_use
=
0
;
bte_if_index
=
0
;
/* Attempt to lock one of the BTE interfaces. */
/* Attempt to lock one of the BTE interfaces. */
while
((
bte_to_use
<
BTES_PER_NODE
)
&&
while
(
bte_if_index
<
MAX_INTERFACES_TO_TRY
)
{
BTE_LOCK_IF_AVAIL
(
bte_to_use
))
{
bte
=
btes_to_try
[
bte_if_index
++
];
bte_to_use
++
;
if
(
bte
==
NULL
)
{
continue
;
}
if
(
spin_trylock
(
&
bte
->
spinlock
))
{
if
((
*
bte
->
most_rcnt_na
&
BTE_ACTIVE
)
||
(
BTE_LNSTAT_LOAD
(
bte
)
&
BTE_ACTIVE
))
{
/* Got the lock but BTE still busy */
spin_unlock
(
&
bte
->
spinlock
);
bte
=
NULL
;
}
else
{
/* we got the lock and it's not busy */
break
;
}
}
}
}
if
(
bte
_to_use
<
BTES_PER_NODE
)
{
if
(
bte
!=
NULL
)
{
break
;
break
;
}
}
...
@@ -100,12 +150,9 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
...
@@ -100,12 +150,9 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
}
}
/* Wait until a bte is available. */
/* Wait until a bte is available. */
udelay
(
1
0
);
udelay
(
1
);
}
while
(
1
);
}
while
(
1
);
bte
=
pda
->
cpu_bte_if
[
bte_to_use
];
BTE_PRINTKV
((
"Got a lock on bte %d
\n
"
,
bte_to_use
));
if
(
notification
==
NULL
)
{
if
(
notification
==
NULL
)
{
/* User does not want to be notified. */
/* User does not want to be notified. */
...
@@ -121,28 +168,24 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
...
@@ -121,28 +168,24 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
*
bte
->
most_rcnt_na
=
-
1L
;
*
bte
->
most_rcnt_na
=
-
1L
;
/* Set the status reg busy bit and transfer length */
/* Set the status reg busy bit and transfer length */
BTE_PRINTKV
((
"IBLS - HUB_S(0x%p, 0x%lx)
\n
"
,
BTE_PRINTKV
((
"IBLS = 0x%lx
\n
"
,
IBLS_BUSY
|
transfer_size
));
BTEREG_LNSTAT_ADDR
,
IBLS_BUSY
|
transfer_size
));
BTE_LNSTAT_STORE
(
bte
,
IBLS_BUSY
|
transfer_size
);
HUB_S
(
BTEREG_LNSTAT_ADDR
,
(
IBLS_BUSY
|
transfer_size
));
/* Set the source and destination registers */
/* Set the source and destination registers */
BTE_PRINTKV
((
"IBSA - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_SRC_ADDR
,
BTE_PRINTKV
((
"IBSA = 0x%lx)
\n
"
,
(
TO_PHYS
(
src
))));
(
TO_PHYS
(
src
))));
BTE_SRC_STORE
(
bte
,
TO_PHYS
(
src
));
HUB_S
(
BTEREG_SRC_ADDR
,
(
TO_PHYS
(
src
)));
BTE_PRINTKV
((
"IBDA = 0x%lx)
\n
"
,
(
TO_PHYS
(
dest
))));
BTE_PRINTKV
((
"IBDA - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_DEST_ADDR
,
BTE_DEST_STORE
(
bte
,
TO_PHYS
(
dest
));
(
TO_PHYS
(
dest
))));
HUB_S
(
BTEREG_DEST_ADDR
,
(
TO_PHYS
(
dest
)));
/* Set the notification register */
/* Set the notification register */
BTE_PRINTKV
((
"IBNA
- HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_NOTIF_ADDR
,
BTE_PRINTKV
((
"IBNA
= 0x%lx)
\n
"
,
(
TO_PHYS
(
ia64_tpa
((
unsigned
long
)
bte
->
most_rcnt_na
)
))));
TO_PHYS
(
ia64_tpa
((
unsigned
long
)
bte
->
most_rcnt_na
))));
HUB_S
(
BTEREG_NOTIF_ADDR
,
(
TO_PHYS
(
ia64_tpa
((
unsigned
long
)
bte
->
most_rcnt_na
)
)));
BTE_NOTIF_STORE
(
bte
,
TO_PHYS
(
ia64_tpa
((
unsigned
long
)
bte
->
most_rcnt_na
)));
/* Initiate the transfer */
/* Initiate the transfer */
BTE_PRINTK
((
"IBCT - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_CTRL_ADDR
,
BTE_PRINTK
((
"IBCT = 0x%lx)
\n
"
,
BTE_VALID_MODE
(
mode
)));
BTE_VALID_MODE
(
mode
)));
BTE_CTRL_STORE
(
bte
,
BTE_VALID_MODE
(
mode
));
HUB_S
(
BTEREG_CTRL_ADDR
,
BTE_VALID_MODE
(
mode
));
spin_unlock_irqrestore
(
&
bte
->
spinlock
,
irq_flags
);
spin_unlock_irqrestore
(
&
bte
->
spinlock
,
irq_flags
);
...
@@ -156,7 +199,7 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
...
@@ -156,7 +199,7 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
BTE_PRINTKV
((
" Delay Done. IBLS = 0x%lx, most_rcnt_na = 0x%lx
\n
"
,
BTE_PRINTKV
((
" Delay Done. IBLS = 0x%lx, most_rcnt_na = 0x%lx
\n
"
,
HUB_L
(
BTEREG_LNSTAT_ADDR
),
*
bte
->
most_rcnt_na
));
BTE_LNSTAT_LOAD
(
bte
),
*
bte
->
most_rcnt_na
));
if
(
*
bte
->
most_rcnt_na
&
IBLS_ERROR
)
{
if
(
*
bte
->
most_rcnt_na
&
IBLS_ERROR
)
{
bte_status
=
*
bte
->
most_rcnt_na
&
~
IBLS_ERROR
;
bte_status
=
*
bte
->
most_rcnt_na
&
~
IBLS_ERROR
;
...
@@ -165,10 +208,11 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
...
@@ -165,10 +208,11 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
bte_status
=
BTE_SUCCESS
;
bte_status
=
BTE_SUCCESS
;
}
}
BTE_PRINTK
((
"Returning status is 0x%lx and most_rcnt_na is 0x%lx
\n
"
,
BTE_PRINTK
((
"Returning status is 0x%lx and most_rcnt_na is 0x%lx
\n
"
,
HUB_L
(
BTEREG_LNSTAT_ADDR
),
*
bte
->
most_rcnt_na
));
BTE_LNSTAT_LOAD
(
bte
),
*
bte
->
most_rcnt_na
));
return
bte_status
;
return
bte_status
;
}
}
EXPORT_SYMBOL
(
bte_copy
);
/*
/*
...
@@ -201,14 +245,19 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
...
@@ -201,14 +245,19 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
u64
footBcopyDest
;
u64
footBcopyDest
;
u64
footBcopyLen
;
u64
footBcopyLen
;
bte_result_t
rv
;
bte_result_t
rv
;
char
*
bteBlock
;
char
*
bteBlock
,
*
bteBlock_unaligned
;
if
(
len
==
0
)
{
if
(
len
==
0
)
{
return
BTE_SUCCESS
;
return
BTE_SUCCESS
;
}
}
/* temporary buffer used during unaligned transfers */
/* temporary buffer used during unaligned transfers */
bteBlock
=
pda
->
cpu_bte_if
[
0
]
->
scratch_buf
;
bteBlock_unaligned
=
kmalloc
(
len
+
3
*
L1_CACHE_BYTES
,
GFP_KERNEL
|
GFP_DMA
);
if
(
bteBlock_unaligned
==
NULL
)
{
return
BTEFAIL_NOTAVAIL
;
}
bteBlock
=
(
char
*
)
L1_CACHE_ALIGN
((
u64
)
bteBlock_unaligned
);
headBcopySrcOffset
=
src
&
L1_CACHE_MASK
;
headBcopySrcOffset
=
src
&
L1_CACHE_MASK
;
destFirstCacheOffset
=
dest
&
L1_CACHE_MASK
;
destFirstCacheOffset
=
dest
&
L1_CACHE_MASK
;
...
@@ -276,6 +325,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
...
@@ -276,6 +325,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
ia64_tpa
((
unsigned
long
)
bteBlock
),
ia64_tpa
((
unsigned
long
)
bteBlock
),
footBteLen
,
mode
,
NULL
);
footBteLen
,
mode
,
NULL
);
if
(
rv
!=
BTE_SUCCESS
)
{
if
(
rv
!=
BTE_SUCCESS
)
{
kfree
(
bteBlock_unaligned
);
return
rv
;
return
rv
;
}
}
...
@@ -296,6 +346,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
...
@@ -296,6 +346,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
(
len
-
headBcopyLen
-
(
len
-
headBcopyLen
-
footBcopyLen
),
mode
,
NULL
);
footBcopyLen
),
mode
,
NULL
);
if
(
rv
!=
BTE_SUCCESS
)
{
if
(
rv
!=
BTE_SUCCESS
)
{
kfree
(
bteBlock_unaligned
);
return
rv
;
return
rv
;
}
}
...
@@ -325,6 +376,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
...
@@ -325,6 +376,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
rv
=
bte_copy
(
headBteSource
,
rv
=
bte_copy
(
headBteSource
,
ia64_tpa
((
unsigned
long
)
bteBlock
),
headBteLen
,
mode
,
NULL
);
ia64_tpa
((
unsigned
long
)
bteBlock
),
headBteLen
,
mode
,
NULL
);
if
(
rv
!=
BTE_SUCCESS
)
{
if
(
rv
!=
BTE_SUCCESS
)
{
kfree
(
bteBlock_unaligned
);
return
rv
;
return
rv
;
}
}
...
@@ -332,8 +384,10 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
...
@@ -332,8 +384,10 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
headBcopySrcOffset
),
headBcopySrcOffset
),
headBcopyLen
);
headBcopyLen
);
}
}
kfree
(
bteBlock_unaligned
);
return
BTE_SUCCESS
;
return
BTE_SUCCESS
;
}
}
EXPORT_SYMBOL
(
bte_unaligned_copy
);
/************************************************************************
/************************************************************************
...
@@ -370,9 +424,9 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
...
@@ -370,9 +424,9 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
mynodepda
->
bte_recovery_timer
.
data
=
(
unsigned
long
)
mynodepda
;
mynodepda
->
bte_recovery_timer
.
data
=
(
unsigned
long
)
mynodepda
;
for
(
i
=
0
;
i
<
BTES_PER_NODE
;
i
++
)
{
for
(
i
=
0
;
i
<
BTES_PER_NODE
;
i
++
)
{
/* >>> Don't know why the 0x1800000L is here. Robin */
(
u64
)
mynodepda
->
bte_if
[
i
].
bte_base_addr
=
mynodepda
->
bte_if
[
i
].
bte_base_addr
=
REMOTE_HUB_ADDR
(
cnodeid_to_nasid
(
cnode
),
(
char
*
)
LOCAL_MMR_ADDR
(
bte_offsets
[
i
]
|
0x1800000L
);
(
i
==
0
?
IIO_IBLS0
:
IIO_IBLS1
)
);
/*
/*
* Initialize the notification and spinlock
* Initialize the notification and spinlock
...
@@ -383,8 +437,6 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
...
@@ -383,8 +437,6 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
mynodepda
->
bte_if
[
i
].
notify
=
0L
;
mynodepda
->
bte_if
[
i
].
notify
=
0L
;
spin_lock_init
(
&
mynodepda
->
bte_if
[
i
].
spinlock
);
spin_lock_init
(
&
mynodepda
->
bte_if
[
i
].
spinlock
);
mynodepda
->
bte_if
[
i
].
scratch_buf
=
alloc_bootmem_node
(
NODE_DATA
(
cnode
),
BTE_MAX_XFER
);
mynodepda
->
bte_if
[
i
].
bte_cnode
=
cnode
;
mynodepda
->
bte_if
[
i
].
bte_cnode
=
cnode
;
mynodepda
->
bte_if
[
i
].
bte_error_count
=
0
;
mynodepda
->
bte_if
[
i
].
bte_error_count
=
0
;
mynodepda
->
bte_if
[
i
].
bte_num
=
i
;
mynodepda
->
bte_if
[
i
].
bte_num
=
i
;
...
@@ -393,23 +445,3 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
...
@@ -393,23 +445,3 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
}
}
}
}
/*
* bte_init_cpu()
*
* Initialize the cpupda structure with pointers to the
* nodepda bte blocks.
*
*/
void
bte_init_cpu
(
void
)
{
/* Called by setup.c as each cpu is being added to the nodepda */
if
(
local_node_data
->
active_cpu_count
&
0x1
)
{
pda
->
cpu_bte_if
[
0
]
=
&
(
nodepda
->
bte_if
[
0
]);
pda
->
cpu_bte_if
[
1
]
=
&
(
nodepda
->
bte_if
[
1
]);
}
else
{
pda
->
cpu_bte_if
[
0
]
=
&
(
nodepda
->
bte_if
[
1
]);
pda
->
cpu_bte_if
[
1
]
=
&
(
nodepda
->
bte_if
[
0
]);
}
}
arch/ia64/sn/kernel/setup.c
View file @
4bba626e
...
@@ -54,7 +54,6 @@ DEFINE_PER_CPU(struct pda_s, pda_percpu);
...
@@ -54,7 +54,6 @@ DEFINE_PER_CPU(struct pda_s, pda_percpu);
#define MAX_PHYS_MEMORY (1UL << 49)
/* 1 TB */
#define MAX_PHYS_MEMORY (1UL << 49)
/* 1 TB */
extern
void
bte_init_node
(
nodepda_t
*
,
cnodeid_t
);
extern
void
bte_init_node
(
nodepda_t
*
,
cnodeid_t
);
extern
void
bte_init_cpu
(
void
);
extern
void
sn_timer_init
(
void
);
extern
void
sn_timer_init
(
void
);
extern
unsigned
long
last_time_offset
;
extern
unsigned
long
last_time_offset
;
extern
void
init_platform_hubinfo
(
nodepda_t
**
nodepdaindr
);
extern
void
init_platform_hubinfo
(
nodepda_t
**
nodepdaindr
);
...
@@ -496,8 +495,6 @@ sn_cpu_init(void)
...
@@ -496,8 +495,6 @@ sn_cpu_init(void)
buddy_nasid
=
cnodeid_to_nasid
(
numa_node_id
()
==
numnodes
-
1
?
0
:
numa_node_id
()
+
1
);
buddy_nasid
=
cnodeid_to_nasid
(
numa_node_id
()
==
numnodes
-
1
?
0
:
numa_node_id
()
+
1
);
pda
->
pio_shub_war_cam_addr
=
(
volatile
unsigned
long
*
)
GLOBAL_MMR_ADDR
(
nasid
,
SH_PI_CAM_CONTROL
);
pda
->
pio_shub_war_cam_addr
=
(
volatile
unsigned
long
*
)
GLOBAL_MMR_ADDR
(
nasid
,
SH_PI_CAM_CONTROL
);
}
}
bte_init_cpu
();
}
}
/*
/*
...
...
include/asm-ia64/iosapic.h
View file @
4bba626e
#ifndef __ASM_IA64_IOSAPIC_H
#ifndef __ASM_IA64_IOSAPIC_H
#define __ASM_IA64_IOSAPIC_H
#define __ASM_IA64_IOSAPIC_H
#define IOSAPIC_DEFAULT_ADDR 0xFEC00000
#define IOSAPIC_REG_SELECT 0x0
#define IOSAPIC_REG_SELECT 0x0
#define IOSAPIC_WINDOW 0x10
#define IOSAPIC_WINDOW 0x10
#define IOSAPIC_EOI 0x40
#define IOSAPIC_EOI 0x40
#define IOSAPIC_VERSION 0x1
#define IOSAPIC_VERSION
0x1
/*
/*
* Redirection table entry
* Redirection table entry
...
@@ -55,6 +53,23 @@
...
@@ -55,6 +53,23 @@
#define NR_IOSAPICS 256
#define NR_IOSAPICS 256
static
inline
unsigned
int
iosapic_read
(
char
*
iosapic
,
unsigned
int
reg
)
{
writel
(
reg
,
iosapic
+
IOSAPIC_REG_SELECT
);
return
readl
(
iosapic
+
IOSAPIC_WINDOW
);
}
static
inline
void
iosapic_write
(
char
*
iosapic
,
unsigned
int
reg
,
u32
val
)
{
writel
(
reg
,
iosapic
+
IOSAPIC_REG_SELECT
);
writel
(
val
,
iosapic
+
IOSAPIC_WINDOW
);
}
static
inline
void
iosapic_eoi
(
char
*
iosapic
,
u32
vector
)
{
writel
(
vector
,
iosapic
+
IOSAPIC_EOI
);
}
extern
void
__init
iosapic_system_init
(
int
pcat_compat
);
extern
void
__init
iosapic_system_init
(
int
pcat_compat
);
extern
void
__init
iosapic_init
(
unsigned
long
address
,
extern
void
__init
iosapic_init
(
unsigned
long
address
,
unsigned
int
gsi_base
);
unsigned
int
gsi_base
);
...
...
include/asm-ia64/smp.h
View file @
4bba626e
...
@@ -123,5 +123,9 @@ extern void smp_send_reschedule (int cpu);
...
@@ -123,5 +123,9 @@ extern void smp_send_reschedule (int cpu);
extern
void
lock_ipi_calllock
(
void
);
extern
void
lock_ipi_calllock
(
void
);
extern
void
unlock_ipi_calllock
(
void
);
extern
void
unlock_ipi_calllock
(
void
);
#else
#define cpu_logical_id(cpuid) 0
#endif
/* CONFIG_SMP */
#endif
/* CONFIG_SMP */
#endif
/* _ASM_IA64_SMP_H */
#endif
/* _ASM_IA64_SMP_H */
include/asm-ia64/sn/bte.h
View file @
4bba626e
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* License. See the file "COPYING" in the main directory of this archive
* License. See the file "COPYING" in the main directory of this archive
* for more details.
* for more details.
*
*
* Copyright (c) 2000-200
3
Silicon Graphics, Inc. All Rights Reserved.
* Copyright (c) 2000-200
4
Silicon Graphics, Inc. All Rights Reserved.
*/
*/
...
@@ -48,35 +48,31 @@
...
@@ -48,35 +48,31 @@
#define BTE_ZERO_FILL (BTE_NOTIFY | IBCT_ZFIL_MODE)
#define BTE_ZERO_FILL (BTE_NOTIFY | IBCT_ZFIL_MODE)
/* Use a reserved bit to let the caller specify a wait for any BTE */
/* Use a reserved bit to let the caller specify a wait for any BTE */
#define BTE_WACQUIRE (0x4000)
#define BTE_WACQUIRE (0x4000)
/* Use the BTE on the node with the destination memory */
#define BTE_USE_DEST (BTE_WACQUIRE << 1)
/* Use any available BTE interface on any node for the transfer */
#define BTE_USE_ANY (BTE_USE_DEST << 1)
/* macro to force the IBCT0 value valid */
/* macro to force the IBCT0 value valid */
#define BTE_VALID_MODE(x) ((x) & (IBCT_NOTIFY | IBCT_ZFIL_MODE))
#define BTE_VALID_MODE(x) ((x) & (IBCT_NOTIFY | IBCT_ZFIL_MODE))
#define BTE_ACTIVE (IBLS_BUSY | IBLS_ERROR)
/*
* Handle locking of the bte interfaces.
*
* All transfers spinlock the interface before setting up the SHUB
* registers. Sync transfers hold the lock until all processing is
* complete. Async transfers release the lock as soon as the transfer
* is initiated.
*
* To determine if an interface is available, we must check both the
* busy bit and the spinlock for that interface.
*/
#define BTE_LOCK_IF_AVAIL(_x) (\
(*pda->cpu_bte_if[_x]->most_rcnt_na & (IBLS_BUSY | IBLS_ERROR)) && \
(!(spin_trylock(&(pda->cpu_bte_if[_x]->spinlock)))) \
)
/*
/*
* Some macros to simplify reading.
* Some macros to simplify reading.
* Start with macros to locate the BTE control registers.
* Start with macros to locate the BTE control registers.
*/
*/
#define BTEREG_LNSTAT_ADDR ((u64 *)(bte->bte_base_addr))
#define BTE_LNSTAT_LOAD(_bte) \
#define BTEREG_SRC_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_SRC))
HUB_L(_bte->bte_base_addr)
#define BTEREG_DEST_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_DEST))
#define BTE_LNSTAT_STORE(_bte, _x) \
#define BTEREG_CTRL_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_CTRL))
HUB_S(_bte->bte_base_addr, (_x))
#define BTEREG_NOTIF_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_NOTIFY))
#define BTE_SRC_STORE(_bte, _x) \
HUB_S(_bte->bte_base_addr + (BTEOFF_SRC/8), (_x))
#define BTE_DEST_STORE(_bte, _x) \
HUB_S(_bte->bte_base_addr + (BTEOFF_DEST/8), (_x))
#define BTE_CTRL_STORE(_bte, _x) \
HUB_S(_bte->bte_base_addr + (BTEOFF_CTRL/8), (_x))
#define BTE_NOTIF_STORE(_bte, _x) \
HUB_S(_bte->bte_base_addr + (BTEOFF_NOTIFY/8), (_x))
/* Possible results from bte_copy and bte_unaligned_copy */
/* Possible results from bte_copy and bte_unaligned_copy */
...
@@ -110,16 +106,15 @@ typedef enum {
...
@@ -110,16 +106,15 @@ typedef enum {
* to work with a BTE.
* to work with a BTE.
*/
*/
struct
bteinfo_s
{
struct
bteinfo_s
{
u64
volatile
notify
____cacheline_aligned
;
volatile
u64
notify
____cacheline_aligned
;
char
*
bte_base_addr
____cacheline_aligned
;
u64
*
bte_base_addr
____cacheline_aligned
;
spinlock_t
spinlock
;
spinlock_t
spinlock
;
cnodeid_t
bte_cnode
;
/* cnode */
cnodeid_t
bte_cnode
;
/* cnode */
int
bte_error_count
;
/* Number of errors encountered */
int
bte_error_count
;
/* Number of errors encountered */
int
bte_num
;
/* 0 --> BTE0, 1 --> BTE1 */
int
bte_num
;
/* 0 --> BTE0, 1 --> BTE1 */
int
cleanup_active
;
/* Interface is locked for cleanup */
int
cleanup_active
;
/* Interface is locked for cleanup */
volatile
bte_result_t
bh_error
;
/* error while processing */
volatile
bte_result_t
bh_error
;
/* error while processing */
u64
volatile
*
most_rcnt_na
;
volatile
u64
*
most_rcnt_na
;
void
*
scratch_buf
;
/* Node local scratch buffer */
};
};
...
@@ -130,6 +125,8 @@ extern bte_result_t bte_copy(u64, u64, u64, u64, void *);
...
@@ -130,6 +125,8 @@ extern bte_result_t bte_copy(u64, u64, u64, u64, void *);
extern
bte_result_t
bte_unaligned_copy
(
u64
,
u64
,
u64
,
u64
);
extern
bte_result_t
bte_unaligned_copy
(
u64
,
u64
,
u64
,
u64
);
extern
void
bte_error_handler
(
unsigned
long
);
extern
void
bte_error_handler
(
unsigned
long
);
#define bte_zero(dest, len, mode, notification) \
bte_copy(0, dest, len, ((mode) | BTE_ZERO_FILL), notification)
/*
/*
* The following is the prefered way of calling bte_unaligned_copy
* The following is the prefered way of calling bte_unaligned_copy
...
...
include/asm-ia64/sn/pda.h
View file @
4bba626e
...
@@ -49,8 +49,6 @@ typedef struct pda_s {
...
@@ -49,8 +49,6 @@ typedef struct pda_s {
volatile
unsigned
long
*
pio_shub_war_cam_addr
;
volatile
unsigned
long
*
pio_shub_war_cam_addr
;
volatile
unsigned
long
*
mem_write_status_addr
;
volatile
unsigned
long
*
mem_write_status_addr
;
struct
bteinfo_s
*
cpu_bte_if
[
BTES_PER_NODE
];
/* cpu interface order */
unsigned
long
sn_soft_irr
[
4
];
unsigned
long
sn_soft_irr
[
4
];
unsigned
long
sn_in_service_ivecs
[
4
];
unsigned
long
sn_in_service_ivecs
[
4
];
short
cnodeid_to_nasid_table
[
MAX_NUMNODES
];
short
cnodeid_to_nasid_table
[
MAX_NUMNODES
];
...
...
include/asm-ia64/sn/sn_cpuid.h
View file @
4bba626e
...
@@ -84,7 +84,6 @@
...
@@ -84,7 +84,6 @@
*/
*/
#ifndef CONFIG_SMP
#ifndef CONFIG_SMP
#define cpu_logical_id(cpu) 0
#define cpu_physical_id(cpuid) ((ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff)
#define cpu_physical_id(cpuid) ((ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff)
#endif
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment