177983a89SPatrick Mooney /* 277983a89SPatrick Mooney * This file and its contents are supplied under the terms of the 377983a89SPatrick Mooney * Common Development and Distribution License ("CDDL"), version 1.0. 477983a89SPatrick Mooney * You may only use this file in accordance with the terms of version 577983a89SPatrick Mooney * 1.0 of the CDDL. 677983a89SPatrick Mooney * 777983a89SPatrick Mooney * A full copy of the text of the CDDL should have accompanied this 877983a89SPatrick Mooney * source. A copy of the CDDL is also available via the Internet at 977983a89SPatrick Mooney * http://www.illumos.org/license/CDDL. 1077983a89SPatrick Mooney */ 1177983a89SPatrick Mooney 1277983a89SPatrick Mooney /* 1377983a89SPatrick Mooney * This file is part of the Chelsio T4 support code. 1477983a89SPatrick Mooney * 1577983a89SPatrick Mooney * Copyright (C) 2010-2013 Chelsio Communications. All rights reserved. 1677983a89SPatrick Mooney * 1777983a89SPatrick Mooney * This program is distributed in the hope that it will be useful, but WITHOUT 1877983a89SPatrick Mooney * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1977983a89SPatrick Mooney * FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this 2077983a89SPatrick Mooney * release for licensing terms and conditions. 2177983a89SPatrick Mooney */ 2277983a89SPatrick Mooney 2377983a89SPatrick Mooney /* 2477983a89SPatrick Mooney * Copyright 2024 Oxide Computer Company 2577983a89SPatrick Mooney */ 2677983a89SPatrick Mooney 2777983a89SPatrick Mooney #ifndef __CXGBE_OSDEP_H 2877983a89SPatrick Mooney #define __CXGBE_OSDEP_H 2977983a89SPatrick Mooney 3077983a89SPatrick Mooney #include <sys/ddi.h> 3177983a89SPatrick Mooney #include <sys/sunddi.h> 3277983a89SPatrick Mooney #include <sys/byteorder.h> 3377983a89SPatrick Mooney #include <sys/cmn_err.h> 3477983a89SPatrick Mooney #include <sys/pcie.h> 3577983a89SPatrick Mooney #include <sys/sysmacros.h> 3677983a89SPatrick Mooney #include <sys/inttypes.h> 3777983a89SPatrick Mooney #include <sys/stdbool.h> 3877983a89SPatrick Mooney #include <sys/sysmacros.h> 3977983a89SPatrick Mooney #include <sys/mutex.h> 4077983a89SPatrick Mooney 4177983a89SPatrick Mooney 4277983a89SPatrick Mooney #define CH_DUMP_MBOX(adap, mbox, data_reg, size) do {} while (0) 4377983a89SPatrick Mooney 4477983a89SPatrick Mooney #define PCI_VENDOR_ID 0x00 4577983a89SPatrick Mooney #define PCI_DEVICE_ID 0x02 4677983a89SPatrick Mooney 4777983a89SPatrick Mooney #define PCI_BASE_ADDRESS_0 0x10 4877983a89SPatrick Mooney #define PCI_BASE_ADDRESS_1 0x14 4977983a89SPatrick Mooney #define PCI_BASE_ADDRESS_2 0x18 5077983a89SPatrick Mooney #define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL) 5177983a89SPatrick Mooney 5277983a89SPatrick Mooney #define PCI_CAP_ID_EXP PCI_CAP_ID_PCI_E 5377983a89SPatrick Mooney #define PCI_EXP_DEVCTL PCIE_DEVCTL 5477983a89SPatrick Mooney #define PCI_EXP_DEVCTL_PAYLOAD PCIE_DEVCTL_MAX_PAYLOAD_MASK 5577983a89SPatrick Mooney #define PCI_EXP_DEVCTL_READRQ PCIE_DEVCTL_MAX_READ_REQ_MASK 5677983a89SPatrick Mooney #define PCI_EXP_LNKCTL PCIE_LINKCTL 5777983a89SPatrick Mooney #define PCI_EXP_LNKSTA PCIE_LINKSTS 5877983a89SPatrick Mooney #define PCI_EXP_LNKSTA_CLS PCIE_LINKSTS_SPEED_MASK 5977983a89SPatrick Mooney #define PCI_EXP_LNKSTA_NLW PCIE_LINKSTS_NEG_WIDTH_MASK 6077983a89SPatrick Mooney #define PCI_EXP_DEVCTL2 0x28 6177983a89SPatrick Mooney 6277983a89SPatrick Mooney #define PCI_VPD_ADDR 2 6377983a89SPatrick Mooney #define PCI_VPD_ADDR_F 0x8000 6477983a89SPatrick Mooney #define PCI_VPD_DATA 4 6577983a89SPatrick Mooney 6677983a89SPatrick Mooney #define __devinit 6777983a89SPatrick Mooney #define DIV_ROUND_UP(x, y) howmany(x, y) 6877983a89SPatrick Mooney 6977983a89SPatrick Mooney #define udelay(x) drv_usecwait(x) 7077983a89SPatrick Mooney #define msleep(x) delay(drv_usectohz(1000ULL * (x))) 7177983a89SPatrick Mooney #define mdelay(x) drv_usecwait(1000UL * (x)) 7277983a89SPatrick Mooney 7377983a89SPatrick Mooney #define le16_to_cpu(x) LE_16((uint16_t)(x)) 7477983a89SPatrick Mooney #define le32_to_cpu(x) LE_32((uint32_t)(x)) 7577983a89SPatrick Mooney #define le64_to_cpu(x) LE_64((uint64_t)(x)) 7677983a89SPatrick Mooney #define cpu_to_le16(x) LE_16((uint16_t)(x)) 7777983a89SPatrick Mooney #define cpu_to_le32(x) LE_32((uint32_t)(x)) 7877983a89SPatrick Mooney #define cpu_to_le64(x) LE_64((uint64_t)(x)) 7977983a89SPatrick Mooney #define be16_to_cpu(x) BE_16((uint16_t)(x)) 8077983a89SPatrick Mooney #define be32_to_cpu(x) BE_32((uint32_t)(x)) 8177983a89SPatrick Mooney #define be64_to_cpu(x) BE_64((uint64_t)(x)) 8277983a89SPatrick Mooney #define cpu_to_be16(x) BE_16((uint16_t)(x)) 8377983a89SPatrick Mooney #define cpu_to_be32(x) BE_32((uint32_t)(x)) 8477983a89SPatrick Mooney #define cpu_to_be64(x) BE_64((uint64_t)(x)) 8577983a89SPatrick Mooney #define swab32(x) BSWAP_32(x) 8677983a89SPatrick Mooney 8777983a89SPatrick Mooney typedef uint8_t u8; 8877983a89SPatrick Mooney typedef uint16_t u16; 8977983a89SPatrick Mooney typedef uint32_t u32; 9077983a89SPatrick Mooney typedef uint64_t u64; 9177983a89SPatrick Mooney 9277983a89SPatrick Mooney typedef uint8_t __u8; 9377983a89SPatrick Mooney typedef uint16_t __u16; 9477983a89SPatrick Mooney typedef uint32_t __u32; 9577983a89SPatrick Mooney typedef uint64_t __u64; 9677983a89SPatrick Mooney typedef uint8_t __be8; 9777983a89SPatrick Mooney typedef uint16_t __be16; 9877983a89SPatrick Mooney typedef uint32_t __be32; 9977983a89SPatrick Mooney typedef uint64_t __be64; 10077983a89SPatrick Mooney 10177983a89SPatrick Mooney typedef uint32_t __le32; 10277983a89SPatrick Mooney 10377983a89SPatrick Mooney typedef int8_t s8; 10477983a89SPatrick Mooney typedef int16_t s16; 10577983a89SPatrick Mooney typedef int32_t s32; 10677983a89SPatrick Mooney typedef int64_t s64; 10777983a89SPatrick Mooney 10877983a89SPatrick Mooney #if defined(__sparc) 10977983a89SPatrick Mooney #define __BIG_ENDIAN_BITFIELD 11077983a89SPatrick Mooney #define PAGE_SIZE 8192 11177983a89SPatrick Mooney #define PAGE_SHIFT 13 11277983a89SPatrick Mooney #else 11377983a89SPatrick Mooney #define __LITTLE_ENDIAN_BITFIELD 11477983a89SPatrick Mooney #define PAGE_SIZE 4096 11577983a89SPatrick Mooney #define PAGE_SHIFT 12 11677983a89SPatrick Mooney #endif 11777983a89SPatrick Mooney 11877983a89SPatrick Mooney #define ETH_ALEN 6 11977983a89SPatrick Mooney 12077983a89SPatrick Mooney #define isspace(x) ((x) == ' ' || (x) == '\t') 12177983a89SPatrick Mooney 12277983a89SPatrick Mooney #ifdef _KERNEL 12377983a89SPatrick Mooney 12477983a89SPatrick Mooney #define t4_os_alloc(_size) kmem_alloc(_size, KM_SLEEP) 12577983a89SPatrick Mooney #define fls(x) ddi_fls(x) 12677983a89SPatrick Mooney 127*e9f1d7c7SPatrick Mooney static inline int ilog2(long x)12877983a89SPatrick Mooneyilog2(long x) 12977983a89SPatrick Mooney { 13077983a89SPatrick Mooney return (ddi_fls(x) - 1); 13177983a89SPatrick Mooney } 13277983a89SPatrick Mooney 13377983a89SPatrick Mooney typedef kmutex_t t4_os_lock_t; 13477983a89SPatrick Mooney 135*e9f1d7c7SPatrick Mooney static inline void t4_os_lock(t4_os_lock_t * lock)136*e9f1d7c7SPatrick Mooneyt4_os_lock(t4_os_lock_t *lock) 13777983a89SPatrick Mooney { 13877983a89SPatrick Mooney mutex_enter(lock); 13977983a89SPatrick Mooney } 14077983a89SPatrick Mooney 141*e9f1d7c7SPatrick Mooney static inline void t4_os_unlock(t4_os_lock_t * lock)142*e9f1d7c7SPatrick Mooneyt4_os_unlock(t4_os_lock_t *lock) 14377983a89SPatrick Mooney { 14477983a89SPatrick Mooney mutex_exit(lock); 14577983a89SPatrick Mooney } 14677983a89SPatrick Mooney 14777983a89SPatrick Mooney #endif /* _KERNEL */ 14877983a89SPatrick Mooney 14977983a89SPatrick Mooney #endif /* __CXGBE_OSDEP_H */ 150