asi.hh revision 3519
13062Sgblack@eecs.umich.edu/* 23062Sgblack@eecs.umich.edu * Copyright (c) 2006 The Regents of The University of Michigan 33062Sgblack@eecs.umich.edu * All rights reserved. 43062Sgblack@eecs.umich.edu * 53062Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 63062Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 73062Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 83062Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 93062Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 103062Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 113062Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 123062Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 133062Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 143062Sgblack@eecs.umich.edu * this software without specific prior written permission. 153062Sgblack@eecs.umich.edu * 163062Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 173062Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 183062Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 193062Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 203062Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 213062Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 223062Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 233062Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 243062Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 253062Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 263062Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 273062Sgblack@eecs.umich.edu * 283062Sgblack@eecs.umich.edu * Authors: Gabe Black 293062Sgblack@eecs.umich.edu */ 303062Sgblack@eecs.umich.edu 313062Sgblack@eecs.umich.edu#ifndef __ARCH_SPARC_ASI_HH__ 323062Sgblack@eecs.umich.edu#define __ARCH_SPARC_ASI_HH__ 333062Sgblack@eecs.umich.edu 343062Sgblack@eecs.umich.edunamespace SparcISA 353062Sgblack@eecs.umich.edu{ 363062Sgblack@eecs.umich.edu enum ASI { 373062Sgblack@eecs.umich.edu /* Priveleged ASIs */ 383062Sgblack@eecs.umich.edu //0x00-0x03 implementation dependent 393062Sgblack@eecs.umich.edu ASI_NUCLEUS = 0x4, 403062Sgblack@eecs.umich.edu ASI_N = 0x4, 413062Sgblack@eecs.umich.edu //0x05-0x0B implementation dependent 423062Sgblack@eecs.umich.edu ASI_NL = 0xC, 433062Sgblack@eecs.umich.edu ASI_NUCLEUS_LITTLE = ASI_NL, 443062Sgblack@eecs.umich.edu //0x0D-0x0F implementation dependent 453062Sgblack@eecs.umich.edu ASI_AIUP = 0x10, 463062Sgblack@eecs.umich.edu ASI_AS_IF_USER_PRIMARY = ASI_AIUP, 473062Sgblack@eecs.umich.edu ASI_AIUS = 0x11, 483062Sgblack@eecs.umich.edu ASI_AS_IF_USER_SECONDARY = ASI_AIUS, 493062Sgblack@eecs.umich.edu //0x12-0x13 implementation dependent 503062Sgblack@eecs.umich.edu ASI_REAL = 0x14, 513062Sgblack@eecs.umich.edu ASI_REAL_IO = 0x15, 523062Sgblack@eecs.umich.edu ASI_BLK_AIUP = 0x16, 533062Sgblack@eecs.umich.edu ASI_BLOCK_AS_IF_USER_PRIMARY = ASI_BLK_AIUP, 543062Sgblack@eecs.umich.edu ASI_BLK_AIUS = 0x17, 553062Sgblack@eecs.umich.edu ASI_BLOCK_AS_IF_USER_SECONDARY = ASI_BLK_AIUS, 563062Sgblack@eecs.umich.edu ASI_AIUPL = 0x18, 573062Sgblack@eecs.umich.edu ASI_AS_IF_USER_PRIMARY_LITTLE = ASI_AIUPL, 583062Sgblack@eecs.umich.edu ASI_AIUSL = 0x19, 593062Sgblack@eecs.umich.edu ASI_AS_IF_USER_SECONDARY_LITTLE = ASI_AIUSL, 603062Sgblack@eecs.umich.edu //0x1A-0x1B implementation dependent 613062Sgblack@eecs.umich.edu ASI_REAL_L = 0x1C, 623062Sgblack@eecs.umich.edu ASI_REAL_LITTLE = ASI_REAL_L, 633062Sgblack@eecs.umich.edu ASI_REAL_IO_L = 0x1D, 643062Sgblack@eecs.umich.edu ASI_REAL_IO_LITTLE = ASI_REAL_IO_L, 653062Sgblack@eecs.umich.edu ASI_BLK_AIUPL = 0x1E, 663062Sgblack@eecs.umich.edu ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE = ASI_BLK_AIUPL, 673062Sgblack@eecs.umich.edu ASI_BLK_AIUSL = 0x1F, 683062Sgblack@eecs.umich.edu ASI_BLOCK_AS_IF_USER_SECONDARY_LITTLE = ASI_BLK_AIUSL, 693062Sgblack@eecs.umich.edu ASI_SCRATCHPAD = 0x20, 703062Sgblack@eecs.umich.edu ASI_MMU_CONTEXTID = 0x21, 713062Sgblack@eecs.umich.edu ASI_LDTX_AIUP = 0x22, 723062Sgblack@eecs.umich.edu ASI_LD_TWINX_AS_IF_USER_PRIMARY = ASI_LDTX_AIUP, 733062Sgblack@eecs.umich.edu ASI_LDTX_AIUS = 0x23, 743062Sgblack@eecs.umich.edu ASI_LD_TWINX_AS_IF_USER_SECONDARY = ASI_LDTX_AIUS, 753062Sgblack@eecs.umich.edu //0x24 implementation dependent 763062Sgblack@eecs.umich.edu ASI_QUEUE = 0x25, 773062Sgblack@eecs.umich.edu ASI_LDTX_REAL = 0x26, 783062Sgblack@eecs.umich.edu ASI_LD_TWINX_REAL = ASI_LDTX_REAL, 793062Sgblack@eecs.umich.edu ASI_LDTX_N = 0x27, 803062Sgblack@eecs.umich.edu ASI_LD_TWINX_NUCLEUS = ASI_LDTX_N, 813062Sgblack@eecs.umich.edu //0x28-0x29 implementation dependent 823062Sgblack@eecs.umich.edu ASI_LDTX_AIUPL = 0x2A, 833062Sgblack@eecs.umich.edu ASI_LD_TWINX_AS_IF_USER_PRIMARY_LITTLE = ASI_LDTX_AIUPL, 843062Sgblack@eecs.umich.edu ASI_LDTX_AIUSL = 0x2B, 853062Sgblack@eecs.umich.edu ASI_LD_TWINX_AS_IF_USER_SECONDARY_LITTLE = ASI_LDTX_AIUSL, 863062Sgblack@eecs.umich.edu //0x2C-0x2D implementation dependent 873062Sgblack@eecs.umich.edu ASI_LDTX_REAL_L = 0x2E, 883062Sgblack@eecs.umich.edu ASI_LD_TWINX_REAL_LITTLE = ASI_LDTX_REAL_L, 893062Sgblack@eecs.umich.edu ASI_LDTX_NL = 0x2F, 903062Sgblack@eecs.umich.edu ASI_LD_TWINX_NUCLEUS_LITTLE = ASI_LDTX_NL, 913062Sgblack@eecs.umich.edu //0x30-0x40 implementation dependent 923062Sgblack@eecs.umich.edu ASI_CMT_SHARED = 0x41, 933062Sgblack@eecs.umich.edu //0x42-0x4F implementation dependent 943062Sgblack@eecs.umich.edu ASI_HYP_SCRATCHPAD = 0x4F, 953062Sgblack@eecs.umich.edu ASI_IMMU = 0x50, 963062Sgblack@eecs.umich.edu ASI_MMU_REAL = 0x52, 973062Sgblack@eecs.umich.edu //0x53 implementation dependent 983062Sgblack@eecs.umich.edu ASI_MMU = 0x54, 993062Sgblack@eecs.umich.edu ASI_ITLB_DATA_ACCESS_REG = 0x55, 1003062Sgblack@eecs.umich.edu ASI_ITLB_TAG_READ_REG = 0x56, 1013062Sgblack@eecs.umich.edu ASI_IMMU_DEMAP = 0x57, 1023062Sgblack@eecs.umich.edu ASI_DMMU = 0x58, 1033062Sgblack@eecs.umich.edu ASI_UMMU = 0x58, 1043062Sgblack@eecs.umich.edu //0x59-0x5B reserved 1053062Sgblack@eecs.umich.edu ASI_DTLB_DATA_IN_REG = 0x5C, 1063062Sgblack@eecs.umich.edu ASI_DTLB_DATA_ACCESS_REG = 0x5D, 1073062Sgblack@eecs.umich.edu ASI_DTLB_TAG_READ_REG = 0x5E, 1083062Sgblack@eecs.umich.edu ASI_DMMU_DEMAP = 0x5F, 1093062Sgblack@eecs.umich.edu //0x60-62 implementation dependent 1103062Sgblack@eecs.umich.edu ASI_CMT_PER_STRAND = 0x63, 1113062Sgblack@eecs.umich.edu //0x64-0x67 implementation dependent 1123062Sgblack@eecs.umich.edu //0x68-0x7F reserved 1133062Sgblack@eecs.umich.edu 1143062Sgblack@eecs.umich.edu /* Unpriveleged ASIs */ 1153062Sgblack@eecs.umich.edu ASI_P = 0x80, 1163062Sgblack@eecs.umich.edu ASI_PRIMARY = ASI_P, 1173062Sgblack@eecs.umich.edu ASI_S = 0x81, 1183062Sgblack@eecs.umich.edu ASI_SECONDARY = ASI_S, 1193062Sgblack@eecs.umich.edu ASI_PNF = 0x82, 1203062Sgblack@eecs.umich.edu ASI_PRIMARY_NO_FAULT = ASI_PNF, 1213062Sgblack@eecs.umich.edu ASI_SNF = 0x83, 1223062Sgblack@eecs.umich.edu ASI_SECONDARY_NO_FAULT = ASI_SNF, 1233062Sgblack@eecs.umich.edu //0x84-0x87 reserved 1243062Sgblack@eecs.umich.edu ASI_PL = 0x88, 1253062Sgblack@eecs.umich.edu ASI_PRIMARY_LITTLE = ASI_PL, 1263062Sgblack@eecs.umich.edu ASI_SL = 0x89, 1273062Sgblack@eecs.umich.edu ASI_SECONDARY_LITTLE = ASI_SL, 1283062Sgblack@eecs.umich.edu ASI_PNFL = 0x8A, 1293062Sgblack@eecs.umich.edu ASI_PRIMARY_NO_FAULT_LITTLE = ASI_PNFL, 1303062Sgblack@eecs.umich.edu ASI_SNFL = 0x8B, 1313062Sgblack@eecs.umich.edu ASI_SECONDARY_NO_FAULT_LITTLE = ASI_SNFL, 1323062Sgblack@eecs.umich.edu //0x8C-0xBF reserved 1333062Sgblack@eecs.umich.edu ASI_PST8_P = 0xC0, 1343062Sgblack@eecs.umich.edu ASI_PST8_PRIMARY = ASI_PST8_P, 1353062Sgblack@eecs.umich.edu ASI_PST8_S = 0xC1, 1363062Sgblack@eecs.umich.edu ASI_PST8_SECONDARY = ASI_PST8_S, 1373062Sgblack@eecs.umich.edu ASI_PST16_P = 0xC2, 1383062Sgblack@eecs.umich.edu ASI_PST16_PRIMARY = ASI_PST16_P, 1393062Sgblack@eecs.umich.edu ASI_PST16_S = 0xC3, 1403062Sgblack@eecs.umich.edu ASI_PST16_SECONDARY = ASI_PST16_S, 1413062Sgblack@eecs.umich.edu ASI_PST32_P = 0xC4, 1423062Sgblack@eecs.umich.edu ASI_PST32_PRIMARY = ASI_PST32_P, 1433063Sgblack@eecs.umich.edu ASI_PST32_S = 0xC5, 1443062Sgblack@eecs.umich.edu ASI_PST32_SECONDARY = ASI_PST32_S, 1453062Sgblack@eecs.umich.edu //0xC6-0xC7 implementation dependent 1463063Sgblack@eecs.umich.edu ASI_PST8_PL = 0xC8, 1473062Sgblack@eecs.umich.edu ASI_PST8_PRIMARY_LITTLE = ASI_PST8_PL, 1483062Sgblack@eecs.umich.edu ASI_PST8_SL = 0xC9, 1493062Sgblack@eecs.umich.edu ASI_PST8_SECONDARY_LITTLE = ASI_PST8_SL, 1503062Sgblack@eecs.umich.edu ASI_PST16_PL = 0xCA, 1513062Sgblack@eecs.umich.edu ASI_PST16_PRIMARY_LITTLE = ASI_PST16_PL, 1523062Sgblack@eecs.umich.edu ASI_PST16_SL = 0xCB, 1533062Sgblack@eecs.umich.edu ASI_PST16_SECONDARY_LITTLE = ASI_PST16_SL, 1543062Sgblack@eecs.umich.edu ASI_PST32_PL = 0xCC, 1553062Sgblack@eecs.umich.edu ASI_PST32_PRIMARY_LITTLE = ASI_PST32_PL, 1563062Sgblack@eecs.umich.edu ASI_PST32_SL = 0xCD, 1573062Sgblack@eecs.umich.edu ASI_PST32_SECONDARY_LITTLE = ASI_PST32_SL, 1583062Sgblack@eecs.umich.edu //0xCE-0xCF implementation dependent 1593123Sgblack@eecs.umich.edu ASI_FL8_P = 0xD0, 1603123Sgblack@eecs.umich.edu ASI_FL8_PRIMARY = ASI_FL8_P, 1613123Sgblack@eecs.umich.edu ASI_FL8_S = 0xD1, 1623123Sgblack@eecs.umich.edu ASI_FL8_SECONDARY = ASI_FL8_S, 1633123Sgblack@eecs.umich.edu ASI_FL16_P = 0xD2, 1643123Sgblack@eecs.umich.edu ASI_FL16_PRIMARY = ASI_FL16_P, 1653123Sgblack@eecs.umich.edu ASI_FL16_S = 0xD3, 1663123Sgblack@eecs.umich.edu ASI_FL16_SECONDARY = ASI_FL16_S, 1673062Sgblack@eecs.umich.edu //0xD4-0xD7 implementation dependent 1683123Sgblack@eecs.umich.edu ASI_FL8_PL = 0xD8, 1693123Sgblack@eecs.umich.edu ASI_FL8_PRIMARY_LITTLE = ASI_FL8_PL, 1703123Sgblack@eecs.umich.edu ASI_FL8_SL = 0xD9, 1713123Sgblack@eecs.umich.edu ASI_FL8_SECONDARY_LITTLE = ASI_FL8_SL, 1723123Sgblack@eecs.umich.edu ASI_FL16_PL = 0xDA, 1733123Sgblack@eecs.umich.edu ASI_FL16_PRIMARY_LITTLE = ASI_FL16_PL, 1743123Sgblack@eecs.umich.edu ASI_FL16_SL = 0xDB, 1753123Sgblack@eecs.umich.edu ASI_FL16_SECONDARY_LITTLE = ASI_FL16_SL, 1763062Sgblack@eecs.umich.edu //0xDC-0xDF implementation dependent 1773062Sgblack@eecs.umich.edu //0xE0-0xE1 reserved 1783062Sgblack@eecs.umich.edu ASI_LDTX_P = 0xE2, 1793062Sgblack@eecs.umich.edu ASI_LD_TWINX_PRIMARY = ASI_LDTX_P, 1803062Sgblack@eecs.umich.edu ASI_LDTX_S = 0xE3, 1813062Sgblack@eecs.umich.edu ASI_LD_TWINX_SECONDARY = ASI_LDTX_S, 1823062Sgblack@eecs.umich.edu //0xE4-0xE9 implementation dependent 1833062Sgblack@eecs.umich.edu ASI_LDTX_PL = 0xEA, 1843062Sgblack@eecs.umich.edu ASI_LD_TWINX_PRIMARY_LITTLE = ASI_LDTX_PL, 1853062Sgblack@eecs.umich.edu ASI_LDTX_SL = 0xEB, 1863062Sgblack@eecs.umich.edu ASI_LD_TWINX_SECONDARY_LITTLE = ASI_LDTX_SL, 1873062Sgblack@eecs.umich.edu //0xEC-0xEF implementation dependent 1883062Sgblack@eecs.umich.edu ASI_BLK_P = 0xF0, 1893062Sgblack@eecs.umich.edu ASI_BLOCK_PRIMARY = ASI_BLK_P, 1903062Sgblack@eecs.umich.edu ASI_BLK_S = 0xF1, 1913062Sgblack@eecs.umich.edu ASI_BLOCK_SECONDARY = ASI_BLK_S, 1923062Sgblack@eecs.umich.edu //0xF2-0xF7 implementation dependent 1933062Sgblack@eecs.umich.edu ASI_BLK_PL = 0xF8, 1943062Sgblack@eecs.umich.edu ASI_BLOCK_PRIMARY_LITTLE = ASI_BLK_PL, 1953062Sgblack@eecs.umich.edu ASI_BLK_SL = 0xF9, 1963123Sgblack@eecs.umich.edu ASI_BLOCK_SECONDARY_LITTLE = ASI_BLK_SL, 1973062Sgblack@eecs.umich.edu //0xFA-0xFF implementation dependent 1983123Sgblack@eecs.umich.edu MAX_ASI = 0xFF 1993062Sgblack@eecs.umich.edu }; 2003123Sgblack@eecs.umich.edu 2013123Sgblack@eecs.umich.edu //Functions that classify an asi 2023123Sgblack@eecs.umich.edu bool AsiIsBlock(ASI); 2033123Sgblack@eecs.umich.edu bool AsiIsPrimary(ASI); 2043123Sgblack@eecs.umich.edu bool AsiIsSecondary(ASI); 2053123Sgblack@eecs.umich.edu bool AsiIsNucleus(ASI); 2063123Sgblack@eecs.umich.edu bool AsiIsAsIfUser(ASI); 2073123Sgblack@eecs.umich.edu bool AsiIsIO(ASI); 2083123Sgblack@eecs.umich.edu bool AsiIsReal(ASI); 2093123Sgblack@eecs.umich.edu bool AsiIsLittle(ASI); 2103123Sgblack@eecs.umich.edu bool AsiIsTwin(ASI); 2113123Sgblack@eecs.umich.edu bool AsiIsPartialStore(ASI); 2123123Sgblack@eecs.umich.edu bool AsiIsFloatingLoad(ASI); 2133123Sgblack@eecs.umich.edu bool AsiIsNoFault(ASI); 2143123Sgblack@eecs.umich.edu bool AsiIsScratchPad(ASI); 2153123Sgblack@eecs.umich.edu bool AsiIsCmt(ASI); 2163123Sgblack@eecs.umich.edu bool AsiIsQueue(ASI); 2173123Sgblack@eecs.umich.edu bool AsiIsDtlb(ASI); 2183123Sgblack@eecs.umich.edu bool AsiIsMmu(ASI); 2193123Sgblack@eecs.umich.edu 2203062Sgblack@eecs.umich.edu}; 2213062Sgblack@eecs.umich.edu 2223519Sgblack@eecs.umich.edu#endif // __ARCH_SPARC_ASI_HH__ 223