···9999# Firmware Drivers100100#101101CONFIG_EFI_VARS=y102102-# CONFIG_EFI_PCDP is not set102102+CONFIG_EFI_PCDP=y103103CONFIG_BINFMT_ELF=y104104# CONFIG_BINFMT_MISC is not set105105···650650#651651# Console display driver support652652#653653-# CONFIG_VGA_CONSOLE is not set653653+CONFIG_VGA_CONSOLE=y654654CONFIG_DUMMY_CONSOLE=y655655656656#
+31-8
arch/ia64/configs/tiger_defconfig
···11#22# Automatically generated make config: don't edit33-# Linux kernel version: 2.6.12-2005062144-# Tue Jun 21 14:03:24 200533+# Linux kernel version: 2.6.13-rc1-2005062944+# Wed Jun 29 15:28:12 200555#6677#···8080# CONFIG_IA64_PAGE_SIZE_8KB is not set8181CONFIG_IA64_PAGE_SIZE_16KB=y8282# CONFIG_IA64_PAGE_SIZE_64KB is not set8383+# CONFIG_HZ_100 is not set8484+CONFIG_HZ_250=y8585+# CONFIG_HZ_1000 is not set8686+CONFIG_HZ=2508387CONFIG_IA64_L1_CACHE_SHIFT=78488# CONFIG_NUMA is not set8589CONFIG_VIRTUAL_MEM_MAP=y8690CONFIG_HOLES_IN_ZONE=y8791CONFIG_IA64_CYCLONE=y8892CONFIG_IOSAPIC=y9393+# CONFIG_IA64_SGI_SN_XP is not set8994CONFIG_FORCE_MAX_ZONEORDER=189095CONFIG_SMP=y9196CONFIG_NR_CPUS=49297CONFIG_HOTPLUG_CPU=y9398# CONFIG_SCHED_SMT is not set9499# CONFIG_PREEMPT is not set100100+CONFIG_SELECT_MEMORY_MODEL=y101101+CONFIG_FLATMEM_MANUAL=y102102+# CONFIG_DISCONTIGMEM_MANUAL is not set103103+# CONFIG_SPARSEMEM_MANUAL is not set104104+CONFIG_FLATMEM=y105105+CONFIG_FLAT_NODE_MEM_MAP=y95106CONFIG_HAVE_DEC_LOCK=y96107CONFIG_IA32_SUPPORT=y97108CONFIG_COMPAT=y···268257# CONFIG_BLK_DEV_HPT366 is not set269258# CONFIG_BLK_DEV_SC1200 is not set270259CONFIG_BLK_DEV_PIIX=y260260+# CONFIG_BLK_DEV_IT821X is not set271261# CONFIG_BLK_DEV_NS87415 is not set272262# CONFIG_BLK_DEV_PDC202XX_OLD is not set273263# CONFIG_BLK_DEV_PDC202XX_NEW is not set···407395CONFIG_INET=y408396CONFIG_IP_MULTICAST=y409397# CONFIG_IP_ADVANCED_ROUTER is not set398398+CONFIG_IP_FIB_HASH=y410399# CONFIG_IP_PNP is not set411400# CONFIG_NET_IPIP is not set412401# CONFIG_NET_IPGRE is not set···420407# CONFIG_INET_TUNNEL is not set421408CONFIG_IP_TCPDIAG=y422409# CONFIG_IP_TCPDIAG_IPV6 is not set410410+# CONFIG_TCP_CONG_ADVANCED is not set411411+CONFIG_TCP_CONG_BIC=y423412# CONFIG_IPV6 is not set424413# CONFIG_NETFILTER is not set425414···613598# CONFIG_GAMEPORT_NS558 is not set614599# CONFIG_GAMEPORT_L4 is not set615600# CONFIG_GAMEPORT_EMU10K1 is not set616616-# CONFIG_GAMEPORT_VORTEX is not set617601# CONFIG_GAMEPORT_FM801 is not set618618-# CONFIG_GAMEPORT_CS461X is not set619602620603#621604# Character devices···642629CONFIG_SERIAL_8250_EXTENDED=y643630CONFIG_SERIAL_8250_SHARE_IRQ=y644631# CONFIG_SERIAL_8250_DETECT_IRQ is not set645645-# CONFIG_SERIAL_8250_MULTIPORT is not set646632# CONFIG_SERIAL_8250_RSA is not set647633648634#···755743CONFIG_USB_EHCI_HCD=m756744# CONFIG_USB_EHCI_SPLIT_ISO is not set757745# CONFIG_USB_EHCI_ROOT_HUB_TT is not set746746+# CONFIG_USB_ISP116X_HCD is not set758747CONFIG_USB_OHCI_HCD=m759748# CONFIG_USB_OHCI_BIG_ENDIAN is not set760749CONFIG_USB_OHCI_LITTLE_ENDIAN=y···792779# CONFIG_USB_HIDDEV is not set793780# CONFIG_USB_AIPTEK is not set794781# CONFIG_USB_WACOM is not set782782+# CONFIG_USB_ACECAD is not set795783# CONFIG_USB_KBTAB is not set796784# CONFIG_USB_POWERMATE is not set797785# CONFIG_USB_MTOUCH is not set786786+# CONFIG_USB_ITMTOUCH is not set798787# CONFIG_USB_EGALAX is not set799788# CONFIG_USB_XPAD is not set800789# CONFIG_USB_ATI_REMOTE is not set···853838# CONFIG_USB_TEST is not set854839855840#856856-# USB ATM/DSL drivers841841+# USB DSL modem support857842#858843859844#···872857# CONFIG_INFINIBAND is not set873858874859#860860+# SN Devices861861+#862862+863863+#875864# File systems876865#877866CONFIG_EXT2_FS=y878867CONFIG_EXT2_FS_XATTR=y879868CONFIG_EXT2_FS_POSIX_ACL=y880869CONFIG_EXT2_FS_SECURITY=y870870+# CONFIG_EXT2_FS_XIP is not set881871CONFIG_EXT3_FS=y882872CONFIG_EXT3_FS_XATTR=y883873CONFIG_EXT3_FS_POSIX_ACL=y···942922CONFIG_PROC_FS=y943923CONFIG_PROC_KCORE=y944924CONFIG_SYSFS=y945945-# CONFIG_DEVFS_FS is not set946925# CONFIG_DEVPTS_FS_XATTR is not set947926CONFIG_TMPFS=y948927CONFIG_TMPFS_XATTR=y···972953#973954CONFIG_NFS_FS=m974955CONFIG_NFS_V3=y956956+# CONFIG_NFS_V3_ACL is not set975957CONFIG_NFS_V4=y976958CONFIG_NFS_DIRECTIO=y977959CONFIG_NFSD=m978960CONFIG_NFSD_V3=y961961+# CONFIG_NFSD_V3_ACL is not set979962CONFIG_NFSD_V4=y980963CONFIG_NFSD_TCP=y981964CONFIG_LOCKD=m982965CONFIG_LOCKD_V4=y983966CONFIG_EXPORTFS=y967967+CONFIG_NFS_COMMON=y984968CONFIG_SUNRPC=m985969CONFIG_SUNRPC_GSS=m986970CONFIG_RPCSEC_GSS_KRB5=m···10911069# CONFIG_DEBUG_KOBJECT is not set10921070# CONFIG_DEBUG_INFO is not set10931071# CONFIG_DEBUG_FS is not set10721072+# CONFIG_KPROBES is not set10941073CONFIG_IA64_GRANULE_16MB=y10951074# CONFIG_IA64_GRANULE_64MB is not set10961075# CONFIG_IA64_PRINT_HAZARDS is not set···11131090# CONFIG_CRYPTO_HMAC is not set11141091# CONFIG_CRYPTO_NULL is not set11151092# CONFIG_CRYPTO_MD4 is not set11161116-CONFIG_CRYPTO_MD5=m10931093+CONFIG_CRYPTO_MD5=y11171094# CONFIG_CRYPTO_SHA1 is not set11181095# CONFIG_CRYPTO_SHA256 is not set11191096# CONFIG_CRYPTO_SHA512 is not set
+122-44
arch/ia64/configs/zx1_defconfig
···11#22# Automatically generated make config: don't edit33-# Linux kernel version: 2.6.1044-# Wed Dec 29 09:05:48 200433+# Linux kernel version: 2.6.13-rc1-2005062944+# Wed Jun 29 15:31:11 200555#6677#···1212CONFIG_BROKEN=y1313CONFIG_BROKEN_ON_SMP=y1414CONFIG_LOCK_KERNEL=y1515+CONFIG_INIT_ENV_ARG_LIMIT=3215161617#1718# General setup···2524# CONFIG_BSD_PROCESS_ACCT_V3 is not set2625CONFIG_SYSCTL=y2726# CONFIG_AUDIT is not set2828-CONFIG_LOG_BUF_SHIFT=172927CONFIG_HOTPLUG=y3028CONFIG_KOBJECT_UEVENT=y3129# CONFIG_IKCONFIG is not set3030+# CONFIG_CPUSETS is not set3231# CONFIG_EMBEDDED is not set3332CONFIG_KALLSYMS=y3433# CONFIG_KALLSYMS_ALL is not set3534# CONFIG_KALLSYMS_EXTRA_PASS is not set3535+CONFIG_PRINTK=y3636+CONFIG_BUG=y3737+CONFIG_BASE_FULL=y3638CONFIG_FUTEX=y3739CONFIG_EPOLL=y3838-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set3940CONFIG_SHMEM=y4041CONFIG_CC_ALIGN_FUNCTIONS=04142CONFIG_CC_ALIGN_LABELS=04243CONFIG_CC_ALIGN_LOOPS=04344CONFIG_CC_ALIGN_JUMPS=04445# CONFIG_TINY_SHMEM is not set4646+CONFIG_BASE_SMALL=045474648#4749# Loadable module support···6359CONFIG_64BIT=y6460CONFIG_MMU=y6561CONFIG_RWSEM_XCHGADD_ALGORITHM=y6262+CONFIG_GENERIC_CALIBRATE_DELAY=y6663CONFIG_TIME_INTERPOLATION=y6764CONFIG_EFI=y6865CONFIG_GENERIC_IOMAP=y6666+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y6967# CONFIG_IA64_GENERIC is not set7068# CONFIG_IA64_DIG is not set7169CONFIG_IA64_HP_ZX1=y7070+# CONFIG_IA64_HP_ZX1_SWIOTLB is not set7271# CONFIG_IA64_SGI_SN2 is not set7372# CONFIG_IA64_HP_SIM is not set7473# CONFIG_ITANIUM is not set···8073# CONFIG_IA64_PAGE_SIZE_8KB is not set8174CONFIG_IA64_PAGE_SIZE_16KB=y8275# CONFIG_IA64_PAGE_SIZE_64KB is not set7676+# CONFIG_HZ_100 is not set7777+CONFIG_HZ_250=y7878+# CONFIG_HZ_1000 is not set7979+CONFIG_HZ=2508380CONFIG_IA64_L1_CACHE_SHIFT=78481# CONFIG_NUMA is not set8582CONFIG_VIRTUAL_MEM_MAP=y8383+CONFIG_HOLES_IN_ZONE=y8684# CONFIG_IA64_CYCLONE is not set8785CONFIG_IOSAPIC=y8686+# CONFIG_IA64_SGI_SN_XP is not set8887CONFIG_FORCE_MAX_ZONEORDER=188988CONFIG_SMP=y9089CONFIG_NR_CPUS=169190# CONFIG_HOTPLUG_CPU is not set9191+# CONFIG_SCHED_SMT is not set9292# CONFIG_PREEMPT is not set9393+CONFIG_SELECT_MEMORY_MODEL=y9494+CONFIG_FLATMEM_MANUAL=y9595+# CONFIG_DISCONTIGMEM_MANUAL is not set9696+# CONFIG_SPARSEMEM_MANUAL is not set9797+CONFIG_FLATMEM=y9898+CONFIG_FLAT_NODE_MEM_MAP=y9399CONFIG_HAVE_DEC_LOCK=y94100CONFIG_IA32_SUPPORT=y95101CONFIG_COMPAT=y96102CONFIG_IA64_MCA_RECOVERY=y97103CONFIG_PERFMON=y98104CONFIG_IA64_PALINFO=y105105+CONFIG_ACPI_DEALLOCATE_IRQ=y99106100107#101108# Firmware Drivers···141120CONFIG_ACPI_POWER=y142121CONFIG_ACPI_PCI=y143122CONFIG_ACPI_SYSTEM=y123123+# CONFIG_ACPI_CONTAINER is not set144124145125#146126# Bus options (PCI, PCMCIA)···151129# CONFIG_PCI_MSI is not set152130CONFIG_PCI_LEGACY_PROC=y153131CONFIG_PCI_NAMES=y132132+# CONFIG_PCI_DEBUG is not set154133155134#156135# PCI Hotplug Support···161138CONFIG_HOTPLUG_PCI_ACPI=y162139# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set163140# CONFIG_HOTPLUG_PCI_CPCI is not set164164-# CONFIG_HOTPLUG_PCI_PCIE is not set165141# CONFIG_HOTPLUG_PCI_SHPC is not set166142167143#168144# PCCARD (PCMCIA/CardBus) support169145#170146# CONFIG_PCCARD is not set171171-172172-#173173-# PC-card bridges174174-#175147176148#177149# Device Drivers···202184# CONFIG_BLK_CPQ_CISS_DA is not set203185# CONFIG_BLK_DEV_DAC960 is not set204186# CONFIG_BLK_DEV_UMEM is not set187187+# CONFIG_BLK_DEV_COW_COMMON is not set205188CONFIG_BLK_DEV_LOOP=y206189# CONFIG_BLK_DEV_CRYPTOLOOP is not set207190# CONFIG_BLK_DEV_NBD is not set···222203CONFIG_IOSCHED_AS=y223204CONFIG_IOSCHED_DEADLINE=y224205CONFIG_IOSCHED_CFQ=y206206+# CONFIG_ATA_OVER_ETH is not set225207226208#227209# ATA/ATAPI/MFM/RLL support···266246# CONFIG_BLK_DEV_HPT366 is not set267247# CONFIG_BLK_DEV_SC1200 is not set268248# CONFIG_BLK_DEV_PIIX is not set249249+# CONFIG_BLK_DEV_IT821X is not set269250# CONFIG_BLK_DEV_NS87415 is not set270251# CONFIG_BLK_DEV_PDC202XX_OLD is not set271252# CONFIG_BLK_DEV_PDC202XX_NEW is not set···296275CONFIG_BLK_DEV_SR=y297276CONFIG_BLK_DEV_SR_VENDOR=y298277CONFIG_CHR_DEV_SG=y278278+# CONFIG_CHR_DEV_SCH is not set299279300280#301281# Some SCSI devices (e.g. CD jukebox) support multiple LUNs···310288#311289CONFIG_SCSI_SPI_ATTRS=y312290# CONFIG_SCSI_FC_ATTRS is not set291291+# CONFIG_SCSI_ISCSI_ATTRS is not set313292314293#315294# SCSI low-level drivers···326303# CONFIG_MEGARAID_NEWGEN is not set327304# CONFIG_MEGARAID_LEGACY is not set328305# CONFIG_SCSI_SATA is not set329329-# CONFIG_SCSI_BUSLOGIC is not set330306# CONFIG_SCSI_CPQFCTS is not set331307# CONFIG_SCSI_DMX3191D is not set332332-# CONFIG_SCSI_EATA is not set333308# CONFIG_SCSI_EATA_PIO is not set334309# CONFIG_SCSI_FUTURE_DOMAIN is not set335335-# CONFIG_SCSI_GDTH is not set336310# CONFIG_SCSI_IPS is not set337311# CONFIG_SCSI_INITIO is not set338312# CONFIG_SCSI_INIA100 is not set···339319CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64340320# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set341321# CONFIG_SCSI_IPR is not set342342-# CONFIG_SCSI_PCI2000 is not set343343-# CONFIG_SCSI_PCI2220I is not set344322# CONFIG_SCSI_QLOGIC_ISP is not set345323# CONFIG_SCSI_QLOGIC_FC is not set346324CONFIG_SCSI_QLOGIC_1280=y···349331# CONFIG_SCSI_QLA2300 is not set350332# CONFIG_SCSI_QLA2322 is not set351333# CONFIG_SCSI_QLA6312 is not set352352-# CONFIG_SCSI_QLA6322 is not set334334+# CONFIG_SCSI_LPFC is not set353335# CONFIG_SCSI_DC395x is not set354336# CONFIG_SCSI_DC390T is not set355337# CONFIG_SCSI_DEBUG is not set···362344#363345# Fusion MPT device support364346#365365-CONFIG_FUSION=y366366-CONFIG_FUSION_MAX_SGE=40367367-# CONFIG_FUSION_CTL is not set347347+# CONFIG_FUSION is not set348348+# CONFIG_FUSION_SPI is not set349349+# CONFIG_FUSION_FC is not set368350369351#370352# IEEE 1394 (FireWire) support···386368#387369CONFIG_PACKET=y388370# CONFIG_PACKET_MMAP is not set389389-# CONFIG_NETLINK_DEV is not set390371CONFIG_UNIX=y391372# CONFIG_NET_KEY is not set392373CONFIG_INET=y393374CONFIG_IP_MULTICAST=y394375# CONFIG_IP_ADVANCED_ROUTER is not set376376+CONFIG_IP_FIB_HASH=y395377# CONFIG_IP_PNP is not set396378# CONFIG_NET_IPIP is not set397379# CONFIG_NET_IPGRE is not set···404386# CONFIG_INET_TUNNEL is not set405387# CONFIG_IP_TCPDIAG is not set406388# CONFIG_IP_TCPDIAG_IPV6 is not set389389+# CONFIG_TCP_CONG_ADVANCED is not set390390+CONFIG_TCP_CONG_BIC=y407391408392#409393# IP: Virtual Server Configuration···425405CONFIG_IP_NF_ARPTABLES=y426406# CONFIG_IP_NF_ARPFILTER is not set427407# CONFIG_IP_NF_ARP_MANGLE is not set428428-# CONFIG_IP_NF_COMPAT_IPCHAINS is not set429429-# CONFIG_IP_NF_COMPAT_IPFWADM is not set430408431409#432410# SCTP Configuration (EXPERIMENTAL)···501483# CONFIG_DGRS is not set502484# CONFIG_EEPRO100 is not set503485CONFIG_E100=y504504-# CONFIG_E100_NAPI is not set505486# CONFIG_FEALNX is not set506487# CONFIG_NATSEMI is not set507488# CONFIG_NE2K_PCI is not set···522505# CONFIG_HAMACHI is not set523506# CONFIG_YELLOWFIN is not set524507# CONFIG_R8169 is not set508508+# CONFIG_SKGE is not set525509# CONFIG_SK98LIN is not set526510# CONFIG_VIA_VELOCITY is not set527511CONFIG_TIGON3=y512512+# CONFIG_BNX2 is not set528513529514#530515# Ethernet (10000 Mbit)···584565# CONFIG_INPUT_EVBUG is not set585566586567#587587-# Input I/O drivers588588-#589589-# CONFIG_GAMEPORT is not set590590-CONFIG_SOUND_GAMEPORT=y591591-CONFIG_SERIO=y592592-# CONFIG_SERIO_I8042 is not set593593-# CONFIG_SERIO_SERPORT is not set594594-# CONFIG_SERIO_CT82C710 is not set595595-# CONFIG_SERIO_PCIPS2 is not set596596-# CONFIG_SERIO_RAW is not set597597-598598-#599568# Input Device Drivers600569#601570# CONFIG_INPUT_KEYBOARD is not set···591584# CONFIG_INPUT_JOYSTICK is not set592585# CONFIG_INPUT_TOUCHSCREEN is not set593586# CONFIG_INPUT_MISC is not set587587+588588+#589589+# Hardware I/O ports590590+#591591+CONFIG_SERIO=y592592+# CONFIG_SERIO_I8042 is not set593593+# CONFIG_SERIO_SERPORT is not set594594+# CONFIG_SERIO_PCIPS2 is not set595595+# CONFIG_SERIO_RAW is not set596596+# CONFIG_GAMEPORT is not set594597595598#596599# Character devices···620603CONFIG_SERIAL_8250_EXTENDED=y621604CONFIG_SERIAL_8250_SHARE_IRQ=y622605# CONFIG_SERIAL_8250_DETECT_IRQ is not set623623-# CONFIG_SERIAL_8250_MULTIPORT is not set624606# CONFIG_SERIAL_8250_RSA is not set625607626608#···627611#628612CONFIG_SERIAL_CORE=y629613CONFIG_SERIAL_CORE_CONSOLE=y614614+# CONFIG_SERIAL_JSM is not set630615CONFIG_UNIX98_PTYS=y631616CONFIG_LEGACY_PTYS=y632617CONFIG_LEGACY_PTY_COUNT=256···661644# CONFIG_DRM_SIS is not set662645# CONFIG_RAW_DRIVER is not set663646# CONFIG_HPET is not set647647+# CONFIG_HANGCHECK_TIMER is not set648648+649649+#650650+# TPM devices651651+#652652+# CONFIG_TCG_TPM is not set664653665654#666655# I2C support···691668# CONFIG_I2C_AMD8111 is not set692669# CONFIG_I2C_I801 is not set693670# CONFIG_I2C_I810 is not set671671+# CONFIG_I2C_PIIX4 is not set694672# CONFIG_I2C_ISA is not set695673# CONFIG_I2C_NFORCE2 is not set696674# CONFIG_I2C_PARPORT_LIGHT is not set···715691# CONFIG_SENSORS_ADM1025 is not set716692# CONFIG_SENSORS_ADM1026 is not set717693# CONFIG_SENSORS_ADM1031 is not set694694+# CONFIG_SENSORS_ADM9240 is not set718695# CONFIG_SENSORS_ASB100 is not set696696+# CONFIG_SENSORS_ATXP1 is not set719697# CONFIG_SENSORS_DS1621 is not set720698# CONFIG_SENSORS_FSCHER is not set699699+# CONFIG_SENSORS_FSCPOS is not set721700# CONFIG_SENSORS_GL518SM is not set701701+# CONFIG_SENSORS_GL520SM is not set722702# CONFIG_SENSORS_IT87 is not set723703# CONFIG_SENSORS_LM63 is not set724704# CONFIG_SENSORS_LM75 is not set···733705# CONFIG_SENSORS_LM85 is not set734706# CONFIG_SENSORS_LM87 is not set735707# CONFIG_SENSORS_LM90 is not set708708+# CONFIG_SENSORS_LM92 is not set736709# CONFIG_SENSORS_MAX1619 is not set737710# CONFIG_SENSORS_PC87360 is not set711711+# CONFIG_SENSORS_SMSC47B397 is not set712712+# CONFIG_SENSORS_SIS5595 is not set738713# CONFIG_SENSORS_SMSC47M1 is not set739714# CONFIG_SENSORS_VIA686A is not set740715# CONFIG_SENSORS_W83781D is not set741716# CONFIG_SENSORS_W83L785TS is not set742717# CONFIG_SENSORS_W83627HF is not set718718+# CONFIG_SENSORS_W83627EHF is not set743719744720#745721# Other I2C Chip support746722#723723+# CONFIG_SENSORS_DS1337 is not set724724+# CONFIG_SENSORS_DS1374 is not set747725# CONFIG_SENSORS_EEPROM is not set748726# CONFIG_SENSORS_PCF8574 is not set727727+# CONFIG_SENSORS_PCA9539 is not set749728# CONFIG_SENSORS_PCF8591 is not set750729# CONFIG_SENSORS_RTC8564 is not set730730+# CONFIG_SENSORS_MAX6875 is not set751731# CONFIG_I2C_DEBUG_CORE is not set752732# CONFIG_I2C_DEBUG_ALGO is not set753733# CONFIG_I2C_DEBUG_BUS is not set···782746#783747# Video Adapters784748#749749+# CONFIG_TUNER_MULTI_I2C is not set785750# CONFIG_VIDEO_BT848 is not set786751# CONFIG_VIDEO_CPIA is not set787752# CONFIG_VIDEO_SAA5246A is not set···815778# Graphics support816779#817780CONFIG_FB=y781781+CONFIG_FB_CFB_FILLRECT=y782782+CONFIG_FB_CFB_COPYAREA=y783783+CONFIG_FB_CFB_IMAGEBLIT=y784784+CONFIG_FB_SOFT_CURSOR=y785785+# CONFIG_FB_MACMODES is not set818786CONFIG_FB_MODE_HELPERS=y819787# CONFIG_FB_TILEBLITTING is not set820788# CONFIG_FB_CIRRUS is not set···827785# CONFIG_FB_CYBER2000 is not set828786# CONFIG_FB_ASILIANT is not set829787# CONFIG_FB_IMSTT is not set788788+# CONFIG_FB_NVIDIA is not set830789# CONFIG_FB_RIVA is not set831790# CONFIG_FB_MATROX is not set832791# CONFIG_FB_RADEON_OLD is not set···844801# CONFIG_FB_VOODOO1 is not set845802# CONFIG_FB_TRIDENT is not set846803# CONFIG_FB_PM3 is not set804804+# CONFIG_FB_S1D13XXX is not set847805# CONFIG_FB_VIRTUAL is not set848806849807#···864820# CONFIG_LOGO_LINUX_MONO is not set865821# CONFIG_LOGO_LINUX_VGA16 is not set866822CONFIG_LOGO_LINUX_CLUT224=y823823+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set867824868825#869826# Sound···914869# CONFIG_SND_CS46XX is not set915870# CONFIG_SND_CS4281 is not set916871# CONFIG_SND_EMU10K1 is not set872872+# CONFIG_SND_EMU10K1X is not set873873+# CONFIG_SND_CA0106 is not set917874# CONFIG_SND_KORG1212 is not set918875# CONFIG_SND_MIXART is not set919876# CONFIG_SND_NM256 is not set···923876# CONFIG_SND_RME96 is not set924877# CONFIG_SND_RME9652 is not set925878# CONFIG_SND_HDSP is not set879879+# CONFIG_SND_HDSPM is not set926880# CONFIG_SND_TRIDENT is not set927881# CONFIG_SND_YMFPCI is not set928882# CONFIG_SND_ALS4000 is not set···941893# CONFIG_SND_INTEL8X0M is not set942894# CONFIG_SND_SONICVIBES is not set943895# CONFIG_SND_VIA82XX is not set896896+# CONFIG_SND_VIA82XX_MODEM is not set944897# CONFIG_SND_VX222 is not set898898+# CONFIG_SND_HDA_INTEL is not set945899946900#947901# USB devices948902#949903# CONFIG_SND_USB_AUDIO is not set950950-# CONFIG_SND_USB_USX2Y is not set951904952905#953906# Open Sound System···958909#959910# USB support960911#912912+CONFIG_USB_ARCH_HAS_HCD=y913913+CONFIG_USB_ARCH_HAS_OHCI=y961914CONFIG_USB=y962915# CONFIG_USB_DEBUG is not set963916···971920# CONFIG_USB_DYNAMIC_MINORS is not set972921# CONFIG_USB_SUSPEND is not set973922# CONFIG_USB_OTG is not set974974-CONFIG_USB_ARCH_HAS_HCD=y975975-CONFIG_USB_ARCH_HAS_OHCI=y976923977924#978925# USB Host Controller Drivers···978929CONFIG_USB_EHCI_HCD=y979930# CONFIG_USB_EHCI_SPLIT_ISO is not set980931# CONFIG_USB_EHCI_ROOT_HUB_TT is not set932932+# CONFIG_USB_ISP116X_HCD is not set981933CONFIG_USB_OHCI_HCD=y934934+# CONFIG_USB_OHCI_BIG_ENDIAN is not set935935+CONFIG_USB_OHCI_LITTLE_ENDIAN=y982936CONFIG_USB_UHCI_HCD=y983937# CONFIG_USB_SL811_HCD is not set984938···999947#1000948CONFIG_USB_STORAGE=y1001949# CONFIG_USB_STORAGE_DEBUG is not set10021002-# CONFIG_USB_STORAGE_RW_DETECT is not set1003950# CONFIG_USB_STORAGE_DATAFAB is not set1004951# CONFIG_USB_STORAGE_FREECOM is not set1005952# CONFIG_USB_STORAGE_ISD200 is not set1006953# CONFIG_USB_STORAGE_DPCM is not set10071007-# CONFIG_USB_STORAGE_HP8200e is not set954954+# CONFIG_USB_STORAGE_USBAT is not set1008955# CONFIG_USB_STORAGE_SDDR09 is not set1009956# CONFIG_USB_STORAGE_SDDR55 is not set1010957# CONFIG_USB_STORAGE_JUMPSHOT is not set···1017966CONFIG_USB_HIDDEV=y1018967# CONFIG_USB_AIPTEK is not set1019968# CONFIG_USB_WACOM is not set969969+# CONFIG_USB_ACECAD is not set1020970# CONFIG_USB_KBTAB is not set1021971# CONFIG_USB_POWERMATE is not set1022972# CONFIG_USB_MTOUCH is not set973973+# CONFIG_USB_ITMTOUCH is not set1023974# CONFIG_USB_EGALAX is not set1024975# CONFIG_USB_XPAD is not set1025976# CONFIG_USB_ATI_REMOTE is not set···1031978#1032979# CONFIG_USB_MDC800 is not set1033980# CONFIG_USB_MICROTEK is not set10341034-# CONFIG_USB_HPUSBSCSI is not set10359811036982#1037983# USB Multimedia devices···1044992# CONFIG_USB_SE401 is not set1045993# CONFIG_USB_SN9C102 is not set1046994# CONFIG_USB_STV680 is not set995995+# CONFIG_USB_PWC is not set10479961048997#1049998# USB Network Adapters···10541001# CONFIG_USB_PEGASUS is not set10551002# CONFIG_USB_RTL8150 is not set10561003# CONFIG_USB_USBNET is not set10041004+CONFIG_USB_MON=y1057100510581006#10591007# USB port drivers···10701016#10711017# CONFIG_USB_EMI62 is not set10721018# CONFIG_USB_EMI26 is not set10731073-# CONFIG_USB_TIGL is not set10741019# CONFIG_USB_AUERSWALD is not set10751020# CONFIG_USB_RIO500 is not set10761021# CONFIG_USB_LEGOTOWER is not set···10781025# CONFIG_USB_CYTHERM is not set10791026# CONFIG_USB_PHIDGETKIT is not set10801027# CONFIG_USB_PHIDGETSERVO is not set10281028+# CONFIG_USB_IDMOUSE is not set10291029+# CONFIG_USB_SISUSBVGA is not set1081103010821031#10831083-# USB ATM/DSL drivers10321032+# USB DSL modem support10841033#1085103410861035#···10961041# CONFIG_MMC is not set1097104210981043#10441044+# InfiniBand support10451045+#10461046+# CONFIG_INFINIBAND is not set10471047+10481048+#10491049+# SN Devices10501050+#10511051+10521052+#10991053# File systems11001054#11011055CONFIG_EXT2_FS=y11021056CONFIG_EXT2_FS_XATTR=y11031057# CONFIG_EXT2_FS_POSIX_ACL is not set11041058# CONFIG_EXT2_FS_SECURITY is not set10591059+# CONFIG_EXT2_FS_XIP is not set11051060CONFIG_EXT3_FS=y11061061CONFIG_EXT3_FS_XATTR=y11071062# CONFIG_EXT3_FS_POSIX_ACL is not set···11211056CONFIG_FS_MBCACHE=y11221057# CONFIG_REISERFS_FS is not set11231058# CONFIG_JFS_FS is not set10591059+10601060+#10611061+# XFS support10621062+#11241063# CONFIG_XFS_FS is not set11251064# CONFIG_MINIX_FS is not set11261065# CONFIG_ROMFS_FS is not set···11581089CONFIG_PROC_FS=y11591090CONFIG_PROC_KCORE=y11601091CONFIG_SYSFS=y11611161-# CONFIG_DEVFS_FS is not set11621092# CONFIG_DEVPTS_FS_XATTR is not set11631093CONFIG_TMPFS=y11641094CONFIG_TMPFS_XATTR=y···11881120#11891121CONFIG_NFS_FS=y11901122CONFIG_NFS_V3=y11231123+# CONFIG_NFS_V3_ACL is not set11911124CONFIG_NFS_V4=y11921125# CONFIG_NFS_DIRECTIO is not set11931126CONFIG_NFSD=y11941127CONFIG_NFSD_V3=y11281128+# CONFIG_NFSD_V3_ACL is not set11951129# CONFIG_NFSD_V4 is not set11961130# CONFIG_NFSD_TCP is not set11971131CONFIG_LOCKD=y11981132CONFIG_LOCKD_V4=y11991133CONFIG_EXPORTFS=y11341134+CONFIG_NFS_COMMON=y12001135CONFIG_SUNRPC=y12011136CONFIG_SUNRPC_GSS=y12021137CONFIG_RPCSEC_GSS_KRB5=y···12801209# CONFIG_CRC_CCITT is not set12811210CONFIG_CRC32=y12821211# CONFIG_LIBCRC32C is not set12121212+CONFIG_GENERIC_HARDIRQS=y12131213+CONFIG_GENERIC_IRQ_PROBE=y1283121412841215#12851216# Profiling support···12911218#12921219# Kernel hacking12931220#12211221+# CONFIG_PRINTK_TIME is not set12941222CONFIG_DEBUG_KERNEL=y12951223CONFIG_MAGIC_SYSRQ=y12241224+CONFIG_LOG_BUF_SHIFT=1712961225# CONFIG_SCHEDSTATS is not set12971226# CONFIG_DEBUG_SLAB is not set12981227# CONFIG_DEBUG_SPINLOCK is not set12991228# CONFIG_DEBUG_SPINLOCK_SLEEP is not set13001229# CONFIG_DEBUG_KOBJECT is not set13011230# CONFIG_DEBUG_INFO is not set12311231+# CONFIG_DEBUG_FS is not set12321232+CONFIG_KPROBES=y13021233CONFIG_IA64_GRANULE_16MB=y13031234# CONFIG_IA64_GRANULE_64MB is not set13041235CONFIG_IA64_PRINT_HAZARDS=y···13291252# CONFIG_CRYPTO_SHA256 is not set13301253# CONFIG_CRYPTO_SHA512 is not set13311254# CONFIG_CRYPTO_WP512 is not set12551255+# CONFIG_CRYPTO_TGR192 is not set13321256CONFIG_CRYPTO_DES=y13331257# CONFIG_CRYPTO_BLOWFISH is not set13341258# CONFIG_CRYPTO_TWOFISH is not set
···470470 br.cond.sptk.many b7471471END(load_switch_stack)472472473473-GLOBAL_ENTRY(__ia64_syscall)474474- .regstk 6,0,0,0475475- mov r15=in5 // put syscall number in place476476- break __BREAK_SYSCALL477477- movl r2=errno478478- cmp.eq p6,p7=-1,r10479479- ;;480480-(p6) st4 [r2]=r8481481-(p6) mov r8=-1482482- br.ret.sptk.many rp483483-END(__ia64_syscall)484484-485473GLOBAL_ENTRY(execve)486474 mov r15=__NR_execve // put syscall number in place487475 break __BREAK_SYSCALL···625637 * r8-r11: restored (syscall return value(s))626638 * r12: restored (user-level stack pointer)627639 * r13: restored (user-level thread pointer)628628- * r14: cleared640640+ * r14: set to __kernel_syscall_via_epc629641 * r15: restored (syscall #)630642 * r16-r17: cleared631643 * r18: user-level b6···646658 * pr: restored (user-level pr)647659 * b0: restored (user-level rp)648660 * b6: restored649649- * b7: cleared661661+ * b7: set to __kernel_syscall_via_epc650662 * ar.unat: restored (user-level ar.unat)651663 * ar.pfs: restored (user-level ar.pfs)652664 * ar.rsc: restored (user-level ar.rsc)···692704 ;;693705(p6) ld4 r31=[r18] // load current_thread_info()->flags694706 ld8 r19=[r2],PT(B6)-PT(LOADRS) // load ar.rsc value for "loadrs"695695- mov b7=r0 // clear b7707707+ nop.i 0696708 ;;697697- ld8 r23=[r3],PT(R11)-PT(AR_BSPSTORE) // load ar.bspstore (may be garbage)709709+ mov r16=ar.bsp // M2 get existing backing store pointer698710 ld8 r18=[r2],PT(R9)-PT(B6) // load b6699711(p6) and r15=TIF_WORK_MASK,r31 // any work other than TIF_SYSCALL_TRACE?700712 ;;701701- mov r16=ar.bsp // M2 get existing backing store pointer713713+ ld8 r23=[r3],PT(R11)-PT(AR_BSPSTORE) // load ar.bspstore (may be garbage)702714(p6) cmp4.ne.unc p6,p0=r15, r0 // any special work pending?703715(p6) br.cond.spnt .work_pending_syscall704716 ;;705717 // start restoring the state saved on the kernel stack (struct pt_regs):706718 ld8 r9=[r2],PT(CR_IPSR)-PT(R9)707719 ld8 r11=[r3],PT(CR_IIP)-PT(R11)708708- mov f6=f0 // clear f6720720+(pNonSys) break 0 // bug check: we shouldn't be here if pNonSys is TRUE!709721 ;;710722 invala // M0|1 invalidate ALAT711711- rsm psr.i | psr.ic // M2 initiate turning off of interrupt and interruption collection712712- mov f9=f0 // clear f9723723+ rsm psr.i | psr.ic // M2 turn off interrupts and interruption collection724724+ cmp.eq p9,p0=r0,r0 // A set p9 to indicate that we should restore cr.ifs713725714714- ld8 r29=[r2],16 // load cr.ipsr715715- ld8 r28=[r3],16 // load cr.iip716716- mov f8=f0 // clear f8726726+ ld8 r29=[r2],16 // M0|1 load cr.ipsr727727+ ld8 r28=[r3],16 // M0|1 load cr.iip728728+ mov r22=r0 // A clear r22717729 ;;718730 ld8 r30=[r2],16 // M0|1 load cr.ifs719731 ld8 r25=[r3],16 // M0|1 load ar.unat720720- cmp.eq p9,p0=r0,r0 // set p9 to indicate that we should restore cr.ifs721721- ;;722722- ld8 r26=[r2],PT(B0)-PT(AR_PFS) // M0|1 load ar.pfs723723-(pKStk) mov r22=psr // M2 read PSR now that interrupts are disabled724724- mov f10=f0 // clear f10725725- ;;726726- ld8 r21=[r2],PT(AR_RNAT)-PT(B0) // load b0727727- ld8 r27=[r3],PT(PR)-PT(AR_RSC) // load ar.rsc728728- mov f11=f0 // clear f11729729- ;;730730- ld8 r24=[r2],PT(AR_FPSR)-PT(AR_RNAT) // load ar.rnat (may be garbage)731731- ld8 r31=[r3],PT(R1)-PT(PR) // load predicates732732(pUStk) add r14=IA64_TASK_THREAD_ON_USTACK_OFFSET,r13733733 ;;734734- ld8 r20=[r2],PT(R12)-PT(AR_FPSR) // load ar.fpsr735735- ld8.fill r1=[r3],16 // load r1736736-(pUStk) mov r17=1734734+ ld8 r26=[r2],PT(B0)-PT(AR_PFS) // M0|1 load ar.pfs735735+(pKStk) mov r22=psr // M2 read PSR now that interrupts are disabled736736+ nop 0737737 ;;738738- srlz.d // M0 ensure interruption collection is off739739- ld8.fill r13=[r3],16740740- mov f7=f0 // clear f7738738+ ld8 r21=[r2],PT(AR_RNAT)-PT(B0) // M0|1 load b0739739+ ld8 r27=[r3],PT(PR)-PT(AR_RSC) // M0|1 load ar.rsc740740+ mov f6=f0 // F clear f6741741 ;;742742- ld8.fill r12=[r2] // restore r12 (sp)743743- mov.m ar.ssd=r0 // M2 clear ar.ssd744744- mov r22=r0 // clear r22742742+ ld8 r24=[r2],PT(AR_FPSR)-PT(AR_RNAT) // M0|1 load ar.rnat (may be garbage)743743+ ld8 r31=[r3],PT(R1)-PT(PR) // M0|1 load predicates744744+ mov f7=f0 // F clear f7745745+ ;;746746+ ld8 r20=[r2],PT(R12)-PT(AR_FPSR) // M0|1 load ar.fpsr747747+ ld8.fill r1=[r3],16 // M0|1 load r1748748+(pUStk) mov r17=1 // A749749+ ;;750750+(pUStk) st1 [r14]=r17 // M2|3751751+ ld8.fill r13=[r3],16 // M0|1752752+ mov f8=f0 // F clear f8753753+ ;;754754+ ld8.fill r12=[r2] // M0|1 restore r12 (sp)755755+ ld8.fill r15=[r3] // M0|1 restore r15756756+ mov b6=r18 // I0 restore b6745757746746- ld8.fill r15=[r3] // restore r15747747-(pUStk) st1 [r14]=r17748748- addl r3=THIS_CPU(ia64_phys_stacked_size_p8),r0749749- ;;750750-(pUStk) ld4 r17=[r3] // r17 = cpu_data->phys_stacked_size_p8751751- mov.m ar.csd=r0 // M2 clear ar.csd752752- mov b6=r18 // I0 restore b6753753- ;;754754- mov r14=r0 // clear r14755755- shr.u r18=r19,16 // I0|1 get byte size of existing "dirty" partition756756-(pKStk) br.cond.dpnt.many skip_rbs_switch758758+ addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0 // A759759+ mov f9=f0 // F clear f9760760+(pKStk) br.cond.dpnt.many skip_rbs_switch // B757761758758- mov.m ar.ccv=r0 // clear ar.ccv759759-(pNonSys) br.cond.dpnt.many dont_preserve_current_frame760760- br.cond.sptk.many rbs_switch762762+ srlz.d // M0 ensure interruption collection is off (for cover)763763+ shr.u r18=r19,16 // I0|1 get byte size of existing "dirty" partition764764+ cover // B add current frame into dirty partition & set cr.ifs765765+ ;;766766+(pUStk) ld4 r17=[r17] // M0|1 r17 = cpu_data->phys_stacked_size_p8767767+ mov r19=ar.bsp // M2 get new backing store pointer768768+ mov f10=f0 // F clear f10769769+770770+ nop.m 0771771+ movl r14=__kernel_syscall_via_epc // X772772+ ;;773773+ mov.m ar.csd=r0 // M2 clear ar.csd774774+ mov.m ar.ccv=r0 // M2 clear ar.ccv775775+ mov b7=r14 // I0 clear b7 (hint with __kernel_syscall_via_epc)776776+777777+ mov.m ar.ssd=r0 // M2 clear ar.ssd778778+ mov f11=f0 // F clear f11779779+ br.cond.sptk.many rbs_switch // B761780END(ia64_leave_syscall)762781763782#ifdef CONFIG_IA32_SUPPORT···880885 ldf.fill f7=[r2],PT(F11)-PT(F7)881886 ldf.fill f8=[r3],32882887 ;;883883- srlz.i // ensure interruption collection is off888888+ srlz.d // ensure that inter. collection is off (VHPT is don't care, since text is pinned)884889 mov ar.ccv=r15885890 ;;886891 ldf.fill f11=[r2]···940945 * NOTE: alloc, loadrs, and cover can't be predicated.941946 */942947(pNonSys) br.cond.dpnt dont_preserve_current_frame943943-944944-rbs_switch:945948 cover // add current frame into dirty partition and set cr.ifs946949 ;;947950 mov r19=ar.bsp // get new backing store pointer951951+rbs_switch:948952 sub r16=r16,r18 // krbs = old bsp - size of dirty partition949953 cmp.ne p9,p0=r0,r0 // clear p9 to skip restore of cr.ifs950954 ;;···10181024 mov loc5=010191025 mov loc6=010201026 mov loc7=010211021-(pRecurse) br.call.sptk.few b0=rse_clear_invalid10271027+(pRecurse) br.call.dptk.few b0=rse_clear_invalid10221028 ;;10231029 mov loc8=010241030 mov loc9=010251031 cmp.ne pReturn,p0=r0,in1 // if recursion count != 0, we need to do a br.ret10261032 mov loc10=010271033 mov loc11=010281028-(pReturn) br.ret.sptk.many b010341034+(pReturn) br.ret.dptk.many b010291035#endif /* !CONFIG_ITANIUM */10301036# undef pRecurse10311037# undef pReturn
+86-65
arch/ia64/kernel/fsys.S
···531531 .altrp b6532532 .body533533 /*534534- * We get here for syscalls that don't have a lightweight handler. For those, we535535- * need to bubble down into the kernel and that requires setting up a minimal536536- * pt_regs structure, and initializing the CPU state more or less as if an537537- * interruption had occurred. To make syscall-restarts work, we setup pt_regs538538- * such that cr_iip points to the second instruction in syscall_via_break.539539- * Decrementing the IP hence will restart the syscall via break and not540540- * decrementing IP will return us to the caller, as usual. Note that we preserve541541- * the value of psr.pp rather than initializing it from dcr.pp. This makes it542542- * possible to distinguish fsyscall execution from other privileged execution.534534+ * We get here for syscalls that don't have a lightweight535535+ * handler. For those, we need to bubble down into the kernel536536+ * and that requires setting up a minimal pt_regs structure,537537+ * and initializing the CPU state more or less as if an538538+ * interruption had occurred. To make syscall-restarts work,539539+ * we setup pt_regs such that cr_iip points to the second540540+ * instruction in syscall_via_break. Decrementing the IP541541+ * hence will restart the syscall via break and not542542+ * decrementing IP will return us to the caller, as usual.543543+ * Note that we preserve the value of psr.pp rather than544544+ * initializing it from dcr.pp. This makes it possible to545545+ * distinguish fsyscall execution from other privileged546546+ * execution.543547 *544548 * On entry:545545- * - normal fsyscall handler register usage, except that we also have:549549+ * - normal fsyscall handler register usage, except550550+ * that we also have:546551 * - r18: address of syscall entry point547552 * - r21: ar.fpsr548553 * - r26: ar.pfs549554 * - r27: ar.rsc550555 * - r29: psr556556+ *557557+ * We used to clear some PSR bits here but that requires slow558558+ * serialization. Fortuntely, that isn't really necessary.559559+ * The rationale is as follows: we used to clear bits560560+ * ~PSR_PRESERVED_BITS in PSR.L. Since561561+ * PSR_PRESERVED_BITS==PSR.{UP,MFL,MFH,PK,DT,PP,SP,RT,IC}, we562562+ * ended up clearing PSR.{BE,AC,I,DFL,DFH,DI,DB,SI,TB}.563563+ * However,564564+ *565565+ * PSR.BE : already is turned off in __kernel_syscall_via_epc()566566+ * PSR.AC : don't care (kernel normally turns PSR.AC on)567567+ * PSR.I : already turned off by the time fsys_bubble_down gets568568+ * invoked569569+ * PSR.DFL: always 0 (kernel never turns it on)570570+ * PSR.DFH: don't care --- kernel never touches f32-f127 on its own571571+ * initiative572572+ * PSR.DI : always 0 (kernel never turns it on)573573+ * PSR.SI : always 0 (kernel never turns it on)574574+ * PSR.DB : don't care --- kernel never enables kernel-level575575+ * breakpoints576576+ * PSR.TB : must be 0 already; if it wasn't zero on entry to577577+ * __kernel_syscall_via_epc, the branch to fsys_bubble_down578578+ * will trigger a taken branch; the taken-trap-handler then579579+ * converts the syscall into a break-based system-call.551580 */552552-# define PSR_PRESERVED_BITS (IA64_PSR_UP | IA64_PSR_MFL | IA64_PSR_MFH | IA64_PSR_PK \553553- | IA64_PSR_DT | IA64_PSR_PP | IA64_PSR_SP | IA64_PSR_RT \554554- | IA64_PSR_IC)555581 /*556556- * Reading psr.l gives us only bits 0-31, psr.it, and psr.mc. The rest we have557557- * to synthesize.582582+ * Reading psr.l gives us only bits 0-31, psr.it, and psr.mc.583583+ * The rest we have to synthesize.558584 */559559-# define PSR_ONE_BITS ((3 << IA64_PSR_CPL0_BIT) | (0x1 << IA64_PSR_RI_BIT) \585585+# define PSR_ONE_BITS ((3 << IA64_PSR_CPL0_BIT) \586586+ | (0x1 << IA64_PSR_RI_BIT) \560587 | IA64_PSR_BN | IA64_PSR_I)561588562562- invala563563- movl r8=PSR_ONE_BITS589589+ invala // M0|1590590+ movl r14=ia64_ret_from_syscall // X564591565565- mov r25=ar.unat // save ar.unat (5 cyc)566566- movl r9=PSR_PRESERVED_BITS592592+ nop.m 0593593+ movl r28=__kernel_syscall_via_break // X create cr.iip594594+ ;;567595568568- mov ar.rsc=0 // set enforced lazy mode, pl 0, little-endian, loadrs=0569569- movl r28=__kernel_syscall_via_break596596+ mov r2=r16 // A get task addr to addl-addressable register597597+ adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16 // A598598+ mov r31=pr // I0 save pr (2 cyc)570599 ;;571571- mov r23=ar.bspstore // save ar.bspstore (12 cyc)572572- mov r31=pr // save pr (2 cyc)573573- mov r20=r1 // save caller's gp in r20600600+ st1 [r16]=r0 // M2|3 clear current->thread.on_ustack flag601601+ addl r22=IA64_RBS_OFFSET,r2 // A compute base of RBS602602+ add r3=TI_FLAGS+IA64_TASK_SIZE,r2 // A574603 ;;575575- mov r2=r16 // copy current task addr to addl-addressable register576576- and r9=r9,r29577577- mov r19=b6 // save b6 (2 cyc)604604+ ld4 r3=[r3] // M0|1 r3 = current_thread_info()->flags605605+ lfetch.fault.excl.nt1 [r22] // M0|1 prefetch register backing-store606606+ nop.i 0578607 ;;579579- mov psr.l=r9 // slam the door (17 cyc to srlz.i)580580- or r29=r8,r29 // construct cr.ipsr value to save581581- addl r22=IA64_RBS_OFFSET,r2 // compute base of RBS608608+ mov ar.rsc=0 // M2 set enforced lazy mode, pl 0, LE, loadrs=0609609+ nop.m 0610610+ nop.i 0582611 ;;583583- // GAS reports a spurious RAW hazard on the read of ar.rnat because it thinks584584- // we may be reading ar.itc after writing to psr.l. Avoid that message with585585- // this directive:586586- dv_serialize_data587587- mov.m r24=ar.rnat // read ar.rnat (5 cyc lat)588588- lfetch.fault.excl.nt1 [r22]589589- adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r2612612+ mov r23=ar.bspstore // M2 (12 cyc) save ar.bspstore613613+ mov.m r24=ar.rnat // M2 (5 cyc) read ar.rnat (dual-issues!)614614+ nop.i 0615615+ ;;616616+ mov ar.bspstore=r22 // M2 (6 cyc) switch to kernel RBS617617+ movl r8=PSR_ONE_BITS // X618618+ ;;619619+ mov r25=ar.unat // M2 (5 cyc) save ar.unat620620+ mov r19=b6 // I0 save b6 (2 cyc)621621+ mov r20=r1 // A save caller's gp in r20622622+ ;;623623+ or r29=r8,r29 // A construct cr.ipsr value to save624624+ mov b6=r18 // I0 copy syscall entry-point to b6 (7 cyc)625625+ addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r2 // A compute base of memory stack590626591591- // ensure previous insn group is issued before we stall for srlz.i:627627+ mov r18=ar.bsp // M2 save (kernel) ar.bsp (12 cyc)628628+ cmp.ne pKStk,pUStk=r0,r0 // A set pKStk <- 0, pUStk <- 1629629+ br.call.sptk.many b7=ia64_syscall_setup // B592630 ;;593593- srlz.i // ensure new psr.l has been established594594- /////////////////////////////////////////////////////////////////////////////595595- ////////// from this point on, execution is not interruptible anymore596596- /////////////////////////////////////////////////////////////////////////////597597- addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r2 // compute base of memory stack598598- cmp.ne pKStk,pUStk=r0,r0 // set pKStk <- 0, pUStk <- 1631631+ mov ar.rsc=0x3 // M2 set eager mode, pl 0, LE, loadrs=0632632+ mov rp=r14 // I0 set the real return addr633633+ and r3=_TIF_SYSCALL_TRACEAUDIT,r3 // A599634 ;;600600- st1 [r16]=r0 // clear current->thread.on_ustack flag601601- mov ar.bspstore=r22 // switch to kernel RBS602602- mov b6=r18 // copy syscall entry-point to b6 (7 cyc)603603- add r3=TI_FLAGS+IA64_TASK_SIZE,r2604604- ;;605605- ld4 r3=[r3] // r2 = current_thread_info()->flags606606- mov r18=ar.bsp // save (kernel) ar.bsp (12 cyc)607607- mov ar.rsc=0x3 // set eager mode, pl 0, little-endian, loadrs=0608608- br.call.sptk.many b7=ia64_syscall_setup609609- ;;610610- ssm psr.i611611- movl r2=ia64_ret_from_syscall612612- ;;613613- mov rp=r2 // set the real return addr614614- and r3=_TIF_SYSCALL_TRACEAUDIT,r3615615- ;;616616- cmp.eq p8,p0=r3,r0635635+ ssm psr.i // M2 we're on kernel stacks now, reenable irqs636636+ cmp.eq p8,p0=r3,r0 // A637637+(p10) br.cond.spnt.many ia64_ret_from_syscall // B return if bad call-frame or r15 is a NaT617638618618-(p10) br.cond.spnt.many ia64_ret_from_syscall // p10==true means out registers are more than 8619619-(p8) br.call.sptk.many b6=b6 // ignore this return addr620620- br.cond.sptk ia64_trace_syscall639639+ nop.m 0640640+(p8) br.call.sptk.many b6=b6 // B (ignore return address)641641+ br.cond.spnt ia64_trace_syscall // B621642END(fsys_bubble_down)622643623644 .rodata
+34-30
arch/ia64/kernel/gate.S
···7272 * bundle get executed. The remaining code must be safe even if7373 * they do not get executed.7474 */7575- adds r17=-1024,r157676- mov r10=0 // default to successful syscall execution7777- epc7575+ adds r17=-1024,r15 // A7676+ mov r10=0 // A default to successful syscall execution7777+ epc // B causes split-issue7878}7979 ;;8080- rsm psr.be // note: on McKinley "rsm psr.be/srlz.d" is slightly faster than "rum psr.be"8181- LOAD_FSYSCALL_TABLE(r14)8080+ rsm psr.be | psr.i // M2 (5 cyc to srlz.d)8181+ LOAD_FSYSCALL_TABLE(r14) // X8282+ ;;8383+ mov r16=IA64_KR(CURRENT) // M2 (12 cyc)8484+ shladd r18=r17,3,r14 // A8585+ mov r19=NR_syscalls-1 // A8686+ ;;8787+ lfetch [r18] // M0|18888+ mov r29=psr // M2 (12 cyc)8989+ // If r17 is a NaT, p6 will be zero9090+ cmp.geu p6,p7=r19,r17 // A (sysnr > 0 && sysnr < 1024+NR_syscalls)?9191+ ;;9292+ mov r21=ar.fpsr // M2 (12 cyc)9393+ tnat.nz p10,p9=r15 // I09494+ mov.i r26=ar.pfs // I0 (would stall anyhow due to srlz.d...)9595+ ;;9696+ srlz.d // M0 (forces split-issue) ensure PSR.BE==09797+(p6) ld8 r18=[r18] // M0|19898+ nop.i 09999+ ;;100100+ nop.m 0101101+(p6) tbit.z.unc p8,p0=r18,0 // I0 (dual-issues with "mov b7=r18"!)102102+ nop.i 0103103+ ;;104104+(p8) ssm psr.i105105+(p6) mov b7=r18 // I0106106+(p8) br.dptk.many b7 // B821078383- mov r16=IA64_KR(CURRENT) // 12 cycle read latency8484- tnat.nz p10,p9=r158585- mov r19=NR_syscalls-18686- ;;8787- shladd r18=r17,3,r148888-8989- srlz.d9090- cmp.ne p8,p0=r0,r0 // p8 <- FALSE9191- /* Note: if r17 is a NaT, p6 will be set to zero. */9292- cmp.geu p6,p7=r19,r17 // (syscall > 0 && syscall < 1024+NR_syscalls)?9393- ;;9494-(p6) ld8 r18=[r18]9595- mov r21=ar.fpsr9696- add r14=-8,r14 // r14 <- addr of fsys_bubble_down entry9797- ;;9898-(p6) mov b7=r189999-(p6) tbit.z p8,p0=r18,0100100-(p8) br.dptk.many b7101101-102102-(p6) rsm psr.i103103- mov r27=ar.rsc104104- mov r26=ar.pfs105105- ;;106106- mov r29=psr // read psr (12 cyc load latency)108108+ mov r27=ar.rsc // M2 (12 cyc)107109/*108110 * brl.cond doesn't work as intended because the linker would convert this branch109111 * into a branch to a PLT. Perhaps there will be a way to avoid this with some···113111 * instead.114112 */115113#ifdef CONFIG_ITANIUM114114+(p6) add r14=-8,r14 // r14 <- addr of fsys_bubble_down entry115115+ ;;116116(p6) ld8 r14=[r14] // r14 <- fsys_bubble_down117117 ;;118118(p6) mov b7=r14···122118#else123119 BRL_COND_FSYS_BUBBLE_DOWN(p6)124120#endif125125-121121+ ssm psr.i126122 mov r10=-1127123(p10) mov r8=EINVAL128124(p9) mov r8=ENOSYS
-3
arch/ia64/kernel/ia64_ksyms.c
···5858EXPORT_SYMBOL(__strncpy_from_user);5959EXPORT_SYMBOL(__strnlen_user);60606161-#include <asm/unistd.h>6262-EXPORT_SYMBOL(__ia64_syscall);6363-6461/* from arch/ia64/lib */6562extern void __divsi3(void);6663extern void __udivsi3(void);
+129-71
arch/ia64/kernel/ivt.S
···11/*22 * arch/ia64/kernel/ivt.S33 *44- * Copyright (C) 1998-2001, 2003 Hewlett-Packard Co44+ * Copyright (C) 1998-2001, 2003, 2005 Hewlett-Packard Co55 * Stephane Eranian <eranian@hpl.hp.com>66 * David Mosberger <davidm@hpl.hp.com>77 * Copyright (C) 2000, 2002-2003 Intel Co···692692 * to prevent leaking bits from kernel to user level.693693 */694694 DBG_FAULT(11)695695- mov r16=IA64_KR(CURRENT) // r16 = current task; 12 cycle read lat.696696- mov r17=cr.iim697697- mov r18=__IA64_BREAK_SYSCALL698698- mov r21=ar.fpsr699699- mov r29=cr.ipsr700700- mov r19=b6701701- mov r25=ar.unat702702- mov r27=ar.rsc703703- mov r26=ar.pfs704704- mov r28=cr.iip705705- mov r31=pr // prepare to save predicates706706- mov r20=r1695695+ mov.m r16=IA64_KR(CURRENT) // M2 r16 <- current task (12 cyc)696696+ mov r29=cr.ipsr // M2 (12 cyc)697697+ mov r31=pr // I0 (2 cyc)698698+699699+ mov r17=cr.iim // M2 (2 cyc)700700+ mov.m r27=ar.rsc // M2 (12 cyc)701701+ mov r18=__IA64_BREAK_SYSCALL // A702702+703703+ mov.m ar.rsc=0 // M2704704+ mov.m r21=ar.fpsr // M2 (12 cyc)705705+ mov r19=b6 // I0 (2 cyc)707706 ;;707707+ mov.m r23=ar.bspstore // M2 (12 cyc)708708+ mov.m r24=ar.rnat // M2 (5 cyc)709709+ mov.i r26=ar.pfs // I0 (2 cyc)710710+711711+ invala // M0|1712712+ nop.m 0 // M713713+ mov r20=r1 // A save r1714714+715715+ nop.m 0716716+ movl r30=sys_call_table // X717717+718718+ mov r28=cr.iip // M2 (2 cyc)719719+ cmp.eq p0,p7=r18,r17 // I0 is this a system call?720720+(p7) br.cond.spnt non_syscall // B no ->721721+ //722722+ // From this point on, we are definitely on the syscall-path723723+ // and we can use (non-banked) scratch registers.724724+ //725725+///////////////////////////////////////////////////////////////////////726726+ mov r1=r16 // A move task-pointer to "addl"-addressable reg727727+ mov r2=r16 // A setup r2 for ia64_syscall_setup728728+ add r9=TI_FLAGS+IA64_TASK_SIZE,r16 // A r9 = ¤t_thread_info()->flags729729+708730 adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16709709- cmp.eq p0,p7=r18,r17 // is this a system call? (p7 <- false, if so)710710-(p7) br.cond.spnt non_syscall711711- ;;712712- ld1 r17=[r16] // load current->thread.on_ustack flag713713- st1 [r16]=r0 // clear current->thread.on_ustack flag714714- add r1=-IA64_TASK_THREAD_ON_USTACK_OFFSET,r16 // set r1 for MINSTATE_START_SAVE_MIN_VIRT715715- ;;716716- invala717717-718718- /* adjust return address so we skip over the break instruction: */719719-720720- extr.u r8=r29,41,2 // extract ei field from cr.ipsr721721- ;;722722- cmp.eq p6,p7=2,r8 // isr.ei==2?723723- mov r2=r1 // setup r2 for ia64_syscall_setup724724- ;;725725-(p6) mov r8=0 // clear ei to 0726726-(p6) adds r28=16,r28 // switch cr.iip to next bundle cr.ipsr.ei wrapped727727-(p7) adds r8=1,r8 // increment ei to next slot728728- ;;729729- cmp.eq pKStk,pUStk=r0,r17 // are we in kernel mode already?730730- dep r29=r8,r29,41,2 // insert new ei into cr.ipsr731731- ;;732732-733733- // switch from user to kernel RBS:734734- MINSTATE_START_SAVE_MIN_VIRT735735- br.call.sptk.many b7=ia64_syscall_setup736736- ;;737737- MINSTATE_END_SAVE_MIN_VIRT // switch to bank 1738738- ssm psr.ic | PSR_DEFAULT_BITS739739- ;;740740- srlz.i // guarantee that interruption collection is on731731+ adds r15=-1024,r15 // A subtract 1024 from syscall number741732 mov r3=NR_syscalls - 1742733 ;;743743-(p15) ssm psr.i // restore psr.i744744- // p10==true means out registers are more than 8 or r15's Nat is true745745-(p10) br.cond.spnt.many ia64_ret_from_syscall746746- ;;747747- movl r16=sys_call_table734734+ ld1.bias r17=[r16] // M0|1 r17 = current->thread.on_ustack flag735735+ ld4 r9=[r9] // M0|1 r9 = current_thread_info()->flags736736+ extr.u r8=r29,41,2 // I0 extract ei field from cr.ipsr748737749749- adds r15=-1024,r15 // r15 contains the syscall number---subtract 1024750750- movl r2=ia64_ret_from_syscall738738+ shladd r30=r15,3,r30 // A r30 = sys_call_table + 8*(syscall-1024)739739+ addl r22=IA64_RBS_OFFSET,r1 // A compute base of RBS740740+ cmp.leu p6,p7=r15,r3 // A syscall number in range?751741 ;;752752- shladd r20=r15,3,r16 // r20 = sys_call_table + 8*(syscall-1024)753753- cmp.leu p6,p7=r15,r3 // (syscall > 0 && syscall < 1024 + NR_syscalls) ?754754- mov rp=r2 // set the real return addr755755- ;;756756-(p6) ld8 r20=[r20] // load address of syscall entry point757757-(p7) movl r20=sys_ni_syscall758742759759- add r2=TI_FLAGS+IA64_TASK_SIZE,r13743743+ lfetch.fault.excl.nt1 [r22] // M0|1 prefetch RBS744744+(p6) ld8 r30=[r30] // M0|1 load address of syscall entry point745745+ tnat.nz.or p7,p0=r15 // I0 is syscall nr a NaT?746746+747747+ mov.m ar.bspstore=r22 // M2 switch to kernel RBS748748+ cmp.eq p8,p9=2,r8 // A isr.ei==2?760749 ;;761761- ld4 r2=[r2] // r2 = current_thread_info()->flags750750+751751+(p8) mov r8=0 // A clear ei to 0752752+(p7) movl r30=sys_ni_syscall // X753753+754754+(p8) adds r28=16,r28 // A switch cr.iip to next bundle755755+(p9) adds r8=1,r8 // A increment ei to next slot756756+ nop.i 0762757 ;;763763- and r2=_TIF_SYSCALL_TRACEAUDIT,r2 // mask trace or audit758758+759759+ mov.m r25=ar.unat // M2 (5 cyc)760760+ dep r29=r8,r29,41,2 // I0 insert new ei into cr.ipsr761761+ adds r15=1024,r15 // A restore original syscall number762762+ //763763+ // If any of the above loads miss in L1D, we'll stall here until764764+ // the data arrives.765765+ //766766+///////////////////////////////////////////////////////////////////////767767+ st1 [r16]=r0 // M2|3 clear current->thread.on_ustack flag768768+ mov b6=r30 // I0 setup syscall handler branch reg early769769+ cmp.eq pKStk,pUStk=r0,r17 // A were we on kernel stacks already?770770+771771+ and r9=_TIF_SYSCALL_TRACEAUDIT,r9 // A mask trace or audit772772+ mov r18=ar.bsp // M2 (12 cyc)773773+(pKStk) br.cond.spnt .break_fixup // B we're already in kernel-mode -- fix up RBS764774 ;;765765- cmp.eq p8,p0=r2,r0766766- mov b6=r20775775+.back_from_break_fixup:776776+(pUStk) addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r1 // A compute base of memory stack777777+ cmp.eq p14,p0=r9,r0 // A are syscalls being traced/audited?778778+ br.call.sptk.many b7=ia64_syscall_setup // B779779+1:780780+ mov ar.rsc=0x3 // M2 set eager mode, pl 0, LE, loadrs=0781781+ nop 0782782+ bsw.1 // B (6 cyc) regs are saved, switch to bank 1767783 ;;768768-(p8) br.call.sptk.many b6=b6 // ignore this return addr769769- br.cond.sptk ia64_trace_syscall784784+785785+ ssm psr.ic | PSR_DEFAULT_BITS // M2 now it's safe to re-enable intr.-collection786786+ movl r3=ia64_ret_from_syscall // X787787+ ;;788788+789789+ srlz.i // M0 ensure interruption collection is on790790+ mov rp=r3 // I0 set the real return addr791791+(p10) br.cond.spnt.many ia64_ret_from_syscall // B return if bad call-frame or r15 is a NaT792792+793793+(p15) ssm psr.i // M2 restore psr.i794794+(p14) br.call.sptk.many b6=b6 // B invoke syscall-handker (ignore return addr)795795+ br.cond.spnt.many ia64_trace_syscall // B do syscall-tracing thingamagic770796 // NOT REACHED797797+///////////////////////////////////////////////////////////////////////798798+ // On entry, we optimistically assumed that we're coming from user-space.799799+ // For the rare cases where a system-call is done from within the kernel,800800+ // we fix things up at this point:801801+.break_fixup:802802+ add r1=-IA64_PT_REGS_SIZE,sp // A allocate space for pt_regs structure803803+ mov ar.rnat=r24 // M2 restore kernel's AR.RNAT804804+ ;;805805+ mov ar.bspstore=r23 // M2 restore kernel's AR.BSPSTORE806806+ br.cond.sptk .back_from_break_fixup771807END(break_fault)772808773809 .org ia64_ivt+0x3000···878842 * - r31: saved pr879843 * - b0: original contents (to be saved)880844 * On exit:881881- * - executing on bank 1 registers882882- * - psr.ic enabled, interrupts restored883845 * - p10: TRUE if syscall is invoked with more than 8 out884846 * registers or r15's Nat is true885847 * - r1: kernel's gp···885851 * - r8: -EINVAL if p10 is true886852 * - r12: points to kernel stack887853 * - r13: points to current task854854+ * - r14: preserved (same as on entry)855855+ * - p13: preserved888856 * - p15: TRUE if interrupts need to be re-enabled889857 * - ar.fpsr: set to kernel settings858858+ * - b6: preserved (same as on entry)890859 */891860GLOBAL_ENTRY(ia64_syscall_setup)892861#if PT(B6) != 0···957920(p13) mov in5=-1958921 ;;959922 st8 [r16]=r21,PT(R8)-PT(AR_FPSR) // save ar.fpsr960960- tnat.nz p14,p0=in6923923+ tnat.nz p13,p0=in6961924 cmp.lt p10,p9=r11,r8 // frame size can't be more than local+8962925 ;;963963- stf8 [r16]=f1 // ensure pt_regs.r8 != 0 (see handle_syscall_error)926926+ mov r8=1964927(p9) tnat.nz p10,p0=r15965928 adds r12=-16,r1 // switch to kernel memory stack (with 16 bytes of scratch)966929···971934 mov r13=r2 // establish `current'972935 movl r1=__gp // establish kernel global pointer973936 ;;974974-(p14) mov in6=-1937937+ st8 [r16]=r8 // ensure pt_regs.r8 != 0 (see handle_syscall_error)938938+(p13) mov in6=-1975939(p8) mov in7=-1976976- nop.i 0977940978941 cmp.eq pSys,pNonSys=r0,r0 // set pSys=1, pNonSys=0979942 movl r17=FPSR_DEFAULT···10441007 FAULT(17)1045100810461009ENTRY(non_syscall)10101010+ mov ar.rsc=r27 // restore ar.rsc before SAVE_MIN_WITH_COVER10111011+ ;;10471012 SAVE_MIN_WITH_COVER1048101310491014 // There is no particular reason for this code to be here, other than that···12431204// 0x5600 Entry 26 (size 16 bundles) Nat Consumption (11,23,37,50)12441205ENTRY(nat_consumption)12451206 DBG_FAULT(26)12071207+12081208+ mov r16=cr.ipsr12091209+ mov r17=cr.isr12101210+ mov r31=pr // save PR12111211+ ;;12121212+ and r18=0xf,r17 // r18 = cr.ipsr.code{3:0}12131213+ tbit.z p6,p0=r17,IA64_ISR_NA_BIT12141214+ ;;12151215+ cmp.ne.or p6,p0=IA64_ISR_CODE_LFETCH,r1812161216+ dep r16=-1,r16,IA64_PSR_ED_BIT,112171217+(p6) br.cond.spnt 1f // branch if (cr.ispr.na == 0 || cr.ipsr.code{3:0} != LFETCH)12181218+ ;;12191219+ mov cr.ipsr=r16 // set cr.ipsr.na12201220+ mov pr=r31,-112211221+ ;;12221222+ rfi12231223+12241224+1: mov pr=r31,-112251225+ ;;12461226 FAULT(26)12471227END(nat_consumption)12481228
+21-1
arch/ia64/kernel/ptrace.c
···725725 break;726726 }727727728728+ /*729729+ * Note: at the time of this call, the target task is blocked730730+ * in notify_resume_user() and by clearling PRED_LEAVE_SYSCALL731731+ * (aka, "pLvSys") we redirect execution from732732+ * .work_pending_syscall_end to .work_processed_kernel.733733+ */728734 unw_get_pr(&prev_info, &pr);729729- pr &= ~(1UL << PRED_SYSCALL);735735+ pr &= ~((1UL << PRED_SYSCALL) | (1UL << PRED_LEAVE_SYSCALL));730736 pr |= (1UL << PRED_NON_SYSCALL);731737 unw_set_pr(&prev_info, pr);732738733739 pt->cr_ifs = (1UL << 63) | cfm;740740+ /*741741+ * Clear the memory that is NOT written on syscall-entry to742742+ * ensure we do not leak kernel-state to user when execution743743+ * resumes.744744+ */745745+ pt->r2 = 0;746746+ pt->r3 = 0;747747+ pt->r14 = 0;748748+ memset(&pt->r16, 0, 16*8); /* clear r16-r31 */749749+ memset(&pt->f6, 0, 6*16); /* clear f6-f11 */750750+ pt->b7 = 0;751751+ pt->ar_ccv = 0;752752+ pt->ar_csd = 0;753753+ pt->ar_ssd = 0;734754}735755736756static int
+8-4
arch/ia64/kernel/setup.c
···7272unsigned long ia64_cycles_per_usec;7373struct ia64_boot_param *ia64_boot_param;7474struct screen_info screen_info;7575+unsigned long vga_console_iobase;7676+unsigned long vga_console_membase;75777678unsigned long ia64_max_cacheline_size;7779unsigned long ia64_iobase; /* virtual address for I/O accesses */···275273static inline int __init276274early_console_setup (char *cmdline)277275{276276+ int earlycons = 0;277277+278278#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE279279 {280280 extern int sn_serial_console_early_setup(void);281281 if (!sn_serial_console_early_setup())282282- return 0;282282+ earlycons++;283283 }284284#endif285285#ifdef CONFIG_EFI_PCDP286286 if (!efi_setup_pcdp_console(cmdline))287287- return 0;287287+ earlycons++;288288#endif289289#ifdef CONFIG_SERIAL_8250_CONSOLE290290 if (!early_serial_console_init(cmdline))291291- return 0;291291+ earlycons++;292292#endif293293294294- return -1;294294+ return (earlycons) ? 0 : -1;295295}296296297297static inline void
+3
arch/ia64/kernel/smp.c
···231231void232232smp_flush_tlb_mm (struct mm_struct *mm)233233{234234+ preempt_disable();234235 /* this happens for the common case of a single-threaded fork(): */235236 if (likely(mm == current->active_mm && atomic_read(&mm->mm_users) == 1))236237 {237238 local_finish_flush_tlb_mm(mm);239239+ preempt_enable();238240 return;239241 }240242243243+ preempt_enable();241244 /*242245 * We could optimize this further by using mm->cpu_vm_mask to track which CPUs243246 * have been running in the address space. It's not clear that this is worth the
+1-1
arch/ia64/sn/kernel/io_init.c
···384384 extern void register_sn_procfs(void);385385#endif386386387387- if (!ia64_platform_is("sn2") || IS_RUNNING_ON_SIMULATOR())387387+ if (!ia64_platform_is("sn2") || IS_RUNNING_ON_FAKE_PROM())388388 return 0;389389390390 /*
+6
arch/ia64/sn/kernel/iomv.c
···99#include <linux/module.h>1010#include <asm/io.h>1111#include <asm/delay.h>1212+#include <asm/vga.h>1213#include <asm/sn/nodepda.h>1314#include <asm/sn/simulator.h>1415#include <asm/sn/pda.h>1516#include <asm/sn/sn_cpuid.h>1617#include <asm/sn/shub_mmr.h>1818+1919+#define IS_LEGACY_VGA_IOPORT(p) \2020+ (((p) >= 0x3b0 && (p) <= 0x3bb) || ((p) >= 0x3c0 && (p) <= 0x3df))17211822/**1923 * sn_io_addr - convert an in/out port to an i/o address···3026void *sn_io_addr(unsigned long port)3127{3228 if (!IS_RUNNING_ON_SIMULATOR()) {2929+ if (IS_LEGACY_VGA_IOPORT(port))3030+ port += vga_console_iobase;3331 /* On sn2, legacy I/O ports don't point at anything */3432 if (port < (64 * 1024))3533 return NULL;
+30-15
arch/ia64/sn/kernel/setup.c
···3636#include <asm/machvec.h>3737#include <asm/system.h>3838#include <asm/processor.h>3939+#include <asm/vga.h>3940#include <asm/sn/arch.h>4041#include <asm/sn/addrs.h>4142#include <asm/sn/pda.h>···9695EXPORT_SYMBOL(sn_coherency_id);9796u8 sn_region_size;9897EXPORT_SYMBOL(sn_region_size);9898+int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */9999100100short physical_node_map[MAX_PHYSNODE_ID];101101···275273276274 ia64_sn_plat_set_error_handling_features();277275278278- /*279279- * If the generic code has enabled vga console support - lets280280- * get rid of it again. This is a kludge for the fact that ACPI281281- * currtently has no way of informing us if legacy VGA is available282282- * or not.283283- */284276#if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE)285285- if (conswitchp == &vga_con) {277277+ /*278278+ * If there was a primary vga adapter identified through the279279+ * EFI PCDP table, make it the preferred console. Otherwise280280+ * zero out conswitchp.281281+ */282282+283283+ if (vga_console_membase) {284284+ /* usable vga ... make tty0 the preferred default console */285285+ add_preferred_console("tty", 0, NULL);286286+ } else {286287 printk(KERN_DEBUG "SGI: Disabling VGA console\n");287288#ifdef CONFIG_DUMMY_CONSOLE288289 conswitchp = &dummy_con;···355350356351 ia64_mark_idle = &snidle;357352358358- /* 353353+ /*359354 * For the bootcpu, we do this here. All other cpus will make the360355 * call as part of cpu_init in slave cpu initialization.361356 */···402397 nodepdaindr[cnode] =403398 alloc_bootmem_node(NODE_DATA(cnode), sizeof(nodepda_t));404399 memset(nodepdaindr[cnode], 0, sizeof(nodepda_t));405405- memset(nodepdaindr[cnode]->phys_cpuid, -1, 400400+ memset(nodepdaindr[cnode]->phys_cpuid, -1,406401 sizeof(nodepdaindr[cnode]->phys_cpuid));407402 }408403···432427 }433428434429 /*435435- * Initialize the per node hubdev. This includes IO Nodes and 430430+ * Initialize the per node hubdev. This includes IO Nodes and436431 * headless/memless nodes.437432 */438433 for (cnode = 0; cnode < numionodes; cnode++) {···459454 int cnode;460455 int i;461456 static int wars_have_been_checked;457457+458458+ if (smp_processor_id() == 0 && IS_MEDUSA()) {459459+ if (ia64_sn_is_fake_prom())460460+ sn_prom_type = 2;461461+ else462462+ sn_prom_type = 1;463463+ printk("Running on medusa with %s PROM\n", (sn_prom_type == 1) ? "real" : "fake");464464+ }462465463466 memset(pda, 0, sizeof(pda));464467 if (ia64_sn_get_sn_info(0, &sn_hub_info->shub2, &sn_hub_info->nasid_bitmask, &sn_hub_info->nasid_shift,···533520 */534521 {535522 u64 pio1[] = {SH1_PIO_WRITE_STATUS_0, 0, SH1_PIO_WRITE_STATUS_1, 0};536536- u64 pio2[] = {SH2_PIO_WRITE_STATUS_0, SH2_PIO_WRITE_STATUS_1, 523523+ u64 pio2[] = {SH2_PIO_WRITE_STATUS_0, SH2_PIO_WRITE_STATUS_1,537524 SH2_PIO_WRITE_STATUS_2, SH2_PIO_WRITE_STATUS_3};538525 u64 *pio;539526 pio = is_shub1() ? pio1 : pio2;···565552 int nasid = 0;566553 lboard_t *brd;567554555555+ /* fakeprom does not support klgraph */556556+ if (IS_RUNNING_ON_FAKE_PROM())557557+ return;558558+568559 /* Setup ionodes with memory */569560 for (nasid = 0; nasid < MAX_PHYSNODE_ID; nasid += 2) {570561 char *klgraph_header;···580563 cnodeid = -1;581564 klgraph_header = __va(ia64_sn_get_klconfig_addr(nasid));582565 if (!klgraph_header) {583583- if (IS_RUNNING_ON_SIMULATOR())584584- continue;585566 BUG(); /* All nodes must have klconfig tables! */586567 }587568 cnodeid = nasid_to_cnodeid(nasid);···645630nasid_slice_to_cpuid(int nasid, int slice)646631{647632 long cpu;648648-649649- for (cpu=0; cpu < NR_CPUS; cpu++) 633633+634634+ for (cpu=0; cpu < NR_CPUS; cpu++)650635 if (cpuid_to_nasid(cpu) == nasid &&651636 cpuid_to_slice(cpu) == slice)652637 return cpu;
+1
arch/ia64/sn/kernel/sn2/ptc_deadlock.S
···66 * Copyright (C) 2000-2004 Silicon Graphics, Inc. All rights reserved.77 */8899+#include <asm/types.h>910#include <asm/sn/shub_mmr.h>10111112#define DEADLOCKBIT SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_SHFT
···336336 if (!ct_addr)337337 return 0;338338339339- bus_addr = (dma_addr_t) (ct_addr & 0xffffffffffff);339339+ bus_addr = (dma_addr_t) (ct_addr & 0xffffffffffffUL);340340 node_upper = ct_addr >> 48;341341342342 if (node_upper > 64) {···464464 * For mappings created using the direct modes (64 or 48) there are no465465 * resources to release.466466 */467467-void467467+static void468468tioca_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir)469469{470470 int i, entry;···514514 * The mapping mode used is based on the devices dma_mask. As a last resort515515 * use the GART mapped mode.516516 */517517-uint64_t517517+static uint64_t518518tioca_dma_map(struct pci_dev *pdev, uint64_t paddr, size_t byte_count)519519{520520 uint64_t mapaddr;···580580 * On successful setup, returns the kernel version of tioca_common back to581581 * the caller.582582 */583583-void *583583+static void *584584tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft)585585{586586 struct tioca_common *tioca_common;
+21-3
drivers/firmware/pcdp.c
···1616#include <linux/console.h>1717#include <linux/efi.h>1818#include <linux/serial.h>1919+#include <asm/vga.h>1920#include "pcdp.h"20212122static int __init···4140}42414342static int __init4444-setup_vga_console(struct pcdp_vga *vga)4343+setup_vga_console(struct pcdp_device *dev)4544{4645#if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE)4747- if (efi_mem_type(0xA0000) == EFI_CONVENTIONAL_MEMORY) {4646+ u8 *if_ptr;4747+4848+ if_ptr = ((u8 *)dev + sizeof(struct pcdp_device));4949+ if (if_ptr[0] == PCDP_IF_PCI) {5050+ struct pcdp_if_pci if_pci;5151+5252+ /* struct copy since ifptr might not be correctly aligned */5353+5454+ memcpy(&if_pci, if_ptr, sizeof(if_pci));5555+5656+ if (if_pci.trans & PCDP_PCI_TRANS_IOPORT)5757+ vga_console_iobase = if_pci.ioport_tra;5858+5959+ if (if_pci.trans & PCDP_PCI_TRANS_MMIO)6060+ vga_console_membase = if_pci.mmio_tra;6161+ }6262+6363+ if (efi_mem_type(vga_console_membase + 0xA0000) == EFI_CONVENTIONAL_MEMORY) {4864 printk(KERN_ERR "PCDP: VGA selected, but frame buffer is not MMIO!\n");4965 return -ENODEV;5066 }···11395 dev = (struct pcdp_device *) ((u8 *) dev + dev->length)) {11496 if (dev->flags & PCDP_PRIMARY_CONSOLE) {11597 if (dev->type == PCDP_CONSOLE_VGA) {116116- return setup_vga_console((struct pcdp_vga *) dev);9898+ return setup_vga_console(dev);11799 }118100 }119101 }
+29-4
drivers/firmware/pcdp.h
···5252 u32 clock_rate;5353 u8 pci_prog_intfc;5454 u8 flags;5555-};5555+} __attribute__((packed));5656+5757+#define PCDP_IF_PCI 15858+5959+/* pcdp_if_pci.trans */6060+#define PCDP_PCI_TRANS_IOPORT 0x026161+#define PCDP_PCI_TRANS_MMIO 0x016262+6363+struct pcdp_if_pci {6464+ u8 interconnect;6565+ u8 reserved;6666+ u16 length;6767+ u8 segment;6868+ u8 bus;6969+ u8 dev;7070+ u8 fun;7171+ u16 dev_id;7272+ u16 vendor_id;7373+ u32 acpi_interrupt;7474+ u64 mmio_tra;7575+ u64 ioport_tra;7676+ u8 flags;7777+ u8 trans;7878+} __attribute__((packed));56795780struct pcdp_vga {5881 u8 count; /* address space descriptors */5959-};8282+} __attribute__((packed));60836184/* pcdp_device.flags */6285#define PCDP_PRIMARY_CONSOLE 1···8966 u8 flags;9067 u16 length;9168 u16 efi_index;9292-};6969+ /* next data is pcdp_if_pci or pcdp_if_acpi (not yet supported) */7070+ /* next data is device specific type (currently only pcdp_vga) */7171+} __attribute__((packed));93729473struct pcdp {9574 u8 signature[4];···10681 u32 num_uarts;10782 struct pcdp_uart uart[0]; /* actual size is num_uarts */10883 /* remainder of table is pcdp_device structures */109109-};8484+} __attribute__((packed));
+3
include/asm-ia64/mmu_context.h
···132132 ia64_srlz_i(); /* srlz.i implies srlz.d */133133}134134135135+/*136136+ * Must be called with preemption off137137+ */135138static inline void136139activate_context (struct mm_struct *mm)137140{
+12-5
include/asm-ia64/sn/addrs.h
···216216#define TIO_SWIN_WIDGETNUM(x) (((x) >> TIO_SWIN_SIZE_BITS) & TIO_SWIN_WIDGET_MASK)217217218218219219+#define TIO_IOSPACE_ADDR(n,x) \220220+ /* Move in the Chiplet ID for TIO Local Block MMR */ \221221+ (REMOTE_ADDR(n,x) | 1UL << (NASID_SHIFT - 2))222222+219223/*220224 * The following macros produce the correct base virtual address for221225 * the hub registers. The REMOTE_HUB_* macro produce···237233#define REMOTE_HUB_ADDR(n,x) \238234 ((n & 1) ? \239235 /* TIO: */ \240240- ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x))) \241241- : /* SHUB: */ \242242- (((x) & BWIN_TOP) ? ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x)))\236236+ (is_shub2() ? \237237+ /* TIO on Shub2 */ \238238+ (volatile u64 *)(TIO_IOSPACE_ADDR(n,x)) \239239+ : /* TIO on shub1 */ \240240+ (volatile u64 *)(GLOBAL_MMR_ADDR(n,x))) \241241+ \242242+ : /* SHUB1 and SHUB2 MMRs: */ \243243+ (((x) & BWIN_TOP) ? ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x))) \243244 : ((volatile u64 *)(NODE_SWIN_BASE(n,1) + 0x800000 + (x)))))244244-245245-246245247246#define HUB_L(x) (*((volatile typeof(*x) *)x))248247#define HUB_S(x,d) (*((volatile typeof(*x) *)x) = (d))