Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

+823 -512
+2 -2
arch/ia64/configs/sn2_defconfig
··· 99 99 # Firmware Drivers 100 100 # 101 101 CONFIG_EFI_VARS=y 102 - # CONFIG_EFI_PCDP is not set 102 + CONFIG_EFI_PCDP=y 103 103 CONFIG_BINFMT_ELF=y 104 104 # CONFIG_BINFMT_MISC is not set 105 105 ··· 650 650 # 651 651 # Console display driver support 652 652 # 653 - # CONFIG_VGA_CONSOLE is not set 653 + CONFIG_VGA_CONSOLE=y 654 654 CONFIG_DUMMY_CONSOLE=y 655 655 656 656 #
+31 -8
arch/ia64/configs/tiger_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.12-20050621 4 - # Tue Jun 21 14:03:24 2005 3 + # Linux kernel version: 2.6.13-rc1-20050629 4 + # Wed Jun 29 15:28:12 2005 5 5 # 6 6 7 7 # ··· 80 80 # CONFIG_IA64_PAGE_SIZE_8KB is not set 81 81 CONFIG_IA64_PAGE_SIZE_16KB=y 82 82 # CONFIG_IA64_PAGE_SIZE_64KB is not set 83 + # CONFIG_HZ_100 is not set 84 + CONFIG_HZ_250=y 85 + # CONFIG_HZ_1000 is not set 86 + CONFIG_HZ=250 83 87 CONFIG_IA64_L1_CACHE_SHIFT=7 84 88 # CONFIG_NUMA is not set 85 89 CONFIG_VIRTUAL_MEM_MAP=y 86 90 CONFIG_HOLES_IN_ZONE=y 87 91 CONFIG_IA64_CYCLONE=y 88 92 CONFIG_IOSAPIC=y 93 + # CONFIG_IA64_SGI_SN_XP is not set 89 94 CONFIG_FORCE_MAX_ZONEORDER=18 90 95 CONFIG_SMP=y 91 96 CONFIG_NR_CPUS=4 92 97 CONFIG_HOTPLUG_CPU=y 93 98 # CONFIG_SCHED_SMT is not set 94 99 # CONFIG_PREEMPT is not set 100 + CONFIG_SELECT_MEMORY_MODEL=y 101 + CONFIG_FLATMEM_MANUAL=y 102 + # CONFIG_DISCONTIGMEM_MANUAL is not set 103 + # CONFIG_SPARSEMEM_MANUAL is not set 104 + CONFIG_FLATMEM=y 105 + CONFIG_FLAT_NODE_MEM_MAP=y 95 106 CONFIG_HAVE_DEC_LOCK=y 96 107 CONFIG_IA32_SUPPORT=y 97 108 CONFIG_COMPAT=y ··· 268 257 # CONFIG_BLK_DEV_HPT366 is not set 269 258 # CONFIG_BLK_DEV_SC1200 is not set 270 259 CONFIG_BLK_DEV_PIIX=y 260 + # CONFIG_BLK_DEV_IT821X is not set 271 261 # CONFIG_BLK_DEV_NS87415 is not set 272 262 # CONFIG_BLK_DEV_PDC202XX_OLD is not set 273 263 # CONFIG_BLK_DEV_PDC202XX_NEW is not set ··· 407 395 CONFIG_INET=y 408 396 CONFIG_IP_MULTICAST=y 409 397 # CONFIG_IP_ADVANCED_ROUTER is not set 398 + CONFIG_IP_FIB_HASH=y 410 399 # CONFIG_IP_PNP is not set 411 400 # CONFIG_NET_IPIP is not set 412 401 # CONFIG_NET_IPGRE is not set ··· 420 407 # CONFIG_INET_TUNNEL is not set 421 408 CONFIG_IP_TCPDIAG=y 422 409 # CONFIG_IP_TCPDIAG_IPV6 is not set 410 + # CONFIG_TCP_CONG_ADVANCED is not set 411 + CONFIG_TCP_CONG_BIC=y 423 412 # CONFIG_IPV6 is not set 424 413 # CONFIG_NETFILTER is not set 425 414 ··· 613 598 # CONFIG_GAMEPORT_NS558 is not set 614 599 # CONFIG_GAMEPORT_L4 is not set 615 600 # CONFIG_GAMEPORT_EMU10K1 is not set 616 - # CONFIG_GAMEPORT_VORTEX is not set 617 601 # CONFIG_GAMEPORT_FM801 is not set 618 - # CONFIG_GAMEPORT_CS461X is not set 619 602 620 603 # 621 604 # Character devices ··· 642 629 CONFIG_SERIAL_8250_EXTENDED=y 643 630 CONFIG_SERIAL_8250_SHARE_IRQ=y 644 631 # CONFIG_SERIAL_8250_DETECT_IRQ is not set 645 - # CONFIG_SERIAL_8250_MULTIPORT is not set 646 632 # CONFIG_SERIAL_8250_RSA is not set 647 633 648 634 # ··· 755 743 CONFIG_USB_EHCI_HCD=m 756 744 # CONFIG_USB_EHCI_SPLIT_ISO is not set 757 745 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set 746 + # CONFIG_USB_ISP116X_HCD is not set 758 747 CONFIG_USB_OHCI_HCD=m 759 748 # CONFIG_USB_OHCI_BIG_ENDIAN is not set 760 749 CONFIG_USB_OHCI_LITTLE_ENDIAN=y ··· 792 779 # CONFIG_USB_HIDDEV is not set 793 780 # CONFIG_USB_AIPTEK is not set 794 781 # CONFIG_USB_WACOM is not set 782 + # CONFIG_USB_ACECAD is not set 795 783 # CONFIG_USB_KBTAB is not set 796 784 # CONFIG_USB_POWERMATE is not set 797 785 # CONFIG_USB_MTOUCH is not set 786 + # CONFIG_USB_ITMTOUCH is not set 798 787 # CONFIG_USB_EGALAX is not set 799 788 # CONFIG_USB_XPAD is not set 800 789 # CONFIG_USB_ATI_REMOTE is not set ··· 853 838 # CONFIG_USB_TEST is not set 854 839 855 840 # 856 - # USB ATM/DSL drivers 841 + # USB DSL modem support 857 842 # 858 843 859 844 # ··· 872 857 # CONFIG_INFINIBAND is not set 873 858 874 859 # 860 + # SN Devices 861 + # 862 + 863 + # 875 864 # File systems 876 865 # 877 866 CONFIG_EXT2_FS=y 878 867 CONFIG_EXT2_FS_XATTR=y 879 868 CONFIG_EXT2_FS_POSIX_ACL=y 880 869 CONFIG_EXT2_FS_SECURITY=y 870 + # CONFIG_EXT2_FS_XIP is not set 881 871 CONFIG_EXT3_FS=y 882 872 CONFIG_EXT3_FS_XATTR=y 883 873 CONFIG_EXT3_FS_POSIX_ACL=y ··· 942 922 CONFIG_PROC_FS=y 943 923 CONFIG_PROC_KCORE=y 944 924 CONFIG_SYSFS=y 945 - # CONFIG_DEVFS_FS is not set 946 925 # CONFIG_DEVPTS_FS_XATTR is not set 947 926 CONFIG_TMPFS=y 948 927 CONFIG_TMPFS_XATTR=y ··· 972 953 # 973 954 CONFIG_NFS_FS=m 974 955 CONFIG_NFS_V3=y 956 + # CONFIG_NFS_V3_ACL is not set 975 957 CONFIG_NFS_V4=y 976 958 CONFIG_NFS_DIRECTIO=y 977 959 CONFIG_NFSD=m 978 960 CONFIG_NFSD_V3=y 961 + # CONFIG_NFSD_V3_ACL is not set 979 962 CONFIG_NFSD_V4=y 980 963 CONFIG_NFSD_TCP=y 981 964 CONFIG_LOCKD=m 982 965 CONFIG_LOCKD_V4=y 983 966 CONFIG_EXPORTFS=y 967 + CONFIG_NFS_COMMON=y 984 968 CONFIG_SUNRPC=m 985 969 CONFIG_SUNRPC_GSS=m 986 970 CONFIG_RPCSEC_GSS_KRB5=m ··· 1091 1069 # CONFIG_DEBUG_KOBJECT is not set 1092 1070 # CONFIG_DEBUG_INFO is not set 1093 1071 # CONFIG_DEBUG_FS is not set 1072 + # CONFIG_KPROBES is not set 1094 1073 CONFIG_IA64_GRANULE_16MB=y 1095 1074 # CONFIG_IA64_GRANULE_64MB is not set 1096 1075 # CONFIG_IA64_PRINT_HAZARDS is not set ··· 1113 1090 # CONFIG_CRYPTO_HMAC is not set 1114 1091 # CONFIG_CRYPTO_NULL is not set 1115 1092 # CONFIG_CRYPTO_MD4 is not set 1116 - CONFIG_CRYPTO_MD5=m 1093 + CONFIG_CRYPTO_MD5=y 1117 1094 # CONFIG_CRYPTO_SHA1 is not set 1118 1095 # CONFIG_CRYPTO_SHA256 is not set 1119 1096 # CONFIG_CRYPTO_SHA512 is not set
+122 -44
arch/ia64/configs/zx1_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.10 4 - # Wed Dec 29 09:05:48 2004 3 + # Linux kernel version: 2.6.13-rc1-20050629 4 + # Wed Jun 29 15:31:11 2005 5 5 # 6 6 7 7 # ··· 12 12 CONFIG_BROKEN=y 13 13 CONFIG_BROKEN_ON_SMP=y 14 14 CONFIG_LOCK_KERNEL=y 15 + CONFIG_INIT_ENV_ARG_LIMIT=32 15 16 16 17 # 17 18 # General setup ··· 25 24 # CONFIG_BSD_PROCESS_ACCT_V3 is not set 26 25 CONFIG_SYSCTL=y 27 26 # CONFIG_AUDIT is not set 28 - CONFIG_LOG_BUF_SHIFT=17 29 27 CONFIG_HOTPLUG=y 30 28 CONFIG_KOBJECT_UEVENT=y 31 29 # CONFIG_IKCONFIG is not set 30 + # CONFIG_CPUSETS is not set 32 31 # CONFIG_EMBEDDED is not set 33 32 CONFIG_KALLSYMS=y 34 33 # CONFIG_KALLSYMS_ALL is not set 35 34 # CONFIG_KALLSYMS_EXTRA_PASS is not set 35 + CONFIG_PRINTK=y 36 + CONFIG_BUG=y 37 + CONFIG_BASE_FULL=y 36 38 CONFIG_FUTEX=y 37 39 CONFIG_EPOLL=y 38 - # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 39 40 CONFIG_SHMEM=y 40 41 CONFIG_CC_ALIGN_FUNCTIONS=0 41 42 CONFIG_CC_ALIGN_LABELS=0 42 43 CONFIG_CC_ALIGN_LOOPS=0 43 44 CONFIG_CC_ALIGN_JUMPS=0 44 45 # CONFIG_TINY_SHMEM is not set 46 + CONFIG_BASE_SMALL=0 45 47 46 48 # 47 49 # Loadable module support ··· 63 59 CONFIG_64BIT=y 64 60 CONFIG_MMU=y 65 61 CONFIG_RWSEM_XCHGADD_ALGORITHM=y 62 + CONFIG_GENERIC_CALIBRATE_DELAY=y 66 63 CONFIG_TIME_INTERPOLATION=y 67 64 CONFIG_EFI=y 68 65 CONFIG_GENERIC_IOMAP=y 66 + CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 69 67 # CONFIG_IA64_GENERIC is not set 70 68 # CONFIG_IA64_DIG is not set 71 69 CONFIG_IA64_HP_ZX1=y 70 + # CONFIG_IA64_HP_ZX1_SWIOTLB is not set 72 71 # CONFIG_IA64_SGI_SN2 is not set 73 72 # CONFIG_IA64_HP_SIM is not set 74 73 # CONFIG_ITANIUM is not set ··· 80 73 # CONFIG_IA64_PAGE_SIZE_8KB is not set 81 74 CONFIG_IA64_PAGE_SIZE_16KB=y 82 75 # CONFIG_IA64_PAGE_SIZE_64KB is not set 76 + # CONFIG_HZ_100 is not set 77 + CONFIG_HZ_250=y 78 + # CONFIG_HZ_1000 is not set 79 + CONFIG_HZ=250 83 80 CONFIG_IA64_L1_CACHE_SHIFT=7 84 81 # CONFIG_NUMA is not set 85 82 CONFIG_VIRTUAL_MEM_MAP=y 83 + CONFIG_HOLES_IN_ZONE=y 86 84 # CONFIG_IA64_CYCLONE is not set 87 85 CONFIG_IOSAPIC=y 86 + # CONFIG_IA64_SGI_SN_XP is not set 88 87 CONFIG_FORCE_MAX_ZONEORDER=18 89 88 CONFIG_SMP=y 90 89 CONFIG_NR_CPUS=16 91 90 # CONFIG_HOTPLUG_CPU is not set 91 + # CONFIG_SCHED_SMT is not set 92 92 # CONFIG_PREEMPT is not set 93 + CONFIG_SELECT_MEMORY_MODEL=y 94 + CONFIG_FLATMEM_MANUAL=y 95 + # CONFIG_DISCONTIGMEM_MANUAL is not set 96 + # CONFIG_SPARSEMEM_MANUAL is not set 97 + CONFIG_FLATMEM=y 98 + CONFIG_FLAT_NODE_MEM_MAP=y 93 99 CONFIG_HAVE_DEC_LOCK=y 94 100 CONFIG_IA32_SUPPORT=y 95 101 CONFIG_COMPAT=y 96 102 CONFIG_IA64_MCA_RECOVERY=y 97 103 CONFIG_PERFMON=y 98 104 CONFIG_IA64_PALINFO=y 105 + CONFIG_ACPI_DEALLOCATE_IRQ=y 99 106 100 107 # 101 108 # Firmware Drivers ··· 141 120 CONFIG_ACPI_POWER=y 142 121 CONFIG_ACPI_PCI=y 143 122 CONFIG_ACPI_SYSTEM=y 123 + # CONFIG_ACPI_CONTAINER is not set 144 124 145 125 # 146 126 # Bus options (PCI, PCMCIA) ··· 151 129 # CONFIG_PCI_MSI is not set 152 130 CONFIG_PCI_LEGACY_PROC=y 153 131 CONFIG_PCI_NAMES=y 132 + # CONFIG_PCI_DEBUG is not set 154 133 155 134 # 156 135 # PCI Hotplug Support ··· 161 138 CONFIG_HOTPLUG_PCI_ACPI=y 162 139 # CONFIG_HOTPLUG_PCI_ACPI_IBM is not set 163 140 # CONFIG_HOTPLUG_PCI_CPCI is not set 164 - # CONFIG_HOTPLUG_PCI_PCIE is not set 165 141 # CONFIG_HOTPLUG_PCI_SHPC is not set 166 142 167 143 # 168 144 # PCCARD (PCMCIA/CardBus) support 169 145 # 170 146 # CONFIG_PCCARD is not set 171 - 172 - # 173 - # PC-card bridges 174 - # 175 147 176 148 # 177 149 # Device Drivers ··· 202 184 # CONFIG_BLK_CPQ_CISS_DA is not set 203 185 # CONFIG_BLK_DEV_DAC960 is not set 204 186 # CONFIG_BLK_DEV_UMEM is not set 187 + # CONFIG_BLK_DEV_COW_COMMON is not set 205 188 CONFIG_BLK_DEV_LOOP=y 206 189 # CONFIG_BLK_DEV_CRYPTOLOOP is not set 207 190 # CONFIG_BLK_DEV_NBD is not set ··· 222 203 CONFIG_IOSCHED_AS=y 223 204 CONFIG_IOSCHED_DEADLINE=y 224 205 CONFIG_IOSCHED_CFQ=y 206 + # CONFIG_ATA_OVER_ETH is not set 225 207 226 208 # 227 209 # ATA/ATAPI/MFM/RLL support ··· 266 246 # CONFIG_BLK_DEV_HPT366 is not set 267 247 # CONFIG_BLK_DEV_SC1200 is not set 268 248 # CONFIG_BLK_DEV_PIIX is not set 249 + # CONFIG_BLK_DEV_IT821X is not set 269 250 # CONFIG_BLK_DEV_NS87415 is not set 270 251 # CONFIG_BLK_DEV_PDC202XX_OLD is not set 271 252 # CONFIG_BLK_DEV_PDC202XX_NEW is not set ··· 296 275 CONFIG_BLK_DEV_SR=y 297 276 CONFIG_BLK_DEV_SR_VENDOR=y 298 277 CONFIG_CHR_DEV_SG=y 278 + # CONFIG_CHR_DEV_SCH is not set 299 279 300 280 # 301 281 # Some SCSI devices (e.g. CD jukebox) support multiple LUNs ··· 310 288 # 311 289 CONFIG_SCSI_SPI_ATTRS=y 312 290 # CONFIG_SCSI_FC_ATTRS is not set 291 + # CONFIG_SCSI_ISCSI_ATTRS is not set 313 292 314 293 # 315 294 # SCSI low-level drivers ··· 326 303 # CONFIG_MEGARAID_NEWGEN is not set 327 304 # CONFIG_MEGARAID_LEGACY is not set 328 305 # CONFIG_SCSI_SATA is not set 329 - # CONFIG_SCSI_BUSLOGIC is not set 330 306 # CONFIG_SCSI_CPQFCTS is not set 331 307 # CONFIG_SCSI_DMX3191D is not set 332 - # CONFIG_SCSI_EATA is not set 333 308 # CONFIG_SCSI_EATA_PIO is not set 334 309 # CONFIG_SCSI_FUTURE_DOMAIN is not set 335 - # CONFIG_SCSI_GDTH is not set 336 310 # CONFIG_SCSI_IPS is not set 337 311 # CONFIG_SCSI_INITIO is not set 338 312 # CONFIG_SCSI_INIA100 is not set ··· 339 319 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 340 320 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set 341 321 # CONFIG_SCSI_IPR is not set 342 - # CONFIG_SCSI_PCI2000 is not set 343 - # CONFIG_SCSI_PCI2220I is not set 344 322 # CONFIG_SCSI_QLOGIC_ISP is not set 345 323 # CONFIG_SCSI_QLOGIC_FC is not set 346 324 CONFIG_SCSI_QLOGIC_1280=y ··· 349 331 # CONFIG_SCSI_QLA2300 is not set 350 332 # CONFIG_SCSI_QLA2322 is not set 351 333 # CONFIG_SCSI_QLA6312 is not set 352 - # CONFIG_SCSI_QLA6322 is not set 334 + # CONFIG_SCSI_LPFC is not set 353 335 # CONFIG_SCSI_DC395x is not set 354 336 # CONFIG_SCSI_DC390T is not set 355 337 # CONFIG_SCSI_DEBUG is not set ··· 362 344 # 363 345 # Fusion MPT device support 364 346 # 365 - CONFIG_FUSION=y 366 - CONFIG_FUSION_MAX_SGE=40 367 - # CONFIG_FUSION_CTL is not set 347 + # CONFIG_FUSION is not set 348 + # CONFIG_FUSION_SPI is not set 349 + # CONFIG_FUSION_FC is not set 368 350 369 351 # 370 352 # IEEE 1394 (FireWire) support ··· 386 368 # 387 369 CONFIG_PACKET=y 388 370 # CONFIG_PACKET_MMAP is not set 389 - # CONFIG_NETLINK_DEV is not set 390 371 CONFIG_UNIX=y 391 372 # CONFIG_NET_KEY is not set 392 373 CONFIG_INET=y 393 374 CONFIG_IP_MULTICAST=y 394 375 # CONFIG_IP_ADVANCED_ROUTER is not set 376 + CONFIG_IP_FIB_HASH=y 395 377 # CONFIG_IP_PNP is not set 396 378 # CONFIG_NET_IPIP is not set 397 379 # CONFIG_NET_IPGRE is not set ··· 404 386 # CONFIG_INET_TUNNEL is not set 405 387 # CONFIG_IP_TCPDIAG is not set 406 388 # CONFIG_IP_TCPDIAG_IPV6 is not set 389 + # CONFIG_TCP_CONG_ADVANCED is not set 390 + CONFIG_TCP_CONG_BIC=y 407 391 408 392 # 409 393 # IP: Virtual Server Configuration ··· 425 405 CONFIG_IP_NF_ARPTABLES=y 426 406 # CONFIG_IP_NF_ARPFILTER is not set 427 407 # CONFIG_IP_NF_ARP_MANGLE is not set 428 - # CONFIG_IP_NF_COMPAT_IPCHAINS is not set 429 - # CONFIG_IP_NF_COMPAT_IPFWADM is not set 430 408 431 409 # 432 410 # SCTP Configuration (EXPERIMENTAL) ··· 501 483 # CONFIG_DGRS is not set 502 484 # CONFIG_EEPRO100 is not set 503 485 CONFIG_E100=y 504 - # CONFIG_E100_NAPI is not set 505 486 # CONFIG_FEALNX is not set 506 487 # CONFIG_NATSEMI is not set 507 488 # CONFIG_NE2K_PCI is not set ··· 522 505 # CONFIG_HAMACHI is not set 523 506 # CONFIG_YELLOWFIN is not set 524 507 # CONFIG_R8169 is not set 508 + # CONFIG_SKGE is not set 525 509 # CONFIG_SK98LIN is not set 526 510 # CONFIG_VIA_VELOCITY is not set 527 511 CONFIG_TIGON3=y 512 + # CONFIG_BNX2 is not set 528 513 529 514 # 530 515 # Ethernet (10000 Mbit) ··· 584 565 # CONFIG_INPUT_EVBUG is not set 585 566 586 567 # 587 - # Input I/O drivers 588 - # 589 - # CONFIG_GAMEPORT is not set 590 - CONFIG_SOUND_GAMEPORT=y 591 - CONFIG_SERIO=y 592 - # CONFIG_SERIO_I8042 is not set 593 - # CONFIG_SERIO_SERPORT is not set 594 - # CONFIG_SERIO_CT82C710 is not set 595 - # CONFIG_SERIO_PCIPS2 is not set 596 - # CONFIG_SERIO_RAW is not set 597 - 598 - # 599 568 # Input Device Drivers 600 569 # 601 570 # CONFIG_INPUT_KEYBOARD is not set ··· 591 584 # CONFIG_INPUT_JOYSTICK is not set 592 585 # CONFIG_INPUT_TOUCHSCREEN is not set 593 586 # CONFIG_INPUT_MISC is not set 587 + 588 + # 589 + # Hardware I/O ports 590 + # 591 + CONFIG_SERIO=y 592 + # CONFIG_SERIO_I8042 is not set 593 + # CONFIG_SERIO_SERPORT is not set 594 + # CONFIG_SERIO_PCIPS2 is not set 595 + # CONFIG_SERIO_RAW is not set 596 + # CONFIG_GAMEPORT is not set 594 597 595 598 # 596 599 # Character devices ··· 620 603 CONFIG_SERIAL_8250_EXTENDED=y 621 604 CONFIG_SERIAL_8250_SHARE_IRQ=y 622 605 # CONFIG_SERIAL_8250_DETECT_IRQ is not set 623 - # CONFIG_SERIAL_8250_MULTIPORT is not set 624 606 # CONFIG_SERIAL_8250_RSA is not set 625 607 626 608 # ··· 627 611 # 628 612 CONFIG_SERIAL_CORE=y 629 613 CONFIG_SERIAL_CORE_CONSOLE=y 614 + # CONFIG_SERIAL_JSM is not set 630 615 CONFIG_UNIX98_PTYS=y 631 616 CONFIG_LEGACY_PTYS=y 632 617 CONFIG_LEGACY_PTY_COUNT=256 ··· 661 644 # CONFIG_DRM_SIS is not set 662 645 # CONFIG_RAW_DRIVER is not set 663 646 # CONFIG_HPET is not set 647 + # CONFIG_HANGCHECK_TIMER is not set 648 + 649 + # 650 + # TPM devices 651 + # 652 + # CONFIG_TCG_TPM is not set 664 653 665 654 # 666 655 # I2C support ··· 691 668 # CONFIG_I2C_AMD8111 is not set 692 669 # CONFIG_I2C_I801 is not set 693 670 # CONFIG_I2C_I810 is not set 671 + # CONFIG_I2C_PIIX4 is not set 694 672 # CONFIG_I2C_ISA is not set 695 673 # CONFIG_I2C_NFORCE2 is not set 696 674 # CONFIG_I2C_PARPORT_LIGHT is not set ··· 715 691 # CONFIG_SENSORS_ADM1025 is not set 716 692 # CONFIG_SENSORS_ADM1026 is not set 717 693 # CONFIG_SENSORS_ADM1031 is not set 694 + # CONFIG_SENSORS_ADM9240 is not set 718 695 # CONFIG_SENSORS_ASB100 is not set 696 + # CONFIG_SENSORS_ATXP1 is not set 719 697 # CONFIG_SENSORS_DS1621 is not set 720 698 # CONFIG_SENSORS_FSCHER is not set 699 + # CONFIG_SENSORS_FSCPOS is not set 721 700 # CONFIG_SENSORS_GL518SM is not set 701 + # CONFIG_SENSORS_GL520SM is not set 722 702 # CONFIG_SENSORS_IT87 is not set 723 703 # CONFIG_SENSORS_LM63 is not set 724 704 # CONFIG_SENSORS_LM75 is not set ··· 733 705 # CONFIG_SENSORS_LM85 is not set 734 706 # CONFIG_SENSORS_LM87 is not set 735 707 # CONFIG_SENSORS_LM90 is not set 708 + # CONFIG_SENSORS_LM92 is not set 736 709 # CONFIG_SENSORS_MAX1619 is not set 737 710 # CONFIG_SENSORS_PC87360 is not set 711 + # CONFIG_SENSORS_SMSC47B397 is not set 712 + # CONFIG_SENSORS_SIS5595 is not set 738 713 # CONFIG_SENSORS_SMSC47M1 is not set 739 714 # CONFIG_SENSORS_VIA686A is not set 740 715 # CONFIG_SENSORS_W83781D is not set 741 716 # CONFIG_SENSORS_W83L785TS is not set 742 717 # CONFIG_SENSORS_W83627HF is not set 718 + # CONFIG_SENSORS_W83627EHF is not set 743 719 744 720 # 745 721 # Other I2C Chip support 746 722 # 723 + # CONFIG_SENSORS_DS1337 is not set 724 + # CONFIG_SENSORS_DS1374 is not set 747 725 # CONFIG_SENSORS_EEPROM is not set 748 726 # CONFIG_SENSORS_PCF8574 is not set 727 + # CONFIG_SENSORS_PCA9539 is not set 749 728 # CONFIG_SENSORS_PCF8591 is not set 750 729 # CONFIG_SENSORS_RTC8564 is not set 730 + # CONFIG_SENSORS_MAX6875 is not set 751 731 # CONFIG_I2C_DEBUG_CORE is not set 752 732 # CONFIG_I2C_DEBUG_ALGO is not set 753 733 # CONFIG_I2C_DEBUG_BUS is not set ··· 782 746 # 783 747 # Video Adapters 784 748 # 749 + # CONFIG_TUNER_MULTI_I2C is not set 785 750 # CONFIG_VIDEO_BT848 is not set 786 751 # CONFIG_VIDEO_CPIA is not set 787 752 # CONFIG_VIDEO_SAA5246A is not set ··· 815 778 # Graphics support 816 779 # 817 780 CONFIG_FB=y 781 + CONFIG_FB_CFB_FILLRECT=y 782 + CONFIG_FB_CFB_COPYAREA=y 783 + CONFIG_FB_CFB_IMAGEBLIT=y 784 + CONFIG_FB_SOFT_CURSOR=y 785 + # CONFIG_FB_MACMODES is not set 818 786 CONFIG_FB_MODE_HELPERS=y 819 787 # CONFIG_FB_TILEBLITTING is not set 820 788 # CONFIG_FB_CIRRUS is not set ··· 827 785 # CONFIG_FB_CYBER2000 is not set 828 786 # CONFIG_FB_ASILIANT is not set 829 787 # CONFIG_FB_IMSTT is not set 788 + # CONFIG_FB_NVIDIA is not set 830 789 # CONFIG_FB_RIVA is not set 831 790 # CONFIG_FB_MATROX is not set 832 791 # CONFIG_FB_RADEON_OLD is not set ··· 844 801 # CONFIG_FB_VOODOO1 is not set 845 802 # CONFIG_FB_TRIDENT is not set 846 803 # CONFIG_FB_PM3 is not set 804 + # CONFIG_FB_S1D13XXX is not set 847 805 # CONFIG_FB_VIRTUAL is not set 848 806 849 807 # ··· 864 820 # CONFIG_LOGO_LINUX_MONO is not set 865 821 # CONFIG_LOGO_LINUX_VGA16 is not set 866 822 CONFIG_LOGO_LINUX_CLUT224=y 823 + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 867 824 868 825 # 869 826 # Sound ··· 914 869 # CONFIG_SND_CS46XX is not set 915 870 # CONFIG_SND_CS4281 is not set 916 871 # CONFIG_SND_EMU10K1 is not set 872 + # CONFIG_SND_EMU10K1X is not set 873 + # CONFIG_SND_CA0106 is not set 917 874 # CONFIG_SND_KORG1212 is not set 918 875 # CONFIG_SND_MIXART is not set 919 876 # CONFIG_SND_NM256 is not set ··· 923 876 # CONFIG_SND_RME96 is not set 924 877 # CONFIG_SND_RME9652 is not set 925 878 # CONFIG_SND_HDSP is not set 879 + # CONFIG_SND_HDSPM is not set 926 880 # CONFIG_SND_TRIDENT is not set 927 881 # CONFIG_SND_YMFPCI is not set 928 882 # CONFIG_SND_ALS4000 is not set ··· 941 893 # CONFIG_SND_INTEL8X0M is not set 942 894 # CONFIG_SND_SONICVIBES is not set 943 895 # CONFIG_SND_VIA82XX is not set 896 + # CONFIG_SND_VIA82XX_MODEM is not set 944 897 # CONFIG_SND_VX222 is not set 898 + # CONFIG_SND_HDA_INTEL is not set 945 899 946 900 # 947 901 # USB devices 948 902 # 949 903 # CONFIG_SND_USB_AUDIO is not set 950 - # CONFIG_SND_USB_USX2Y is not set 951 904 952 905 # 953 906 # Open Sound System ··· 958 909 # 959 910 # USB support 960 911 # 912 + CONFIG_USB_ARCH_HAS_HCD=y 913 + CONFIG_USB_ARCH_HAS_OHCI=y 961 914 CONFIG_USB=y 962 915 # CONFIG_USB_DEBUG is not set 963 916 ··· 971 920 # CONFIG_USB_DYNAMIC_MINORS is not set 972 921 # CONFIG_USB_SUSPEND is not set 973 922 # CONFIG_USB_OTG is not set 974 - CONFIG_USB_ARCH_HAS_HCD=y 975 - CONFIG_USB_ARCH_HAS_OHCI=y 976 923 977 924 # 978 925 # USB Host Controller Drivers ··· 978 929 CONFIG_USB_EHCI_HCD=y 979 930 # CONFIG_USB_EHCI_SPLIT_ISO is not set 980 931 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set 932 + # CONFIG_USB_ISP116X_HCD is not set 981 933 CONFIG_USB_OHCI_HCD=y 934 + # CONFIG_USB_OHCI_BIG_ENDIAN is not set 935 + CONFIG_USB_OHCI_LITTLE_ENDIAN=y 982 936 CONFIG_USB_UHCI_HCD=y 983 937 # CONFIG_USB_SL811_HCD is not set 984 938 ··· 999 947 # 1000 948 CONFIG_USB_STORAGE=y 1001 949 # CONFIG_USB_STORAGE_DEBUG is not set 1002 - # CONFIG_USB_STORAGE_RW_DETECT is not set 1003 950 # CONFIG_USB_STORAGE_DATAFAB is not set 1004 951 # CONFIG_USB_STORAGE_FREECOM is not set 1005 952 # CONFIG_USB_STORAGE_ISD200 is not set 1006 953 # CONFIG_USB_STORAGE_DPCM is not set 1007 - # CONFIG_USB_STORAGE_HP8200e is not set 954 + # CONFIG_USB_STORAGE_USBAT is not set 1008 955 # CONFIG_USB_STORAGE_SDDR09 is not set 1009 956 # CONFIG_USB_STORAGE_SDDR55 is not set 1010 957 # CONFIG_USB_STORAGE_JUMPSHOT is not set ··· 1017 966 CONFIG_USB_HIDDEV=y 1018 967 # CONFIG_USB_AIPTEK is not set 1019 968 # CONFIG_USB_WACOM is not set 969 + # CONFIG_USB_ACECAD is not set 1020 970 # CONFIG_USB_KBTAB is not set 1021 971 # CONFIG_USB_POWERMATE is not set 1022 972 # CONFIG_USB_MTOUCH is not set 973 + # CONFIG_USB_ITMTOUCH is not set 1023 974 # CONFIG_USB_EGALAX is not set 1024 975 # CONFIG_USB_XPAD is not set 1025 976 # CONFIG_USB_ATI_REMOTE is not set ··· 1031 978 # 1032 979 # CONFIG_USB_MDC800 is not set 1033 980 # CONFIG_USB_MICROTEK is not set 1034 - # CONFIG_USB_HPUSBSCSI is not set 1035 981 1036 982 # 1037 983 # USB Multimedia devices ··· 1044 992 # CONFIG_USB_SE401 is not set 1045 993 # CONFIG_USB_SN9C102 is not set 1046 994 # CONFIG_USB_STV680 is not set 995 + # CONFIG_USB_PWC is not set 1047 996 1048 997 # 1049 998 # USB Network Adapters ··· 1054 1001 # CONFIG_USB_PEGASUS is not set 1055 1002 # CONFIG_USB_RTL8150 is not set 1056 1003 # CONFIG_USB_USBNET is not set 1004 + CONFIG_USB_MON=y 1057 1005 1058 1006 # 1059 1007 # USB port drivers ··· 1070 1016 # 1071 1017 # CONFIG_USB_EMI62 is not set 1072 1018 # CONFIG_USB_EMI26 is not set 1073 - # CONFIG_USB_TIGL is not set 1074 1019 # CONFIG_USB_AUERSWALD is not set 1075 1020 # CONFIG_USB_RIO500 is not set 1076 1021 # CONFIG_USB_LEGOTOWER is not set ··· 1078 1025 # CONFIG_USB_CYTHERM is not set 1079 1026 # CONFIG_USB_PHIDGETKIT is not set 1080 1027 # CONFIG_USB_PHIDGETSERVO is not set 1028 + # CONFIG_USB_IDMOUSE is not set 1029 + # CONFIG_USB_SISUSBVGA is not set 1081 1030 1082 1031 # 1083 - # USB ATM/DSL drivers 1032 + # USB DSL modem support 1084 1033 # 1085 1034 1086 1035 # ··· 1096 1041 # CONFIG_MMC is not set 1097 1042 1098 1043 # 1044 + # InfiniBand support 1045 + # 1046 + # CONFIG_INFINIBAND is not set 1047 + 1048 + # 1049 + # SN Devices 1050 + # 1051 + 1052 + # 1099 1053 # File systems 1100 1054 # 1101 1055 CONFIG_EXT2_FS=y 1102 1056 CONFIG_EXT2_FS_XATTR=y 1103 1057 # CONFIG_EXT2_FS_POSIX_ACL is not set 1104 1058 # CONFIG_EXT2_FS_SECURITY is not set 1059 + # CONFIG_EXT2_FS_XIP is not set 1105 1060 CONFIG_EXT3_FS=y 1106 1061 CONFIG_EXT3_FS_XATTR=y 1107 1062 # CONFIG_EXT3_FS_POSIX_ACL is not set ··· 1121 1056 CONFIG_FS_MBCACHE=y 1122 1057 # CONFIG_REISERFS_FS is not set 1123 1058 # CONFIG_JFS_FS is not set 1059 + 1060 + # 1061 + # XFS support 1062 + # 1124 1063 # CONFIG_XFS_FS is not set 1125 1064 # CONFIG_MINIX_FS is not set 1126 1065 # CONFIG_ROMFS_FS is not set ··· 1158 1089 CONFIG_PROC_FS=y 1159 1090 CONFIG_PROC_KCORE=y 1160 1091 CONFIG_SYSFS=y 1161 - # CONFIG_DEVFS_FS is not set 1162 1092 # CONFIG_DEVPTS_FS_XATTR is not set 1163 1093 CONFIG_TMPFS=y 1164 1094 CONFIG_TMPFS_XATTR=y ··· 1188 1120 # 1189 1121 CONFIG_NFS_FS=y 1190 1122 CONFIG_NFS_V3=y 1123 + # CONFIG_NFS_V3_ACL is not set 1191 1124 CONFIG_NFS_V4=y 1192 1125 # CONFIG_NFS_DIRECTIO is not set 1193 1126 CONFIG_NFSD=y 1194 1127 CONFIG_NFSD_V3=y 1128 + # CONFIG_NFSD_V3_ACL is not set 1195 1129 # CONFIG_NFSD_V4 is not set 1196 1130 # CONFIG_NFSD_TCP is not set 1197 1131 CONFIG_LOCKD=y 1198 1132 CONFIG_LOCKD_V4=y 1199 1133 CONFIG_EXPORTFS=y 1134 + CONFIG_NFS_COMMON=y 1200 1135 CONFIG_SUNRPC=y 1201 1136 CONFIG_SUNRPC_GSS=y 1202 1137 CONFIG_RPCSEC_GSS_KRB5=y ··· 1280 1209 # CONFIG_CRC_CCITT is not set 1281 1210 CONFIG_CRC32=y 1282 1211 # CONFIG_LIBCRC32C is not set 1212 + CONFIG_GENERIC_HARDIRQS=y 1213 + CONFIG_GENERIC_IRQ_PROBE=y 1283 1214 1284 1215 # 1285 1216 # Profiling support ··· 1291 1218 # 1292 1219 # Kernel hacking 1293 1220 # 1221 + # CONFIG_PRINTK_TIME is not set 1294 1222 CONFIG_DEBUG_KERNEL=y 1295 1223 CONFIG_MAGIC_SYSRQ=y 1224 + CONFIG_LOG_BUF_SHIFT=17 1296 1225 # CONFIG_SCHEDSTATS is not set 1297 1226 # CONFIG_DEBUG_SLAB is not set 1298 1227 # CONFIG_DEBUG_SPINLOCK is not set 1299 1228 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1300 1229 # CONFIG_DEBUG_KOBJECT is not set 1301 1230 # CONFIG_DEBUG_INFO is not set 1231 + # CONFIG_DEBUG_FS is not set 1232 + CONFIG_KPROBES=y 1302 1233 CONFIG_IA64_GRANULE_16MB=y 1303 1234 # CONFIG_IA64_GRANULE_64MB is not set 1304 1235 CONFIG_IA64_PRINT_HAZARDS=y ··· 1329 1252 # CONFIG_CRYPTO_SHA256 is not set 1330 1253 # CONFIG_CRYPTO_SHA512 is not set 1331 1254 # CONFIG_CRYPTO_WP512 is not set 1255 + # CONFIG_CRYPTO_TGR192 is not set 1332 1256 CONFIG_CRYPTO_DES=y 1333 1257 # CONFIG_CRYPTO_BLOWFISH is not set 1334 1258 # CONFIG_CRYPTO_TWOFISH is not set
+4
arch/ia64/hp/common/sba_iommu.c
··· 156 156 */ 157 157 #define DELAYED_RESOURCE_CNT 64 158 158 159 + #define PCI_DEVICE_ID_HP_SX2000_IOC 0x12ec 160 + 159 161 #define ZX1_IOC_ID ((PCI_DEVICE_ID_HP_ZX1_IOC << 16) | PCI_VENDOR_ID_HP) 160 162 #define ZX2_IOC_ID ((PCI_DEVICE_ID_HP_ZX2_IOC << 16) | PCI_VENDOR_ID_HP) 161 163 #define REO_IOC_ID ((PCI_DEVICE_ID_HP_REO_IOC << 16) | PCI_VENDOR_ID_HP) 162 164 #define SX1000_IOC_ID ((PCI_DEVICE_ID_HP_SX1000_IOC << 16) | PCI_VENDOR_ID_HP) 165 + #define SX2000_IOC_ID ((PCI_DEVICE_ID_HP_SX2000_IOC << 16) | PCI_VENDOR_ID_HP) 163 166 164 167 #define ZX1_IOC_OFFSET 0x1000 /* ACPI reports SBA, we want IOC */ 165 168 ··· 1729 1726 { ZX1_IOC_ID, "zx1", ioc_zx1_init }, 1730 1727 { ZX2_IOC_ID, "zx2", NULL }, 1731 1728 { SX1000_IOC_ID, "sx1000", NULL }, 1729 + { SX2000_IOC_ID, "sx2000", NULL }, 1732 1730 }; 1733 1731 1734 1732 static struct ioc * __init
+11 -5
arch/ia64/hp/sim/simserial.c
··· 30 30 #include <linux/module.h> 31 31 #include <linux/serial.h> 32 32 #include <linux/serialP.h> 33 + #include <linux/sysrq.h> 33 34 34 35 #include <asm/irq.h> 35 36 #include <asm/hw_irq.h> ··· 150 149 seen_esc = 2; 151 150 continue; 152 151 } else if ( seen_esc == 2 ) { 153 - if ( ch == 'P' ) show_state(); /* F1 key */ 154 - #ifdef CONFIG_KDB 155 - if ( ch == 'S' ) 156 - kdb(KDB_REASON_KEYBOARD, 0, (kdb_eframe_t) regs); 152 + if ( ch == 'P' ) /* F1 */ 153 + show_state(); 154 + #ifdef CONFIG_MAGIC_SYSRQ 155 + if ( ch == 'S' ) { /* F4 */ 156 + do 157 + ch = ia64_ssc(0, 0, 0, 0, 158 + SSC_GETCHAR); 159 + while (!ch); 160 + handle_sysrq(ch, regs, NULL); 161 + } 157 162 #endif 158 - 159 163 seen_esc = 0; 160 164 continue; 161 165 }
+57 -63
arch/ia64/kernel/entry.S
··· 470 470 br.cond.sptk.many b7 471 471 END(load_switch_stack) 472 472 473 - GLOBAL_ENTRY(__ia64_syscall) 474 - .regstk 6,0,0,0 475 - mov r15=in5 // put syscall number in place 476 - break __BREAK_SYSCALL 477 - movl r2=errno 478 - cmp.eq p6,p7=-1,r10 479 - ;; 480 - (p6) st4 [r2]=r8 481 - (p6) mov r8=-1 482 - br.ret.sptk.many rp 483 - END(__ia64_syscall) 484 - 485 473 GLOBAL_ENTRY(execve) 486 474 mov r15=__NR_execve // put syscall number in place 487 475 break __BREAK_SYSCALL ··· 625 637 * r8-r11: restored (syscall return value(s)) 626 638 * r12: restored (user-level stack pointer) 627 639 * r13: restored (user-level thread pointer) 628 - * r14: cleared 640 + * r14: set to __kernel_syscall_via_epc 629 641 * r15: restored (syscall #) 630 642 * r16-r17: cleared 631 643 * r18: user-level b6 ··· 646 658 * pr: restored (user-level pr) 647 659 * b0: restored (user-level rp) 648 660 * b6: restored 649 - * b7: cleared 661 + * b7: set to __kernel_syscall_via_epc 650 662 * ar.unat: restored (user-level ar.unat) 651 663 * ar.pfs: restored (user-level ar.pfs) 652 664 * ar.rsc: restored (user-level ar.rsc) ··· 692 704 ;; 693 705 (p6) ld4 r31=[r18] // load current_thread_info()->flags 694 706 ld8 r19=[r2],PT(B6)-PT(LOADRS) // load ar.rsc value for "loadrs" 695 - mov b7=r0 // clear b7 707 + nop.i 0 696 708 ;; 697 - ld8 r23=[r3],PT(R11)-PT(AR_BSPSTORE) // load ar.bspstore (may be garbage) 709 + mov r16=ar.bsp // M2 get existing backing store pointer 698 710 ld8 r18=[r2],PT(R9)-PT(B6) // load b6 699 711 (p6) and r15=TIF_WORK_MASK,r31 // any work other than TIF_SYSCALL_TRACE? 700 712 ;; 701 - mov r16=ar.bsp // M2 get existing backing store pointer 713 + ld8 r23=[r3],PT(R11)-PT(AR_BSPSTORE) // load ar.bspstore (may be garbage) 702 714 (p6) cmp4.ne.unc p6,p0=r15, r0 // any special work pending? 703 715 (p6) br.cond.spnt .work_pending_syscall 704 716 ;; 705 717 // start restoring the state saved on the kernel stack (struct pt_regs): 706 718 ld8 r9=[r2],PT(CR_IPSR)-PT(R9) 707 719 ld8 r11=[r3],PT(CR_IIP)-PT(R11) 708 - mov f6=f0 // clear f6 720 + (pNonSys) break 0 // bug check: we shouldn't be here if pNonSys is TRUE! 709 721 ;; 710 722 invala // M0|1 invalidate ALAT 711 - rsm psr.i | psr.ic // M2 initiate turning off of interrupt and interruption collection 712 - mov f9=f0 // clear f9 723 + rsm psr.i | psr.ic // M2 turn off interrupts and interruption collection 724 + cmp.eq p9,p0=r0,r0 // A set p9 to indicate that we should restore cr.ifs 713 725 714 - ld8 r29=[r2],16 // load cr.ipsr 715 - ld8 r28=[r3],16 // load cr.iip 716 - mov f8=f0 // clear f8 726 + ld8 r29=[r2],16 // M0|1 load cr.ipsr 727 + ld8 r28=[r3],16 // M0|1 load cr.iip 728 + mov r22=r0 // A clear r22 717 729 ;; 718 730 ld8 r30=[r2],16 // M0|1 load cr.ifs 719 731 ld8 r25=[r3],16 // M0|1 load ar.unat 720 - cmp.eq p9,p0=r0,r0 // set p9 to indicate that we should restore cr.ifs 721 - ;; 722 - ld8 r26=[r2],PT(B0)-PT(AR_PFS) // M0|1 load ar.pfs 723 - (pKStk) mov r22=psr // M2 read PSR now that interrupts are disabled 724 - mov f10=f0 // clear f10 725 - ;; 726 - ld8 r21=[r2],PT(AR_RNAT)-PT(B0) // load b0 727 - ld8 r27=[r3],PT(PR)-PT(AR_RSC) // load ar.rsc 728 - mov f11=f0 // clear f11 729 - ;; 730 - ld8 r24=[r2],PT(AR_FPSR)-PT(AR_RNAT) // load ar.rnat (may be garbage) 731 - ld8 r31=[r3],PT(R1)-PT(PR) // load predicates 732 732 (pUStk) add r14=IA64_TASK_THREAD_ON_USTACK_OFFSET,r13 733 733 ;; 734 - ld8 r20=[r2],PT(R12)-PT(AR_FPSR) // load ar.fpsr 735 - ld8.fill r1=[r3],16 // load r1 736 - (pUStk) mov r17=1 734 + ld8 r26=[r2],PT(B0)-PT(AR_PFS) // M0|1 load ar.pfs 735 + (pKStk) mov r22=psr // M2 read PSR now that interrupts are disabled 736 + nop 0 737 737 ;; 738 - srlz.d // M0 ensure interruption collection is off 739 - ld8.fill r13=[r3],16 740 - mov f7=f0 // clear f7 738 + ld8 r21=[r2],PT(AR_RNAT)-PT(B0) // M0|1 load b0 739 + ld8 r27=[r3],PT(PR)-PT(AR_RSC) // M0|1 load ar.rsc 740 + mov f6=f0 // F clear f6 741 741 ;; 742 - ld8.fill r12=[r2] // restore r12 (sp) 743 - mov.m ar.ssd=r0 // M2 clear ar.ssd 744 - mov r22=r0 // clear r22 742 + ld8 r24=[r2],PT(AR_FPSR)-PT(AR_RNAT) // M0|1 load ar.rnat (may be garbage) 743 + ld8 r31=[r3],PT(R1)-PT(PR) // M0|1 load predicates 744 + mov f7=f0 // F clear f7 745 + ;; 746 + ld8 r20=[r2],PT(R12)-PT(AR_FPSR) // M0|1 load ar.fpsr 747 + ld8.fill r1=[r3],16 // M0|1 load r1 748 + (pUStk) mov r17=1 // A 749 + ;; 750 + (pUStk) st1 [r14]=r17 // M2|3 751 + ld8.fill r13=[r3],16 // M0|1 752 + mov f8=f0 // F clear f8 753 + ;; 754 + ld8.fill r12=[r2] // M0|1 restore r12 (sp) 755 + ld8.fill r15=[r3] // M0|1 restore r15 756 + mov b6=r18 // I0 restore b6 745 757 746 - ld8.fill r15=[r3] // restore r15 747 - (pUStk) st1 [r14]=r17 748 - addl r3=THIS_CPU(ia64_phys_stacked_size_p8),r0 749 - ;; 750 - (pUStk) ld4 r17=[r3] // r17 = cpu_data->phys_stacked_size_p8 751 - mov.m ar.csd=r0 // M2 clear ar.csd 752 - mov b6=r18 // I0 restore b6 753 - ;; 754 - mov r14=r0 // clear r14 755 - shr.u r18=r19,16 // I0|1 get byte size of existing "dirty" partition 756 - (pKStk) br.cond.dpnt.many skip_rbs_switch 758 + addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0 // A 759 + mov f9=f0 // F clear f9 760 + (pKStk) br.cond.dpnt.many skip_rbs_switch // B 757 761 758 - mov.m ar.ccv=r0 // clear ar.ccv 759 - (pNonSys) br.cond.dpnt.many dont_preserve_current_frame 760 - br.cond.sptk.many rbs_switch 762 + srlz.d // M0 ensure interruption collection is off (for cover) 763 + shr.u r18=r19,16 // I0|1 get byte size of existing "dirty" partition 764 + cover // B add current frame into dirty partition & set cr.ifs 765 + ;; 766 + (pUStk) ld4 r17=[r17] // M0|1 r17 = cpu_data->phys_stacked_size_p8 767 + mov r19=ar.bsp // M2 get new backing store pointer 768 + mov f10=f0 // F clear f10 769 + 770 + nop.m 0 771 + movl r14=__kernel_syscall_via_epc // X 772 + ;; 773 + mov.m ar.csd=r0 // M2 clear ar.csd 774 + mov.m ar.ccv=r0 // M2 clear ar.ccv 775 + mov b7=r14 // I0 clear b7 (hint with __kernel_syscall_via_epc) 776 + 777 + mov.m ar.ssd=r0 // M2 clear ar.ssd 778 + mov f11=f0 // F clear f11 779 + br.cond.sptk.many rbs_switch // B 761 780 END(ia64_leave_syscall) 762 781 763 782 #ifdef CONFIG_IA32_SUPPORT ··· 880 885 ldf.fill f7=[r2],PT(F11)-PT(F7) 881 886 ldf.fill f8=[r3],32 882 887 ;; 883 - srlz.i // ensure interruption collection is off 888 + srlz.d // ensure that inter. collection is off (VHPT is don't care, since text is pinned) 884 889 mov ar.ccv=r15 885 890 ;; 886 891 ldf.fill f11=[r2] ··· 940 945 * NOTE: alloc, loadrs, and cover can't be predicated. 941 946 */ 942 947 (pNonSys) br.cond.dpnt dont_preserve_current_frame 943 - 944 - rbs_switch: 945 948 cover // add current frame into dirty partition and set cr.ifs 946 949 ;; 947 950 mov r19=ar.bsp // get new backing store pointer 951 + rbs_switch: 948 952 sub r16=r16,r18 // krbs = old bsp - size of dirty partition 949 953 cmp.ne p9,p0=r0,r0 // clear p9 to skip restore of cr.ifs 950 954 ;; ··· 1018 1024 mov loc5=0 1019 1025 mov loc6=0 1020 1026 mov loc7=0 1021 - (pRecurse) br.call.sptk.few b0=rse_clear_invalid 1027 + (pRecurse) br.call.dptk.few b0=rse_clear_invalid 1022 1028 ;; 1023 1029 mov loc8=0 1024 1030 mov loc9=0 1025 1031 cmp.ne pReturn,p0=r0,in1 // if recursion count != 0, we need to do a br.ret 1026 1032 mov loc10=0 1027 1033 mov loc11=0 1028 - (pReturn) br.ret.sptk.many b0 1034 + (pReturn) br.ret.dptk.many b0 1029 1035 #endif /* !CONFIG_ITANIUM */ 1030 1036 # undef pRecurse 1031 1037 # undef pReturn
+86 -65
arch/ia64/kernel/fsys.S
··· 531 531 .altrp b6 532 532 .body 533 533 /* 534 - * We get here for syscalls that don't have a lightweight handler. For those, we 535 - * need to bubble down into the kernel and that requires setting up a minimal 536 - * pt_regs structure, and initializing the CPU state more or less as if an 537 - * interruption had occurred. To make syscall-restarts work, we setup pt_regs 538 - * such that cr_iip points to the second instruction in syscall_via_break. 539 - * Decrementing the IP hence will restart the syscall via break and not 540 - * decrementing IP will return us to the caller, as usual. Note that we preserve 541 - * the value of psr.pp rather than initializing it from dcr.pp. This makes it 542 - * possible to distinguish fsyscall execution from other privileged execution. 534 + * We get here for syscalls that don't have a lightweight 535 + * handler. For those, we need to bubble down into the kernel 536 + * and that requires setting up a minimal pt_regs structure, 537 + * and initializing the CPU state more or less as if an 538 + * interruption had occurred. To make syscall-restarts work, 539 + * we setup pt_regs such that cr_iip points to the second 540 + * instruction in syscall_via_break. Decrementing the IP 541 + * hence will restart the syscall via break and not 542 + * decrementing IP will return us to the caller, as usual. 543 + * Note that we preserve the value of psr.pp rather than 544 + * initializing it from dcr.pp. This makes it possible to 545 + * distinguish fsyscall execution from other privileged 546 + * execution. 543 547 * 544 548 * On entry: 545 - * - normal fsyscall handler register usage, except that we also have: 549 + * - normal fsyscall handler register usage, except 550 + * that we also have: 546 551 * - r18: address of syscall entry point 547 552 * - r21: ar.fpsr 548 553 * - r26: ar.pfs 549 554 * - r27: ar.rsc 550 555 * - r29: psr 556 + * 557 + * We used to clear some PSR bits here but that requires slow 558 + * serialization. Fortuntely, that isn't really necessary. 559 + * The rationale is as follows: we used to clear bits 560 + * ~PSR_PRESERVED_BITS in PSR.L. Since 561 + * PSR_PRESERVED_BITS==PSR.{UP,MFL,MFH,PK,DT,PP,SP,RT,IC}, we 562 + * ended up clearing PSR.{BE,AC,I,DFL,DFH,DI,DB,SI,TB}. 563 + * However, 564 + * 565 + * PSR.BE : already is turned off in __kernel_syscall_via_epc() 566 + * PSR.AC : don't care (kernel normally turns PSR.AC on) 567 + * PSR.I : already turned off by the time fsys_bubble_down gets 568 + * invoked 569 + * PSR.DFL: always 0 (kernel never turns it on) 570 + * PSR.DFH: don't care --- kernel never touches f32-f127 on its own 571 + * initiative 572 + * PSR.DI : always 0 (kernel never turns it on) 573 + * PSR.SI : always 0 (kernel never turns it on) 574 + * PSR.DB : don't care --- kernel never enables kernel-level 575 + * breakpoints 576 + * PSR.TB : must be 0 already; if it wasn't zero on entry to 577 + * __kernel_syscall_via_epc, the branch to fsys_bubble_down 578 + * will trigger a taken branch; the taken-trap-handler then 579 + * converts the syscall into a break-based system-call. 551 580 */ 552 - # define PSR_PRESERVED_BITS (IA64_PSR_UP | IA64_PSR_MFL | IA64_PSR_MFH | IA64_PSR_PK \ 553 - | IA64_PSR_DT | IA64_PSR_PP | IA64_PSR_SP | IA64_PSR_RT \ 554 - | IA64_PSR_IC) 555 581 /* 556 - * Reading psr.l gives us only bits 0-31, psr.it, and psr.mc. The rest we have 557 - * to synthesize. 582 + * Reading psr.l gives us only bits 0-31, psr.it, and psr.mc. 583 + * The rest we have to synthesize. 558 584 */ 559 - # define PSR_ONE_BITS ((3 << IA64_PSR_CPL0_BIT) | (0x1 << IA64_PSR_RI_BIT) \ 585 + # define PSR_ONE_BITS ((3 << IA64_PSR_CPL0_BIT) \ 586 + | (0x1 << IA64_PSR_RI_BIT) \ 560 587 | IA64_PSR_BN | IA64_PSR_I) 561 588 562 - invala 563 - movl r8=PSR_ONE_BITS 589 + invala // M0|1 590 + movl r14=ia64_ret_from_syscall // X 564 591 565 - mov r25=ar.unat // save ar.unat (5 cyc) 566 - movl r9=PSR_PRESERVED_BITS 592 + nop.m 0 593 + movl r28=__kernel_syscall_via_break // X create cr.iip 594 + ;; 567 595 568 - mov ar.rsc=0 // set enforced lazy mode, pl 0, little-endian, loadrs=0 569 - movl r28=__kernel_syscall_via_break 596 + mov r2=r16 // A get task addr to addl-addressable register 597 + adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16 // A 598 + mov r31=pr // I0 save pr (2 cyc) 570 599 ;; 571 - mov r23=ar.bspstore // save ar.bspstore (12 cyc) 572 - mov r31=pr // save pr (2 cyc) 573 - mov r20=r1 // save caller's gp in r20 600 + st1 [r16]=r0 // M2|3 clear current->thread.on_ustack flag 601 + addl r22=IA64_RBS_OFFSET,r2 // A compute base of RBS 602 + add r3=TI_FLAGS+IA64_TASK_SIZE,r2 // A 574 603 ;; 575 - mov r2=r16 // copy current task addr to addl-addressable register 576 - and r9=r9,r29 577 - mov r19=b6 // save b6 (2 cyc) 604 + ld4 r3=[r3] // M0|1 r3 = current_thread_info()->flags 605 + lfetch.fault.excl.nt1 [r22] // M0|1 prefetch register backing-store 606 + nop.i 0 578 607 ;; 579 - mov psr.l=r9 // slam the door (17 cyc to srlz.i) 580 - or r29=r8,r29 // construct cr.ipsr value to save 581 - addl r22=IA64_RBS_OFFSET,r2 // compute base of RBS 608 + mov ar.rsc=0 // M2 set enforced lazy mode, pl 0, LE, loadrs=0 609 + nop.m 0 610 + nop.i 0 582 611 ;; 583 - // GAS reports a spurious RAW hazard on the read of ar.rnat because it thinks 584 - // we may be reading ar.itc after writing to psr.l. Avoid that message with 585 - // this directive: 586 - dv_serialize_data 587 - mov.m r24=ar.rnat // read ar.rnat (5 cyc lat) 588 - lfetch.fault.excl.nt1 [r22] 589 - adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r2 612 + mov r23=ar.bspstore // M2 (12 cyc) save ar.bspstore 613 + mov.m r24=ar.rnat // M2 (5 cyc) read ar.rnat (dual-issues!) 614 + nop.i 0 615 + ;; 616 + mov ar.bspstore=r22 // M2 (6 cyc) switch to kernel RBS 617 + movl r8=PSR_ONE_BITS // X 618 + ;; 619 + mov r25=ar.unat // M2 (5 cyc) save ar.unat 620 + mov r19=b6 // I0 save b6 (2 cyc) 621 + mov r20=r1 // A save caller's gp in r20 622 + ;; 623 + or r29=r8,r29 // A construct cr.ipsr value to save 624 + mov b6=r18 // I0 copy syscall entry-point to b6 (7 cyc) 625 + addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r2 // A compute base of memory stack 590 626 591 - // ensure previous insn group is issued before we stall for srlz.i: 627 + mov r18=ar.bsp // M2 save (kernel) ar.bsp (12 cyc) 628 + cmp.ne pKStk,pUStk=r0,r0 // A set pKStk <- 0, pUStk <- 1 629 + br.call.sptk.many b7=ia64_syscall_setup // B 592 630 ;; 593 - srlz.i // ensure new psr.l has been established 594 - ///////////////////////////////////////////////////////////////////////////// 595 - ////////// from this point on, execution is not interruptible anymore 596 - ///////////////////////////////////////////////////////////////////////////// 597 - addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r2 // compute base of memory stack 598 - cmp.ne pKStk,pUStk=r0,r0 // set pKStk <- 0, pUStk <- 1 631 + mov ar.rsc=0x3 // M2 set eager mode, pl 0, LE, loadrs=0 632 + mov rp=r14 // I0 set the real return addr 633 + and r3=_TIF_SYSCALL_TRACEAUDIT,r3 // A 599 634 ;; 600 - st1 [r16]=r0 // clear current->thread.on_ustack flag 601 - mov ar.bspstore=r22 // switch to kernel RBS 602 - mov b6=r18 // copy syscall entry-point to b6 (7 cyc) 603 - add r3=TI_FLAGS+IA64_TASK_SIZE,r2 604 - ;; 605 - ld4 r3=[r3] // r2 = current_thread_info()->flags 606 - mov r18=ar.bsp // save (kernel) ar.bsp (12 cyc) 607 - mov ar.rsc=0x3 // set eager mode, pl 0, little-endian, loadrs=0 608 - br.call.sptk.many b7=ia64_syscall_setup 609 - ;; 610 - ssm psr.i 611 - movl r2=ia64_ret_from_syscall 612 - ;; 613 - mov rp=r2 // set the real return addr 614 - and r3=_TIF_SYSCALL_TRACEAUDIT,r3 615 - ;; 616 - cmp.eq p8,p0=r3,r0 635 + ssm psr.i // M2 we're on kernel stacks now, reenable irqs 636 + cmp.eq p8,p0=r3,r0 // A 637 + (p10) br.cond.spnt.many ia64_ret_from_syscall // B return if bad call-frame or r15 is a NaT 617 638 618 - (p10) br.cond.spnt.many ia64_ret_from_syscall // p10==true means out registers are more than 8 619 - (p8) br.call.sptk.many b6=b6 // ignore this return addr 620 - br.cond.sptk ia64_trace_syscall 639 + nop.m 0 640 + (p8) br.call.sptk.many b6=b6 // B (ignore return address) 641 + br.cond.spnt ia64_trace_syscall // B 621 642 END(fsys_bubble_down) 622 643 623 644 .rodata
+34 -30
arch/ia64/kernel/gate.S
··· 72 72 * bundle get executed. The remaining code must be safe even if 73 73 * they do not get executed. 74 74 */ 75 - adds r17=-1024,r15 76 - mov r10=0 // default to successful syscall execution 77 - epc 75 + adds r17=-1024,r15 // A 76 + mov r10=0 // A default to successful syscall execution 77 + epc // B causes split-issue 78 78 } 79 79 ;; 80 - rsm psr.be // note: on McKinley "rsm psr.be/srlz.d" is slightly faster than "rum psr.be" 81 - LOAD_FSYSCALL_TABLE(r14) 80 + rsm psr.be | psr.i // M2 (5 cyc to srlz.d) 81 + LOAD_FSYSCALL_TABLE(r14) // X 82 + ;; 83 + mov r16=IA64_KR(CURRENT) // M2 (12 cyc) 84 + shladd r18=r17,3,r14 // A 85 + mov r19=NR_syscalls-1 // A 86 + ;; 87 + lfetch [r18] // M0|1 88 + mov r29=psr // M2 (12 cyc) 89 + // If r17 is a NaT, p6 will be zero 90 + cmp.geu p6,p7=r19,r17 // A (sysnr > 0 && sysnr < 1024+NR_syscalls)? 91 + ;; 92 + mov r21=ar.fpsr // M2 (12 cyc) 93 + tnat.nz p10,p9=r15 // I0 94 + mov.i r26=ar.pfs // I0 (would stall anyhow due to srlz.d...) 95 + ;; 96 + srlz.d // M0 (forces split-issue) ensure PSR.BE==0 97 + (p6) ld8 r18=[r18] // M0|1 98 + nop.i 0 99 + ;; 100 + nop.m 0 101 + (p6) tbit.z.unc p8,p0=r18,0 // I0 (dual-issues with "mov b7=r18"!) 102 + nop.i 0 103 + ;; 104 + (p8) ssm psr.i 105 + (p6) mov b7=r18 // I0 106 + (p8) br.dptk.many b7 // B 82 107 83 - mov r16=IA64_KR(CURRENT) // 12 cycle read latency 84 - tnat.nz p10,p9=r15 85 - mov r19=NR_syscalls-1 86 - ;; 87 - shladd r18=r17,3,r14 88 - 89 - srlz.d 90 - cmp.ne p8,p0=r0,r0 // p8 <- FALSE 91 - /* Note: if r17 is a NaT, p6 will be set to zero. */ 92 - cmp.geu p6,p7=r19,r17 // (syscall > 0 && syscall < 1024+NR_syscalls)? 93 - ;; 94 - (p6) ld8 r18=[r18] 95 - mov r21=ar.fpsr 96 - add r14=-8,r14 // r14 <- addr of fsys_bubble_down entry 97 - ;; 98 - (p6) mov b7=r18 99 - (p6) tbit.z p8,p0=r18,0 100 - (p8) br.dptk.many b7 101 - 102 - (p6) rsm psr.i 103 - mov r27=ar.rsc 104 - mov r26=ar.pfs 105 - ;; 106 - mov r29=psr // read psr (12 cyc load latency) 108 + mov r27=ar.rsc // M2 (12 cyc) 107 109 /* 108 110 * brl.cond doesn't work as intended because the linker would convert this branch 109 111 * into a branch to a PLT. Perhaps there will be a way to avoid this with some ··· 113 111 * instead. 114 112 */ 115 113 #ifdef CONFIG_ITANIUM 114 + (p6) add r14=-8,r14 // r14 <- addr of fsys_bubble_down entry 115 + ;; 116 116 (p6) ld8 r14=[r14] // r14 <- fsys_bubble_down 117 117 ;; 118 118 (p6) mov b7=r14 ··· 122 118 #else 123 119 BRL_COND_FSYS_BUBBLE_DOWN(p6) 124 120 #endif 125 - 121 + ssm psr.i 126 122 mov r10=-1 127 123 (p10) mov r8=EINVAL 128 124 (p9) mov r8=ENOSYS
-3
arch/ia64/kernel/ia64_ksyms.c
··· 58 58 EXPORT_SYMBOL(__strncpy_from_user); 59 59 EXPORT_SYMBOL(__strnlen_user); 60 60 61 - #include <asm/unistd.h> 62 - EXPORT_SYMBOL(__ia64_syscall); 63 - 64 61 /* from arch/ia64/lib */ 65 62 extern void __divsi3(void); 66 63 extern void __udivsi3(void);
+129 -71
arch/ia64/kernel/ivt.S
··· 1 1 /* 2 2 * arch/ia64/kernel/ivt.S 3 3 * 4 - * Copyright (C) 1998-2001, 2003 Hewlett-Packard Co 4 + * Copyright (C) 1998-2001, 2003, 2005 Hewlett-Packard Co 5 5 * Stephane Eranian <eranian@hpl.hp.com> 6 6 * David Mosberger <davidm@hpl.hp.com> 7 7 * Copyright (C) 2000, 2002-2003 Intel Co ··· 692 692 * to prevent leaking bits from kernel to user level. 693 693 */ 694 694 DBG_FAULT(11) 695 - mov r16=IA64_KR(CURRENT) // r16 = current task; 12 cycle read lat. 696 - mov r17=cr.iim 697 - mov r18=__IA64_BREAK_SYSCALL 698 - mov r21=ar.fpsr 699 - mov r29=cr.ipsr 700 - mov r19=b6 701 - mov r25=ar.unat 702 - mov r27=ar.rsc 703 - mov r26=ar.pfs 704 - mov r28=cr.iip 705 - mov r31=pr // prepare to save predicates 706 - mov r20=r1 695 + mov.m r16=IA64_KR(CURRENT) // M2 r16 <- current task (12 cyc) 696 + mov r29=cr.ipsr // M2 (12 cyc) 697 + mov r31=pr // I0 (2 cyc) 698 + 699 + mov r17=cr.iim // M2 (2 cyc) 700 + mov.m r27=ar.rsc // M2 (12 cyc) 701 + mov r18=__IA64_BREAK_SYSCALL // A 702 + 703 + mov.m ar.rsc=0 // M2 704 + mov.m r21=ar.fpsr // M2 (12 cyc) 705 + mov r19=b6 // I0 (2 cyc) 707 706 ;; 707 + mov.m r23=ar.bspstore // M2 (12 cyc) 708 + mov.m r24=ar.rnat // M2 (5 cyc) 709 + mov.i r26=ar.pfs // I0 (2 cyc) 710 + 711 + invala // M0|1 712 + nop.m 0 // M 713 + mov r20=r1 // A save r1 714 + 715 + nop.m 0 716 + movl r30=sys_call_table // X 717 + 718 + mov r28=cr.iip // M2 (2 cyc) 719 + cmp.eq p0,p7=r18,r17 // I0 is this a system call? 720 + (p7) br.cond.spnt non_syscall // B no -> 721 + // 722 + // From this point on, we are definitely on the syscall-path 723 + // and we can use (non-banked) scratch registers. 724 + // 725 + /////////////////////////////////////////////////////////////////////// 726 + mov r1=r16 // A move task-pointer to "addl"-addressable reg 727 + mov r2=r16 // A setup r2 for ia64_syscall_setup 728 + add r9=TI_FLAGS+IA64_TASK_SIZE,r16 // A r9 = &current_thread_info()->flags 729 + 708 730 adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16 709 - cmp.eq p0,p7=r18,r17 // is this a system call? (p7 <- false, if so) 710 - (p7) br.cond.spnt non_syscall 711 - ;; 712 - ld1 r17=[r16] // load current->thread.on_ustack flag 713 - st1 [r16]=r0 // clear current->thread.on_ustack flag 714 - add r1=-IA64_TASK_THREAD_ON_USTACK_OFFSET,r16 // set r1 for MINSTATE_START_SAVE_MIN_VIRT 715 - ;; 716 - invala 717 - 718 - /* adjust return address so we skip over the break instruction: */ 719 - 720 - extr.u r8=r29,41,2 // extract ei field from cr.ipsr 721 - ;; 722 - cmp.eq p6,p7=2,r8 // isr.ei==2? 723 - mov r2=r1 // setup r2 for ia64_syscall_setup 724 - ;; 725 - (p6) mov r8=0 // clear ei to 0 726 - (p6) adds r28=16,r28 // switch cr.iip to next bundle cr.ipsr.ei wrapped 727 - (p7) adds r8=1,r8 // increment ei to next slot 728 - ;; 729 - cmp.eq pKStk,pUStk=r0,r17 // are we in kernel mode already? 730 - dep r29=r8,r29,41,2 // insert new ei into cr.ipsr 731 - ;; 732 - 733 - // switch from user to kernel RBS: 734 - MINSTATE_START_SAVE_MIN_VIRT 735 - br.call.sptk.many b7=ia64_syscall_setup 736 - ;; 737 - MINSTATE_END_SAVE_MIN_VIRT // switch to bank 1 738 - ssm psr.ic | PSR_DEFAULT_BITS 739 - ;; 740 - srlz.i // guarantee that interruption collection is on 731 + adds r15=-1024,r15 // A subtract 1024 from syscall number 741 732 mov r3=NR_syscalls - 1 742 733 ;; 743 - (p15) ssm psr.i // restore psr.i 744 - // p10==true means out registers are more than 8 or r15's Nat is true 745 - (p10) br.cond.spnt.many ia64_ret_from_syscall 746 - ;; 747 - movl r16=sys_call_table 734 + ld1.bias r17=[r16] // M0|1 r17 = current->thread.on_ustack flag 735 + ld4 r9=[r9] // M0|1 r9 = current_thread_info()->flags 736 + extr.u r8=r29,41,2 // I0 extract ei field from cr.ipsr 748 737 749 - adds r15=-1024,r15 // r15 contains the syscall number---subtract 1024 750 - movl r2=ia64_ret_from_syscall 738 + shladd r30=r15,3,r30 // A r30 = sys_call_table + 8*(syscall-1024) 739 + addl r22=IA64_RBS_OFFSET,r1 // A compute base of RBS 740 + cmp.leu p6,p7=r15,r3 // A syscall number in range? 751 741 ;; 752 - shladd r20=r15,3,r16 // r20 = sys_call_table + 8*(syscall-1024) 753 - cmp.leu p6,p7=r15,r3 // (syscall > 0 && syscall < 1024 + NR_syscalls) ? 754 - mov rp=r2 // set the real return addr 755 - ;; 756 - (p6) ld8 r20=[r20] // load address of syscall entry point 757 - (p7) movl r20=sys_ni_syscall 758 742 759 - add r2=TI_FLAGS+IA64_TASK_SIZE,r13 743 + lfetch.fault.excl.nt1 [r22] // M0|1 prefetch RBS 744 + (p6) ld8 r30=[r30] // M0|1 load address of syscall entry point 745 + tnat.nz.or p7,p0=r15 // I0 is syscall nr a NaT? 746 + 747 + mov.m ar.bspstore=r22 // M2 switch to kernel RBS 748 + cmp.eq p8,p9=2,r8 // A isr.ei==2? 760 749 ;; 761 - ld4 r2=[r2] // r2 = current_thread_info()->flags 750 + 751 + (p8) mov r8=0 // A clear ei to 0 752 + (p7) movl r30=sys_ni_syscall // X 753 + 754 + (p8) adds r28=16,r28 // A switch cr.iip to next bundle 755 + (p9) adds r8=1,r8 // A increment ei to next slot 756 + nop.i 0 762 757 ;; 763 - and r2=_TIF_SYSCALL_TRACEAUDIT,r2 // mask trace or audit 758 + 759 + mov.m r25=ar.unat // M2 (5 cyc) 760 + dep r29=r8,r29,41,2 // I0 insert new ei into cr.ipsr 761 + adds r15=1024,r15 // A restore original syscall number 762 + // 763 + // If any of the above loads miss in L1D, we'll stall here until 764 + // the data arrives. 765 + // 766 + /////////////////////////////////////////////////////////////////////// 767 + st1 [r16]=r0 // M2|3 clear current->thread.on_ustack flag 768 + mov b6=r30 // I0 setup syscall handler branch reg early 769 + cmp.eq pKStk,pUStk=r0,r17 // A were we on kernel stacks already? 770 + 771 + and r9=_TIF_SYSCALL_TRACEAUDIT,r9 // A mask trace or audit 772 + mov r18=ar.bsp // M2 (12 cyc) 773 + (pKStk) br.cond.spnt .break_fixup // B we're already in kernel-mode -- fix up RBS 764 774 ;; 765 - cmp.eq p8,p0=r2,r0 766 - mov b6=r20 775 + .back_from_break_fixup: 776 + (pUStk) addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r1 // A compute base of memory stack 777 + cmp.eq p14,p0=r9,r0 // A are syscalls being traced/audited? 778 + br.call.sptk.many b7=ia64_syscall_setup // B 779 + 1: 780 + mov ar.rsc=0x3 // M2 set eager mode, pl 0, LE, loadrs=0 781 + nop 0 782 + bsw.1 // B (6 cyc) regs are saved, switch to bank 1 767 783 ;; 768 - (p8) br.call.sptk.many b6=b6 // ignore this return addr 769 - br.cond.sptk ia64_trace_syscall 784 + 785 + ssm psr.ic | PSR_DEFAULT_BITS // M2 now it's safe to re-enable intr.-collection 786 + movl r3=ia64_ret_from_syscall // X 787 + ;; 788 + 789 + srlz.i // M0 ensure interruption collection is on 790 + mov rp=r3 // I0 set the real return addr 791 + (p10) br.cond.spnt.many ia64_ret_from_syscall // B return if bad call-frame or r15 is a NaT 792 + 793 + (p15) ssm psr.i // M2 restore psr.i 794 + (p14) br.call.sptk.many b6=b6 // B invoke syscall-handker (ignore return addr) 795 + br.cond.spnt.many ia64_trace_syscall // B do syscall-tracing thingamagic 770 796 // NOT REACHED 797 + /////////////////////////////////////////////////////////////////////// 798 + // On entry, we optimistically assumed that we're coming from user-space. 799 + // For the rare cases where a system-call is done from within the kernel, 800 + // we fix things up at this point: 801 + .break_fixup: 802 + add r1=-IA64_PT_REGS_SIZE,sp // A allocate space for pt_regs structure 803 + mov ar.rnat=r24 // M2 restore kernel's AR.RNAT 804 + ;; 805 + mov ar.bspstore=r23 // M2 restore kernel's AR.BSPSTORE 806 + br.cond.sptk .back_from_break_fixup 771 807 END(break_fault) 772 808 773 809 .org ia64_ivt+0x3000 ··· 878 842 * - r31: saved pr 879 843 * - b0: original contents (to be saved) 880 844 * On exit: 881 - * - executing on bank 1 registers 882 - * - psr.ic enabled, interrupts restored 883 845 * - p10: TRUE if syscall is invoked with more than 8 out 884 846 * registers or r15's Nat is true 885 847 * - r1: kernel's gp ··· 885 851 * - r8: -EINVAL if p10 is true 886 852 * - r12: points to kernel stack 887 853 * - r13: points to current task 854 + * - r14: preserved (same as on entry) 855 + * - p13: preserved 888 856 * - p15: TRUE if interrupts need to be re-enabled 889 857 * - ar.fpsr: set to kernel settings 858 + * - b6: preserved (same as on entry) 890 859 */ 891 860 GLOBAL_ENTRY(ia64_syscall_setup) 892 861 #if PT(B6) != 0 ··· 957 920 (p13) mov in5=-1 958 921 ;; 959 922 st8 [r16]=r21,PT(R8)-PT(AR_FPSR) // save ar.fpsr 960 - tnat.nz p14,p0=in6 923 + tnat.nz p13,p0=in6 961 924 cmp.lt p10,p9=r11,r8 // frame size can't be more than local+8 962 925 ;; 963 - stf8 [r16]=f1 // ensure pt_regs.r8 != 0 (see handle_syscall_error) 926 + mov r8=1 964 927 (p9) tnat.nz p10,p0=r15 965 928 adds r12=-16,r1 // switch to kernel memory stack (with 16 bytes of scratch) 966 929 ··· 971 934 mov r13=r2 // establish `current' 972 935 movl r1=__gp // establish kernel global pointer 973 936 ;; 974 - (p14) mov in6=-1 937 + st8 [r16]=r8 // ensure pt_regs.r8 != 0 (see handle_syscall_error) 938 + (p13) mov in6=-1 975 939 (p8) mov in7=-1 976 - nop.i 0 977 940 978 941 cmp.eq pSys,pNonSys=r0,r0 // set pSys=1, pNonSys=0 979 942 movl r17=FPSR_DEFAULT ··· 1044 1007 FAULT(17) 1045 1008 1046 1009 ENTRY(non_syscall) 1010 + mov ar.rsc=r27 // restore ar.rsc before SAVE_MIN_WITH_COVER 1011 + ;; 1047 1012 SAVE_MIN_WITH_COVER 1048 1013 1049 1014 // There is no particular reason for this code to be here, other than that ··· 1243 1204 // 0x5600 Entry 26 (size 16 bundles) Nat Consumption (11,23,37,50) 1244 1205 ENTRY(nat_consumption) 1245 1206 DBG_FAULT(26) 1207 + 1208 + mov r16=cr.ipsr 1209 + mov r17=cr.isr 1210 + mov r31=pr // save PR 1211 + ;; 1212 + and r18=0xf,r17 // r18 = cr.ipsr.code{3:0} 1213 + tbit.z p6,p0=r17,IA64_ISR_NA_BIT 1214 + ;; 1215 + cmp.ne.or p6,p0=IA64_ISR_CODE_LFETCH,r18 1216 + dep r16=-1,r16,IA64_PSR_ED_BIT,1 1217 + (p6) br.cond.spnt 1f // branch if (cr.ispr.na == 0 || cr.ipsr.code{3:0} != LFETCH) 1218 + ;; 1219 + mov cr.ipsr=r16 // set cr.ipsr.na 1220 + mov pr=r31,-1 1221 + ;; 1222 + rfi 1223 + 1224 + 1: mov pr=r31,-1 1225 + ;; 1246 1226 FAULT(26) 1247 1227 END(nat_consumption) 1248 1228
+21 -1
arch/ia64/kernel/ptrace.c
··· 725 725 break; 726 726 } 727 727 728 + /* 729 + * Note: at the time of this call, the target task is blocked 730 + * in notify_resume_user() and by clearling PRED_LEAVE_SYSCALL 731 + * (aka, "pLvSys") we redirect execution from 732 + * .work_pending_syscall_end to .work_processed_kernel. 733 + */ 728 734 unw_get_pr(&prev_info, &pr); 729 - pr &= ~(1UL << PRED_SYSCALL); 735 + pr &= ~((1UL << PRED_SYSCALL) | (1UL << PRED_LEAVE_SYSCALL)); 730 736 pr |= (1UL << PRED_NON_SYSCALL); 731 737 unw_set_pr(&prev_info, pr); 732 738 733 739 pt->cr_ifs = (1UL << 63) | cfm; 740 + /* 741 + * Clear the memory that is NOT written on syscall-entry to 742 + * ensure we do not leak kernel-state to user when execution 743 + * resumes. 744 + */ 745 + pt->r2 = 0; 746 + pt->r3 = 0; 747 + pt->r14 = 0; 748 + memset(&pt->r16, 0, 16*8); /* clear r16-r31 */ 749 + memset(&pt->f6, 0, 6*16); /* clear f6-f11 */ 750 + pt->b7 = 0; 751 + pt->ar_ccv = 0; 752 + pt->ar_csd = 0; 753 + pt->ar_ssd = 0; 734 754 } 735 755 736 756 static int
+8 -4
arch/ia64/kernel/setup.c
··· 72 72 unsigned long ia64_cycles_per_usec; 73 73 struct ia64_boot_param *ia64_boot_param; 74 74 struct screen_info screen_info; 75 + unsigned long vga_console_iobase; 76 + unsigned long vga_console_membase; 75 77 76 78 unsigned long ia64_max_cacheline_size; 77 79 unsigned long ia64_iobase; /* virtual address for I/O accesses */ ··· 275 273 static inline int __init 276 274 early_console_setup (char *cmdline) 277 275 { 276 + int earlycons = 0; 277 + 278 278 #ifdef CONFIG_SERIAL_SGI_L1_CONSOLE 279 279 { 280 280 extern int sn_serial_console_early_setup(void); 281 281 if (!sn_serial_console_early_setup()) 282 - return 0; 282 + earlycons++; 283 283 } 284 284 #endif 285 285 #ifdef CONFIG_EFI_PCDP 286 286 if (!efi_setup_pcdp_console(cmdline)) 287 - return 0; 287 + earlycons++; 288 288 #endif 289 289 #ifdef CONFIG_SERIAL_8250_CONSOLE 290 290 if (!early_serial_console_init(cmdline)) 291 - return 0; 291 + earlycons++; 292 292 #endif 293 293 294 - return -1; 294 + return (earlycons) ? 0 : -1; 295 295 } 296 296 297 297 static inline void
+3
arch/ia64/kernel/smp.c
··· 231 231 void 232 232 smp_flush_tlb_mm (struct mm_struct *mm) 233 233 { 234 + preempt_disable(); 234 235 /* this happens for the common case of a single-threaded fork(): */ 235 236 if (likely(mm == current->active_mm && atomic_read(&mm->mm_users) == 1)) 236 237 { 237 238 local_finish_flush_tlb_mm(mm); 239 + preempt_enable(); 238 240 return; 239 241 } 240 242 243 + preempt_enable(); 241 244 /* 242 245 * We could optimize this further by using mm->cpu_vm_mask to track which CPUs 243 246 * 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
··· 384 384 extern void register_sn_procfs(void); 385 385 #endif 386 386 387 - if (!ia64_platform_is("sn2") || IS_RUNNING_ON_SIMULATOR()) 387 + if (!ia64_platform_is("sn2") || IS_RUNNING_ON_FAKE_PROM()) 388 388 return 0; 389 389 390 390 /*
+6
arch/ia64/sn/kernel/iomv.c
··· 9 9 #include <linux/module.h> 10 10 #include <asm/io.h> 11 11 #include <asm/delay.h> 12 + #include <asm/vga.h> 12 13 #include <asm/sn/nodepda.h> 13 14 #include <asm/sn/simulator.h> 14 15 #include <asm/sn/pda.h> 15 16 #include <asm/sn/sn_cpuid.h> 16 17 #include <asm/sn/shub_mmr.h> 18 + 19 + #define IS_LEGACY_VGA_IOPORT(p) \ 20 + (((p) >= 0x3b0 && (p) <= 0x3bb) || ((p) >= 0x3c0 && (p) <= 0x3df)) 17 21 18 22 /** 19 23 * sn_io_addr - convert an in/out port to an i/o address ··· 30 26 void *sn_io_addr(unsigned long port) 31 27 { 32 28 if (!IS_RUNNING_ON_SIMULATOR()) { 29 + if (IS_LEGACY_VGA_IOPORT(port)) 30 + port += vga_console_iobase; 33 31 /* On sn2, legacy I/O ports don't point at anything */ 34 32 if (port < (64 * 1024)) 35 33 return NULL;
+30 -15
arch/ia64/sn/kernel/setup.c
··· 36 36 #include <asm/machvec.h> 37 37 #include <asm/system.h> 38 38 #include <asm/processor.h> 39 + #include <asm/vga.h> 39 40 #include <asm/sn/arch.h> 40 41 #include <asm/sn/addrs.h> 41 42 #include <asm/sn/pda.h> ··· 96 95 EXPORT_SYMBOL(sn_coherency_id); 97 96 u8 sn_region_size; 98 97 EXPORT_SYMBOL(sn_region_size); 98 + int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */ 99 99 100 100 short physical_node_map[MAX_PHYSNODE_ID]; 101 101 ··· 275 273 276 274 ia64_sn_plat_set_error_handling_features(); 277 275 278 - /* 279 - * If the generic code has enabled vga console support - lets 280 - * get rid of it again. This is a kludge for the fact that ACPI 281 - * currtently has no way of informing us if legacy VGA is available 282 - * or not. 283 - */ 284 276 #if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE) 285 - if (conswitchp == &vga_con) { 277 + /* 278 + * If there was a primary vga adapter identified through the 279 + * EFI PCDP table, make it the preferred console. Otherwise 280 + * zero out conswitchp. 281 + */ 282 + 283 + if (vga_console_membase) { 284 + /* usable vga ... make tty0 the preferred default console */ 285 + add_preferred_console("tty", 0, NULL); 286 + } else { 286 287 printk(KERN_DEBUG "SGI: Disabling VGA console\n"); 287 288 #ifdef CONFIG_DUMMY_CONSOLE 288 289 conswitchp = &dummy_con; ··· 355 350 356 351 ia64_mark_idle = &snidle; 357 352 358 - /* 353 + /* 359 354 * For the bootcpu, we do this here. All other cpus will make the 360 355 * call as part of cpu_init in slave cpu initialization. 361 356 */ ··· 402 397 nodepdaindr[cnode] = 403 398 alloc_bootmem_node(NODE_DATA(cnode), sizeof(nodepda_t)); 404 399 memset(nodepdaindr[cnode], 0, sizeof(nodepda_t)); 405 - memset(nodepdaindr[cnode]->phys_cpuid, -1, 400 + memset(nodepdaindr[cnode]->phys_cpuid, -1, 406 401 sizeof(nodepdaindr[cnode]->phys_cpuid)); 407 402 } 408 403 ··· 432 427 } 433 428 434 429 /* 435 - * Initialize the per node hubdev. This includes IO Nodes and 430 + * Initialize the per node hubdev. This includes IO Nodes and 436 431 * headless/memless nodes. 437 432 */ 438 433 for (cnode = 0; cnode < numionodes; cnode++) { ··· 459 454 int cnode; 460 455 int i; 461 456 static int wars_have_been_checked; 457 + 458 + if (smp_processor_id() == 0 && IS_MEDUSA()) { 459 + if (ia64_sn_is_fake_prom()) 460 + sn_prom_type = 2; 461 + else 462 + sn_prom_type = 1; 463 + printk("Running on medusa with %s PROM\n", (sn_prom_type == 1) ? "real" : "fake"); 464 + } 462 465 463 466 memset(pda, 0, sizeof(pda)); 464 467 if (ia64_sn_get_sn_info(0, &sn_hub_info->shub2, &sn_hub_info->nasid_bitmask, &sn_hub_info->nasid_shift, ··· 533 520 */ 534 521 { 535 522 u64 pio1[] = {SH1_PIO_WRITE_STATUS_0, 0, SH1_PIO_WRITE_STATUS_1, 0}; 536 - u64 pio2[] = {SH2_PIO_WRITE_STATUS_0, SH2_PIO_WRITE_STATUS_1, 523 + u64 pio2[] = {SH2_PIO_WRITE_STATUS_0, SH2_PIO_WRITE_STATUS_1, 537 524 SH2_PIO_WRITE_STATUS_2, SH2_PIO_WRITE_STATUS_3}; 538 525 u64 *pio; 539 526 pio = is_shub1() ? pio1 : pio2; ··· 565 552 int nasid = 0; 566 553 lboard_t *brd; 567 554 555 + /* fakeprom does not support klgraph */ 556 + if (IS_RUNNING_ON_FAKE_PROM()) 557 + return; 558 + 568 559 /* Setup ionodes with memory */ 569 560 for (nasid = 0; nasid < MAX_PHYSNODE_ID; nasid += 2) { 570 561 char *klgraph_header; ··· 580 563 cnodeid = -1; 581 564 klgraph_header = __va(ia64_sn_get_klconfig_addr(nasid)); 582 565 if (!klgraph_header) { 583 - if (IS_RUNNING_ON_SIMULATOR()) 584 - continue; 585 566 BUG(); /* All nodes must have klconfig tables! */ 586 567 } 587 568 cnodeid = nasid_to_cnodeid(nasid); ··· 645 630 nasid_slice_to_cpuid(int nasid, int slice) 646 631 { 647 632 long cpu; 648 - 649 - for (cpu=0; cpu < NR_CPUS; cpu++) 633 + 634 + for (cpu=0; cpu < NR_CPUS; cpu++) 650 635 if (cpuid_to_nasid(cpu) == nasid && 651 636 cpuid_to_slice(cpu) == slice) 652 637 return cpu;
+1
arch/ia64/sn/kernel/sn2/ptc_deadlock.S
··· 6 6 * Copyright (C) 2000-2004 Silicon Graphics, Inc. All rights reserved. 7 7 */ 8 8 9 + #include <asm/types.h> 9 10 #include <asm/sn/shub_mmr.h> 10 11 11 12 #define DEADLOCKBIT SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_SHFT
+9 -5
arch/ia64/sn/kernel/tiocx.c
··· 204 204 cx_dev->dev.parent = NULL; 205 205 cx_dev->dev.bus = &tiocx_bus_type; 206 206 cx_dev->dev.release = tiocx_bus_release; 207 - snprintf(cx_dev->dev.bus_id, BUS_ID_SIZE, "%d.0x%x", 208 - cx_dev->cx_id.nasid, cx_dev->cx_id.part_num); 207 + snprintf(cx_dev->dev.bus_id, BUS_ID_SIZE, "%d", 208 + cx_dev->cx_id.nasid); 209 209 device_register(&cx_dev->dev); 210 210 get_device(&cx_dev->dev); 211 211 ··· 236 236 */ 237 237 static int cx_device_reload(struct cx_dev *cx_dev) 238 238 { 239 - device_remove_file(&cx_dev->dev, &dev_attr_cxdev_control); 240 239 cx_device_unregister(cx_dev); 241 240 return cx_device_register(cx_dev->cx_id.nasid, cx_dev->cx_id.part_num, 242 241 cx_dev->cx_id.mfg_num, cx_dev->hubdev); ··· 382 383 switch (tiocx_btchar_get(nasid)) { 383 384 case L1_BRICKTYPE_SA: 384 385 case L1_BRICKTYPE_ATHENA: 386 + case L1_BRICKTYPE_DAYTONA: 385 387 return 1; 386 388 } 387 389 return 0; ··· 409 409 uint64_t cx_id; 410 410 411 411 cx_id = 412 - *(volatile int32_t *)(TIO_SWIN_BASE(nasid, TIOCX_CORELET) + 412 + *(volatile uint64_t *)(TIO_SWIN_BASE(nasid, TIOCX_CORELET) + 413 413 WIDGET_ID); 414 414 part_num = XWIDGET_PART_NUM(cx_id); 415 415 mfg_num = XWIDGET_MFG_NUM(cx_id); ··· 458 458 459 459 switch (n) { 460 460 case 1: 461 + tio_corelet_reset(cx_dev->cx_id.nasid, TIOCX_CORELET); 462 + tiocx_reload(cx_dev); 463 + break; 464 + case 2: 461 465 tiocx_reload(cx_dev); 462 466 break; 463 467 case 3: ··· 541 537 bus_unregister(&tiocx_bus_type); 542 538 } 543 539 544 - module_init(tiocx_init); 540 + subsys_initcall(tiocx_init); 545 541 module_exit(tiocx_exit); 546 542 547 543 /************************************************************************
+4 -4
arch/ia64/sn/pci/tioca_provider.c
··· 336 336 if (!ct_addr) 337 337 return 0; 338 338 339 - bus_addr = (dma_addr_t) (ct_addr & 0xffffffffffff); 339 + bus_addr = (dma_addr_t) (ct_addr & 0xffffffffffffUL); 340 340 node_upper = ct_addr >> 48; 341 341 342 342 if (node_upper > 64) { ··· 464 464 * For mappings created using the direct modes (64 or 48) there are no 465 465 * resources to release. 466 466 */ 467 - void 467 + static void 468 468 tioca_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir) 469 469 { 470 470 int i, entry; ··· 514 514 * The mapping mode used is based on the devices dma_mask. As a last resort 515 515 * use the GART mapped mode. 516 516 */ 517 - uint64_t 517 + static uint64_t 518 518 tioca_dma_map(struct pci_dev *pdev, uint64_t paddr, size_t byte_count) 519 519 { 520 520 uint64_t mapaddr; ··· 580 580 * On successful setup, returns the kernel version of tioca_common back to 581 581 * the caller. 582 582 */ 583 - void * 583 + static void * 584 584 tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft) 585 585 { 586 586 struct tioca_common *tioca_common;
+21 -3
drivers/firmware/pcdp.c
··· 16 16 #include <linux/console.h> 17 17 #include <linux/efi.h> 18 18 #include <linux/serial.h> 19 + #include <asm/vga.h> 19 20 #include "pcdp.h" 20 21 21 22 static int __init ··· 41 40 } 42 41 43 42 static int __init 44 - setup_vga_console(struct pcdp_vga *vga) 43 + setup_vga_console(struct pcdp_device *dev) 45 44 { 46 45 #if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE) 47 - if (efi_mem_type(0xA0000) == EFI_CONVENTIONAL_MEMORY) { 46 + u8 *if_ptr; 47 + 48 + if_ptr = ((u8 *)dev + sizeof(struct pcdp_device)); 49 + if (if_ptr[0] == PCDP_IF_PCI) { 50 + struct pcdp_if_pci if_pci; 51 + 52 + /* struct copy since ifptr might not be correctly aligned */ 53 + 54 + memcpy(&if_pci, if_ptr, sizeof(if_pci)); 55 + 56 + if (if_pci.trans & PCDP_PCI_TRANS_IOPORT) 57 + vga_console_iobase = if_pci.ioport_tra; 58 + 59 + if (if_pci.trans & PCDP_PCI_TRANS_MMIO) 60 + vga_console_membase = if_pci.mmio_tra; 61 + } 62 + 63 + if (efi_mem_type(vga_console_membase + 0xA0000) == EFI_CONVENTIONAL_MEMORY) { 48 64 printk(KERN_ERR "PCDP: VGA selected, but frame buffer is not MMIO!\n"); 49 65 return -ENODEV; 50 66 } ··· 113 95 dev = (struct pcdp_device *) ((u8 *) dev + dev->length)) { 114 96 if (dev->flags & PCDP_PRIMARY_CONSOLE) { 115 97 if (dev->type == PCDP_CONSOLE_VGA) { 116 - return setup_vga_console((struct pcdp_vga *) dev); 98 + return setup_vga_console(dev); 117 99 } 118 100 } 119 101 }
+29 -4
drivers/firmware/pcdp.h
··· 52 52 u32 clock_rate; 53 53 u8 pci_prog_intfc; 54 54 u8 flags; 55 - }; 55 + } __attribute__((packed)); 56 + 57 + #define PCDP_IF_PCI 1 58 + 59 + /* pcdp_if_pci.trans */ 60 + #define PCDP_PCI_TRANS_IOPORT 0x02 61 + #define PCDP_PCI_TRANS_MMIO 0x01 62 + 63 + struct pcdp_if_pci { 64 + u8 interconnect; 65 + u8 reserved; 66 + u16 length; 67 + u8 segment; 68 + u8 bus; 69 + u8 dev; 70 + u8 fun; 71 + u16 dev_id; 72 + u16 vendor_id; 73 + u32 acpi_interrupt; 74 + u64 mmio_tra; 75 + u64 ioport_tra; 76 + u8 flags; 77 + u8 trans; 78 + } __attribute__((packed)); 56 79 57 80 struct pcdp_vga { 58 81 u8 count; /* address space descriptors */ 59 - }; 82 + } __attribute__((packed)); 60 83 61 84 /* pcdp_device.flags */ 62 85 #define PCDP_PRIMARY_CONSOLE 1 ··· 89 66 u8 flags; 90 67 u16 length; 91 68 u16 efi_index; 92 - }; 69 + /* next data is pcdp_if_pci or pcdp_if_acpi (not yet supported) */ 70 + /* next data is device specific type (currently only pcdp_vga) */ 71 + } __attribute__((packed)); 93 72 94 73 struct pcdp { 95 74 u8 signature[4]; ··· 106 81 u32 num_uarts; 107 82 struct pcdp_uart uart[0]; /* actual size is num_uarts */ 108 83 /* remainder of table is pcdp_device structures */ 109 - }; 84 + } __attribute__((packed));
+3
include/asm-ia64/mmu_context.h
··· 132 132 ia64_srlz_i(); /* srlz.i implies srlz.d */ 133 133 } 134 134 135 + /* 136 + * Must be called with preemption off 137 + */ 135 138 static inline void 136 139 activate_context (struct mm_struct *mm) 137 140 {
+12 -5
include/asm-ia64/sn/addrs.h
··· 216 216 #define TIO_SWIN_WIDGETNUM(x) (((x) >> TIO_SWIN_SIZE_BITS) & TIO_SWIN_WIDGET_MASK) 217 217 218 218 219 + #define TIO_IOSPACE_ADDR(n,x) \ 220 + /* Move in the Chiplet ID for TIO Local Block MMR */ \ 221 + (REMOTE_ADDR(n,x) | 1UL << (NASID_SHIFT - 2)) 222 + 219 223 /* 220 224 * The following macros produce the correct base virtual address for 221 225 * the hub registers. The REMOTE_HUB_* macro produce ··· 237 233 #define REMOTE_HUB_ADDR(n,x) \ 238 234 ((n & 1) ? \ 239 235 /* TIO: */ \ 240 - ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x))) \ 241 - : /* SHUB: */ \ 242 - (((x) & BWIN_TOP) ? ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x)))\ 236 + (is_shub2() ? \ 237 + /* TIO on Shub2 */ \ 238 + (volatile u64 *)(TIO_IOSPACE_ADDR(n,x)) \ 239 + : /* TIO on shub1 */ \ 240 + (volatile u64 *)(GLOBAL_MMR_ADDR(n,x))) \ 241 + \ 242 + : /* SHUB1 and SHUB2 MMRs: */ \ 243 + (((x) & BWIN_TOP) ? ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x))) \ 243 244 : ((volatile u64 *)(NODE_SWIN_BASE(n,1) + 0x800000 + (x))))) 244 - 245 - 246 245 247 246 #define HUB_L(x) (*((volatile typeof(*x) *)x)) 248 247 #define HUB_S(x,d) (*((volatile typeof(*x) *)x) = (d))
+1
include/asm-ia64/sn/l1.h
··· 33 33 #define L1_BRICKTYPE_PA 0x6a /* j */ 34 34 #define L1_BRICKTYPE_IA 0x6b /* k */ 35 35 #define L1_BRICKTYPE_ATHENA 0x2b /* + */ 36 + #define L1_BRICKTYPE_DAYTONA 0x7a /* z */ 36 37 37 38 #endif /* _ASM_IA64_SN_L1_H */
+174 -172
include/asm-ia64/sn/shub_mmr.h
··· 14 14 /* Register "SH_IPI_INT" */ 15 15 /* SHub Inter-Processor Interrupt Registers */ 16 16 /* ==================================================================== */ 17 - #define SH1_IPI_INT 0x0000000110000380 18 - #define SH2_IPI_INT 0x0000000010000380 17 + #define SH1_IPI_INT __IA64_UL_CONST(0x0000000110000380) 18 + #define SH2_IPI_INT __IA64_UL_CONST(0x0000000010000380) 19 19 20 20 /* SH_IPI_INT_TYPE */ 21 21 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */ 22 - #define SH_IPI_INT_TYPE_SHFT 0 23 - #define SH_IPI_INT_TYPE_MASK 0x0000000000000007 22 + #define SH_IPI_INT_TYPE_SHFT 0 23 + #define SH_IPI_INT_TYPE_MASK __IA64_UL_CONST(0x0000000000000007) 24 24 25 25 /* SH_IPI_INT_AGT */ 26 26 /* Description: Agent, must be 0 for SHub */ 27 - #define SH_IPI_INT_AGT_SHFT 3 28 - #define SH_IPI_INT_AGT_MASK 0x0000000000000008 27 + #define SH_IPI_INT_AGT_SHFT 3 28 + #define SH_IPI_INT_AGT_MASK __IA64_UL_CONST(0x0000000000000008) 29 29 30 30 /* SH_IPI_INT_PID */ 31 31 /* Description: Processor ID, same setting as on targeted McKinley */ 32 - #define SH_IPI_INT_PID_SHFT 4 33 - #define SH_IPI_INT_PID_MASK 0x00000000000ffff0 32 + #define SH_IPI_INT_PID_SHFT 4 33 + #define SH_IPI_INT_PID_MASK __IA64_UL_CONST(0x00000000000ffff0) 34 34 35 35 /* SH_IPI_INT_BASE */ 36 36 /* Description: Optional interrupt vector area, 2MB aligned */ 37 - #define SH_IPI_INT_BASE_SHFT 21 38 - #define SH_IPI_INT_BASE_MASK 0x0003ffffffe00000 37 + #define SH_IPI_INT_BASE_SHFT 21 38 + #define SH_IPI_INT_BASE_MASK __IA64_UL_CONST(0x0003ffffffe00000) 39 39 40 40 /* SH_IPI_INT_IDX */ 41 41 /* Description: Targeted McKinley interrupt vector */ 42 - #define SH_IPI_INT_IDX_SHFT 52 43 - #define SH_IPI_INT_IDX_MASK 0x0ff0000000000000 42 + #define SH_IPI_INT_IDX_SHFT 52 43 + #define SH_IPI_INT_IDX_MASK __IA64_UL_CONST(0x0ff0000000000000) 44 44 45 45 /* SH_IPI_INT_SEND */ 46 46 /* Description: Send Interrupt Message to PI, This generates a puls */ 47 - #define SH_IPI_INT_SEND_SHFT 63 48 - #define SH_IPI_INT_SEND_MASK 0x8000000000000000 47 + #define SH_IPI_INT_SEND_SHFT 63 48 + #define SH_IPI_INT_SEND_MASK __IA64_UL_CONST(0x8000000000000000) 49 49 50 50 /* ==================================================================== */ 51 51 /* Register "SH_EVENT_OCCURRED" */ 52 52 /* SHub Interrupt Event Occurred */ 53 53 /* ==================================================================== */ 54 - #define SH1_EVENT_OCCURRED 0x0000000110010000 55 - #define SH1_EVENT_OCCURRED_ALIAS 0x0000000110010008 56 - #define SH2_EVENT_OCCURRED 0x0000000010010000 57 - #define SH2_EVENT_OCCURRED_ALIAS 0x0000000010010008 54 + #define SH1_EVENT_OCCURRED __IA64_UL_CONST(0x0000000110010000) 55 + #define SH1_EVENT_OCCURRED_ALIAS __IA64_UL_CONST(0x0000000110010008) 56 + #define SH2_EVENT_OCCURRED __IA64_UL_CONST(0x0000000010010000) 57 + #define SH2_EVENT_OCCURRED_ALIAS __IA64_UL_CONST(0x0000000010010008) 58 58 59 59 /* ==================================================================== */ 60 60 /* Register "SH_PI_CAM_CONTROL" */ 61 61 /* CRB CAM MMR Access Control */ 62 62 /* ==================================================================== */ 63 - #define SH1_PI_CAM_CONTROL 0x0000000120050300 63 + #define SH1_PI_CAM_CONTROL __IA64_UL_CONST(0x0000000120050300) 64 64 65 65 /* ==================================================================== */ 66 66 /* Register "SH_SHUB_ID" */ 67 67 /* SHub ID Number */ 68 68 /* ==================================================================== */ 69 - #define SH1_SHUB_ID 0x0000000110060580 70 - #define SH1_SHUB_ID_REVISION_SHFT 28 71 - #define SH1_SHUB_ID_REVISION_MASK 0x00000000f0000000 69 + #define SH1_SHUB_ID __IA64_UL_CONST(0x0000000110060580) 70 + #define SH1_SHUB_ID_REVISION_SHFT 28 71 + #define SH1_SHUB_ID_REVISION_MASK __IA64_UL_CONST(0x00000000f0000000) 72 72 73 73 /* ==================================================================== */ 74 74 /* Register "SH_RTC" */ 75 75 /* Real-time Clock */ 76 76 /* ==================================================================== */ 77 - #define SH1_RTC 0x00000001101c0000 78 - #define SH2_RTC 0x00000002101c0000 79 - #define SH_RTC_MASK 0x007fffffffffffff 77 + #define SH1_RTC __IA64_UL_CONST(0x00000001101c0000) 78 + #define SH2_RTC __IA64_UL_CONST(0x00000002101c0000) 79 + #define SH_RTC_MASK __IA64_UL_CONST(0x007fffffffffffff) 80 80 81 81 /* ==================================================================== */ 82 82 /* Register "SH_PIO_WRITE_STATUS_0|1" */ 83 83 /* PIO Write Status for CPU 0 & 1 */ 84 84 /* ==================================================================== */ 85 - #define SH1_PIO_WRITE_STATUS_0 0x0000000120070200 86 - #define SH1_PIO_WRITE_STATUS_1 0x0000000120070280 87 - #define SH2_PIO_WRITE_STATUS_0 0x0000000020070200 88 - #define SH2_PIO_WRITE_STATUS_1 0x0000000020070280 89 - #define SH2_PIO_WRITE_STATUS_2 0x0000000020070300 90 - #define SH2_PIO_WRITE_STATUS_3 0x0000000020070380 85 + #define SH1_PIO_WRITE_STATUS_0 __IA64_UL_CONST(0x0000000120070200) 86 + #define SH1_PIO_WRITE_STATUS_1 __IA64_UL_CONST(0x0000000120070280) 87 + #define SH2_PIO_WRITE_STATUS_0 __IA64_UL_CONST(0x0000000020070200) 88 + #define SH2_PIO_WRITE_STATUS_1 __IA64_UL_CONST(0x0000000020070280) 89 + #define SH2_PIO_WRITE_STATUS_2 __IA64_UL_CONST(0x0000000020070300) 90 + #define SH2_PIO_WRITE_STATUS_3 __IA64_UL_CONST(0x0000000020070380) 91 91 92 92 /* SH_PIO_WRITE_STATUS_0_WRITE_DEADLOCK */ 93 93 /* Description: Deadlock response detected */ 94 - #define SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_SHFT 1 95 - #define SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_MASK 0x0000000000000002 94 + #define SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_SHFT 1 95 + #define SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_MASK \ 96 + __IA64_UL_CONST(0x0000000000000002) 96 97 97 98 /* SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT */ 98 99 /* Description: Count of currently pending PIO writes */ 99 - #define SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_SHFT 56 100 - #define SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_MASK 0x3f00000000000000 100 + #define SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_SHFT 56 101 + #define SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_MASK \ 102 + __IA64_UL_CONST(0x3f00000000000000) 101 103 102 104 /* ==================================================================== */ 103 105 /* Register "SH_PIO_WRITE_STATUS_0_ALIAS" */ 104 106 /* ==================================================================== */ 105 - #define SH1_PIO_WRITE_STATUS_0_ALIAS 0x0000000120070208 106 - #define SH2_PIO_WRITE_STATUS_0_ALIAS 0x0000000020070208 107 + #define SH1_PIO_WRITE_STATUS_0_ALIAS __IA64_UL_CONST(0x0000000120070208) 108 + #define SH2_PIO_WRITE_STATUS_0_ALIAS __IA64_UL_CONST(0x0000000020070208) 107 109 108 110 /* ==================================================================== */ 109 111 /* Register "SH_EVENT_OCCURRED" */ ··· 113 111 /* ==================================================================== */ 114 112 /* SH_EVENT_OCCURRED_UART_INT */ 115 113 /* Description: Pending Junk Bus UART Interrupt */ 116 - #define SH_EVENT_OCCURRED_UART_INT_SHFT 20 117 - #define SH_EVENT_OCCURRED_UART_INT_MASK 0x0000000000100000 114 + #define SH_EVENT_OCCURRED_UART_INT_SHFT 20 115 + #define SH_EVENT_OCCURRED_UART_INT_MASK __IA64_UL_CONST(0x0000000000100000) 118 116 119 117 /* SH_EVENT_OCCURRED_IPI_INT */ 120 118 /* Description: Pending IPI Interrupt */ 121 - #define SH_EVENT_OCCURRED_IPI_INT_SHFT 28 122 - #define SH_EVENT_OCCURRED_IPI_INT_MASK 0x0000000010000000 119 + #define SH_EVENT_OCCURRED_IPI_INT_SHFT 28 120 + #define SH_EVENT_OCCURRED_IPI_INT_MASK __IA64_UL_CONST(0x0000000010000000) 123 121 124 122 /* SH_EVENT_OCCURRED_II_INT0 */ 125 123 /* Description: Pending II 0 Interrupt */ 126 - #define SH_EVENT_OCCURRED_II_INT0_SHFT 29 127 - #define SH_EVENT_OCCURRED_II_INT0_MASK 0x0000000020000000 124 + #define SH_EVENT_OCCURRED_II_INT0_SHFT 29 125 + #define SH_EVENT_OCCURRED_II_INT0_MASK __IA64_UL_CONST(0x0000000020000000) 128 126 129 127 /* SH_EVENT_OCCURRED_II_INT1 */ 130 128 /* Description: Pending II 1 Interrupt */ 131 - #define SH_EVENT_OCCURRED_II_INT1_SHFT 30 132 - #define SH_EVENT_OCCURRED_II_INT1_MASK 0x0000000040000000 129 + #define SH_EVENT_OCCURRED_II_INT1_SHFT 30 130 + #define SH_EVENT_OCCURRED_II_INT1_MASK __IA64_UL_CONST(0x0000000040000000) 133 131 134 132 /* SH2_EVENT_OCCURRED_EXTIO_INT2 */ 135 133 /* Description: Pending SHUB 2 EXT IO INT2 */ 136 - #define SH2_EVENT_OCCURRED_EXTIO_INT2_SHFT 33 137 - #define SH2_EVENT_OCCURRED_EXTIO_INT2_MASK 0x0000000200000000 134 + #define SH2_EVENT_OCCURRED_EXTIO_INT2_SHFT 33 135 + #define SH2_EVENT_OCCURRED_EXTIO_INT2_MASK __IA64_UL_CONST(0x0000000200000000) 138 136 139 137 /* SH2_EVENT_OCCURRED_EXTIO_INT3 */ 140 138 /* Description: Pending SHUB 2 EXT IO INT3 */ 141 - #define SH2_EVENT_OCCURRED_EXTIO_INT3_SHFT 34 142 - #define SH2_EVENT_OCCURRED_EXTIO_INT3_MASK 0x0000000400000000 139 + #define SH2_EVENT_OCCURRED_EXTIO_INT3_SHFT 34 140 + #define SH2_EVENT_OCCURRED_EXTIO_INT3_MASK __IA64_UL_CONST(0x0000000400000000) 143 141 144 142 #define SH_ALL_INT_MASK \ 145 143 (SH_EVENT_OCCURRED_UART_INT_MASK | SH_EVENT_OCCURRED_IPI_INT_MASK | \ ··· 151 149 /* ==================================================================== */ 152 150 /* LEDS */ 153 151 /* ==================================================================== */ 154 - #define SH1_REAL_JUNK_BUS_LED0 0x7fed00000UL 155 - #define SH1_REAL_JUNK_BUS_LED1 0x7fed10000UL 156 - #define SH1_REAL_JUNK_BUS_LED2 0x7fed20000UL 157 - #define SH1_REAL_JUNK_BUS_LED3 0x7fed30000UL 152 + #define SH1_REAL_JUNK_BUS_LED0 0x7fed00000UL 153 + #define SH1_REAL_JUNK_BUS_LED1 0x7fed10000UL 154 + #define SH1_REAL_JUNK_BUS_LED2 0x7fed20000UL 155 + #define SH1_REAL_JUNK_BUS_LED3 0x7fed30000UL 158 156 159 - #define SH2_REAL_JUNK_BUS_LED0 0xf0000000UL 160 - #define SH2_REAL_JUNK_BUS_LED1 0xf0010000UL 161 - #define SH2_REAL_JUNK_BUS_LED2 0xf0020000UL 162 - #define SH2_REAL_JUNK_BUS_LED3 0xf0030000UL 157 + #define SH2_REAL_JUNK_BUS_LED0 0xf0000000UL 158 + #define SH2_REAL_JUNK_BUS_LED1 0xf0010000UL 159 + #define SH2_REAL_JUNK_BUS_LED2 0xf0020000UL 160 + #define SH2_REAL_JUNK_BUS_LED3 0xf0030000UL 163 161 164 162 /* ==================================================================== */ 165 163 /* Register "SH1_PTC_0" */ 166 164 /* Puge Translation Cache Message Configuration Information */ 167 165 /* ==================================================================== */ 168 - #define SH1_PTC_0 0x00000001101a0000 166 + #define SH1_PTC_0 __IA64_UL_CONST(0x00000001101a0000) 169 167 170 168 /* SH1_PTC_0_A */ 171 169 /* Description: Type */ 172 - #define SH1_PTC_0_A_SHFT 0 170 + #define SH1_PTC_0_A_SHFT 0 173 171 174 172 /* SH1_PTC_0_PS */ 175 173 /* Description: Page Size */ 176 - #define SH1_PTC_0_PS_SHFT 2 174 + #define SH1_PTC_0_PS_SHFT 2 177 175 178 176 /* SH1_PTC_0_RID */ 179 177 /* Description: Region ID */ 180 - #define SH1_PTC_0_RID_SHFT 8 178 + #define SH1_PTC_0_RID_SHFT 8 181 179 182 180 /* SH1_PTC_0_START */ 183 181 /* Description: Start */ 184 - #define SH1_PTC_0_START_SHFT 63 182 + #define SH1_PTC_0_START_SHFT 63 185 183 186 184 /* ==================================================================== */ 187 185 /* Register "SH1_PTC_1" */ 188 186 /* Puge Translation Cache Message Configuration Information */ 189 187 /* ==================================================================== */ 190 - #define SH1_PTC_1 0x00000001101a0080 188 + #define SH1_PTC_1 __IA64_UL_CONST(0x00000001101a0080) 191 189 192 190 /* SH1_PTC_1_START */ 193 191 /* Description: PTC_1 Start */ 194 - #define SH1_PTC_1_START_SHFT 63 195 - 192 + #define SH1_PTC_1_START_SHFT 63 196 193 197 194 /* ==================================================================== */ 198 195 /* Register "SH2_PTC" */ 199 196 /* Puge Translation Cache Message Configuration Information */ 200 197 /* ==================================================================== */ 201 - #define SH2_PTC 0x0000000170000000 198 + #define SH2_PTC __IA64_UL_CONST(0x0000000170000000) 202 199 203 200 /* SH2_PTC_A */ 204 201 /* Description: Type */ 205 - #define SH2_PTC_A_SHFT 0 202 + #define SH2_PTC_A_SHFT 0 206 203 207 204 /* SH2_PTC_PS */ 208 205 /* Description: Page Size */ 209 - #define SH2_PTC_PS_SHFT 2 206 + #define SH2_PTC_PS_SHFT 2 210 207 211 208 /* SH2_PTC_RID */ 212 209 /* Description: Region ID */ 213 - #define SH2_PTC_RID_SHFT 4 210 + #define SH2_PTC_RID_SHFT 4 214 211 215 212 /* SH2_PTC_START */ 216 213 /* Description: Start */ 217 - #define SH2_PTC_START_SHFT 63 214 + #define SH2_PTC_START_SHFT 63 218 215 219 216 /* SH2_PTC_ADDR_RID */ 220 217 /* Description: Region ID */ 221 - #define SH2_PTC_ADDR_SHFT 4 222 - #define SH2_PTC_ADDR_MASK 0x1ffffffffffff000 218 + #define SH2_PTC_ADDR_SHFT 4 219 + #define SH2_PTC_ADDR_MASK __IA64_UL_CONST(0x1ffffffffffff000) 223 220 224 221 /* ==================================================================== */ 225 222 /* Register "SH_RTC1_INT_CONFIG" */ 226 223 /* SHub RTC 1 Interrupt Config Registers */ 227 224 /* ==================================================================== */ 228 225 229 - #define SH1_RTC1_INT_CONFIG 0x0000000110001480 230 - #define SH2_RTC1_INT_CONFIG 0x0000000010001480 231 - #define SH_RTC1_INT_CONFIG_MASK 0x0ff3ffffffefffff 232 - #define SH_RTC1_INT_CONFIG_INIT 0x0000000000000000 226 + #define SH1_RTC1_INT_CONFIG __IA64_UL_CONST(0x0000000110001480) 227 + #define SH2_RTC1_INT_CONFIG __IA64_UL_CONST(0x0000000010001480) 228 + #define SH_RTC1_INT_CONFIG_MASK __IA64_UL_CONST(0x0ff3ffffffefffff) 229 + #define SH_RTC1_INT_CONFIG_INIT __IA64_UL_CONST(0x0000000000000000) 233 230 234 231 /* SH_RTC1_INT_CONFIG_TYPE */ 235 232 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */ 236 - #define SH_RTC1_INT_CONFIG_TYPE_SHFT 0 237 - #define SH_RTC1_INT_CONFIG_TYPE_MASK 0x0000000000000007 233 + #define SH_RTC1_INT_CONFIG_TYPE_SHFT 0 234 + #define SH_RTC1_INT_CONFIG_TYPE_MASK __IA64_UL_CONST(0x0000000000000007) 238 235 239 236 /* SH_RTC1_INT_CONFIG_AGT */ 240 237 /* Description: Agent, must be 0 for SHub */ 241 - #define SH_RTC1_INT_CONFIG_AGT_SHFT 3 242 - #define SH_RTC1_INT_CONFIG_AGT_MASK 0x0000000000000008 238 + #define SH_RTC1_INT_CONFIG_AGT_SHFT 3 239 + #define SH_RTC1_INT_CONFIG_AGT_MASK __IA64_UL_CONST(0x0000000000000008) 243 240 244 241 /* SH_RTC1_INT_CONFIG_PID */ 245 242 /* Description: Processor ID, same setting as on targeted McKinley */ 246 - #define SH_RTC1_INT_CONFIG_PID_SHFT 4 247 - #define SH_RTC1_INT_CONFIG_PID_MASK 0x00000000000ffff0 243 + #define SH_RTC1_INT_CONFIG_PID_SHFT 4 244 + #define SH_RTC1_INT_CONFIG_PID_MASK __IA64_UL_CONST(0x00000000000ffff0) 248 245 249 246 /* SH_RTC1_INT_CONFIG_BASE */ 250 247 /* Description: Optional interrupt vector area, 2MB aligned */ 251 - #define SH_RTC1_INT_CONFIG_BASE_SHFT 21 252 - #define SH_RTC1_INT_CONFIG_BASE_MASK 0x0003ffffffe00000 248 + #define SH_RTC1_INT_CONFIG_BASE_SHFT 21 249 + #define SH_RTC1_INT_CONFIG_BASE_MASK __IA64_UL_CONST(0x0003ffffffe00000) 253 250 254 251 /* SH_RTC1_INT_CONFIG_IDX */ 255 252 /* Description: Targeted McKinley interrupt vector */ 256 - #define SH_RTC1_INT_CONFIG_IDX_SHFT 52 257 - #define SH_RTC1_INT_CONFIG_IDX_MASK 0x0ff0000000000000 253 + #define SH_RTC1_INT_CONFIG_IDX_SHFT 52 254 + #define SH_RTC1_INT_CONFIG_IDX_MASK __IA64_UL_CONST(0x0ff0000000000000) 258 255 259 256 /* ==================================================================== */ 260 257 /* Register "SH_RTC1_INT_ENABLE" */ 261 258 /* SHub RTC 1 Interrupt Enable Registers */ 262 259 /* ==================================================================== */ 263 260 264 - #define SH1_RTC1_INT_ENABLE 0x0000000110001500 265 - #define SH2_RTC1_INT_ENABLE 0x0000000010001500 266 - #define SH_RTC1_INT_ENABLE_MASK 0x0000000000000001 267 - #define SH_RTC1_INT_ENABLE_INIT 0x0000000000000000 261 + #define SH1_RTC1_INT_ENABLE __IA64_UL_CONST(0x0000000110001500) 262 + #define SH2_RTC1_INT_ENABLE __IA64_UL_CONST(0x0000000010001500) 263 + #define SH_RTC1_INT_ENABLE_MASK __IA64_UL_CONST(0x0000000000000001) 264 + #define SH_RTC1_INT_ENABLE_INIT __IA64_UL_CONST(0x0000000000000000) 268 265 269 266 /* SH_RTC1_INT_ENABLE_RTC1_ENABLE */ 270 267 /* Description: Enable RTC 1 Interrupt */ 271 - #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_SHFT 0 272 - #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_MASK 0x0000000000000001 268 + #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_SHFT 0 269 + #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_MASK \ 270 + __IA64_UL_CONST(0x0000000000000001) 273 271 274 272 /* ==================================================================== */ 275 273 /* Register "SH_RTC2_INT_CONFIG" */ 276 274 /* SHub RTC 2 Interrupt Config Registers */ 277 275 /* ==================================================================== */ 278 276 279 - #define SH1_RTC2_INT_CONFIG 0x0000000110001580 280 - #define SH2_RTC2_INT_CONFIG 0x0000000010001580 281 - #define SH_RTC2_INT_CONFIG_MASK 0x0ff3ffffffefffff 282 - #define SH_RTC2_INT_CONFIG_INIT 0x0000000000000000 277 + #define SH1_RTC2_INT_CONFIG __IA64_UL_CONST(0x0000000110001580) 278 + #define SH2_RTC2_INT_CONFIG __IA64_UL_CONST(0x0000000010001580) 279 + #define SH_RTC2_INT_CONFIG_MASK __IA64_UL_CONST(0x0ff3ffffffefffff) 280 + #define SH_RTC2_INT_CONFIG_INIT __IA64_UL_CONST(0x0000000000000000) 283 281 284 282 /* SH_RTC2_INT_CONFIG_TYPE */ 285 283 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */ 286 - #define SH_RTC2_INT_CONFIG_TYPE_SHFT 0 287 - #define SH_RTC2_INT_CONFIG_TYPE_MASK 0x0000000000000007 284 + #define SH_RTC2_INT_CONFIG_TYPE_SHFT 0 285 + #define SH_RTC2_INT_CONFIG_TYPE_MASK __IA64_UL_CONST(0x0000000000000007) 288 286 289 287 /* SH_RTC2_INT_CONFIG_AGT */ 290 288 /* Description: Agent, must be 0 for SHub */ 291 - #define SH_RTC2_INT_CONFIG_AGT_SHFT 3 292 - #define SH_RTC2_INT_CONFIG_AGT_MASK 0x0000000000000008 289 + #define SH_RTC2_INT_CONFIG_AGT_SHFT 3 290 + #define SH_RTC2_INT_CONFIG_AGT_MASK __IA64_UL_CONST(0x0000000000000008) 293 291 294 292 /* SH_RTC2_INT_CONFIG_PID */ 295 293 /* Description: Processor ID, same setting as on targeted McKinley */ 296 - #define SH_RTC2_INT_CONFIG_PID_SHFT 4 297 - #define SH_RTC2_INT_CONFIG_PID_MASK 0x00000000000ffff0 294 + #define SH_RTC2_INT_CONFIG_PID_SHFT 4 295 + #define SH_RTC2_INT_CONFIG_PID_MASK __IA64_UL_CONST(0x00000000000ffff0) 298 296 299 297 /* SH_RTC2_INT_CONFIG_BASE */ 300 298 /* Description: Optional interrupt vector area, 2MB aligned */ 301 - #define SH_RTC2_INT_CONFIG_BASE_SHFT 21 302 - #define SH_RTC2_INT_CONFIG_BASE_MASK 0x0003ffffffe00000 299 + #define SH_RTC2_INT_CONFIG_BASE_SHFT 21 300 + #define SH_RTC2_INT_CONFIG_BASE_MASK __IA64_UL_CONST(0x0003ffffffe00000) 303 301 304 302 /* SH_RTC2_INT_CONFIG_IDX */ 305 303 /* Description: Targeted McKinley interrupt vector */ 306 - #define SH_RTC2_INT_CONFIG_IDX_SHFT 52 307 - #define SH_RTC2_INT_CONFIG_IDX_MASK 0x0ff0000000000000 304 + #define SH_RTC2_INT_CONFIG_IDX_SHFT 52 305 + #define SH_RTC2_INT_CONFIG_IDX_MASK __IA64_UL_CONST(0x0ff0000000000000) 308 306 309 307 /* ==================================================================== */ 310 308 /* Register "SH_RTC2_INT_ENABLE" */ 311 309 /* SHub RTC 2 Interrupt Enable Registers */ 312 310 /* ==================================================================== */ 313 311 314 - #define SH1_RTC2_INT_ENABLE 0x0000000110001600 315 - #define SH2_RTC2_INT_ENABLE 0x0000000010001600 316 - #define SH_RTC2_INT_ENABLE_MASK 0x0000000000000001 317 - #define SH_RTC2_INT_ENABLE_INIT 0x0000000000000000 312 + #define SH1_RTC2_INT_ENABLE __IA64_UL_CONST(0x0000000110001600) 313 + #define SH2_RTC2_INT_ENABLE __IA64_UL_CONST(0x0000000010001600) 314 + #define SH_RTC2_INT_ENABLE_MASK __IA64_UL_CONST(0x0000000000000001) 315 + #define SH_RTC2_INT_ENABLE_INIT __IA64_UL_CONST(0x0000000000000000) 318 316 319 317 /* SH_RTC2_INT_ENABLE_RTC2_ENABLE */ 320 318 /* Description: Enable RTC 2 Interrupt */ 321 - #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_SHFT 0 322 - #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_MASK 0x0000000000000001 319 + #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_SHFT 0 320 + #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_MASK \ 321 + __IA64_UL_CONST(0x0000000000000001) 323 322 324 323 /* ==================================================================== */ 325 324 /* Register "SH_RTC3_INT_CONFIG" */ 326 325 /* SHub RTC 3 Interrupt Config Registers */ 327 326 /* ==================================================================== */ 328 327 329 - #define SH1_RTC3_INT_CONFIG 0x0000000110001680 330 - #define SH2_RTC3_INT_CONFIG 0x0000000010001680 331 - #define SH_RTC3_INT_CONFIG_MASK 0x0ff3ffffffefffff 332 - #define SH_RTC3_INT_CONFIG_INIT 0x0000000000000000 328 + #define SH1_RTC3_INT_CONFIG __IA64_UL_CONST(0x0000000110001680) 329 + #define SH2_RTC3_INT_CONFIG __IA64_UL_CONST(0x0000000010001680) 330 + #define SH_RTC3_INT_CONFIG_MASK __IA64_UL_CONST(0x0ff3ffffffefffff) 331 + #define SH_RTC3_INT_CONFIG_INIT __IA64_UL_CONST(0x0000000000000000) 333 332 334 333 /* SH_RTC3_INT_CONFIG_TYPE */ 335 334 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */ 336 - #define SH_RTC3_INT_CONFIG_TYPE_SHFT 0 337 - #define SH_RTC3_INT_CONFIG_TYPE_MASK 0x0000000000000007 335 + #define SH_RTC3_INT_CONFIG_TYPE_SHFT 0 336 + #define SH_RTC3_INT_CONFIG_TYPE_MASK __IA64_UL_CONST(0x0000000000000007) 338 337 339 338 /* SH_RTC3_INT_CONFIG_AGT */ 340 339 /* Description: Agent, must be 0 for SHub */ 341 - #define SH_RTC3_INT_CONFIG_AGT_SHFT 3 342 - #define SH_RTC3_INT_CONFIG_AGT_MASK 0x0000000000000008 340 + #define SH_RTC3_INT_CONFIG_AGT_SHFT 3 341 + #define SH_RTC3_INT_CONFIG_AGT_MASK __IA64_UL_CONST(0x0000000000000008) 343 342 344 343 /* SH_RTC3_INT_CONFIG_PID */ 345 344 /* Description: Processor ID, same setting as on targeted McKinley */ 346 - #define SH_RTC3_INT_CONFIG_PID_SHFT 4 347 - #define SH_RTC3_INT_CONFIG_PID_MASK 0x00000000000ffff0 345 + #define SH_RTC3_INT_CONFIG_PID_SHFT 4 346 + #define SH_RTC3_INT_CONFIG_PID_MASK __IA64_UL_CONST(0x00000000000ffff0) 348 347 349 348 /* SH_RTC3_INT_CONFIG_BASE */ 350 349 /* Description: Optional interrupt vector area, 2MB aligned */ 351 - #define SH_RTC3_INT_CONFIG_BASE_SHFT 21 352 - #define SH_RTC3_INT_CONFIG_BASE_MASK 0x0003ffffffe00000 350 + #define SH_RTC3_INT_CONFIG_BASE_SHFT 21 351 + #define SH_RTC3_INT_CONFIG_BASE_MASK __IA64_UL_CONST(0x0003ffffffe00000) 353 352 354 353 /* SH_RTC3_INT_CONFIG_IDX */ 355 354 /* Description: Targeted McKinley interrupt vector */ 356 - #define SH_RTC3_INT_CONFIG_IDX_SHFT 52 357 - #define SH_RTC3_INT_CONFIG_IDX_MASK 0x0ff0000000000000 355 + #define SH_RTC3_INT_CONFIG_IDX_SHFT 52 356 + #define SH_RTC3_INT_CONFIG_IDX_MASK __IA64_UL_CONST(0x0ff0000000000000) 358 357 359 358 /* ==================================================================== */ 360 359 /* Register "SH_RTC3_INT_ENABLE" */ 361 360 /* SHub RTC 3 Interrupt Enable Registers */ 362 361 /* ==================================================================== */ 363 362 364 - #define SH1_RTC3_INT_ENABLE 0x0000000110001700 365 - #define SH2_RTC3_INT_ENABLE 0x0000000010001700 366 - #define SH_RTC3_INT_ENABLE_MASK 0x0000000000000001 367 - #define SH_RTC3_INT_ENABLE_INIT 0x0000000000000000 363 + #define SH1_RTC3_INT_ENABLE __IA64_UL_CONST(0x0000000110001700) 364 + #define SH2_RTC3_INT_ENABLE __IA64_UL_CONST(0x0000000010001700) 365 + #define SH_RTC3_INT_ENABLE_MASK __IA64_UL_CONST(0x0000000000000001) 366 + #define SH_RTC3_INT_ENABLE_INIT __IA64_UL_CONST(0x0000000000000000) 368 367 369 368 /* SH_RTC3_INT_ENABLE_RTC3_ENABLE */ 370 369 /* Description: Enable RTC 3 Interrupt */ 371 - #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_SHFT 0 372 - #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_MASK 0x0000000000000001 370 + #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_SHFT 0 371 + #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_MASK \ 372 + __IA64_UL_CONST(0x0000000000000001) 373 373 374 374 /* SH_EVENT_OCCURRED_RTC1_INT */ 375 375 /* Description: Pending RTC 1 Interrupt */ 376 - #define SH_EVENT_OCCURRED_RTC1_INT_SHFT 24 377 - #define SH_EVENT_OCCURRED_RTC1_INT_MASK 0x0000000001000000 376 + #define SH_EVENT_OCCURRED_RTC1_INT_SHFT 24 377 + #define SH_EVENT_OCCURRED_RTC1_INT_MASK __IA64_UL_CONST(0x0000000001000000) 378 378 379 379 /* SH_EVENT_OCCURRED_RTC2_INT */ 380 380 /* Description: Pending RTC 2 Interrupt */ 381 - #define SH_EVENT_OCCURRED_RTC2_INT_SHFT 25 382 - #define SH_EVENT_OCCURRED_RTC2_INT_MASK 0x0000000002000000 381 + #define SH_EVENT_OCCURRED_RTC2_INT_SHFT 25 382 + #define SH_EVENT_OCCURRED_RTC2_INT_MASK __IA64_UL_CONST(0x0000000002000000) 383 383 384 384 /* SH_EVENT_OCCURRED_RTC3_INT */ 385 385 /* Description: Pending RTC 3 Interrupt */ 386 - #define SH_EVENT_OCCURRED_RTC3_INT_SHFT 26 387 - #define SH_EVENT_OCCURRED_RTC3_INT_MASK 0x0000000004000000 386 + #define SH_EVENT_OCCURRED_RTC3_INT_SHFT 26 387 + #define SH_EVENT_OCCURRED_RTC3_INT_MASK __IA64_UL_CONST(0x0000000004000000) 388 388 389 389 /* ==================================================================== */ 390 390 /* Register "SH_IPI_ACCESS" */ 391 391 /* CPU interrupt Access Permission Bits */ 392 392 /* ==================================================================== */ 393 393 394 - #define SH1_IPI_ACCESS 0x0000000110060480 395 - #define SH2_IPI_ACCESS0 0x0000000010060c00 396 - #define SH2_IPI_ACCESS1 0x0000000010060c80 397 - #define SH2_IPI_ACCESS2 0x0000000010060d00 398 - #define SH2_IPI_ACCESS3 0x0000000010060d80 394 + #define SH1_IPI_ACCESS __IA64_UL_CONST(0x0000000110060480) 395 + #define SH2_IPI_ACCESS0 __IA64_UL_CONST(0x0000000010060c00) 396 + #define SH2_IPI_ACCESS1 __IA64_UL_CONST(0x0000000010060c80) 397 + #define SH2_IPI_ACCESS2 __IA64_UL_CONST(0x0000000010060d00) 398 + #define SH2_IPI_ACCESS3 __IA64_UL_CONST(0x0000000010060d80) 399 399 400 400 /* ==================================================================== */ 401 401 /* Register "SH_INT_CMPB" */ 402 402 /* RTC Compare Value for Processor B */ 403 403 /* ==================================================================== */ 404 404 405 - #define SH1_INT_CMPB 0x00000001101b0080 406 - #define SH2_INT_CMPB 0x00000000101b0080 407 - #define SH_INT_CMPB_MASK 0x007fffffffffffff 408 - #define SH_INT_CMPB_INIT 0x0000000000000000 405 + #define SH1_INT_CMPB __IA64_UL_CONST(0x00000001101b0080) 406 + #define SH2_INT_CMPB __IA64_UL_CONST(0x00000000101b0080) 407 + #define SH_INT_CMPB_MASK __IA64_UL_CONST(0x007fffffffffffff) 408 + #define SH_INT_CMPB_INIT __IA64_UL_CONST(0x0000000000000000) 409 409 410 410 /* SH_INT_CMPB_REAL_TIME_CMPB */ 411 411 /* Description: Real Time Clock Compare */ 412 - #define SH_INT_CMPB_REAL_TIME_CMPB_SHFT 0 413 - #define SH_INT_CMPB_REAL_TIME_CMPB_MASK 0x007fffffffffffff 412 + #define SH_INT_CMPB_REAL_TIME_CMPB_SHFT 0 413 + #define SH_INT_CMPB_REAL_TIME_CMPB_MASK __IA64_UL_CONST(0x007fffffffffffff) 414 414 415 415 /* ==================================================================== */ 416 416 /* Register "SH_INT_CMPC" */ 417 417 /* RTC Compare Value for Processor C */ 418 418 /* ==================================================================== */ 419 419 420 - #define SH1_INT_CMPC 0x00000001101b0100 421 - #define SH2_INT_CMPC 0x00000000101b0100 422 - #define SH_INT_CMPC_MASK 0x007fffffffffffff 423 - #define SH_INT_CMPC_INIT 0x0000000000000000 420 + #define SH1_INT_CMPC __IA64_UL_CONST(0x00000001101b0100) 421 + #define SH2_INT_CMPC __IA64_UL_CONST(0x00000000101b0100) 422 + #define SH_INT_CMPC_MASK __IA64_UL_CONST(0x007fffffffffffff) 423 + #define SH_INT_CMPC_INIT __IA64_UL_CONST(0x0000000000000000) 424 424 425 425 /* SH_INT_CMPC_REAL_TIME_CMPC */ 426 426 /* Description: Real Time Clock Compare */ 427 - #define SH_INT_CMPC_REAL_TIME_CMPC_SHFT 0 428 - #define SH_INT_CMPC_REAL_TIME_CMPC_MASK 0x007fffffffffffff 427 + #define SH_INT_CMPC_REAL_TIME_CMPC_SHFT 0 428 + #define SH_INT_CMPC_REAL_TIME_CMPC_MASK __IA64_UL_CONST(0x007fffffffffffff) 429 429 430 430 /* ==================================================================== */ 431 431 /* Register "SH_INT_CMPD" */ 432 432 /* RTC Compare Value for Processor D */ 433 433 /* ==================================================================== */ 434 434 435 - #define SH1_INT_CMPD 0x00000001101b0180 436 - #define SH2_INT_CMPD 0x00000000101b0180 437 - #define SH_INT_CMPD_MASK 0x007fffffffffffff 438 - #define SH_INT_CMPD_INIT 0x0000000000000000 435 + #define SH1_INT_CMPD __IA64_UL_CONST(0x00000001101b0180) 436 + #define SH2_INT_CMPD __IA64_UL_CONST(0x00000000101b0180) 437 + #define SH_INT_CMPD_MASK __IA64_UL_CONST(0x007fffffffffffff) 438 + #define SH_INT_CMPD_INIT __IA64_UL_CONST(0x0000000000000000) 439 439 440 440 /* SH_INT_CMPD_REAL_TIME_CMPD */ 441 441 /* Description: Real Time Clock Compare */ 442 - #define SH_INT_CMPD_REAL_TIME_CMPD_SHFT 0 443 - #define SH_INT_CMPD_REAL_TIME_CMPD_MASK 0x007fffffffffffff 442 + #define SH_INT_CMPD_REAL_TIME_CMPD_SHFT 0 443 + #define SH_INT_CMPD_REAL_TIME_CMPD_MASK __IA64_UL_CONST(0x007fffffffffffff) 444 444 445 445 /* ==================================================================== */ 446 446 /* Register "SH_MD_DQLP_MMR_DIR_PRIVEC0" */ 447 447 /* privilege vector for acc=0 */ 448 448 /* ==================================================================== */ 449 - 450 - #define SH1_MD_DQLP_MMR_DIR_PRIVEC0 0x0000000100030300 449 + #define SH1_MD_DQLP_MMR_DIR_PRIVEC0 __IA64_UL_CONST(0x0000000100030300) 451 450 452 451 /* ==================================================================== */ 453 452 /* Register "SH_MD_DQRP_MMR_DIR_PRIVEC0" */ 454 453 /* privilege vector for acc=0 */ 455 454 /* ==================================================================== */ 456 - 457 - #define SH1_MD_DQRP_MMR_DIR_PRIVEC0 0x0000000100050300 455 + #define SH1_MD_DQRP_MMR_DIR_PRIVEC0 __IA64_UL_CONST(0x0000000100050300) 458 456 459 457 /* ==================================================================== */ 460 458 /* Some MMRs are functionally identical (or close enough) on both SHUB1 */ ··· 486 484 /* Engine 0 Control and Status Register */ 487 485 /* ========================================================================== */ 488 486 489 - #define SH2_BT_ENG_CSR_0 0x0000000030040000 490 - #define SH2_BT_ENG_SRC_ADDR_0 0x0000000030040080 491 - #define SH2_BT_ENG_DEST_ADDR_0 0x0000000030040100 492 - #define SH2_BT_ENG_NOTIF_ADDR_0 0x0000000030040180 487 + #define SH2_BT_ENG_CSR_0 __IA64_UL_CONST(0x0000000030040000) 488 + #define SH2_BT_ENG_SRC_ADDR_0 __IA64_UL_CONST(0x0000000030040080) 489 + #define SH2_BT_ENG_DEST_ADDR_0 __IA64_UL_CONST(0x0000000030040100) 490 + #define SH2_BT_ENG_NOTIF_ADDR_0 __IA64_UL_CONST(0x0000000030040180) 493 491 494 492 /* ========================================================================== */ 495 493 /* BTE interfaces 1-3 */ 496 494 /* ========================================================================== */ 497 495 498 - #define SH2_BT_ENG_CSR_1 0x0000000030050000 499 - #define SH2_BT_ENG_CSR_2 0x0000000030060000 500 - #define SH2_BT_ENG_CSR_3 0x0000000030070000 496 + #define SH2_BT_ENG_CSR_1 __IA64_UL_CONST(0x0000000030050000) 497 + #define SH2_BT_ENG_CSR_2 __IA64_UL_CONST(0x0000000030060000) 498 + #define SH2_BT_ENG_CSR_3 __IA64_UL_CONST(0x0000000030070000) 501 499 502 500 #endif /* _ASM_IA64_SN_SHUB_MMR_H */
+7 -6
include/asm-ia64/sn/simulator.h
··· 10 10 11 11 #include <linux/config.h> 12 12 13 - #ifdef CONFIG_IA64_SGI_SN_SIM 14 - 15 13 #define SNMAGIC 0xaeeeeeee8badbeefL 16 - #define IS_RUNNING_ON_SIMULATOR() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;}) 14 + #define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;}) 17 15 18 - #define SIMULATOR_SLEEP() asm("nop.i 0x8beef") 19 - 16 + #ifdef CONFIG_IA64_SGI_SN_SIM 17 + #define SIMULATOR_SLEEP() asm("nop.i 0x8beef") 18 + #define IS_RUNNING_ON_SIMULATOR() (sn_prom_type) 19 + #define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2) 20 + extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */ 20 21 #else 21 - 22 22 #define IS_RUNNING_ON_SIMULATOR() (0) 23 + #define IS_RUNNING_ON_FAKE_PROM() (0) 23 24 #define SIMULATOR_SLEEP() 24 25 25 26 #endif
+2
include/asm-ia64/sn/sn2/sn_hwperf.h
··· 223 223 #define SN_HWPERF_OP_RECONFIGURE 253 224 224 #define SN_HWPERF_OP_INVAL 254 225 225 226 + int sn_topology_open(struct inode *inode, struct file *file); 227 + int sn_topology_release(struct inode *inode, struct file *file); 226 228 #endif /* SN_HWPERF_H */
+10
include/asm-ia64/sn/sn_sal.h
··· 132 132 #define SALRET_INVALID_ARG (-2) 133 133 #define SALRET_ERROR (-3) 134 134 135 + #define SN_SAL_FAKE_PROM 0x02009999 136 + 135 137 136 138 /** 137 139 * sn_sal_rev_major - get the major SGI SAL revision number ··· 1105 1103 if (rv.status == SALRET_NOT_IMPLEMENTED) 1106 1104 return 0; 1107 1105 return (int) rv.status; 1106 + } 1107 + 1108 + static inline int 1109 + ia64_sn_is_fake_prom(void) 1110 + { 1111 + struct ia64_sal_retval rv; 1112 + SAL_CALL_NOLOCK(rv, SN_SAL_FAKE_PROM, 0, 0, 0, 0, 0, 0, 0); 1113 + return (rv.status == 0); 1108 1114 } 1109 1115 1110 1116 #endif /* _ASM_IA64_SN_SN_SAL_H */
+1
include/asm-ia64/sn/tioca_provider.h
··· 201 201 } 202 202 203 203 extern uint32_t tioca_gart_found; 204 + extern struct list_head tioca_list; 204 205 extern int tioca_init_provider(void); 205 206 extern void tioca_fastwrite_enable(struct tioca_kernel *tioca_kern); 206 207 #endif /* _ASM_IA64_SN_TIO_CA_AGP_PROVIDER_H */
+4 -1
include/asm-ia64/vga.h
··· 14 14 * videoram directly without any black magic. 15 15 */ 16 16 17 - #define VGA_MAP_MEM(x) ((unsigned long) ioremap((x), 0)) 17 + extern unsigned long vga_console_iobase; 18 + extern unsigned long vga_console_membase; 19 + 20 + #define VGA_MAP_MEM(x) ((unsigned long) ioremap(vga_console_membase + (x), 0)) 18 21 19 22 #define vga_readb(x) (*(x)) 20 23 #define vga_writeb(x,y) (*(y) = (x))