1ae06c70bSJeff Kirsher /* SPDX-License-Identifier: GPL-2.0 */ 251dce24bSJeff Kirsher /* Copyright(c) 1999 - 2006 Intel Corporation. */ 3dee1ad47SJeff Kirsher 4dee1ad47SJeff Kirsher /* glue for the OS independent part of e1000 5dee1ad47SJeff Kirsher * includes register access macros 6dee1ad47SJeff Kirsher */ 7dee1ad47SJeff Kirsher 8dee1ad47SJeff Kirsher #ifndef _E1000_OSDEP_H_ 9dee1ad47SJeff Kirsher #define _E1000_OSDEP_H_ 10dee1ad47SJeff Kirsher 11dee1ad47SJeff Kirsher #include <asm/io.h> 12dee1ad47SJeff Kirsher 13dee1ad47SJeff Kirsher #define CONFIG_RAM_BASE 0x60000 14dee1ad47SJeff Kirsher #define GBE_CONFIG_OFFSET 0x0 15dee1ad47SJeff Kirsher 16dee1ad47SJeff Kirsher #define GBE_CONFIG_RAM_BASE \ 17dee1ad47SJeff Kirsher ((unsigned int)(CONFIG_RAM_BASE + GBE_CONFIG_OFFSET)) 18dee1ad47SJeff Kirsher 19dee1ad47SJeff Kirsher #define GBE_CONFIG_BASE_VIRT \ 20dee1ad47SJeff Kirsher ((void __iomem *)phys_to_virt(GBE_CONFIG_RAM_BASE)) 21dee1ad47SJeff Kirsher 22dee1ad47SJeff Kirsher #define GBE_CONFIG_FLASH_WRITE(base, offset, count, data) \ 23dee1ad47SJeff Kirsher (iowrite16_rep(base + offset, data, count)) 24dee1ad47SJeff Kirsher 25dee1ad47SJeff Kirsher #define GBE_CONFIG_FLASH_READ(base, offset, count, data) \ 26dee1ad47SJeff Kirsher (ioread16_rep(base + (offset << 1), data, count)) 27dee1ad47SJeff Kirsher 28dee1ad47SJeff Kirsher #define er32(reg) \ 29dee1ad47SJeff Kirsher (readl(hw->hw_addr + ((hw->mac_type >= e1000_82543) \ 30dee1ad47SJeff Kirsher ? E1000_##reg : E1000_82542_##reg))) 31dee1ad47SJeff Kirsher 32dee1ad47SJeff Kirsher #define ew32(reg, value) \ 33dee1ad47SJeff Kirsher (writel((value), (hw->hw_addr + ((hw->mac_type >= e1000_82543) \ 34dee1ad47SJeff Kirsher ? E1000_##reg : E1000_82542_##reg)))) 35dee1ad47SJeff Kirsher 36dee1ad47SJeff Kirsher #define E1000_WRITE_REG_ARRAY(a, reg, offset, value) ( \ 37dee1ad47SJeff Kirsher writel((value), ((a)->hw_addr + \ 38dee1ad47SJeff Kirsher (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 39dee1ad47SJeff Kirsher ((offset) << 2)))) 40dee1ad47SJeff Kirsher 41dee1ad47SJeff Kirsher #define E1000_READ_REG_ARRAY(a, reg, offset) ( \ 42dee1ad47SJeff Kirsher readl((a)->hw_addr + \ 43dee1ad47SJeff Kirsher (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 44dee1ad47SJeff Kirsher ((offset) << 2))) 45dee1ad47SJeff Kirsher 46dee1ad47SJeff Kirsher #define E1000_READ_REG_ARRAY_DWORD E1000_READ_REG_ARRAY 47dee1ad47SJeff Kirsher #define E1000_WRITE_REG_ARRAY_DWORD E1000_WRITE_REG_ARRAY 48dee1ad47SJeff Kirsher 49dee1ad47SJeff Kirsher #define E1000_WRITE_REG_ARRAY_WORD(a, reg, offset, value) ( \ 50dee1ad47SJeff Kirsher writew((value), ((a)->hw_addr + \ 51dee1ad47SJeff Kirsher (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 52dee1ad47SJeff Kirsher ((offset) << 1)))) 53dee1ad47SJeff Kirsher 54dee1ad47SJeff Kirsher #define E1000_READ_REG_ARRAY_WORD(a, reg, offset) ( \ 55dee1ad47SJeff Kirsher readw((a)->hw_addr + \ 56dee1ad47SJeff Kirsher (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 57dee1ad47SJeff Kirsher ((offset) << 1))) 58dee1ad47SJeff Kirsher 59dee1ad47SJeff Kirsher #define E1000_WRITE_REG_ARRAY_BYTE(a, reg, offset, value) ( \ 60dee1ad47SJeff Kirsher writeb((value), ((a)->hw_addr + \ 61dee1ad47SJeff Kirsher (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 62dee1ad47SJeff Kirsher (offset)))) 63dee1ad47SJeff Kirsher 64dee1ad47SJeff Kirsher #define E1000_READ_REG_ARRAY_BYTE(a, reg, offset) ( \ 65dee1ad47SJeff Kirsher readb((a)->hw_addr + \ 66dee1ad47SJeff Kirsher (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 67dee1ad47SJeff Kirsher (offset))) 68dee1ad47SJeff Kirsher 69dee1ad47SJeff Kirsher #define E1000_WRITE_FLUSH() er32(STATUS) 70dee1ad47SJeff Kirsher 71dee1ad47SJeff Kirsher #define E1000_WRITE_ICH_FLASH_REG(a, reg, value) ( \ 72dee1ad47SJeff Kirsher writel((value), ((a)->flash_address + reg))) 73dee1ad47SJeff Kirsher 74dee1ad47SJeff Kirsher #define E1000_READ_ICH_FLASH_REG(a, reg) ( \ 75dee1ad47SJeff Kirsher readl((a)->flash_address + reg)) 76dee1ad47SJeff Kirsher 77dee1ad47SJeff Kirsher #define E1000_WRITE_ICH_FLASH_REG16(a, reg, value) ( \ 78dee1ad47SJeff Kirsher writew((value), ((a)->flash_address + reg))) 79dee1ad47SJeff Kirsher 80dee1ad47SJeff Kirsher #define E1000_READ_ICH_FLASH_REG16(a, reg) ( \ 81dee1ad47SJeff Kirsher readw((a)->flash_address + reg)) 82dee1ad47SJeff Kirsher 83dee1ad47SJeff Kirsher #endif /* _E1000_OSDEP_H_ */ 84