128 lines
4.3 KiB
C
128 lines
4.3 KiB
C
//------------------------------------------------------------------------------
|
|
// ISC License (ISC)
|
|
//
|
|
// Copyright (c) 2004-2010, The Linux Foundation
|
|
// All rights reserved.
|
|
// Software was previously licensed under ISC license by Qualcomm Atheros, Inc.
|
|
//
|
|
//
|
|
// Permission to use, copy, modify, and/or distribute this software for any
|
|
// purpose with or without fee is hereby granted, provided that the above
|
|
// copyright notice and this permission notice appear in all copies.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
//
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
//==============================================================================
|
|
// Author(s): ="Atheros"
|
|
//==============================================================================
|
|
|
|
#ifndef __ADDRS_H__
|
|
#define __ADDRS_H__
|
|
|
|
/*
|
|
* Special AR6002 Addresses that may be needed by special
|
|
* applications (e.g. ART) on the Host as well as Target.
|
|
*/
|
|
|
|
#if defined(AR6002_REV2)
|
|
#define AR6K_RAM_START 0x00500000
|
|
#define TARG_RAM_OFFSET(vaddr) ((A_UINT32)(vaddr) & 0xfffff)
|
|
#define TARG_RAM_SZ (184*1024)
|
|
#define TARG_ROM_SZ (80*1024)
|
|
#endif
|
|
#if defined(AR6002_REV4) || defined(AR6003)
|
|
#define AR6K_RAM_START 0x00540000
|
|
#define TARG_RAM_OFFSET(vaddr) (((A_UINT32)(vaddr) & 0xfffff) - 0x40000)
|
|
#define TARG_RAM_SZ (256*1024)
|
|
#define TARG_ROM_SZ (256*1024)
|
|
#endif
|
|
#if defined(AR6002_REV6) || defined(AR6004)
|
|
#define AR6K_RAM_START 0x00400000
|
|
#define TARG_RAM_OFFSET(vaddr) (((A_UINT32)(vaddr) & 0x3fffff))
|
|
#define TARG_RAM_SZ (256*1024)
|
|
#define TARG_ROM_SZ (512*1024)
|
|
|
|
#define TARG_IRAM_START 0x00998000
|
|
#define TARG_IRAM_SZ ((128+32)*1024)
|
|
|
|
#define TARG_RAM_ACS_RESERVE 32
|
|
|
|
#endif
|
|
|
|
#define AR6002_BOARD_DATA_SZ 768
|
|
#define AR6002_BOARD_EXT_DATA_SZ 0
|
|
#define AR6003_BOARD_DATA_SZ 1024
|
|
/* Reserve space for extended board data */
|
|
/* AR6003 v2 has only 768 bytes for extended board data */
|
|
#define AR6003_VER2_BOARD_EXT_DATA_SZ 768
|
|
#if defined(AR6002_REV42)
|
|
#define AR6003_BOARD_EXT_DATA_SZ AR6003_VER2_BOARD_EXT_DATA_SZ
|
|
#else
|
|
#define AR6003_BOARD_EXT_DATA_SZ 1024
|
|
#endif /* AR6002_REV42 */
|
|
#define MCKINLEY_BOARD_DATA_SZ 1024
|
|
#define MCKINLEY_BOARD_EXT_DATA_SZ 0
|
|
|
|
#define AR6K_RAM_ADDR(byte_offset) (AR6K_RAM_START+(byte_offset))
|
|
#define TARG_RAM_ADDRS(byte_offset) AR6K_RAM_ADDR(byte_offset)
|
|
|
|
#if defined(AR6002_REV2) || defined(AR6002_REV4)
|
|
#define AR6K_ROM_START 0x004e0000
|
|
#define TARG_ROM_OFFSET(vaddr) (((A_UINT32)(vaddr) & 0x1fffff) - 0xe0000)
|
|
#endif /* AR6002_REV2 || AR6002_REV4 */
|
|
#if defined(AR6002_REV6)
|
|
#define AR6K_ROM_START 0x00900000
|
|
#define TARG_ROM_OFFSET(vaddr) ((A_UINT32)(vaddr) & 0xfffff)
|
|
#endif /* AR6002_REV6 */
|
|
#define AR6K_ROM_ADDR(byte_offset) (AR6K_ROM_START+(byte_offset))
|
|
#define TARG_ROM_ADDRS(byte_offset) AR6K_ROM_ADDR(byte_offset)
|
|
|
|
/*
|
|
* At this ROM address is a pointer to the start of the ROM DataSet Index.
|
|
* If there are no ROM DataSets, there's a 0 at this address.
|
|
*/
|
|
#define ROM_DATASET_INDEX_ADDR (TARG_ROM_ADDRS(TARG_ROM_SZ)-8)
|
|
#define ROM_MBIST_CKSUM_ADDR (TARG_ROM_ADDRS(TARG_ROM_SZ)-4)
|
|
|
|
/*
|
|
* The API A_BOARD_DATA_ADDR() is the proper way to get a read pointer to
|
|
* board data.
|
|
*/
|
|
|
|
/* Size of Board Data, in bytes */
|
|
#if defined(AR6002_REV4) || defined(AR6003)
|
|
#define BOARD_DATA_SZ (AR6003_BOARD_DATA_SZ + AR6003_BOARD_EXT_DATA_SZ)
|
|
#endif
|
|
#if defined(AR6002_REV6)
|
|
#define BOARD_DATA_SZ MCKINLEY_BOARD_DATA_SZ
|
|
#endif
|
|
#if !defined(BOARD_DATA_SZ)
|
|
#define BOARD_DATA_SZ AR6002_BOARD_DATA_SZ
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Constants used by ASM code to access fields of host_interest_s,
|
|
* which is at a fixed location in RAM.
|
|
*/
|
|
#if defined(AR6002_REV4) || defined(AR6003) || defined(AR6002_REV6)
|
|
#define HOST_INTEREST_FLASH_IS_PRESENT_ADDR (AR6K_RAM_START + 0x60c)
|
|
#endif
|
|
#if !defined(HOST_INTEREST_FLASH_IS_PRESENT_ADDR)
|
|
#define HOST_INTEREST_FLASH_IS_PRESENT_ADDR (AR6K_RAM_START + 0x40c)
|
|
#endif
|
|
#define FLASH_IS_PRESENT_TARGADDR HOST_INTEREST_FLASH_IS_PRESENT_ADDR
|
|
|
|
#endif /* __ADDRS_H__ */
|
|
|
|
|
|
|