Commit c53653130f2868e44c6e8346d110d27d39e7d07b
Committed by
Paul Mackerras
1 parent
cfcd1705b6
Exists in
master
and in
7 other branches
[POWERPC] Remove the broken Gemini support
Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
Showing 17 changed files with 2 additions and 1675 deletions Side-by-side Diff
- arch/powerpc/kernel/head_32.S
- arch/powerpc/platforms/embedded6xx/Kconfig
- arch/ppc/Kconfig
- arch/ppc/boot/simple/Makefile
- arch/ppc/boot/simple/misc.c
- arch/ppc/configs/gemini_defconfig
- arch/ppc/kernel/head.S
- arch/ppc/platforms/Makefile
- arch/ppc/platforms/gemini.h
- arch/ppc/platforms/gemini_pci.c
- arch/ppc/platforms/gemini_prom.S
- arch/ppc/platforms/gemini_serial.h
- arch/ppc/platforms/gemini_setup.c
- arch/ppc/syslib/Makefile
- arch/ppc/xmon/start.c
- include/asm-ppc/m48t35.h
- include/asm-ppc/serial.h
arch/powerpc/kernel/head_32.S
| ... | ... | @@ -344,12 +344,7 @@ |
| 344 | 344 | /* System reset */ |
| 345 | 345 | /* core99 pmac starts the seconary here by changing the vector, and |
| 346 | 346 | putting it back to what it was (unknown_exception) when done. */ |
| 347 | -#if defined(CONFIG_GEMINI) && defined(CONFIG_SMP) | |
| 348 | - . = 0x100 | |
| 349 | - b __secondary_start_gemini | |
| 350 | -#else | |
| 351 | 347 | EXCEPTION(0x100, Reset, unknown_exception, EXC_XFER_STD) |
| 352 | -#endif | |
| 353 | 348 | |
| 354 | 349 | /* Machine check */ |
| 355 | 350 | /* |
arch/powerpc/platforms/embedded6xx/Kconfig
| ... | ... | @@ -104,15 +104,6 @@ |
| 104 | 104 | config PAL4 |
| 105 | 105 | bool "SBS-Palomar4" |
| 106 | 106 | |
| 107 | -config GEMINI | |
| 108 | - bool "Synergy-Gemini" | |
| 109 | - select PPC_INDIRECT_PCI | |
| 110 | - depends on BROKEN | |
| 111 | - help | |
| 112 | - Select Gemini if configuring for a Synergy Microsystems' Gemini | |
| 113 | - series Single Board Computer. More information is available at: | |
| 114 | - <http://www.synergymicro.com/PressRel/97_10_15.html>. | |
| 115 | - | |
| 116 | 107 | config EST8260 |
| 117 | 108 | bool "EST8260" |
| 118 | 109 | ---help--- |
arch/ppc/Kconfig
| ... | ... | @@ -670,15 +670,6 @@ |
| 670 | 670 | config PAL4 |
| 671 | 671 | bool "SBS-Palomar4" |
| 672 | 672 | |
| 673 | -config GEMINI | |
| 674 | - bool "Synergy-Gemini" | |
| 675 | - depends on BROKEN | |
| 676 | - select PPC_INDIRECT_PCI | |
| 677 | - help | |
| 678 | - Select Gemini if configuring for a Synergy Microsystems' Gemini | |
| 679 | - series Single Board Computer. More information is available at: | |
| 680 | - <http://www.synergymicro.com/PressRel/97_10_15.html>. | |
| 681 | - | |
| 682 | 673 | config EST8260 |
| 683 | 674 | bool "EST8260" |
| 684 | 675 | ---help--- |
arch/ppc/boot/simple/Makefile
| ... | ... | @@ -116,10 +116,6 @@ |
| 116 | 116 | extra.o-$(CONFIG_CHESTNUT) := misc-chestnut.o |
| 117 | 117 | end-$(CONFIG_CHESTNUT) := chestnut |
| 118 | 118 | |
| 119 | - zimage-$(CONFIG_GEMINI) := zImage-STRIPELF | |
| 120 | -zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF | |
| 121 | - end-$(CONFIG_GEMINI) := gemini | |
| 122 | - | |
| 123 | 119 | extra.o-$(CONFIG_KATANA) := misc-katana.o |
| 124 | 120 | end-$(CONFIG_KATANA) := katana |
| 125 | 121 | cacheflag-$(CONFIG_KATANA) := -include $(clear_L2_L3) |
arch/ppc/boot/simple/misc.c
| ... | ... | @@ -42,14 +42,11 @@ |
| 42 | 42 | #endif |
| 43 | 43 | |
| 44 | 44 | /* Will / Can the user give input? |
| 45 | - * Val Henson has requested that Gemini doesn't wait for the | |
| 46 | - * user to edit the cmdline or not. | |
| 47 | 45 | */ |
| 48 | 46 | #if (defined(CONFIG_SERIAL_8250_CONSOLE) \ |
| 49 | 47 | || defined(CONFIG_VGA_CONSOLE) \ |
| 50 | 48 | || defined(CONFIG_SERIAL_MPC52xx_CONSOLE) \ |
| 51 | - || defined(CONFIG_SERIAL_MPSC_CONSOLE)) \ | |
| 52 | - && !defined(CONFIG_GEMINI) | |
| 49 | + || defined(CONFIG_SERIAL_MPSC_CONSOLE)) | |
| 53 | 50 | #define INTERACTIVE_CONSOLE 1 |
| 54 | 51 | #endif |
| 55 | 52 | |
| ... | ... | @@ -178,16 +175,6 @@ |
| 178 | 175 | |
| 179 | 176 | if (keyb_present) |
| 180 | 177 | CRT_tstc(); /* Forces keyboard to be initialized */ |
| 181 | -#ifdef CONFIG_GEMINI | |
| 182 | - /* | |
| 183 | - * If cmd_line is empty and cmd_preset is not, copy cmd_preset | |
| 184 | - * to cmd_line. This way we can override cmd_preset with the | |
| 185 | - * command line from Smon. | |
| 186 | - */ | |
| 187 | - | |
| 188 | - if ( (cmd_line[0] == '\0') && (cmd_preset[0] != '\0')) | |
| 189 | - memcpy (cmd_line, cmd_preset, sizeof(cmd_preset)); | |
| 190 | -#endif | |
| 191 | 178 | |
| 192 | 179 | /* Display standard Linux/PPC boot prompt for kernel args */ |
| 193 | 180 | puts("\nLinux/PPC load: "); |
arch/ppc/configs/gemini_defconfig
| 1 | -# | |
| 2 | -# Automatically generated make config: don't edit | |
| 3 | -# | |
| 4 | -CONFIG_MMU=y | |
| 5 | -CONFIG_RWSEM_XCHGADD_ALGORITHM=y | |
| 6 | -CONFIG_HAVE_DEC_LOCK=y | |
| 7 | - | |
| 8 | -# | |
| 9 | -# Code maturity level options | |
| 10 | -# | |
| 11 | -CONFIG_EXPERIMENTAL=y | |
| 12 | - | |
| 13 | -# | |
| 14 | -# General setup | |
| 15 | -# | |
| 16 | -CONFIG_SWAP=y | |
| 17 | -CONFIG_SYSVIPC=y | |
| 18 | -# CONFIG_BSD_PROCESS_ACCT is not set | |
| 19 | -CONFIG_SYSCTL=y | |
| 20 | -CONFIG_LOG_BUF_SHIFT=14 | |
| 21 | -# CONFIG_EMBEDDED is not set | |
| 22 | -CONFIG_FUTEX=y | |
| 23 | -CONFIG_EPOLL=y | |
| 24 | - | |
| 25 | -# | |
| 26 | -# Loadable module support | |
| 27 | -# | |
| 28 | -CONFIG_MODULES=y | |
| 29 | -CONFIG_MODULE_UNLOAD=y | |
| 30 | -# CONFIG_MODULE_FORCE_UNLOAD is not set | |
| 31 | -CONFIG_OBSOLETE_MODPARM=y | |
| 32 | -# CONFIG_MODVERSIONS is not set | |
| 33 | -CONFIG_KMOD=y | |
| 34 | - | |
| 35 | -# | |
| 36 | -# Platform support | |
| 37 | -# | |
| 38 | -CONFIG_PPC=y | |
| 39 | -CONFIG_PPC32=y | |
| 40 | -CONFIG_6xx=y | |
| 41 | -# CONFIG_40x is not set | |
| 42 | -# CONFIG_POWER3 is not set | |
| 43 | -# CONFIG_8xx is not set | |
| 44 | - | |
| 45 | -# | |
| 46 | -# IBM 4xx options | |
| 47 | -# | |
| 48 | -# CONFIG_8260 is not set | |
| 49 | -CONFIG_GENERIC_ISA_DMA=y | |
| 50 | -CONFIG_PPC_STD_MMU=y | |
| 51 | -# CONFIG_PPC_MULTIPLATFORM is not set | |
| 52 | -# CONFIG_APUS is not set | |
| 53 | -# CONFIG_WILLOW_2 is not set | |
| 54 | -# CONFIG_PCORE is not set | |
| 55 | -# CONFIG_POWERPMC250 is not set | |
| 56 | -# CONFIG_EV64260 is not set | |
| 57 | -# CONFIG_SPRUCE is not set | |
| 58 | -# CONFIG_LOPEC is not set | |
| 59 | -# CONFIG_MCPN765 is not set | |
| 60 | -# CONFIG_MVME5100 is not set | |
| 61 | -# CONFIG_PPLUS is not set | |
| 62 | -# CONFIG_PRPMC750 is not set | |
| 63 | -# CONFIG_PRPMC800 is not set | |
| 64 | -# CONFIG_SANDPOINT is not set | |
| 65 | -# CONFIG_ADIR is not set | |
| 66 | -# CONFIG_K2 is not set | |
| 67 | -# CONFIG_PAL4 is not set | |
| 68 | -CONFIG_GEMINI=y | |
| 69 | -# CONFIG_SMP is not set | |
| 70 | -# CONFIG_PREEMPT is not set | |
| 71 | -CONFIG_ALTIVEC=y | |
| 72 | -CONFIG_TAU=y | |
| 73 | -# CONFIG_TAU_INT is not set | |
| 74 | -# CONFIG_TAU_AVERAGE is not set | |
| 75 | -# CONFIG_CPU_FREQ is not set | |
| 76 | - | |
| 77 | -# | |
| 78 | -# General setup | |
| 79 | -# | |
| 80 | -# CONFIG_HIGHMEM is not set | |
| 81 | -CONFIG_PCI=y | |
| 82 | -CONFIG_PCI_DOMAINS=y | |
| 83 | -CONFIG_KCORE_ELF=y | |
| 84 | -CONFIG_BINFMT_ELF=y | |
| 85 | -CONFIG_KERNEL_ELF=y | |
| 86 | -# CONFIG_BINFMT_MISC is not set | |
| 87 | -CONFIG_PCI_LEGACY_PROC=y | |
| 88 | -CONFIG_PCI_NAMES=y | |
| 89 | -# CONFIG_HOTPLUG is not set | |
| 90 | - | |
| 91 | -# | |
| 92 | -# Parallel port support | |
| 93 | -# | |
| 94 | -# CONFIG_PARPORT is not set | |
| 95 | -# CONFIG_PPC601_SYNC_FIX is not set | |
| 96 | -# CONFIG_CMDLINE_BOOL is not set | |
| 97 | - | |
| 98 | -# | |
| 99 | -# Advanced setup | |
| 100 | -# | |
| 101 | -# CONFIG_ADVANCED_OPTIONS is not set | |
| 102 | - | |
| 103 | -# | |
| 104 | -# Default settings for advanced configuration options are used | |
| 105 | -# | |
| 106 | -CONFIG_HIGHMEM_START=0xfe000000 | |
| 107 | -CONFIG_LOWMEM_SIZE=0x30000000 | |
| 108 | -CONFIG_KERNEL_START=0xc0000000 | |
| 109 | -CONFIG_TASK_SIZE=0x80000000 | |
| 110 | -CONFIG_BOOT_LOAD=0x00800000 | |
| 111 | - | |
| 112 | -# | |
| 113 | -# Memory Technology Devices (MTD) | |
| 114 | -# | |
| 115 | -# CONFIG_MTD is not set | |
| 116 | - | |
| 117 | -# | |
| 118 | -# Plug and Play support | |
| 119 | -# | |
| 120 | -# CONFIG_PNP is not set | |
| 121 | - | |
| 122 | -# | |
| 123 | -# Block devices | |
| 124 | -# | |
| 125 | -# CONFIG_BLK_DEV_FD is not set | |
| 126 | -# CONFIG_BLK_CPQ_DA is not set | |
| 127 | -# CONFIG_BLK_CPQ_CISS_DA is not set | |
| 128 | -# CONFIG_BLK_DEV_DAC960 is not set | |
| 129 | -# CONFIG_BLK_DEV_UMEM is not set | |
| 130 | -# CONFIG_BLK_DEV_LOOP is not set | |
| 131 | -# CONFIG_BLK_DEV_NBD is not set | |
| 132 | -CONFIG_BLK_DEV_RAM=y | |
| 133 | -CONFIG_BLK_DEV_RAM_SIZE=4096 | |
| 134 | -CONFIG_BLK_DEV_INITRD=y | |
| 135 | - | |
| 136 | -# | |
| 137 | -# Multi-device support (RAID and LVM) | |
| 138 | -# | |
| 139 | -# CONFIG_MD is not set | |
| 140 | - | |
| 141 | -# | |
| 142 | -# ATA/IDE/MFM/RLL support | |
| 143 | -# | |
| 144 | -# CONFIG_IDE is not set | |
| 145 | - | |
| 146 | -# | |
| 147 | -# SCSI support | |
| 148 | -# | |
| 149 | -CONFIG_SCSI=y | |
| 150 | - | |
| 151 | -# | |
| 152 | -# SCSI support type (disk, tape, CD-ROM) | |
| 153 | -# | |
| 154 | -CONFIG_BLK_DEV_SD=y | |
| 155 | -# CONFIG_CHR_DEV_ST is not set | |
| 156 | -# CONFIG_CHR_DEV_OSST is not set | |
| 157 | -CONFIG_BLK_DEV_SR=y | |
| 158 | -CONFIG_BLK_DEV_SR_VENDOR=y | |
| 159 | -CONFIG_CHR_DEV_SG=y | |
| 160 | - | |
| 161 | -# | |
| 162 | -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs | |
| 163 | -# | |
| 164 | -# CONFIG_SCSI_MULTI_LUN is not set | |
| 165 | -# CONFIG_SCSI_REPORT_LUNS is not set | |
| 166 | -CONFIG_SCSI_CONSTANTS=y | |
| 167 | -# CONFIG_SCSI_LOGGING is not set | |
| 168 | - | |
| 169 | -# | |
| 170 | -# SCSI low-level drivers | |
| 171 | -# | |
| 172 | -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set | |
| 173 | -# CONFIG_SCSI_ACARD is not set | |
| 174 | -# CONFIG_SCSI_AACRAID is not set | |
| 175 | -# CONFIG_SCSI_AIC7XXX is not set | |
| 176 | -# CONFIG_SCSI_AIC7XXX_OLD is not set | |
| 177 | -# CONFIG_SCSI_AIC79XX is not set | |
| 178 | -# CONFIG_SCSI_DPT_I2O is not set | |
| 179 | -# CONFIG_SCSI_ADVANSYS is not set | |
| 180 | -# CONFIG_SCSI_IN2000 is not set | |
| 181 | -# CONFIG_SCSI_AM53C974 is not set | |
| 182 | -# CONFIG_SCSI_MEGARAID is not set | |
| 183 | -# CONFIG_SCSI_BUSLOGIC is not set | |
| 184 | -# CONFIG_SCSI_CPQFCTS is not set | |
| 185 | -# CONFIG_SCSI_DMX3191D is not set | |
| 186 | -# CONFIG_SCSI_EATA is not set | |
| 187 | -# CONFIG_SCSI_EATA_PIO is not set | |
| 188 | -# CONFIG_SCSI_FUTURE_DOMAIN is not set | |
| 189 | -# CONFIG_SCSI_GDTH is not set | |
| 190 | -# CONFIG_SCSI_GENERIC_NCR5380 is not set | |
| 191 | -# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set | |
| 192 | -# CONFIG_SCSI_INITIO is not set | |
| 193 | -# CONFIG_SCSI_INIA100 is not set | |
| 194 | -# CONFIG_SCSI_NCR53C7xx is not set | |
| 195 | -CONFIG_SCSI_SYM53C8XX_2=y | |
| 196 | -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | |
| 197 | -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | |
| 198 | -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |
| 199 | -# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | |
| 200 | -# CONFIG_SCSI_PCI2000 is not set | |
| 201 | -# CONFIG_SCSI_PCI2220I is not set | |
| 202 | -# CONFIG_SCSI_QLOGIC_ISP is not set | |
| 203 | -# CONFIG_SCSI_QLOGIC_FC is not set | |
| 204 | -# CONFIG_SCSI_QLOGIC_1280 is not set | |
| 205 | -# CONFIG_SCSI_DC395x is not set | |
| 206 | -# CONFIG_SCSI_DC390T is not set | |
| 207 | -# CONFIG_SCSI_U14_34F is not set | |
| 208 | -# CONFIG_SCSI_NSP32 is not set | |
| 209 | -# CONFIG_SCSI_DEBUG is not set | |
| 210 | - | |
| 211 | -# | |
| 212 | -# Fusion MPT device support | |
| 213 | -# | |
| 214 | -# CONFIG_FUSION is not set | |
| 215 | - | |
| 216 | -# | |
| 217 | -# IEEE 1394 (FireWire) support (EXPERIMENTAL) | |
| 218 | -# | |
| 219 | -# CONFIG_IEEE1394 is not set | |
| 220 | - | |
| 221 | -# | |
| 222 | -# I2O device support | |
| 223 | -# | |
| 224 | -# CONFIG_I2O is not set | |
| 225 | - | |
| 226 | -# | |
| 227 | -# Networking support | |
| 228 | -# | |
| 229 | -CONFIG_NET=y | |
| 230 | - | |
| 231 | -# | |
| 232 | -# Networking options | |
| 233 | -# | |
| 234 | -CONFIG_PACKET=y | |
| 235 | -# CONFIG_PACKET_MMAP is not set | |
| 236 | -# CONFIG_NETLINK_DEV is not set | |
| 237 | -CONFIG_NETFILTER=y | |
| 238 | -# CONFIG_NETFILTER_DEBUG is not set | |
| 239 | -CONFIG_UNIX=y | |
| 240 | -# CONFIG_NET_KEY is not set | |
| 241 | -CONFIG_INET=y | |
| 242 | -# CONFIG_IP_MULTICAST is not set | |
| 243 | -# CONFIG_IP_ADVANCED_ROUTER is not set | |
| 244 | -# CONFIG_IP_PNP is not set | |
| 245 | -# CONFIG_NET_IPIP is not set | |
| 246 | -# CONFIG_NET_IPGRE is not set | |
| 247 | -# CONFIG_ARPD is not set | |
| 248 | -# CONFIG_INET_ECN is not set | |
| 249 | -# CONFIG_SYN_COOKIES is not set | |
| 250 | -# CONFIG_INET_AH is not set | |
| 251 | -# CONFIG_INET_ESP is not set | |
| 252 | -# CONFIG_INET_IPCOMP is not set | |
| 253 | - | |
| 254 | -# | |
| 255 | -# IP: Netfilter Configuration | |
| 256 | -# | |
| 257 | -# CONFIG_IP_NF_CONNTRACK is not set | |
| 258 | -# CONFIG_IP_NF_QUEUE is not set | |
| 259 | -# CONFIG_IP_NF_IPTABLES is not set | |
| 260 | -# CONFIG_IP_NF_ARPTABLES is not set | |
| 261 | -# CONFIG_IP_NF_COMPAT_IPCHAINS is not set | |
| 262 | -# CONFIG_IP_NF_COMPAT_IPFWADM is not set | |
| 263 | -# CONFIG_IPV6 is not set | |
| 264 | -# CONFIG_XFRM_USER is not set | |
| 265 | - | |
| 266 | -# | |
| 267 | -# SCTP Configuration (EXPERIMENTAL) | |
| 268 | -# | |
| 269 | -CONFIG_IPV6_SCTP__=y | |
| 270 | -# CONFIG_IP_SCTP is not set | |
| 271 | -# CONFIG_ATM is not set | |
| 272 | -# CONFIG_VLAN_8021Q is not set | |
| 273 | -# CONFIG_LLC is not set | |
| 274 | -# CONFIG_DECNET is not set | |
| 275 | -# CONFIG_BRIDGE is not set | |
| 276 | -# CONFIG_X25 is not set | |
| 277 | -# CONFIG_LAPB is not set | |
| 278 | -# CONFIG_NET_DIVERT is not set | |
| 279 | -# CONFIG_ECONET is not set | |
| 280 | -# CONFIG_WAN_ROUTER is not set | |
| 281 | -# CONFIG_NET_HW_FLOWCONTROL is not set | |
| 282 | - | |
| 283 | -# | |
| 284 | -# QoS and/or fair queueing | |
| 285 | -# | |
| 286 | -# CONFIG_NET_SCHED is not set | |
| 287 | - | |
| 288 | -# | |
| 289 | -# Network testing | |
| 290 | -# | |
| 291 | -# CONFIG_NET_PKTGEN is not set | |
| 292 | -CONFIG_NETDEVICES=y | |
| 293 | - | |
| 294 | -# | |
| 295 | -# ARCnet devices | |
| 296 | -# | |
| 297 | -# CONFIG_ARCNET is not set | |
| 298 | -# CONFIG_DUMMY is not set | |
| 299 | -# CONFIG_BONDING is not set | |
| 300 | -# CONFIG_EQUALIZER is not set | |
| 301 | -# CONFIG_TUN is not set | |
| 302 | -# CONFIG_ETHERTAP is not set | |
| 303 | - | |
| 304 | -# | |
| 305 | -# Ethernet (10 or 100Mbit) | |
| 306 | -# | |
| 307 | -CONFIG_NET_ETHERNET=y | |
| 308 | -# CONFIG_MII is not set | |
| 309 | -# CONFIG_OAKNET is not set | |
| 310 | -# CONFIG_HAPPYMEAL is not set | |
| 311 | -# CONFIG_SUNGEM is not set | |
| 312 | -# CONFIG_NET_VENDOR_3COM is not set | |
| 313 | - | |
| 314 | -# | |
| 315 | -# Tulip family network device support | |
| 316 | -# | |
| 317 | -# CONFIG_NET_TULIP is not set | |
| 318 | -# CONFIG_HP100 is not set | |
| 319 | -# CONFIG_NET_PCI is not set | |
| 320 | - | |
| 321 | -# | |
| 322 | -# Ethernet (1000 Mbit) | |
| 323 | -# | |
| 324 | -# CONFIG_ACENIC is not set | |
| 325 | -# CONFIG_DL2K is not set | |
| 326 | -# CONFIG_E1000 is not set | |
| 327 | -# CONFIG_NS83820 is not set | |
| 328 | -# CONFIG_HAMACHI is not set | |
| 329 | -# CONFIG_YELLOWFIN is not set | |
| 330 | -# CONFIG_R8169 is not set | |
| 331 | -# CONFIG_SK98LIN is not set | |
| 332 | -# CONFIG_TIGON3 is not set | |
| 333 | - | |
| 334 | -# | |
| 335 | -# Ethernet (10000 Mbit) | |
| 336 | -# | |
| 337 | -# CONFIG_IXGB is not set | |
| 338 | -# CONFIG_FDDI is not set | |
| 339 | -# CONFIG_HIPPI is not set | |
| 340 | -# CONFIG_PPP is not set | |
| 341 | -# CONFIG_SLIP is not set | |
| 342 | - | |
| 343 | -# | |
| 344 | -# Wireless LAN (non-hamradio) | |
| 345 | -# | |
| 346 | -# CONFIG_NET_RADIO is not set | |
| 347 | - | |
| 348 | -# | |
| 349 | -# Token Ring devices (depends on LLC=y) | |
| 350 | -# | |
| 351 | -# CONFIG_NET_FC is not set | |
| 352 | -# CONFIG_RCPCI is not set | |
| 353 | -# CONFIG_SHAPER is not set | |
| 354 | - | |
| 355 | -# | |
| 356 | -# Wan interfaces | |
| 357 | -# | |
| 358 | -# CONFIG_WAN is not set | |
| 359 | - | |
| 360 | -# | |
| 361 | -# Amateur Radio support | |
| 362 | -# | |
| 363 | -# CONFIG_HAMRADIO is not set | |
| 364 | - | |
| 365 | -# | |
| 366 | -# IrDA (infrared) support | |
| 367 | -# | |
| 368 | -# CONFIG_IRDA is not set | |
| 369 | - | |
| 370 | -# | |
| 371 | -# ISDN subsystem | |
| 372 | -# | |
| 373 | -# CONFIG_ISDN_BOOL is not set | |
| 374 | - | |
| 375 | -# | |
| 376 | -# Graphics support | |
| 377 | -# | |
| 378 | -# CONFIG_FB is not set | |
| 379 | - | |
| 380 | -# | |
| 381 | -# Old CD-ROM drivers (not SCSI, not IDE) | |
| 382 | -# | |
| 383 | -# CONFIG_CD_NO_IDESCSI is not set | |
| 384 | - | |
| 385 | -# | |
| 386 | -# Input device support | |
| 387 | -# | |
| 388 | -# CONFIG_INPUT is not set | |
| 389 | - | |
| 390 | -# | |
| 391 | -# Userland interfaces | |
| 392 | -# | |
| 393 | - | |
| 394 | -# | |
| 395 | -# Input I/O drivers | |
| 396 | -# | |
| 397 | -# CONFIG_GAMEPORT is not set | |
| 398 | -CONFIG_SOUND_GAMEPORT=y | |
| 399 | -# CONFIG_SERIO is not set | |
| 400 | - | |
| 401 | -# | |
| 402 | -# Input Device Drivers | |
| 403 | -# | |
| 404 | - | |
| 405 | -# | |
| 406 | -# Macintosh device drivers | |
| 407 | -# | |
| 408 | - | |
| 409 | -# | |
| 410 | -# Character devices | |
| 411 | -# | |
| 412 | -# CONFIG_SERIAL_NONSTANDARD is not set | |
| 413 | - | |
| 414 | -# | |
| 415 | -# Serial drivers | |
| 416 | -# | |
| 417 | -CONFIG_SERIAL_8250=y | |
| 418 | -CONFIG_SERIAL_8250_CONSOLE=y | |
| 419 | -# CONFIG_SERIAL_8250_EXTENDED is not set | |
| 420 | - | |
| 421 | -# | |
| 422 | -# Non-8250 serial port support | |
| 423 | -# | |
| 424 | -CONFIG_SERIAL_CORE=y | |
| 425 | -CONFIG_SERIAL_CORE_CONSOLE=y | |
| 426 | -CONFIG_UNIX98_PTYS=y | |
| 427 | -CONFIG_UNIX98_PTY_COUNT=256 | |
| 428 | - | |
| 429 | -# | |
| 430 | -# I2C support | |
| 431 | -# | |
| 432 | -# CONFIG_I2C is not set | |
| 433 | - | |
| 434 | -# | |
| 435 | -# I2C Hardware Sensors Mainboard support | |
| 436 | -# | |
| 437 | - | |
| 438 | -# | |
| 439 | -# I2C Hardware Sensors Chip support | |
| 440 | -# | |
| 441 | -# CONFIG_I2C_SENSOR is not set | |
| 442 | - | |
| 443 | -# | |
| 444 | -# Mice | |
| 445 | -# | |
| 446 | -# CONFIG_BUSMOUSE is not set | |
| 447 | -# CONFIG_QIC02_TAPE is not set | |
| 448 | - | |
| 449 | -# | |
| 450 | -# IPMI | |
| 451 | -# | |
| 452 | -# CONFIG_IPMI_HANDLER is not set | |
| 453 | - | |
| 454 | -# | |
| 455 | -# Watchdog Cards | |
| 456 | -# | |
| 457 | -# CONFIG_WATCHDOG is not set | |
| 458 | -# CONFIG_NVRAM is not set | |
| 459 | -CONFIG_GEN_RTC=y | |
| 460 | -# CONFIG_GEN_RTC_X is not set | |
| 461 | -# CONFIG_DTLK is not set | |
| 462 | -# CONFIG_R3964 is not set | |
| 463 | -# CONFIG_APPLICOM is not set | |
| 464 | - | |
| 465 | -# | |
| 466 | -# Ftape, the floppy tape device driver | |
| 467 | -# | |
| 468 | -# CONFIG_FTAPE is not set | |
| 469 | -# CONFIG_AGP is not set | |
| 470 | -# CONFIG_DRM is not set | |
| 471 | -# CONFIG_RAW_DRIVER is not set | |
| 472 | -# CONFIG_HANGCHECK_TIMER is not set | |
| 473 | - | |
| 474 | -# | |
| 475 | -# Multimedia devices | |
| 476 | -# | |
| 477 | -# CONFIG_VIDEO_DEV is not set | |
| 478 | - | |
| 479 | -# | |
| 480 | -# Digital Video Broadcasting Devices | |
| 481 | -# | |
| 482 | -# CONFIG_DVB is not set | |
| 483 | - | |
| 484 | -# | |
| 485 | -# File systems | |
| 486 | -# | |
| 487 | -CONFIG_EXT2_FS=y | |
| 488 | -# CONFIG_EXT2_FS_XATTR is not set | |
| 489 | -# CONFIG_EXT3_FS is not set | |
| 490 | -# CONFIG_JBD is not set | |
| 491 | -# CONFIG_REISERFS_FS is not set | |
| 492 | -# CONFIG_JFS_FS is not set | |
| 493 | -# CONFIG_XFS_FS is not set | |
| 494 | -# CONFIG_MINIX_FS is not set | |
| 495 | -# CONFIG_ROMFS_FS is not set | |
| 496 | -# CONFIG_QUOTA is not set | |
| 497 | -# CONFIG_AUTOFS_FS is not set | |
| 498 | -# CONFIG_AUTOFS4_FS is not set | |
| 499 | - | |
| 500 | -# | |
| 501 | -# CD-ROM/DVD Filesystems | |
| 502 | -# | |
| 503 | -CONFIG_ISO9660_FS=y | |
| 504 | -# CONFIG_JOLIET is not set | |
| 505 | -# CONFIG_ZISOFS is not set | |
| 506 | -# CONFIG_UDF_FS is not set | |
| 507 | - | |
| 508 | -# | |
| 509 | -# DOS/FAT/NT Filesystems | |
| 510 | -# | |
| 511 | -# CONFIG_FAT_FS is not set | |
| 512 | -# CONFIG_NTFS_FS is not set | |
| 513 | - | |
| 514 | -# | |
| 515 | -# Pseudo filesystems | |
| 516 | -# | |
| 517 | -CONFIG_PROC_FS=y | |
| 518 | -CONFIG_DEVFS_FS=y | |
| 519 | -# CONFIG_DEVFS_MOUNT is not set | |
| 520 | -# CONFIG_DEVFS_DEBUG is not set | |
| 521 | -CONFIG_DEVPTS_FS=y | |
| 522 | -# CONFIG_DEVPTS_FS_XATTR is not set | |
| 523 | -CONFIG_TMPFS=y | |
| 524 | -CONFIG_RAMFS=y | |
| 525 | - | |
| 526 | -# | |
| 527 | -# Miscellaneous filesystems | |
| 528 | -# | |
| 529 | -# CONFIG_ADFS_FS is not set | |
| 530 | -# CONFIG_AFFS_FS is not set | |
| 531 | -# CONFIG_HFS_FS is not set | |
| 532 | -# CONFIG_BEFS_FS is not set | |
| 533 | -# CONFIG_BFS_FS is not set | |
| 534 | -# CONFIG_EFS_FS is not set | |
| 535 | -# CONFIG_CRAMFS is not set | |
| 536 | -# CONFIG_VXFS_FS is not set | |
| 537 | -# CONFIG_HPFS_FS is not set | |
| 538 | -# CONFIG_QNX4FS_FS is not set | |
| 539 | -# CONFIG_SYSV_FS is not set | |
| 540 | -# CONFIG_UFS_FS is not set | |
| 541 | - | |
| 542 | -# | |
| 543 | -# Network File Systems | |
| 544 | -# | |
| 545 | -CONFIG_NFS_FS=y | |
| 546 | -# CONFIG_NFS_V3 is not set | |
| 547 | -# CONFIG_NFS_V4 is not set | |
| 548 | -CONFIG_NFSD=y | |
| 549 | -# CONFIG_NFSD_V3 is not set | |
| 550 | -# CONFIG_NFSD_TCP is not set | |
| 551 | -CONFIG_LOCKD=y | |
| 552 | -CONFIG_EXPORTFS=y | |
| 553 | -CONFIG_SUNRPC=y | |
| 554 | -# CONFIG_SUNRPC_GSS is not set | |
| 555 | -# CONFIG_SMB_FS is not set | |
| 556 | -# CONFIG_CIFS is not set | |
| 557 | -# CONFIG_NCP_FS is not set | |
| 558 | -# CONFIG_CODA_FS is not set | |
| 559 | -# CONFIG_INTERMEZZO_FS is not set | |
| 560 | -# CONFIG_AFS_FS is not set | |
| 561 | - | |
| 562 | -# | |
| 563 | -# Partition Types | |
| 564 | -# | |
| 565 | -CONFIG_PARTITION_ADVANCED=y | |
| 566 | -# CONFIG_ACORN_PARTITION is not set | |
| 567 | -# CONFIG_OSF_PARTITION is not set | |
| 568 | -# CONFIG_AMIGA_PARTITION is not set | |
| 569 | -# CONFIG_ATARI_PARTITION is not set | |
| 570 | -# CONFIG_MAC_PARTITION is not set | |
| 571 | -CONFIG_MSDOS_PARTITION=y | |
| 572 | -# CONFIG_BSD_DISKLABEL is not set | |
| 573 | -# CONFIG_MINIX_SUBPARTITION is not set | |
| 574 | -CONFIG_SOLARIS_X86_PARTITION=y | |
| 575 | -# CONFIG_UNIXWARE_DISKLABEL is not set | |
| 576 | -# CONFIG_LDM_PARTITION is not set | |
| 577 | -# CONFIG_NEC98_PARTITION is not set | |
| 578 | -# CONFIG_SGI_PARTITION is not set | |
| 579 | -# CONFIG_ULTRIX_PARTITION is not set | |
| 580 | -# CONFIG_SUN_PARTITION is not set | |
| 581 | -# CONFIG_EFI_PARTITION is not set | |
| 582 | - | |
| 583 | -# | |
| 584 | -# Sound | |
| 585 | -# | |
| 586 | -# CONFIG_SOUND is not set | |
| 587 | - | |
| 588 | -# | |
| 589 | -# USB support | |
| 590 | -# | |
| 591 | -# CONFIG_USB is not set | |
| 592 | -# CONFIG_USB_GADGET is not set | |
| 593 | - | |
| 594 | -# | |
| 595 | -# Bluetooth support | |
| 596 | -# | |
| 597 | -# CONFIG_BT is not set | |
| 598 | - | |
| 599 | -# | |
| 600 | -# Library routines | |
| 601 | -# | |
| 602 | -# CONFIG_CRC32 is not set | |
| 603 | - | |
| 604 | -# | |
| 605 | -# Kernel hacking | |
| 606 | -# | |
| 607 | -# CONFIG_DEBUG_KERNEL is not set | |
| 608 | -# CONFIG_KALLSYMS is not set | |
| 609 | - | |
| 610 | -# | |
| 611 | -# Security options | |
| 612 | -# | |
| 613 | -# CONFIG_SECURITY is not set | |
| 614 | - | |
| 615 | -# | |
| 616 | -# Cryptographic options | |
| 617 | -# | |
| 618 | -# CONFIG_CRYPTO is not set |
arch/ppc/kernel/head.S
| ... | ... | @@ -310,12 +310,7 @@ |
| 310 | 310 | /* System reset */ |
| 311 | 311 | /* core99 pmac starts the seconary here by changing the vector, and |
| 312 | 312 | putting it back to what it was (unknown_exception) when done. */ |
| 313 | -#if defined(CONFIG_GEMINI) && defined(CONFIG_SMP) | |
| 314 | - . = 0x100 | |
| 315 | - b __secondary_start_gemini | |
| 316 | -#else | |
| 317 | 313 | EXCEPTION(0x100, Reset, unknown_exception, EXC_XFER_STD) |
| 318 | -#endif | |
| 319 | 314 | |
| 320 | 315 | /* Machine check */ |
| 321 | 316 | . = 0x200 |
| ... | ... | @@ -897,19 +892,6 @@ |
| 897 | 892 | #endif /* CONFIG_APUS */ |
| 898 | 893 | |
| 899 | 894 | #ifdef CONFIG_SMP |
| 900 | -#ifdef CONFIG_GEMINI | |
| 901 | - .globl __secondary_start_gemini | |
| 902 | -__secondary_start_gemini: | |
| 903 | - mfspr r4,SPRN_HID0 | |
| 904 | - ori r4,r4,HID0_ICFI | |
| 905 | - li r3,0 | |
| 906 | - ori r3,r3,HID0_ICE | |
| 907 | - andc r4,r4,r3 | |
| 908 | - mtspr SPRN_HID0,r4 | |
| 909 | - sync | |
| 910 | - b __secondary_start | |
| 911 | -#endif /* CONFIG_GEMINI */ | |
| 912 | - | |
| 913 | 895 | .globl __secondary_start_pmac_0 |
| 914 | 896 | __secondary_start_pmac_0: |
| 915 | 897 | /* NB the entries for cpus 0, 1, 2 must each occupy 8 bytes. */ |
arch/ppc/platforms/Makefile
| ... | ... | @@ -13,7 +13,6 @@ |
| 13 | 13 | obj-$(CONFIG_CPCI690) += cpci690.o |
| 14 | 14 | obj-$(CONFIG_EV64260) += ev64260.o |
| 15 | 15 | obj-$(CONFIG_CHESTNUT) += chestnut.o |
| 16 | -obj-$(CONFIG_GEMINI) += gemini_pci.o gemini_setup.o gemini_prom.o | |
| 17 | 16 | obj-$(CONFIG_LOPEC) += lopec.o |
| 18 | 17 | obj-$(CONFIG_KATANA) += katana.o |
| 19 | 18 | obj-$(CONFIG_HDPU) += hdpu.o |
arch/ppc/platforms/gemini.h
| 1 | -/* | |
| 2 | - * Onboard registers and descriptions for Synergy Microsystems' | |
| 3 | - * "Gemini" boards. | |
| 4 | - * | |
| 5 | - */ | |
| 6 | -#ifdef __KERNEL__ | |
| 7 | -#ifndef __PPC_GEMINI_H | |
| 8 | -#define __PPC_GEMINI_H | |
| 9 | - | |
| 10 | -/* Registers */ | |
| 11 | - | |
| 12 | -#define GEMINI_SERIAL_B (0xffeffb00) | |
| 13 | -#define GEMINI_SERIAL_A (0xffeffb08) | |
| 14 | -#define GEMINI_USWITCH (0xffeffd00) | |
| 15 | -#define GEMINI_BREV (0xffeffe00) | |
| 16 | -#define GEMINI_BECO (0xffeffe08) | |
| 17 | -#define GEMINI_FEAT (0xffeffe10) | |
| 18 | -#define GEMINI_BSTAT (0xffeffe18) | |
| 19 | -#define GEMINI_CPUSTAT (0xffeffe20) | |
| 20 | -#define GEMINI_L2CFG (0xffeffe30) | |
| 21 | -#define GEMINI_MEMCFG (0xffeffe38) | |
| 22 | -#define GEMINI_FLROM (0xffeffe40) | |
| 23 | -#define GEMINI_P0PCI (0xffeffe48) | |
| 24 | -#define GEMINI_FLWIN (0xffeffe50) | |
| 25 | -#define GEMINI_P0INTMASK (0xffeffe60) | |
| 26 | -#define GEMINI_P0INTAP (0xffeffe68) | |
| 27 | -#define GEMINI_PCIERR (0xffeffe70) | |
| 28 | -#define GEMINI_LEDBASE (0xffeffe80) | |
| 29 | -#define GEMINI_RTC (0xffe9fff8) | |
| 30 | -#define GEMINI_LEDS 8 | |
| 31 | -#define GEMINI_SWITCHES 8 | |
| 32 | - | |
| 33 | - | |
| 34 | -/* Flash ROM bit definitions */ | |
| 35 | -#define GEMINI_FLS_WEN (1<<0) | |
| 36 | -#define GEMINI_FLS_JMP (1<<6) | |
| 37 | -#define GEMINI_FLS_BOOT (1<<7) | |
| 38 | - | |
| 39 | -/* Memory bit definitions */ | |
| 40 | -#define GEMINI_MEM_TYPE_MASK 0xc0 | |
| 41 | -#define GEMINI_MEM_SIZE_MASK 0x38 | |
| 42 | -#define GEMINI_MEM_BANK_MASK 0x07 | |
| 43 | - | |
| 44 | -/* L2 cache bit definitions */ | |
| 45 | -#define GEMINI_L2_SIZE_MASK 0xc0 | |
| 46 | -#define GEMINI_L2_RATIO_MASK 0x03 | |
| 47 | - | |
| 48 | -/* Timebase register bit definitons */ | |
| 49 | -#define GEMINI_TIMEB0_EN (1<<0) | |
| 50 | -#define GEMINI_TIMEB1_EN (1<<1) | |
| 51 | -#define GEMINI_TIMEB2_EN (1<<2) | |
| 52 | -#define GEMINI_TIMEB3_EN (1<<3) | |
| 53 | - | |
| 54 | -/* CPU status bit definitions */ | |
| 55 | -#define GEMINI_CPU_ID_MASK 0x03 | |
| 56 | -#define GEMINI_CPU_COUNT_MASK 0x0c | |
| 57 | -#define GEMINI_CPU0_HALTED (1<<4) | |
| 58 | -#define GEMINI_CPU1_HALTED (1<<5) | |
| 59 | -#define GEMINI_CPU2_HALTED (1<<6) | |
| 60 | -#define GEMINI_CPU3_HALTED (1<<7) | |
| 61 | - | |
| 62 | -/* Board status bit definitions */ | |
| 63 | -#define GEMINI_BRD_FAIL (1<<0) /* FAIL led is lit */ | |
| 64 | -#define GEMINI_BRD_BUS_MASK 0x0c /* PowerPC bus speed */ | |
| 65 | - | |
| 66 | -/* Board family/feature bit descriptions */ | |
| 67 | -#define GEMINI_FEAT_HAS_FLASH (1<<0) | |
| 68 | -#define GEMINI_FEAT_HAS_ETH (1<<1) | |
| 69 | -#define GEMINI_FEAT_HAS_SCSI (1<<2) | |
| 70 | -#define GEMINI_FEAT_HAS_P0 (1<<3) | |
| 71 | -#define GEMINI_FEAT_FAM_MASK 0xf0 | |
| 72 | - | |
| 73 | -/* Mod/ECO bit definitions */ | |
| 74 | -#define GEMINI_ECO_LEVEL_MASK 0x0f | |
| 75 | -#define GEMINI_MOD_MASK 0xf0 | |
| 76 | - | |
| 77 | -/* Type/revision bit definitions */ | |
| 78 | -#define GEMINI_REV_MASK 0x0f | |
| 79 | -#define GEMINI_TYPE_MASK 0xf0 | |
| 80 | - | |
| 81 | -/* User switch definitions */ | |
| 82 | -#define GEMINI_SWITCH_VERBOSE 1 /* adds "debug" to boot cmd line */ | |
| 83 | -#define GEMINI_SWITCH_SINGLE_USER 7 /* boots into "single-user" mode */ | |
| 84 | - | |
| 85 | -#define SGS_RTC_CONTROL 0 | |
| 86 | -#define SGS_RTC_SECONDS 1 | |
| 87 | -#define SGS_RTC_MINUTES 2 | |
| 88 | -#define SGS_RTC_HOURS 3 | |
| 89 | -#define SGS_RTC_DAY 4 | |
| 90 | -#define SGS_RTC_DAY_OF_MONTH 5 | |
| 91 | -#define SGS_RTC_MONTH 6 | |
| 92 | -#define SGS_RTC_YEAR 7 | |
| 93 | - | |
| 94 | -#define SGS_RTC_SET 0x80 | |
| 95 | -#define SGS_RTC_IS_STOPPED 0x80 | |
| 96 | - | |
| 97 | -#define GRACKLE_CONFIG_ADDR_ADDR (0xfec00000) | |
| 98 | -#define GRACKLE_CONFIG_DATA_ADDR (0xfee00000) | |
| 99 | - | |
| 100 | -#define GEMINI_BOOT_INIT (0xfff00100) | |
| 101 | - | |
| 102 | -#ifndef __ASSEMBLY__ | |
| 103 | - | |
| 104 | -static inline void grackle_write( unsigned long addr, unsigned long data ) | |
| 105 | -{ | |
| 106 | - __asm__ __volatile__( | |
| 107 | - " stwbrx %1, 0, %0\n \ | |
| 108 | - sync\n \ | |
| 109 | - stwbrx %3, 0, %2\n \ | |
| 110 | - sync " | |
| 111 | - : /* no output */ | |
| 112 | - : "r" (GRACKLE_CONFIG_ADDR_ADDR), "r" (addr), | |
| 113 | - "r" (GRACKLE_CONFIG_DATA_ADDR), "r" (data)); | |
| 114 | -} | |
| 115 | - | |
| 116 | -static inline unsigned long grackle_read( unsigned long addr ) | |
| 117 | -{ | |
| 118 | - unsigned long val; | |
| 119 | - | |
| 120 | - __asm__ __volatile__( | |
| 121 | - " stwbrx %1, 0, %2\n \ | |
| 122 | - sync\n \ | |
| 123 | - lwbrx %0, 0, %3\n \ | |
| 124 | - sync " | |
| 125 | - : "=r" (val) | |
| 126 | - : "r" (addr), "r" (GRACKLE_CONFIG_ADDR_ADDR), | |
| 127 | - "r" (GRACKLE_CONFIG_DATA_ADDR)); | |
| 128 | - | |
| 129 | - return val; | |
| 130 | -} | |
| 131 | - | |
| 132 | -static inline void gemini_led_on( int led ) | |
| 133 | -{ | |
| 134 | - if (led >= 0 && led < GEMINI_LEDS) | |
| 135 | - *(unsigned char *)(GEMINI_LEDBASE + (led<<3)) = 1; | |
| 136 | -} | |
| 137 | - | |
| 138 | -static inline void gemini_led_off(int led) | |
| 139 | -{ | |
| 140 | - if (led >= 0 && led < GEMINI_LEDS) | |
| 141 | - *(unsigned char *)(GEMINI_LEDBASE + (led<<3)) = 0; | |
| 142 | -} | |
| 143 | - | |
| 144 | -static inline int gemini_led_val(int led) | |
| 145 | -{ | |
| 146 | - int val = 0; | |
| 147 | - if (led >= 0 && led < GEMINI_LEDS) | |
| 148 | - val = *(unsigned char *)(GEMINI_LEDBASE + (led<<3)); | |
| 149 | - return (val & 0x1); | |
| 150 | -} | |
| 151 | - | |
| 152 | -/* returns processor id from the board */ | |
| 153 | -static inline int gemini_processor(void) | |
| 154 | -{ | |
| 155 | - unsigned char cpu = *(unsigned char *)(GEMINI_CPUSTAT); | |
| 156 | - return (int) ((cpu == 0) ? 4 : (cpu & GEMINI_CPU_ID_MASK)); | |
| 157 | -} | |
| 158 | - | |
| 159 | - | |
| 160 | -extern void _gemini_reboot(void); | |
| 161 | -extern void gemini_prom_init(void); | |
| 162 | -extern void gemini_init_l2(void); | |
| 163 | -#endif /* __ASSEMBLY__ */ | |
| 164 | -#endif | |
| 165 | -#endif /* __KERNEL__ */ |
arch/ppc/platforms/gemini_pci.c
| 1 | -#include <linux/kernel.h> | |
| 2 | -#include <linux/init.h> | |
| 3 | -#include <linux/pci.h> | |
| 4 | -#include <linux/slab.h> | |
| 5 | - | |
| 6 | -#include <asm/machdep.h> | |
| 7 | -#include <platforms/gemini.h> | |
| 8 | -#include <asm/byteorder.h> | |
| 9 | -#include <asm/io.h> | |
| 10 | -#include <asm/uaccess.h> | |
| 11 | -#include <asm/pci-bridge.h> | |
| 12 | - | |
| 13 | -void __init gemini_pcibios_fixup(void) | |
| 14 | -{ | |
| 15 | - int i; | |
| 16 | - struct pci_dev *dev = NULL; | |
| 17 | - | |
| 18 | - for_each_pci_dev(dev) { | |
| 19 | - for(i = 0; i < 6; i++) { | |
| 20 | - if (dev->resource[i].flags & IORESOURCE_IO) { | |
| 21 | - dev->resource[i].start |= (0xfe << 24); | |
| 22 | - dev->resource[i].end |= (0xfe << 24); | |
| 23 | - } | |
| 24 | - } | |
| 25 | - } | |
| 26 | -} | |
| 27 | - | |
| 28 | - | |
| 29 | -/* The "bootloader" for Synergy boards does none of this for us, so we need to | |
| 30 | - lay it all out ourselves... --Dan */ | |
| 31 | -void __init gemini_find_bridges(void) | |
| 32 | -{ | |
| 33 | - struct pci_controller* hose; | |
| 34 | - | |
| 35 | - ppc_md.pcibios_fixup = gemini_pcibios_fixup; | |
| 36 | - | |
| 37 | - hose = pcibios_alloc_controller(); | |
| 38 | - if (!hose) | |
| 39 | - return; | |
| 40 | - setup_indirect_pci(hose, 0xfec00000, 0xfee00000); | |
| 41 | -} |
arch/ppc/platforms/gemini_prom.S
| 1 | -/* | |
| 2 | - * Not really prom support code (yet), but sort of anti-prom code. The current | |
| 3 | - * bootloader does a number of things it shouldn't and doesn't do things that it | |
| 4 | - * should. The stuff in here is mainly a hodge-podge collection of setup code | |
| 5 | - * to get the board up and running. | |
| 6 | - * ---Dan | |
| 7 | - */ | |
| 8 | - | |
| 9 | -#include <asm/reg.h> | |
| 10 | -#include <asm/page.h> | |
| 11 | -#include <platforms/gemini.h> | |
| 12 | -#include <asm/ppc_asm.h> | |
| 13 | - | |
| 14 | -/* | |
| 15 | - * On 750's the MMU is on when Linux is booted, so we need to clear out the | |
| 16 | - * bootloader's BAT settings, make sure we're in supervisor state (gotcha!), | |
| 17 | - * and turn off the MMU. | |
| 18 | - * | |
| 19 | - */ | |
| 20 | - | |
| 21 | -_GLOBAL(gemini_prom_init) | |
| 22 | -#ifdef CONFIG_SMP | |
| 23 | - /* Since the MMU's on, get stuff in rom space that we'll need */ | |
| 24 | - lis r4,GEMINI_CPUSTAT@h | |
| 25 | - ori r4,r4,GEMINI_CPUSTAT@l | |
| 26 | - lbz r5,0(r4) | |
| 27 | - andi. r5,r5,3 | |
| 28 | - mr r24,r5 /* cpu # used later on */ | |
| 29 | -#endif | |
| 30 | - mfmsr r4 | |
| 31 | - li r3,MSR_PR /* ensure supervisor! */ | |
| 32 | - ori r3,r3,MSR_IR|MSR_DR | |
| 33 | - andc r4,r4,r3 | |
| 34 | - mtmsr r4 | |
| 35 | - isync | |
| 36 | -#if 0 | |
| 37 | - /* zero out the bats now that the MMU is off */ | |
| 38 | -prom_no_mmu: | |
| 39 | - li r3,0 | |
| 40 | - mtspr SPRN_IBAT0U,r3 | |
| 41 | - mtspr SPRN_IBAT0L,r3 | |
| 42 | - mtspr SPRN_IBAT1U,r3 | |
| 43 | - mtspr SPRN_IBAT1L,r3 | |
| 44 | - mtspr SPRN_IBAT2U,r3 | |
| 45 | - mtspr SPRN_IBAT2L,r3 | |
| 46 | - mtspr SPRN_IBAT3U,r3 | |
| 47 | - mtspr SPRN_IBAT3L,r3 | |
| 48 | - | |
| 49 | - mtspr SPRN_DBAT0U,r3 | |
| 50 | - mtspr SPRN_DBAT0L,r3 | |
| 51 | - mtspr SPRN_DBAT1U,r3 | |
| 52 | - mtspr SPRN_DBAT1L,r3 | |
| 53 | - mtspr SPRN_DBAT2U,r3 | |
| 54 | - mtspr SPRN_DBAT2L,r3 | |
| 55 | - mtspr SPRN_DBAT3U,r3 | |
| 56 | - mtspr SPRN_DBAT3L,r3 | |
| 57 | -#endif | |
| 58 | - | |
| 59 | - /* the bootloader (as far as I'm currently aware) doesn't mess with page | |
| 60 | - tables, but since we're already here, might as well zap these, too */ | |
| 61 | - li r4,0 | |
| 62 | - mtspr SPRN_SDR1,r4 | |
| 63 | - | |
| 64 | - li r4,16 | |
| 65 | - mtctr r4 | |
| 66 | - li r3,0 | |
| 67 | - li r4,0 | |
| 68 | -3: mtsrin r3,r4 | |
| 69 | - addi r3,r3,1 | |
| 70 | - bdnz 3b | |
| 71 | - | |
| 72 | -#ifdef CONFIG_SMP | |
| 73 | - /* The 750 book (and Mot/IBM support) says that this will "assist" snooping | |
| 74 | - when in SMP. Not sure yet whether this should stay or leave... */ | |
| 75 | - mfspr r4,SPRN_HID0 | |
| 76 | - ori r4,r4,HID0_ABE | |
| 77 | - mtspr SPRN_HID0,r4 | |
| 78 | - sync | |
| 79 | -#endif /* CONFIG_SMP */ | |
| 80 | - blr | |
| 81 | - | |
| 82 | -/* apparently, SMon doesn't pay attention to HID0[SRST]. Disable the MMU and | |
| 83 | - branch to 0xfff00100 */ | |
| 84 | -_GLOBAL(_gemini_reboot) | |
| 85 | - lis r5,GEMINI_BOOT_INIT@h | |
| 86 | - ori r5,r5,GEMINI_BOOT_INIT@l | |
| 87 | - li r6,MSR_IP | |
| 88 | - mtspr SPRN_SRR0,r5 | |
| 89 | - mtspr SPRN_SRR1,r6 | |
| 90 | - rfi |
arch/ppc/platforms/gemini_serial.h
| 1 | -#ifdef __KERNEL__ | |
| 2 | -#ifndef __ASMPPC_GEMINI_SERIAL_H | |
| 3 | -#define __ASMPPC_GEMINI_SERIAL_H | |
| 4 | - | |
| 5 | -#include <platforms/gemini.h> | |
| 6 | - | |
| 7 | -#ifdef CONFIG_SERIAL_MANY_PORTS | |
| 8 | -#define RS_TABLE_SIZE 64 | |
| 9 | -#else | |
| 10 | -#define RS_TABLE_SIZE 4 | |
| 11 | -#endif | |
| 12 | - | |
| 13 | -/* Rate for the 24.576 Mhz clock for the onboard serial chip */ | |
| 14 | -#define BASE_BAUD (24576000 / 16) | |
| 15 | - | |
| 16 | -#ifdef CONFIG_SERIAL_DETECT_IRQ | |
| 17 | -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ) | |
| 18 | -#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_AUTO_IRQ) | |
| 19 | -#else | |
| 20 | -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST) | |
| 21 | -#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF) | |
| 22 | -#endif | |
| 23 | - | |
| 24 | -#define STD_SERIAL_PORT_DEFNS \ | |
| 25 | - { 0, BASE_BAUD, GEMINI_SERIAL_A, 15, STD_COM_FLAGS }, /* ttyS0 */ \ | |
| 26 | - { 0, BASE_BAUD, GEMINI_SERIAL_B, 14, STD_COM_FLAGS }, /* ttyS1 */ \ | |
| 27 | - | |
| 28 | -#ifdef CONFIG_GEMINI_PU32 | |
| 29 | -#define PU32_SERIAL_PORT_DEFNS \ | |
| 30 | - { 0, BASE_BAUD, NULL, 0, STD_COM_FLAGS }, | |
| 31 | -#else | |
| 32 | -#define PU32_SERIAL_PORT_DEFNS | |
| 33 | -#endif | |
| 34 | - | |
| 35 | -#define SERIAL_PORT_DFNS \ | |
| 36 | - STD_SERIAL_PORT_DEFNS \ | |
| 37 | - PU32_SERIAL_PORT_DEFNS | |
| 38 | - | |
| 39 | -#endif | |
| 40 | -#endif /* __KERNEL__ */ |
arch/ppc/platforms/gemini_setup.c
| 1 | -/* | |
| 2 | - * Copyright (C) 1995 Linus Torvalds | |
| 3 | - * Adapted from 'alpha' version by Gary Thomas | |
| 4 | - * Modified by Cort Dougan (cort@cs.nmt.edu) | |
| 5 | - * Synergy Microsystems board support by Dan Cox (dan@synergymicro.com) | |
| 6 | - * | |
| 7 | - */ | |
| 8 | - | |
| 9 | -#include <linux/stddef.h> | |
| 10 | -#include <linux/kernel.h> | |
| 11 | -#include <linux/init.h> | |
| 12 | -#include <linux/errno.h> | |
| 13 | -#include <linux/reboot.h> | |
| 14 | -#include <linux/pci.h> | |
| 15 | -#include <linux/time.h> | |
| 16 | -#include <linux/kdev_t.h> | |
| 17 | -#include <linux/types.h> | |
| 18 | -#include <linux/major.h> | |
| 19 | -#include <linux/initrd.h> | |
| 20 | -#include <linux/console.h> | |
| 21 | -#include <linux/seq_file.h> | |
| 22 | -#include <linux/root_dev.h> | |
| 23 | -#include <linux/bcd.h> | |
| 24 | - | |
| 25 | -#include <asm/system.h> | |
| 26 | -#include <asm/pgtable.h> | |
| 27 | -#include <asm/page.h> | |
| 28 | -#include <asm/dma.h> | |
| 29 | -#include <asm/io.h> | |
| 30 | -#include <asm/m48t35.h> | |
| 31 | -#include <platforms/gemini.h> | |
| 32 | -#include <asm/time.h> | |
| 33 | -#include <asm/open_pic.h> | |
| 34 | -#include <asm/bootinfo.h> | |
| 35 | -#include <asm/machdep.h> | |
| 36 | - | |
| 37 | -void gemini_find_bridges(void); | |
| 38 | -static int gemini_get_clock_speed(void); | |
| 39 | -extern void gemini_pcibios_fixup(void); | |
| 40 | - | |
| 41 | -static char *gemini_board_families[] = { | |
| 42 | - "VGM", "VSS", "KGM", "VGR", "VCM", "VCS", "KCM", "VCR" | |
| 43 | -}; | |
| 44 | -static int gemini_board_count = sizeof(gemini_board_families) / | |
| 45 | - sizeof(gemini_board_families[0]); | |
| 46 | - | |
| 47 | -static unsigned int cpu_7xx[16] = { | |
| 48 | - 0, 15, 14, 0, 0, 13, 5, 9, 6, 11, 8, 10, 16, 12, 7, 0 | |
| 49 | -}; | |
| 50 | -static unsigned int cpu_6xx[16] = { | |
| 51 | - 0, 0, 14, 0, 0, 13, 5, 9, 6, 11, 8, 10, 0, 12, 7, 0 | |
| 52 | -}; | |
| 53 | - | |
| 54 | -/* | |
| 55 | - * prom_init is the Gemini version of prom.c:prom_init. We only need | |
| 56 | - * the BSS clearing code, so I copied that out of prom.c. This is a | |
| 57 | - * lot simpler than hacking prom.c so it will build with Gemini. -VAL | |
| 58 | - */ | |
| 59 | - | |
| 60 | -#define PTRRELOC(x) ((typeof(x))((unsigned long)(x) + offset)) | |
| 61 | - | |
| 62 | -unsigned long | |
| 63 | -prom_init(void) | |
| 64 | -{ | |
| 65 | - unsigned long offset = reloc_offset(); | |
| 66 | - unsigned long phys; | |
| 67 | - extern char __bss_start, _end; | |
| 68 | - | |
| 69 | - /* First zero the BSS -- use memset, some arches don't have | |
| 70 | - * caches on yet */ | |
| 71 | - memset_io(PTRRELOC(&__bss_start),0 , &_end - &__bss_start); | |
| 72 | - | |
| 73 | - /* Default */ | |
| 74 | - phys = offset + KERNELBASE; | |
| 75 | - | |
| 76 | - gemini_prom_init(); | |
| 77 | - | |
| 78 | - return phys; | |
| 79 | -} | |
| 80 | - | |
| 81 | -int | |
| 82 | -gemini_show_cpuinfo(struct seq_file *m) | |
| 83 | -{ | |
| 84 | - unsigned char reg, rev; | |
| 85 | - char *family; | |
| 86 | - unsigned int type; | |
| 87 | - | |
| 88 | - reg = readb(GEMINI_FEAT); | |
| 89 | - family = gemini_board_families[((reg>>4) & 0xf)]; | |
| 90 | - if (((reg>>4) & 0xf) > gemini_board_count) | |
| 91 | - printk(KERN_ERR "cpuinfo(): unable to determine board family\n"); | |
| 92 | - | |
| 93 | - reg = readb(GEMINI_BREV); | |
| 94 | - type = (reg>>4) & 0xf; | |
| 95 | - rev = reg & 0xf; | |
| 96 | - | |
| 97 | - reg = readb(GEMINI_BECO); | |
| 98 | - | |
| 99 | - seq_printf(m, "machine\t\t: Gemini %s%d, rev %c, eco %d\n", | |
| 100 | - family, type, (rev + 'A'), (reg & 0xf)); | |
| 101 | - | |
| 102 | - seq_printf(m, "board\t\t: Gemini %s", family); | |
| 103 | - if (type > 9) | |
| 104 | - seq_printf(m, "%c", (type - 10) + 'A'); | |
| 105 | - else | |
| 106 | - seq_printf(m, "%d", type); | |
| 107 | - | |
| 108 | - seq_printf(m, ", rev %c, eco %d\n", (rev + 'A'), (reg & 0xf)); | |
| 109 | - | |
| 110 | - seq_printf(m, "clock\t\t: %dMhz\n", gemini_get_clock_speed()); | |
| 111 | - | |
| 112 | - return 0; | |
| 113 | -} | |
| 114 | - | |
| 115 | -static u_char gemini_openpic_initsenses[] = { | |
| 116 | - 1, | |
| 117 | - 1, | |
| 118 | - 1, | |
| 119 | - 1, | |
| 120 | - 0, | |
| 121 | - 0, | |
| 122 | - 1, /* remainder are level-triggered */ | |
| 123 | -}; | |
| 124 | - | |
| 125 | -#define GEMINI_MPIC_ADDR (0xfcfc0000) | |
| 126 | -#define GEMINI_MPIC_PCI_CFG (0x80005800) | |
| 127 | - | |
| 128 | -void __init gemini_openpic_init(void) | |
| 129 | -{ | |
| 130 | - | |
| 131 | - OpenPIC_Addr = (volatile struct OpenPIC *) | |
| 132 | - grackle_read(GEMINI_MPIC_PCI_CFG + 0x10); | |
| 133 | - OpenPIC_InitSenses = gemini_openpic_initsenses; | |
| 134 | - OpenPIC_NumInitSenses = sizeof( gemini_openpic_initsenses ); | |
| 135 | - | |
| 136 | - ioremap( GEMINI_MPIC_ADDR, OPENPIC_SIZE); | |
| 137 | -} | |
| 138 | - | |
| 139 | - | |
| 140 | -extern unsigned long loops_per_jiffy; | |
| 141 | -extern int root_mountflags; | |
| 142 | -extern char cmd_line[]; | |
| 143 | - | |
| 144 | -void | |
| 145 | -gemini_heartbeat(void) | |
| 146 | -{ | |
| 147 | - static unsigned long led = GEMINI_LEDBASE+(4*8); | |
| 148 | - static char direction = 8; | |
| 149 | - | |
| 150 | - | |
| 151 | - /* We only want to do this on 1 CPU */ | |
| 152 | - if (smp_processor_id()) | |
| 153 | - return; | |
| 154 | - *(char *)led = 0; | |
| 155 | - if ( (led + direction) > (GEMINI_LEDBASE+(7*8)) || | |
| 156 | - (led + direction) < (GEMINI_LEDBASE+(4*8)) ) | |
| 157 | - direction *= -1; | |
| 158 | - led += direction; | |
| 159 | - *(char *)led = 0xff; | |
| 160 | - ppc_md.heartbeat_count = ppc_md.heartbeat_reset; | |
| 161 | -} | |
| 162 | - | |
| 163 | -void __init gemini_setup_arch(void) | |
| 164 | -{ | |
| 165 | - extern char cmd_line[]; | |
| 166 | - | |
| 167 | - | |
| 168 | - loops_per_jiffy = 50000000/HZ; | |
| 169 | - | |
| 170 | -#ifdef CONFIG_BLK_DEV_INITRD | |
| 171 | - /* bootable off CDROM */ | |
| 172 | - if (initrd_start) | |
| 173 | - ROOT_DEV = Root_SR0; | |
| 174 | - else | |
| 175 | -#endif | |
| 176 | - ROOT_DEV = Root_SDA1; | |
| 177 | - | |
| 178 | - /* nothing but serial consoles... */ | |
| 179 | - sprintf(cmd_line, "%s console=ttyS0", cmd_line); | |
| 180 | - | |
| 181 | - printk("Boot arguments: %s\n", cmd_line); | |
| 182 | - | |
| 183 | - ppc_md.heartbeat = gemini_heartbeat; | |
| 184 | - ppc_md.heartbeat_reset = HZ/8; | |
| 185 | - ppc_md.heartbeat_count = 1; | |
| 186 | - | |
| 187 | - /* Lookup PCI hosts */ | |
| 188 | - gemini_find_bridges(); | |
| 189 | - /* take special pains to map the MPIC, since it isn't mapped yet */ | |
| 190 | - gemini_openpic_init(); | |
| 191 | - /* start the L2 */ | |
| 192 | - gemini_init_l2(); | |
| 193 | -} | |
| 194 | - | |
| 195 | - | |
| 196 | -int | |
| 197 | -gemini_get_clock_speed(void) | |
| 198 | -{ | |
| 199 | - unsigned long hid1, pvr; | |
| 200 | - int clock; | |
| 201 | - | |
| 202 | - pvr = mfspr(SPRN_PVR); | |
| 203 | - hid1 = (mfspr(SPRN_HID1) >> 28) & 0xf; | |
| 204 | - if (PVR_VER(pvr) == 8 || | |
| 205 | - PVR_VER(pvr) == 12) | |
| 206 | - hid1 = cpu_7xx[hid1]; | |
| 207 | - else | |
| 208 | - hid1 = cpu_6xx[hid1]; | |
| 209 | - | |
| 210 | - switch((readb(GEMINI_BSTAT) & 0xc) >> 2) { | |
| 211 | - | |
| 212 | - case 0: | |
| 213 | - default: | |
| 214 | - clock = (hid1*100)/3; | |
| 215 | - break; | |
| 216 | - | |
| 217 | - case 1: | |
| 218 | - clock = (hid1*125)/3; | |
| 219 | - break; | |
| 220 | - | |
| 221 | - case 2: | |
| 222 | - clock = (hid1*50); | |
| 223 | - break; | |
| 224 | - } | |
| 225 | - | |
| 226 | - return clock; | |
| 227 | -} | |
| 228 | - | |
| 229 | -void __init gemini_init_l2(void) | |
| 230 | -{ | |
| 231 | - unsigned char reg, brev, fam, creg; | |
| 232 | - unsigned long cache; | |
| 233 | - unsigned long pvr; | |
| 234 | - | |
| 235 | - reg = readb(GEMINI_L2CFG); | |
| 236 | - brev = readb(GEMINI_BREV); | |
| 237 | - fam = readb(GEMINI_FEAT); | |
| 238 | - pvr = mfspr(SPRN_PVR); | |
| 239 | - | |
| 240 | - switch(PVR_VER(pvr)) { | |
| 241 | - | |
| 242 | - case 8: | |
| 243 | - if (reg & 0xc0) | |
| 244 | - cache = (((reg >> 6) & 0x3) << 28); | |
| 245 | - else | |
| 246 | - cache = 0x3 << 28; | |
| 247 | - | |
| 248 | -#ifdef CONFIG_SMP | |
| 249 | - /* Pre-3.0 processor revs had snooping errata. Leave | |
| 250 | - their L2's disabled with SMP. -- Dan */ | |
| 251 | - if (PVR_CFG(pvr) < 3) { | |
| 252 | - printk("Pre-3.0 750; L2 left disabled!\n"); | |
| 253 | - return; | |
| 254 | - } | |
| 255 | -#endif /* CONFIG_SMP */ | |
| 256 | - | |
| 257 | - /* Special case: VGM5-B's came before L2 ratios were set on | |
| 258 | - the board. Processor speed shouldn't be too high, so | |
| 259 | - set L2 ratio to 1:1.5. */ | |
| 260 | - if ((brev == 0x51) && ((fam & 0xa0) >> 4) == 0) | |
| 261 | - reg |= 1; | |
| 262 | - | |
| 263 | - /* determine best cache ratio based upon what the board | |
| 264 | - tells us (which sometimes _may_ not be true) and | |
| 265 | - the processor speed. */ | |
| 266 | - else { | |
| 267 | - if (gemini_get_clock_speed() > 250) | |
| 268 | - reg = 2; | |
| 269 | - } | |
| 270 | - break; | |
| 271 | - case 12: | |
| 272 | - { | |
| 273 | - static unsigned long l2_size_val = 0; | |
| 274 | - | |
| 275 | - if (!l2_size_val) | |
| 276 | - l2_size_val = _get_L2CR(); | |
| 277 | - cache = l2_size_val; | |
| 278 | - break; | |
| 279 | - } | |
| 280 | - case 4: | |
| 281 | - case 9: | |
| 282 | - creg = readb(GEMINI_CPUSTAT); | |
| 283 | - if (((creg & 0xc) >> 2) != 1) | |
| 284 | - printk("Dual-604 boards don't support the use of L2\n"); | |
| 285 | - else | |
| 286 | - writeb(1, GEMINI_L2CFG); | |
| 287 | - return; | |
| 288 | - default: | |
| 289 | - printk("Unknown processor; L2 left disabled\n"); | |
| 290 | - return; | |
| 291 | - } | |
| 292 | - | |
| 293 | - cache |= ((1<<reg) << 25); | |
| 294 | - cache |= (L2CR_L2RAM_MASK|L2CR_L2CTL|L2CR_L2DO); | |
| 295 | - _set_L2CR(0); | |
| 296 | - _set_L2CR(cache | L2CR_L2E); | |
| 297 | - | |
| 298 | -} | |
| 299 | - | |
| 300 | -void | |
| 301 | -gemini_restart(char *cmd) | |
| 302 | -{ | |
| 303 | - local_irq_disable(); | |
| 304 | - /* make a clean restart, not via the MPIC */ | |
| 305 | - _gemini_reboot(); | |
| 306 | - for(;;); | |
| 307 | -} | |
| 308 | - | |
| 309 | -void | |
| 310 | -gemini_power_off(void) | |
| 311 | -{ | |
| 312 | - for(;;); | |
| 313 | -} | |
| 314 | - | |
| 315 | -void | |
| 316 | -gemini_halt(void) | |
| 317 | -{ | |
| 318 | - gemini_restart(NULL); | |
| 319 | -} | |
| 320 | - | |
| 321 | -void __init gemini_init_IRQ(void) | |
| 322 | -{ | |
| 323 | - /* gemini has no 8259 */ | |
| 324 | - openpic_init(1, 0, 0, -1); | |
| 325 | -} | |
| 326 | - | |
| 327 | -#define gemini_rtc_read(x) (readb(GEMINI_RTC+(x))) | |
| 328 | -#define gemini_rtc_write(val,x) (writeb((val),(GEMINI_RTC+(x)))) | |
| 329 | - | |
| 330 | -/* ensure that the RTC is up and running */ | |
| 331 | -long __init gemini_time_init(void) | |
| 332 | -{ | |
| 333 | - unsigned char reg; | |
| 334 | - | |
| 335 | - reg = gemini_rtc_read(M48T35_RTC_CONTROL); | |
| 336 | - | |
| 337 | - if ( reg & M48T35_RTC_STOPPED ) { | |
| 338 | - printk(KERN_INFO "M48T35 real-time-clock was stopped. Now starting...\n"); | |
| 339 | - gemini_rtc_write((reg & ~(M48T35_RTC_STOPPED)), M48T35_RTC_CONTROL); | |
| 340 | - gemini_rtc_write((reg | M48T35_RTC_SET), M48T35_RTC_CONTROL); | |
| 341 | - } | |
| 342 | - return 0; | |
| 343 | -} | |
| 344 | - | |
| 345 | -#undef DEBUG_RTC | |
| 346 | - | |
| 347 | -unsigned long | |
| 348 | -gemini_get_rtc_time(void) | |
| 349 | -{ | |
| 350 | - unsigned int year, mon, day, hour, min, sec; | |
| 351 | - unsigned char reg; | |
| 352 | - | |
| 353 | - reg = gemini_rtc_read(M48T35_RTC_CONTROL); | |
| 354 | - gemini_rtc_write((reg|M48T35_RTC_READ), M48T35_RTC_CONTROL); | |
| 355 | -#ifdef DEBUG_RTC | |
| 356 | - printk("get rtc: reg = %x\n", reg); | |
| 357 | -#endif | |
| 358 | - | |
| 359 | - do { | |
| 360 | - sec = gemini_rtc_read(M48T35_RTC_SECONDS); | |
| 361 | - min = gemini_rtc_read(M48T35_RTC_MINUTES); | |
| 362 | - hour = gemini_rtc_read(M48T35_RTC_HOURS); | |
| 363 | - day = gemini_rtc_read(M48T35_RTC_DOM); | |
| 364 | - mon = gemini_rtc_read(M48T35_RTC_MONTH); | |
| 365 | - year = gemini_rtc_read(M48T35_RTC_YEAR); | |
| 366 | - } while( sec != gemini_rtc_read(M48T35_RTC_SECONDS)); | |
| 367 | -#ifdef DEBUG_RTC | |
| 368 | - printk("get rtc: sec=%x, min=%x, hour=%x, day=%x, mon=%x, year=%x\n", | |
| 369 | - sec, min, hour, day, mon, year); | |
| 370 | -#endif | |
| 371 | - | |
| 372 | - gemini_rtc_write(reg, M48T35_RTC_CONTROL); | |
| 373 | - | |
| 374 | - BCD_TO_BIN(sec); | |
| 375 | - BCD_TO_BIN(min); | |
| 376 | - BCD_TO_BIN(hour); | |
| 377 | - BCD_TO_BIN(day); | |
| 378 | - BCD_TO_BIN(mon); | |
| 379 | - BCD_TO_BIN(year); | |
| 380 | - | |
| 381 | - if ((year += 1900) < 1970) | |
| 382 | - year += 100; | |
| 383 | -#ifdef DEBUG_RTC | |
| 384 | - printk("get rtc: sec=%x, min=%x, hour=%x, day=%x, mon=%x, year=%x\n", | |
| 385 | - sec, min, hour, day, mon, year); | |
| 386 | -#endif | |
| 387 | - | |
| 388 | - return mktime( year, mon, day, hour, min, sec ); | |
| 389 | -} | |
| 390 | - | |
| 391 | - | |
| 392 | -int | |
| 393 | -gemini_set_rtc_time( unsigned long now ) | |
| 394 | -{ | |
| 395 | - unsigned char reg; | |
| 396 | - struct rtc_time tm; | |
| 397 | - | |
| 398 | - to_tm( now, &tm ); | |
| 399 | - | |
| 400 | - reg = gemini_rtc_read(M48T35_RTC_CONTROL); | |
| 401 | -#ifdef DEBUG_RTC | |
| 402 | - printk("set rtc: reg = %x\n", reg); | |
| 403 | -#endif | |
| 404 | - | |
| 405 | - gemini_rtc_write((reg|M48T35_RTC_SET), M48T35_RTC_CONTROL); | |
| 406 | -#ifdef DEBUG_RTC | |
| 407 | - printk("set rtc: tm vals - sec=%x, min=%x, hour=%x, mon=%x, mday=%x, year=%x\n", | |
| 408 | - tm.tm_sec, tm.tm_min, tm.tm_hour, tm.tm_mon, tm.tm_mday, tm.tm_year); | |
| 409 | -#endif | |
| 410 | - | |
| 411 | - tm.tm_year -= 1900; | |
| 412 | - BIN_TO_BCD(tm.tm_sec); | |
| 413 | - BIN_TO_BCD(tm.tm_min); | |
| 414 | - BIN_TO_BCD(tm.tm_hour); | |
| 415 | - BIN_TO_BCD(tm.tm_mon); | |
| 416 | - BIN_TO_BCD(tm.tm_mday); | |
| 417 | - BIN_TO_BCD(tm.tm_year); | |
| 418 | -#ifdef DEBUG_RTC | |
| 419 | - printk("set rtc: tm vals - sec=%x, min=%x, hour=%x, mon=%x, mday=%x, year=%x\n", | |
| 420 | - tm.tm_sec, tm.tm_min, tm.tm_hour, tm.tm_mon, tm.tm_mday, tm.tm_year); | |
| 421 | -#endif | |
| 422 | - | |
| 423 | - gemini_rtc_write(tm.tm_sec, M48T35_RTC_SECONDS); | |
| 424 | - gemini_rtc_write(tm.tm_min, M48T35_RTC_MINUTES); | |
| 425 | - gemini_rtc_write(tm.tm_hour, M48T35_RTC_HOURS); | |
| 426 | - gemini_rtc_write(tm.tm_mday, M48T35_RTC_DOM); | |
| 427 | - gemini_rtc_write(tm.tm_mon, M48T35_RTC_MONTH); | |
| 428 | - gemini_rtc_write(tm.tm_year, M48T35_RTC_YEAR); | |
| 429 | - | |
| 430 | - /* done writing */ | |
| 431 | - gemini_rtc_write(reg, M48T35_RTC_CONTROL); | |
| 432 | - | |
| 433 | - return 0; | |
| 434 | -} | |
| 435 | - | |
| 436 | -/* use the RTC to determine the decrementer count */ | |
| 437 | -void __init gemini_calibrate_decr(void) | |
| 438 | -{ | |
| 439 | - int freq, divisor; | |
| 440 | - unsigned char reg; | |
| 441 | - | |
| 442 | - /* determine processor bus speed */ | |
| 443 | - reg = readb(GEMINI_BSTAT); | |
| 444 | - | |
| 445 | - switch(((reg & 0x0c)>>2)&0x3) { | |
| 446 | - case 0: | |
| 447 | - default: | |
| 448 | - freq = 66667; | |
| 449 | - break; | |
| 450 | - case 1: | |
| 451 | - freq = 83000; | |
| 452 | - break; | |
| 453 | - case 2: | |
| 454 | - freq = 100000; | |
| 455 | - break; | |
| 456 | - } | |
| 457 | - | |
| 458 | - freq *= 1000; | |
| 459 | - divisor = 4; | |
| 460 | - tb_ticks_per_jiffy = freq / HZ / divisor; | |
| 461 | - tb_to_us = mulhwu_scale_factor(freq/divisor, 1000000); | |
| 462 | -} | |
| 463 | - | |
| 464 | -unsigned long __init gemini_find_end_of_memory(void) | |
| 465 | -{ | |
| 466 | - unsigned long total; | |
| 467 | - unsigned char reg; | |
| 468 | - | |
| 469 | - reg = readb(GEMINI_MEMCFG); | |
| 470 | - total = ((1<<((reg & 0x7) - 1)) * | |
| 471 | - (8<<((reg >> 3) & 0x7))); | |
| 472 | - total *= (1024*1024); | |
| 473 | - return total; | |
| 474 | -} | |
| 475 | - | |
| 476 | -static void __init | |
| 477 | -gemini_map_io(void) | |
| 478 | -{ | |
| 479 | - io_block_mapping(0xf0000000, 0xf0000000, 0x10000000, _PAGE_IO); | |
| 480 | - io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO); | |
| 481 | -} | |
| 482 | - | |
| 483 | -#ifdef CONFIG_SMP | |
| 484 | -static int | |
| 485 | -smp_gemini_probe(void) | |
| 486 | -{ | |
| 487 | - int i, nr; | |
| 488 | - | |
| 489 | - nr = (readb(GEMINI_CPUSTAT) & GEMINI_CPU_COUNT_MASK) >> 2; | |
| 490 | - if (nr == 0) | |
| 491 | - nr = 4; | |
| 492 | - | |
| 493 | - if (nr > 1) { | |
| 494 | - openpic_request_IPIs(); | |
| 495 | - for (i = 1; i < nr; ++i) | |
| 496 | - smp_hw_index[i] = i; | |
| 497 | - } | |
| 498 | - | |
| 499 | - return nr; | |
| 500 | -} | |
| 501 | - | |
| 502 | -static void | |
| 503 | -smp_gemini_kick_cpu(int nr) | |
| 504 | -{ | |
| 505 | - openpic_reset_processor_phys(1 << nr); | |
| 506 | - openpic_reset_processor_phys(0); | |
| 507 | -} | |
| 508 | - | |
| 509 | -static void | |
| 510 | -smp_gemini_setup_cpu(int cpu_nr) | |
| 511 | -{ | |
| 512 | - if (OpenPIC_Addr) | |
| 513 | - do_openpic_setup_cpu(); | |
| 514 | - if (cpu_nr > 0) | |
| 515 | - gemini_init_l2(); | |
| 516 | -} | |
| 517 | - | |
| 518 | -static struct smp_ops_t gemini_smp_ops = { | |
| 519 | - smp_openpic_message_pass, | |
| 520 | - smp_gemini_probe, | |
| 521 | - smp_gemini_kick_cpu, | |
| 522 | - smp_gemini_setup_cpu, | |
| 523 | - .give_timebase = smp_generic_give_timebase, | |
| 524 | - .take_timebase = smp_generic_take_timebase, | |
| 525 | -}; | |
| 526 | -#endif /* CONFIG_SMP */ | |
| 527 | - | |
| 528 | -void __init platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |
| 529 | - unsigned long r6, unsigned long r7) | |
| 530 | -{ | |
| 531 | - int i; | |
| 532 | - | |
| 533 | - /* Restore BATs for now */ | |
| 534 | - mtspr(SPRN_DBAT3U, 0xf0001fff); | |
| 535 | - mtspr(SPRN_DBAT3L, 0xf000002a); | |
| 536 | - | |
| 537 | - parse_bootinfo(find_bootinfo()); | |
| 538 | - | |
| 539 | - for(i = 0; i < GEMINI_LEDS; i++) | |
| 540 | - gemini_led_off(i); | |
| 541 | - | |
| 542 | - ISA_DMA_THRESHOLD = 0; | |
| 543 | - DMA_MODE_READ = 0; | |
| 544 | - DMA_MODE_WRITE = 0; | |
| 545 | - | |
| 546 | -#ifdef CONFIG_BLK_DEV_INITRD | |
| 547 | - if ( r4 ) | |
| 548 | - { | |
| 549 | - initrd_start = r4 + KERNELBASE; | |
| 550 | - initrd_end = r5 + KERNELBASE; | |
| 551 | - } | |
| 552 | -#endif | |
| 553 | - | |
| 554 | - ppc_md.setup_arch = gemini_setup_arch; | |
| 555 | - ppc_md.show_cpuinfo = gemini_show_cpuinfo; | |
| 556 | - ppc_md.init_IRQ = gemini_init_IRQ; | |
| 557 | - ppc_md.get_irq = openpic_get_irq; | |
| 558 | - ppc_md.init = NULL; | |
| 559 | - | |
| 560 | - ppc_md.restart = gemini_restart; | |
| 561 | - ppc_md.power_off = gemini_power_off; | |
| 562 | - ppc_md.halt = gemini_halt; | |
| 563 | - | |
| 564 | - ppc_md.time_init = gemini_time_init; | |
| 565 | - ppc_md.set_rtc_time = gemini_set_rtc_time; | |
| 566 | - ppc_md.get_rtc_time = gemini_get_rtc_time; | |
| 567 | - ppc_md.calibrate_decr = gemini_calibrate_decr; | |
| 568 | - | |
| 569 | - ppc_md.find_end_of_memory = gemini_find_end_of_memory; | |
| 570 | - ppc_md.setup_io_mappings = gemini_map_io; | |
| 571 | - | |
| 572 | - ppc_md.pcibios_fixup_bus = gemini_pcibios_fixup; | |
| 573 | - | |
| 574 | -#ifdef CONFIG_SMP | |
| 575 | - smp_ops = &gemini_smp_ops; | |
| 576 | -#endif /* CONFIG_SMP */ | |
| 577 | -} |
arch/ppc/syslib/Makefile
| ... | ... | @@ -45,7 +45,6 @@ |
| 45 | 45 | obj-$(CONFIG_EV64260) += todc_time.o pci_auto.o |
| 46 | 46 | obj-$(CONFIG_EV64360) += todc_time.o |
| 47 | 47 | obj-$(CONFIG_CHESTNUT) += mv64360_pic.o pci_auto.o |
| 48 | -obj-$(CONFIG_GEMINI) += open_pic.o | |
| 49 | 48 | obj-$(CONFIG_GT64260) += gt64260_pic.o |
| 50 | 49 | obj-$(CONFIG_LOPEC) += pci_auto.o todc_time.o |
| 51 | 50 | obj-$(CONFIG_HDPU) += pci_auto.o |
arch/ppc/xmon/start.c
| ... | ... | @@ -58,10 +58,7 @@ |
| 58 | 58 | void |
| 59 | 59 | xmon_map_scc(void) |
| 60 | 60 | { |
| 61 | -#if defined(CONFIG_GEMINI) | |
| 62 | - /* should already be mapped by the kernel boot */ | |
| 63 | - sccd = (volatile unsigned char *) 0xffeffb08; | |
| 64 | -#elif defined(CONFIG_405GP) | |
| 61 | +#if defined(CONFIG_405GP) | |
| 65 | 62 | sccd = (volatile unsigned char *)0xef600300; |
| 66 | 63 | #elif defined(CONFIG_440EP) |
| 67 | 64 | sccd = (volatile unsigned char *) ioremap(PPC440EP_UART0_ADDR, 8); |
include/asm-ppc/m48t35.h
| 1 | -/* | |
| 2 | - * Registers for the SGS-Thomson M48T35 Timekeeper RAM chip | |
| 3 | - * and | |
| 4 | - * Registers for the SGS-Thomson M48T37 Timekeeper RAM chip | |
| 5 | - * The 37 is the 35 plus alarm and century thus the offsets | |
| 6 | - * are shifted by the extra registers. | |
| 7 | - */ | |
| 8 | - | |
| 9 | -#ifndef __PPC_M48T35_H | |
| 10 | -#define __PPC_M48T35_H | |
| 11 | - | |
| 12 | -/* RTC offsets */ | |
| 13 | -#define M48T35_RTC_FLAGS (-8) /* the negative regs are really T37 only */ | |
| 14 | -#define M48T35_RTC_CENTURY (-7) | |
| 15 | -#define M48T35_RTC_AL_SEC (-6) | |
| 16 | -#define M48T35_RTC_AL_MIN (-5) | |
| 17 | -#define M48T35_RTC_AL_HRS (-4) | |
| 18 | -#define M48T35_RTC_AL_DOM (-3) | |
| 19 | -#define M48T35_RTC_INTERRUPT (-2) | |
| 20 | -#define M48T35_RTC_WATCHDOG (-1) | |
| 21 | -#define M48T35_RTC_CONTROL 0 /* T35 starts here */ | |
| 22 | -#define M48T35_RTC_SECONDS 1 | |
| 23 | -#define M48T35_RTC_MINUTES 2 | |
| 24 | -#define M48T35_RTC_HOURS 3 | |
| 25 | -#define M48T35_RTC_DAY 4 | |
| 26 | -#define M48T35_RTC_DOM 5 | |
| 27 | -#define M48T35_RTC_MONTH 6 | |
| 28 | -#define M48T35_RTC_YEAR 7 | |
| 29 | - | |
| 30 | -/* this way help us know which bits go with which regs */ | |
| 31 | -#define M48T35_RTC_FLAGS_BL 0x10 | |
| 32 | -#define M48T35_RTC_FLAGS_AF 0x40 | |
| 33 | -#define M48T35_RTC_FLAGS_WDF 0x80 | |
| 34 | - | |
| 35 | -#define M48T35_RTC_INTERRUPT_AFE 0x80 | |
| 36 | -#define M48T35_RTC_INTERRUPT_ABE 0x20 | |
| 37 | -#define M48T35_RTC_INTERRUPT_ALL (M48T35_RTC_INTERRUPT_AFE|M48T35_RTC_INTERRUPT_ABE) | |
| 38 | - | |
| 39 | -#define M48T35_RTC_WATCHDOG_RB 0x03 | |
| 40 | -#define M48T35_RTC_WATCHDOG_BMB 0x7c | |
| 41 | -#define M48T35_RTC_WATCHDOG_WDS 0x80 | |
| 42 | -#define M48T35_RTC_WATCHDOG_ALL (M48T35_RTC_WATCHDOG_RB|M48T35_RTC_WATCHDOG_BMB|M48T35_RTC_W) | |
| 43 | - | |
| 44 | -#define M48T35_RTC_CONTROL_WRITE 0x80 | |
| 45 | -#define M48T35_RTC_CONTROL_READ 0x40 | |
| 46 | -#define M48T35_RTC_CONTROL_CAL_SIGN 0x20 | |
| 47 | -#define M48T35_RTC_CONTROL_CAL_VALUE 0x1f | |
| 48 | -#define M48T35_RTC_CONTROL_LOCKED (M48T35_RTC_WRITE|M48T35_RTC_READ) | |
| 49 | -#define M48T35_RTC_CONTROL_CALIBRATION (M48T35_RTC_CONTROL_CAL_SIGN|M48T35_RTC_CONTROL_CAL_VALUE) | |
| 50 | - | |
| 51 | -#define M48T35_RTC_SECONDS_SEC_1 0x0f | |
| 52 | -#define M48T35_RTC_SECONDS_SEC_10 0x70 | |
| 53 | -#define M48T35_RTC_SECONDS_ST 0x80 | |
| 54 | -#define M48T35_RTC_SECONDS_SEC_ALL (M48T35_RTC_SECONDS_SEC_1|M48T35_RTC_SECONDS_SEC_10) | |
| 55 | - | |
| 56 | -#define M48T35_RTC_MINUTES_MIN_1 0x0f | |
| 57 | -#define M48T35_RTC_MINUTES_MIN_10 0x70 | |
| 58 | -#define M48T35_RTC_MINUTES_MIN_ALL (M48T35_RTC_MINUTES_MIN_1|M48T35_RTC_MINUTES_MIN_10) | |
| 59 | - | |
| 60 | -#define M48T35_RTC_HOURS_HRS_1 0x0f | |
| 61 | -#define M48T35_RTC_HOURS_HRS_10 0x30 | |
| 62 | -#define M48T35_RTC_HOURS_HRS_ALL (M48T35_RTC_HOURS_HRS_1|M48T35_RTC_HOURS_HRS_10) | |
| 63 | - | |
| 64 | -#define M48T35_RTC_DAY_DAY_1 0x03 | |
| 65 | -#define M48T35_RTC_DAY_FT 0x40 | |
| 66 | - | |
| 67 | -#define M48T35_RTC_ALARM_OFF 0x00 | |
| 68 | -#define M48T35_RTC_WATCHDOG_OFF 0x00 | |
| 69 | - | |
| 70 | - | |
| 71 | -/* legacy */ | |
| 72 | -#define M48T35_RTC_SET 0x80 | |
| 73 | -#define M48T35_RTC_STOPPED 0x80 | |
| 74 | -#define M48T35_RTC_READ 0x40 | |
| 75 | - | |
| 76 | - | |
| 77 | -#endif |
include/asm-ppc/serial.h
| ... | ... | @@ -11,8 +11,6 @@ |
| 11 | 11 | #include <platforms/ev64260.h> |
| 12 | 12 | #elif defined(CONFIG_CHESTNUT) |
| 13 | 13 | #include <platforms/chestnut.h> |
| 14 | -#elif defined(CONFIG_GEMINI) | |
| 15 | -#include <platforms/gemini_serial.h> | |
| 16 | 14 | #elif defined(CONFIG_POWERPMC250) |
| 17 | 15 | #include <platforms/powerpmc250.h> |
| 18 | 16 | #elif defined(CONFIG_LOPEC) |