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
nexedi
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
config IA64_GRANULE_64MB
bool "64MB"
depends on !(IA64_GENERIC || IA64_HP_ZX1)
depends on !(IA64_GENERIC || IA64_HP_ZX1
|| IA64_SGI_SN2
)
endchoice
...
...
arch/ia64/Makefile
View file @
4bba626e
...
...
@@ -43,7 +43,8 @@ endif
ifeq
($(GCC_VERSION),3)
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
endif
endif
...
...
arch/ia64/configs/sn2_defconfig
View file @
4bba626e
...
...
@@ -140,6 +140,7 @@ CONFIG_HOTPLUG_PCI_SGI=y
#
# Generic Driver Options
#
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
...
...
@@ -162,12 +163,12 @@ CONFIG_FW_LOADER=m
#
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=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_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
...
...
@@ -181,12 +182,12 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_
IDEDISK_MULTI_MODE
is not set
CONFIG_BLK_DEV_IDECD=
m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_
BLK_DEV_IDEDISK
is not set
CONFIG_BLK_DEV_IDECD=
y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
...
...
@@ -195,9 +196,9 @@ CONFIG_BLK_DEV_IDESCSI=m
#
CONFIG_IDE_GENERIC=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_GENERIC=y
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
...
...
@@ -207,20 +208,19 @@ CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 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_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
CONFIG_BLK_DEV_HPT34X=m
CONFIG_HPT34X_AUTODMA=y
CONFIG_BLK_DEV_HPT366=m
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD 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_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
...
...
@@ -243,8 +243,8 @@ CONFIG_SCSI_PROC_FS=y
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=
y
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=
m
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=m
...
...
@@ -265,37 +265,25 @@ CONFIG_SCSI_FC_ATTRS=y
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# 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_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX 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_SVW=m
CONFIG_SCSI_ATA_PIIX=m
CONFIG_SCSI_SATA_PROMISE=m
# CONFIG_SCSI_SATA_SVW is not set
# CONFIG_SCSI_ATA_PIIX is not set
# CONFIG_SCSI_SATA_NV is not set
# CONFIG_SCSI_SATA_PROMISE is not set
# CONFIG_SCSI_SATA_SX4 is not set
# CONFIG_SCSI_SATA_SIL 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_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
...
...
@@ -303,11 +291,7 @@ CONFIG_SCSI_SATA_VITESSE=y
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INIA100 is not set
CONFIG_SCSI_SYM53C8XX_2=m
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_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
...
...
@@ -317,8 +301,8 @@ CONFIG_SCSI_QLA2XXX=y
CONFIG_SCSI_QLA22XX=y
CONFIG_SCSI_QLA2300=y
CONFIG_SCSI_QLA2322=y
CONFIG_SCSI_QLA6312=y
CONFIG_SCSI_QLA6322=y
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
...
...
@@ -336,6 +320,9 @@ CONFIG_MD_RAID5=y
CONFIG_MD_MULTIPATH=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
#
# Fusion MPT device support
...
...
@@ -344,7 +331,6 @@ CONFIG_FUSION=y
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_ISENSE=m
CONFIG_FUSION_CTL=m
# CONFIG_FUSION_LAN is not set
#
# IEEE 1394 (FireWire) support
...
...
@@ -371,126 +357,38 @@ CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
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_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
# CONFIG_NET_IPGRE_BROADCAST is not set
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_ARPD=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER=y
# 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
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_NETFILTER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_NET_DIVERT=y
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
...
...
@@ -499,31 +397,8 @@ CONFIG_NET_DIVERT=y
#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
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
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
...
...
@@ -537,10 +412,10 @@ CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_EQUALIZER=m
CONFIG_TUN=m
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
#
...
...
@@ -551,66 +426,27 @@ CONFIG_TUN=m
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
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
# CONFIG_NET_ETHERNET is not set
#
# Ethernet (1000 Mbit)
#
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
CONFIG_NS83820=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_R8169=m
CONFIG_SK98LIN=m
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
CONFIG_TIGON3=y
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
# CONFIG_IXGB_NAPI is not set
# CONFIG_S2IO is not set
# CONFIG_IXGB is not set
CONFIG_S2IO=m
# CONFIG_S2IO
_NAPI
is not set
#
# Token Ring devices
...
...
@@ -628,16 +464,9 @@ CONFIG_IXGB=m
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=m
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_PPP is not set
# CONFIG_SLIP is not set
CONFIG_NET_FC=y
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
...
...
@@ -660,7 +489,7 @@ CONFIG_INPUT=y
# Userland interfaces
#
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_Y=768
# CONFIG_INPUT_JOYDEV is not set
...
...
@@ -673,25 +502,14 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO is not set
# CONFIG_SERIO_I8042 is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# 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_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
...
...
@@ -746,6 +564,7 @@ CONFIG_EFI_RTC=y
# CONFIG_AGP is not set
# CONFIG_DRM is not set
CONFIG_RAW_DRIVER=m
# CONFIG_HPET is not set
CONFIG_MAX_RAW_DEVS=256
#
...
...
@@ -787,7 +606,102 @@ CONFIG_DUMMY_CONSOLE=y
#
# 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
...
...
@@ -797,18 +711,23 @@ CONFIG_DUMMY_CONSOLE=y
#
# File systems
#
CONFIG_EXT2_FS=
y
CONFIG_EXT2_FS=
m
CONFIG_EXT2_FS_XATTR=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_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_EXT3_FS_SECURITY=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
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_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
...
...
@@ -822,8 +741,8 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=
y
CONFIG_AUTOFS4_FS=
y
CONFIG_AUTOFS_FS=
m
CONFIG_AUTOFS4_FS=
m
#
# CD-ROM/DVD Filesystems
...
...
@@ -839,6 +758,8 @@ CONFIG_UDF_FS=m
CONFIG_FAT_FS=y
# CONFIG_MSDOS_FS is not set
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
...
...
@@ -874,22 +795,25 @@ CONFIG_RAMFS=y
#
# Network File Systems
#
CONFIG_NFS_FS=
y
CONFIG_NFS_FS=
m
CONFIG_NFS_V3=y
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=
y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=
m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_TCP is not set
CONFIG_LOCKD=
y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=
m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
# CONFIG_RPCSEC_GSS_KRB5 is not set
CONFIG_EXPORTFS=m
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_SMB_FS=m
# 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_CODA_FS is not set
# CONFIG_AFS_FS is not set
...
...
@@ -909,7 +833,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_NEC98_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
...
...
@@ -920,7 +843,7 @@ CONFIG_EFI_PARTITION=y
#
CONFIG_NLS=y
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_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
...
...
@@ -943,7 +866,8 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 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_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
...
...
@@ -956,7 +880,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
CONFIG_NLS_UTF8=y
#
# Library routines
...
...
@@ -985,7 +909,7 @@ CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_INFO=y
CONFIG_SYSVIPC_COMPAT=y
#
...
...
arch/ia64/kernel/efi_stub.S
View file @
4bba626e
...
...
@@ -44,7 +44,7 @@
GLOBAL_ENTRY
(
efi_call_phys
)
.
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
mov
loc0
=
rp
.
body
...
...
@@ -70,9 +70,13 @@ GLOBAL_ENTRY(efi_call_phys)
mov
out3
=
in4
mov
out5
=
in6
mov
out6
=
in7
mov
loc5
=
r19
mov
loc6
=
r20
br.call.sptk.many
rp
=
b6
//
call
the
EFI
function
.
ret1
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
mov
r16
=
loc3
mov
r19
=
loc5
mov
r20
=
loc6
br.call.sptk.many
rp
=
ia64_switch_mode_virt
//
return
to
virtual
mode
.
ret2
:
mov
ar
.
rsc
=
loc4
//
restore
RSE
configuration
mov
ar
.
pfs
=
loc1
...
...
arch/ia64/kernel/entry.S
View file @
4bba626e
...
...
@@ -182,7 +182,7 @@ GLOBAL_ENTRY(ia64_switch_to)
movl
r25
=
init_task
mov
r27
=
IA64_KR
(
CURRENT_STACK
)
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
shr.u
r26
=
r20
,
IA64_GRANULE_SHIFT
...
...
@@ -195,7 +195,7 @@ GLOBAL_ENTRY(ia64_switch_to)
(
p6
)
br.cond.dpnt
.
map
;;
.
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
ld8
sp
=[
r21
]
//
load
kernel
stack
pointer
of
new
task
...
...
arch/ia64/kernel/head.S
View file @
4bba626e
...
...
@@ -67,7 +67,7 @@ start_ap:
*
Initialize
kernel
region
registers
:
*
rr
[
5
]
:
VHPT
enabled
,
page
size
=
PAGE_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
)
movl
r17
=(
5
<<
61
)
...
...
@@ -154,8 +154,7 @@ start_ap:
#endif
;;
tpa
r3
=
r2
//
r3
==
phys
addr
of
task
struct
;;
shr.u
r16
=
r3
,
IA64_GRANULE_SHIFT
mov
r16
=-
1
(
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
)
...
...
@@ -169,6 +168,7 @@ start_ap:
dep
r2
=-
1
,
r3
,
61
,
3
//
IMVA
of
task
;;
mov
r17
=
rr
[
r2
]
shr.u
r16
=
r3
,
IA64_GRANULE_SHIFT
;;
dep
r17
=
0
,
r17
,
8
,
24
;;
...
...
@@ -706,6 +706,9 @@ END(__ia64_init_fpu)
*
*
Inputs
:
*
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
*/
...
...
@@ -724,12 +727,13 @@ GLOBAL_ENTRY(ia64_switch_mode_phys)
mov
cr
.
ipsr
=
r16
//
set
new
PSR
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
;;
//
going
to
physical
mode
,
use
tpa
to
translate
virt
->
phys
tpa
r17
=
r1
7
tpa
r17
=
r1
9
tpa
r3
=
r3
tpa
sp
=
sp
tpa
r14
=
r14
...
...
@@ -752,6 +756,8 @@ END(ia64_switch_mode_phys)
*
*
Inputs
:
*
r16
=
new
psr
to
establish
*
r19
=
new
bspstore
to
establish
*
r20
=
new
sp
to
establish
*
*
Note
:
RSE
must
already
be
in
enforced
lazy
mode
*/
...
...
@@ -770,7 +776,6 @@ GLOBAL_ENTRY(ia64_switch_mode_virt)
mov
cr
.
ipsr
=
r16
//
set
new
PSR
add
r3
=
1
f
-
ia64_switch_mode_virt
,
r15
mov
r17
=
ar
.
bsp
mov
r14
=
rp
//
get
return
address
into
a
general
register
;;
...
...
@@ -781,15 +786,14 @@ GLOBAL_ENTRY(ia64_switch_mode_virt)
movl
r18
=
KERNEL_START
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
r17
=-
1
,
r17
,
61
,
3
dep
sp
=-
1
,
sp
,
61
,
3
mov
sp
=
r20
;;
or
r3
=
r3
,
r18
or
r14
=
r14
,
r18
;;
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
.
ifs
=
r0
;;
...
...
arch/ia64/kernel/iosapic.c
View file @
4bba626e
...
...
@@ -217,10 +217,8 @@ set_rte (unsigned int vector, unsigned int dest, int mask)
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
{
writel
(
IOSAPIC_RTE_HIGH
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
writel
(
high32
,
addr
+
IOSAPIC_WINDOW
);
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
writel
(
low32
,
addr
+
IOSAPIC_WINDOW
);
iosapic_write
(
addr
,
IOSAPIC_RTE_HIGH
(
rte_index
),
high32
);
iosapic_write
(
addr
,
IOSAPIC_RTE_LOW
(
rte_index
),
low32
);
iosapic_intr_info
[
vector
].
low32
=
low32
;
}
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
...
...
@@ -249,12 +247,9 @@ mask_irq (unsigned int irq)
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
{
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
/* set only the mask bit */
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
);
}
...
...
@@ -275,9 +270,8 @@ unmask_irq (unsigned int irq)
spin_lock_irqsave
(
&
iosapic_lock
,
flags
);
{
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
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
);
}
...
...
@@ -325,10 +319,8 @@ iosapic_set_affinity (unsigned int irq, cpumask_t mask)
low32
|=
(
IOSAPIC_FIXED
<<
IOSAPIC_DELIVERY_SHIFT
);
iosapic_intr_info
[
vec
].
low32
=
low32
;
writel
(
IOSAPIC_RTE_HIGH
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
writel
(
high32
,
addr
+
IOSAPIC_WINDOW
);
writel
(
IOSAPIC_RTE_LOW
(
rte_index
),
addr
+
IOSAPIC_REG_SELECT
);
writel
(
low32
,
addr
+
IOSAPIC_WINDOW
);
iosapic_write
(
addr
,
IOSAPIC_RTE_HIGH
(
rte_index
),
high32
);
iosapic_write
(
addr
,
IOSAPIC_RTE_LOW
(
rte_index
),
low32
);
}
spin_unlock_irqrestore
(
&
iosapic_lock
,
flags
);
#endif
...
...
@@ -351,7 +343,7 @@ iosapic_end_level_irq (unsigned int irq)
ia64_vector
vec
=
irq_to_vector
(
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
...
...
@@ -428,8 +420,7 @@ iosapic_version (char *addr)
* unsigned int reserved2 : 8;
* }
*/
writel
(
IOSAPIC_VERSION
,
addr
+
IOSAPIC_REG_SELECT
);
return
readl
(
IOSAPIC_WINDOW
+
addr
);
return
iosapic_read
(
addr
,
IOSAPIC_VERSION
);
}
/*
...
...
arch/ia64/kernel/mca.c
View file @
4bba626e
...
...
@@ -256,7 +256,7 @@ ia64_mca_log_sal_error_record(int sal_info_type)
salinfo_log_wakeup
(
sal_info_type
,
buffer
,
size
,
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
(),
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,
case
RV_PCREL
:
switch
(
r_type
)
{
case
R_IA64_PCREL21B
:
/* special because it can cross into other module/kernel-core. */
if
(
!
is_internal
(
mod
,
val
))
if
(
in_init
(
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
);
/* FALL THROUGH */
default:
...
...
arch/ia64/kernel/pal.S
View file @
4bba626e
...
...
@@ -55,7 +55,7 @@ END(ia64_pal_default_handler)
*/
GLOBAL_ENTRY
(
ia64_pal_call_static
)
.
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
1
:
{
mov
r28
=
in0
...
...
@@ -66,7 +66,9 @@ GLOBAL_ENTRY(ia64_pal_call_static)
ld8
loc2
=
[
loc2
]
//
loc2
<-
entry
point
tbit.nz
p6
,
p7
=
in4
,
0
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
loc0
=
rp
.
body
...
...
@@ -82,6 +84,7 @@ GLOBAL_ENTRY(ia64_pal_call_static)
mov
rp
=
r8
br.cond.sptk.many
b7
1
:
mov
psr
.
l
=
loc3
mov
ar
.
rsc
=
loc4
//
restore
RSE
configuration
mov
ar
.
pfs
=
loc1
mov
rp
=
loc0
;;
...
...
@@ -98,7 +101,7 @@ END(ia64_pal_call_static)
*/
GLOBAL_ENTRY
(
ia64_pal_call_stacked
)
.
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
mov
r28
=
in0
//
Index
MUST
be
copied
to
r28
...
...
@@ -145,7 +148,7 @@ END(ia64_pal_call_stacked)
GLOBAL_ENTRY
(
ia64_pal_call_phys_static
)
.
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
1
:
{
mov
r28
=
in0
//
copy
procedure
index
...
...
@@ -176,10 +179,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static)
andcm
r16
=
loc3
,
r16
//
removes
bits
to
clear
from
psr
br.call.sptk.many
rp
=
ia64_switch_mode_phys
.
ret1
:
mov
rp
=
r8
//
install
return
address
(
physical
)
mov
loc5
=
r19
mov
loc6
=
r20
br.cond.sptk.many
b7
1
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
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
.
ret2
:
mov
psr
.
l
=
loc3
//
restore
init
PSR
...
...
@@ -201,7 +208,7 @@ END(ia64_pal_call_phys_static)
*/
GLOBAL_ENTRY
(
ia64_pal_call_phys_stacked
)
.
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
1
:
{
mov
r28
=
in0
//
copy
procedure
index
...
...
@@ -230,10 +237,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked)
andcm
r16
=
loc3
,
r16
//
removes
bits
to
clear
from
psr
br.call.sptk.many
rp
=
ia64_switch_mode_phys
.
ret6
:
mov
loc5
=
r19
mov
loc6
=
r20
br.call.sptk.many
rp
=
b7
//
now
make
the
call
.
ret7
:
mov
ar
.
rsc
=
0
//
put
RSE
in
enforced
lazy
,
LE
mode
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
.
ret8
:
mov
psr
.
l
=
loc3
//
restore
init
PSR
...
...
arch/ia64/kernel/setup.c
View file @
4bba626e
...
...
@@ -277,6 +277,29 @@ setup_serial_legacy (void)
}
#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
setup_arch
(
char
**
cmdline_p
)
{
...
...
@@ -294,6 +317,12 @@ setup_arch (char **cmdline_p)
machvec_init
(
acpi_get_sysname
());
#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
/* Initialize the ACPI boot-time table parser */
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)
if
(
!
num_node_memblks
)
{
/* No SRAT table, so assume one node (node 0) */
if
(
start
<
end
)
(
*
func
)(
start
,
len
,
0
);
(
*
func
)(
start
,
end
-
start
,
0
);
return
;
}
...
...
arch/ia64/sn/io/sn2/bte_error.c
View file @
4bba626e
...
...
@@ -3,7 +3,7 @@
* License. See the file "COPYING" in the main directory of this archive
* 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)
err_nodepda
->
bte_if
[
i
].
cleanup_active
=
0
;
BTE_PRINTK
((
"eh:%p:%d Unlocked %d
\n
"
,
err_nodepda
,
smp_processor_id
(),
i
));
spin_unlock
(
&
pda
->
cpu_bte_if
[
i
]
->
spinlock
);
spin_unlock
(
&
err_nodepda
->
bte_if
[
i
].
spinlock
);
}
del_timer
(
recovery_timer
);
...
...
arch/ia64/sn/kernel/bte.c
View file @
4bba626e
...
...
@@ -7,6 +7,7 @@
*/
#include <linux/config.h>
#include <linux/module.h>
#include <asm/sn/sgi.h>
#include <asm/sn/nodepda.h>
#include <asm/sn/addrs.h>
...
...
@@ -27,10 +28,18 @@
#define L1_CACHE_MASK (L1_CACHE_BYTES - 1)
#endif
/*
* The base address of for each set of bte registers.
*/
static
int
bte_offsets
[]
=
{
IIO_IBLS0
,
IIO_IBLS1
};
/* two interfaces on two btes */
#define MAX_INTERFACES_TO_TRY 4
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 };
bte_result_t
bte_copy
(
u64
src
,
u64
dest
,
u64
len
,
u64
mode
,
void
*
notification
)
{
int
bte_to_use
;
u64
transfer_size
;
struct
bteinfo_s
*
bte
;
bte_result_t
bte_status
;
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
"
,
...
...
@@ -79,17 +89,57 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
(
src
&
L1_CACHE_MASK
)
||
(
dest
&
L1_CACHE_MASK
)));
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
{
local_irq_save
(
irq_flags
);
bte_to_use
=
0
;
bte_if_index
=
0
;
/* Attempt to lock one of the BTE interfaces. */
while
((
bte_to_use
<
BTES_PER_NODE
)
&&
BTE_LOCK_IF_AVAIL
(
bte_to_use
))
{
bte_to_use
++
;
while
(
bte_if_index
<
MAX_INTERFACES_TO_TRY
)
{
bte
=
btes_to_try
[
bte_if_index
++
];
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
;
}
...
...
@@ -100,12 +150,9 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
}
/* Wait until a bte is available. */
udelay
(
1
0
);
udelay
(
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
)
{
/* User does not want to be notified. */
...
...
@@ -121,28 +168,24 @@ bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
*
bte
->
most_rcnt_na
=
-
1L
;
/* Set the status reg busy bit and transfer length */
BTE_PRINTKV
((
"IBLS - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_LNSTAT_ADDR
,
IBLS_BUSY
|
transfer_size
));
HUB_S
(
BTEREG_LNSTAT_ADDR
,
(
IBLS_BUSY
|
transfer_size
));
BTE_PRINTKV
((
"IBLS = 0x%lx
\n
"
,
IBLS_BUSY
|
transfer_size
));
BTE_LNSTAT_STORE
(
bte
,
IBLS_BUSY
|
transfer_size
);
/* Set the source and destination registers */
BTE_PRINTKV
((
"IBSA - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_SRC_ADDR
,
(
TO_PHYS
(
src
))));
HUB_S
(
BTEREG_SRC_ADDR
,
(
TO_PHYS
(
src
)));
BTE_PRINTKV
((
"IBDA - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_DEST_ADDR
,
(
TO_PHYS
(
dest
))));
HUB_S
(
BTEREG_DEST_ADDR
,
(
TO_PHYS
(
dest
)));
BTE_PRINTKV
((
"IBSA = 0x%lx)
\n
"
,
(
TO_PHYS
(
src
))));
BTE_SRC_STORE
(
bte
,
TO_PHYS
(
src
));
BTE_PRINTKV
((
"IBDA = 0x%lx)
\n
"
,
(
TO_PHYS
(
dest
))));
BTE_DEST_STORE
(
bte
,
TO_PHYS
(
dest
));
/* Set the notification register */
BTE_PRINTKV
((
"IBNA
- HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_NOTIF_ADDR
,
(
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_PRINTKV
((
"IBNA
= 0x%lx)
\n
"
,
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 */
BTE_PRINTK
((
"IBCT - HUB_S(0x%p, 0x%lx)
\n
"
,
BTEREG_CTRL_ADDR
,
BTE_VALID_MODE
(
mode
)));
HUB_S
(
BTEREG_CTRL_ADDR
,
BTE_VALID_MODE
(
mode
));
BTE_PRINTK
((
"IBCT = 0x%lx)
\n
"
,
BTE_VALID_MODE
(
mode
)));
BTE_CTRL_STORE
(
bte
,
BTE_VALID_MODE
(
mode
));
spin_unlock_irqrestore
(
&
bte
->
spinlock
,
irq_flags
);
...
...
@@ -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
"
,
HUB_L
(
BTEREG_LNSTAT_ADDR
),
*
bte
->
most_rcnt_na
));
BTE_LNSTAT_LOAD
(
bte
),
*
bte
->
most_rcnt_na
));
if
(
*
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)
bte_status
=
BTE_SUCCESS
;
}
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
;
}
EXPORT_SYMBOL
(
bte_copy
);
/*
...
...
@@ -201,14 +245,19 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
u64
footBcopyDest
;
u64
footBcopyLen
;
bte_result_t
rv
;
char
*
bteBlock
;
char
*
bteBlock
,
*
bteBlock_unaligned
;
if
(
len
==
0
)
{
return
BTE_SUCCESS
;
}
/* 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
;
destFirstCacheOffset
=
dest
&
L1_CACHE_MASK
;
...
...
@@ -276,6 +325,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
ia64_tpa
((
unsigned
long
)
bteBlock
),
footBteLen
,
mode
,
NULL
);
if
(
rv
!=
BTE_SUCCESS
)
{
kfree
(
bteBlock_unaligned
);
return
rv
;
}
...
...
@@ -296,6 +346,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
(
len
-
headBcopyLen
-
footBcopyLen
),
mode
,
NULL
);
if
(
rv
!=
BTE_SUCCESS
)
{
kfree
(
bteBlock_unaligned
);
return
rv
;
}
...
...
@@ -325,6 +376,7 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
rv
=
bte_copy
(
headBteSource
,
ia64_tpa
((
unsigned
long
)
bteBlock
),
headBteLen
,
mode
,
NULL
);
if
(
rv
!=
BTE_SUCCESS
)
{
kfree
(
bteBlock_unaligned
);
return
rv
;
}
...
...
@@ -332,8 +384,10 @@ bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
headBcopySrcOffset
),
headBcopyLen
);
}
kfree
(
bteBlock_unaligned
);
return
BTE_SUCCESS
;
}
EXPORT_SYMBOL
(
bte_unaligned_copy
);
/************************************************************************
...
...
@@ -370,9 +424,9 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
mynodepda
->
bte_recovery_timer
.
data
=
(
unsigned
long
)
mynodepda
;
for
(
i
=
0
;
i
<
BTES_PER_NODE
;
i
++
)
{
/* >>> Don't know why the 0x1800000L is here. Robin */
mynodepda
->
bte_if
[
i
].
bte_base_addr
=
(
char
*
)
LOCAL_MMR_ADDR
(
bte_offsets
[
i
]
|
0x1800000L
);
(
u64
)
mynodepda
->
bte_if
[
i
].
bte_base_addr
=
REMOTE_HUB_ADDR
(
cnodeid_to_nasid
(
cnode
),
(
i
==
0
?
IIO_IBLS0
:
IIO_IBLS1
)
);
/*
* Initialize the notification and spinlock
...
...
@@ -383,8 +437,6 @@ bte_init_node(nodepda_t * mynodepda, cnodeid_t cnode)
mynodepda
->
bte_if
[
i
].
notify
=
0L
;
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_error_count
=
0
;
mynodepda
->
bte_if
[
i
].
bte_num
=
i
;
...
...
@@ -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);
#define MAX_PHYS_MEMORY (1UL << 49)
/* 1 TB */
extern
void
bte_init_node
(
nodepda_t
*
,
cnodeid_t
);
extern
void
bte_init_cpu
(
void
);
extern
void
sn_timer_init
(
void
);
extern
unsigned
long
last_time_offset
;
extern
void
init_platform_hubinfo
(
nodepda_t
**
nodepdaindr
);
...
...
@@ -496,8 +495,6 @@ sn_cpu_init(void)
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
);
}
bte_init_cpu
();
}
/*
...
...
include/asm-ia64/iosapic.h
View file @
4bba626e
#ifndef __ASM_IA64_IOSAPIC_H
#define __ASM_IA64_IOSAPIC_H
#define IOSAPIC_DEFAULT_ADDR 0xFEC00000
#define IOSAPIC_REG_SELECT 0x0
#define IOSAPIC_WINDOW 0x10
#define IOSAPIC_EOI 0x40
#define IOSAPIC_VERSION 0x1
#define IOSAPIC_VERSION
0x1
/*
* Redirection table entry
...
...
@@ -55,6 +53,23 @@
#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_init
(
unsigned
long
address
,
unsigned
int
gsi_base
);
...
...
include/asm-ia64/smp.h
View file @
4bba626e
...
...
@@ -123,5 +123,9 @@ extern void smp_send_reschedule (int cpu);
extern
void
lock_ipi_calllock
(
void
);
extern
void
unlock_ipi_calllock
(
void
);
#else
#define cpu_logical_id(cpuid) 0
#endif
/* CONFIG_SMP */
#endif
/* _ASM_IA64_SMP_H */
include/asm-ia64/sn/bte.h
View file @
4bba626e
...
...
@@ -3,7 +3,7 @@
* License. See the file "COPYING" in the main directory of this archive
* 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 @@
#define BTE_ZERO_FILL (BTE_NOTIFY | IBCT_ZFIL_MODE)
/* Use a reserved bit to let the caller specify a wait for any BTE */
#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 */
#define BTE_VALID_MODE(x) ((x) & (IBCT_NOTIFY | IBCT_ZFIL_MODE))
/*
* 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)))) \
)
#define BTE_ACTIVE (IBLS_BUSY | IBLS_ERROR)
/*
* Some macros to simplify reading.
* Start with macros to locate the BTE control registers.
*/
#define BTEREG_LNSTAT_ADDR ((u64 *)(bte->bte_base_addr))
#define BTEREG_SRC_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_SRC))
#define BTEREG_DEST_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_DEST))
#define BTEREG_CTRL_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_CTRL))
#define BTEREG_NOTIF_ADDR ((u64 *)(bte->bte_base_addr + BTEOFF_NOTIFY))
#define BTE_LNSTAT_LOAD(_bte) \
HUB_L(_bte->bte_base_addr)
#define BTE_LNSTAT_STORE(_bte, _x) \
HUB_S(_bte->bte_base_addr, (_x))
#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 */
...
...
@@ -110,16 +106,15 @@ typedef enum {
* to work with a BTE.
*/
struct
bteinfo_s
{
u64
volatile
notify
____cacheline_aligned
;
char
*
bte_base_addr
____cacheline_aligned
;
volatile
u64
notify
____cacheline_aligned
;
u64
*
bte_base_addr
____cacheline_aligned
;
spinlock_t
spinlock
;
cnodeid_t
bte_cnode
;
/* cnode */
int
bte_error_count
;
/* Number of errors encountered */
int
bte_num
;
/* 0 --> BTE0, 1 --> BTE1 */
int
cleanup_active
;
/* Interface is locked for cleanup */
volatile
bte_result_t
bh_error
;
/* error while processing */
u64
volatile
*
most_rcnt_na
;
void
*
scratch_buf
;
/* Node local scratch buffer */
volatile
u64
*
most_rcnt_na
;
};
...
...
@@ -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
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
...
...
include/asm-ia64/sn/pda.h
View file @
4bba626e
...
...
@@ -49,8 +49,6 @@ typedef struct pda_s {
volatile
unsigned
long
*
pio_shub_war_cam_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_in_service_ivecs
[
4
];
short
cnodeid_to_nasid_table
[
MAX_NUMNODES
];
...
...
include/asm-ia64/sn/sn_cpuid.h
View file @
4bba626e
...
...
@@ -84,7 +84,6 @@
*/
#ifndef CONFIG_SMP
#define cpu_logical_id(cpu) 0
#define cpu_physical_id(cpuid) ((ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff)
#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