1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 # 22 # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. 23 # 24 # Global definitions for sun4u opl implementation specific modules. 25 # 26 # uts/sun4u/opl/Makefile.opl 27 # 28 29 # 30 # Define directories. 31 # 32 # 33 # 34 ROOT_OPL_DIR = $(ROOT_PLAT_DIR)/SUNW,SPARC-Enterprise 35 ROOT_OPL_MOD_DIR = $(ROOT_OPL_DIR)/kernel 36 ROOT_OPL_KERN_DIR_32 = $(ROOT_OPL_MOD_DIR) 37 ROOT_OPL_KERN_DIR_64 = $(ROOT_OPL_MOD_DIR)/$(SUBDIR64) 38 ROOT_OPL_MISC_DIR_32 = $(ROOT_OPL_MOD_DIR)/misc 39 ROOT_OPL_MISC_DIR_64 = $(ROOT_OPL_MOD_DIR)/misc/$(SUBDIR64) 40 ROOT_OPL_DRV_DIR_32 = $(ROOT_OPL_MOD_DIR)/drv 41 ROOT_OPL_DRV_DIR_64 = $(ROOT_OPL_MOD_DIR)/drv/$(SUBDIR64) 42 ROOT_OPL_CPU_DIR_32 = $(ROOT_OPL_MOD_DIR)/cpu 43 ROOT_OPL_CPU_DIR_64 = $(ROOT_OPL_MOD_DIR)/cpu/$(SUBDIR64) 44 ROOT_OPL_CRYPTO_DIR_32 = $(ROOT_OPL_MOD_DIR)/crypto 45 ROOT_OPL_CRYPTO_DIR_64 = $(ROOT_OPL_MOD_DIR)/crypto/$(SUBDIR64) 46 47 ROOT_OPL_KERN_DIR = $(ROOT_OPL_KERN_DIR_$(CLASS)) 48 ROOT_OPL_MISC_DIR = $(ROOT_OPL_MISC_DIR_$(CLASS)) 49 ROOT_OPL_DRV_DIR = $(ROOT_OPL_DRV_DIR_$(CLASS)) 50 ROOT_OPL_CPU_DIR = $(ROOT_OPL_CPU_DIR_$(CLASS)) 51 ROOT_OPL_CRYPTO_DIR = $(ROOT_OPL_CRYPTO_DIR_$(CLASS)) 52 53 ROOT_PLAT_MOD_DIRS += $(ROOT_OPL_MOD_DIR) 54 ROOT_PLAT_MISC_DIRS_32 += $(ROOT_OPL_MISC_DIR_32) 55 56 USR_OPL_DIR = $(USR_PLAT_DIR)/SUNW,SPARC-Enterprise 57 USR_OPL_LIB_DIR = $(USR_OPL_DIR)/lib 58 USR_OPL_SBIN_DIR = $(USR_OPL_DIR)/sbin 59 USR_OPL_SBIN_PRTDIAG = $(USR_OPL_SBIN_DIR)/prtdiag 60 USR_OPL_SBIN_FRUADM = $(USR_OPL_SBIN_DIR)/fruadm 61 USR_OPL_INC_DIR = $(USR_OPL_DIR)/include 62 USR_OPL_ISYS_DIR = $(USR_OPL_INC_DIR)/sys 63 64 OPL_LINT_LIB_DIR = $(UTSBASE)/$(PLATFORM)/opl/lint-libs/$(OBJS_DIR) 65 OPLMSU_OPTION = options 66 67 # 68 # Define modules. 69 # 70 OPL_KMODS = platmod 71 OPL_KMODS += dm2s 72 OPL_KMODS += oplkmdrv 73 OPL_KMODS += pcicmu 74 OPL_KMODS += oplpanel 75 OPL_KMODS += dr .WAIT drmach 76 OPL_KMODS += oplmsu 77 OPL_KMODS += mc-opl 78 79 # 80 # CPU modules. 81 # 82 OPL_CPU_KMODS += olympus_c 83 84 # Links to OPL crypto modules 85 # 86 OPL_CRYPTO_LINKS = aes 87 88 # 89 # Include the makefiles which define build rule templates, the 90 # collection of files per module, and a few specific flags. Note 91 # that order is significant, just as with an include path. The 92 # first build rule template which matches the files name will be 93 # used. By including these in order from most machine dependent 94 # to most machine independent, we allow a machine dependent file 95 # to be used in preference over a machine independent version 96 # (Such as a machine specific optimization, which preserves the 97 # interfaces.) 98 # 99 include $(UTSBASE)/sun4u/ngdr/Makefile.files 100 include $(UTSTREE)/sun4u/opl/Makefile.files 101 102 # 103 # Include common rules. 104 # 105 include $(UTSTREE)/sun4u/Makefile.sun4u 106 107 # 108 # Everybody needs to know how to build modstubs.o and to locate unix.o 109 # 110 UNIX_DIR = $(UTSBASE)/$(PLATFORM)/opl/unix 111 MODSTUBS_DIR = $(UNIX_DIR) 112 DSF_DIR = $(UTSBASE)/$(PLATFORM)/opl/genassym 113 LINTS_DIR = $(OBJS_DIR) 114 LINT_LIB_DIR = $(UTSBASE)/$(PLATFORM)/opl/lint-libs/$(OBJS_DIR) 115 116 UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o 117 118 LINT_LIB = $(LINT_LIB_DIR)/llib-lunix.ln 119 120 # 121 # Define the actual specific platforms 122 # 123 MACHINE_DEFS = -D$(PLATFORM) -D_MACHDEP -DSFMMU -DMP 124 MACHINE_DEFS += -D_CPU_SIGNATURE 125 126 # 127 # Maximum CPUID = 01111 11 01 1 = 0x1FB (507) 128 # Maximum CHIPID = 1 01111 11 00 0 = 0x5F8 (1528) 129 # 130 MACHINE_DEFS += -DNCPU=512 131 MACHINE_DEFS += -DMAX_CPU_CHIPID=1529 132 MACHINE_DEFS += -DMAX_UPA=256 133 MACHINE_DEFS += -DIGN_SIZE=8 134 MACHINE_DEFS += -DMAX_MEM_NODES=16 135 # 136 # UTSB_PHYS will enable user TSB physical access for TL>0 137 # 138 MACHINE_DEFS += -DUTSB_PHYS 139 MACHINE_DEFS += -D_OPL 140 MACHINE_DEFS += -DOLYMPUS_SHARED_FTLB 141 MACHINE_DEFS += -D_CMP_NO_ERROR_STEERING -D_HW_MEMSCRUB_SUPPORT 142 MACHINE_DEFS += -DDO_CORELEVEL_LOADBAL 143 MACHINE_DEFS += -DITLB_32M_256M_SUPPORT 144 # 145 # OLYMPUS C cross-call erratas. 146 # - revision A can only deliver one xcall at a time. 147 # - revision B can dispatch xcalls to 31 (IDSR_BN_SETS) CPUs at a time, 148 # but it can not send more xcalls until all the pending xcalls are 149 # dispatched. In other words, all previous 31 xcall slots must be 150 # in non-busy state before further xcalls can be issued. 151 MACHINE_DEFS += -DOLYMPUS_C_REV_A_ERRATA_XCALL 152 MACHINE_DEFS += -DOLYMPUS_C_REV_B_ERRATA_XCALL 153 # 154 # OLYMPUS C Spurious interrupts 155 # - When an UE is detected in a interrupt packet, 156 # Olympus-C takes an interrupt_vector_trap (TT=0x60) while 157 # ASI_INTR_RECIEVE.BUSY is set to zero to indicate the existence 158 # of the error. Software will see this as a spurious interrupt since 159 # the interrupt busy bit is set to zero. SW will still need to 160 # explicitly clear the interrupt busy bit to reset the HW state. 161 # Failure to do so will result in the processor continuously taking 162 # an interrupt vector trap when PSTATE.IE is reset to one. 163 # Note that UE in interrupt packet is reported to the SP and handled 164 # accordingly. For the domain, the system should panic as it is not 165 # recoverable. 166 MACHINE_DEFS += -DCLEAR_INTR_BUSYBIT_ON_SPURIOUS 167 168 # 169 # For now, disable these lint checks; maintainers should endeavor 170 # to investigate and remove these for maximum lint coverage. 171 # Please do not carry these forward to new Makefiles. 172 # 173 LINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON 174 LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN 175 LINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED 176 LINTTAGS += -erroff=E_STATIC_UNUSED 177 LINTTAGS += -erroff=E_PTRDIFF_OVERFLOW 178 LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV 179 180 .KEEP_STATE: