2018-03-22 10:08:48 -07:00
/* SPDX-License-Identifier: GPL-2.0 */
2018-04-26 08:08:09 -07:00
/* Copyright(c) 1999 - 2006 Intel Corporation. */
2005-04-16 15:20:36 -07:00
/* glue for the OS independent part of e1000
* includes register access macros
*/
# ifndef _E1000_OSDEP_H_
# define _E1000_OSDEP_H_
# include <asm/io.h>
2011-01-06 14:29:54 +00:00
# define CONFIG_RAM_BASE 0x60000
# define GBE_CONFIG_OFFSET 0x0
# define GBE_CONFIG_RAM_BASE \
( ( unsigned int ) ( CONFIG_RAM_BASE + GBE_CONFIG_OFFSET ) )
2011-02-24 16:11:42 +00:00
# define GBE_CONFIG_BASE_VIRT \
( ( void __iomem * ) phys_to_virt ( GBE_CONFIG_RAM_BASE ) )
2011-01-06 14:29:54 +00:00
# define GBE_CONFIG_FLASH_WRITE(base, offset, count, data) \
( iowrite16_rep ( base + offset , data , count ) )
# define GBE_CONFIG_FLASH_READ(base, offset, count, data) \
( ioread16_rep ( base + ( offset < < 1 ) , data , count ) )
2005-04-16 15:20:36 -07:00
2008-07-11 15:17:18 -07:00
# define er32(reg) \
2008-07-11 15:17:08 -07:00
( readl ( hw - > hw_addr + ( ( hw - > mac_type > = e1000_82543 ) \
? E1000_ # # reg : E1000_82542_ # # reg ) ) )
2005-04-16 15:20:36 -07:00
2008-07-11 15:17:08 -07:00
# define ew32(reg, value) \
( writel ( ( value ) , ( hw - > hw_addr + ( ( hw - > mac_type > = e1000_82543 ) \
? E1000_ # # reg : E1000_82542_ # # reg ) ) ) )
2005-04-16 15:20:36 -07:00
# define E1000_WRITE_REG_ARRAY(a, reg, offset, value) ( \
writel ( ( value ) , ( ( a ) - > hw_addr + \
( ( ( a ) - > mac_type > = e1000_82543 ) ? E1000_ # # reg : E1000_82542_ # # reg ) + \
( ( offset ) < < 2 ) ) ) )
# define E1000_READ_REG_ARRAY(a, reg, offset) ( \
readl ( ( a ) - > hw_addr + \
( ( ( a ) - > mac_type > = e1000_82543 ) ? E1000_ # # reg : E1000_82542_ # # reg ) + \
( ( offset ) < < 2 ) ) )
2005-04-28 19:43:52 -07:00
# define E1000_READ_REG_ARRAY_DWORD E1000_READ_REG_ARRAY
# define E1000_WRITE_REG_ARRAY_DWORD E1000_WRITE_REG_ARRAY
# define E1000_WRITE_REG_ARRAY_WORD(a, reg, offset, value) ( \
writew ( ( value ) , ( ( a ) - > hw_addr + \
( ( ( a ) - > mac_type > = e1000_82543 ) ? E1000_ # # reg : E1000_82542_ # # reg ) + \
( ( offset ) < < 1 ) ) ) )
# define E1000_READ_REG_ARRAY_WORD(a, reg, offset) ( \
readw ( ( a ) - > hw_addr + \
( ( ( a ) - > mac_type > = e1000_82543 ) ? E1000_ # # reg : E1000_82542_ # # reg ) + \
( ( offset ) < < 1 ) ) )
# define E1000_WRITE_REG_ARRAY_BYTE(a, reg, offset, value) ( \
writeb ( ( value ) , ( ( a ) - > hw_addr + \
( ( ( a ) - > mac_type > = e1000_82543 ) ? E1000_ # # reg : E1000_82542_ # # reg ) + \
( offset ) ) ) )
# define E1000_READ_REG_ARRAY_BYTE(a, reg, offset) ( \
readb ( ( a ) - > hw_addr + \
( ( ( a ) - > mac_type > = e1000_82543 ) ? E1000_ # # reg : E1000_82542_ # # reg ) + \
( offset ) ) )
2008-07-11 15:17:08 -07:00
# define E1000_WRITE_FLUSH() er32(STATUS)
2005-04-16 15:20:36 -07:00
2006-11-01 08:48:02 -08:00
# define E1000_WRITE_ICH_FLASH_REG(a, reg, value) ( \
2006-06-27 09:08:17 -07:00
writel ( ( value ) , ( ( a ) - > flash_address + reg ) ) )
2006-11-01 08:48:02 -08:00
# define E1000_READ_ICH_FLASH_REG(a, reg) ( \
2006-06-27 09:08:17 -07:00
readl ( ( a ) - > flash_address + reg ) )
2006-11-01 08:48:02 -08:00
# define E1000_WRITE_ICH_FLASH_REG16(a, reg, value) ( \
2006-06-27 09:08:17 -07:00
writew ( ( value ) , ( ( a ) - > flash_address + reg ) ) )
2006-11-01 08:48:02 -08:00
# define E1000_READ_ICH_FLASH_REG16(a, reg) ( \
2006-06-27 09:08:17 -07:00
readw ( ( a ) - > flash_address + reg ) )
2005-04-16 15:20:36 -07:00
# endif /* _E1000_OSDEP_H_ */