diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-06-26 20:42:18 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-06-26 20:42:18 +0000 |
commit | 95c5443b843c7875794c17aeba33213b71ba4dbb (patch) | |
tree | 0c25039640bb2607a15f2792558ea5b2b4c1a48d /target/linux/generic-2.4/files/crypto/ocf/kirkwood/mvHal/mv_hal/pex/mvVrtBrgPex.c | |
parent | c4f3caef75c247bcce4502391c072e10f741430a (diff) | |
download | master-31e0f0ae-95c5443b843c7875794c17aeba33213b71ba4dbb.tar.gz master-31e0f0ae-95c5443b843c7875794c17aeba33213b71ba4dbb.tar.bz2 master-31e0f0ae-95c5443b843c7875794c17aeba33213b71ba4dbb.zip |
remove generic linux 2.4 support
SVN-Revision: 21948
Diffstat (limited to 'target/linux/generic-2.4/files/crypto/ocf/kirkwood/mvHal/mv_hal/pex/mvVrtBrgPex.c')
-rw-r--r-- | target/linux/generic-2.4/files/crypto/ocf/kirkwood/mvHal/mv_hal/pex/mvVrtBrgPex.c | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/target/linux/generic-2.4/files/crypto/ocf/kirkwood/mvHal/mv_hal/pex/mvVrtBrgPex.c b/target/linux/generic-2.4/files/crypto/ocf/kirkwood/mvHal/mv_hal/pex/mvVrtBrgPex.c deleted file mode 100644 index 13d2f87261..0000000000 --- a/target/linux/generic-2.4/files/crypto/ocf/kirkwood/mvHal/mv_hal/pex/mvVrtBrgPex.c +++ /dev/null @@ -1,313 +0,0 @@ -/******************************************************************************* -Copyright (C) Marvell International Ltd. and its affiliates - -This software file (the "File") is owned and distributed by Marvell -International Ltd. and/or its affiliates ("Marvell") under the following -alternative licensing terms. Once you have made an election to distribute the -File under one of the following license alternatives, please (i) delete this -introductory statement regarding license alternatives, (ii) delete the two -license alternatives that you have not elected to use and (iii) preserve the -Marvell copyright notice above. - -******************************************************************************** -Marvell Commercial License Option - -If you received this File from Marvell and you have entered into a commercial -license agreement (a "Commercial License") with Marvell, the File is licensed -to you under the terms of the applicable Commercial License. - -******************************************************************************** -Marvell GPL License Option - -If you received this File from Marvell, you may opt to use, redistribute and/or -modify this File in accordance with the terms and conditions of the General -Public License Version 2, June 1991 (the "GPL License"), a copy of which is -available along with the File in the license.txt file or by writing to the Free -Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or -on the worldwide web at http://www.gnu.org/licenses/gpl.txt. - -THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED -WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY -DISCLAIMED. The GPL License provides additional details about this warranty -disclaimer. -******************************************************************************** -Marvell BSD License Option - -If you received this File from Marvell, you may opt to use, redistribute and/or -modify this File under the following licensing terms. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of Marvell nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*******************************************************************************/ - -#include "mvPex.h" - -//#define MV_DEBUG -/* defines */ -#ifdef MV_DEBUG - #define DB(x) x -#else - #define DB(x) -#endif - -/* locals */ -typedef struct -{ - MV_U32 data; - MV_U32 mask; -}PEX_HEADER_DATA; - -/* local function forwad decleration */ -MV_U32 mvPexHwConfigRead (MV_U32 pexIf, MV_U32 bus, MV_U32 dev, MV_U32 func, - MV_U32 regOff); -MV_STATUS mvPexHwConfigWrite(MV_U32 pexIf, MV_U32 bus, MV_U32 dev, - MV_U32 func, MV_U32 regOff, MV_U32 data); -void resetPexConfig(MV_U32 pexIf, MV_U32 bus, MV_U32 dev); - - -PEX_HEADER_DATA configHdr[16] = -{ -{0x888811ab, 0x00000000}, /*[device ID, vendor ID] */ -{0x00100007, 0x0000ffff}, /*[status register, command register] */ -{0x0604000e, 0x00000000}, /*[programming interface, sub class code, class code, revision ID] */ -{0x00010008, 0x00000000}, /*[BIST, header type, latency time, cache line] */ -{0x00000000, 0x00000000}, /*[base address 0] */ -{0x00000000, 0x00000000}, /*[base address 1] */ -{0x00000000, 0x00ffffff}, /*[secondary latency timersubordinate bus number, secondary bus number, primary bus number] */ -{0x0000f101, 0x00000000}, /*[secondary status ,IO limit, IO base] */ -{0x9ff0a000, 0x00000000}, /*[memory limit, memory base] */ -{0x0001fff1, 0x00000000}, /*[prefetch memory limit, prefetch memory base] */ -{0xffffffff, 0x00000000}, /*[prefetch memory base upper] */ -{0x00000000, 0x00000000}, /*[prefetch memory limit upper] */ -{0xeffff000, 0x00000000}, /*[IO limit upper 16 bits, IO base upper 16 bits] */ -{0x00000000, 0x00000000}, /*[reserved, capability pointer] */ -{0x00000000, 0x00000000}, /*[expansion ROM base address] */ -{0x00000000, 0x000000FF}, /*[bridge control, interrupt pin, interrupt line] */ -}; - - -#define HEADER_WRITE(data, offset) configHdr[offset/4].data = ((configHdr[offset/4].data & ~configHdr[offset/4].mask) | \ - (data & configHdr[offset/4].mask)) -#define HEADER_READ(offset) configHdr[offset/4].data - -/******************************************************************************* -* mvVrtBrgPexInit - Initialize PEX interfaces -* -* DESCRIPTION: -* -* This function is responsible of intialization of the Pex Interface , It -* configure the Pex Bars and Windows in the following manner: -* -* Assumptions : -* Bar0 is always internal registers bar -* Bar1 is always the DRAM bar -* Bar2 is always the Device bar -* -* 1) Sets the Internal registers bar base by obtaining the base from -* the CPU Interface -* 2) Sets the DRAM bar base and size by getting the base and size from -* the CPU Interface when the size is the sum of all enabled DRAM -* chip selects and the base is the base of CS0 . -* 3) Sets the Device bar base and size by getting these values from the -* CPU Interface when the base is the base of the lowest base of the -* Device chip selects, and the -* -* -* INPUT: -* -* pexIf - PEX interface number. -* -* -* OUTPUT: -* None. -* -* RETURN: -* MV_OK if function success otherwise MV_ERROR or MV_BAD_PARAM -* -*******************************************************************************/ -MV_STATUS mvPexVrtBrgInit(MV_U32 pexIf) -{ - /* reset PEX tree to recover previous U-boot/Boot configurations */ - MV_U32 localBus = mvPexLocalBusNumGet(pexIf); - - - resetPexConfig(pexIf, localBus, 1); - return MV_OK; -} - - -MV_U32 mvPexVrtBrgConfigRead (MV_U32 pexIf, MV_U32 bus, MV_U32 dev, MV_U32 func, - MV_U32 regOff) -{ - - MV_U32 localBus = mvPexLocalBusNumGet(pexIf); - MV_U32 localDev = mvPexLocalDevNumGet(pexIf); - MV_U32 val; - if(bus == localBus) - { - if(dev > 1) - { -/* on the local device allow only device #0 & #1 */ - return 0xffffffff; - } - else - if (dev == localDev) - { - /* read the memory controller registers */ - return mvPexHwConfigRead (pexIf, bus, dev, func, regOff); - } - else - { - /* access the virtual brg header */ - return HEADER_READ(regOff); - } - } - else - if(bus == (localBus + 1)) - { - /* access the device behind the virtual bridge */ - if((dev == localDev) || (dev > 1)) - { - return 0xffffffff; - } - else - { - /* access the device behind the virtual bridge, in this case - * change the bus number to the local bus number in order to - * generate type 0 config cycle - */ - mvPexLocalBusNumSet(pexIf, bus); - mvPexLocalDevNumSet(pexIf, 1); - val = mvPexHwConfigRead (pexIf, bus, 0, func, regOff); - mvPexLocalBusNumSet(pexIf, localBus); - mvPexLocalDevNumSet(pexIf, localDev); - return val; - } - } - /* for all other devices use the HW function to get the - * requested registers - */ - mvPexLocalDevNumSet(pexIf, 1); - val = mvPexHwConfigRead (pexIf, bus, dev, func, regOff); - mvPexLocalDevNumSet(pexIf, localDev); - return val; -} - - -MV_STATUS mvPexVrtBrgConfigWrite(MV_U32 pexIf, MV_U32 bus, MV_U32 dev, - MV_U32 func, MV_U32 regOff, MV_U32 data) -{ - MV_U32 localBus = mvPexLocalBusNumGet(pexIf); - MV_U32 localDev = mvPexLocalDevNumGet(pexIf); - MV_STATUS status; - - if(bus == localBus) - { - if(dev > 1) - { - /* on the local device allow only device #0 & #1 */ - return MV_ERROR; - } - else - if (dev == localDev) - { - /* read the memory controller registers */ - return mvPexHwConfigWrite (pexIf, bus, dev, func, regOff, data); - } - else - { - /* access the virtual brg header */ - HEADER_WRITE(data, regOff); - return MV_OK; - } - } - else - if(bus == (localBus + 1)) - { - /* access the device behind the virtual bridge */ - if((dev == localDev) || (dev > 1)) - { - return MV_ERROR; - } - else - { - /* access the device behind the virtual bridge, in this case - * change the bus number to the local bus number in order to - * generate type 0 config cycle - */ - //return mvPexHwConfigWrite (pexIf, localBus, dev, func, regOff, data); - mvPexLocalBusNumSet(pexIf, bus); - mvPexLocalDevNumSet(pexIf, 1); - status = mvPexHwConfigWrite (pexIf, bus, 0, func, regOff, data); - mvPexLocalBusNumSet(pexIf, localBus); - mvPexLocalDevNumSet(pexIf, localDev); - return status; - - } - } - /* for all other devices use the HW function to get the - * requested registers - */ - mvPexLocalDevNumSet(pexIf, 1); - status = mvPexHwConfigWrite (pexIf, bus, dev, func, regOff, data); - mvPexLocalDevNumSet(pexIf, localDev); - return status; -} - - - - -void resetPexConfig(MV_U32 pexIf, MV_U32 bus, MV_U32 dev) -{ - MV_U32 tData; - MV_U32 i; - - /* restore the PEX configuration to initialization state */ - /* in case PEX P2P call recursive and reset config */ - tData = mvPexHwConfigRead (pexIf, bus, dev, 0x0, 0x0); - if(tData != 0xffffffff) - { - /* agent had been found - check whether P2P */ - tData = mvPexHwConfigRead (pexIf, bus, dev, 0x0, 0x8); - if((tData & 0xffff0000) == 0x06040000) - {/* P2P */ - /* get the sec bus and the subordinate */ - MV_U32 secBus; - tData = mvPexHwConfigRead (pexIf, bus, dev, 0x0, 0x18); - secBus = ((tData >> 8) & 0xff); - /* now scan on sec bus */ - for(i = 0;i < 0xff;i++) - { - resetPexConfig(pexIf, secBus, i); - } - /* now reset this device */ - DB(mvOsPrintf("Reset bus %d dev %d\n", bus, dev)); - mvPexHwConfigWrite(pexIf, bus, dev, 0x0, 0x18, 0x0); - DB(mvOsPrintf("Reset bus %d dev %d\n", bus, dev)); - } - } -} - - |