mirror of
https://github.com/hak5/wifipineapple-openwrt.git
synced 2025-10-29 16:57:19 +00:00
[kernel] move lots of kernel related packages to the new system/ folder
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33830 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
22
package/system/ar7-atm/Config.in
Normal file
22
package/system/ar7-atm/Config.in
Normal file
@@ -0,0 +1,22 @@
|
||||
menu "Configuration"
|
||||
depends on (PACKAGE_kmod-sangam-atm-annex-a || PACKAGE_kmod-sangam-atm-annex-b)
|
||||
|
||||
choice
|
||||
prompt "Firmware version"
|
||||
default AR7_ATM_FW_VERSION_704
|
||||
help
|
||||
This option allows you to switch between firmware/driver versions which
|
||||
might improve the DSL line speed.
|
||||
|
||||
config AR7_ATM_FW_VERSION_705
|
||||
bool "D7.05.01.00"
|
||||
|
||||
config AR7_ATM_FW_VERSION_704
|
||||
bool "D7.04.03.00"
|
||||
|
||||
config AR7_ATM_FW_VERSION_703
|
||||
bool "D7.03.01.00"
|
||||
|
||||
endchoice
|
||||
|
||||
endmenu
|
||||
100
package/system/ar7-atm/Makefile
Normal file
100
package/system/ar7-atm/Makefile
Normal file
@@ -0,0 +1,100 @@
|
||||
#
|
||||
# Copyright (C) 2006-2009 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=sangam_atm
|
||||
|
||||
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_705),y)
|
||||
PKG_VERSION:=D7.05.01.00
|
||||
PKG_MD5SUM:=42ee465be5cfbe9476fc25deb260d450
|
||||
PKG_RELEASE:=R1
|
||||
PATCH_DIR:=patches-$(PKG_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_704),y)
|
||||
PKG_VERSION:=D7.04.03.00
|
||||
PKG_MD5SUM:=3d76004e46f09e88931f91670cb420ad
|
||||
PKG_RELEASE:=R1
|
||||
PATCH_DIR:=patches-$(PKG_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_703),y)
|
||||
PKG_VERSION:=D7.03.01.00
|
||||
PKG_MD5SUM:=bc6e9c6adb1be25820c7ee661de8ca7d
|
||||
PKG_RELEASE:=R2
|
||||
PATCH_DIR:=patches-D7.04.03.00
|
||||
endif
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.bz2
|
||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/sangam-atm/Default
|
||||
SUBMENU:=Network Devices
|
||||
DEPENDS:=@TARGET_ar7 +kmod-atm
|
||||
TITLE:=AR7 ADSL driver
|
||||
FILES:=$(PKG_BUILD_DIR)/tiatm.ko
|
||||
AUTOLOAD:=$(call AutoLoad,50,tiatm)
|
||||
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
MENU:=1
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-a
|
||||
$(call KernelPackage/sangam-atm/Default)
|
||||
TITLE+= (Annex A, ADSL over POTS)
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-a/description
|
||||
The AR7 ADSL driver for Annex A (ADSL over POTS).
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-a/config
|
||||
$(call KernelPackage/sangam-atm/config)
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-b
|
||||
$(call KernelPackage/sangam-atm/Default)
|
||||
TITLE+= (Annex B, ADSL over ISDN)
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-b/description
|
||||
The AR7 ADSL driver for Annex B (ADSL over ISDN).
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-a/config
|
||||
$(call KernelPackage/sangam-atm/config)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-a/install
|
||||
mkdir -p $(1)/lib/firmware
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ar0700mp.bin $(1)/lib/firmware/
|
||||
ln -sf ar0700mp.bin $(1)/lib/firmware/ar0700xx.bin
|
||||
endef
|
||||
|
||||
define KernelPackage/sangam-atm-annex-b/install
|
||||
mkdir -p $(1)/lib/firmware
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ar0700db.bin $(1)/lib/firmware/
|
||||
ln -sf ar0700db.bin $(1)/lib/firmware/ar0700xx.bin
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,sangam-atm-annex-a))
|
||||
$(eval $(call KernelPackage,sangam-atm-annex-b))
|
||||
768
package/system/ar7-atm/patches-D7.04.03.00/100-compile_fix.patch
Normal file
768
package/system/ar7-atm/patches-D7.04.03.00/100-compile_fix.patch
Normal file
@@ -0,0 +1,768 @@
|
||||
--- a/cppi_cpaal5.c
|
||||
+++ b/cppi_cpaal5.c
|
||||
@@ -352,7 +352,7 @@ static int halRxReturn(HAL_RECEIVEINFO *
|
||||
{
|
||||
/* malloc failed, add this RCB to Needs Buffer List */
|
||||
TempRcb->FragCount = 1; /*MJH+030417*/
|
||||
- (HAL_RCB *)TempRcb->Eop = TempRcb; /* GSG +030430 */
|
||||
+ TempRcb->Eop = TempRcb; /* GSG +030430 */
|
||||
|
||||
if(HalDev->NeedsCount < MAX_NEEDS) /* +MJH 030410 */
|
||||
{ /* +MJH 030410 */
|
||||
--- a/dsl_hal_api.c
|
||||
+++ b/dsl_hal_api.c
|
||||
@@ -254,15 +254,15 @@
|
||||
* of phyEnableDisableWord & phyControlWord to avoid changing API struct
|
||||
* which may cause change required to application data structure.
|
||||
******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
#ifndef NO_ADV_STATS
|
||||
-#include <dsl_hal_logtable.h>
|
||||
+#include "dsl_hal_logtable.h"
|
||||
#endif
|
||||
|
||||
-#include <dsl_hal_version.h>
|
||||
+#include "dsl_hal_version.h"
|
||||
|
||||
// UR8_MERGE_START CQ11054 Jack Zhang
|
||||
static unsigned int highprecision_selected = 0; //By default we use low precision for backward compt.
|
||||
--- a/dsl_hal_support.c
|
||||
+++ b/dsl_hal_support.c
|
||||
@@ -140,9 +140,9 @@
|
||||
* oamFeature are overriden
|
||||
// UR8_MERGE_END CQ10774 Ram
|
||||
*******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
#define NUM_READ_RETRIES 3
|
||||
static unsigned int dslhal_support_adsl2ByteSwap32(unsigned int in32Bits);
|
||||
--- a/dsl_hal_support.h
|
||||
+++ b/dsl_hal_support.h
|
||||
@@ -49,7 +49,7 @@
|
||||
* 04Nov05 0.11.00 CPH Fixed T1413 mode got Zero DS/US rate when DSL_BIT_TMODE is set.
|
||||
*******************************************************************************/
|
||||
|
||||
-#include <dsl_hal_api.h>
|
||||
+#include "dsl_hal_api.h"
|
||||
|
||||
#define virtual2Physical(a) (((int)a)&~0xe0000000)
|
||||
/* External Function Prototype Declarations */
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,18 +1,9 @@
|
||||
-# File: drivers/atm/ti_evm3/Makefile
|
||||
#
|
||||
-# Makefile for the Texas Instruments EVM3 ADSL/ATM driver.
|
||||
+# Makefile for the TIATM device driver.
|
||||
#
|
||||
-#
|
||||
-# Copyright (c) 2000 Texas Instruments Incorporated.
|
||||
-# Jeff Harrell (jharrell@telogy.com)
|
||||
-# Viren Balar (vbalar@ti.com)
|
||||
-# Victor Wells (vwells@telogy.com)
|
||||
-#
|
||||
-include $(TOPDIR)/Rules.make
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
+CONFIG_SANGAM_ATM=m
|
||||
+#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
+tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -61,7 +61,6 @@
|
||||
* UR8_MERGE_END CQ11057*
|
||||
*********************************************************************************************/
|
||||
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -69,11 +68,14 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
+
|
||||
#include "dsl_hal_api.h"
|
||||
#include "tn7atm.h"
|
||||
#include "tn7api.h"
|
||||
@@ -82,6 +84,7 @@
|
||||
#include "dsl_hal_register.h"
|
||||
|
||||
#ifdef MODULE
|
||||
+MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
|
||||
MODULE_AUTHOR ("Zhicheng Tang");
|
||||
#endif
|
||||
@@ -100,9 +103,9 @@ MODULE_AUTHOR ("Zhicheng Tang");
|
||||
|
||||
/*end of externs */
|
||||
|
||||
-#ifndef TI_STATIC_ALLOCATIONS
|
||||
-#define TI_STATIC_ALLOCATIONS
|
||||
-#endif
|
||||
+//#ifndef TI_STATIC_ALLOCATIONS
|
||||
+//#define TI_STATIC_ALLOCATIONS
|
||||
+//#endif
|
||||
|
||||
#define tn7atm_kfree_skb(x) dev_kfree_skb(x)
|
||||
|
||||
@@ -114,7 +117,7 @@ static int EnableQoS = FALSE;
|
||||
/* prototypes */
|
||||
static int tn7atm_set_can_support_adsl2 (int can);
|
||||
|
||||
-static int tn7atm_open (struct atm_vcc *vcc, short vpi, int vci);
|
||||
+static int tn7atm_open (struct atm_vcc *vcc);
|
||||
|
||||
static void tn7atm_close (struct atm_vcc *vcc);
|
||||
|
||||
@@ -257,13 +260,12 @@ static const struct atmdev_ops tn7atm_op
|
||||
getsockopt: NULL,
|
||||
setsockopt: NULL,
|
||||
send: tn7atm_send,
|
||||
- sg_send: NULL,
|
||||
phy_put: NULL,
|
||||
phy_get: NULL,
|
||||
change_qos: tn7atm_change_qos,
|
||||
};
|
||||
|
||||
-const char drv_proc_root_folder[] = "avalanche/";
|
||||
+const char drv_proc_root_folder[] = "avalanche";
|
||||
static struct proc_dir_entry *root_proc_dir_entry = NULL;
|
||||
#define DRV_PROC_MODE 0644
|
||||
static int proc_root_already_exists = TRUE;
|
||||
@@ -559,56 +561,6 @@ static int turbodsl_check_priority_type(
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*
|
||||
- * Function: int tn7atm_walk_vccs(struct atm_dev *dev, short *vcc, int *vci)
|
||||
- *
|
||||
- * Description: retrieve VPI/VCI for connection
|
||||
- *
|
||||
- *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static int tn7atm_walk_vccs (struct atm_vcc *vcc, short *vpi, int *vci)
|
||||
-{
|
||||
- struct atm_vcc *walk;
|
||||
-
|
||||
- /*
|
||||
- * find a free VPI
|
||||
- */
|
||||
- if (*vpi == ATM_VPI_ANY)
|
||||
- {
|
||||
-
|
||||
- for (*vpi = 0, walk = vcc->dev->vccs; walk; walk = walk->next)
|
||||
- {
|
||||
-
|
||||
- if ((walk->vci == *vci) && (walk->vpi == *vpi))
|
||||
- {
|
||||
- (*vpi)++;
|
||||
- walk = vcc->dev->vccs;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * find a free VCI
|
||||
- */
|
||||
- if (*vci == ATM_VCI_ANY)
|
||||
- {
|
||||
-
|
||||
- for (*vci = ATM_NOT_RSV_VCI, walk = vcc->dev->vccs; walk;
|
||||
- walk = walk->next)
|
||||
- {
|
||||
-
|
||||
- if ((walk->vpi = *vpi) && (walk->vci == *vci))
|
||||
- {
|
||||
- *vci = walk->vci + 1;
|
||||
- walk = vcc->dev->vccs;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- *
|
||||
* Function: int tn7atm_sar_irq(void)
|
||||
*
|
||||
* Description: tnetd73xx SAR interrupt.
|
||||
@@ -693,7 +645,7 @@ static int __init tn7atm_irq_request (st
|
||||
* Register SAR interrupt
|
||||
*/
|
||||
priv->sar_irq = LNXINTNUM (ATM_SAR_INT); /* Interrupt line # */
|
||||
- if (request_irq (priv->sar_irq, tn7atm_sar_irq, SA_INTERRUPT, "SAR ", dev))
|
||||
+ if (request_irq (priv->sar_irq, tn7atm_sar_irq, IRQF_DISABLED, "SAR ", dev))
|
||||
printk ("Could not register tn7atm_sar_irq\n");
|
||||
|
||||
/*
|
||||
@@ -704,14 +656,14 @@ static int __init tn7atm_irq_request (st
|
||||
{
|
||||
def_sar_inter_pace = os_atoi (ptr);
|
||||
}
|
||||
- avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
- def_sar_inter_pace);
|
||||
+/* avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
+ def_sar_inter_pace);*/
|
||||
|
||||
/*
|
||||
* Reigster Receive interrupt A
|
||||
*/
|
||||
priv->dsl_irq = LNXINTNUM (ATM_DSL_INT); /* Interrupt line # */
|
||||
- if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, SA_INTERRUPT, "DSL ", dev))
|
||||
+ if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, IRQF_DISABLED, "DSL ", dev))
|
||||
printk ("Could not register tn7atm_dsl_irq\n");
|
||||
|
||||
/***** VRB Tasklet Mode ****/
|
||||
@@ -875,11 +827,15 @@ static int __init tn7atm_get_ESI (struct
|
||||
#define ATM_VBR_RT 5
|
||||
#endif
|
||||
|
||||
-int tn7atm_open (struct atm_vcc *vcc, short vpi, int vci)
|
||||
+int tn7atm_open (struct atm_vcc *vcc)
|
||||
{
|
||||
tn7atm_activate_vc_parm_t tn7atm_activate_vc_parm;
|
||||
int rc;
|
||||
//int flags;
|
||||
+ tn7atm_activate_vc_parm.pcr = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.scr = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.mbs = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.cdvt = 10000;
|
||||
|
||||
dgprintf(1, "tn7atm_open()\n");
|
||||
|
||||
@@ -891,24 +847,18 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
return -1;
|
||||
}
|
||||
|
||||
- MOD_INC_USE_COUNT;
|
||||
+// MOD_INC_USE_COUNT;
|
||||
|
||||
- /* find a free VPI/VCI */
|
||||
- tn7atm_walk_vccs(vcc, &vpi, &vci);
|
||||
-
|
||||
- vcc->vpi = vpi;
|
||||
- vcc->vci = vci;
|
||||
-
|
||||
- if ((vci == ATM_VCI_UNSPEC) || (vpi == ATM_VCI_UNSPEC))
|
||||
+ if ((vcc->vci == ATM_VCI_UNSPEC) || (vcc->vpi == ATM_VCI_UNSPEC))
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
- tn7atm_activate_vc_parm.vpi = vpi;
|
||||
- tn7atm_activate_vc_parm.vci = vci;
|
||||
+ tn7atm_activate_vc_parm.vpi = vcc->vpi;
|
||||
+ tn7atm_activate_vc_parm.vci = vcc->vci;
|
||||
|
||||
- if ((vpi == CLEAR_EOC_VPI) && (vci == CLEAR_EOC_VCI))
|
||||
+ if ((vcc->vpi == CLEAR_EOC_VPI) && (vcc->vci == CLEAR_EOC_VCI))
|
||||
{
|
||||
/* always use (max_dma_chan+1) for clear eoc */
|
||||
tn7atm_activate_vc_parm.chan = EOC_DMA_CHAN;
|
||||
@@ -916,7 +866,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
/* check to see whether clear eoc is opened or not */
|
||||
if (tn7atm_activate_vc_parm.priv->lut[tn7atm_activate_vc_parm.chan].inuse)
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
printk("tn7atm_open: Clear EOC channel (dmachan=%d) already in use.\n", tn7atm_activate_vc_parm.chan);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -925,7 +875,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
if (rc)
|
||||
{
|
||||
printk("tn7atm_open: failed to setup clear_eoc\n");
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
return -EBUSY;
|
||||
}
|
||||
tn7atm_set_lut(tn7atm_activate_vc_parm.priv,vcc, tn7atm_activate_vc_parm.chan);
|
||||
@@ -934,17 +884,17 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
}
|
||||
else /* PVC channel setup */
|
||||
{
|
||||
- if ((vpi==REMOTE_MGMT_VPI) && (vci==REMOTE_MGMT_VCI))
|
||||
+ if ((vcc->vpi==REMOTE_MGMT_VPI) && (vcc->vci==REMOTE_MGMT_VCI))
|
||||
{
|
||||
tn7atm_activate_vc_parm.chan = 14; /* always use chan 14 for MII PVC-base romote mgmt */
|
||||
}
|
||||
else
|
||||
{
|
||||
- rc = tn7atm_lut_find(vpi, vci);
|
||||
+ rc = tn7atm_lut_find(vcc->vpi, vcc->vci);
|
||||
/* check to see whether PVC is opened or not */
|
||||
if(ATM_NO_DMA_CHAN != rc)
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
printk("PVC already opened. dmachan = %d\n", rc);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -976,6 +926,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
tn7atm_activate_vc_parm.priority = 2;
|
||||
break;
|
||||
|
||||
+#if 0
|
||||
case ATM_VBR: /* Variable Bit Rate-Non RealTime*/
|
||||
tn7atm_activate_vc_parm.qos = 1;
|
||||
tn7atm_activate_vc_parm.priority = 1;
|
||||
@@ -997,6 +948,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
tn7atm_activate_vc_parm.mbs = vcc->qos.txtp.max_pcr;
|
||||
tn7atm_activate_vc_parm.cdvt = vcc->qos.txtp.max_cdv;
|
||||
break;
|
||||
+#endif
|
||||
|
||||
default:
|
||||
tn7atm_activate_vc_parm.qos = 2;
|
||||
@@ -1024,7 +976,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
if (rc < 0)
|
||||
{
|
||||
printk("failed to activate hw channel\n");
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
tn7atm_lut_clear(vcc, tn7atm_activate_vc_parm.chan);
|
||||
//spin_unlock_irqrestore(&chan_init_lock, flags);
|
||||
return -EBUSY;
|
||||
@@ -1114,7 +1066,7 @@ void tn7atm_close (struct atm_vcc *vcc)
|
||||
tn7atm_lut_clear (vcc, dmachan);
|
||||
//spin_unlock_irqrestore (&closeLock, closeFlag);
|
||||
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
|
||||
dgprintf (1, "Leave tn7atm_close\n");
|
||||
}
|
||||
@@ -1528,8 +1480,7 @@ int tn7atm_receive (void *os_dev, int ch
|
||||
* firewall is on */
|
||||
|
||||
dgprintf (3, "pushing the skb...\n");
|
||||
-
|
||||
- skb->stamp = vcc->timestamp = xtime;
|
||||
+ __net_timestamp(skb);
|
||||
|
||||
xdump ((unsigned char *) skb->data, skb->len, 5);
|
||||
|
||||
@@ -1725,8 +1676,7 @@ static void tn7atm_exit (void)
|
||||
|
||||
kfree (dev->dev_data);
|
||||
|
||||
- // atm_dev_deregister (dev);
|
||||
- shutdown_atm_dev (dev);
|
||||
+ atm_dev_deregister (dev);
|
||||
|
||||
/*
|
||||
* remove proc entries
|
||||
@@ -1885,9 +1835,6 @@ static int __init tn7atm_detect (void)
|
||||
/*
|
||||
* Set up proc entry for atm stats
|
||||
*/
|
||||
- if (tn7atm_xlate_proc_name
|
||||
- (drv_proc_root_folder, &root_proc_dir_entry, &residual))
|
||||
- {
|
||||
printk ("Creating new root folder %s in the proc for the driver stats \n",
|
||||
drv_proc_root_folder);
|
||||
root_proc_dir_entry = proc_mkdir (drv_proc_root_folder, NULL);
|
||||
@@ -1897,7 +1844,6 @@ static int __init tn7atm_detect (void)
|
||||
return -ENOMEM;
|
||||
}
|
||||
proc_root_already_exists = FALSE;
|
||||
- }
|
||||
|
||||
/*
|
||||
* AV: Clean-up. Moved all the definitions to the data structure.
|
||||
@@ -2479,7 +2425,5 @@ static int tn7atm_proc_qos_write(struct
|
||||
return count;
|
||||
}
|
||||
|
||||
-#ifdef MODULE
|
||||
module_init (tn7atm_detect);
|
||||
module_exit (tn7atm_exit);
|
||||
-#endif /* MODULE */
|
||||
--- a/tn7atm.h
|
||||
+++ b/tn7atm.h
|
||||
@@ -19,7 +19,8 @@
|
||||
//#include "mips_support.h"
|
||||
#include <linux/list.h>
|
||||
|
||||
-#include <linux/config.h>
|
||||
+#define MIPS_EXCEPTION_OFFSET 8
|
||||
+#define LNXINTNUM(x)((x) + MIPS_EXCEPTION_OFFSET)
|
||||
|
||||
#ifdef CONFIG_MODVERSIONS
|
||||
#include <linux/modversions.h>
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -94,7 +94,6 @@
|
||||
* 1/02/07 JZ CQ11054: Data Precision and Range Changes for TR-069 Conformance
|
||||
* UR8_MERGE_END CQ11054*
|
||||
*********************************************************************************************/
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -102,8 +101,6 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
@@ -111,6 +108,12 @@
|
||||
#include <linux/timer.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
+#include <linux/firmware.h>
|
||||
+
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
+
|
||||
/* Modules specific header files */
|
||||
#include "tn7atm.h"
|
||||
#include "tn7api.h"
|
||||
@@ -173,7 +176,7 @@ led_reg_t ledreg[2];
|
||||
static struct led_funcs ledreg[2];
|
||||
#endif
|
||||
|
||||
-#define DEV_DSLMOD 1
|
||||
+#define DEV_DSLMOD CTL_UNNUMBERED
|
||||
#define MAX_STR_SIZE 256
|
||||
#define DSL_MOD_SIZE 256
|
||||
|
||||
@@ -299,7 +302,7 @@ static PITIDSLHW_T pIhw;
|
||||
static volatile int bshutdown;
|
||||
static char info[MAX_STR_SIZE];
|
||||
/* Used for DSL Polling enable */
|
||||
-static DECLARE_MUTEX_LOCKED (adsl_sem_overlay);
|
||||
+static struct semaphore adsl_sem_overlay;
|
||||
|
||||
//kthread_t overlay_thread;
|
||||
/* end of module wide declars */
|
||||
@@ -323,6 +326,14 @@ static int tn7dsl_proc_snr_print (char *
|
||||
#define gDot1(a) ((a>0)?(a%10):((-a)%10))
|
||||
// UR8_MERGE_END CQ11054*
|
||||
|
||||
+int avalanche_request_intr_pacing(int irq_nr, unsigned int blk_num,
|
||||
+ unsigned int pace_value)
|
||||
+{
|
||||
+ printk("avalanche_request_pacing(%d, %u, %u); // not implemented\n", irq_nr, blk_num, pace_value);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
int os_atoi(const char *pStr)
|
||||
{
|
||||
int MulNeg = (*pStr == '-' ? -1 : 1);
|
||||
@@ -359,39 +370,6 @@ void dprintf (int uDbgLevel, char *szFmt
|
||||
#endif
|
||||
}
|
||||
|
||||
-int strcmp(const char *s1, const char *s2)
|
||||
-{
|
||||
-
|
||||
- int size = strlen(s1);
|
||||
-
|
||||
- return(strncmp(s1, s2, size));
|
||||
-}
|
||||
-
|
||||
-int strncmp(const char *s1, const char *s2, size_t size)
|
||||
-{
|
||||
- int i = 0;
|
||||
- int max_size = (int)size;
|
||||
-
|
||||
- while((s1[i] != 0) && i < max_size)
|
||||
- {
|
||||
- if(s2[i] == 0)
|
||||
- {
|
||||
- return -1;
|
||||
- }
|
||||
- if(s1[i] != s2[i])
|
||||
- {
|
||||
- return 1;
|
||||
- }
|
||||
- i++;
|
||||
- }
|
||||
- if(s2[i] != 0)
|
||||
- {
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// * UR8_MERGE_START CQ10640 Jack Zhang
|
||||
int tn7dsl_dump_dsp_memory(char *input_str) //cph99
|
||||
{
|
||||
@@ -441,101 +419,74 @@ unsigned int shim_osGetCpuFrequency(void
|
||||
return CpuFrequency;
|
||||
}
|
||||
|
||||
-int shim_osLoadFWImage(unsigned char *ptr)
|
||||
+static void avsar_release(struct device *dev)
|
||||
{
|
||||
- unsigned int bytesRead;
|
||||
- mm_segment_t oldfs;
|
||||
- static struct file *filp;
|
||||
- unsigned int imageLength=0x5ffff;
|
||||
-
|
||||
-
|
||||
- dgprintf(4, "tn7dsl_read_dsp()\n");
|
||||
-
|
||||
- dgprintf(4,"open file %s\n", DSP_FIRMWARE_PATH);
|
||||
-
|
||||
- filp=filp_open(DSP_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if(filp ==NULL)
|
||||
- {
|
||||
- printk("Failed: Could not open DSP binary file\n");
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- if (filp->f_dentry != NULL)
|
||||
- {
|
||||
- if (filp->f_dentry->d_inode != NULL)
|
||||
- {
|
||||
- printk ("DSP binary filesize = %d bytes\n",
|
||||
- (int) filp->f_dentry->d_inode->i_size);
|
||||
- imageLength = (unsigned int)filp->f_dentry->d_inode->i_size + 0x200;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (filp->f_op->read==NULL)
|
||||
- return -1; /* File(system) doesn't allow reads */
|
||||
-
|
||||
- /*
|
||||
- * Disable parameter checking
|
||||
- */
|
||||
- oldfs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
-
|
||||
- /*
|
||||
- * Now read bytes from postion "StartPos"
|
||||
- */
|
||||
- filp->f_pos = 0;
|
||||
-
|
||||
- bytesRead = filp->f_op->read(filp,ptr,imageLength,&filp->f_pos);
|
||||
-
|
||||
- dgprintf(4,"file length = %d\n", bytesRead);
|
||||
-
|
||||
- set_fs(oldfs);
|
||||
-
|
||||
- /*
|
||||
- * Close the file
|
||||
- */
|
||||
- fput(filp);
|
||||
-
|
||||
- return bytesRead;
|
||||
+ printk(KERN_DEBUG "avsar firmware released\n");
|
||||
}
|
||||
|
||||
+static struct device avsar = {
|
||||
+ .bus_id = "vlynq",
|
||||
+ .release = avsar_release,
|
||||
+};
|
||||
|
||||
-unsigned int shim_read_overlay_page (void *ptr, unsigned int secOffset,
|
||||
- unsigned int secLength)
|
||||
+int shim_osLoadFWImage(unsigned char *ptr)
|
||||
{
|
||||
- unsigned int bytesRead;
|
||||
- mm_segment_t oldfs;
|
||||
- struct file *filp;
|
||||
-
|
||||
- dgprintf(4,"shim_read_overlay_page\n");
|
||||
- //dgprintf(4,"sec offset=%d, sec length =%d\n", secOffset, secLength);
|
||||
+ const struct firmware *fw_entry;
|
||||
+ size_t size;
|
||||
|
||||
- filp=filp_open(DSP_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if(filp ==NULL)
|
||||
- {
|
||||
- printk("Failed: Could not open DSP binary file\n");
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- if (filp->f_op->read==NULL)
|
||||
- return -1; /* File(system) doesn't allow reads */
|
||||
-
|
||||
- /*
|
||||
- * Now read bytes from postion "StartPos"
|
||||
- */
|
||||
-
|
||||
- if(filp->f_op->llseek)
|
||||
- filp->f_op->llseek(filp,secOffset, 0);
|
||||
- oldfs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
- filp->f_pos = secOffset;
|
||||
- bytesRead = filp->f_op->read(filp,ptr,secLength,&filp->f_pos);
|
||||
-
|
||||
- set_fs(oldfs);
|
||||
- /*
|
||||
- * Close the file
|
||||
- */
|
||||
- fput(filp);
|
||||
- return bytesRead;
|
||||
+ printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
+ if(device_register(&avsar) < 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: device_register fails\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if(request_firmware(&fw_entry, "ar0700xx.bin", &avsar)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware not available\n");
|
||||
+ device_unregister(&avsar);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ size = fw_entry->size;
|
||||
+ device_unregister(&avsar);
|
||||
+ if(size > 0x5ffff) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware too big (%d bytes)\n", size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ memcpy(ptr, fw_entry->data, size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return size;
|
||||
+}
|
||||
+
|
||||
+unsigned int shim_read_overlay_page(void *ptr, unsigned int secOffset, unsigned int secLength)
|
||||
+{
|
||||
+ const struct firmware *fw_entry;
|
||||
+
|
||||
+ printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
+ if(device_register(&avsar) < 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: device_register fails\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if(request_firmware(&fw_entry, "ar0700xx.bin", &avsar)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware not available\n");
|
||||
+ device_unregister(&avsar);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ device_unregister(&avsar);
|
||||
+ if(fw_entry->size > secLength) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware too big (%d bytes)\n", fw_entry->size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ memcpy(ptr + secOffset, fw_entry->data, secLength);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return secLength;
|
||||
}
|
||||
|
||||
int shim_osLoadDebugFWImage(unsigned char *ptr)
|
||||
@@ -3064,6 +3015,7 @@ int tn7dsl_init(void *priv)
|
||||
int high_precision_selected = 0;
|
||||
// UR8_MERGE_END CQ11054*
|
||||
|
||||
+ sema_init(&adsl_sem_overlay, 0);
|
||||
/*
|
||||
* start dsl
|
||||
*/
|
||||
@@ -3442,7 +3394,7 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
*/
|
||||
if(write)
|
||||
{
|
||||
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
|
||||
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
|
||||
switch (ctl->ctl_name)
|
||||
{
|
||||
@@ -3528,14 +3480,14 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
else
|
||||
{
|
||||
len += sprintf(info+len, mod_req);
|
||||
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
|
||||
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ctl_table dslmod_table[] = {
|
||||
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, &dslmod_sysctl}
|
||||
+ {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
||||
,
|
||||
{0}
|
||||
};
|
||||
@@ -3558,8 +3510,7 @@ void tn7dsl_dslmod_sysctl_register(void)
|
||||
if (initialized == 1)
|
||||
return;
|
||||
|
||||
- dslmod_sysctl_header = register_sysctl_table(dslmod_root_table, 1);
|
||||
- dslmod_root_table->child->de->owner = THIS_MODULE;
|
||||
+ dslmod_sysctl_header = register_sysctl_table(dslmod_root_table);
|
||||
|
||||
/*
|
||||
* set the defaults
|
||||
@@ -4821,4 +4772,4 @@ int tn7dsl_proc_PMDus(char* buf, char **
|
||||
}
|
||||
#endif //NO_ADV_STATS
|
||||
#endif //TR69_PMD_IN
|
||||
-// * UR8_MERGE_END CQ11057 *
|
||||
\ No newline at end of file
|
||||
+// * UR8_MERGE_END CQ11057 *
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -42,7 +42,6 @@
|
||||
* UR8_MERGE_END CQ10700
|
||||
*******************************************************************************/
|
||||
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -50,12 +49,13 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
|
||||
#define _CPHAL_AAL5
|
||||
#define _CPHAL_SAR
|
||||
@@ -0,0 +1,37 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -566,7 +566,7 @@ static int turbodsl_check_priority_type(
|
||||
* Description: tnetd73xx SAR interrupt.
|
||||
*
|
||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static void tn7atm_sar_irq (int irq, void *voiddev, struct pt_regs *regs)
|
||||
+static irqreturn_t tn7atm_sar_irq (int irq, void *voiddev)
|
||||
{
|
||||
struct atm_dev *atmdev;
|
||||
Tn7AtmPrivate *priv;
|
||||
@@ -593,6 +593,7 @@ static void tn7atm_sar_irq (int irq, voi
|
||||
#ifdef TIATM_INST_SUPP
|
||||
psp_trace_par (ATM_DRV_SAR_ISR_EXIT, retval);
|
||||
#endif
|
||||
+ return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -602,7 +603,7 @@ static void tn7atm_sar_irq (int irq, voi
|
||||
* Description: tnetd73xx DSL interrupt.
|
||||
*
|
||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static void tn7atm_dsl_irq (int irq, void *voiddev, struct pt_regs *regs)
|
||||
+static irqreturn_t tn7atm_dsl_irq (int irq, void *voiddev)
|
||||
{
|
||||
struct atm_dev *atmdev;
|
||||
Tn7AtmPrivate *priv;
|
||||
@@ -624,6 +625,8 @@ static void tn7atm_dsl_irq (int irq, voi
|
||||
#ifdef TIATM_INST_SUPP
|
||||
psp_trace_par (ATM_DRV_DSL_ISR_EXIT, retval);
|
||||
#endif
|
||||
+
|
||||
+ return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/tn7api.h
|
||||
+++ b/tn7api.h
|
||||
@@ -107,7 +107,7 @@ int tn7dsl_proc_dbg_rmsgs4(char* buf, ch
|
||||
|
||||
int tn7dsl_proc_write_stats(struct file *fp, const char * buf, unsigned long count, void * data);
|
||||
int tn7dsl_proc_modem(char* buf, char **start, off_t offset, int count,int *eof, void *data);
|
||||
-inline int tn7dsl_handle_interrupt(void);
|
||||
+int tn7dsl_handle_interrupt(void);
|
||||
|
||||
void tn7dsl_dslmod_sysctl_register(void);
|
||||
void tn7dsl_dslmod_sysctl_unregister(void);
|
||||
@@ -0,0 +1,44 @@
|
||||
--- a/dsl_hal_advcfg.c
|
||||
+++ b/dsl_hal_advcfg.c
|
||||
@@ -36,9 +36,9 @@
|
||||
* 05Jul05 0.00.09 CPH CQ9775: Change dslhal_advcfg_configDsTones input parameters & support for ADSL2+
|
||||
* 24Jul05 0.00.10 CPH Fixed comments in dslhal_advcfg_configDsTones function header
|
||||
*******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/* ACT API functions -- To be moved into their own independent module --RamP */
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
CONFIG_SANGAM_ATM=m
|
||||
#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
-EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
-tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o
|
||||
+tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o dsl_hal_advcfg.o
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -2869,6 +2869,14 @@ static int tn7dsl_set_dsl(void)
|
||||
dslhal_api_setRateAdaptFlag(pIhw, os_atoi(ptr));
|
||||
}
|
||||
|
||||
+ // set powercutback
|
||||
+ ptr = NULL;
|
||||
+ ptr = prom_getenv("powercutback");
|
||||
+ if(ptr)
|
||||
+ {
|
||||
+ dslhal_advcfg_onOffPcb(pIhw, os_atoi(ptr));
|
||||
+ }
|
||||
+
|
||||
// trellis
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("trellis");
|
||||
@@ -0,0 +1,16 @@
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -103,10 +103,10 @@ enum
|
||||
|
||||
#define RESERVED_OAM_CHANNEL 15
|
||||
|
||||
-#define AAL5_PARM "id=aal5, base = 0x03000000, offset = 0, int_line=15, ch0=[RxBufSize=1522; RxNumBuffers = 32; RxServiceMax = 50; TxServiceMax=50; TxNumBuffers=32; CpcsUU=0x5aa5; TxVc_CellRate=0x3000; TxVc_AtmHeader=0x00000640]"
|
||||
-#define SAR_PARM "id=sar,base = 0x03000000, reset_bit = 9, offset = 0; UniNni = 0, PdspEnable = 1"
|
||||
+#define CH0_PARM "RxBufSize=1522, RxNumBuffers=32, RxServiceMax=50, TxServiceMax=50, TxNumBuffers=32, CpcsUU=0x5aa5, TxVc_CellRate=0x3000, TxVc_AtmHeader=0x00000640"
|
||||
+#define AAL5_PARM "id=aal5, base=0x03000000, offset=0, int_line=15, ch0=[" CH0_PARM "]"
|
||||
+#define SAR_PARM "id=sar, base=0x03000000, reset_bit=9, offset=0; UniNni=0, PdspEnable=1, Debug=0xFFFFFFFF"
|
||||
#define RESET_PARM "id=ResetControl, base=0xA8611600"
|
||||
-#define CH0_PARM "RxBufSize=1522, RxNumBuffers = 32, RxServiceMax = 50, TxServiceMax=50, TxNumBuffers=32, CpcsUU=0x5aa5, TxVc_CellRate=0x3000, TxVc_AtmHeader=0x00000640"
|
||||
|
||||
#define MAX_PVC_TABLE_ENTRY 16
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
CONFIG_SANGAM_ATM=m
|
||||
#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
-EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
+#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL -DCPATM_TASKLET_MODE
|
||||
obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o dsl_hal_advcfg.o
|
||||
@@ -0,0 +1,589 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -87,6 +87,146 @@
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
|
||||
MODULE_AUTHOR ("Zhicheng Tang");
|
||||
+
|
||||
+int mp_sar_ipacemax = -1;
|
||||
+module_param_named(ipacemax, mp_sar_ipacemax, int, 0);
|
||||
+MODULE_PARM_DESC(ipacemax, "Interrupt pacing");
|
||||
+
|
||||
+char *mp_macc = NULL;
|
||||
+module_param_named(macc, mp_macc, charp, 0);
|
||||
+MODULE_PARM_DESC(macc, "MAC address");
|
||||
+
|
||||
+int mp_dsp_noboost = -1;
|
||||
+module_param_named(dsp_noboost, mp_dsp_noboost, int, 0);
|
||||
+MODULE_PARM_DESC(dsp_noboost, "Suppress DSP frequency boost");
|
||||
+
|
||||
+int mp_dsp_freq = -1;
|
||||
+module_param_named(dsp_freq, mp_dsp_freq, int, 0);
|
||||
+MODULE_PARM_DESC(dsp_freq, "Frequency to boost the DSP to");
|
||||
+
|
||||
+char *mp_featctl0 = NULL;
|
||||
+module_param_named(featctl0, mp_featctl0, charp, 0);
|
||||
+MODULE_PARM_DESC(featctl0, "DSL feature control 0");
|
||||
+
|
||||
+char *mp_featctl1 = NULL;
|
||||
+module_param_named(featctl1, mp_featctl1, charp, 0);
|
||||
+MODULE_PARM_DESC(featctl1, "DSL feature control 1");
|
||||
+
|
||||
+char *mp_phyctl0 = NULL;
|
||||
+module_param_named(phyctl0, mp_phyctl0, charp, 0);
|
||||
+MODULE_PARM_DESC(phyctl0, "DSL PHY control 0");
|
||||
+
|
||||
+char *mp_phyctl1 = NULL;
|
||||
+module_param_named(phyctl1, mp_phyctl1, charp, 0);
|
||||
+MODULE_PARM_DESC(phyctl1, "DSL PHY control 1");
|
||||
+
|
||||
+int mp_turbodsl = -1;
|
||||
+module_param_named(turbodsl, mp_turbodsl, int, 0);
|
||||
+MODULE_PARM_DESC(turbodsl, "Enable TurboDSL");
|
||||
+
|
||||
+int mp_sar_rxbuf = -1;
|
||||
+module_param_named(sar_rxbuf, mp_sar_rxbuf, int, 0);
|
||||
+MODULE_PARM_DESC(sar_rxbuf, "SAR RxBuf size");
|
||||
+
|
||||
+int mp_sar_rxmax = -1;
|
||||
+module_param_named(sar_rxmax, mp_sar_rxmax, int, 0);
|
||||
+MODULE_PARM_DESC(sar_rxmax, "SAR RxMax size");
|
||||
+
|
||||
+int mp_sar_txbuf = -1;
|
||||
+module_param_named(sar_txbuf, mp_sar_txbuf, int, 0);
|
||||
+MODULE_PARM_DESC(sar_txbuf, "SAR TxBuf size");
|
||||
+
|
||||
+int mp_sar_txmax = -1;
|
||||
+module_param_named(sar_txmax, mp_sar_txmax, int, 0);
|
||||
+MODULE_PARM_DESC(sar_txmax, "SAR TxMax size");
|
||||
+
|
||||
+char *mp_modulation = NULL;
|
||||
+module_param_named(modulation, mp_modulation, charp, 0);
|
||||
+MODULE_PARM_DESC(modulation, "Modulation");
|
||||
+
|
||||
+int mp_fine_gain_control = -1;
|
||||
+module_param_named(fine_gain_control, mp_fine_gain_control, int, 0);
|
||||
+MODULE_PARM_DESC(fine_gain_control, "Fine gain control");
|
||||
+
|
||||
+int mp_fine_gain_value = -1;
|
||||
+module_param_named(fine_gain_value, mp_fine_gain_value, int, 0);
|
||||
+MODULE_PARM_DESC(fine_gain_value, "Fine gain value");
|
||||
+
|
||||
+int mp_enable_margin_retrain = -1;
|
||||
+module_param_named(enable_margin_retrain, mp_enable_margin_retrain, int, 0);
|
||||
+MODULE_PARM_DESC(enable_margin_retrain, "Enable margin retrain");
|
||||
+
|
||||
+int mp_margin_threshold = -1;
|
||||
+module_param_named(margin_threshold, mp_margin_threshold, int, 0);
|
||||
+MODULE_PARM_DESC(margin_threshold, "Margin retrain treshold");
|
||||
+
|
||||
+int mp_enable_rate_adapt = -1;
|
||||
+module_param_named(enable_rate_adapt, mp_enable_rate_adapt, int, 0);
|
||||
+MODULE_PARM_DESC(enable_rate_adapt, "Enable rate adaption");
|
||||
+
|
||||
+int mp_powercutback = -1;
|
||||
+module_param_named(powercutback, mp_powercutback, int, 0);
|
||||
+MODULE_PARM_DESC(powercutback, "Enable / disable powercutback");
|
||||
+
|
||||
+int mp_trellis = -1;
|
||||
+module_param_named(trellis, mp_trellis, int, 0);
|
||||
+MODULE_PARM_DESC(trellis, "Enable / disable trellis coding");
|
||||
+
|
||||
+int mp_bitswap = -1;
|
||||
+module_param_named(bitswap, mp_bitswap, int, 0);
|
||||
+MODULE_PARM_DESC(bitswap, "Enable / disable bitswap");
|
||||
+
|
||||
+int mp_maximum_bits_per_carrier = -1;
|
||||
+module_param_named(maximum_bits_per_carrier, mp_maximum_bits_per_carrier, int, 0);
|
||||
+MODULE_PARM_DESC(maximum_bits_per_carrier, "Maximum bits per carrier");
|
||||
+
|
||||
+int mp_maximum_interleave_depth = -1;
|
||||
+module_param_named(maximum_interleave_depth, mp_maximum_interleave_depth, int, 0);
|
||||
+MODULE_PARM_DESC(maximum_interleave_depth, "Maximum interleave depth");
|
||||
+
|
||||
+int mp_pair_selection = -1;
|
||||
+module_param_named(pair_selection, mp_pair_selection, int, 0);
|
||||
+MODULE_PARM_DESC(pair_selection, "Pair selection");
|
||||
+
|
||||
+int mp_dgas_polarity = -1;
|
||||
+module_param_named(dgas_polarity, mp_dgas_polarity, int, 0);
|
||||
+MODULE_PARM_DESC(dgas_polarity, "DGAS polarity");
|
||||
+
|
||||
+int mp_los_alarm = -1;
|
||||
+module_param_named(los_alarm, mp_los_alarm, int, 0);
|
||||
+MODULE_PARM_DESC(los_alarm, "LOS alarm");
|
||||
+
|
||||
+char *mp_eoc_vendor_id = NULL;
|
||||
+module_param_named(eoc_vendor_id, mp_eoc_vendor_id, charp, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_id, "EOC vendor id");
|
||||
+
|
||||
+int mp_eoc_vendor_revision = -1;
|
||||
+module_param_named(eoc_vendor_revision, mp_eoc_vendor_revision, int, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_revision, "EOC vendor revision");
|
||||
+
|
||||
+char *mp_eoc_vendor_serialnum = NULL;
|
||||
+module_param_named(eoc_vendor_serialnum, mp_eoc_vendor_serialnum, charp, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_serialnum, "EOC vendor serial number");
|
||||
+
|
||||
+char *mp_invntry_vernum = NULL;
|
||||
+module_param_named(invntry_vernum, mp_invntry_vernum, charp, 0);
|
||||
+MODULE_PARM_DESC(invntry_vernum, "Inventory revision number");
|
||||
+
|
||||
+int mp_dsl_bit_tmode = -1;
|
||||
+module_param_named(dsl_bit_tmode, mp_dsl_bit_tmode, int, 0);
|
||||
+MODULE_PARM_DESC(dsl_bit_tmode, "DSL bit training mode");
|
||||
+
|
||||
+int mp_high_precision = -1;
|
||||
+module_param_named(high_precision, mp_high_precision, int, 0);
|
||||
+MODULE_PARM_DESC(high_precision, "High precision");
|
||||
+
|
||||
+int mp_autopvc_enable = -1;
|
||||
+module_param_named(autopvc_enable, mp_autopvc_enable, int, 0);
|
||||
+MODULE_PARM_DESC(autopvc_enable, "Enable / disable automatic PVC");
|
||||
+
|
||||
+int mp_oam_lb_timeout = -1;
|
||||
+module_param_named(oam_lb_timeout, mp_oam_lb_timeout, int, 0);
|
||||
+MODULE_PARM_DESC(oam_lb_timeout, "OAM LB timeout");
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
@@ -655,9 +795,9 @@
|
||||
* interrupt pacing
|
||||
*/
|
||||
ptr = prom_getenv ("sar_ipacemax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_ipacemax != -1)
|
||||
{
|
||||
- def_sar_inter_pace = os_atoi (ptr);
|
||||
+ def_sar_inter_pace = mp_sar_ipacemax == -1 ? os_atoi (ptr) : mp_sar_ipacemax;
|
||||
}
|
||||
/* avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
def_sar_inter_pace);*/
|
||||
@@ -795,9 +935,18 @@
|
||||
{
|
||||
int i;
|
||||
char esi_addr[ESI_LEN] = { 0x00, 0x00, 0x11, 0x22, 0x33, 0x44 };
|
||||
- char *esiaddr_str = NULL;
|
||||
+ char *esiaddr_str = mp_macc;
|
||||
|
||||
- esiaddr_str = prom_getenv ("maca");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("macdsl");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("macc");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("HWA_1");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("macb");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("maca");
|
||||
|
||||
if (!esiaddr_str)
|
||||
{
|
||||
@@ -1930,15 +2079,15 @@
|
||||
//UR8_MERGE_END CQ10450*
|
||||
|
||||
cp = prom_getenv ("dsp_noboost");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsp_noboost != -1)
|
||||
{
|
||||
- dsp_noboost = os_atoi (cp);
|
||||
+ dsp_noboost = mp_dsp_noboost == -1 ? os_atoi (cp) : mp_dsp_noboost;
|
||||
}
|
||||
|
||||
cp = (char *) prom_getenv ("dsp_freq");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsp_freq != -1)
|
||||
{
|
||||
- dspfreq = os_atoi (cp);
|
||||
+ dspfreq = mp_dsp_freq == -1 ? os_atoi (cp) : mp_dsp_freq;
|
||||
if (dspfreq == 250)
|
||||
{
|
||||
boostDsp = 1;
|
||||
@@ -2187,8 +2336,9 @@
|
||||
// Inter-Op DSL phy Control
|
||||
// Note the setting of _dsl_Feature_0 and _dsl_Feature_1 must before
|
||||
// dslhal_api_dslStartup (in tn7dsl_init()).
|
||||
- if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_0")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_0")) != NULL || mp_featctl0 != NULL)
|
||||
{
|
||||
+ if (mp_featctl0 != NULL) ptr = mp_featctl0;
|
||||
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
|
||||
// os_atoh
|
||||
ptr += 2;
|
||||
@@ -2196,8 +2346,9 @@
|
||||
_dsl_Feature_0_defined = 1;
|
||||
}
|
||||
|
||||
- if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_1")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_1")) != NULL || mp_featctl1 != NULL)
|
||||
{
|
||||
+ if (mp_featctl1 != NULL) ptr = mp_featctl1;
|
||||
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
|
||||
// os_atoh
|
||||
ptr += 2;
|
||||
@@ -2209,8 +2360,9 @@
|
||||
// DSL phy Feature Control
|
||||
// Note the setting of _dsl_PhyControl_0 and _dsl_PhyControl_1 must before
|
||||
// dslhal_api_dslStartup (in tn7dsl_init()).
|
||||
- if ((ptr = prom_getenv ("DSL_PHY_CNTL_0")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_PHY_CNTL_0")) != NULL || mp_phyctl0 != NULL)
|
||||
{
|
||||
+ if (mp_phyctl0 != NULL) ptr = mp_phyctl0;
|
||||
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
|
||||
// os_atoh
|
||||
ptr += 2;
|
||||
@@ -2218,8 +2370,9 @@
|
||||
_dsl_PhyControl_0_defined = 1;
|
||||
}
|
||||
|
||||
- if ((ptr = prom_getenv ("DSL_PHY_CNTL_1")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_PHY_CNTL_1")) != NULL || mp_phyctl1 != NULL)
|
||||
{
|
||||
+ if (mp_phyctl1 != NULL) ptr = mp_phyctl1;
|
||||
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
|
||||
// os_atoh
|
||||
ptr += 2;
|
||||
@@ -2247,9 +2400,9 @@
|
||||
priv->bTurboDsl = 1;
|
||||
// read config for turbo dsl
|
||||
ptr = prom_getenv ("TurboDSL");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_turbodsl != -1)
|
||||
{
|
||||
- priv->bTurboDsl = os_atoi (ptr);
|
||||
+ priv->bTurboDsl = mp_turbodsl == -1 ? os_atoi (ptr) : mp_turbodsl;
|
||||
}
|
||||
|
||||
// @Added to make Rx buffer number & Service max configurable through
|
||||
@@ -2257,30 +2410,30 @@
|
||||
priv->sarRxBuf = RX_BUFFER_NUM;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarRxBuf");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_rxbuf != -1)
|
||||
{
|
||||
- priv->sarRxBuf = os_atoi (ptr);
|
||||
+ priv->sarRxBuf = mp_sar_rxbuf == -1 ? os_atoi (ptr) : mp_sar_rxbuf;
|
||||
}
|
||||
priv->sarRxMax = RX_SERVICE_MAX;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarRxMax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_rxmax != -1)
|
||||
{
|
||||
- priv->sarRxMax = os_atoi (ptr);
|
||||
+ priv->sarRxMax = mp_sar_rxmax == -1 ? os_atoi (ptr) : mp_sar_rxmax;
|
||||
}
|
||||
priv->sarTxBuf = TX_BUFFER_NUM;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarTxBuf");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_txbuf != -1)
|
||||
{
|
||||
- priv->sarTxBuf = os_atoi (ptr);
|
||||
+ priv->sarTxBuf = mp_sar_txbuf == -1 ? os_atoi (ptr) : mp_sar_txbuf;
|
||||
}
|
||||
priv->sarTxMax = TX_SERVICE_MAX;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarTxMax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_txmax != -1)
|
||||
{
|
||||
- priv->sarTxMax = os_atoi (ptr);
|
||||
+ priv->sarTxMax = mp_sar_txmax == -1 ? os_atoi (ptr) : mp_sar_txmax;
|
||||
}
|
||||
|
||||
return 0;
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -136,6 +136,27 @@
|
||||
#define NEW_TRAINING_VAL_T1413 128
|
||||
#define NEW_TRAINING_VAL_MMODE 255
|
||||
|
||||
+extern char *mp_modulation;
|
||||
+extern int mp_fine_gain_control;
|
||||
+extern int mp_fine_gain_value;
|
||||
+extern int mp_enable_margin_retrain;
|
||||
+extern int mp_margin_threshold;
|
||||
+extern int mp_enable_rate_adapt;
|
||||
+extern int mp_powercutback;
|
||||
+extern int mp_trellis;
|
||||
+extern int mp_bitswap;
|
||||
+extern int mp_maximum_bits_per_carrier;
|
||||
+extern int mp_maximum_interleave_depth;
|
||||
+extern int mp_pair_selection;
|
||||
+extern int mp_dgas_polarity;
|
||||
+extern int mp_los_alarm;
|
||||
+extern char *mp_eoc_vendor_id;
|
||||
+extern int mp_eoc_vendor_revision;
|
||||
+extern char *mp_eoc_vendor_serialnum;
|
||||
+extern char *mp_invntry_vernum;
|
||||
+extern int mp_dsl_bit_tmode;
|
||||
+extern int mp_high_precision;
|
||||
+
|
||||
int testflag1 = 0;
|
||||
extern int __guDbgLevel;
|
||||
extern sar_stat_t sarStat;
|
||||
@@ -2818,84 +2839,80 @@ static int tn7dsl_set_dsl(void)
|
||||
|
||||
// modulation
|
||||
ptr = prom_getenv("modulation");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_modulation != NULL)
|
||||
{
|
||||
- tn7dsl_set_modulation(ptr, FALSE);
|
||||
+ tn7dsl_set_modulation(mp_modulation == NULL ? ptr : mp_modulation, FALSE);
|
||||
}
|
||||
|
||||
// Fine Gains
|
||||
ptr = prom_getenv("fine_gain_control");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_fine_gain_control != -1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
+ value = mp_fine_gain_control == -1 ? os_atoi(ptr) : mp_fine_gain_control;
|
||||
tn7dsl_ctrl_fineGain(value);
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("fine_gain_value");
|
||||
- if(ptr)
|
||||
- tn7dsl_set_fineGainValue(os_atoh(ptr));
|
||||
+ if(ptr || mp_fine_gain_value != -1)
|
||||
+ tn7dsl_set_fineGainValue(mp_fine_gain_value == -1 ? os_atoh(ptr) : mp_fine_gain_value);
|
||||
|
||||
// margin retrain
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("enable_margin_retrain");
|
||||
- if(ptr)
|
||||
+ value = mp_enable_margin_retrain == -1 ? (ptr ? os_atoi(ptr) : 0) : mp_enable_margin_retrain;
|
||||
+
|
||||
+ if (value == 1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
- if(value == 1)
|
||||
+ dslhal_api_setMarginMonitorFlags(pIhw, 0, 1);
|
||||
+ bMarginRetrainEnable = 1;
|
||||
+ //printk("enable showtime margin monitor.\n");
|
||||
+
|
||||
+ ptr = NULL;
|
||||
+ ptr = prom_getenv("margin_threshold");
|
||||
+ value = mp_margin_threshold == -1 ? (ptr ? os_atoi(ptr) : 0) : mp_margin_threshold;
|
||||
+
|
||||
+ if(value >= 0)
|
||||
{
|
||||
- dslhal_api_setMarginMonitorFlags(pIhw, 0, 1);
|
||||
- bMarginRetrainEnable = 1;
|
||||
- //printk("enable showtime margin monitor.\n");
|
||||
- ptr = NULL;
|
||||
- ptr = prom_getenv("margin_threshold");
|
||||
- if(ptr)
|
||||
- {
|
||||
- value = os_atoi(ptr);
|
||||
- //printk("Set margin threshold to %d x 0.5 db\n",value);
|
||||
- if(value >= 0)
|
||||
- {
|
||||
- dslhal_api_setMarginThreshold(pIhw, value);
|
||||
- bMarginThConfig=1;
|
||||
- }
|
||||
- }
|
||||
+ dslhal_api_setMarginThreshold(pIhw, value);
|
||||
+ bMarginThConfig=1;
|
||||
}
|
||||
}
|
||||
|
||||
// rate adapt
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("enable_rate_adapt");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_enable_rate_adapt != -1)
|
||||
{
|
||||
- dslhal_api_setRateAdaptFlag(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setRateAdaptFlag(pIhw, mp_enable_rate_adapt == -1 ? os_atoi(ptr) : mp_enable_rate_adapt);
|
||||
}
|
||||
|
||||
// set powercutback
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("powercutback");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_powercutback != -1)
|
||||
{
|
||||
- dslhal_advcfg_onOffPcb(pIhw, os_atoi(ptr));
|
||||
+ dslhal_advcfg_onOffPcb(pIhw, mp_powercutback == -1 ? os_atoi(ptr) : mp_powercutback);
|
||||
}
|
||||
|
||||
// trellis
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("trellis");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_trellis != -1)
|
||||
{
|
||||
- dslhal_api_setTrellisFlag(pIhw, os_atoi(ptr));
|
||||
- trellis = os_atoi(ptr);
|
||||
+ trellis = mp_trellis == -1 ? os_atoi(ptr) : mp_trellis;
|
||||
+ dslhal_api_setTrellisFlag(pIhw, trellis);
|
||||
//printk("trellis=%d\n");
|
||||
}
|
||||
|
||||
// bitswap
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("bitswap");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_bitswap != -1)
|
||||
{
|
||||
int offset[2] = {33, 0};
|
||||
unsigned int bitswap;
|
||||
|
||||
- bitswap = os_atoi(ptr);
|
||||
+ bitswap = mp_bitswap == -1 ? os_atoi(ptr) : mp_bitswap;
|
||||
|
||||
tn7dsl_generic_read(2, offset);
|
||||
dslReg &= dslhal_support_byteSwap32(0xFFFFFF00);
|
||||
@@ -2913,46 +2930,47 @@ static int tn7dsl_set_dsl(void)
|
||||
// maximum bits per carrier
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("maximum_bits_per_carrier");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_maximum_bits_per_carrier != -1)
|
||||
{
|
||||
- dslhal_api_setMaxBitsPerCarrierUpstream(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setMaxBitsPerCarrierUpstream(pIhw, mp_maximum_bits_per_carrier == -1 ? os_atoi(ptr) : mp_maximum_bits_per_carrier);
|
||||
}
|
||||
|
||||
// maximum interleave depth
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("maximum_interleave_depth");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_maximum_interleave_depth != -1)
|
||||
{
|
||||
- dslhal_api_setMaxInterleaverDepth(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setMaxInterleaverDepth(pIhw, mp_maximum_interleave_depth == -1 ? os_atoi(ptr) : mp_maximum_interleave_depth);
|
||||
}
|
||||
|
||||
// inner and outer pairs
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("pair_selection");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_pair_selection != -1)
|
||||
{
|
||||
- dslhal_api_selectInnerOuterPair(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_selectInnerOuterPair(pIhw, mp_pair_selection == -1 ? os_atoi(ptr) : mp_pair_selection);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("dgas_polarity");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_dgas_polarity != -1)
|
||||
{
|
||||
dslhal_api_configureDgaspLpr(pIhw, 1, 1);
|
||||
- dslhal_api_configureDgaspLpr(pIhw, 0, os_atoi(ptr));
|
||||
+ dslhal_api_configureDgaspLpr(pIhw, 0, mp_dgas_polarity == -1 ? os_atoi(ptr) : mp_dgas_polarity);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("los_alarm");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_los_alarm != -1)
|
||||
{
|
||||
- dslhal_api_disableLosAlarm(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_disableLosAlarm(pIhw, mp_los_alarm == -1 ? os_atoi(ptr) : mp_los_alarm);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_id");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_id != NULL)
|
||||
{
|
||||
+ ptr = mp_eoc_vendor_id == NULL ? ptr : mp_eoc_vendor_id;
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
tmp[0]=ptr[i*2];
|
||||
@@ -2977,26 +2995,26 @@ static int tn7dsl_set_dsl(void)
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_revision");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_revision != -1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
+ value = mp_eoc_vendor_revision == -1 ? os_atoi(ptr) : mp_eoc_vendor_revision;
|
||||
//printk("eoc rev=%d\n", os_atoi(ptr));
|
||||
dslhal_api_setEocRevisionNumber(pIhw, (char *)&value);
|
||||
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_serialnum");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_serialnum != NULL)
|
||||
{
|
||||
- dslhal_api_setEocSerialNumber(pIhw, ptr);
|
||||
+ dslhal_api_setEocSerialNumber(pIhw, mp_eoc_vendor_serialnum == NULL ? ptr : mp_eoc_vendor_serialnum);
|
||||
}
|
||||
|
||||
// CQ10037 Added invntry_vernum environment variable to be able to set version number in ADSL2, ADSL2+ modes.
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("invntry_vernum");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_invntry_vernum != NULL)
|
||||
{
|
||||
- dslhal_api_setEocRevisionNumber(pIhw, ptr);
|
||||
+ dslhal_api_setEocRevisionNumber(pIhw, mp_invntry_vernum == NULL ? ptr : mp_invntry_vernum);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -3041,7 +3059,7 @@ int tn7dsl_init(void *priv)
|
||||
* backward compatibility.
|
||||
*/
|
||||
cp = prom_getenv("DSL_BIT_TMODE");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsl_bit_tmode != -1)
|
||||
{
|
||||
printk("%s : env var DSL_BIT_TMODE is set\n", __FUNCTION__);
|
||||
/*
|
||||
@@ -3070,9 +3088,9 @@ int tn7dsl_init(void *priv)
|
||||
|
||||
// UR8_MERGE_START CQ11054 Jack Zhang
|
||||
cp = prom_getenv("high_precision");
|
||||
- if (cp)
|
||||
+ if (cp || mp_high_precision != -1)
|
||||
{
|
||||
- high_precision_selected = os_atoi(cp);
|
||||
+ high_precision_selected = mp_high_precision == -1 ? os_atoi(cp) : mp_high_precision;
|
||||
}
|
||||
if ( high_precision_selected)
|
||||
{
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -74,6 +74,8 @@ typedef void OS_SETUP;
|
||||
/* PDSP Firmware files */
|
||||
#include "tnetd7300_sar_firm.h"
|
||||
|
||||
+extern int mp_oam_lb_timeout;
|
||||
+extern int mp_autopvc_enable;
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -817,9 +819,9 @@ int tn7sar_setup_oam_channel(Tn7AtmPriva
|
||||
pHalDev = (HAL_DEVICE *)priv->pSarHalDev;
|
||||
|
||||
pauto_pvc = prom_getenv("autopvc_enable");
|
||||
- if(pauto_pvc) //CQ10273
|
||||
+ if(pauto_pvc || mp_autopvc_enable != -1) //CQ10273
|
||||
{
|
||||
- auto_pvc =tn7sar_strtoul(pauto_pvc, NULL, 10);
|
||||
+ auto_pvc = mp_autopvc_enable == -1 ? tn7sar_strtoul(pauto_pvc, NULL, 10) : mp_autopvc_enable;
|
||||
}
|
||||
|
||||
memset(&chInfo, 0xff, sizeof(chInfo));
|
||||
@@ -985,9 +987,9 @@ int tn7sar_init(struct atm_dev *dev, Tn7
|
||||
|
||||
/* read in oam lb timeout value */
|
||||
pLbTimeout = prom_getenv("oam_lb_timeout");
|
||||
- if(pLbTimeout)
|
||||
+ if(pLbTimeout || mp_oam_lb_timeout != -1)
|
||||
{
|
||||
- lbTimeout =tn7sar_strtoul(pLbTimeout, NULL, 10);
|
||||
+ lbTimeout = mp_oam_lb_timeout == -1 ? tn7sar_strtoul(pLbTimeout, NULL, 10) : mp_oam_lb_timeout;
|
||||
oamLbTimeout = lbTimeout;
|
||||
pHalFunc->Control(pHalDev,"OamLbTimeout", "Set", &lbTimeout);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -109,6 +109,7 @@
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/firmware.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/ar7/ar7.h>
|
||||
@@ -446,7 +447,9 @@ static void avsar_release(struct device
|
||||
}
|
||||
|
||||
static struct device avsar = {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
|
||||
.bus_id = "vlynq",
|
||||
+#endif
|
||||
.release = avsar_release,
|
||||
};
|
||||
|
||||
@@ -455,6 +458,9 @@ int shim_osLoadFWImage(unsigned char *pt
|
||||
const struct firmware *fw_entry;
|
||||
size_t size;
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
|
||||
+ dev_set_name(&avsar, "avsar");
|
||||
+#endif
|
||||
printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
if(device_register(&avsar) < 0) {
|
||||
printk(KERN_ERR
|
||||
@@ -0,0 +1,54 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -71,10 +71,16 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
#include "dsl_hal_api.h"
|
||||
#include "tn7atm.h"
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -112,8 +112,13 @@
|
||||
#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
/* Modules specific header files */
|
||||
#include "tn7atm.h"
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -52,10 +52,16 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
#define _CPHAL_AAL5
|
||||
#define _CPHAL_SAR
|
||||
@@ -0,0 +1,79 @@
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -203,7 +203,11 @@ led_reg_t ledreg[2];
|
||||
static struct led_funcs ledreg[2];
|
||||
#endif
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
#define DEV_DSLMOD CTL_UNNUMBERED
|
||||
+#else
|
||||
+#define DEV_DSLMOD 0
|
||||
+#endif
|
||||
#define MAX_STR_SIZE 256
|
||||
#define DSL_MOD_SIZE 256
|
||||
|
||||
@@ -3431,9 +3435,16 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
*/
|
||||
if(write)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
|
||||
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
-
|
||||
+#else
|
||||
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
||||
+#endif
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
switch (ctl->ctl_name)
|
||||
+#else
|
||||
+ switch ((long)ctl->extra2)
|
||||
+#endif
|
||||
{
|
||||
case DEV_DSLMOD:
|
||||
ptr = strpbrk(info, " \t");
|
||||
@@ -3517,14 +3528,29 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
else
|
||||
{
|
||||
len += sprintf(info+len, mod_req);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
|
||||
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
+#else
|
||||
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
||||
+#endif
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ctl_table dslmod_table[] = {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
{DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
||||
+#else
|
||||
+ {
|
||||
+ .procname = "dslmod",
|
||||
+ .data = info,
|
||||
+ .maxlen = DSL_MOD_SIZE,
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = &dslmod_sysctl,
|
||||
+ .extra2 = (void *)DEV_DSLMOD,
|
||||
+ }
|
||||
+#endif
|
||||
,
|
||||
{0}
|
||||
};
|
||||
@@ -3532,7 +3558,16 @@ ctl_table dslmod_table[] = {
|
||||
/* Make sure that /proc/sys/dev is there */
|
||||
ctl_table dslmod_root_table[] = {
|
||||
#ifdef CONFIG_PROC_FS
|
||||
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
{CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
|
||||
+ #else
|
||||
+ {
|
||||
+ .procname = "dev",
|
||||
+ .maxlen = 0,
|
||||
+ .mode = 0555,
|
||||
+ .child = dslmod_table,
|
||||
+ }
|
||||
+ #endif
|
||||
,
|
||||
#endif /* CONFIG_PROC_FS */
|
||||
{0}
|
||||
@@ -0,0 +1,36 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -1867,7 +1867,11 @@ static int __init tn7atm_register (Tn7At
|
||||
|
||||
dgprintf (4, "device %s being registered\n", priv->name);
|
||||
|
||||
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
|
||||
mydev = atm_dev_register (priv->proc_name, &tn7atm_ops, -1, NULL);
|
||||
+ #else
|
||||
+ mydev = atm_dev_register (priv->proc_name, NULL, &tn7atm_ops, -1, NULL);
|
||||
+ #endif
|
||||
|
||||
if (mydev == NULL)
|
||||
{
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -466,14 +466,17 @@ int shim_osLoadFWImage(unsigned char *pt
|
||||
{
|
||||
const struct firmware *fw_entry;
|
||||
size_t size;
|
||||
+ int ret;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
|
||||
dev_set_name(&avsar, "avsar");
|
||||
#endif
|
||||
printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
- if(device_register(&avsar) < 0) {
|
||||
+ dev_set_name(&avsar, "avsar");
|
||||
+ ret = device_register(&avsar);
|
||||
+ if (ret < 0) {
|
||||
printk(KERN_ERR
|
||||
- "avsar: device_register fails\n");
|
||||
+ "avsar: device_register fails, error%i\n", ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -67,7 +67,7 @@
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -48,7 +48,7 @@
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -100,7 +100,7 @@
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
808
package/system/ar7-atm/patches-D7.05.01.00/100-compile_fix.patch
Normal file
808
package/system/ar7-atm/patches-D7.05.01.00/100-compile_fix.patch
Normal file
@@ -0,0 +1,808 @@
|
||||
--- a/cppi_cpaal5.c
|
||||
+++ b/cppi_cpaal5.c
|
||||
@@ -360,7 +360,7 @@ static int halRxReturn(HAL_RECEIVEINFO *
|
||||
{
|
||||
/* malloc failed, add this RCB to Needs Buffer List */
|
||||
TempRcb->FragCount = 1; /*MJH+030417*/
|
||||
- (HAL_RCB *)TempRcb->Eop = TempRcb; /* GSG +030430 */
|
||||
+ TempRcb->Eop = TempRcb; /* GSG +030430 */
|
||||
|
||||
if(HalDev->NeedsCount < MAX_NEEDS) /* +MJH 030410 */
|
||||
{ /* +MJH 030410 */
|
||||
--- a/dsl_hal_api.c
|
||||
+++ b/dsl_hal_api.c
|
||||
@@ -273,15 +273,15 @@
|
||||
* 09/15/07 CPH CQ11466 Added EFM support
|
||||
* 09/27/07 EYin CQ11929: Added NFEC/INP/Lp/Rp reporting for only ADSL2/2+ mode.
|
||||
******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
#ifndef NO_ADV_STATS
|
||||
-#include <dsl_hal_logtable.h>
|
||||
+#include "dsl_hal_logtable.h"
|
||||
#endif
|
||||
|
||||
-#include <dsl_hal_version.h>
|
||||
+#include "dsl_hal_version.h"
|
||||
|
||||
// UR8_MERGE_START CQ11054 Jack Zhang
|
||||
static unsigned int highprecision_selected = 0; //By default we use low precision for backward compt.
|
||||
--- a/dsl_hal_support.c
|
||||
+++ b/dsl_hal_support.c
|
||||
@@ -142,9 +142,9 @@
|
||||
* UR8_MERGE_START_END CQ11922 Tim
|
||||
* 04Sep07 0.14.00 Tim CQ11922: Added support for new scratchram for INP NDR tables
|
||||
*******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
#define NUM_READ_RETRIES 3
|
||||
static unsigned int dslhal_support_adsl2ByteSwap32(unsigned int in32Bits);
|
||||
--- a/dsl_hal_support.h
|
||||
+++ b/dsl_hal_support.h
|
||||
@@ -49,7 +49,7 @@
|
||||
* 04Nov05 0.11.00 CPH Fixed T1413 mode got Zero DS/US rate when DSL_BIT_TMODE is set.
|
||||
*******************************************************************************/
|
||||
|
||||
-#include <dsl_hal_api.h>
|
||||
+#include "dsl_hal_api.h"
|
||||
|
||||
#define virtual2Physical(a) (((int)a)&~0xe0000000)
|
||||
/* External Function Prototype Declarations */
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,18 +1,9 @@
|
||||
-# File: drivers/atm/ti_evm3/Makefile
|
||||
#
|
||||
-# Makefile for the Texas Instruments EVM3 ADSL/ATM driver.
|
||||
+# Makefile for the TIATM device driver.
|
||||
#
|
||||
-#
|
||||
-# Copyright (c) 2000 Texas Instruments Incorporated.
|
||||
-# Jeff Harrell (jharrell@telogy.com)
|
||||
-# Viren Balar (vbalar@ti.com)
|
||||
-# Victor Wells (vwells@telogy.com)
|
||||
-#
|
||||
-include $(TOPDIR)/Rules.make
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
+CONFIG_SANGAM_ATM=m
|
||||
+#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
+tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -66,7 +66,6 @@
|
||||
* 09/18/07 CPH CQ11466 Added EFM Support
|
||||
*********************************************************************************************/
|
||||
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -74,11 +73,14 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
+
|
||||
#include "dsl_hal_api.h"
|
||||
#ifdef AR7_EFM
|
||||
#include "tn7efm.h"
|
||||
@@ -90,6 +92,7 @@
|
||||
#include "dsl_hal_register.h"
|
||||
|
||||
#ifdef MODULE
|
||||
+MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
|
||||
MODULE_AUTHOR ("Zhicheng Tang");
|
||||
#endif
|
||||
@@ -108,9 +111,9 @@ MODULE_AUTHOR ("Zhicheng Tang");
|
||||
|
||||
/*end of externs */
|
||||
|
||||
-#ifndef TI_STATIC_ALLOCATIONS
|
||||
-#define TI_STATIC_ALLOCATIONS
|
||||
-#endif
|
||||
+//#ifndef TI_STATIC_ALLOCATIONS
|
||||
+//#define TI_STATIC_ALLOCATIONS
|
||||
+//#endif
|
||||
|
||||
#define tn7atm_kfree_skb(x) dev_kfree_skb(x)
|
||||
|
||||
@@ -135,7 +138,7 @@ static int EnableQoS = FALSE;
|
||||
/* prototypes */
|
||||
static int tn7atm_set_can_support_adsl2 (int can);
|
||||
|
||||
-static int tn7atm_open (struct atm_vcc *vcc, short vpi, int vci);
|
||||
+static int tn7atm_open (struct atm_vcc *vcc);
|
||||
|
||||
void tn7atm_close (struct atm_vcc *vcc);
|
||||
|
||||
@@ -298,13 +301,12 @@ static const struct atmdev_ops tn7atm_op
|
||||
getsockopt: NULL,
|
||||
setsockopt: NULL,
|
||||
send: tn7atm_send,
|
||||
- sg_send: NULL,
|
||||
phy_put: NULL,
|
||||
phy_get: NULL,
|
||||
change_qos: tn7atm_change_qos,
|
||||
};
|
||||
|
||||
-const char drv_proc_root_folder[] = "avalanche/";
|
||||
+const char drv_proc_root_folder[] = "avalanche";
|
||||
static struct proc_dir_entry *root_proc_dir_entry = NULL;
|
||||
#define DRV_PROC_MODE 0644
|
||||
static int proc_root_already_exists = TRUE;
|
||||
@@ -626,56 +628,6 @@ static int turbodsl_check_priority_type(
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*
|
||||
- * Function: int tn7atm_walk_vccs(struct atm_dev *dev, short *vcc, int *vci)
|
||||
- *
|
||||
- * Description: retrieve VPI/VCI for connection
|
||||
- *
|
||||
- *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static int tn7atm_walk_vccs (struct atm_vcc *vcc, short *vpi, int *vci)
|
||||
-{
|
||||
- struct atm_vcc *walk;
|
||||
-
|
||||
- /*
|
||||
- * find a free VPI
|
||||
- */
|
||||
- if (*vpi == ATM_VPI_ANY)
|
||||
- {
|
||||
-
|
||||
- for (*vpi = 0, walk = vcc->dev->vccs; walk; walk = walk->next)
|
||||
- {
|
||||
-
|
||||
- if ((walk->vci == *vci) && (walk->vpi == *vpi))
|
||||
- {
|
||||
- (*vpi)++;
|
||||
- walk = vcc->dev->vccs;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * find a free VCI
|
||||
- */
|
||||
- if (*vci == ATM_VCI_ANY)
|
||||
- {
|
||||
-
|
||||
- for (*vci = ATM_NOT_RSV_VCI, walk = vcc->dev->vccs; walk;
|
||||
- walk = walk->next)
|
||||
- {
|
||||
-
|
||||
- if ((walk->vpi = *vpi) && (walk->vci == *vci))
|
||||
- {
|
||||
- *vci = walk->vci + 1;
|
||||
- walk = vcc->dev->vccs;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- *
|
||||
* Function: int tn7atm_sar_irq(void)
|
||||
*
|
||||
* Description: tnetd73xx SAR interrupt.
|
||||
@@ -766,7 +718,7 @@ static int __init tn7atm_irq_request (st
|
||||
|
||||
priv->sar_irq = LNXINTNUM (ATM_SAR_INT); /* Interrupt line # */
|
||||
|
||||
- if (request_irq (priv->sar_irq, tn7atm_sar_irq, SA_INTERRUPT, "SAR ", dev))
|
||||
+ if (request_irq (priv->sar_irq, tn7atm_sar_irq, IRQF_DISABLED, "SAR ", dev))
|
||||
printk ("Could not register tn7atm_sar_irq\n");
|
||||
|
||||
/*
|
||||
@@ -777,8 +729,8 @@ static int __init tn7atm_irq_request (st
|
||||
{
|
||||
def_sar_inter_pace = os_atoi (ptr);
|
||||
}
|
||||
- avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
- def_sar_inter_pace);
|
||||
+ /* avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
+ def_sar_inter_pace); */
|
||||
|
||||
|
||||
#ifdef AR7_EFM
|
||||
@@ -790,7 +742,7 @@ static int __init tn7atm_irq_request (st
|
||||
* Reigster Receive interrupt A
|
||||
*/
|
||||
priv->dsl_irq = LNXINTNUM (ATM_DSL_INT); /* Interrupt line # */
|
||||
- if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, SA_INTERRUPT, "DSL ", dev))
|
||||
+ if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, IRQF_DISABLED, "DSL ", dev))
|
||||
printk ("Could not register tn7atm_dsl_irq\n");
|
||||
|
||||
/***** VRB Tasklet Mode ****/
|
||||
@@ -958,11 +910,15 @@ static int __init tn7atm_get_ESI (struct
|
||||
#define ATM_VBR_RT 5
|
||||
#endif
|
||||
|
||||
-int tn7atm_open (struct atm_vcc *vcc, short vpi, int vci)
|
||||
+int tn7atm_open (struct atm_vcc *vcc)
|
||||
{
|
||||
tn7atm_activate_vc_parm_t tn7atm_activate_vc_parm;
|
||||
int rc;
|
||||
//int flags;
|
||||
+ tn7atm_activate_vc_parm.pcr = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.scr = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.mbs = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.cdvt = 10000;
|
||||
|
||||
dgprintf(1, "tn7atm_open()\n");
|
||||
|
||||
@@ -974,24 +930,18 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
return -1;
|
||||
}
|
||||
|
||||
- MOD_INC_USE_COUNT;
|
||||
+// MOD_INC_USE_COUNT;
|
||||
|
||||
- /* find a free VPI/VCI */
|
||||
- tn7atm_walk_vccs(vcc, &vpi, &vci);
|
||||
-
|
||||
- vcc->vpi = vpi;
|
||||
- vcc->vci = vci;
|
||||
-
|
||||
- if ((vci == ATM_VCI_UNSPEC) || (vpi == ATM_VCI_UNSPEC))
|
||||
+ if ((vcc->vci == ATM_VCI_UNSPEC) || (vcc->vpi == ATM_VCI_UNSPEC))
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
- tn7atm_activate_vc_parm.vpi = vpi;
|
||||
- tn7atm_activate_vc_parm.vci = vci;
|
||||
+ tn7atm_activate_vc_parm.vpi = vcc->vpi;
|
||||
+ tn7atm_activate_vc_parm.vci = vcc->vci;
|
||||
|
||||
- if ((vpi == CLEAR_EOC_VPI) && (vci == CLEAR_EOC_VCI))
|
||||
+ if ((vcc->vpi == CLEAR_EOC_VPI) && (vcc->vci == CLEAR_EOC_VCI))
|
||||
{
|
||||
/* always use (max_dma_chan+1) for clear eoc */
|
||||
tn7atm_activate_vc_parm.chan = EOC_DMA_CHAN;
|
||||
@@ -999,7 +949,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
/* check to see whether clear eoc is opened or not */
|
||||
if (tn7atm_activate_vc_parm.priv->lut[tn7atm_activate_vc_parm.chan].inuse)
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
printk("tn7atm_open: Clear EOC channel (dmachan=%d) already in use.\n", tn7atm_activate_vc_parm.chan);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1008,7 +958,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
if (rc)
|
||||
{
|
||||
printk("tn7atm_open: failed to setup clear_eoc\n");
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
return -EBUSY;
|
||||
}
|
||||
tn7atm_set_lut(tn7atm_activate_vc_parm.priv,vcc, tn7atm_activate_vc_parm.chan);
|
||||
@@ -1017,17 +967,17 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
}
|
||||
else /* PVC channel setup */
|
||||
{
|
||||
- if ((vpi==REMOTE_MGMT_VPI) && (vci==REMOTE_MGMT_VCI))
|
||||
+ if ((vcc->vpi==REMOTE_MGMT_VPI) && (vcc->vci==REMOTE_MGMT_VCI))
|
||||
{
|
||||
tn7atm_activate_vc_parm.chan = 14; /* always use chan 14 for MII PVC-base romote mgmt */
|
||||
}
|
||||
else
|
||||
{
|
||||
- rc = tn7atm_lut_find(vpi, vci);
|
||||
+ rc = tn7atm_lut_find(vcc->vpi, vcc->vci);
|
||||
/* check to see whether PVC is opened or not */
|
||||
if(ATM_NO_DMA_CHAN != rc)
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
printk("PVC already opened. dmachan = %d\n", rc);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1059,6 +1009,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
tn7atm_activate_vc_parm.priority = 2;
|
||||
break;
|
||||
|
||||
+#if 0
|
||||
case ATM_VBR: /* Variable Bit Rate-Non RealTime*/
|
||||
tn7atm_activate_vc_parm.qos = 1;
|
||||
tn7atm_activate_vc_parm.priority = 1;
|
||||
@@ -1080,6 +1031,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
tn7atm_activate_vc_parm.mbs = vcc->qos.txtp.max_pcr;
|
||||
tn7atm_activate_vc_parm.cdvt = vcc->qos.txtp.max_cdv;
|
||||
break;
|
||||
+#endif
|
||||
|
||||
default:
|
||||
tn7atm_activate_vc_parm.qos = 2;
|
||||
@@ -1107,7 +1059,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
|
||||
if (rc < 0)
|
||||
{
|
||||
printk("failed to activate hw channel\n");
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
tn7atm_lut_clear(vcc, tn7atm_activate_vc_parm.chan);
|
||||
//spin_unlock_irqrestore(&chan_init_lock, flags);
|
||||
return -EBUSY;
|
||||
@@ -1197,7 +1149,7 @@ void tn7atm_close (struct atm_vcc *vcc)
|
||||
tn7atm_lut_clear (vcc, dmachan);
|
||||
//spin_unlock_irqrestore (&closeLock, closeFlag);
|
||||
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
|
||||
dgprintf (1, "Leave tn7atm_close\n");
|
||||
}
|
||||
@@ -1630,8 +1582,7 @@ int tn7atm_receive (void *os_dev, int ch
|
||||
* firewall is on */
|
||||
|
||||
dgprintf (3, "pushing the skb...\n");
|
||||
-
|
||||
- skb->stamp = vcc->timestamp = xtime;
|
||||
+ __net_timestamp(skb);
|
||||
|
||||
xdump ((unsigned char *) skb->data, skb->len, 5);
|
||||
|
||||
@@ -1854,8 +1805,7 @@ printk("!!!free atm irq: tn7atm_exit\n")
|
||||
|
||||
kfree (dev->dev_data);
|
||||
|
||||
- // atm_dev_deregister (dev);
|
||||
- shutdown_atm_dev (dev);
|
||||
+ atm_dev_deregister (dev);
|
||||
|
||||
/*
|
||||
* remove proc entries
|
||||
@@ -2086,9 +2036,6 @@ static int __init tn7atm_detect (void)
|
||||
* Set up proc entry for atm stats
|
||||
*/
|
||||
|
||||
- if (tn7atm_xlate_proc_name
|
||||
- (drv_proc_root_folder, &root_proc_dir_entry, &residual))
|
||||
- {
|
||||
printk ("Creating new root folder %s in the proc for the driver stats \n",
|
||||
drv_proc_root_folder);
|
||||
root_proc_dir_entry = proc_mkdir (drv_proc_root_folder, NULL);
|
||||
@@ -2098,7 +2045,6 @@ static int __init tn7atm_detect (void)
|
||||
return -ENOMEM;
|
||||
}
|
||||
proc_root_already_exists = FALSE;
|
||||
- }
|
||||
|
||||
|
||||
/*
|
||||
@@ -2731,7 +2677,5 @@ int tn7atm_proc_turbodsl_write(struct fi
|
||||
return count;
|
||||
}
|
||||
|
||||
-#ifdef MODULE
|
||||
module_init (tn7atm_detect);
|
||||
module_exit (tn7atm_exit);
|
||||
-#endif /* MODULE */
|
||||
--- a/tn7atm.h
|
||||
+++ b/tn7atm.h
|
||||
@@ -20,7 +20,8 @@
|
||||
//#include "mips_support.h"
|
||||
#include <linux/list.h>
|
||||
|
||||
-#include <linux/config.h>
|
||||
+#define MIPS_EXCEPTION_OFFSET 8
|
||||
+#define LNXINTNUM(x)((x) + MIPS_EXCEPTION_OFFSET)
|
||||
|
||||
#ifdef CONFIG_MODVERSIONS
|
||||
#include <linux/modversions.h>
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -102,7 +102,6 @@
|
||||
* UR8_MERGE_END CQ11813
|
||||
* 09/18/07 CPH CQ11466: Added EFM support.
|
||||
*********************************************************************************************/
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -110,8 +109,6 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
@@ -119,6 +116,12 @@
|
||||
#include <linux/timer.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
+#include <linux/firmware.h>
|
||||
+
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
+
|
||||
/* Modules specific header files */
|
||||
#ifdef AR7_EFM
|
||||
#include "tn7efm.h"
|
||||
@@ -185,7 +188,7 @@ led_reg_t ledreg[2];
|
||||
static struct led_funcs ledreg[2];
|
||||
#endif
|
||||
|
||||
-#define DEV_DSLMOD 1
|
||||
+#define DEV_DSLMOD CTL_UNNUMBERED
|
||||
#define MAX_STR_SIZE 256
|
||||
#define DSL_MOD_SIZE 256
|
||||
|
||||
@@ -316,7 +319,7 @@ static PITIDSLHW_T pIhw;
|
||||
static volatile int bshutdown;
|
||||
static char info[MAX_STR_SIZE];
|
||||
/* Used for DSL Polling enable */
|
||||
-static DECLARE_MUTEX_LOCKED (adsl_sem_overlay);
|
||||
+static struct semaphore adsl_sem_overlay;
|
||||
|
||||
//kthread_t overlay_thread;
|
||||
/* end of module wide declars */
|
||||
@@ -369,6 +372,14 @@ int os_atoih (const char *pstr)
|
||||
return val;
|
||||
}
|
||||
|
||||
+int avalanche_request_intr_pacing(int irq_nr, unsigned int blk_num,
|
||||
+ unsigned int pace_value)
|
||||
+{
|
||||
+ printk("avalanche_request_pacing(%d, %u, %u); // not implemented\n", irq_nr, blk_num, pace_value);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
int os_atoi(const char *pStr)
|
||||
{
|
||||
int MulNeg = (*pStr == '-' ? -1 : 1);
|
||||
@@ -405,39 +416,6 @@ void dprintf (int uDbgLevel, char *szFmt
|
||||
#endif
|
||||
}
|
||||
|
||||
-int strcmp(const char *s1, const char *s2)
|
||||
-{
|
||||
-
|
||||
- int size = strlen(s1);
|
||||
-
|
||||
- return(strncmp(s1, s2, size));
|
||||
-}
|
||||
-
|
||||
-int strncmp(const char *s1, const char *s2, size_t size)
|
||||
-{
|
||||
- int i = 0;
|
||||
- int max_size = (int)size;
|
||||
-
|
||||
- while((s1[i] != 0) && i < max_size)
|
||||
- {
|
||||
- if(s2[i] == 0)
|
||||
- {
|
||||
- return -1;
|
||||
- }
|
||||
- if(s1[i] != s2[i])
|
||||
- {
|
||||
- return 1;
|
||||
- }
|
||||
- i++;
|
||||
- }
|
||||
- if(s2[i] != 0)
|
||||
- {
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// * UR8_MERGE_START CQ10640 Jack Zhang
|
||||
int tn7dsl_dump_dsp_memory(char *input_str) //cph99
|
||||
{
|
||||
@@ -487,144 +465,78 @@ unsigned int shim_osGetCpuFrequency(void
|
||||
return CpuFrequency;
|
||||
}
|
||||
|
||||
-int shim_osLoadFWImage(unsigned char *ptr)
|
||||
+static void avsar_release(struct device *dev)
|
||||
{
|
||||
- unsigned int bytesRead;
|
||||
- mm_segment_t oldfs;
|
||||
- static struct file *filp;
|
||||
- unsigned int imageLength=0x5ffff;
|
||||
-
|
||||
-#ifdef AR7_EFM
|
||||
- int dp_alt=0;
|
||||
- char *ptr1=NULL;
|
||||
-#ifdef EFM_DEBUG
|
||||
- char *ptr2=NULL;
|
||||
- char *ptr3=NULL;
|
||||
-#endif
|
||||
-
|
||||
- if ((ptr1 = prom_getenv("DSL_DP_ALT")) != NULL)
|
||||
- {
|
||||
- dp_alt=os_atoi(ptr1);
|
||||
- if (dp_alt==1)
|
||||
- {
|
||||
- filp = filp_open(DSP_DEBUG_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if (!IS_ERR(filp))
|
||||
- {
|
||||
- strcpy (DSP_FIRMWARE_PATH, DSP_DEBUG_FIRMWARE_PATH);
|
||||
- }
|
||||
- }
|
||||
-#ifdef EFM_DEBUG
|
||||
- else if (dp_alt==2)
|
||||
- {
|
||||
- if ((ptr2 = prom_getenv("DSL_DP")) != NULL)
|
||||
- {
|
||||
- if (!strncmp(ptr2, "DSL_DP", 6))
|
||||
- { // indirect naming
|
||||
- if ((ptr3 = prom_getenv(ptr2)) != NULL)
|
||||
- filp = filp_open(ptr3,00,O_RDONLY);
|
||||
- ptr2 = ptr3; // redirect ptr2 to ptr3
|
||||
- }
|
||||
-
|
||||
- filp = filp_open(ptr2,00,O_RDONLY);
|
||||
- if (!IS_ERR(filp))
|
||||
- {
|
||||
- strcpy (DSP_FIRMWARE_PATH, ptr2);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- printk("dp_path=%s\n", DSP_FIRMWARE_PATH);
|
||||
-#endif
|
||||
- }
|
||||
-#endif
|
||||
-
|
||||
- dgprintf(4, "tn7dsl_read_dsp()\n");
|
||||
-
|
||||
- dgprintf(4,"open file %s\n", DSP_FIRMWARE_PATH);
|
||||
-
|
||||
- filp=filp_open(DSP_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if(IS_ERR(filp))
|
||||
- {
|
||||
- printk("Failed: Could not open DSP binary file\n");
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- if (filp->f_dentry != NULL)
|
||||
- {
|
||||
- if (filp->f_dentry->d_inode != NULL)
|
||||
- {
|
||||
- printk ("DSP binary filesize = %d bytes\n",
|
||||
- (int) filp->f_dentry->d_inode->i_size);
|
||||
- imageLength = (unsigned int)filp->f_dentry->d_inode->i_size + 0x200;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (filp->f_op->read==NULL)
|
||||
- return -1; /* File(system) doesn't allow reads */
|
||||
-
|
||||
- /*
|
||||
- * Disable parameter checking
|
||||
- */
|
||||
- oldfs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
-
|
||||
- /*
|
||||
- * Now read bytes from postion "StartPos"
|
||||
- */
|
||||
- filp->f_pos = 0;
|
||||
-
|
||||
- bytesRead = filp->f_op->read(filp,ptr,imageLength,&filp->f_pos);
|
||||
-
|
||||
- dgprintf(4,"file length = %d\n", bytesRead);
|
||||
-
|
||||
- set_fs(oldfs);
|
||||
-
|
||||
- /*
|
||||
- * Close the file
|
||||
- */
|
||||
- fput(filp);
|
||||
-
|
||||
- return bytesRead;
|
||||
+ printk(KERN_DEBUG "avsar firmware released\n");
|
||||
}
|
||||
|
||||
+static struct device avsar = {
|
||||
+ .bus_id = "vlynq",
|
||||
+ .release = avsar_release,
|
||||
+};
|
||||
|
||||
-unsigned int shim_read_overlay_page (void *ptr, unsigned int secOffset,
|
||||
- unsigned int secLength)
|
||||
+int shim_osLoadFWImage(unsigned char *ptr)
|
||||
{
|
||||
- unsigned int bytesRead;
|
||||
- mm_segment_t oldfs;
|
||||
- struct file *filp;
|
||||
-
|
||||
- dgprintf(4,"shim_read_overlay_page\n");
|
||||
- //dgprintf(4,"sec offset=%d, sec length =%d\n", secOffset, secLength);
|
||||
+ const struct firmware *fw_entry;
|
||||
+ size_t size;
|
||||
|
||||
- filp=filp_open(DSP_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if(filp ==NULL)
|
||||
- {
|
||||
- printk("Failed: Could not open DSP binary file\n");
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- if (filp->f_op->read==NULL)
|
||||
- return -1; /* File(system) doesn't allow reads */
|
||||
-
|
||||
- /*
|
||||
- * Now read bytes from postion "StartPos"
|
||||
- */
|
||||
+ printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
+ if(device_register(&avsar) < 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: device_register fails\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (request_firmware(&fw_entry, "ar0700xx.bin", &avsar)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware not available\n");
|
||||
+ device_unregister(&avsar);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ size = fw_entry->size;
|
||||
+ device_unregister(&avsar);
|
||||
+ if (size > 0x6ffff) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware too big (%d bytes)\n", size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ memcpy(ptr, fw_entry->data, size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return size;
|
||||
+}
|
||||
+
|
||||
+unsigned int shim_read_overlay_page(void *ptr, unsigned int secOffset, unsigned int secLength)
|
||||
+{
|
||||
+ const struct firmware *fw_entry;
|
||||
+
|
||||
+ printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
+ if (device_register(&avsar) < 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: device_register fails\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (request_firmware(&fw_entry, "ar0700xx.bin", &avsar)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware not available\n");
|
||||
+ device_unregister(&avsar);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ device_unregister(&avsar);
|
||||
+ if (fw_entry->size > secLength) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware too big (%d bytes)\n", fw_entry->size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ memcpy(ptr + secOffset, fw_entry->data, secLength);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return secLength;
|
||||
+}
|
||||
|
||||
- if(filp->f_op->llseek)
|
||||
- filp->f_op->llseek(filp,secOffset, 0);
|
||||
- oldfs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
- filp->f_pos = secOffset;
|
||||
- bytesRead = filp->f_op->read(filp,ptr,secLength,&filp->f_pos);
|
||||
|
||||
- set_fs(oldfs);
|
||||
- /*
|
||||
- * Close the file
|
||||
- */
|
||||
- fput(filp);
|
||||
- return bytesRead;
|
||||
-}
|
||||
|
||||
int shim_osLoadDebugFWImage(unsigned char *ptr)
|
||||
{
|
||||
@@ -3287,6 +3199,7 @@ int tn7dsl_init(void *priv)
|
||||
int high_precision_selected = 0;
|
||||
// UR8_MERGE_END CQ11054*
|
||||
|
||||
+ sema_init(&adsl_sem_overlay, 0);
|
||||
/*
|
||||
* start dsl
|
||||
*/
|
||||
@@ -3665,7 +3578,7 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
*/
|
||||
if(write)
|
||||
{
|
||||
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
|
||||
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
|
||||
switch (ctl->ctl_name)
|
||||
{
|
||||
@@ -3751,14 +3664,14 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
else
|
||||
{
|
||||
len += sprintf(info+len, mod_req);
|
||||
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
|
||||
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ctl_table dslmod_table[] = {
|
||||
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, &dslmod_sysctl}
|
||||
+ {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
||||
,
|
||||
{0}
|
||||
};
|
||||
@@ -3781,8 +3694,7 @@ void tn7dsl_dslmod_sysctl_register(void)
|
||||
if (initialized == 1)
|
||||
return;
|
||||
|
||||
- dslmod_sysctl_header = register_sysctl_table(dslmod_root_table, 1);
|
||||
- dslmod_root_table->child->de->owner = THIS_MODULE;
|
||||
+ dslmod_sysctl_header = register_sysctl_table(dslmod_root_table);
|
||||
|
||||
/*
|
||||
* set the defaults
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -43,7 +43,6 @@
|
||||
* 09/18/07 CPH CQ11466: Added EFM support.
|
||||
*******************************************************************************/
|
||||
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -51,12 +50,13 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
|
||||
#define _CPHAL_AAL5
|
||||
#define _CPHAL_SAR
|
||||
@@ -0,0 +1,37 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -633,7 +633,7 @@ static int turbodsl_check_priority_type(
|
||||
* Description: tnetd73xx SAR interrupt.
|
||||
*
|
||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static void tn7atm_sar_irq (int irq, void *voiddev, struct pt_regs *regs)
|
||||
+static irqreturn_t tn7atm_sar_irq (int irq, void *voiddev)
|
||||
{
|
||||
struct atm_dev *atmdev;
|
||||
Tn7AtmPrivate *priv;
|
||||
@@ -660,6 +660,7 @@ static void tn7atm_sar_irq (int irq, voi
|
||||
#ifdef TIATM_INST_SUPP
|
||||
psp_trace_par (ATM_DRV_SAR_ISR_EXIT, retval);
|
||||
#endif
|
||||
+ return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -669,7 +670,7 @@ static void tn7atm_sar_irq (int irq, voi
|
||||
* Description: tnetd73xx DSL interrupt.
|
||||
*
|
||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static void tn7atm_dsl_irq (int irq, void *voiddev, struct pt_regs *regs)
|
||||
+static irqreturn_t tn7atm_dsl_irq (int irq, void *voiddev)
|
||||
{
|
||||
struct atm_dev *atmdev;
|
||||
Tn7AtmPrivate *priv;
|
||||
@@ -691,6 +692,8 @@ static void tn7atm_dsl_irq (int irq, voi
|
||||
#ifdef TIATM_INST_SUPP
|
||||
psp_trace_par (ATM_DRV_DSL_ISR_EXIT, retval);
|
||||
#endif
|
||||
+
|
||||
+ return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/tn7api.h
|
||||
+++ b/tn7api.h
|
||||
@@ -118,7 +118,7 @@ int tn7dsl_proc_dbgmsg_write(struct file
|
||||
int tn7dsl_proc_dbgmsg_read(char* buf, char **start, off_t offset, int count,int *eof, void *data);
|
||||
#endif
|
||||
//UR8_MERGE_END CQ11813
|
||||
-inline int tn7dsl_handle_interrupt(void);
|
||||
+int tn7dsl_handle_interrupt(void);
|
||||
|
||||
void tn7dsl_dslmod_sysctl_register(void);
|
||||
void tn7dsl_dslmod_sysctl_unregister(void);
|
||||
@@ -0,0 +1,44 @@
|
||||
--- a/dsl_hal_advcfg.c
|
||||
+++ b/dsl_hal_advcfg.c
|
||||
@@ -36,9 +36,9 @@
|
||||
* 05Jul05 0.00.09 CPH CQ9775: Change dslhal_advcfg_configDsTones input parameters & support for ADSL2+
|
||||
* 24Jul05 0.00.10 CPH Fixed comments in dslhal_advcfg_configDsTones function header
|
||||
*******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/* ACT API functions -- To be moved into their own independent module --RamP */
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
CONFIG_SANGAM_ATM=m
|
||||
#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
-EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
-tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o
|
||||
+tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o dsl_hal_advcfg.o
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -3053,6 +3053,14 @@ static int tn7dsl_set_dsl(void)
|
||||
dslhal_api_setRateAdaptFlag(pIhw, os_atoi(ptr));
|
||||
}
|
||||
|
||||
+ // set powercutback
|
||||
+ ptr = NULL;
|
||||
+ ptr = prom_getenv("powercutback");
|
||||
+ if(ptr)
|
||||
+ {
|
||||
+ dslhal_advcfg_onOffPcb(pIhw, os_atoi(ptr));
|
||||
+ }
|
||||
+
|
||||
// trellis
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("trellis");
|
||||
@@ -0,0 +1,16 @@
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -125,10 +125,10 @@ enum
|
||||
//09/05/07: cph, move to tn7atm.h
|
||||
// #define RESERVED_OAM_CHANNEL 15
|
||||
|
||||
-#define AAL5_PARM "id=aal5, base = 0x03000000, offset = 0, int_line=15, ch0=[RxBufSize=1522; RxNumBuffers = 32; RxServiceMax = 50; TxServiceMax=50; TxNumBuffers=32; CpcsUU=0x5aa5; TxVc_CellRate=0x3000; TxVc_AtmHeader=0x00000640]"
|
||||
-#define SAR_PARM "id=sar,base = 0x03000000, reset_bit = 9, offset = 0; UniNni = 0, PdspEnable = 1"
|
||||
+#define CH0_PARM "RxBufSize=1522, RxNumBuffers=32, RxServiceMax=50, TxServiceMax=50, TxNumBuffers=32, CpcsUU=0x5aa5, TxVc_CellRate=0x3000, TxVc_AtmHeader=0x00000640"
|
||||
+#define AAL5_PARM "id=aal5, base=0x03000000, offset=0, int_line=15, ch0=[" CH0_PARM "]"
|
||||
+#define SAR_PARM "id=sar, base=0x03000000, reset_bit=9, offset=0; UniNni=0, PdspEnable=1, Debug=0xFFFFFFFF"
|
||||
#define RESET_PARM "id=ResetControl, base=0xA8611600"
|
||||
-#define CH0_PARM "RxBufSize=1522, RxNumBuffers = 32, RxServiceMax = 50, TxServiceMax=50, TxNumBuffers=32, CpcsUU=0x5aa5, TxVc_CellRate=0x3000, TxVc_AtmHeader=0x00000640"
|
||||
|
||||
#define MAX_PVC_TABLE_ENTRY 16
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
CONFIG_SANGAM_ATM=m
|
||||
#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
-EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
+#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL -DCPATM_TASKLET_MODE
|
||||
obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o dsl_hal_advcfg.o
|
||||
@@ -0,0 +1,675 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -95,6 +95,146 @@
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
|
||||
MODULE_AUTHOR ("Zhicheng Tang");
|
||||
+
|
||||
+int mp_sar_ipacemax = -1;
|
||||
+module_param_named(ipacemax, mp_sar_ipacemax, int, 0);
|
||||
+MODULE_PARM_DESC(ipacemax, "Interrupt pacing");
|
||||
+
|
||||
+char *mp_macc = NULL;
|
||||
+module_param_named(macc, mp_macc, charp, 0);
|
||||
+MODULE_PARM_DESC(macc, "MAC address");
|
||||
+
|
||||
+int mp_dsp_noboost = -1;
|
||||
+module_param_named(dsp_noboost, mp_dsp_noboost, int, 0);
|
||||
+MODULE_PARM_DESC(dsp_noboost, "Suppress DSP frequency boost");
|
||||
+
|
||||
+int mp_dsp_freq = -1;
|
||||
+module_param_named(dsp_freq, mp_dsp_freq, int, 0);
|
||||
+MODULE_PARM_DESC(dsp_freq, "Frequency to boost the DSP to");
|
||||
+
|
||||
+char *mp_featctl0 = NULL;
|
||||
+module_param_named(featctl0, mp_featctl0, charp, 0);
|
||||
+MODULE_PARM_DESC(featctl0, "DSL feature control 0");
|
||||
+
|
||||
+char *mp_featctl1 = NULL;
|
||||
+module_param_named(featctl1, mp_featctl1, charp, 0);
|
||||
+MODULE_PARM_DESC(featctl1, "DSL feature control 1");
|
||||
+
|
||||
+char *mp_phyctl0 = NULL;
|
||||
+module_param_named(phyctl0, mp_phyctl0, charp, 0);
|
||||
+MODULE_PARM_DESC(phyctl0, "DSL PHY control 0");
|
||||
+
|
||||
+char *mp_phyctl1 = NULL;
|
||||
+module_param_named(phyctl1, mp_phyctl1, charp, 0);
|
||||
+MODULE_PARM_DESC(phyctl1, "DSL PHY control 1");
|
||||
+
|
||||
+int mp_turbodsl = -1;
|
||||
+module_param_named(turbodsl, mp_turbodsl, int, 0);
|
||||
+MODULE_PARM_DESC(turbodsl, "Enable TurboDSL");
|
||||
+
|
||||
+int mp_sar_rxbuf = -1;
|
||||
+module_param_named(sar_rxbuf, mp_sar_rxbuf, int, 0);
|
||||
+MODULE_PARM_DESC(sar_rxbuf, "SAR RxBuf size");
|
||||
+
|
||||
+int mp_sar_rxmax = -1;
|
||||
+module_param_named(sar_rxmax, mp_sar_rxmax, int, 0);
|
||||
+MODULE_PARM_DESC(sar_rxmax, "SAR RxMax size");
|
||||
+
|
||||
+int mp_sar_txbuf = -1;
|
||||
+module_param_named(sar_txbuf, mp_sar_txbuf, int, 0);
|
||||
+MODULE_PARM_DESC(sar_txbuf, "SAR TxBuf size");
|
||||
+
|
||||
+int mp_sar_txmax = -1;
|
||||
+module_param_named(sar_txmax, mp_sar_txmax, int, 0);
|
||||
+MODULE_PARM_DESC(sar_txmax, "SAR TxMax size");
|
||||
+
|
||||
+char *mp_modulation = NULL;
|
||||
+module_param_named(modulation, mp_modulation, charp, 0);
|
||||
+MODULE_PARM_DESC(modulation, "Modulation");
|
||||
+
|
||||
+int mp_fine_gain_control = -1;
|
||||
+module_param_named(fine_gain_control, mp_fine_gain_control, int, 0);
|
||||
+MODULE_PARM_DESC(fine_gain_control, "Fine gain control");
|
||||
+
|
||||
+int mp_fine_gain_value = -1;
|
||||
+module_param_named(fine_gain_value, mp_fine_gain_value, int, 0);
|
||||
+MODULE_PARM_DESC(fine_gain_value, "Fine gain value");
|
||||
+
|
||||
+int mp_enable_margin_retrain = -1;
|
||||
+module_param_named(enable_margin_retrain, mp_enable_margin_retrain, int, 0);
|
||||
+MODULE_PARM_DESC(enable_margin_retrain, "Enable margin retrain");
|
||||
+
|
||||
+int mp_margin_threshold = -1;
|
||||
+module_param_named(margin_threshold, mp_margin_threshold, int, 0);
|
||||
+MODULE_PARM_DESC(margin_threshold, "Margin retrain treshold");
|
||||
+
|
||||
+int mp_enable_rate_adapt = -1;
|
||||
+module_param_named(enable_rate_adapt, mp_enable_rate_adapt, int, 0);
|
||||
+MODULE_PARM_DESC(enable_rate_adapt, "Enable rate adaption");
|
||||
+
|
||||
+int mp_powercutback = -1;
|
||||
+module_param_named(powercutback, mp_powercutback, int, 0);
|
||||
+MODULE_PARM_DESC(powercutback, "Enable / disable powercutback");
|
||||
+
|
||||
+int mp_trellis = -1;
|
||||
+module_param_named(trellis, mp_trellis, int, 0);
|
||||
+MODULE_PARM_DESC(trellis, "Enable / disable trellis coding");
|
||||
+
|
||||
+int mp_bitswap = -1;
|
||||
+module_param_named(bitswap, mp_bitswap, int, 0);
|
||||
+MODULE_PARM_DESC(bitswap, "Enable / disable bitswap");
|
||||
+
|
||||
+int mp_maximum_bits_per_carrier = -1;
|
||||
+module_param_named(maximum_bits_per_carrier, mp_maximum_bits_per_carrier, int, 0);
|
||||
+MODULE_PARM_DESC(maximum_bits_per_carrier, "Maximum bits per carrier");
|
||||
+
|
||||
+int mp_maximum_interleave_depth = -1;
|
||||
+module_param_named(maximum_interleave_depth, mp_maximum_interleave_depth, int, 0);
|
||||
+MODULE_PARM_DESC(maximum_interleave_depth, "Maximum interleave depth");
|
||||
+
|
||||
+int mp_pair_selection = -1;
|
||||
+module_param_named(pair_selection, mp_pair_selection, int, 0);
|
||||
+MODULE_PARM_DESC(pair_selection, "Pair selection");
|
||||
+
|
||||
+int mp_dgas_polarity = -1;
|
||||
+module_param_named(dgas_polarity, mp_dgas_polarity, int, 0);
|
||||
+MODULE_PARM_DESC(dgas_polarity, "DGAS polarity");
|
||||
+
|
||||
+int mp_los_alarm = -1;
|
||||
+module_param_named(los_alarm, mp_los_alarm, int, 0);
|
||||
+MODULE_PARM_DESC(los_alarm, "LOS alarm");
|
||||
+
|
||||
+char *mp_eoc_vendor_id = NULL;
|
||||
+module_param_named(eoc_vendor_id, mp_eoc_vendor_id, charp, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_id, "EOC vendor id");
|
||||
+
|
||||
+int mp_eoc_vendor_revision = -1;
|
||||
+module_param_named(eoc_vendor_revision, mp_eoc_vendor_revision, int, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_revision, "EOC vendor revision");
|
||||
+
|
||||
+char *mp_eoc_vendor_serialnum = NULL;
|
||||
+module_param_named(eoc_vendor_serialnum, mp_eoc_vendor_serialnum, charp, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_serialnum, "EOC vendor serial number");
|
||||
+
|
||||
+char *mp_invntry_vernum = NULL;
|
||||
+module_param_named(invntry_vernum, mp_invntry_vernum, charp, 0);
|
||||
+MODULE_PARM_DESC(invntry_vernum, "Inventory revision number");
|
||||
+
|
||||
+int mp_dsl_bit_tmode = -1;
|
||||
+module_param_named(dsl_bit_tmode, mp_dsl_bit_tmode, int, 0);
|
||||
+MODULE_PARM_DESC(dsl_bit_tmode, "DSL bit training mode");
|
||||
+
|
||||
+int mp_high_precision = -1;
|
||||
+module_param_named(high_precision, mp_high_precision, int, 0);
|
||||
+MODULE_PARM_DESC(high_precision, "High precision");
|
||||
+
|
||||
+int mp_autopvc_enable = -1;
|
||||
+module_param_named(autopvc_enable, mp_autopvc_enable, int, 0);
|
||||
+MODULE_PARM_DESC(autopvc_enable, "Enable / disable automatic PVC");
|
||||
+
|
||||
+int mp_oam_lb_timeout = -1;
|
||||
+module_param_named(oam_lb_timeout, mp_oam_lb_timeout, int, 0);
|
||||
+MODULE_PARM_DESC(oam_lb_timeout, "OAM LB timeout");
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
@@ -728,9 +868,9 @@
|
||||
* interrupt pacing
|
||||
*/
|
||||
ptr = prom_getenv ("sar_ipacemax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_ipacemax != -1)
|
||||
{
|
||||
- def_sar_inter_pace = os_atoi (ptr);
|
||||
+ def_sar_inter_pace = mp_sar_ipacemax == -1 ? os_atoi (ptr) : mp_sar_ipacemax;
|
||||
}
|
||||
/* avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
def_sar_inter_pace); */
|
||||
@@ -878,9 +1018,18 @@
|
||||
{
|
||||
int i;
|
||||
char esi_addr[ESI_LEN] = { 0x00, 0x00, 0x11, 0x22, 0x33, 0x44 };
|
||||
- char *esiaddr_str = NULL;
|
||||
+ char *esiaddr_str = mp_macc;
|
||||
|
||||
- esiaddr_str = prom_getenv ("macc");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("macdsl");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("macc");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("HWA_1");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("macb");
|
||||
+ if (esiaddr_str == NULL)
|
||||
+ esiaddr_str = prom_getenv ("maca");
|
||||
|
||||
if (!esiaddr_str)
|
||||
{
|
||||
@@ -2139,15 +2288,15 @@
|
||||
//UR8_MERGE_END CQ10450*
|
||||
|
||||
cp = prom_getenv ("dsp_noboost");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsp_noboost != -1)
|
||||
{
|
||||
- dsp_noboost = os_atoi (cp);
|
||||
+ dsp_noboost = mp_dsp_noboost == -1 ? os_atoi (cp) : mp_dsp_noboost;
|
||||
}
|
||||
|
||||
cp = (char *) prom_getenv ("dsp_freq");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsp_freq != -1)
|
||||
{
|
||||
- dspfreq = os_atoi (cp);
|
||||
+ dspfreq = mp_dsp_freq == -1 ? os_atoi (cp) : mp_dsp_freq;
|
||||
if (dspfreq == 250)
|
||||
{
|
||||
boostDsp = 1;
|
||||
@@ -2396,15 +2545,17 @@
|
||||
// Inter-Op DSL phy Control
|
||||
// Note the setting of _dsl_Feature_0 and _dsl_Feature_1 must before
|
||||
// dslhal_api_dslStartup (in tn7dsl_init()).
|
||||
- if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_0")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_0")) != NULL || mp_featctl0 != NULL)
|
||||
{
|
||||
- _dsl_Feature_0 = os_atoih (ptr);
|
||||
+ if (mp_featctl0 != NULL) ptr = mp_featctl0;
|
||||
+ _dsl_Feature_0 = os_atoh (ptr);
|
||||
_dsl_Feature_0_defined = 1;
|
||||
}
|
||||
|
||||
- if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_1")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_1")) != NULL || mp_featctl1 != NULL)
|
||||
{
|
||||
- _dsl_Feature_1 = os_atoih (ptr);
|
||||
+ if (mp_featctl1 != NULL) ptr = mp_featctl1;
|
||||
+ _dsl_Feature_1 = os_atoh (ptr);
|
||||
_dsl_Feature_1_defined = 1;
|
||||
}
|
||||
|
||||
@@ -2412,15 +2563,17 @@
|
||||
// DSL phy Feature Control
|
||||
// Note the setting of _dsl_PhyControl_0 and _dsl_PhyControl_1 must before
|
||||
// dslhal_api_dslStartup (in tn7dsl_init()).
|
||||
- if ((ptr = prom_getenv ("DSL_PHY_CNTL_0")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_PHY_CNTL_0")) != NULL || mp_phyctl0 != NULL)
|
||||
{
|
||||
- _dsl_PhyControl_0 = os_atoih (ptr);
|
||||
+ if (mp_phyctl0 != NULL) ptr = mp_phyctl0;
|
||||
+ _dsl_PhyControl_0 = os_atoh (ptr);
|
||||
_dsl_PhyControl_0_defined = 1;
|
||||
}
|
||||
|
||||
- if ((ptr = prom_getenv ("DSL_PHY_CNTL_1")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_PHY_CNTL_1")) != NULL || mp_phyctl1 != NULL)
|
||||
{
|
||||
- _dsl_PhyControl_1 = os_atoih (ptr);
|
||||
+ if (mp_phyctl1 != NULL) ptr = mp_phyctl1;
|
||||
+ _dsl_PhyControl_1 = os_atoh (ptr);
|
||||
_dsl_PhyControl_1_defined = 1;
|
||||
}
|
||||
|
||||
@@ -2440,12 +2593,12 @@
|
||||
// read config for turbo dsl
|
||||
|
||||
ptr = prom_getenv ("TurboDSL");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_turbodsl != -1)
|
||||
{
|
||||
#if 1 //[KT]
|
||||
bTurboDsl = os_atoi (ptr);
|
||||
#else
|
||||
- priv->bTurboDsl = os_atoi (ptr);
|
||||
+ priv->bTurboDsl = mp_turbodsl == -1 ? os_atoi (ptr) : mp_turbodsl;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -2459,33 +2612,33 @@
|
||||
priv->sarRxBuf = RX_BUFFER_NUM;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarRxBuf");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_rxbuf != -1)
|
||||
{
|
||||
- priv->sarRxBuf = os_atoi (ptr);
|
||||
+ priv->sarRxBuf = mp_sar_rxbuf == -1 ? os_atoi (ptr) : mp_sar_rxbuf;
|
||||
}
|
||||
|
||||
priv->sarRxMax = RX_SERVICE_MAX;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarRxMax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_rxmax != -1)
|
||||
{
|
||||
- priv->sarRxMax = os_atoi (ptr);
|
||||
+ priv->sarRxMax = mp_sar_rxmax == -1 ? os_atoi (ptr) : mp_sar_rxmax;
|
||||
}
|
||||
|
||||
priv->sarTxBuf = TX_BUFFER_NUM;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarTxBuf");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_txbuf != -1)
|
||||
{
|
||||
- priv->sarTxBuf = os_atoi (ptr);
|
||||
+ priv->sarTxBuf = mp_sar_txbuf == -1 ? os_atoi (ptr) : mp_sar_txbuf;
|
||||
}
|
||||
|
||||
priv->sarTxMax = TX_SERVICE_MAX;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarTxMax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_txmax != -1)
|
||||
{
|
||||
- priv->sarTxMax = os_atoi (ptr);
|
||||
+ priv->sarTxMax = mp_sar_txmax == -1 ? os_atoi (ptr) : mp_sar_txmax;
|
||||
}
|
||||
|
||||
#ifdef AR7_EFM
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -148,6 +148,27 @@
|
||||
#define NEW_TRAINING_VAL_T1413 128
|
||||
#define NEW_TRAINING_VAL_MMODE 255
|
||||
|
||||
+extern char *mp_modulation;
|
||||
+extern int mp_fine_gain_control;
|
||||
+extern int mp_fine_gain_value;
|
||||
+extern int mp_enable_margin_retrain;
|
||||
+extern int mp_margin_threshold;
|
||||
+extern int mp_enable_rate_adapt;
|
||||
+extern int mp_powercutback;
|
||||
+extern int mp_trellis;
|
||||
+extern int mp_bitswap;
|
||||
+extern int mp_maximum_bits_per_carrier;
|
||||
+extern int mp_maximum_interleave_depth;
|
||||
+extern int mp_pair_selection;
|
||||
+extern int mp_dgas_polarity;
|
||||
+extern int mp_los_alarm;
|
||||
+extern char *mp_eoc_vendor_id;
|
||||
+extern int mp_eoc_vendor_revision;
|
||||
+extern char *mp_eoc_vendor_serialnum;
|
||||
+extern char *mp_invntry_vernum;
|
||||
+extern int mp_dsl_bit_tmode;
|
||||
+extern int mp_high_precision;
|
||||
+
|
||||
int testflag1 = 0;
|
||||
extern int __guDbgLevel;
|
||||
extern sar_stat_t sarStat;
|
||||
@@ -2933,24 +2954,24 @@ static int tn7dsl_set_dsl(void)
|
||||
(unsigned char *) &oamFeature, 4);
|
||||
|
||||
ptr = prom_getenv("DSL_FEATURE_CNTL_0");
|
||||
- if(!ptr)
|
||||
- prom_setenv("DSL_FEATURE_CNTL_0", "0x00004000");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("DSL_FEATURE_CNTL_0", "0x00004000");
|
||||
|
||||
ptr = prom_getenv("DSL_FEATURE_CNTL_1");
|
||||
- if(!ptr)
|
||||
- prom_setenv("DSL_FEATURE_CNTL_1", "0x00000000");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("DSL_FEATURE_CNTL_1", "0x00000000");
|
||||
|
||||
ptr = prom_getenv("DSL_PHY_CNTL_0");
|
||||
- if(!ptr)
|
||||
- prom_setenv("DSL_PHY_CNTL_0", "0x00000400");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("DSL_PHY_CNTL_0", "0x00000400");
|
||||
|
||||
ptr = prom_getenv("enable_margin_retrain");
|
||||
- if(!ptr)
|
||||
- prom_setenv("enable_margin_retrain", "0");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("enable_margin_retrain", "0");
|
||||
|
||||
ptr = prom_getenv("modulation");
|
||||
- if(!ptr)
|
||||
- prom_setenv("modulation", "0xbf");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("modulation", "0xbf");
|
||||
|
||||
#define EOC_VENDOR_ID "4200534153000000"
|
||||
#define EOC_VENDOR_REVISION "FW370090708b1_55"
|
||||
@@ -2959,25 +2980,25 @@ static int tn7dsl_set_dsl(void)
|
||||
ptr = prom_getenv("eoc_vendor_id");
|
||||
if(!ptr || strcmp(ptr,EOC_VENDOR_ID) != 0 || strlen(ptr) != strlen(EOC_VENDOR_ID))
|
||||
{
|
||||
- if(ptr)
|
||||
- prom_unsetenv("eoc_vendor_id");
|
||||
- prom_setenv("eoc_vendor_id",EOC_VENDOR_ID);
|
||||
+ //if(ptr)
|
||||
+ //prom_unsetenv("eoc_vendor_id");
|
||||
+ //prom_setenv("eoc_vendor_id",EOC_VENDOR_ID);
|
||||
}
|
||||
|
||||
ptr = prom_getenv("eoc_vendor_revision");
|
||||
if(!ptr || strcmp(ptr,EOC_VENDOR_REVISION) != 0 || strlen(ptr) != strlen(EOC_VENDOR_REVISION))
|
||||
{
|
||||
- if(ptr)
|
||||
- prom_unsetenv("eoc_vendor_revision");
|
||||
- prom_setenv("eoc_vendor_revision",EOC_VENDOR_REVISION);
|
||||
+ //if(ptr)
|
||||
+ //prom_unsetenv("eoc_vendor_revision");
|
||||
+ //prom_setenv("eoc_vendor_revision",EOC_VENDOR_REVISION);
|
||||
}
|
||||
|
||||
ptr = prom_getenv("eoc_vendor_serialnum");
|
||||
if(!ptr || strcmp(ptr,EOC_VENDOR_SERIALNUM) != 0 || strlen(ptr) != strlen(EOC_VENDOR_SERIALNUM))
|
||||
{
|
||||
- if(ptr)
|
||||
- prom_unsetenv("eoc_vendor_serialnum");
|
||||
- prom_setenv("eoc_vendor_serialnum",EOC_VENDOR_SERIALNUM);
|
||||
+ //if(ptr)
|
||||
+ // prom_unsetenv("eoc_vendor_serialnum");
|
||||
+ //prom_setenv("eoc_vendor_serialnum",EOC_VENDOR_SERIALNUM);
|
||||
}
|
||||
|
||||
/* Do only if we are in the new Base PSP 7.4.*/
|
||||
@@ -2994,92 +3015,88 @@ static int tn7dsl_set_dsl(void)
|
||||
we clear the modulation environment variable, as this could potentially
|
||||
not have the same meaning in the new mode.
|
||||
*/
|
||||
- prom_unsetenv("modulation");
|
||||
- prom_setenv("DSL_UPG_DONE", "1");
|
||||
+ //prom_unsetenv("modulation");
|
||||
+ //prom_setenv("DSL_UPG_DONE", "1");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// modulation
|
||||
ptr = prom_getenv("modulation");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_modulation != NULL)
|
||||
{
|
||||
- tn7dsl_set_modulation(ptr, FALSE);
|
||||
+ tn7dsl_set_modulation(mp_modulation == NULL ? ptr : mp_modulation, FALSE);
|
||||
}
|
||||
|
||||
// Fine Gains
|
||||
ptr = prom_getenv("fine_gain_control");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_fine_gain_control != -1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
+ value = mp_fine_gain_control == -1 ? os_atoi(ptr) : mp_fine_gain_control;
|
||||
tn7dsl_ctrl_fineGain(value);
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("fine_gain_value");
|
||||
- if(ptr)
|
||||
- tn7dsl_set_fineGainValue(os_atoh(ptr));
|
||||
+ if(ptr || mp_fine_gain_value != -1)
|
||||
+ tn7dsl_set_fineGainValue(mp_fine_gain_value == -1 ? os_atoh(ptr) : mp_fine_gain_value);
|
||||
|
||||
// margin retrain
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("enable_margin_retrain");
|
||||
- if(ptr)
|
||||
+ value = mp_enable_margin_retrain == -1 ? (ptr ? os_atoi(ptr) : 0) : mp_enable_margin_retrain;
|
||||
+
|
||||
+ if (value == 1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
- if(value == 1)
|
||||
+ dslhal_api_setMarginMonitorFlags(pIhw, 0, 1);
|
||||
+ bMarginRetrainEnable = 1;
|
||||
+ //printk("enable showtime margin monitor.\n");
|
||||
+
|
||||
+ ptr = NULL;
|
||||
+ ptr = prom_getenv("margin_threshold");
|
||||
+ value = mp_margin_threshold == -1 ? (ptr ? os_atoi(ptr) : 0) : mp_margin_threshold;
|
||||
+
|
||||
+ if(value >= 0)
|
||||
{
|
||||
- dslhal_api_setMarginMonitorFlags(pIhw, 0, 1);
|
||||
- bMarginRetrainEnable = 1;
|
||||
- //printk("enable showtime margin monitor.\n");
|
||||
- ptr = NULL;
|
||||
- ptr = prom_getenv("margin_threshold");
|
||||
- if(ptr)
|
||||
- {
|
||||
- value = os_atoi(ptr);
|
||||
- //printk("Set margin threshold to %d x 0.5 db\n",value);
|
||||
- if(value >= 0)
|
||||
- {
|
||||
- dslhal_api_setMarginThreshold(pIhw, value);
|
||||
- bMarginThConfig=1;
|
||||
- }
|
||||
- }
|
||||
+ dslhal_api_setMarginThreshold(pIhw, value);
|
||||
+ bMarginThConfig=1;
|
||||
}
|
||||
}
|
||||
|
||||
// rate adapt
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("enable_rate_adapt");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_enable_rate_adapt != -1)
|
||||
{
|
||||
- dslhal_api_setRateAdaptFlag(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setRateAdaptFlag(pIhw, mp_enable_rate_adapt == -1 ? os_atoi(ptr) : mp_enable_rate_adapt);
|
||||
}
|
||||
|
||||
// set powercutback
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("powercutback");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_powercutback != -1)
|
||||
{
|
||||
- dslhal_advcfg_onOffPcb(pIhw, os_atoi(ptr));
|
||||
+ dslhal_advcfg_onOffPcb(pIhw, mp_powercutback == -1 ? os_atoi(ptr) : mp_powercutback);
|
||||
}
|
||||
|
||||
// trellis
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("trellis");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_trellis != -1)
|
||||
{
|
||||
- dslhal_api_setTrellisFlag(pIhw, os_atoi(ptr));
|
||||
- trellis = os_atoi(ptr);
|
||||
+ trellis = mp_trellis == -1 ? os_atoi(ptr) : mp_trellis;
|
||||
+ dslhal_api_setTrellisFlag(pIhw, trellis);
|
||||
//printk("trellis=%d\n");
|
||||
}
|
||||
|
||||
// bitswap
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("bitswap");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_bitswap != -1)
|
||||
{
|
||||
int offset[2] = {33, 0};
|
||||
unsigned int bitswap;
|
||||
|
||||
- bitswap = os_atoi(ptr);
|
||||
+ bitswap = mp_bitswap == -1 ? os_atoi(ptr) : mp_bitswap;
|
||||
|
||||
tn7dsl_generic_read(2, offset);
|
||||
dslReg &= dslhal_support_byteSwap32(0xFFFFFF00);
|
||||
@@ -3097,46 +3114,47 @@ static int tn7dsl_set_dsl(void)
|
||||
// maximum bits per carrier
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("maximum_bits_per_carrier");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_maximum_bits_per_carrier != -1)
|
||||
{
|
||||
- dslhal_api_setMaxBitsPerCarrierUpstream(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setMaxBitsPerCarrierUpstream(pIhw, mp_maximum_bits_per_carrier == -1 ? os_atoi(ptr) : mp_maximum_bits_per_carrier);
|
||||
}
|
||||
|
||||
// maximum interleave depth
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("maximum_interleave_depth");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_maximum_interleave_depth != -1)
|
||||
{
|
||||
- dslhal_api_setMaxInterleaverDepth(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setMaxInterleaverDepth(pIhw, mp_maximum_interleave_depth == -1 ? os_atoi(ptr) : mp_maximum_interleave_depth);
|
||||
}
|
||||
|
||||
// inner and outer pairs
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("pair_selection");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_pair_selection != -1)
|
||||
{
|
||||
- dslhal_api_selectInnerOuterPair(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_selectInnerOuterPair(pIhw, mp_pair_selection == -1 ? os_atoi(ptr) : mp_pair_selection);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("dgas_polarity");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_dgas_polarity != -1)
|
||||
{
|
||||
dslhal_api_configureDgaspLpr(pIhw, 1, 1);
|
||||
- dslhal_api_configureDgaspLpr(pIhw, 0, os_atoi(ptr));
|
||||
+ dslhal_api_configureDgaspLpr(pIhw, 0, mp_dgas_polarity == -1 ? os_atoi(ptr) : mp_dgas_polarity);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("los_alarm");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_los_alarm != -1)
|
||||
{
|
||||
- dslhal_api_disableLosAlarm(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_disableLosAlarm(pIhw, mp_los_alarm == -1 ? os_atoi(ptr) : mp_los_alarm);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_id");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_id != NULL)
|
||||
{
|
||||
+ ptr = mp_eoc_vendor_id == NULL ? ptr : mp_eoc_vendor_id;
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
tmp[0]=ptr[i*2];
|
||||
@@ -3161,26 +3179,26 @@ static int tn7dsl_set_dsl(void)
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_revision");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_revision != -1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
+ value = mp_eoc_vendor_revision == -1 ? os_atoi(ptr) : mp_eoc_vendor_revision;
|
||||
//printk("eoc rev=%d\n", os_atoi(ptr));
|
||||
dslhal_api_setEocRevisionNumber(pIhw, (char *)&value);
|
||||
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_serialnum");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_serialnum != NULL)
|
||||
{
|
||||
- dslhal_api_setEocSerialNumber(pIhw, ptr);
|
||||
+ dslhal_api_setEocSerialNumber(pIhw, mp_eoc_vendor_serialnum == NULL ? ptr : mp_eoc_vendor_serialnum);
|
||||
}
|
||||
|
||||
// CQ10037 Added invntry_vernum environment variable to be able to set version number in ADSL2, ADSL2+ modes.
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("invntry_vernum");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_invntry_vernum != NULL)
|
||||
{
|
||||
- dslhal_api_setEocRevisionNumber(pIhw, ptr);
|
||||
+ dslhal_api_setEocRevisionNumber(pIhw, mp_invntry_vernum == NULL ? ptr : mp_invntry_vernum);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -3225,7 +3243,7 @@ int tn7dsl_init(void *priv)
|
||||
* backward compatibility.
|
||||
*/
|
||||
cp = prom_getenv("DSL_BIT_TMODE");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsl_bit_tmode != -1)
|
||||
{
|
||||
printk("%s : env var DSL_BIT_TMODE is set\n", __FUNCTION__);
|
||||
/*
|
||||
@@ -3254,9 +3272,9 @@ int tn7dsl_init(void *priv)
|
||||
|
||||
// UR8_MERGE_START CQ11054 Jack Zhang
|
||||
cp = prom_getenv("high_precision");
|
||||
- if (cp)
|
||||
+ if (cp || mp_high_precision != -1)
|
||||
{
|
||||
- high_precision_selected = os_atoi(cp);
|
||||
+ high_precision_selected = mp_high_precision == -1 ? os_atoi(cp) : mp_high_precision;
|
||||
}
|
||||
if ( high_precision_selected)
|
||||
{
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -76,6 +76,8 @@ typedef void OS_SETUP;
|
||||
#include "tn7atm.h"
|
||||
#include "tn7api.h"
|
||||
|
||||
+extern int mp_oam_lb_timeout;
|
||||
+extern int mp_autopvc_enable;
|
||||
|
||||
/* PDSP Firmware files */
|
||||
#include "tnetd7300_sar_firm.h"
|
||||
@@ -932,9 +934,9 @@ int tn7sar_setup_oam_channel(Tn7AtmPriva
|
||||
pHalDev = (HAL_DEVICE *)priv->pSarHalDev;
|
||||
|
||||
pauto_pvc = prom_getenv("autopvc_enable");
|
||||
- if(pauto_pvc) //CQ10273
|
||||
+ if(pauto_pvc || mp_autopvc_enable != -1) //CQ10273
|
||||
{
|
||||
- auto_pvc =tn7sar_strtoul(pauto_pvc, NULL, 10);
|
||||
+ auto_pvc = mp_autopvc_enable == -1 ? tn7sar_strtoul(pauto_pvc, NULL, 10) : mp_autopvc_enable;
|
||||
}
|
||||
|
||||
memset(&chInfo, 0xff, sizeof(chInfo));
|
||||
@@ -1133,9 +1135,9 @@ int tn7sar_init(struct atm_dev *dev, Tn7
|
||||
|
||||
/* read in oam lb timeout value */
|
||||
pLbTimeout = prom_getenv("oam_lb_timeout");
|
||||
- if(pLbTimeout)
|
||||
+ if(pLbTimeout || mp_oam_lb_timeout != -1)
|
||||
{
|
||||
- lbTimeout =tn7sar_strtoul(pLbTimeout, NULL, 10);
|
||||
+ lbTimeout = mp_oam_lb_timeout == -1 ? tn7sar_strtoul(pLbTimeout, NULL, 10) : mp_oam_lb_timeout;
|
||||
oamLbTimeout = lbTimeout;
|
||||
pHalFunc->Control(pHalDev,"OamLbTimeout", "Set", &lbTimeout);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -117,6 +117,7 @@
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/firmware.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/ar7/ar7.h>
|
||||
@@ -492,7 +493,9 @@ static void avsar_release(struct device
|
||||
}
|
||||
|
||||
static struct device avsar = {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
|
||||
.bus_id = "vlynq",
|
||||
+#endif
|
||||
.release = avsar_release,
|
||||
};
|
||||
|
||||
@@ -501,6 +504,9 @@ int shim_osLoadFWImage(unsigned char *pt
|
||||
const struct firmware *fw_entry;
|
||||
size_t size;
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
|
||||
+ dev_set_name(&avsar, "avsar");
|
||||
+#endif
|
||||
printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
if(device_register(&avsar) < 0) {
|
||||
printk(KERN_ERR
|
||||
@@ -0,0 +1,54 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -76,10 +76,16 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
#include "dsl_hal_api.h"
|
||||
#ifdef AR7_EFM
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -120,8 +120,13 @@
|
||||
#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
/* Modules specific header files */
|
||||
#ifdef AR7_EFM
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -53,10 +53,16 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
#define _CPHAL_AAL5
|
||||
#define _CPHAL_SAR
|
||||
@@ -0,0 +1,79 @@
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -215,7 +215,11 @@ led_reg_t ledreg[2];
|
||||
static struct led_funcs ledreg[2];
|
||||
#endif
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
#define DEV_DSLMOD CTL_UNNUMBERED
|
||||
+#else
|
||||
+#define DEV_DSLMOD 0
|
||||
+#endif
|
||||
#define MAX_STR_SIZE 256
|
||||
#define DSL_MOD_SIZE 256
|
||||
|
||||
@@ -3615,9 +3619,16 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
*/
|
||||
if(write)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
|
||||
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
-
|
||||
+#else
|
||||
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
||||
+#endif
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
switch (ctl->ctl_name)
|
||||
+#else
|
||||
+ switch ((long)ctl->extra2)
|
||||
+#endif
|
||||
{
|
||||
case DEV_DSLMOD:
|
||||
ptr = strpbrk(info, " \t");
|
||||
@@ -3701,14 +3712,29 @@ static int dslmod_sysctl(ctl_table *ctl,
|
||||
else
|
||||
{
|
||||
len += sprintf(info+len, mod_req);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
|
||||
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
+#else
|
||||
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
||||
+#endif
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ctl_table dslmod_table[] = {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
{DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
||||
+#else
|
||||
+ {
|
||||
+ .procname = "dslmod",
|
||||
+ .data = info,
|
||||
+ .maxlen = DSL_MOD_SIZE,
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = &dslmod_sysctl,
|
||||
+ .extra2 = (void *)DEV_DSLMOD,
|
||||
+ }
|
||||
+#endif
|
||||
,
|
||||
{0}
|
||||
};
|
||||
@@ -3716,7 +3742,16 @@ ctl_table dslmod_table[] = {
|
||||
/* Make sure that /proc/sys/dev is there */
|
||||
ctl_table dslmod_root_table[] = {
|
||||
#ifdef CONFIG_PROC_FS
|
||||
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
{CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
|
||||
+ #else
|
||||
+ {
|
||||
+ .procname = "dev",
|
||||
+ .maxlen = 0,
|
||||
+ .mode = 0555,
|
||||
+ .child = dslmod_table,
|
||||
+ }
|
||||
+ #endif
|
||||
,
|
||||
#endif /* CONFIG_PROC_FS */
|
||||
{0}
|
||||
@@ -0,0 +1,36 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -2000,7 +2000,11 @@ static int __init tn7atm_register (Tn7At
|
||||
|
||||
dgprintf (4, "device %s being registered\n", priv->name);
|
||||
|
||||
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
|
||||
mydev = atm_dev_register (priv->proc_name, &tn7atm_ops, -1, NULL);
|
||||
+ #else
|
||||
+ mydev = atm_dev_register (priv->proc_name, NULL, &tn7atm_ops, -1, NULL);
|
||||
+ #endif
|
||||
|
||||
if (mydev == NULL)
|
||||
{
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -512,14 +512,17 @@ int shim_osLoadFWImage(unsigned char *pt
|
||||
{
|
||||
const struct firmware *fw_entry;
|
||||
size_t size;
|
||||
+ int ret;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
|
||||
dev_set_name(&avsar, "avsar");
|
||||
#endif
|
||||
printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
- if(device_register(&avsar) < 0) {
|
||||
+ dev_set_name(&avsar, "avsar");
|
||||
+ ret = device_register(&avsar);
|
||||
+ if (ret < 0) {
|
||||
printk(KERN_ERR
|
||||
- "avsar: device_register fails\n");
|
||||
+ "avsar: device_register fails, error%i\n", ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
--- a/tn7atm.c
|
||||
+++ b/tn7atm.c
|
||||
@@ -72,7 +72,7 @@
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
--- a/tn7sar.c
|
||||
+++ b/tn7sar.c
|
||||
@@ -49,7 +49,7 @@
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
--- a/tn7dsl.c
|
||||
+++ b/tn7dsl.c
|
||||
@@ -108,7 +108,7 @@
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
40
package/system/avila-wdt/Makefile
Normal file
40
package/system/avila-wdt/Makefile
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# Copyright (C) 2008 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=avila-wdt
|
||||
PKG_RELEASE:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/avila-wdt
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=GPIO hardware watchdog driver for modified Avila boards
|
||||
DEPENDS:=@GPIO_SUPPORT @TARGET_ixp4xx
|
||||
FILES:=$(PKG_BUILD_DIR)/avila-wdt.ko
|
||||
AUTOLOAD:=$(call AutoLoad,10,avila-wdt)
|
||||
endef
|
||||
|
||||
MAKE_OPTS:= \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)"
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(MAKE_OPTS) \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,avila-wdt))
|
||||
1
package/system/avila-wdt/src/Makefile
Normal file
1
package/system/avila-wdt/src/Makefile
Normal file
@@ -0,0 +1 @@
|
||||
obj-m := avila-wdt.o
|
||||
231
package/system/avila-wdt/src/avila-wdt.c
Normal file
231
package/system/avila-wdt/src/avila-wdt.c
Normal file
@@ -0,0 +1,231 @@
|
||||
/*
|
||||
* avila-wdt.c
|
||||
* Copyright (C) 2009 Felix Fietkau <nbd@openwrt.org>
|
||||
*
|
||||
* based on:
|
||||
* drivers/char/watchdog/ixp4xx_wdt.c
|
||||
*
|
||||
* Watchdog driver for Intel IXP4xx network processors
|
||||
*
|
||||
* Author: Deepak Saxena <dsaxena@plexity.net>
|
||||
*
|
||||
* Copyright 2004 (c) MontaVista, Software, Inc.
|
||||
* Based on sa1100 driver, Copyright (C) 2000 Oleg Drokin <green@crimea.edu>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/watchdog.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
static int nowayout = WATCHDOG_NOWAYOUT;
|
||||
static int heartbeat = 20; /* (secs) Default is 20 seconds */
|
||||
static unsigned long wdt_status;
|
||||
static atomic_t wdt_counter;
|
||||
struct timer_list wdt_timer;
|
||||
|
||||
#define WDT_IN_USE 0
|
||||
#define WDT_OK_TO_CLOSE 1
|
||||
#define WDT_RUNNING 2
|
||||
|
||||
static void wdt_refresh(unsigned long data)
|
||||
{
|
||||
if (test_bit(WDT_RUNNING, &wdt_status)) {
|
||||
if (atomic_dec_and_test(&wdt_counter)) {
|
||||
printk(KERN_WARNING "Avila watchdog expired, expect a reboot soon!\n");
|
||||
clear_bit(WDT_RUNNING, &wdt_status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* strobe to the watchdog */
|
||||
gpio_line_set(14, IXP4XX_GPIO_HIGH);
|
||||
gpio_line_set(14, IXP4XX_GPIO_LOW);
|
||||
|
||||
mod_timer(&wdt_timer, jiffies + msecs_to_jiffies(500));
|
||||
}
|
||||
|
||||
static void wdt_enable(void)
|
||||
{
|
||||
atomic_set(&wdt_counter, heartbeat * 2);
|
||||
|
||||
/* Disable clock generator output on GPIO 14/15 */
|
||||
*IXP4XX_GPIO_GPCLKR &= ~(1 << 8);
|
||||
|
||||
/* activate GPIO 14 out */
|
||||
gpio_line_config(14, IXP4XX_GPIO_OUT);
|
||||
gpio_line_set(14, IXP4XX_GPIO_LOW);
|
||||
|
||||
if (!test_bit(WDT_RUNNING, &wdt_status))
|
||||
wdt_refresh(0);
|
||||
set_bit(WDT_RUNNING, &wdt_status);
|
||||
}
|
||||
|
||||
static void wdt_disable(void)
|
||||
{
|
||||
/* Re-enable clock generator output on GPIO 14/15 */
|
||||
*IXP4XX_GPIO_GPCLKR |= (1 << 8);
|
||||
}
|
||||
|
||||
static int avila_wdt_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (test_and_set_bit(WDT_IN_USE, &wdt_status))
|
||||
return -EBUSY;
|
||||
|
||||
clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
|
||||
wdt_enable();
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
avila_wdt_write(struct file *file, const char *data, size_t len, loff_t *ppos)
|
||||
{
|
||||
if (len) {
|
||||
if (!nowayout) {
|
||||
size_t i;
|
||||
|
||||
clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
|
||||
|
||||
for (i = 0; i != len; i++) {
|
||||
char c;
|
||||
|
||||
if (get_user(c, data + i))
|
||||
return -EFAULT;
|
||||
if (c == 'V')
|
||||
set_bit(WDT_OK_TO_CLOSE, &wdt_status);
|
||||
}
|
||||
}
|
||||
wdt_enable();
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
static struct watchdog_info ident = {
|
||||
.options = WDIOF_CARDRESET | WDIOF_MAGICCLOSE |
|
||||
WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
|
||||
.identity = "Avila Watchdog",
|
||||
};
|
||||
|
||||
|
||||
static long avila_wdt_ioctl(struct file *file, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
int ret = -ENOTTY;
|
||||
int time;
|
||||
|
||||
switch (cmd) {
|
||||
case WDIOC_GETSUPPORT:
|
||||
ret = copy_to_user((struct watchdog_info *)arg, &ident,
|
||||
sizeof(ident)) ? -EFAULT : 0;
|
||||
break;
|
||||
|
||||
case WDIOC_GETSTATUS:
|
||||
ret = put_user(0, (int *)arg);
|
||||
break;
|
||||
|
||||
case WDIOC_KEEPALIVE:
|
||||
wdt_enable();
|
||||
ret = 0;
|
||||
break;
|
||||
|
||||
case WDIOC_SETTIMEOUT:
|
||||
ret = get_user(time, (int *)arg);
|
||||
if (ret)
|
||||
break;
|
||||
|
||||
if (time <= 0 || time > 60) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
heartbeat = time;
|
||||
wdt_enable();
|
||||
/* Fall through */
|
||||
|
||||
case WDIOC_GETTIMEOUT:
|
||||
ret = put_user(heartbeat, (int *)arg);
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int avila_wdt_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (test_bit(WDT_OK_TO_CLOSE, &wdt_status))
|
||||
wdt_disable();
|
||||
else
|
||||
printk(KERN_CRIT "WATCHDOG: Device closed unexpectedly - "
|
||||
"timer will not stop\n");
|
||||
clear_bit(WDT_IN_USE, &wdt_status);
|
||||
clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static const struct file_operations avila_wdt_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
.write = avila_wdt_write,
|
||||
.unlocked_ioctl = avila_wdt_ioctl,
|
||||
.open = avila_wdt_open,
|
||||
.release = avila_wdt_release,
|
||||
};
|
||||
|
||||
static struct miscdevice avila_wdt_miscdev = {
|
||||
.minor = WATCHDOG_MINOR + 1,
|
||||
.name = "avila_watchdog",
|
||||
.fops = &avila_wdt_fops,
|
||||
};
|
||||
|
||||
static int __init avila_wdt_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
init_timer(&wdt_timer);
|
||||
wdt_timer.expires = 0;
|
||||
wdt_timer.data = 0;
|
||||
wdt_timer.function = wdt_refresh;
|
||||
ret = misc_register(&avila_wdt_miscdev);
|
||||
if (ret == 0)
|
||||
printk(KERN_INFO "Avila Watchdog Timer: heartbeat %d sec\n",
|
||||
heartbeat);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __exit avila_wdt_exit(void)
|
||||
{
|
||||
misc_deregister(&avila_wdt_miscdev);
|
||||
del_timer(&wdt_timer);
|
||||
wdt_disable();
|
||||
}
|
||||
|
||||
|
||||
module_init(avila_wdt_init);
|
||||
module_exit(avila_wdt_exit);
|
||||
|
||||
MODULE_AUTHOR("Felix Fietkau <nbd@openwrt.org>");
|
||||
MODULE_DESCRIPTION("Gateworks Avila Hardware Watchdog");
|
||||
|
||||
module_param(heartbeat, int, 0);
|
||||
MODULE_PARM_DESC(heartbeat, "Watchdog heartbeat in seconds (default 20s)");
|
||||
|
||||
module_param(nowayout, int, 0);
|
||||
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started");
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
|
||||
|
||||
46
package/system/brcm2708-gpu-fw/Makefile
Normal file
46
package/system/brcm2708-gpu-fw/Makefile
Normal file
@@ -0,0 +1,46 @@
|
||||
#
|
||||
# Copyright (C) 2012 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=brcm2708-gpu-fw
|
||||
PKG_REV:=29ce6bcf278e7e79cd8a2b84c6aa9db9864ca91d
|
||||
PKG_VERSION:=20120529
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=git://github.com/raspberrypi/firmware.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE_VERSION:=$(PKG_REV)
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/brcm2708-gpu-fw
|
||||
SECTION:=boot
|
||||
CATEGORY:=Boot Loaders
|
||||
DEPENDS:=@TARGET_brcm2708
|
||||
TITLE:=brcm2708-gpu-fw
|
||||
DEFAULT:=y if (TARGET_brcm2708)
|
||||
endef
|
||||
|
||||
define Package/brcm2708-gpu-fw/description
|
||||
GPU and kernel boot firmware for brcm2708.
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(BUILD_DIR)/brcm2708-gpu-fw-boot
|
||||
$(CP) $(PKG_BUILD_DIR)/boot/* $(BUILD_DIR)/brcm2708-gpu-fw-boot
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,brcm2708-gpu-fw))
|
||||
|
||||
53
package/system/button-hotplug/Makefile
Normal file
53
package/system/button-hotplug/Makefile
Normal file
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=button-hotplug
|
||||
PKG_RELEASE:=3
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/button-hotplug
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=Button Hotplug driver
|
||||
FILES:=$(PKG_BUILD_DIR)/button-hotplug.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,button-hotplug)
|
||||
KCONFIG:=
|
||||
endef
|
||||
|
||||
define KernelPackage/button-hotplug/description
|
||||
Kernel module to generate button hotplug events
|
||||
endef
|
||||
|
||||
EXTRA_KCONFIG:= \
|
||||
CONFIG_BUTTON_HOTPLUG=m
|
||||
|
||||
EXTRA_CFLAGS:= \
|
||||
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
|
||||
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(MAKE_OPTS) \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,button-hotplug))
|
||||
2
package/system/button-hotplug/src/Kconfig
Normal file
2
package/system/button-hotplug/src/Kconfig
Normal file
@@ -0,0 +1,2 @@
|
||||
config BUTTON_HOTPLUG
|
||||
tristate "Button Hotplug driver"
|
||||
1
package/system/button-hotplug/src/Makefile
Normal file
1
package/system/button-hotplug/src/Makefile
Normal file
@@ -0,0 +1 @@
|
||||
obj-${CONFIG_BUTTON_HOTPLUG} += button-hotplug.o
|
||||
349
package/system/button-hotplug/src/button-hotplug.c
Normal file
349
package/system/button-hotplug/src/button-hotplug.c
Normal file
@@ -0,0 +1,349 @@
|
||||
/*
|
||||
* Button Hotplug driver
|
||||
*
|
||||
* Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
|
||||
*
|
||||
* Based on the diag.c - GPIO interface driver for Broadcom boards
|
||||
* Copyright (C) 2006 Mike Baker <mbm@openwrt.org>,
|
||||
* Copyright (C) 2006-2007 Felix Fietkau <nbd@openwrt.org>
|
||||
* Copyright (C) 2008 Andy Boyett <agb@openwrt.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published
|
||||
* by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/kmod.h>
|
||||
#include <linux/input.h>
|
||||
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/kobject.h>
|
||||
|
||||
#define DRV_NAME "button-hotplug"
|
||||
#define DRV_VERSION "0.4.1"
|
||||
#define DRV_DESC "Button Hotplug driver"
|
||||
|
||||
#define BH_SKB_SIZE 2048
|
||||
|
||||
#define PFX DRV_NAME ": "
|
||||
|
||||
#undef BH_DEBUG
|
||||
|
||||
#ifdef BH_DEBUG
|
||||
#define BH_DBG(fmt, args...) printk(KERN_DEBUG "%s: " fmt, DRV_NAME, ##args )
|
||||
#else
|
||||
#define BH_DBG(fmt, args...) do {} while (0)
|
||||
#endif
|
||||
|
||||
#define BH_ERR(fmt, args...) printk(KERN_ERR "%s: " fmt, DRV_NAME, ##args )
|
||||
|
||||
#ifndef BIT_MASK
|
||||
#define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG))
|
||||
#endif
|
||||
|
||||
struct bh_priv {
|
||||
unsigned long *seen;
|
||||
struct input_handle handle;
|
||||
};
|
||||
|
||||
struct bh_event {
|
||||
const char *name;
|
||||
char *action;
|
||||
unsigned long seen;
|
||||
|
||||
struct sk_buff *skb;
|
||||
struct work_struct work;
|
||||
};
|
||||
|
||||
struct bh_map {
|
||||
unsigned int code;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
extern u64 uevent_next_seqnum(void);
|
||||
|
||||
#define BH_MAP(_code, _name) \
|
||||
{ \
|
||||
.code = (_code), \
|
||||
.name = (_name), \
|
||||
}
|
||||
|
||||
static struct bh_map button_map[] = {
|
||||
BH_MAP(BTN_0, "BTN_0"),
|
||||
BH_MAP(BTN_1, "BTN_1"),
|
||||
BH_MAP(BTN_2, "BTN_2"),
|
||||
BH_MAP(BTN_3, "BTN_3"),
|
||||
BH_MAP(BTN_4, "BTN_4"),
|
||||
BH_MAP(BTN_5, "BTN_5"),
|
||||
BH_MAP(BTN_6, "BTN_6"),
|
||||
BH_MAP(BTN_7, "BTN_7"),
|
||||
BH_MAP(BTN_8, "BTN_8"),
|
||||
BH_MAP(BTN_9, "BTN_9"),
|
||||
BH_MAP(KEY_RESTART, "reset"),
|
||||
#ifdef KEY_WPS_BUTTON
|
||||
BH_MAP(KEY_WPS_BUTTON, "wps"),
|
||||
#endif /* KEY_WPS_BUTTON */
|
||||
};
|
||||
|
||||
/* -------------------------------------------------------------------------*/
|
||||
|
||||
static int bh_event_add_var(struct bh_event *event, int argv,
|
||||
const char *format, ...)
|
||||
{
|
||||
static char buf[128];
|
||||
char *s;
|
||||
va_list args;
|
||||
int len;
|
||||
|
||||
if (argv)
|
||||
return 0;
|
||||
|
||||
va_start(args, format);
|
||||
len = vsnprintf(buf, sizeof(buf), format, args);
|
||||
va_end(args);
|
||||
|
||||
if (len >= sizeof(buf)) {
|
||||
BH_ERR("buffer size too small\n");
|
||||
WARN_ON(1);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
s = skb_put(event->skb, len + 1);
|
||||
strcpy(s, buf);
|
||||
|
||||
BH_DBG("added variable '%s'\n", s);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int button_hotplug_fill_event(struct bh_event *event)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "HOME=%s", "/");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "PATH=%s",
|
||||
"/sbin:/bin:/usr/sbin:/usr/bin");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "SUBSYSTEM=%s", "button");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "ACTION=%s", event->action);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "BUTTON=%s", event->name);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "SEEN=%ld", event->seen);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "SEQNUM=%llu", uevent_next_seqnum());
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void button_hotplug_work(struct work_struct *work)
|
||||
{
|
||||
struct bh_event *event = container_of(work, struct bh_event, work);
|
||||
int ret = 0;
|
||||
|
||||
event->skb = alloc_skb(BH_SKB_SIZE, GFP_KERNEL);
|
||||
if (!event->skb)
|
||||
goto out_free_event;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "%s@", event->action);
|
||||
if (ret)
|
||||
goto out_free_skb;
|
||||
|
||||
ret = button_hotplug_fill_event(event);
|
||||
if (ret)
|
||||
goto out_free_skb;
|
||||
|
||||
NETLINK_CB(event->skb).dst_group = 1;
|
||||
broadcast_uevent(event->skb, 0, 1, GFP_KERNEL);
|
||||
|
||||
out_free_skb:
|
||||
if (ret) {
|
||||
BH_ERR("work error %d\n", ret);
|
||||
kfree_skb(event->skb);
|
||||
}
|
||||
out_free_event:
|
||||
kfree(event);
|
||||
}
|
||||
|
||||
static int button_hotplug_create_event(const char *name, unsigned long seen,
|
||||
int pressed)
|
||||
{
|
||||
struct bh_event *event;
|
||||
|
||||
BH_DBG("create event, name=%s, seen=%lu, pressed=%d\n",
|
||||
name, seen, pressed);
|
||||
|
||||
event = kzalloc(sizeof(*event), GFP_KERNEL);
|
||||
if (!event)
|
||||
return -ENOMEM;
|
||||
|
||||
event->name = name;
|
||||
event->seen = seen;
|
||||
event->action = pressed ? "pressed" : "released";
|
||||
|
||||
INIT_WORK(&event->work, (void *)(void *)button_hotplug_work);
|
||||
schedule_work(&event->work);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef CONFIG_HOTPLUG
|
||||
static int button_get_index(unsigned int code)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(button_map); i++)
|
||||
if (button_map[i].code == code)
|
||||
return i;
|
||||
|
||||
return -1;
|
||||
}
|
||||
static void button_hotplug_event(struct input_handle *handle,
|
||||
unsigned int type, unsigned int code, int value)
|
||||
{
|
||||
struct bh_priv *priv = handle->private;
|
||||
unsigned long seen = jiffies;
|
||||
int btn;
|
||||
|
||||
BH_DBG("event type=%u, code=%u, value=%d\n", type, code, value);
|
||||
|
||||
if (type != EV_KEY)
|
||||
return;
|
||||
|
||||
btn = button_get_index(code);
|
||||
if (btn < 0)
|
||||
return;
|
||||
|
||||
button_hotplug_create_event(button_map[btn].name,
|
||||
(seen - priv->seen[btn]) / HZ, value);
|
||||
priv->seen[btn] = seen;
|
||||
}
|
||||
#else
|
||||
static void button_hotplug_event(struct input_handle *handle,
|
||||
unsigned int type, unsigned int code, int value)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_HOTPLUG */
|
||||
|
||||
static int button_hotplug_connect(struct input_handler *handler,
|
||||
struct input_dev *dev, const struct input_device_id *id)
|
||||
{
|
||||
struct bh_priv *priv;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(button_map); i++)
|
||||
if (test_bit(button_map[i].code, dev->keybit))
|
||||
break;
|
||||
|
||||
if (i == ARRAY_SIZE(button_map))
|
||||
return -ENODEV;
|
||||
|
||||
priv = kzalloc(sizeof(*priv) +
|
||||
(sizeof(unsigned long) * ARRAY_SIZE(button_map)),
|
||||
GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
priv->seen = (unsigned long *) &priv[1];
|
||||
priv->handle.private = priv;
|
||||
priv->handle.dev = dev;
|
||||
priv->handle.handler = handler;
|
||||
priv->handle.name = DRV_NAME;
|
||||
|
||||
ret = input_register_handle(&priv->handle);
|
||||
if (ret)
|
||||
goto err_free_priv;
|
||||
|
||||
ret = input_open_device(&priv->handle);
|
||||
if (ret)
|
||||
goto err_unregister_handle;
|
||||
|
||||
BH_DBG("connected to %s\n", dev->name);
|
||||
|
||||
return 0;
|
||||
|
||||
err_unregister_handle:
|
||||
input_unregister_handle(&priv->handle);
|
||||
|
||||
err_free_priv:
|
||||
kfree(priv);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void button_hotplug_disconnect(struct input_handle *handle)
|
||||
{
|
||||
struct bh_priv *priv = handle->private;
|
||||
|
||||
input_close_device(handle);
|
||||
input_unregister_handle(handle);
|
||||
|
||||
kfree(priv);
|
||||
}
|
||||
|
||||
static const struct input_device_id button_hotplug_ids[] = {
|
||||
{
|
||||
.flags = INPUT_DEVICE_ID_MATCH_EVBIT,
|
||||
.evbit = { BIT_MASK(EV_KEY) },
|
||||
},
|
||||
{
|
||||
/* Terminating entry */
|
||||
},
|
||||
};
|
||||
|
||||
MODULE_DEVICE_TABLE(input, button_hotplug_ids);
|
||||
|
||||
static struct input_handler button_hotplug_handler = {
|
||||
.event = button_hotplug_event,
|
||||
.connect = button_hotplug_connect,
|
||||
.disconnect = button_hotplug_disconnect,
|
||||
.name = DRV_NAME,
|
||||
.id_table = button_hotplug_ids,
|
||||
};
|
||||
|
||||
/* -------------------------------------------------------------------------*/
|
||||
|
||||
static int __init button_hotplug_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
printk(KERN_INFO DRV_DESC " version " DRV_VERSION "\n");
|
||||
ret = input_register_handler(&button_hotplug_handler);
|
||||
if (ret)
|
||||
BH_ERR("unable to register input handler\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
module_init(button_hotplug_init);
|
||||
|
||||
static void __exit button_hotplug_exit(void)
|
||||
{
|
||||
input_unregister_handler(&button_hotplug_handler);
|
||||
}
|
||||
module_exit(button_hotplug_exit);
|
||||
|
||||
MODULE_DESCRIPTION(DRV_DESC);
|
||||
MODULE_VERSION(DRV_VERSION);
|
||||
MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
||||
92
package/system/ep80579-drivers/Makefile
Normal file
92
package/system/ep80579-drivers/Makefile
Normal file
@@ -0,0 +1,92 @@
|
||||
#
|
||||
# Copyright (C) 2010 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ep80579-drivers
|
||||
PKG_VERSION:=1.0.34
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=Embedded.L.1.0.34.ADI.R100.tar.gz
|
||||
PKG_SOURCE_URL:=ftp://ftp.adiengineering.com/Archive/OcracokeIsland/Drivers/Linux/1.0.34/
|
||||
PKG_MD5SUM:=61df9778f8c1f919257d2f48a0bcb000
|
||||
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/ep80579-drivers/Default
|
||||
DEPENDS:=@TARGET_x86_ep80579
|
||||
endef
|
||||
|
||||
define KernelPackage/ep80579-eth
|
||||
$(call KernelPackage/ep80579-drivers/Default)
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Intel EP80579 ethernet driver
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/Embedded/src/GbE/gcu.ko \
|
||||
$(PKG_BUILD_DIR)/Embedded/src/GbE/iegbe.ko
|
||||
AUTOLOAD:=$(call AutoLoad,40,gcu iegbe)
|
||||
endef
|
||||
|
||||
define KernelPackage/ep80579-misc
|
||||
$(call KernelPackage/ep80579-drivers/Default)
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=Misc. Intel EP80579 drivers (DMA,, gpio)
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/Embedded/src/EDMA/dma.ko \
|
||||
$(PKG_BUILD_DIR)/Embedded/src/GPIO/gpio.ko
|
||||
AUTOLOAD:=$(call AutoLoad,40,gpio dma)
|
||||
endef
|
||||
|
||||
define KernelPackage/ep80579-can
|
||||
$(call KernelPackage/ep80579-drivers/Default)
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=Intel EP80579 CAN driver
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/Embedded/src/1588/timesync.ko \
|
||||
$(PKG_BUILD_DIR)/Embedded/src/CAN/can.ko
|
||||
AUTOLOAD:=$(call AutoLoad,40,timesync can)
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
rm -rf $(PKG_BUILD_DIR)
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
tar xzvf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR)/
|
||||
$(Build/Patch)
|
||||
endef
|
||||
|
||||
define Build/Compile/Subdir
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
KSRC="$(LINUX_DIR)" \
|
||||
KOBJ="$(LINUX_DIR)" \
|
||||
ENV_DIR=$(PKG_BUILD_DIR)/Embedded \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)/Embedded/src/$(1)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCHIVER="$(TARGET_CROSS)ar" \
|
||||
COMPILER="$(TARGET_CC)" \
|
||||
LINKER="$(TARGET_CROSS)ld" \
|
||||
ARCH="$(LINUX_KARCH)"
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(call Build/Compile/Subdir,GbE)
|
||||
$(call Build/Compile/Subdir,CAN)
|
||||
$(call Build/Compile/Subdir,EDMA)
|
||||
$(call Build/Compile/Subdir,GPIO)
|
||||
$(call Build/Compile/Subdir,WDT)
|
||||
$(call Build/Compile/Subdir,1588)
|
||||
endef
|
||||
|
||||
define KernelPackage/ep80579-eth/install
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,ep80579-can))
|
||||
$(eval $(call KernelPackage,ep80579-eth))
|
||||
$(eval $(call KernelPackage,ep80579-misc))
|
||||
|
||||
11755
package/system/ep80579-drivers/patches/001-igbe_update.patch
Normal file
11755
package/system/ep80579-drivers/patches/001-igbe_update.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,22 @@
|
||||
--- a/build_system/build_files/common.mk
|
||||
+++ b/build_system/build_files/common.mk
|
||||
@@ -122,7 +122,7 @@ CC=$(COMPILER)
|
||||
LD=$(LINKER)
|
||||
AR=$(ARCHIVER)
|
||||
|
||||
-CFLAGS+=-O2
|
||||
+#CFLAGS+=-O2
|
||||
|
||||
|
||||
PWD= $(shell pwd)
|
||||
--- a/build_system/build_files/OS/linux_2.6.mk
|
||||
+++ b/build_system/build_files/OS/linux_2.6.mk
|
||||
@@ -80,7 +80,7 @@ endif
|
||||
|
||||
|
||||
ifeq ($(OS_LEVEL), kernel_space)
|
||||
-CFLAGS+=
|
||||
+#CFLAGS+=
|
||||
endif
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
--- a/Embedded/src/1588/1588.c
|
||||
+++ b/Embedded/src/1588/1588.c
|
||||
@@ -291,7 +291,7 @@ int pci_probe(struct pci_dev *dev, const
|
||||
|
||||
}
|
||||
|
||||
- if ( request_irq(dev->irq, ×ync_isr, SA_SHIRQ, DRIVERNAME,
|
||||
+ if ( request_irq(dev->irq, ×ync_isr, IRQF_SHARED, DRIVERNAME,
|
||||
&g_drvr_data) )
|
||||
{
|
||||
printk("%s-pci_probe: irq\n", DRIVERNAME);
|
||||
--- a/Embedded/src/CAN/can_main.c
|
||||
+++ b/Embedded/src/CAN/can_main.c
|
||||
@@ -424,7 +424,7 @@ int can_open(struct inode *inode, struct
|
||||
err = request_irq(
|
||||
can_os->irq,
|
||||
can_irq_handler,
|
||||
- SA_SHIRQ,
|
||||
+ IRQF_SHARED,
|
||||
iminor(can_os->inode) ? CAN_PROC_1 : CAN_PROC_0,
|
||||
&(g_can_os[iminor(can_os->inode)])
|
||||
);
|
||||
--- a/Embedded/src/EDMA/dma_linux.c
|
||||
+++ b/Embedded/src/EDMA/dma_linux.c
|
||||
@@ -367,7 +367,7 @@ int32_t edma_resume(struct pci_dev *dev)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
- if (request_irq(dev->irq, &edma_irq_handler, SA_SHIRQ,
|
||||
+ if (request_irq(dev->irq, &edma_irq_handler, IRQF_SHARED,
|
||||
g_char_drvr_name, dev) )
|
||||
{
|
||||
|
||||
@@ -829,7 +829,7 @@ int32_t edma_probe(struct pci_dev * dev,
|
||||
/*
|
||||
* Obtain a (shared) Interrupt Request (IRQ) Line from the OS.
|
||||
*/
|
||||
- if (request_irq(dev->irq, &edma_irq_handler, SA_SHIRQ,
|
||||
+ if (request_irq(dev->irq, &edma_irq_handler, IRQF_SHARED,
|
||||
g_char_drvr_name, dev) )
|
||||
{
|
||||
|
||||
--- a/Embedded/src/WDT/iwdt.c
|
||||
+++ b/Embedded/src/WDT/iwdt.c
|
||||
@@ -1461,7 +1461,7 @@ static int __init wdt_init_one(struct pc
|
||||
|
||||
/* Request irq only if wdt_irq is other than 0 */
|
||||
if (wdt_irq) {
|
||||
- if (request_irq(wdt_irq, wdt_isr, SA_INTERRUPT | SA_SHIRQ,
|
||||
+ if (request_irq(wdt_irq, wdt_isr, IRQF_DISABLED | IRQF_SHARED,
|
||||
"iwdt", &wdt_miscdev)) {
|
||||
printk("IRQ %d is not free.\n", wdt_irq);
|
||||
return -EIO;
|
||||
@@ -0,0 +1,56 @@
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -724,6 +724,26 @@ static void iegbe_dump_eeprom(struct ieg
|
||||
kfree(data);
|
||||
}
|
||||
|
||||
+static const struct net_device_ops iegbe_netdev_ops = {
|
||||
+ .ndo_open = iegbe_open,
|
||||
+ .ndo_stop = iegbe_close,
|
||||
+ .ndo_start_xmit = iegbe_xmit_frame,
|
||||
+ .ndo_get_stats = iegbe_get_stats,
|
||||
+ .ndo_set_rx_mode = iegbe_set_rx_mode,
|
||||
+ .ndo_set_mac_address = iegbe_set_mac,
|
||||
+ .ndo_tx_timeout = iegbe_tx_timeout,
|
||||
+ .ndo_change_mtu = iegbe_change_mtu,
|
||||
+ .ndo_do_ioctl = iegbe_ioctl,
|
||||
+ .ndo_validate_addr = eth_validate_addr,
|
||||
+
|
||||
+ .ndo_vlan_rx_register = iegbe_vlan_rx_register,
|
||||
+ .ndo_vlan_rx_add_vid = iegbe_vlan_rx_add_vid,
|
||||
+ .ndo_vlan_rx_kill_vid = iegbe_vlan_rx_kill_vid,
|
||||
+#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
+ .ndo_poll_controller = iegbe_netpoll,
|
||||
+#endif
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* iegbe_probe - Device Initialization Routine
|
||||
* @pdev: PCI device information struct
|
||||
@@ -800,24 +820,11 @@ static int __devinit iegbe_probe(struct
|
||||
if (!hw->hw_addr)
|
||||
goto err_ioremap;
|
||||
|
||||
- netdev->open = &iegbe_open;
|
||||
- netdev->stop = &iegbe_close;
|
||||
- netdev->hard_start_xmit = &iegbe_xmit_frame;
|
||||
- netdev->get_stats = &iegbe_get_stats;
|
||||
- netdev->set_rx_mode = &iegbe_set_rx_mode;
|
||||
- netdev->set_mac_address = &iegbe_set_mac;
|
||||
- netdev->change_mtu = &iegbe_change_mtu;
|
||||
- netdev->do_ioctl = &iegbe_ioctl;
|
||||
+ netdev->netdev_ops = &iegbe_netdev_ops;
|
||||
set_ethtool_ops(netdev);
|
||||
- netdev->tx_timeout = &iegbe_tx_timeout;
|
||||
netdev->watchdog_timeo = 5 * HZ;
|
||||
netif_napi_add(netdev, &adapter->napi, iegbe_clean, 64);
|
||||
- netdev->vlan_rx_register = iegbe_vlan_rx_register;
|
||||
- netdev->vlan_rx_add_vid = iegbe_vlan_rx_add_vid;
|
||||
- netdev->vlan_rx_kill_vid = iegbe_vlan_rx_kill_vid;
|
||||
-#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
- netdev->poll_controller = iegbe_netpoll;
|
||||
-#endif
|
||||
+
|
||||
strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -3465,12 +3465,12 @@ static irqreturn_t iegbe_intr_msi(int ir
|
||||
printk("Critical error! ICR = 0x%x\n", icr);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
- if (likely(netif_rx_schedule_prep(netdev, &adapter->napi))) {
|
||||
+ if (likely(napi_schedule_prep(&adapter->napi))) {
|
||||
adapter->total_tx_bytes = 0;
|
||||
adapter->total_tx_packets = 0;
|
||||
adapter->total_rx_bytes = 0;
|
||||
adapter->total_rx_packets = 0;
|
||||
- __netif_rx_schedule(netdev, &adapter->napi);
|
||||
+ __napi_schedule(&adapter->napi);
|
||||
} else
|
||||
iegbe_irq_enable(adapter);
|
||||
|
||||
@@ -3527,12 +3527,12 @@ iegbe_intr(int irq, void *data)
|
||||
E1000_WRITE_REG(&adapter->hw, IMC, ~0);
|
||||
E1000_WRITE_FLUSH(&adapter->hw);
|
||||
}
|
||||
- if (likely(netif_rx_schedule_prep(netdev, &adapter->napi))) {
|
||||
+ if (likely(napi_schedule_prep(&adapter->napi))) {
|
||||
adapter->total_tx_bytes = 0;
|
||||
adapter->total_tx_packets = 0;
|
||||
adapter->total_rx_bytes = 0;
|
||||
adapter->total_rx_packets = 0;
|
||||
- __netif_rx_schedule(netdev, &adapter->napi);
|
||||
+ __napi_schedule(&adapter->napi);
|
||||
} else
|
||||
/* this really should not happen! if it does it is basically a
|
||||
* bug, but not a hard error, so enable ints and continue */
|
||||
@@ -3574,7 +3574,7 @@ static int iegbe_clean(struct napi_struc
|
||||
if (work_done < budget) {
|
||||
if (likely(adapter->itr_setting & 3))
|
||||
iegbe_set_itr(adapter);
|
||||
- netif_rx_complete(poll_dev, napi);
|
||||
+ napi_complete(napi);
|
||||
iegbe_irq_enable(adapter);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
--- a/Embedded/src/GbE/iegbe.h
|
||||
+++ b/Embedded/src/GbE/iegbe.h
|
||||
@@ -316,7 +316,6 @@ struct iegbe_adapter {
|
||||
int cleaned_count);
|
||||
struct iegbe_rx_ring *rx_ring; /* One per active queue */
|
||||
struct napi_struct napi;
|
||||
- struct net_device *polling_netdev; /* One per active queue */
|
||||
|
||||
int num_tx_queues;
|
||||
int num_rx_queues;
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -763,7 +763,7 @@ static int __devinit iegbe_probe(struct
|
||||
struct iegbe_hw *hw;
|
||||
|
||||
static int cards_found = 0;
|
||||
- int i, err, pci_using_dac;
|
||||
+ int err, pci_using_dac;
|
||||
u16 eeprom_data = 0;
|
||||
u16 eeprom_apme_mask = E1000_EEPROM_APME;
|
||||
int bars;
|
||||
@@ -984,11 +984,8 @@ err_eeprom:
|
||||
iegbe_phy_hw_reset(hw);
|
||||
if (hw->flash_address)
|
||||
iounmap(hw->flash_address);
|
||||
- for (i = 0; i < adapter->num_rx_queues; i++)
|
||||
- dev_put(&adapter->polling_netdev[i]);
|
||||
kfree(adapter->tx_ring);
|
||||
kfree(adapter->rx_ring);
|
||||
- kfree(adapter->polling_netdev);
|
||||
err_sw_init:
|
||||
iounmap(hw->hw_addr);
|
||||
err_ioremap:
|
||||
@@ -1017,7 +1014,6 @@ iegbe_remove(struct pci_dev *pdev)
|
||||
struct net_device *netdev = pci_get_drvdata(pdev);
|
||||
struct iegbe_adapter *adapter = netdev_priv(netdev);
|
||||
uint32_t manc;
|
||||
- int i;
|
||||
|
||||
if(adapter->hw.mac_type >= iegbe_82540
|
||||
&& adapter->hw.mac_type != iegbe_icp_xxxx
|
||||
@@ -1030,15 +1026,11 @@ iegbe_remove(struct pci_dev *pdev)
|
||||
}
|
||||
|
||||
unregister_netdev(netdev);
|
||||
- for (i = 0x0; i < adapter->num_rx_queues; i++)
|
||||
- dev_put(&adapter->polling_netdev[i]);
|
||||
-
|
||||
if(!iegbe_check_phy_reset_block(&adapter->hw)) {
|
||||
iegbe_phy_hw_reset(&adapter->hw);
|
||||
}
|
||||
kfree(adapter->tx_ring);
|
||||
kfree(adapter->rx_ring);
|
||||
- kfree(adapter->polling_netdev);
|
||||
|
||||
iounmap(adapter->hw.hw_addr);
|
||||
pci_release_regions(pdev);
|
||||
@@ -1061,7 +1053,6 @@ iegbe_sw_init(struct iegbe_adapter *adap
|
||||
struct iegbe_hw *hw = &adapter->hw;
|
||||
struct net_device *netdev = adapter->netdev;
|
||||
struct pci_dev *pdev = adapter->pdev;
|
||||
- int i;
|
||||
|
||||
/* PCI config space info */
|
||||
|
||||
@@ -1111,11 +1102,6 @@ iegbe_sw_init(struct iegbe_adapter *adap
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
- for (i = 0; i < adapter->num_rx_queues; i++) {
|
||||
- adapter->polling_netdev[i].priv = adapter;
|
||||
- dev_hold(&adapter->polling_netdev[i]);
|
||||
- set_bit(__LINK_STATE_START, &adapter->polling_netdev[i].state);
|
||||
- }
|
||||
spin_lock_init(&adapter->tx_queue_lock);
|
||||
|
||||
/*
|
||||
@@ -1137,8 +1123,7 @@ iegbe_sw_init(struct iegbe_adapter *adap
|
||||
* @adapter: board private structure to initialize
|
||||
*
|
||||
* We allocate one ring per queue at run-time since we don't know the
|
||||
- * number of queues at compile-time. The polling_netdev array is
|
||||
- * intended for Multiqueue, but should work fine with a single queue.
|
||||
+ * number of queues at compile-time.
|
||||
**/
|
||||
|
||||
static int __devinit
|
||||
@@ -1158,15 +1143,6 @@ iegbe_alloc_queues(struct iegbe_adapter
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
- adapter->polling_netdev = kcalloc(adapter->num_rx_queues,
|
||||
- sizeof(struct net_device),
|
||||
- GFP_KERNEL);
|
||||
- if (!adapter->polling_netdev) {
|
||||
- kfree(adapter->tx_ring);
|
||||
- kfree(adapter->rx_ring);
|
||||
- return -ENOMEM;
|
||||
- }
|
||||
-
|
||||
return E1000_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -2161,7 +2161,8 @@ static void iegbe_set_rx_mode(struct net
|
||||
{
|
||||
struct iegbe_adapter *adapter = netdev_priv(netdev);
|
||||
struct iegbe_hw *hw = &adapter->hw;
|
||||
- struct dev_addr_list *uc_ptr;
|
||||
+ struct netdev_hw_addr *ha;
|
||||
+ bool use_uc = false;
|
||||
struct dev_addr_list *mc_ptr;
|
||||
u32 rctl;
|
||||
u32 hash_value;
|
||||
@@ -2187,12 +2188,11 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
}
|
||||
}
|
||||
|
||||
- uc_ptr = NULL;
|
||||
if (netdev->uc_count > rar_entries - 1) {
|
||||
rctl |= E1000_RCTL_UPE;
|
||||
} else if (!(netdev->flags & IFF_PROMISC)) {
|
||||
rctl &= ~E1000_RCTL_UPE;
|
||||
- uc_ptr = netdev->uc_list;
|
||||
+ use_uc = true;
|
||||
}
|
||||
|
||||
E1000_WRITE_REG(&adapter->hw, RCTL, rctl);
|
||||
@@ -2210,13 +2210,20 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
* if there are not 14 addresses, go ahead and clear the filters
|
||||
* -- with 82571 controllers only 0-13 entries are filled here
|
||||
*/
|
||||
+ i = 1;
|
||||
+ if (use_uc)
|
||||
+ list_for_each_entry(ha, &netdev->uc_list, list) {
|
||||
+ if (i == rar_entries)
|
||||
+ break;
|
||||
+ iegbe_rar_set(hw, ha->addr, i++);
|
||||
+ }
|
||||
+
|
||||
+ WARN_ON(i == rar_entries);
|
||||
+
|
||||
mc_ptr = netdev->mc_list;
|
||||
|
||||
- for (i = 1; i < rar_entries; i++) {
|
||||
- if (uc_ptr) {
|
||||
- iegbe_rar_set(hw, uc_ptr->da_addr, i);
|
||||
- uc_ptr = uc_ptr->next;
|
||||
- } else if (mc_ptr) {
|
||||
+ for (; i < rar_entries; i++) {
|
||||
+ if (mc_ptr) {
|
||||
iegbe_rar_set(hw, mc_ptr->da_addr, i);
|
||||
mc_ptr = mc_ptr->next;
|
||||
} else {
|
||||
@@ -2226,7 +2233,6 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
E1000_WRITE_FLUSH(&adapter->hw);
|
||||
}
|
||||
}
|
||||
- WARN_ON(uc_ptr != NULL);
|
||||
|
||||
/* clear the old settings from the multicast hash table */
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -2188,7 +2188,7 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
}
|
||||
}
|
||||
|
||||
- if (netdev->uc_count > rar_entries - 1) {
|
||||
+ if (netdev->uc.count > rar_entries - 1) {
|
||||
rctl |= E1000_RCTL_UPE;
|
||||
} else if (!(netdev->flags & IFF_PROMISC)) {
|
||||
rctl &= ~E1000_RCTL_UPE;
|
||||
@@ -2212,7 +2212,7 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
*/
|
||||
i = 1;
|
||||
if (use_uc)
|
||||
- list_for_each_entry(ha, &netdev->uc_list, list) {
|
||||
+ list_for_each_entry(ha, &netdev->uc.list, list) {
|
||||
if (i == rar_entries)
|
||||
break;
|
||||
iegbe_rar_set(hw, ha->addr, i++);
|
||||
@@ -0,0 +1,20 @@
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -775,13 +775,13 @@ static int __devinit iegbe_probe(struct
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
- if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK) &&
|
||||
- !pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) {
|
||||
+ if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) &&
|
||||
+ !pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) {
|
||||
pci_using_dac = 1;
|
||||
} else {
|
||||
- err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
|
||||
+ err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
|
||||
if (err) {
|
||||
- err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
|
||||
+ err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
|
||||
if (err) {
|
||||
E1000_ERR("No usable DMA configuration, "
|
||||
"aborting\n");
|
||||
@@ -0,0 +1,12 @@
|
||||
--- a/Embedded/src/GbE/iegbe_ethtool.c
|
||||
+++ b/Embedded/src/GbE/iegbe_ethtool.c
|
||||
@@ -944,7 +944,8 @@ iegbe_intr_test(struct iegbe_adapter *ad
|
||||
*data = 0;
|
||||
|
||||
/* Hook up test interrupt handler just for this test */
|
||||
- if(!request_irq(irq, &iegbe_test_intr, 0, netdev->name, netdev)) {
|
||||
+ if(!request_irq(irq, &iegbe_test_intr, IRQF_PROBE_SHARED, netdev->name,
|
||||
+ netdev)) {
|
||||
shared_int = FALSE;
|
||||
} else if(request_irq(irq, &iegbe_test_intr, IRQF_SHARED,
|
||||
netdev->name, netdev)){
|
||||
747
package/system/ep80579-drivers/patches/150-ocracoke_island.patch
Normal file
747
package/system/ep80579-drivers/patches/150-ocracoke_island.patch
Normal file
@@ -0,0 +1,747 @@
|
||||
--- a/Embedded/src/GbE/iegbe_oem_phy.c
|
||||
+++ b/Embedded/src/GbE/iegbe_oem_phy.c
|
||||
@@ -65,6 +65,10 @@ static int32_t iegbe_oem_link_m88_setup(
|
||||
static int32_t iegbe_oem_set_phy_mode(struct iegbe_hw *hw);
|
||||
static int32_t iegbe_oem_detect_phy(struct iegbe_hw *hw);
|
||||
|
||||
+static int32_t iegbe_oem_link_bcm5481_setup(struct iegbe_hw *hw);
|
||||
+static int32_t bcm5481_read_18sv (struct iegbe_hw *hw, int sv, uint16_t *data);
|
||||
+static int32_t oi_phy_setup (struct iegbe_hw *hw);
|
||||
+
|
||||
/**
|
||||
* iegbe_oem_setup_link
|
||||
* @hw: iegbe_hw struct containing device specific information
|
||||
@@ -114,6 +118,10 @@ iegbe_oem_setup_link(struct iegbe_hw *hw
|
||||
}
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ return E1000_SUCCESS;
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_link_m88_setup(hw);
|
||||
@@ -121,6 +129,12 @@ iegbe_oem_setup_link(struct iegbe_hw *hw
|
||||
return ret_val;
|
||||
}
|
||||
break;
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ ret_val = iegbe_oem_link_bcm5481_setup(hw);
|
||||
+ if(ret_val) {
|
||||
+ return ret_val;
|
||||
+ }
|
||||
+ break;
|
||||
default:
|
||||
DEBUGOUT("Invalid PHY ID\n");
|
||||
return -E1000_ERR_PHY_TYPE;
|
||||
@@ -179,6 +193,51 @@ iegbe_oem_setup_link(struct iegbe_hw *hw
|
||||
#endif /* ifdef EXTERNAL_MDIO */
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * iegbe_oem_link_bcm5481_setup
|
||||
+ * @hw: iegbe_hw struct containing device specific information
|
||||
+ *
|
||||
+ * Returns E1000_SUCCESS, negative E1000 error code on failure
|
||||
+ *
|
||||
+ * copied verbatim from iegbe_oem_link_m88_setup
|
||||
+ **/
|
||||
+static int32_t
|
||||
+iegbe_oem_link_bcm5481_setup(struct iegbe_hw *hw)
|
||||
+{
|
||||
+ int32_t ret_val;
|
||||
+ uint16_t phy_data;
|
||||
+
|
||||
+ //DEBUGFUNC(__func__);
|
||||
+
|
||||
+ if(!hw)
|
||||
+ return -1;
|
||||
+
|
||||
+ /* phy_reset_disable is set in iegbe_oem_set_phy_mode */
|
||||
+ if(hw->phy_reset_disable)
|
||||
+ return E1000_SUCCESS;
|
||||
+
|
||||
+ // Enable MDIX in extended control reg.
|
||||
+ ret_val = iegbe_oem_read_phy_reg_ex(hw, BCM5481_ECTRL, &phy_data);
|
||||
+ if(ret_val)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to read BCM5481_ECTRL register\n");
|
||||
+ return ret_val;
|
||||
+ }
|
||||
+
|
||||
+ phy_data &= ~BCM5481_ECTRL_DISMDIX;
|
||||
+ ret_val = iegbe_oem_write_phy_reg_ex(hw, BCM5481_ECTRL, phy_data);
|
||||
+ if(ret_val)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to write BCM5481_ECTRL register\n");
|
||||
+ return ret_val;
|
||||
+ }
|
||||
+
|
||||
+ ret_val = oi_phy_setup (hw);
|
||||
+ if (ret_val)
|
||||
+ return ret_val;
|
||||
+
|
||||
+ return E1000_SUCCESS;
|
||||
+}
|
||||
|
||||
/**
|
||||
* iegbe_oem_link_m88_setup
|
||||
@@ -340,6 +399,11 @@ iegbe_oem_force_mdi(struct iegbe_hw *hw,
|
||||
* see iegbe_phy_force_speed_duplex, which does the following for M88
|
||||
*/
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_force_mdi() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw,
|
||||
@@ -415,6 +479,8 @@ iegbe_oem_phy_reset_dsp(struct iegbe_hw
|
||||
switch (hw->phy_id) {
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ case BCM5395S_PHY_ID:
|
||||
DEBUGOUT("No DSP to reset on OEM PHY\n");
|
||||
break;
|
||||
default:
|
||||
@@ -460,6 +526,11 @@ iegbe_oem_cleanup_after_phy_reset(struct
|
||||
* see iegbe_phy_force_speed_duplex, which does the following for M88
|
||||
*/
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_cleanup_after_phy_reset() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
/*
|
||||
@@ -573,6 +644,11 @@ iegbe_oem_set_phy_mode(struct iegbe_hw *
|
||||
* use iegbe_set_phy_mode as example
|
||||
*/
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_set_phy_mode() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_read_eeprom(hw,
|
||||
@@ -641,6 +717,19 @@ iegbe_oem_detect_phy(struct iegbe_hw *hw
|
||||
}
|
||||
hw->phy_type = iegbe_phy_oem;
|
||||
|
||||
+{
|
||||
+ // If MAC2 (BCM5395 switch), manually detect the phy
|
||||
+ struct iegbe_adapter *adapter;
|
||||
+ uint32_t device_number;
|
||||
+ adapter = (struct iegbe_adapter *) hw->back;
|
||||
+ device_number = PCI_SLOT(adapter->pdev->devfn);
|
||||
+ if (device_number == ICP_XXXX_MAC_2) {
|
||||
+ hw->phy_id = BCM5395S_PHY_ID;
|
||||
+ hw->phy_revision = 0;
|
||||
+ return E1000_SUCCESS;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw, PHY_ID1, &phy_id_high);
|
||||
if(ret_val) {
|
||||
DEBUGOUT("Unable to read PHY register PHY_ID1\n");
|
||||
@@ -690,6 +779,8 @@ iegbe_oem_get_tipg(struct iegbe_hw *hw)
|
||||
switch (hw->phy_id) {
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ case BCM5395S_PHY_ID:
|
||||
phy_num = DEFAULT_ICP_XXXX_TIPG_IPGT;
|
||||
break;
|
||||
default:
|
||||
@@ -738,6 +829,8 @@ iegbe_oem_phy_is_copper(struct iegbe_hw
|
||||
switch (hw->phy_id) {
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ case BCM5395S_PHY_ID:
|
||||
isCopper = TRUE;
|
||||
break;
|
||||
default:
|
||||
@@ -796,13 +889,13 @@ iegbe_oem_get_phy_dev_number(struct iegb
|
||||
switch(device_number)
|
||||
{
|
||||
case ICP_XXXX_MAC_0:
|
||||
- hw->phy_addr = 0x00;
|
||||
+ hw->phy_addr = 0x01;
|
||||
break;
|
||||
case ICP_XXXX_MAC_1:
|
||||
- hw->phy_addr = 0x01;
|
||||
+ hw->phy_addr = 0x02;
|
||||
break;
|
||||
case ICP_XXXX_MAC_2:
|
||||
- hw->phy_addr = 0x02;
|
||||
+ hw->phy_addr = 0x00;
|
||||
break;
|
||||
default: hw->phy_addr = 0x00;
|
||||
}
|
||||
@@ -851,6 +944,12 @@ iegbe_oem_mii_ioctl(struct iegbe_adapter
|
||||
if(!adapter || !ifr) {
|
||||
return -1;
|
||||
}
|
||||
+
|
||||
+ // If MAC2 (BCM5395 switch) then leave now
|
||||
+ if ((PCI_SLOT(adapter->pdev->devfn)) == ICP_XXXX_MAC_2) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
switch (data->reg_num) {
|
||||
case PHY_CTRL:
|
||||
if(mii_reg & MII_CR_POWER_DOWN) {
|
||||
@@ -987,6 +1086,11 @@ void iegbe_oem_get_phy_regs(struct iegbe
|
||||
* [10] = mdix mode
|
||||
*/
|
||||
switch (adapter->hw.phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_get_phy_regs() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
if(corrected_len > 0) {
|
||||
@@ -1068,8 +1172,13 @@ iegbe_oem_phy_loopback(struct iegbe_adap
|
||||
* Loopback configuration is the same for each of the supported PHYs.
|
||||
*/
|
||||
switch (adapter->hw.phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_phy_loopback() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
|
||||
adapter->hw.autoneg = FALSE;
|
||||
|
||||
@@ -1182,8 +1291,14 @@ iegbe_oem_loopback_cleanup(struct iegbe_
|
||||
}
|
||||
|
||||
switch (adapter->hw.phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_loopback_cleanup() has been called!\n");
|
||||
+ return;
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
default:
|
||||
adapter->hw.autoneg = TRUE;
|
||||
|
||||
@@ -1243,6 +1358,11 @@ iegbe_oem_phy_speed_downgraded(struct ie
|
||||
*/
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ *isDowngraded = 0;
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw, M88E1000_PHY_SPEC_STATUS,
|
||||
@@ -1305,6 +1425,11 @@ iegbe_oem_check_polarity(struct iegbe_hw
|
||||
*/
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ *polarity = 0;
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
/* return the Polarity bit in the Status register. */
|
||||
@@ -1367,6 +1492,25 @@ iegbe_oem_phy_is_full_duplex(struct iegb
|
||||
*/
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ /* Always full duplex */
|
||||
+ *isFD = 1;
|
||||
+ break;
|
||||
+
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ ret_val = iegbe_read_phy_reg(hw, BCM5481_ASTAT, &phy_data);
|
||||
+ if(ret_val) return ret_val;
|
||||
+
|
||||
+ switch (BCM5481_ASTAT_HCD(phy_data)) {
|
||||
+ case BCM5481_ASTAT_1KBTFD:
|
||||
+ case BCM5481_ASTAT_100BTXFD:
|
||||
+ *isFD = 1;
|
||||
+ break;
|
||||
+ default:
|
||||
+ *isFD = 0;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw, M88E1000_PHY_SPEC_STATUS,
|
||||
@@ -1423,6 +1567,25 @@ iegbe_oem_phy_is_speed_1000(struct iegbe
|
||||
*/
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ /* Always 1000mb */
|
||||
+ *is1000 = 1;
|
||||
+ break;
|
||||
+
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ ret_val = iegbe_read_phy_reg(hw, BCM5481_ASTAT, &phy_data);
|
||||
+ if(ret_val) return ret_val;
|
||||
+
|
||||
+ switch (BCM5481_ASTAT_HCD(phy_data)) {
|
||||
+ case BCM5481_ASTAT_1KBTFD:
|
||||
+ case BCM5481_ASTAT_1KBTHD:
|
||||
+ *is1000 = 1;
|
||||
+ break;
|
||||
+ default:
|
||||
+ *is1000 = 0;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw, M88E1000_PHY_SPEC_STATUS,
|
||||
@@ -1478,6 +1641,25 @@ iegbe_oem_phy_is_speed_100(struct iegbe_
|
||||
* see iegbe_config_mac_to_phy
|
||||
*/
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ /* Always 1000Mb, never 100mb */
|
||||
+ *is100 = 0;
|
||||
+ break;
|
||||
+
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ ret_val = iegbe_read_phy_reg(hw, BCM5481_ASTAT, &phy_data);
|
||||
+ if(ret_val) return ret_val;
|
||||
+
|
||||
+ switch (BCM5481_ASTAT_HCD(phy_data)) {
|
||||
+ case BCM5481_ASTAT_100BTXFD:
|
||||
+ case BCM5481_ASTAT_100BTXHD:
|
||||
+ *is100 = 1;
|
||||
+ break;
|
||||
+ default:
|
||||
+ *is100 = 0;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw,
|
||||
@@ -1535,6 +1717,11 @@ iegbe_oem_phy_get_info(struct iegbe_hw *
|
||||
* see iegbe_phy_m88_get_info
|
||||
*/
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_phy_get_info() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
/* The downshift status is checked only once, after link is
|
||||
@@ -1636,8 +1823,13 @@ iegbe_oem_phy_hw_reset(struct iegbe_hw *
|
||||
* the M88 used in truxton.
|
||||
*/
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_phy_hw_reset() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw, PHY_CTRL, &phy_data);
|
||||
if(ret_val) {
|
||||
DEBUGOUT("Unable to read register PHY_CTRL\n");
|
||||
@@ -1699,6 +1891,8 @@ iegbe_oem_phy_init_script(struct iegbe_h
|
||||
switch (hw->phy_id) {
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ case BCM5395S_PHY_ID:
|
||||
DEBUGOUT("Nothing to do for OEM PHY Init");
|
||||
break;
|
||||
default:
|
||||
@@ -1735,6 +1929,11 @@ iegbe_oem_read_phy_reg_ex(struct iegbe_h
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ if (hw->phy_id == BCM5395S_PHY_ID) {
|
||||
+ DEBUGOUT("WARNING: iegbe_oem_read_phy_reg_ex() has been unexpectedly called!\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
/* call the GCU func that will read the phy
|
||||
*
|
||||
* Make note that the M88 phy is what'll be used on Truxton.
|
||||
@@ -1782,6 +1981,11 @@ iegbe_oem_set_trans_gasket(struct iegbe_
|
||||
}
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ DEBUGOUT("WARNING: An empty iegbe_oem_set_trans_gasket() has been called!\n");
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
/* Gasket set correctly for Marvell Phys, so nothing to do */
|
||||
@@ -1886,6 +2090,8 @@ iegbe_oem_phy_needs_reset_with_mac(struc
|
||||
switch (hw->phy_id) {
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ case BCM5395S_PHY_ID:
|
||||
ret_val = FALSE;
|
||||
break;
|
||||
default:
|
||||
@@ -1935,6 +2141,8 @@ iegbe_oem_config_dsp_after_link_change(s
|
||||
switch (hw->phy_id) {
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ case BCM5395S_PHY_ID:
|
||||
DEBUGOUT("No DSP to configure on OEM PHY");
|
||||
break;
|
||||
default:
|
||||
@@ -1978,6 +2186,12 @@ iegbe_oem_get_cable_length(struct iegbe_
|
||||
}
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ *min_length = 0;
|
||||
+ *max_length = iegbe_igp_cable_length_150;
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
ret_val = iegbe_oem_read_phy_reg_ex(hw,
|
||||
@@ -2061,6 +2275,23 @@ iegbe_oem_phy_is_link_up(struct iegbe_hw
|
||||
*/
|
||||
|
||||
switch (hw->phy_id) {
|
||||
+ case BCM5395S_PHY_ID:
|
||||
+ /* Link always up */
|
||||
+ *isUp = TRUE;
|
||||
+ return E1000_SUCCESS;
|
||||
+ break;
|
||||
+
|
||||
+ case BCM5481_PHY_ID:
|
||||
+ iegbe_oem_read_phy_reg_ex(hw, BCM5481_ESTAT, &phy_data);
|
||||
+ ret_val = iegbe_oem_read_phy_reg_ex(hw, BCM5481_ESTAT, &phy_data);
|
||||
+ if(ret_val)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to read PHY register BCM5481_ESTAT\n");
|
||||
+ return ret_val;
|
||||
+ }
|
||||
+ statusMask = BCM5481_ESTAT_LINK;
|
||||
+ break;
|
||||
+
|
||||
case M88E1000_I_PHY_ID:
|
||||
case M88E1141_E_PHY_ID:
|
||||
iegbe_oem_read_phy_reg_ex(hw, M88E1000_PHY_SPEC_STATUS, &phy_data);
|
||||
@@ -2092,3 +2323,210 @@ iegbe_oem_phy_is_link_up(struct iegbe_hw
|
||||
#endif /* ifdef EXTERNAL_MDIO */
|
||||
}
|
||||
|
||||
+
|
||||
+
|
||||
+//-----
|
||||
+// Read BCM5481 expansion register
|
||||
+//
|
||||
+int32_t
|
||||
+bcm5481_read_ex (struct iegbe_hw *hw, uint16_t reg, uint16_t *data)
|
||||
+{
|
||||
+ int ret;
|
||||
+ uint16_t selector;
|
||||
+ uint16_t reg_data;
|
||||
+
|
||||
+ // Get the current value of bits 15:12
|
||||
+ ret = iegbe_oem_read_phy_reg_ex (hw, 0x15, &selector);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ // Select the expansion register
|
||||
+ selector &= 0xf000;
|
||||
+ selector |= (0xf << 8) | (reg);
|
||||
+ iegbe_oem_write_phy_reg_ex (hw, 0x17, selector);
|
||||
+
|
||||
+ // Read the expansion register
|
||||
+ ret = iegbe_oem_read_phy_reg_ex (hw, 0x15, ®_data);
|
||||
+
|
||||
+ // De-select the expansion registers.
|
||||
+ selector &= 0xf000;
|
||||
+ iegbe_oem_write_phy_reg_ex (hw, 0x17, selector);
|
||||
+
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ *data = reg_data;
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+//-----
|
||||
+// Read reg 0x18 sub-register
|
||||
+//
|
||||
+static int32_t
|
||||
+bcm5481_read_18sv (struct iegbe_hw *hw, int sv, uint16_t *data)
|
||||
+{
|
||||
+ int ret;
|
||||
+ uint16_t tmp_data;
|
||||
+
|
||||
+ // Select reg 0x18, sv
|
||||
+ tmp_data = ((sv & BCM5481_R18H_SV_MASK) << 12) | BCM5481_R18H_SV_MCTRL;
|
||||
+ ret = iegbe_oem_write_phy_reg_ex (hw, BCM5481_R18H, tmp_data);
|
||||
+ if(ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ // Read reg 0x18, sv
|
||||
+ ret = iegbe_oem_read_phy_reg_ex (hw, BCM5481_R18H, &tmp_data);
|
||||
+ if(ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ *data = tmp_data;
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+//-----
|
||||
+// Read reg 0x1C sub-register
|
||||
+//
|
||||
+int32_t
|
||||
+bcm5481_read_1csv (struct iegbe_hw *hw, int sv, uint16_t *data)
|
||||
+{
|
||||
+ int ret;
|
||||
+ uint16_t tmp_data;
|
||||
+
|
||||
+ // Select reg 0x1c, sv
|
||||
+ tmp_data = ((sv & BCM5481_R1CH_SV_MASK) << BCM5481_R1CH_SV_SHIFT);
|
||||
+
|
||||
+ ret = iegbe_oem_write_phy_reg_ex (hw, BCM5481_R1CH, tmp_data);
|
||||
+ if(ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ // Read reg 0x1c, sv
|
||||
+ ret = iegbe_oem_read_phy_reg_ex (hw, BCM5481_R1CH, &tmp_data);
|
||||
+ if(ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ *data = tmp_data;
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+//-----
|
||||
+// Read-modify-write a 0x1C register.
|
||||
+//
|
||||
+// hw - hardware access info.
|
||||
+// reg - 0x1C register to modify.
|
||||
+// data - bits which should be set.
|
||||
+// mask - the '1' bits in this argument will be cleared in the data
|
||||
+// read from 'reg' then 'data' will be or'd in and the result
|
||||
+// will be written to 'reg'.
|
||||
+
|
||||
+int32_t
|
||||
+bcm5481_rmw_1csv (struct iegbe_hw *hw, uint16_t reg, uint16_t data, uint16_t mask)
|
||||
+{
|
||||
+ int32_t ret;
|
||||
+ uint16_t reg_data;
|
||||
+
|
||||
+ ret = 0;
|
||||
+
|
||||
+ ret = bcm5481_read_1csv (hw, reg, ®_data);
|
||||
+ if (ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to read BCM5481 1CH register\n");
|
||||
+ printk (KERN_ERR "Unable to read BCM5481 1CH register [0x%x]\n", reg);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ reg_data &= ~mask;
|
||||
+ reg_data |= (BCM5481_R1CH_WE | data);
|
||||
+
|
||||
+ ret = iegbe_oem_write_phy_reg_ex (hw, BCM5481_R1CH, reg_data);
|
||||
+ if(ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to write BCM5481 1CH register\n");
|
||||
+ printk (KERN_ERR "Unable to write BCM5481 1CH register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+int32_t
|
||||
+oi_phy_setup (struct iegbe_hw *hw)
|
||||
+{
|
||||
+ int ret;
|
||||
+ uint16_t pmii_data;
|
||||
+ uint16_t mctrl_data;
|
||||
+ uint16_t cacr_data;
|
||||
+
|
||||
+ ret = 0;
|
||||
+
|
||||
+ // Set low power mode via reg 0x18, sv010, bit 6
|
||||
+ // Do a read-modify-write on reg 0x18, sv010 register to preserve existing bits.
|
||||
+ ret = bcm5481_read_18sv (hw, BCM5481_R18H_SV_PMII, &pmii_data);
|
||||
+ if (ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to read BCM5481_R18H_SV_PMII register\n");
|
||||
+ printk (KERN_ERR "Unable to read BCM5481_R18H_SV_PMII register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ // Set the LPM bit in the data just read and write back to sv010
|
||||
+ // The shadow register select bits [2:0] are set by reading the sv010
|
||||
+ // register.
|
||||
+ pmii_data |= BCM5481_R18H_SV010_LPM;
|
||||
+ ret = iegbe_oem_write_phy_reg_ex (hw, BCM5481_R18H, pmii_data);
|
||||
+ if(ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to write BCM5481_R18H register\n");
|
||||
+ printk (KERN_ERR "Unable to write BCM5481_R18H register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ // Set the RGMII RXD to RXC skew bit in reg 0x18, sv111
|
||||
+
|
||||
+ if (bcm5481_read_18sv (hw, BCM5481_R18H_SV_MCTRL, &mctrl_data))
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to read BCM5481_R18H_SV_MCTRL register\n");
|
||||
+ printk (KERN_ERR "Unable to read BCM5481_R18H_SV_MCTRL register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+ mctrl_data |= (BCM5481_R18H_WE | BCM5481_R18H_SV111_SKEW);
|
||||
+
|
||||
+ ret = iegbe_oem_write_phy_reg_ex (hw, BCM5481_R18H, mctrl_data);
|
||||
+ if(ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to write BCM5481_R18H register\n");
|
||||
+ printk (KERN_ERR "Unable to write BCM5481_R18H register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ // Enable RGMII transmit clock delay in reg 0x1c, sv00011
|
||||
+ ret = bcm5481_read_1csv (hw, BCM5481_R1CH_CACR, &cacr_data);
|
||||
+ if (ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to read BCM5481_R1CH_CACR register\n");
|
||||
+ printk (KERN_ERR "Unable to read BCM5481_R1CH_CACR register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ cacr_data |= (BCM5481_R1CH_WE | BCM5481_R1CH_CACR_TCD);
|
||||
+
|
||||
+ ret = iegbe_oem_write_phy_reg_ex (hw, BCM5481_R1CH, cacr_data);
|
||||
+ if(ret)
|
||||
+ {
|
||||
+ DEBUGOUT("Unable to write BCM5481_R1CH register\n");
|
||||
+ printk (KERN_ERR "Unable to write BCM5481_R1CH register\n");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ // Enable dual link speed indication (0x1c, sv 00010, bit 2)
|
||||
+ ret = bcm5481_rmw_1csv (hw, BCM5481_R1CH_SC1, BCM5481_R1CH_SC1_LINK, BCM5481_R1CH_SC1_LINK);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ // Enable link and activity on ACTIVITY LED (0x1c, sv 01001, bit 4=1, bit 3=0)
|
||||
+ ret = bcm5481_rmw_1csv (hw, BCM5481_R1CH_LCTRL, BCM5481_R1CH_LCTRL_ALEN, BCM5481_R1CH_LCTRL_ALEN | BCM5481_R1CH_LCTRL_AEN);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
--- a/Embedded/src/GbE/iegbe_oem_phy.h
|
||||
+++ b/Embedded/src/GbE/iegbe_oem_phy.h
|
||||
@@ -95,6 +95,8 @@ int32_t iegbe_oem_phy_is_link_up(struct
|
||||
|
||||
#define DEFAULT_ICP_XXXX_TIPG_IPGT 8 /* Inter Packet Gap Transmit Time */
|
||||
#define ICP_XXXX_TIPG_IPGT_MASK 0x000003FFUL
|
||||
+#define BCM5481_PHY_ID 0x0143BCA0
|
||||
+#define BCM5395S_PHY_ID 0x0143BCF0
|
||||
|
||||
/* Miscellaneous defines */
|
||||
#ifdef IEGBE_10_100_ONLY
|
||||
@@ -103,5 +105,65 @@ int32_t iegbe_oem_phy_is_link_up(struct
|
||||
#define ICP_XXXX_AUTONEG_ADV_DEFAULT 0x2F
|
||||
#endif
|
||||
|
||||
+/* BCM5481 specifics */
|
||||
+
|
||||
+#define BCM5481_ECTRL (0x10)
|
||||
+#define BCM5481_ESTAT (0x11)
|
||||
+#define BCM5481_RXERR (0x12)
|
||||
+#define BCM5481_EXPRW (0x15)
|
||||
+#define BCM5481_EXPACC (0x17)
|
||||
+#define BCM5481_ASTAT (0x19)
|
||||
+#define BCM5481_R18H (0x18)
|
||||
+#define BCM5481_R1CH (0x1c)
|
||||
+
|
||||
+/* indirect register access via register 18h */
|
||||
+
|
||||
+#define BCM5481_R18H_SV_MASK (7) // Mask for SV bits.
|
||||
+#define BCM5481_R18H_SV_ACTRL (0) // SV000 Aux. control
|
||||
+#define BCM5481_R18H_SV_10BT (1) // SV001 10Base-T
|
||||
+#define BCM5481_R18H_SV_PMII (2) // SV010 Power/MII control
|
||||
+#define BCM5481_R18H_SV_MTEST (4) // SV100 Misc. test
|
||||
+#define BCM5481_R18H_SV_MCTRL (7) // SV111 Misc. control
|
||||
+
|
||||
+#define BCM5481_R18H_SV001_POL (1 << 13) // Polarity
|
||||
+#define BCM5481_R18H_SV010_LPM (1 << 6)
|
||||
+#define BCM5481_R18H_SV111_SKEW (1 << 8)
|
||||
+#define BCM5481_R18H_WE (1 << 15) // Write enable
|
||||
+
|
||||
+// 0x1c registers
|
||||
+#define BCM5481_R1CH_SV_SHIFT (10)
|
||||
+#define BCM5481_R1CH_SV_MASK (0x1f)
|
||||
+#define BCM5481_R1CH_SC1 (0x02) // sv00010 Spare control 1
|
||||
+#define BCM5481_R1CH_CACR (0x03) // sv00011 Clock alignment control
|
||||
+#define BCM5481_R1CH_LCTRL (0x09) // sv01001 LED control
|
||||
+#define BCM5481_R1CH_LEDS1 (0x0d) // sv01101 LED selector 1
|
||||
+
|
||||
+// 0x1c common
|
||||
+#define BCM5481_R1CH_WE (1 << 15) // Write enable
|
||||
+
|
||||
+// 0x1c, sv 00010
|
||||
+#define BCM5481_R1CH_SC1_LINK (1 << 2) // sv00010 Linkspeed
|
||||
+
|
||||
+// 0x1c, sv 00011
|
||||
+#define BCM5481_R1CH_CACR_TCD (1 << 9) // sv00011 RGMII tx clock delay
|
||||
+
|
||||
+// 0x1c, sv 01001
|
||||
+#define BCM5481_R1CH_LCTRL_ALEN (1 << 4) // Activity/Link enable on ACTIVITY LED
|
||||
+#define BCM5481_R1CH_LCTRL_AEN (1 << 3) // Activity enable on ACTIVITY LED
|
||||
+
|
||||
+#define BCM5481_ECTRL_DISMDIX (1 <<14)
|
||||
+
|
||||
+#define BCM5481_MCTRL_AUTOMDIX (1 <<9)
|
||||
+
|
||||
+#define BCM5481_ESTAT_LINK (1 << 8)
|
||||
+
|
||||
+#define BCM5481_ASTAT_ANC (1 << 15)
|
||||
+#define BCM5481_ASTAT_ANHCD (7 << 8)
|
||||
+#define BCM5481_ASTAT_HCD(x) ((x >> 8) & 7)
|
||||
+#define BCM5481_ASTAT_1KBTFD (0x7)
|
||||
+#define BCM5481_ASTAT_1KBTHD (0x6)
|
||||
+#define BCM5481_ASTAT_100BTXFD (0x5)
|
||||
+#define BCM5481_ASTAT_100BTXHD (0x3)
|
||||
+
|
||||
#endif /* ifndef _IEGBE_OEM_PHY_H_ */
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/Embedded/src/CAN/icp_can_user.h
|
||||
+++ b/Embedded/src/CAN/icp_can_user.h
|
||||
@@ -63,6 +63,8 @@
|
||||
#ifndef __ICP_CAN_USER_H__
|
||||
#define __ICP_CAN_USER_H__
|
||||
|
||||
+#include <linux/ioctl.h>
|
||||
+
|
||||
/*****************************************************************************
|
||||
* Device IO control codes.
|
||||
*****************************************************************************/
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/Embedded/src/CAN/can_main.c
|
||||
+++ b/Embedded/src/CAN/can_main.c
|
||||
@@ -70,6 +70,8 @@
|
||||
|
||||
#include "can_main.h"
|
||||
#include "can_ioctl.h"
|
||||
+#include <linux/fs.h>
|
||||
+
|
||||
|
||||
MODULE_AUTHOR("Intel(R) Corporation");
|
||||
MODULE_DESCRIPTION("Controller Area Network Driver");
|
||||
@@ -0,0 +1,23 @@
|
||||
--- a/Embedded/src/CAN/can_main.c
|
||||
+++ b/Embedded/src/CAN/can_main.c
|
||||
@@ -654,7 +654,7 @@ int can_dev_io(struct inode *inode, stru
|
||||
/*****************************************************************************
|
||||
* Interrupt handler.
|
||||
*****************************************************************************/
|
||||
-irqreturn_t can_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
|
||||
+irqreturn_t can_irq_handler(int irq, void *dev_id)
|
||||
{
|
||||
can_os_t *can_os = (can_os_t *) dev_id;
|
||||
unsigned int int_status;
|
||||
--- a/Embedded/src/CAN/can_main.h
|
||||
+++ b/Embedded/src/CAN/can_main.h
|
||||
@@ -165,8 +165,7 @@ int can_dev_io(
|
||||
|
||||
irqreturn_t can_irq_handler(
|
||||
int irq,
|
||||
- void *dev_id,
|
||||
- struct pt_regs *regs);
|
||||
+ void *dev_id);
|
||||
|
||||
void can_tasklet(
|
||||
unsigned long arg
|
||||
@@ -0,0 +1,40 @@
|
||||
--- a/Embedded/src/CAN/can_main.c
|
||||
+++ b/Embedded/src/CAN/can_main.c
|
||||
@@ -214,8 +214,8 @@ int can_pci_probe(struct pci_dev *dev, c
|
||||
spin_lock_init(&(g_can_os[can_num].int_spinlock));
|
||||
spin_lock_init(&(g_can_os[can_num].open_spinlock));
|
||||
|
||||
- dev->dev.driver_data = (void *) &(g_can_os[can_num]);
|
||||
- if (!dev->dev.driver_data)
|
||||
+ dev_set_drvdata(&dev->dev, (void *) &(g_can_os[can_num]));
|
||||
+ if (!dev_get_drvdata(&dev->dev))
|
||||
{
|
||||
printk("Couldn't create CAN device %d. Exiting.\n",
|
||||
dev->device);
|
||||
@@ -237,7 +237,7 @@ int can_pci_probe(struct pci_dev *dev, c
|
||||
*****************************************************************************/
|
||||
void can_pci_remove(struct pci_dev *dev)
|
||||
{
|
||||
- can_os_t *can_os = dev->dev.driver_data;
|
||||
+ can_os_t *can_os = dev_get_drvdata(&dev->dev);
|
||||
|
||||
iounmap(can_os->pci_remap);
|
||||
icp_can_destroy(can_os->can);
|
||||
@@ -251,7 +251,7 @@ int can_pci_suspend(struct pci_dev *dev,
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int int_status;
|
||||
- can_os_t *can_os = dev->dev.driver_data;
|
||||
+ can_os_t *can_os = dev_get_drvdata(&dev->dev);
|
||||
int err;
|
||||
|
||||
/* Indicate that we are suspending */
|
||||
@@ -322,7 +322,7 @@ int can_pci_suspend(struct pci_dev *dev,
|
||||
int can_pci_resume(struct pci_dev *dev)
|
||||
{
|
||||
unsigned int i;
|
||||
- can_os_t *can_os = dev->dev.driver_data;
|
||||
+ can_os_t *can_os = dev_get_drvdata(&dev->dev);
|
||||
|
||||
/* Restore PCI CFG space */
|
||||
pci_restore_state(dev);
|
||||
@@ -0,0 +1,59 @@
|
||||
--- a/Embedded/src/WDT/iwdt.c
|
||||
+++ b/Embedded/src/WDT/iwdt.c
|
||||
@@ -180,19 +180,19 @@ MODULE_PARM_DESC(wdt_scale, "Intel WDT s
|
||||
module_param(wdt_intr_type, byte, WDT_INT_TYPE_IRQ);
|
||||
MODULE_PARM_DESC(wdt_intr_type, "Intel WDT interrupt type (default SERIRQ).");
|
||||
|
||||
-module_param(wdt_margin1, uint, TIMER_MARGIN);
|
||||
+module_param(wdt_margin1, uint, 0);
|
||||
MODULE_PARM_DESC(wdt_margin1, "First stage Intel WDT timeout in steps of 1 ms by default.");
|
||||
|
||||
-module_param(wdt_margin2, uint, TIMER_MARGIN);
|
||||
+module_param(wdt_margin2, uint, 0);
|
||||
MODULE_PARM_DESC(wdt_margin2, "Second stage Intel WDT timeout in steps of 1 ms by default.");
|
||||
|
||||
module_param(nowayout, int, 0);
|
||||
MODULE_PARM_DESC(nowayout, "Intel WDT can't be stopped once started (default=0)");
|
||||
|
||||
-module_param(wdt_index_port, int, 0x4E);
|
||||
+module_param(wdt_index_port, int, 0);
|
||||
MODULE_PARM_DESC(wdt_index_port, "WDT Index Port (default 0x4e)");
|
||||
|
||||
-module_param(wdt_data_port, int, 0x4E);
|
||||
+module_param(wdt_data_port, int, 0);
|
||||
MODULE_PARM_DESC(wdt_data_port, "WDT Data Port (default 0x4f)");
|
||||
|
||||
static int wdt_get_iobase(struct pci_dev *dev, u16 *iobase, int *irq);
|
||||
@@ -218,7 +218,7 @@ static ssize_t wdt_write(struct file *fi
|
||||
size_t count, loff_t * pos);
|
||||
static int wdt_ioctl(struct inode *inode, struct file *file,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
-static irqreturn_t wdt_isr(int irq, void *dev_id, struct pt_regs *regs);
|
||||
+static irqreturn_t wdt_isr(int irq, void *dev_id);
|
||||
static void __exit wdt_cleanup(void);
|
||||
static int __init wdt_init(void);
|
||||
static int __init wdt_init_one(struct pci_dev *dev,
|
||||
@@ -255,7 +255,7 @@ static struct pci_driver wdt_driver = {
|
||||
name: "iwdt",
|
||||
id_table: lpc_pci_tbl,
|
||||
probe: wdt_init_one,
|
||||
- remove: __devexit(wdt_remove_one),
|
||||
+ remove: __devexit_p(wdt_remove_one),
|
||||
suspend: wdt_pci_suspend,
|
||||
resume: wdt_pci_resume,
|
||||
};
|
||||
@@ -1393,12 +1393,12 @@ static int wdt_ioctl(struct inode *inode
|
||||
|
||||
/*
|
||||
* Function Name: wdt_isr()
|
||||
- * Parameter: int irq - irq number, void *dev_id, struct pt_regs *regs
|
||||
+ * Parameter: int irq - irq number, void *dev_id
|
||||
* Return Value:: IRQ_NONE - if the interrupt is not for wdt.
|
||||
* IRQ_HANDLED - if it is for wdt.
|
||||
* Description: This is the interrupt service routine of the WDT.
|
||||
*/
|
||||
-static irqreturn_t wdt_isr(int irq, void *dev_id, struct pt_regs *regs)
|
||||
+static irqreturn_t wdt_isr(int irq, void *dev_id)
|
||||
{
|
||||
u8 val;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
--- a/Embedded/src/EDMA/dma_linux.c
|
||||
+++ b/Embedded/src/EDMA/dma_linux.c
|
||||
@@ -149,8 +149,7 @@ int32_t edma_suspend (struct pci_dev *de
|
||||
int32_t edma_resume(struct pci_dev *dev);
|
||||
int32_t initialize_edma_device(struct edma_device *device);
|
||||
|
||||
-static irqreturn_t edma_irq_handler(int32_t irq, void * dev_id,
|
||||
- struct pt_regs * regs);
|
||||
+static irqreturn_t edma_irq_handler(int32_t irq, void * dev_id);
|
||||
|
||||
/* Prototypes - Misc. */
|
||||
|
||||
@@ -429,8 +428,7 @@ int32_t edma_release(struct inode * inod
|
||||
* Return Values: HANDLED = 1, NOT_HANDLED = 0
|
||||
*****************************************************************************/
|
||||
|
||||
-static irqreturn_t edma_irq_handler(int32_t irq, void * dev_id,
|
||||
- struct pt_regs * regs)
|
||||
+static irqreturn_t edma_irq_handler(int32_t irq, void * dev_id)
|
||||
{
|
||||
|
||||
uint32_t clear_bits;
|
||||
@@ -0,0 +1,22 @@
|
||||
--- a/Embedded/src/1588/1588.c
|
||||
+++ b/Embedded/src/1588/1588.c
|
||||
@@ -631,7 +631,7 @@ int restore_interrupts(void)
|
||||
IRQ_NONE => this device did not interrupt
|
||||
|
||||
******************************************************************************/
|
||||
-irqreturn_t timesync_isr(int irq, void *dev_id, struct pt_regs *regs)
|
||||
+irqreturn_t timesync_isr(int irq, void *dev_id)
|
||||
{
|
||||
if ( !ixTimeSyncAccEventAmmsFlagGet() && !ixTimeSyncAccEventAsmsFlagGet()&&
|
||||
!ixTimeSyncAccEventAtmFlagGet() && !ixTimeSyncAccEventPpsmFlagGet()&&
|
||||
--- a/Embedded/src/1588/1588.h
|
||||
+++ b/Embedded/src/1588/1588.h
|
||||
@@ -128,7 +128,7 @@ int pci_suspend(struct pci_dev *dev, pm_
|
||||
int pci_resume(struct pci_dev *dev);
|
||||
int pci_probe(struct pci_dev *dev, const struct pci_device_id *id);
|
||||
void pci_remove(struct pci_dev *dev);
|
||||
-irqreturn_t timesync_isr(int irq, void *dev_id, struct pt_regs *regs);
|
||||
+irqreturn_t timesync_isr(int irq, void *dev_id);
|
||||
|
||||
// private functions
|
||||
int save_reg_state(void);
|
||||
@@ -0,0 +1,22 @@
|
||||
--- a/Embedded/src/CAN/can_main.h
|
||||
+++ b/Embedded/src/CAN/can_main.h
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/pci.h>
|
||||
-#include <asm/semaphore.h>
|
||||
+#include <linux/semaphore.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/cdev.h>
|
||||
#include <asm/uaccess.h>
|
||||
--- a/Embedded/src/EDMA/dma_linux.c
|
||||
+++ b/Embedded/src/EDMA/dma_linux.c
|
||||
@@ -87,7 +87,7 @@
|
||||
#include <linux/fcntl.h> /* O_ACCMODE */
|
||||
#include <asm/system.h> /* cli, *_flags */
|
||||
#include <asm/uaccess.h> /* copy_to_user */
|
||||
-#include <asm/semaphore.h>
|
||||
+#include <linux/semaphore.h>
|
||||
#include <asm/io.h> /* inb(), outb() */
|
||||
#include <linux/kmod.h>
|
||||
#include <linux/ioport.h> /* request_region */
|
||||
@@ -0,0 +1,30 @@
|
||||
--- a/Embedded/src/1588/1588.c
|
||||
+++ b/Embedded/src/1588/1588.c
|
||||
@@ -72,6 +72,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
+#include <linux/sched.h>
|
||||
#include "1588.h"
|
||||
|
||||
MODULE_AUTHOR("Intel(R) Corporation");
|
||||
--- a/Embedded/src/CAN/can_main.c
|
||||
+++ b/Embedded/src/CAN/can_main.c
|
||||
@@ -68,6 +68,7 @@
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
+#include <linux/sched.h>
|
||||
#include "can_main.h"
|
||||
#include "can_ioctl.h"
|
||||
#include <linux/fs.h>
|
||||
--- a/Embedded/src/WDT/iwdt.c
|
||||
+++ b/Embedded/src/WDT/iwdt.c
|
||||
@@ -137,6 +137,7 @@
|
||||
#include <linux/watchdog.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/interrupt.h>
|
||||
+#include <linux/sched.h>
|
||||
#include "iwdt.h"
|
||||
|
||||
MODULE_AUTHOR("Intel(R) Corporation");
|
||||
@@ -0,0 +1,31 @@
|
||||
--- a/Embedded/src/GbE/kcompat.h
|
||||
+++ b/Embedded/src/GbE/kcompat.h
|
||||
@@ -46,12 +46,6 @@ GPL LICENSE SUMMARY
|
||||
#include <linux/sched.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
-#ifndef IRQ_HANDLED
|
||||
-#define irqreturn_t void
|
||||
-#define IRQ_HANDLED
|
||||
-#define IRQ_NONE
|
||||
-#endif
|
||||
-
|
||||
#ifndef SET_NETDEV_DEV
|
||||
#define SET_NETDEV_DEV(net, pdev)
|
||||
#endif
|
||||
@@ -748,6 +742,15 @@ extern void dump_stack(void);
|
||||
|
||||
#endif /* 2.4.24 */
|
||||
|
||||
+/*****************************************************************************/
|
||||
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) )
|
||||
+#ifndef IRQ_HANDLED
|
||||
+#define irqreturn_t void
|
||||
+#define IRQ_HANDLED
|
||||
+#define IRQ_NONE
|
||||
+#endif
|
||||
+#endif /* < 2.6.30 */
|
||||
+
|
||||
#endif /* _KCOMPAT_H_ */
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -3534,7 +3534,7 @@ static int iegbe_clean(struct napi_struc
|
||||
int tx_cleaned = 0, work_done = 0;
|
||||
|
||||
/* Must NOT use netdev_priv macro here. */
|
||||
- adapter = poll_dev->priv;
|
||||
+ adapter = netdev_priv(poll_dev);
|
||||
|
||||
/* iegbe_clean is called per-cpu. This lock protects
|
||||
* tx_ring[0] from being cleaned by multiple cpus
|
||||
@@ -0,0 +1,91 @@
|
||||
--- a/Embedded/src/GbE/Makefile
|
||||
+++ b/Embedded/src/GbE/Makefile
|
||||
@@ -60,19 +60,19 @@ GBE_NAME = iegbe
|
||||
GCU_NAME = gcu
|
||||
|
||||
VERSION_FILE := $(KSRC)/include/linux/version.h
|
||||
-UTS_REL_FILE := $(KSRC)/include/linux/utsrelease.h
|
||||
-CONFIG_FILE := $(KSRC)/include/linux/autoconf.h
|
||||
+UTS_REL_FILE := $(KSRC)/include/generated/utsrelease.h
|
||||
+CONFIG_FILE := $(KSRC)/include/generated/autoconf.h
|
||||
|
||||
ifeq (,$(wildcard $(VERSION_FILE)))
|
||||
$(error Linux kernel source not configured - missing version.h)
|
||||
endif
|
||||
|
||||
ifeq (,$(wildcard $(CONFIG_FILE)))
|
||||
- $(error Linux kernel source not configured - missing autoconf.h)
|
||||
+ $(error Linux kernel source not configured - missing autoconf.h)
|
||||
endif
|
||||
|
||||
ifeq (,$(wildcard $(UTS_REL_FILE)))
|
||||
- $(error Linux kernel source not configured - missing utsrelease.h)
|
||||
+ $(error Linux kernel source not configured - missing utsrelease.h)
|
||||
endif
|
||||
|
||||
# set the install path
|
||||
--- a/Embedded/src/1588/Makefile
|
||||
+++ b/Embedded/src/1588/Makefile
|
||||
@@ -97,8 +97,8 @@ OUTPUT_PATH ?= /
|
||||
EXTRA_LDFLAGS += -whole-archive
|
||||
|
||||
VERSION_FILE := $(KOBJ)/include/linux/version.h
|
||||
-UTS_REL_FILE := $(KSRC)/include/linux/utsrelease.h
|
||||
-CONFIG_FILE := $(KOBJ)/include/linux/autoconf.h
|
||||
+UTS_REL_FILE := $(KSRC)/include/generated/utsrelease.h
|
||||
+CONFIG_FILE := $(KOBJ)/include/generated/autoconf.h
|
||||
|
||||
|
||||
# as of 2.6.16, kernel define UTS_RELEASE has been moved to utsrelease.h
|
||||
--- a/Embedded/src/CAN/Makefile
|
||||
+++ b/Embedded/src/CAN/Makefile
|
||||
@@ -100,8 +100,8 @@ OUTPUT_PATH ?= /
|
||||
EXTRA_LDFLAGS += -whole-archive
|
||||
|
||||
VERSION_FILE := $(KOBJ)/include/linux/version.h
|
||||
-UTS_REL_FILE := $(KSRC)/include/linux/utsrelease.h
|
||||
-CONFIG_FILE := $(KOBJ)/include/linux/autoconf.h
|
||||
+UTS_REL_FILE := $(KSRC)/include/generated/utsrelease.h
|
||||
+CONFIG_FILE := $(KOBJ)/include/generated/autoconf.h
|
||||
|
||||
|
||||
# as of 2.6.16, kernel define UTS_RELEASE has been moved to utsrelease.h
|
||||
--- a/Embedded/src/EDMA/Makefile
|
||||
+++ b/Embedded/src/EDMA/Makefile
|
||||
@@ -114,8 +114,8 @@ OUTPUT_PATH ?= /
|
||||
EXTRA_LDFLAGS += -whole-archive
|
||||
|
||||
VERSION_FILE := $(KOBJ)/include/linux/version.h
|
||||
-UTS_REL_FILE := $(KSRC)/include/linux/utsrelease.h
|
||||
-CONFIG_FILE := $(KOBJ)/include/linux/autoconf.h
|
||||
+UTS_REL_FILE := $(KSRC)/include/generated/utsrelease.h
|
||||
+CONFIG_FILE := $(KOBJ)/include/generated/autoconf.h
|
||||
|
||||
|
||||
# as of 2.6.16, kernel define UTS_RELEASE has been moved to utsrelease.h
|
||||
--- a/Embedded/src/GPIO/Makefile
|
||||
+++ b/Embedded/src/GPIO/Makefile
|
||||
@@ -97,8 +97,8 @@ OUTPUT_PATH ?= /
|
||||
EXTRA_LDFLAGS += -whole-archive
|
||||
|
||||
VERSION_FILE := $(KOBJ)/include/linux/version.h
|
||||
-UTS_REL_FILE := $(KSRC)/include/linux/utsrelease.h
|
||||
-CONFIG_FILE := $(KOBJ)/include/linux/autoconf.h
|
||||
+UTS_REL_FILE := $(KSRC)/include/generated/utsrelease.h
|
||||
+CONFIG_FILE := $(KOBJ)/include/generated/autoconf.h
|
||||
|
||||
|
||||
# as of 2.6.16, kernel define UTS_RELEASE has been moved to utsrelease.h
|
||||
--- a/Embedded/src/WDT/Makefile
|
||||
+++ b/Embedded/src/WDT/Makefile
|
||||
@@ -99,8 +99,8 @@ OUTPUT_PATH ?= /
|
||||
EXTRA_LDFLAGS += -whole-archive
|
||||
|
||||
VERSION_FILE := $(KOBJ)/include/linux/version.h
|
||||
-UTS_REL_FILE := $(KSRC)/include/linux/utsrelease.h
|
||||
-CONFIG_FILE := $(KOBJ)/include/linux/autoconf.h
|
||||
+UTS_REL_FILE := $(KSRC)/include/generated/utsrelease.h
|
||||
+CONFIG_FILE := $(KOBJ)/include/generated/autoconf.h
|
||||
|
||||
|
||||
# as of 2.6.16, kernel define UTS_RELEASE has been moved to utsrelease.h
|
||||
392
package/system/ep80579-drivers/patches/711-3.3-gbe-fixes.patch
Normal file
392
package/system/ep80579-drivers/patches/711-3.3-gbe-fixes.patch
Normal file
@@ -0,0 +1,392 @@
|
||||
--- a/Embedded/src/GbE/kcompat.h
|
||||
+++ b/Embedded/src/GbE/kcompat.h
|
||||
@@ -590,6 +590,10 @@ static inline void _kc_synchronize_irq()
|
||||
#define ETHTOOL_OPS_COMPAT
|
||||
#endif
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
|
||||
+#define HAVE_NETIF_MSG 1
|
||||
+#endif
|
||||
+
|
||||
#ifndef HAVE_NETIF_MSG
|
||||
#define HAVE_NETIF_MSG 1
|
||||
enum {
|
||||
--- a/Embedded/src/GbE/iegbe_main.c
|
||||
+++ b/Embedded/src/GbE/iegbe_main.c
|
||||
@@ -159,9 +159,9 @@ static void iegbe_smartspeed(struct iegb
|
||||
static inline int iegbe_82547_fifo_workaround(struct iegbe_adapter *adapter,
|
||||
struct sk_buff *skb);
|
||||
|
||||
-static void iegbe_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp);
|
||||
-static void iegbe_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid);
|
||||
-static void iegbe_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid);
|
||||
+static bool iegbe_vlan_used(struct iegbe_adapter *adapter);
|
||||
+static int iegbe_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid);
|
||||
+static int iegbe_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid);
|
||||
static void iegbe_restore_vlan(struct iegbe_adapter *adapter);
|
||||
|
||||
static int iegbe_notify_reboot(struct notifier_block *,
|
||||
@@ -324,8 +324,8 @@ static void iegbe_update_mng_vlan(struct
|
||||
struct net_device *netdev = adapter->netdev;
|
||||
u16 vid = hw->mng_cookie.vlan_id;
|
||||
u16 old_vid = adapter->mng_vlan_id;
|
||||
- if (adapter->vlgrp) {
|
||||
- if (!vlan_group_get_device(adapter->vlgrp, vid)) {
|
||||
+ if (iegbe_vlan_used(adapter)) {
|
||||
+ if (!test_bit(old_vid, adapter->active_vlans)) {
|
||||
if (hw->mng_cookie.status &
|
||||
E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) {
|
||||
iegbe_vlan_rx_add_vid(netdev, vid);
|
||||
@@ -335,7 +335,7 @@ static void iegbe_update_mng_vlan(struct
|
||||
|
||||
if ((old_vid != (u16)E1000_MNG_VLAN_NONE) &&
|
||||
(vid != old_vid) &&
|
||||
- !vlan_group_get_device(adapter->vlgrp, old_vid))
|
||||
+ !test_bit(old_vid, adapter->active_vlans))
|
||||
iegbe_vlan_rx_kill_vid(netdev, old_vid);
|
||||
} else
|
||||
adapter->mng_vlan_id = vid;
|
||||
@@ -736,7 +736,6 @@ static const struct net_device_ops iegbe
|
||||
.ndo_do_ioctl = iegbe_ioctl,
|
||||
.ndo_validate_addr = eth_validate_addr,
|
||||
|
||||
- .ndo_vlan_rx_register = iegbe_vlan_rx_register,
|
||||
.ndo_vlan_rx_add_vid = iegbe_vlan_rx_add_vid,
|
||||
.ndo_vlan_rx_kill_vid = iegbe_vlan_rx_kill_vid,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
@@ -767,7 +766,6 @@ static int __devinit iegbe_probe(struct
|
||||
u16 eeprom_data = 0;
|
||||
u16 eeprom_apme_mask = E1000_EEPROM_APME;
|
||||
int bars;
|
||||
- DECLARE_MAC_BUF(mac);
|
||||
|
||||
bars = pci_select_bars(pdev, IORESOURCE_MEM);
|
||||
err = pci_enable_device(pdev);
|
||||
@@ -1247,8 +1245,7 @@ static int iegbe_close(struct net_device
|
||||
|
||||
if ((hw->mng_cookie.status &
|
||||
E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) &&
|
||||
- !(adapter->vlgrp &&
|
||||
- vlan_group_get_device(adapter->vlgrp, adapter->mng_vlan_id))) {
|
||||
+ !test_bit(adapter->mng_vlan_id, adapter->active_vlans)) {
|
||||
iegbe_vlan_rx_kill_vid(netdev, adapter->mng_vlan_id);
|
||||
}
|
||||
return 0;
|
||||
@@ -2163,11 +2160,13 @@ static void iegbe_set_rx_mode(struct net
|
||||
struct iegbe_hw *hw = &adapter->hw;
|
||||
struct netdev_hw_addr *ha;
|
||||
bool use_uc = false;
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
struct dev_addr_list *mc_ptr;
|
||||
- u32 rctl;
|
||||
u32 hash_value;
|
||||
- int i, rar_entries = E1000_RAR_ENTRIES;
|
||||
int mta_reg_count = E1000_NUM_MTA_REGISTERS;
|
||||
+#endif
|
||||
+ u32 rctl;
|
||||
+ int i, rar_entries = E1000_RAR_ENTRIES;
|
||||
|
||||
/* reserve RAR[14] for LAA over-write work-around */
|
||||
if (hw->mac_type == iegbe_82571)
|
||||
@@ -2220,6 +2219,7 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
|
||||
WARN_ON(i == rar_entries);
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
mc_ptr = netdev->mc_list;
|
||||
|
||||
for (; i < rar_entries; i++) {
|
||||
@@ -2247,6 +2247,7 @@ int mta_reg_count = E1000_NUM_MTA_REGIST
|
||||
hash_value = iegbe_hash_mc_addr(hw, mc_ptr->da_addr);
|
||||
iegbe_mta_set(hw, hash_value);
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (hw->mac_type == iegbe_82542_rev2_0)
|
||||
iegbe_leave_82542_rst(adapter);
|
||||
@@ -2821,14 +2822,14 @@ static int iegbe_tx_map(struct iegbe_ada
|
||||
* Avoid terminating buffers within evenly-aligned
|
||||
* dwords. */
|
||||
if(unlikely(adapter->pcix_82544 &&
|
||||
- !((unsigned long)(frag->page+offset+size-1) & 4) &&
|
||||
+ !((unsigned long)(frag->page.p+offset+size-1) & 4) &&
|
||||
size > 4))
|
||||
size -= 4;
|
||||
|
||||
buffer_info->length = size;
|
||||
buffer_info->dma =
|
||||
pci_map_page(adapter->pdev,
|
||||
- frag->page,
|
||||
+ frag->page.p,
|
||||
offset,
|
||||
size,
|
||||
PCI_DMA_TODEVICE);
|
||||
@@ -3131,7 +3132,7 @@ static int iegbe_xmit_frame(struct sk_bu
|
||||
}
|
||||
}
|
||||
|
||||
- if (unlikely(adapter->vlgrp && vlan_tx_tag_present(skb))) {
|
||||
+ if (unlikely(iegbe_vlan_used(adapter) && vlan_tx_tag_present(skb))) {
|
||||
tx_flags |= E1000_TX_FLAGS_VLAN;
|
||||
tx_flags |= (vlan_tx_tag_get(skb) << E1000_TX_FLAGS_VLAN_SHIFT);
|
||||
}
|
||||
@@ -3832,10 +3833,12 @@ static bool iegbe_clean_rx_irq(struct ie
|
||||
|
||||
skb->protocol = eth_type_trans(skb, netdev);
|
||||
|
||||
- if (unlikely(adapter->vlgrp &&
|
||||
+ if (unlikely(iegbe_vlan_used(adapter) &&
|
||||
(status & E1000_RXD_STAT_VP))) {
|
||||
- vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
|
||||
- le16_to_cpu(rx_desc->special));
|
||||
+ u16 vid;
|
||||
+
|
||||
+ vid = le16_to_cpu(rx_desc->special);
|
||||
+ __vlan_hwaccel_put_tag(skb, vid);
|
||||
} else {
|
||||
netif_receive_skb(skb);
|
||||
}
|
||||
@@ -3986,9 +3989,10 @@ copydone:
|
||||
cpu_to_le16(E1000_RXDPS_HDRSTAT_HDRSP)))
|
||||
adapter->rx_hdr_split++;
|
||||
|
||||
- if(unlikely(adapter->vlgrp && (staterr & E1000_RXD_STAT_VP))) {
|
||||
- vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
|
||||
- le16_to_cpu(rx_desc->wb.middle.vlan));
|
||||
+ if(unlikely(iegbe_vlan_used(adapter) && (staterr & E1000_RXD_STAT_VP))) {
|
||||
+ u16 vid;
|
||||
+ vid = le16_to_cpu(rx_desc->wb.middle.vlan);
|
||||
+ __vlan_hwaccel_put_tag(skb, vid);
|
||||
} else {
|
||||
netif_receive_skb(skb);
|
||||
}
|
||||
@@ -4496,17 +4500,25 @@ iegbe_io_write(struct iegbe_hw *hw, unsi
|
||||
outl(value, port);
|
||||
}
|
||||
|
||||
-static void iegbe_vlan_rx_register(struct net_device *netdev,
|
||||
- struct vlan_group *grp)
|
||||
+static bool iegbe_vlan_used(struct iegbe_adapter *adapter)
|
||||
+{
|
||||
+ u16 vid;
|
||||
+
|
||||
+ for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID)
|
||||
+ return true;
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+static void iegbe_vlan_mode(struct net_device *netdev, bool vlan_on)
|
||||
{
|
||||
struct iegbe_adapter *adapter = netdev_priv(netdev);
|
||||
uint32_t ctrl, rctl;
|
||||
|
||||
if (!test_bit(__E1000_DOWN, &adapter->flags))
|
||||
iegbe_irq_disable(adapter);
|
||||
- adapter->vlgrp = grp;
|
||||
|
||||
- if(grp) {
|
||||
+ if(vlan_on) {
|
||||
/* enable VLAN tag insert/strip */
|
||||
ctrl = E1000_READ_REG(&adapter->hw, CTRL);
|
||||
ctrl |= E1000_CTRL_VME;
|
||||
@@ -4538,30 +4550,37 @@ static void iegbe_vlan_rx_register(struc
|
||||
iegbe_irq_enable(adapter);
|
||||
}
|
||||
|
||||
-static void iegbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid)
|
||||
+static int iegbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid)
|
||||
{
|
||||
struct iegbe_adapter *adapter = netdev_priv(netdev);
|
||||
uint32_t vfta, index;
|
||||
if((adapter->hw.mng_cookie.status &
|
||||
E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) &&
|
||||
(vid == adapter->mng_vlan_id)) {
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
+
|
||||
+ if (!iegbe_vlan_used(adapter))
|
||||
+ iegbe_vlan_mode(netdev, true);
|
||||
+
|
||||
/* add VID to filter table */
|
||||
index = (vid >> 0x5) & 0x7F;
|
||||
vfta = E1000_READ_REG_ARRAY(&adapter->hw, VFTA, index);
|
||||
vfta |= (0x1 << (vid & 0x1F));
|
||||
iegbe_write_vfta(&adapter->hw, index, vfta);
|
||||
+
|
||||
+ set_bit(vid, adapter->active_vlans);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
-static void iegbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)
|
||||
+static int iegbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)
|
||||
{
|
||||
struct iegbe_adapter *adapter = netdev_priv(netdev);
|
||||
u32 vfta, index;
|
||||
|
||||
if (!test_bit(__E1000_DOWN, &adapter->flags))
|
||||
iegbe_irq_disable(adapter);
|
||||
- vlan_group_set_device(adapter->vlgrp, vid, NULL);
|
||||
if (!test_bit(__E1000_DOWN, &adapter->flags))
|
||||
iegbe_irq_enable(adapter);
|
||||
|
||||
@@ -4570,21 +4589,26 @@ static void iegbe_vlan_rx_kill_vid(struc
|
||||
vfta = E1000_READ_REG_ARRAY(&adapter->hw, VFTA, index);
|
||||
vfta &= ~(0x1 << (vid & 0x1F));
|
||||
iegbe_write_vfta(&adapter->hw, index, vfta);
|
||||
+
|
||||
+ clear_bit(vid, adapter->active_vlans);
|
||||
+
|
||||
+ if (!iegbe_vlan_used(adapter))
|
||||
+ iegbe_vlan_mode(netdev, false);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static void iegbe_restore_vlan(struct iegbe_adapter *adapter)
|
||||
{
|
||||
- iegbe_vlan_rx_register(adapter->netdev, adapter->vlgrp);
|
||||
-
|
||||
- if (adapter->vlgrp) {
|
||||
u16 vid;
|
||||
- for (vid = 0x0; vid < VLAN_GROUP_ARRAY_LEN; vid++) {
|
||||
- if (!vlan_group_get_device(adapter->vlgrp, vid))
|
||||
- continue;
|
||||
+
|
||||
+ if (!iegbe_vlan_used(adapter))
|
||||
+ return;
|
||||
+
|
||||
+ iegbe_vlan_mode(adapter->netdev, true);
|
||||
+ for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID)
|
||||
iegbe_vlan_rx_add_vid(adapter->netdev, vid);
|
||||
}
|
||||
- }
|
||||
-}
|
||||
|
||||
|
||||
int iegbe_set_spd_dplx(struct iegbe_adapter *adapter, u16 spddplx)
|
||||
@@ -4864,10 +4888,11 @@ iegbe_resume(struct pci_dev *pdev)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
-#endif
|
||||
|
||||
return 0x0;
|
||||
}
|
||||
+#endif
|
||||
+
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
/*
|
||||
--- a/Embedded/src/GbE/iegbe_ethtool.c
|
||||
+++ b/Embedded/src/GbE/iegbe_ethtool.c
|
||||
@@ -327,6 +327,7 @@ iegbe_set_pauseparam(struct net_device *
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
static uint32_t
|
||||
iegbe_get_rx_csum(struct net_device *netdev)
|
||||
{
|
||||
@@ -392,6 +393,7 @@ iegbe_set_tso(struct net_device *netdev,
|
||||
return 0;
|
||||
}
|
||||
#endif /* NETIF_F_TSO */
|
||||
+#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) */
|
||||
|
||||
static uint32_t
|
||||
iegbe_get_msglevel(struct net_device *netdev)
|
||||
@@ -807,6 +809,7 @@ err_setup_rx:
|
||||
E1000_82542_##R : E1000_##R; \
|
||||
return 1; } }
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
static int
|
||||
iegbe_reg_test(struct iegbe_adapter *adapter, uint64_t *data)
|
||||
{
|
||||
@@ -1710,6 +1713,7 @@ iegbe_diag_test(struct net_device *netde
|
||||
}
|
||||
msleep_interruptible(0xfa0);
|
||||
}
|
||||
+#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) */
|
||||
|
||||
static void
|
||||
iegbe_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
|
||||
@@ -1812,6 +1816,7 @@ iegbe_set_wol(struct net_device *netdev,
|
||||
/* bit defines for adapter->led_status */
|
||||
#define E1000_LED_ON 0
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
static void
|
||||
iegbe_led_blink_callback(unsigned long data)
|
||||
{
|
||||
@@ -1864,6 +1869,7 @@ iegbe_phys_id(struct net_device *netdev,
|
||||
|
||||
return 0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static int
|
||||
iegbe_nway_reset(struct net_device *netdev)
|
||||
@@ -1876,11 +1882,13 @@ iegbe_nway_reset(struct net_device *netd
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
static int
|
||||
iegbe_get_stats_count(struct net_device *netdev)
|
||||
{
|
||||
return E1000_STATS_LEN;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static void
|
||||
iegbe_get_ethtool_stats(struct net_device *netdev,
|
||||
@@ -1936,6 +1944,8 @@ struct ethtool_ops iegbe_ethtool_ops = {
|
||||
.set_ringparam = iegbe_set_ringparam,
|
||||
.get_pauseparam = iegbe_get_pauseparam,
|
||||
.set_pauseparam = iegbe_set_pauseparam,
|
||||
+
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
|
||||
.get_rx_csum = iegbe_get_rx_csum,
|
||||
.set_rx_csum = iegbe_set_rx_csum,
|
||||
.get_tx_csum = iegbe_get_tx_csum,
|
||||
@@ -1946,11 +1956,13 @@ struct ethtool_ops iegbe_ethtool_ops = {
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = iegbe_set_tso,
|
||||
#endif
|
||||
+
|
||||
.self_test_count = iegbe_diag_test_count,
|
||||
.self_test = iegbe_diag_test,
|
||||
- .get_strings = iegbe_get_strings,
|
||||
.phys_id = iegbe_phys_id,
|
||||
.get_stats_count = iegbe_get_stats_count,
|
||||
+#endif
|
||||
+ .get_strings = iegbe_get_strings,
|
||||
.get_ethtool_stats = iegbe_get_ethtool_stats,
|
||||
};
|
||||
|
||||
--- a/Embedded/src/GbE/gcu_main.c
|
||||
+++ b/Embedded/src/GbE/gcu_main.c
|
||||
@@ -93,7 +93,7 @@ static struct pci_driver gcu_driver = {
|
||||
};
|
||||
|
||||
static struct gcu_adapter *global_adapter = 0;
|
||||
-static spinlock_t global_adapter_spinlock = SPIN_LOCK_UNLOCKED;
|
||||
+static DEFINE_SPINLOCK(global_adapter_spinlock);
|
||||
static unsigned long g_intflags = 0;
|
||||
|
||||
MODULE_AUTHOR("Intel(R) Corporation");
|
||||
--- a/Embedded/src/GbE/iegbe.h
|
||||
+++ b/Embedded/src/GbE/iegbe.h
|
||||
@@ -257,7 +257,7 @@ struct iegbe_adapter {
|
||||
struct timer_list tx_fifo_stall_timer;
|
||||
struct timer_list watchdog_timer;
|
||||
struct timer_list phy_info_timer;
|
||||
- struct vlan_group *vlgrp;
|
||||
+ unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)];
|
||||
uint16_t mng_vlan_id;
|
||||
uint32_t bd_number;
|
||||
uint32_t rx_buffer_len;
|
||||
@@ -0,0 +1,41 @@
|
||||
--- a/Embedded/src/CAN/can_main.c
|
||||
+++ b/Embedded/src/CAN/can_main.c
|
||||
@@ -72,6 +72,7 @@
|
||||
#include "can_main.h"
|
||||
#include "can_ioctl.h"
|
||||
#include <linux/fs.h>
|
||||
+#include <linux/module.h>
|
||||
|
||||
|
||||
MODULE_AUTHOR("Intel(R) Corporation");
|
||||
@@ -110,7 +111,7 @@ struct file_operations file_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.read = can_read,
|
||||
.write = can_write,
|
||||
- .ioctl = can_dev_io,
|
||||
+ .unlocked_ioctl = can_dev_io,
|
||||
.open = can_open,
|
||||
.release = can_release
|
||||
};
|
||||
@@ -594,8 +595,7 @@ int icp_can_reset(can_os_t *can_os)
|
||||
/*****************************************************************************
|
||||
* Device IO control function. Used by user apps to configure CAN device.
|
||||
*****************************************************************************/
|
||||
-int can_dev_io(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
- unsigned long arg)
|
||||
+long can_dev_io(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
can_os_t *can_os;
|
||||
unsigned int err=0;
|
||||
--- a/Embedded/src/CAN/can_main.h
|
||||
+++ b/Embedded/src/CAN/can_main.h
|
||||
@@ -157,8 +157,7 @@ ssize_t can_write(
|
||||
int icp_can_reset(
|
||||
can_os_t *can_os);
|
||||
|
||||
-int can_dev_io(
|
||||
- struct inode *inode,
|
||||
+long can_dev_io(
|
||||
struct file *filp,
|
||||
unsigned int cmd,
|
||||
unsigned long arg);
|
||||
@@ -0,0 +1,33 @@
|
||||
--- a/Embedded/src/GPIO/gpio.h
|
||||
+++ b/Embedded/src/GPIO/gpio.h
|
||||
@@ -121,8 +121,7 @@ int gpio_init(void);
|
||||
void gpio_close(void);
|
||||
int gpio_open(struct inode *inode, struct file *filp);
|
||||
int gpio_release(struct inode *inode, struct file *filp);
|
||||
-int gpio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
- unsigned long arg);
|
||||
+long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
|
||||
|
||||
// private driver functions
|
||||
int gpio_getpininfo(int Signal, char *pBuff);
|
||||
@@ -134,7 +133,7 @@ struct file_operations file_ops =
|
||||
.owner = THIS_MODULE,
|
||||
.open = gpio_open,
|
||||
.release = gpio_release,
|
||||
- .ioctl = gpio_ioctl,
|
||||
+ .unlocked_ioctl = gpio_ioctl,
|
||||
};
|
||||
|
||||
#endif
|
||||
--- a/Embedded/src/GPIO/gpio_ref.c
|
||||
+++ b/Embedded/src/GPIO/gpio_ref.c
|
||||
@@ -251,8 +251,7 @@ int gpio_release(struct inode *inode, st
|
||||
0 => success
|
||||
< 0 => error
|
||||
******************************************************************************/
|
||||
-int gpio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
- unsigned long arg)
|
||||
+long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
gpio_ioctl_t Info;
|
||||
u_int bitstr = 0;
|
||||
@@ -0,0 +1,31 @@
|
||||
--- a/Embedded/src/WDT/iwdt.c
|
||||
+++ b/Embedded/src/WDT/iwdt.c
|
||||
@@ -217,8 +217,7 @@ static int wdt_open(struct inode *inode,
|
||||
static int wdt_release(struct inode *inode, struct file *file);
|
||||
static ssize_t wdt_write(struct file *file, const char *data,
|
||||
size_t count, loff_t * pos);
|
||||
-static int wdt_ioctl(struct inode *inode, struct file *file,
|
||||
- unsigned int cmd, unsigned long arg);
|
||||
+static long wdt_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
|
||||
static irqreturn_t wdt_isr(int irq, void *dev_id);
|
||||
static void __exit wdt_cleanup(void);
|
||||
static int __init wdt_init(void);
|
||||
@@ -243,7 +242,7 @@ static struct pci_device_id lpc_pci_tbl[
|
||||
static struct file_operations wdt_fops = {
|
||||
owner: THIS_MODULE,
|
||||
write: wdt_write,
|
||||
- ioctl: wdt_ioctl,
|
||||
+ unlocked_ioctl: wdt_ioctl,
|
||||
open: wdt_open,
|
||||
release: wdt_release,
|
||||
};
|
||||
@@ -1201,8 +1200,7 @@ char *wdt_get_ioctl_string(unsigned int
|
||||
* Return Value: 0 - successful, negative value - failed.
|
||||
* Description: This function is used to provide IO interface.
|
||||
*/
|
||||
-static int wdt_ioctl(struct inode *inode, struct file *file,
|
||||
- unsigned int cmd, unsigned long arg)
|
||||
+static long wdt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
u8 mode=0, scale=0, int_type=0;
|
||||
u32 u_margin=0, dcount=0;
|
||||
@@ -0,0 +1,33 @@
|
||||
--- a/Embedded/src/1588/1588.c
|
||||
+++ b/Embedded/src/1588/1588.c
|
||||
@@ -664,8 +664,7 @@ irqreturn_t timesync_isr(int irq, void *
|
||||
0 => success
|
||||
< 0 => error
|
||||
******************************************************************************/
|
||||
-int timesync_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
- unsigned long arg)
|
||||
+long timesync_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
wait_queue_head_t *event = NULL;
|
||||
unsigned int bytes_ret = 0;
|
||||
--- a/Embedded/src/1588/1588.h
|
||||
+++ b/Embedded/src/1588/1588.h
|
||||
@@ -121,8 +121,7 @@ MODULE_DEVICE_TABLE(pci, pci_ids);
|
||||
// Linux functions
|
||||
int timesync_open(struct inode *inode, struct file *filp);
|
||||
int timesync_release(struct inode *inode, struct file *filp);
|
||||
-int timesync_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
- unsigned long arg);
|
||||
+long timesync_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
|
||||
void timesync_close(void);
|
||||
int pci_suspend(struct pci_dev *dev, pm_message_t state);
|
||||
int pci_resume(struct pci_dev *dev);
|
||||
@@ -142,7 +141,7 @@ struct file_operations file_ops =
|
||||
.owner = THIS_MODULE,
|
||||
.open = timesync_open,
|
||||
.release = timesync_release,
|
||||
- .ioctl = timesync_ioctl,
|
||||
+ .unlocked_ioctl = timesync_ioctl,
|
||||
};
|
||||
|
||||
// Linux pci operations
|
||||
44
package/system/gpio-button-hotplug/Makefile
Normal file
44
package/system/gpio-button-hotplug/Makefile
Normal file
@@ -0,0 +1,44 @@
|
||||
#
|
||||
# Copyright (C) 2008-2012 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=gpio-button-hotplug
|
||||
PKG_RELEASE:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/gpio-button-hotplug
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=Simple GPIO Button Hotplug driver
|
||||
FILES:=$(PKG_BUILD_DIR)/gpio-button-hotplug.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,gpio-button-hotplug)
|
||||
KCONFIG:=
|
||||
endef
|
||||
|
||||
define KernelPackage/button-hotplug/description
|
||||
Kernel module to generate GPIO button hotplug events
|
||||
endef
|
||||
|
||||
MAKE_OPTS:= \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)"
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(MAKE_OPTS) \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,gpio-button-hotplug))
|
||||
1
package/system/gpio-button-hotplug/src/Makefile
Normal file
1
package/system/gpio-button-hotplug/src/Makefile
Normal file
@@ -0,0 +1 @@
|
||||
obj-m += gpio-button-hotplug.o
|
||||
450
package/system/gpio-button-hotplug/src/gpio-button-hotplug.c
Normal file
450
package/system/gpio-button-hotplug/src/gpio-button-hotplug.c
Normal file
@@ -0,0 +1,450 @@
|
||||
/*
|
||||
* GPIO Button Hotplug driver
|
||||
*
|
||||
* Copyright (C) 2012 Felix Fietkau <nbd@openwrt.org>
|
||||
* Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
|
||||
*
|
||||
* Based on the diag.c - GPIO interface driver for Broadcom boards
|
||||
* Copyright (C) 2006 Mike Baker <mbm@openwrt.org>,
|
||||
* Copyright (C) 2006-2007 Felix Fietkau <nbd@openwrt.org>
|
||||
* Copyright (C) 2008 Andy Boyett <agb@openwrt.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published
|
||||
* by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/kmod.h>
|
||||
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/kobject.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
|
||||
#define DRV_NAME "gpio-keys-polled"
|
||||
|
||||
#define BH_SKB_SIZE 2048
|
||||
|
||||
#define PFX DRV_NAME ": "
|
||||
|
||||
#undef BH_DEBUG
|
||||
|
||||
#ifdef BH_DEBUG
|
||||
#define BH_DBG(fmt, args...) printk(KERN_DEBUG "%s: " fmt, DRV_NAME, ##args )
|
||||
#else
|
||||
#define BH_DBG(fmt, args...) do {} while (0)
|
||||
#endif
|
||||
|
||||
#define BH_ERR(fmt, args...) printk(KERN_ERR "%s: " fmt, DRV_NAME, ##args )
|
||||
|
||||
struct bh_priv {
|
||||
unsigned long seen;
|
||||
};
|
||||
|
||||
struct bh_event {
|
||||
const char *name;
|
||||
char *action;
|
||||
unsigned long seen;
|
||||
|
||||
struct sk_buff *skb;
|
||||
struct work_struct work;
|
||||
};
|
||||
|
||||
struct bh_map {
|
||||
unsigned int code;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
struct gpio_keys_button_data {
|
||||
struct delayed_work work;
|
||||
struct bh_priv bh;
|
||||
int last_state;
|
||||
int count;
|
||||
int threshold;
|
||||
int can_sleep;
|
||||
};
|
||||
|
||||
extern u64 uevent_next_seqnum(void);
|
||||
|
||||
#define BH_MAP(_code, _name) \
|
||||
{ \
|
||||
.code = (_code), \
|
||||
.name = (_name), \
|
||||
}
|
||||
|
||||
static struct bh_map button_map[] = {
|
||||
BH_MAP(BTN_0, "BTN_0"),
|
||||
BH_MAP(BTN_1, "BTN_1"),
|
||||
BH_MAP(BTN_2, "BTN_2"),
|
||||
BH_MAP(BTN_3, "BTN_3"),
|
||||
BH_MAP(BTN_4, "BTN_4"),
|
||||
BH_MAP(BTN_5, "BTN_5"),
|
||||
BH_MAP(BTN_6, "BTN_6"),
|
||||
BH_MAP(BTN_7, "BTN_7"),
|
||||
BH_MAP(BTN_8, "BTN_8"),
|
||||
BH_MAP(BTN_9, "BTN_9"),
|
||||
BH_MAP(KEY_RESTART, "reset"),
|
||||
#ifdef KEY_WPS_BUTTON
|
||||
BH_MAP(KEY_WPS_BUTTON, "wps"),
|
||||
#endif /* KEY_WPS_BUTTON */
|
||||
};
|
||||
|
||||
/* -------------------------------------------------------------------------*/
|
||||
|
||||
static int bh_event_add_var(struct bh_event *event, int argv,
|
||||
const char *format, ...)
|
||||
{
|
||||
static char buf[128];
|
||||
char *s;
|
||||
va_list args;
|
||||
int len;
|
||||
|
||||
if (argv)
|
||||
return 0;
|
||||
|
||||
va_start(args, format);
|
||||
len = vsnprintf(buf, sizeof(buf), format, args);
|
||||
va_end(args);
|
||||
|
||||
if (len >= sizeof(buf)) {
|
||||
BH_ERR("buffer size too small\n");
|
||||
WARN_ON(1);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
s = skb_put(event->skb, len + 1);
|
||||
strcpy(s, buf);
|
||||
|
||||
BH_DBG("added variable '%s'\n", s);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int button_hotplug_fill_event(struct bh_event *event)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "HOME=%s", "/");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "PATH=%s",
|
||||
"/sbin:/bin:/usr/sbin:/usr/bin");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "SUBSYSTEM=%s", "button");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "ACTION=%s", event->action);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "BUTTON=%s", event->name);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "SEEN=%ld", event->seen);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "SEQNUM=%llu", uevent_next_seqnum());
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void button_hotplug_work(struct work_struct *work)
|
||||
{
|
||||
struct bh_event *event = container_of(work, struct bh_event, work);
|
||||
int ret = 0;
|
||||
|
||||
event->skb = alloc_skb(BH_SKB_SIZE, GFP_KERNEL);
|
||||
if (!event->skb)
|
||||
goto out_free_event;
|
||||
|
||||
ret = bh_event_add_var(event, 0, "%s@", event->action);
|
||||
if (ret)
|
||||
goto out_free_skb;
|
||||
|
||||
ret = button_hotplug_fill_event(event);
|
||||
if (ret)
|
||||
goto out_free_skb;
|
||||
|
||||
NETLINK_CB(event->skb).dst_group = 1;
|
||||
broadcast_uevent(event->skb, 0, 1, GFP_KERNEL);
|
||||
|
||||
out_free_skb:
|
||||
if (ret) {
|
||||
BH_ERR("work error %d\n", ret);
|
||||
kfree_skb(event->skb);
|
||||
}
|
||||
out_free_event:
|
||||
kfree(event);
|
||||
}
|
||||
|
||||
static int button_hotplug_create_event(const char *name, unsigned long seen,
|
||||
int pressed)
|
||||
{
|
||||
struct bh_event *event;
|
||||
|
||||
BH_DBG("create event, name=%s, seen=%lu, pressed=%d\n",
|
||||
name, seen, pressed);
|
||||
|
||||
event = kzalloc(sizeof(*event), GFP_KERNEL);
|
||||
if (!event)
|
||||
return -ENOMEM;
|
||||
|
||||
event->name = name;
|
||||
event->seen = seen;
|
||||
event->action = pressed ? "pressed" : "released";
|
||||
|
||||
INIT_WORK(&event->work, (void *)(void *)button_hotplug_work);
|
||||
schedule_work(&event->work);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef CONFIG_HOTPLUG
|
||||
static int button_get_index(unsigned int code)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(button_map); i++)
|
||||
if (button_map[i].code == code)
|
||||
return i;
|
||||
|
||||
return -1;
|
||||
}
|
||||
static void button_hotplug_event(struct gpio_keys_button_data *data,
|
||||
unsigned int type, unsigned int code, int value)
|
||||
{
|
||||
struct bh_priv *priv = &data->bh;
|
||||
unsigned long seen = jiffies;
|
||||
int btn;
|
||||
|
||||
BH_DBG("event type=%u, code=%u, value=%d\n", type, code, value);
|
||||
|
||||
if (type != EV_KEY)
|
||||
return;
|
||||
|
||||
btn = button_get_index(code);
|
||||
if (btn < 0)
|
||||
return;
|
||||
|
||||
button_hotplug_create_event(button_map[btn].name,
|
||||
(seen - priv->seen) / HZ, value);
|
||||
priv->seen = seen;
|
||||
}
|
||||
#else
|
||||
static void button_hotplug_event(struct gpio_keys_button_data *data,
|
||||
unsigned int type, unsigned int code, int value)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_HOTPLUG */
|
||||
|
||||
struct gpio_keys_polled_dev {
|
||||
struct delayed_work work;
|
||||
|
||||
struct device *dev;
|
||||
struct gpio_keys_platform_data *pdata;
|
||||
struct gpio_keys_button_data data[0];
|
||||
};
|
||||
|
||||
static void gpio_keys_polled_check_state(struct gpio_keys_button *button,
|
||||
struct gpio_keys_button_data *bdata)
|
||||
{
|
||||
int state;
|
||||
|
||||
if (bdata->can_sleep)
|
||||
state = !!gpio_get_value_cansleep(button->gpio);
|
||||
else
|
||||
state = !!gpio_get_value(button->gpio);
|
||||
|
||||
state = !!(state ^ button->active_low);
|
||||
if (state != bdata->last_state) {
|
||||
unsigned int type = button->type ?: EV_KEY;
|
||||
|
||||
button_hotplug_event(bdata, type, button->code, state);
|
||||
bdata->count = 0;
|
||||
bdata->last_state = state;
|
||||
}
|
||||
}
|
||||
|
||||
static void gpio_keys_polled_queue_work(struct gpio_keys_polled_dev *bdev)
|
||||
{
|
||||
struct gpio_keys_platform_data *pdata = bdev->pdata;
|
||||
unsigned long delay = msecs_to_jiffies(pdata->poll_interval);
|
||||
|
||||
if (delay >= HZ)
|
||||
delay = round_jiffies_relative(delay);
|
||||
schedule_delayed_work(&bdev->work, delay);
|
||||
}
|
||||
|
||||
static void gpio_keys_polled_poll(struct work_struct *work)
|
||||
{
|
||||
struct gpio_keys_polled_dev *bdev =
|
||||
container_of(work, struct gpio_keys_polled_dev, work.work);
|
||||
struct gpio_keys_platform_data *pdata = bdev->pdata;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < bdev->pdata->nbuttons; i++) {
|
||||
struct gpio_keys_button_data *bdata = &bdev->data[i];
|
||||
|
||||
if (bdata->count < bdata->threshold)
|
||||
bdata->count++;
|
||||
else
|
||||
gpio_keys_polled_check_state(&pdata->buttons[i], bdata);
|
||||
}
|
||||
gpio_keys_polled_queue_work(bdev);
|
||||
}
|
||||
|
||||
static void __devinit gpio_keys_polled_open(struct gpio_keys_polled_dev *bdev)
|
||||
{
|
||||
struct gpio_keys_platform_data *pdata = bdev->pdata;
|
||||
int i;
|
||||
|
||||
if (pdata->enable)
|
||||
pdata->enable(bdev->dev);
|
||||
|
||||
/* report initial state of the buttons */
|
||||
for (i = 0; i < pdata->nbuttons; i++)
|
||||
gpio_keys_polled_check_state(&pdata->buttons[i], &bdev->data[i]);
|
||||
|
||||
gpio_keys_polled_queue_work(bdev);
|
||||
}
|
||||
|
||||
static void __devexit gpio_keys_polled_close(struct gpio_keys_polled_dev *bdev)
|
||||
{
|
||||
struct gpio_keys_platform_data *pdata = bdev->pdata;
|
||||
|
||||
cancel_delayed_work_sync(&bdev->work);
|
||||
|
||||
if (pdata->disable)
|
||||
pdata->disable(bdev->dev);
|
||||
}
|
||||
|
||||
static int __devinit gpio_keys_polled_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct gpio_keys_platform_data *pdata = pdev->dev.platform_data;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct gpio_keys_polled_dev *bdev;
|
||||
int error;
|
||||
int i;
|
||||
|
||||
if (!pdata || !pdata->poll_interval)
|
||||
return -EINVAL;
|
||||
|
||||
bdev = kzalloc(sizeof(struct gpio_keys_polled_dev) +
|
||||
pdata->nbuttons * sizeof(struct gpio_keys_button_data),
|
||||
GFP_KERNEL);
|
||||
if (!bdev) {
|
||||
dev_err(dev, "no memory for private data\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
for (i = 0; i < pdata->nbuttons; i++) {
|
||||
struct gpio_keys_button *button = &pdata->buttons[i];
|
||||
struct gpio_keys_button_data *bdata = &bdev->data[i];
|
||||
unsigned int gpio = button->gpio;
|
||||
|
||||
if (button->wakeup) {
|
||||
dev_err(dev, DRV_NAME " does not support wakeup\n");
|
||||
error = -EINVAL;
|
||||
goto err_free_gpio;
|
||||
}
|
||||
|
||||
error = gpio_request(gpio,
|
||||
button->desc ? button->desc : DRV_NAME);
|
||||
if (error) {
|
||||
dev_err(dev, "unable to claim gpio %u, err=%d\n",
|
||||
gpio, error);
|
||||
goto err_free_gpio;
|
||||
}
|
||||
|
||||
error = gpio_direction_input(gpio);
|
||||
if (error) {
|
||||
dev_err(dev,
|
||||
"unable to set direction on gpio %u, err=%d\n",
|
||||
gpio, error);
|
||||
goto err_free_gpio;
|
||||
}
|
||||
|
||||
bdata->can_sleep = gpio_cansleep(gpio);
|
||||
bdata->last_state = 0;
|
||||
bdata->threshold = DIV_ROUND_UP(button->debounce_interval,
|
||||
pdata->poll_interval);
|
||||
}
|
||||
|
||||
bdev->dev = &pdev->dev;
|
||||
bdev->pdata = pdata;
|
||||
platform_set_drvdata(pdev, bdev);
|
||||
|
||||
INIT_DELAYED_WORK(&bdev->work, gpio_keys_polled_poll);
|
||||
|
||||
gpio_keys_polled_open(bdev);
|
||||
|
||||
return 0;
|
||||
|
||||
err_free_gpio:
|
||||
while (--i >= 0)
|
||||
gpio_free(pdata->buttons[i].gpio);
|
||||
|
||||
kfree(bdev);
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
static int __devexit gpio_keys_polled_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct gpio_keys_polled_dev *bdev = platform_get_drvdata(pdev);
|
||||
struct gpio_keys_platform_data *pdata = bdev->pdata;
|
||||
int i = pdata->nbuttons;
|
||||
|
||||
gpio_keys_polled_close(bdev);
|
||||
|
||||
while (--i >= 0)
|
||||
gpio_free(pdata->buttons[i].gpio);
|
||||
|
||||
kfree(bdev);
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver gpio_keys_polled_driver = {
|
||||
.probe = gpio_keys_polled_probe,
|
||||
.remove = __devexit_p(gpio_keys_polled_remove),
|
||||
.driver = {
|
||||
.name = DRV_NAME,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init gpio_keys_polled_init(void)
|
||||
{
|
||||
return platform_driver_register(&gpio_keys_polled_driver);
|
||||
}
|
||||
|
||||
static void __exit gpio_keys_polled_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&gpio_keys_polled_driver);
|
||||
}
|
||||
|
||||
module_init(gpio_keys_polled_init);
|
||||
module_exit(gpio_keys_polled_exit);
|
||||
|
||||
MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
|
||||
MODULE_AUTHOR("Felix Fietkau <nbd@openwrt.org>");
|
||||
MODULE_DESCRIPTION("Polled GPIO Buttons hotplug driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_ALIAS("platform:" DRV_NAME);
|
||||
117
package/system/hostap-driver/Makefile
Normal file
117
package/system/hostap-driver/Makefile
Normal file
@@ -0,0 +1,117 @@
|
||||
#
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=hostap-driver
|
||||
PKG_VERSION:=0.4.9
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://hostap.epitest.fi/releases/
|
||||
PKG_MD5SUM:=c7534dc040ab90218257a78488ecd378
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/hostap/Default
|
||||
VERSION:=$(LINUX_VERSION)-$(BOARD)-$(PKG_RELEASE)
|
||||
SUBMENU:=Wireless Drivers
|
||||
URL:=http://hostap.epitest.fi/
|
||||
endef
|
||||
|
||||
define KernelPackage/hostap/Default/description
|
||||
Host AP is a driver for 802.11b wireless cards based on Intersil
|
||||
Prism2/2.5/3 chipset. It supports so called Host AP mode that allows the
|
||||
card to act as an IEEE 802.11 access point.
|
||||
endef
|
||||
|
||||
|
||||
define KernelPackage/hostap
|
||||
$(call KernelPackage/hostap/Default)
|
||||
TITLE:=Host AP support for Prism2/2.5/3
|
||||
DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-lib80211 +wireless-tools
|
||||
KCONFIG:=CONFIG_HOSTAP CONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_FIRMWARE_NVRAM=y
|
||||
FILES:=$(LINUX_DIR)/drivers/net/wireless/hostap/hostap.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,hostap)
|
||||
endef
|
||||
|
||||
define KernelPackage/hostap/description
|
||||
$(call KernelPackage/hostap/Default/description)
|
||||
This package contains the base Host AP driver code that is shared by
|
||||
different hardware models. You will also need to enable support for
|
||||
PLX/PCI/CS version of the driver to actually use the driver.
|
||||
endef
|
||||
|
||||
|
||||
define KernelPackage/hostap-cs
|
||||
$(call KernelPackage/hostap/Default)
|
||||
TITLE:=Host AP driver for PCMCIA adaptors
|
||||
DEPENDS:=@PCMCIA_SUPPORT +kmod-hostap +kmod-pcmcia-core
|
||||
KCONFIG:=CONFIG_HOSTAP_CS
|
||||
FILES:=$(LINUX_DIR)/drivers/net/wireless/hostap/hostap_cs.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,hostap_cs)
|
||||
endef
|
||||
|
||||
define KernelPackage/hostap-cs/description
|
||||
$(call KernelPackage/hostap/Default/description)
|
||||
This package contains the Host AP driver for Prism2/2.5/3 PC cards.
|
||||
endef
|
||||
|
||||
|
||||
define KernelPackage/hostap-pci
|
||||
$(call KernelPackage/hostap/Default)
|
||||
TITLE:=Host AP driver for PCI adaptors
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-hostap
|
||||
KCONFIG:=CONFIG_HOSTAP_PCI
|
||||
FILES:=$(LINUX_DIR)/drivers/net/wireless/hostap/hostap_pci.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,hostap_pci)
|
||||
endef
|
||||
|
||||
define KernelPackage/hostap-pci/description
|
||||
$(call KernelPackage/hostap/Default/description)
|
||||
This package contains the Host AP driver for Prism2.5 PCI adaptors.
|
||||
endef
|
||||
|
||||
|
||||
define KernelPackage/hostap-plx
|
||||
$(call KernelPackage/hostap/Default)
|
||||
TITLE:=Host AP driver for PLX9052 based PCI adaptors
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-hostap
|
||||
KCONFIG:=CONFIG_HOSTAP_PLX
|
||||
FILES:=$(LINUX_DIR)/drivers/net/wireless/hostap/hostap_plx.ko
|
||||
AUTOLOAD:=$(call AutoLoad,60,hostap_plx)
|
||||
endef
|
||||
|
||||
define KernelPackage/hostap-plx/description
|
||||
$(call KernelPackage/hostap/Default/description)
|
||||
This package contains the Host AP driver for Prism2/2.5/3 in PLX9052
|
||||
based PCI adaptors.
|
||||
endef
|
||||
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
|
||||
endef
|
||||
|
||||
define KernelPackage/hostap/install
|
||||
$(INSTALL_DIR) $(1)/lib/wifi
|
||||
$(INSTALL_DATA) ./files/lib/wifi/hostap.sh $(1)/lib/wifi
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,hostap))
|
||||
$(eval $(call KernelPackage,hostap-cs))
|
||||
$(eval $(call KernelPackage,hostap-pci))
|
||||
$(eval $(call KernelPackage,hostap-plx))
|
||||
270
package/system/hostap-driver/files/lib/wifi/hostap.sh
Executable file
270
package/system/hostap-driver/files/lib/wifi/hostap.sh
Executable file
@@ -0,0 +1,270 @@
|
||||
#!/bin/sh
|
||||
append DRIVERS "prism2"
|
||||
|
||||
find_prism2_phy() {
|
||||
local device="$1"
|
||||
|
||||
local macaddr="$(config_get "$device" macaddr | tr 'A-Z' 'a-z')"
|
||||
config_get phy "$device" phy
|
||||
[ -z "$phy" -a -n "$macaddr" ] && {
|
||||
cd /proc/net/hostap
|
||||
for phy in $(ls -d wlan* 2>&-); do
|
||||
[ "$macaddr" = "$(cat /sys/class/net/${phy}/address)" ] || continue
|
||||
config_set "$device" phy "$phy"
|
||||
break
|
||||
done
|
||||
config_get phy "$device" phy
|
||||
}
|
||||
[ -n "$phy" -a -d "/proc/net/hostap/$phy" ] || {
|
||||
echo "phy for wifi device $1 not found"
|
||||
return 1
|
||||
}
|
||||
[ -z "$macaddr" ] && {
|
||||
config_set "$device" macaddr "$(cat /sys/class/net/${phy}/address)"
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
scan_prism2() {
|
||||
local device="$1"
|
||||
local mainvif
|
||||
local wds
|
||||
|
||||
[ ${device%[0-9]} = "wlan" ] && config_set "$device" phy "$device" || find_prism2_phy "$device" || {
|
||||
config_unset "$device" vifs
|
||||
return 0
|
||||
}
|
||||
config_get phy "$device" phy
|
||||
|
||||
config_get vifs "$device" vifs
|
||||
local _c=0
|
||||
for vif in $vifs; do
|
||||
config_get_bool disabled "$vif" disabled 0
|
||||
[ $disabled = 0 ] || continue
|
||||
|
||||
config_get mode "$vif" mode
|
||||
case "$mode" in
|
||||
adhoc|sta|ap|monitor)
|
||||
# Only one vif is allowed on AP, station, Ad-hoc or monitor mode
|
||||
[ -z "$mainvif" ] && {
|
||||
mainvif="$vif"
|
||||
config_set "$vif" ifname "$phy"
|
||||
}
|
||||
;;
|
||||
wds)
|
||||
config_get ssid "$vif" ssid
|
||||
[ -z "$ssid" ] && continue
|
||||
config_set "$vif" ifname "${phy}wds${_c}"
|
||||
_c=$(($_c + 1))
|
||||
addr="$ssid"
|
||||
${addr:+append wds "$vif"}
|
||||
;;
|
||||
*) echo "$device($vif): Invalid mode, ignored."; continue;;
|
||||
esac
|
||||
done
|
||||
config_set "$device" vifs "${mainvif:+$mainvif }${wds:+$wds}"
|
||||
}
|
||||
|
||||
disable_prism2() (
|
||||
local device="$1"
|
||||
|
||||
find_prism2_phy "$device" || return 0
|
||||
config_get phy "$device" phy
|
||||
|
||||
set_wifi_down "$device"
|
||||
|
||||
include /lib/network
|
||||
while read line < /proc/net/hostap/${phy}/wds; do
|
||||
set $line
|
||||
[ -f "/var/run/wifi-${1}.pid" ] &&
|
||||
kill "$(cat "/var/run/wifi-${1}.pid")"
|
||||
ifconfig "$1" down
|
||||
unbridge "$1"
|
||||
iwpriv "$phy" wds_del "$2"
|
||||
done
|
||||
unbridge "$phy"
|
||||
return 0
|
||||
)
|
||||
|
||||
enable_prism2() {
|
||||
local device="$1"
|
||||
|
||||
find_prism2_phy "$device" || return 0
|
||||
config_get phy "$device" phy
|
||||
|
||||
config_get rxantenna "$device" rxantenna
|
||||
config_get txantenna "$device" txantenna
|
||||
config_get_bool diversity "$device" diversity
|
||||
[ -n "$diversity" ] && {
|
||||
rxantenna="1"
|
||||
txantenna="1"
|
||||
}
|
||||
[ -n "$rxantenna" ] && iwpriv "$phy" antsel_rx "$rxantenna"
|
||||
[ -n "$txantenna" ] && iwpriv "$phy" antsel_tx "$txantenna"
|
||||
|
||||
config_get channel "$device" channel
|
||||
[ -n "$channel" ] && iwconfig "$phy" channel "$channel" >/dev/null 2>/dev/null
|
||||
|
||||
config_get txpower "$device" txpower
|
||||
[ -n "$txpower" ] && iwconfig "$phy" txpower "${txpower%%.*}"
|
||||
|
||||
config_get vifs "$device" vifs
|
||||
local first=1
|
||||
for vif in $vifs; do
|
||||
config_get ifname "$vif" ifname
|
||||
config_get ssid "$vif" ssid
|
||||
config_get mode "$vif" mode
|
||||
|
||||
[ "$mode" = "wds" ] || iwconfig "$phy" essid ${ssid:+-- }"${ssid:-any}"
|
||||
|
||||
case "$mode" in
|
||||
sta)
|
||||
iwconfig "$phy" mode managed
|
||||
config_get addr "$device" bssid
|
||||
[ -z "$addr" ] || {
|
||||
iwconfig "$phy" ap "$addr"
|
||||
}
|
||||
;;
|
||||
ap) iwconfig "$phy" mode master;;
|
||||
wds) iwpriv "$phy" wds_add "$ssid";;
|
||||
adhoc) iwconfig "$phy" mode ad-hoc;;
|
||||
*) iwconfig "$phy" mode "$mode";;
|
||||
esac
|
||||
|
||||
[ "$first" = 1 ] && {
|
||||
config_get rate "$vif" rate
|
||||
[ -n "$rate" ] && iwconfig "$phy" rate "${rate%%.*}"
|
||||
|
||||
config_get_bool hidden "$vif" hidden 0
|
||||
iwpriv "$phy" enh_sec "$hidden"
|
||||
|
||||
config_get frag "$vif" frag
|
||||
[ -n "$frag" ] && iwconfig "$phy" frag "${frag%%.*}"
|
||||
|
||||
config_get rts "$vif" rts
|
||||
[ -n "$rts" ] && iwconfig "$phy" rts "${rts%%.*}"
|
||||
|
||||
config_get maclist "$vif" maclist
|
||||
[ -n "$maclist" ] && {
|
||||
# flush MAC list
|
||||
iwpriv "$phy" maccmd 3
|
||||
for mac in $maclist; do
|
||||
iwpriv "$phy" addmac "$mac"
|
||||
done
|
||||
}
|
||||
config_get macpolicy "$vif" macpolicy
|
||||
case "$macpolicy" in
|
||||
allow)
|
||||
iwpriv "$phy" maccmd 2
|
||||
;;
|
||||
deny)
|
||||
iwpriv "$phy" maccmd 1
|
||||
;;
|
||||
*)
|
||||
# default deny policy if mac list exists
|
||||
[ -n "$maclist" ] && iwpriv "$phy" maccmd 1
|
||||
;;
|
||||
esac
|
||||
# kick all stations if we have policy explicitly set
|
||||
[ -n "$macpolicy" ] && iwpriv "$phy" maccmd 4
|
||||
}
|
||||
|
||||
config_get enc "$vif" encryption
|
||||
case "$enc" in
|
||||
WEP|wep)
|
||||
for idx in 1 2 3 4; do
|
||||
config_get key "$vif" "key${idx}"
|
||||
iwconfig "$ifname" enc "[$idx]" "${key:-off}"
|
||||
done
|
||||
config_get key "$vif" key
|
||||
key="${key:-1}"
|
||||
case "$key" in
|
||||
[1234]) iwconfig "$ifname" enc "[$key]";;
|
||||
*) iwconfig "$ifname" enc "$key";;
|
||||
esac
|
||||
;;
|
||||
psk*|wpa*)
|
||||
start_hostapd=1
|
||||
config_get key "$vif" key
|
||||
;;
|
||||
esac
|
||||
|
||||
local net_cfg bridge
|
||||
net_cfg="$(find_net_config "$vif")"
|
||||
[ -z "$net_cfg" ] || {
|
||||
bridge="$(bridge_interface "$net_cfg")"
|
||||
config_set "$vif" bridge "$bridge"
|
||||
start_net "$ifname" "$net_cfg"
|
||||
}
|
||||
set_wifi_up "$vif" "$ifname"
|
||||
|
||||
case "$mode" in
|
||||
ap)
|
||||
if [ -n "$start_hostapd" ] && eval "type hostapd_setup_vif" 2>/dev/null >/dev/null; then
|
||||
hostapd_setup_vif "$vif" hostap || {
|
||||
echo "enable_prism2($device): Failed to set up hostapd for interface $ifname" >&2
|
||||
# make sure this wifi interface won't accidentally stay open without encryption
|
||||
ifconfig "$ifname" down
|
||||
continue
|
||||
}
|
||||
fi
|
||||
;;
|
||||
wds|sta)
|
||||
if eval "type wpa_supplicant_setup_vif" 2>/dev/null >/dev/null; then
|
||||
wpa_supplicant_setup_vif "$vif" wext || {
|
||||
echo "enable_prism2($device): Failed to set up wpa_supplicant for interface $ifname" >&2
|
||||
ifconfig "$ifname" down
|
||||
continue
|
||||
}
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
first=0
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
check_prism2_device() {
|
||||
[ ${1%[0-9]} = "wlan" ] && config_set "$1" phy "$1"
|
||||
config_get phy "$1" phy
|
||||
[ -z "$phy" ] && {
|
||||
find_prism2_phy "$1" >/dev/null || return 0
|
||||
config_get phy "$1" phy
|
||||
}
|
||||
[ "$phy" = "$dev" ] && found=1
|
||||
}
|
||||
|
||||
detect_prism2() {
|
||||
devidx=0
|
||||
config_load wireless
|
||||
while :; do
|
||||
config_get type "radio$devidx" type
|
||||
[ -n "$type" ] || break
|
||||
devidx=$(($devidx + 1))
|
||||
done
|
||||
cd /proc/net/hostap
|
||||
[ -d wlan* ] || return
|
||||
for dev in $(ls -d wlan* 2>&-); do
|
||||
found=0
|
||||
config_foreach check_prism2_device wifi-device
|
||||
[ "$found" -gt 0 ] && continue
|
||||
cat <<EOF
|
||||
config wifi-device radio$devidx
|
||||
option type prism2
|
||||
option channel 11
|
||||
option macaddr $(cat /sys/class/net/${dev}/address)
|
||||
|
||||
# REMOVE THIS LINE TO ENABLE WIFI:
|
||||
option disabled 1
|
||||
|
||||
config wifi-iface
|
||||
option device radio$devidx
|
||||
option network lan
|
||||
option mode ap
|
||||
option ssid OpenWrt
|
||||
option encryption none
|
||||
|
||||
EOF
|
||||
devidx=$(($devidx + 1))
|
||||
done
|
||||
}
|
||||
175
package/system/hostap-driver/patches/001-fix-txpower.patch
Normal file
175
package/system/hostap-driver/patches/001-fix-txpower.patch
Normal file
@@ -0,0 +1,175 @@
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap.c hostap-driver-0.3.7-patched/driver/modules/hostap.c
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap.c 2004-08-28 06:26:46.000000000 +0300
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap.c 2005-04-20 17:20:56.000000000 +0300
|
||||
@@ -1164,6 +1164,36 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
+/* BUG FIX: Restore power setting value when lost due to F/W bug */
|
||||
+
|
||||
+int hostap_restore_power(struct net_device *dev)
|
||||
+{
|
||||
+ struct hostap_interface *iface = dev->priv;
|
||||
+ local_info_t *local = iface->local;
|
||||
+
|
||||
+ u16 val;
|
||||
+ int ret = 0;
|
||||
+
|
||||
+ if (local->txpower_type == PRISM2_TXPOWER_OFF) {
|
||||
+ val = 0xff; /* use all standby and sleep modes */
|
||||
+ ret = local->func->cmd(dev, HFA384X_CMDCODE_WRITEMIF,
|
||||
+ HFA386X_CR_A_D_TEST_MODES2,
|
||||
+ &val, NULL);
|
||||
+ }
|
||||
+
|
||||
+#ifdef RAW_TXPOWER_SETTING
|
||||
+ if (local->txpower_type == PRISM2_TXPOWER_FIXED) {
|
||||
+ val = HFA384X_TEST_CFG_BIT_ALC;
|
||||
+ local->func->cmd(dev, HFA384X_CMDCODE_TEST |
|
||||
+ (HFA384X_TEST_CFG_BITS << 8), 0, &val, NULL);
|
||||
+ val = prism2_txpower_dBm_to_hfa386x(local->txpower);
|
||||
+ ret = (local->func->cmd(dev, HFA384X_CMDCODE_WRITEMIF,
|
||||
+ HFA386X_CR_MANUAL_TX_POWER, &val, NULL));
|
||||
+ }
|
||||
+#endif /* RAW_TXPOWER_SETTING */
|
||||
+ return (ret ? -EOPNOTSUPP : 0);
|
||||
+}
|
||||
+
|
||||
|
||||
struct proc_dir_entry *hostap_proc;
|
||||
|
||||
@@ -1214,6 +1244,7 @@
|
||||
EXPORT_SYMBOL(hostap_set_hostapd_sta);
|
||||
EXPORT_SYMBOL(hostap_add_interface);
|
||||
EXPORT_SYMBOL(hostap_remove_interface);
|
||||
+EXPORT_SYMBOL(hostap_restore_power);
|
||||
EXPORT_SYMBOL(prism2_update_comms_qual);
|
||||
|
||||
module_init(hostap_init);
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap.h hostap-driver-0.3.7-patched/driver/modules/hostap.h
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap.h 2003-11-30 04:14:26.000000000 +0200
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap.h 2005-04-20 17:21:23.000000000 +0300
|
||||
@@ -36,6 +36,7 @@
|
||||
const char *prefix, const char *name);
|
||||
void hostap_remove_interface(struct net_device *dev, int rtnl_locked,
|
||||
int remove_from_list);
|
||||
+int hostap_restore_power(struct net_device *dev);
|
||||
int prism2_update_comms_qual(struct net_device *dev);
|
||||
int prism2_sta_send_mgmt(local_info_t *local, u8 *dst, u8 stype,
|
||||
u8 *body, size_t bodylen);
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap_ap.c hostap-driver-0.3.7-patched/driver/modules/hostap_ap.c
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap_ap.c 2005-01-24 04:52:00.000000000 +0200
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap_ap.c 2005-04-21 20:06:12.000000000 +0300
|
||||
@@ -2346,13 +2346,13 @@
|
||||
addr[count].sa_family = ARPHRD_ETHER;
|
||||
memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
|
||||
if (sta->last_rx_silence == 0)
|
||||
- qual[count].qual = sta->last_rx_signal < 27 ?
|
||||
- 0 : (sta->last_rx_signal - 27) * 92 / 127;
|
||||
+ qual[count].qual = (sta->last_rx_signal - 156) == 0 ?
|
||||
+ 0 : (sta->last_rx_signal - 156) * 92 / 64;
|
||||
else
|
||||
- qual[count].qual = sta->last_rx_signal -
|
||||
- sta->last_rx_silence - 35;
|
||||
- qual[count].level = HFA384X_LEVEL_TO_dBm(sta->last_rx_signal);
|
||||
- qual[count].noise = HFA384X_LEVEL_TO_dBm(sta->last_rx_silence);
|
||||
+ qual[count].qual = (sta->last_rx_signal -
|
||||
+ sta->last_rx_silence) * 92 / 64;
|
||||
+ qual[count].level = sta->last_rx_signal;
|
||||
+ qual[count].noise = sta->last_rx_silence;
|
||||
qual[count].updated = sta->last_rx_updated;
|
||||
|
||||
sta->last_rx_updated = 0;
|
||||
@@ -2413,13 +2413,13 @@
|
||||
memset(&iwe, 0, sizeof(iwe));
|
||||
iwe.cmd = IWEVQUAL;
|
||||
if (sta->last_rx_silence == 0)
|
||||
- iwe.u.qual.qual = sta->last_rx_signal < 27 ?
|
||||
- 0 : (sta->last_rx_signal - 27) * 92 / 127;
|
||||
+ iwe.u.qual.qual = (sta->last_rx_signal -156) == 0 ?
|
||||
+ 0 : (sta->last_rx_signal - 156) * 92 / 64;
|
||||
else
|
||||
- iwe.u.qual.qual = sta->last_rx_signal -
|
||||
- sta->last_rx_silence - 35;
|
||||
- iwe.u.qual.level = HFA384X_LEVEL_TO_dBm(sta->last_rx_signal);
|
||||
- iwe.u.qual.noise = HFA384X_LEVEL_TO_dBm(sta->last_rx_silence);
|
||||
+ iwe.u.qual.qual = (sta->last_rx_signal -
|
||||
+ sta->last_rx_silence) * 92 / 64;
|
||||
+ iwe.u.qual.level = sta->last_rx_signal;
|
||||
+ iwe.u.qual.noise = sta->last_rx_silence;
|
||||
iwe.u.qual.updated = sta->last_rx_updated;
|
||||
iwe.len = IW_EV_QUAL_LEN;
|
||||
current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap_config.h hostap-driver-0.3.7-patched/driver/modules/hostap_config.h
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap_config.h 2005-02-12 18:12:56.000000000 +0200
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap_config.h 2005-04-20 17:25:23.000000000 +0300
|
||||
@@ -94,6 +94,12 @@
|
||||
*/
|
||||
/* #define PRISM2_NO_STATION_MODES */
|
||||
|
||||
+/* Enable TX power Setting functions
|
||||
+ * (min att = -128 , max att = 127)
|
||||
+ */
|
||||
+
|
||||
+#define RAW_TXPOWER_SETTING
|
||||
+
|
||||
/* Use Linux crypto API instead of own encryption implementation whenever
|
||||
* possible. */
|
||||
/* #define HOSTAP_USE_CRYPTO_API */
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap_hw.c hostap-driver-0.3.7-patched/driver/modules/hostap_hw.c
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap_hw.c 2005-02-05 09:20:09.000000000 +0200
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap_hw.c 2005-04-20 17:25:55.000000000 +0300
|
||||
@@ -1039,6 +1039,7 @@
|
||||
dev->name, local->fragm_threshold);
|
||||
}
|
||||
|
||||
+ hostap_restore_power(dev);
|
||||
return res;
|
||||
}
|
||||
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap_info.c hostap-driver-0.3.7-patched/driver/modules/hostap_info.c
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap_info.c 2004-02-29 20:05:44.000000000 +0200
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap_info.c 2005-04-20 17:26:36.000000000 +0300
|
||||
@@ -418,6 +418,11 @@
|
||||
}
|
||||
|
||||
/* Get BSSID if we have a valid AP address */
|
||||
+
|
||||
+ if ( val == HFA384X_LINKSTATUS_CONNECTED ||
|
||||
+ val == HFA384X_LINKSTATUS_DISCONNECTED )
|
||||
+ hostap_restore_power(local->dev);
|
||||
+
|
||||
if (connected) {
|
||||
netif_carrier_on(local->dev);
|
||||
netif_carrier_on(local->ddev);
|
||||
diff -Naur hostap-driver-0.3.7/driver/modules/hostap_ioctl.c hostap-driver-0.3.7-patched/driver/modules/hostap_ioctl.c
|
||||
--- hostap-driver-0.3.7/driver/modules/hostap_ioctl.c 2004-11-22 08:03:05.000000000 +0200
|
||||
+++ hostap-driver-0.3.7-patched/driver/modules/hostap_ioctl.c 2005-04-20 17:42:41.000000000 +0300
|
||||
@@ -1453,23 +1453,20 @@
|
||||
val = 255;
|
||||
|
||||
tmp = val;
|
||||
- tmp >>= 2;
|
||||
|
||||
- return -12 - tmp;
|
||||
+ return tmp;
|
||||
}
|
||||
|
||||
static u16 prism2_txpower_dBm_to_hfa386x(int val)
|
||||
{
|
||||
signed char tmp;
|
||||
|
||||
- if (val > 20)
|
||||
- return 128;
|
||||
- else if (val < -43)
|
||||
+ if (val > 127)
|
||||
return 127;
|
||||
+ else if (val < -128)
|
||||
+ return 128;
|
||||
|
||||
tmp = val;
|
||||
- tmp = -12 - tmp;
|
||||
- tmp <<= 2;
|
||||
|
||||
return (unsigned char) tmp;
|
||||
}
|
||||
53
package/system/i2c-gpio-custom/Makefile
Normal file
53
package/system/i2c-gpio-custom/Makefile
Normal file
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Copyright (C) 2008 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=i2c-gpio-custom
|
||||
PKG_RELEASE:=2
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/i2c-gpio-custom
|
||||
SUBMENU:=I2C support
|
||||
TITLE:=Custom GPIO-based I2C device
|
||||
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-i2c-gpio
|
||||
FILES:=$(PKG_BUILD_DIR)/i2c-gpio-custom.ko
|
||||
KCONFIG:=
|
||||
endef
|
||||
|
||||
define KernelPackage/i2c-gpio-custom/description
|
||||
Kernel module for register a custom i2c-gpio platform device.
|
||||
endef
|
||||
|
||||
EXTRA_KCONFIG:= \
|
||||
CONFIG_I2C_GPIO_CUSTOM=m
|
||||
|
||||
EXTRA_CFLAGS:= \
|
||||
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
|
||||
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(MAKE_OPTS) \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,i2c-gpio-custom))
|
||||
10
package/system/i2c-gpio-custom/src/Kconfig
Normal file
10
package/system/i2c-gpio-custom/src/Kconfig
Normal file
@@ -0,0 +1,10 @@
|
||||
config I2C_GPIO_CUSTOM
|
||||
tristate "Custom GPIO-based I2C driver"
|
||||
depends on GENERIC_GPIO
|
||||
select I2C_GPIO
|
||||
help
|
||||
This is an I2C driver to register 1 to 4 custom I2C buses using
|
||||
GPIO lines.
|
||||
|
||||
This support is also available as a module. If so, the module
|
||||
will be called i2c-gpio-custom.
|
||||
1
package/system/i2c-gpio-custom/src/Makefile
Normal file
1
package/system/i2c-gpio-custom/src/Makefile
Normal file
@@ -0,0 +1 @@
|
||||
obj-${CONFIG_I2C_GPIO_CUSTOM} += i2c-gpio-custom.o
|
||||
198
package/system/i2c-gpio-custom/src/i2c-gpio-custom.c
Normal file
198
package/system/i2c-gpio-custom/src/i2c-gpio-custom.c
Normal file
@@ -0,0 +1,198 @@
|
||||
/*
|
||||
* Custom GPIO-based I2C driver
|
||||
*
|
||||
* Copyright (C) 2007-2008 Gabor Juhos <juhosg@openwrt.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* ---------------------------------------------------------------------------
|
||||
*
|
||||
* The behaviour of this driver can be altered by setting some parameters
|
||||
* from the insmod command line.
|
||||
*
|
||||
* The following parameters are adjustable:
|
||||
*
|
||||
* bus0 These four arguments can be arrays of
|
||||
* bus1 1-8 unsigned integers as follows:
|
||||
* bus2
|
||||
* bus3 <id>,<sda>,<scl>,<udelay>,<timeout>,<sda_od>,<scl_od>,<scl_oo>
|
||||
*
|
||||
* where:
|
||||
*
|
||||
* <id> ID to used as device_id for the corresponding bus (required)
|
||||
* <sda> GPIO pin ID to used for SDA (required)
|
||||
* <scl> GPIO pin ID to used for SCL (required)
|
||||
* <udelay> signal toggle delay.
|
||||
* <timeout> clock stretching timeout.
|
||||
* <sda_od> SDA is configured as open drain.
|
||||
* <scl_od> SCL is configured as open drain.
|
||||
* <scl_oo> SCL output drivers cannot be turned off.
|
||||
*
|
||||
* See include/i2c-gpio.h for more information about the parameters.
|
||||
*
|
||||
* If this driver is built into the kernel, you can use the following kernel
|
||||
* command line parameters, with the same values as the corresponding module
|
||||
* parameters listed above:
|
||||
*
|
||||
* i2c-gpio-custom.bus0
|
||||
* i2c-gpio-custom.bus1
|
||||
* i2c-gpio-custom.bus2
|
||||
* i2c-gpio-custom.bus3
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
#define DRV_NAME "i2c-gpio-custom"
|
||||
#define DRV_DESC "Custom GPIO-based I2C driver"
|
||||
#define DRV_VERSION "0.1.1"
|
||||
|
||||
#define PFX DRV_NAME ": "
|
||||
|
||||
#define BUS_PARAM_ID 0
|
||||
#define BUS_PARAM_SDA 1
|
||||
#define BUS_PARAM_SCL 2
|
||||
#define BUS_PARAM_UDELAY 3
|
||||
#define BUS_PARAM_TIMEOUT 4
|
||||
#define BUS_PARAM_SDA_OD 5
|
||||
#define BUS_PARAM_SCL_OD 6
|
||||
#define BUS_PARAM_SCL_OO 7
|
||||
|
||||
#define BUS_PARAM_REQUIRED 3
|
||||
#define BUS_PARAM_COUNT 8
|
||||
#define BUS_COUNT_MAX 4
|
||||
|
||||
static unsigned int bus0[BUS_PARAM_COUNT] __initdata;
|
||||
static unsigned int bus1[BUS_PARAM_COUNT] __initdata;
|
||||
static unsigned int bus2[BUS_PARAM_COUNT] __initdata;
|
||||
static unsigned int bus3[BUS_PARAM_COUNT] __initdata;
|
||||
|
||||
static unsigned int bus_nump[BUS_COUNT_MAX] __initdata;
|
||||
|
||||
#define BUS_PARM_DESC \
|
||||
" config -> id,sda,scl[,udelay,timeout,sda_od,scl_od,scl_oo]"
|
||||
|
||||
module_param_array(bus0, uint, &bus_nump[0], 0);
|
||||
MODULE_PARM_DESC(bus0, "bus0" BUS_PARM_DESC);
|
||||
module_param_array(bus1, uint, &bus_nump[1], 0);
|
||||
MODULE_PARM_DESC(bus1, "bus1" BUS_PARM_DESC);
|
||||
module_param_array(bus2, uint, &bus_nump[2], 0);
|
||||
MODULE_PARM_DESC(bus2, "bus2" BUS_PARM_DESC);
|
||||
module_param_array(bus3, uint, &bus_nump[3], 0);
|
||||
MODULE_PARM_DESC(bus3, "bus3" BUS_PARM_DESC);
|
||||
|
||||
static struct platform_device *devices[BUS_COUNT_MAX];
|
||||
static unsigned int nr_devices;
|
||||
|
||||
static void i2c_gpio_custom_cleanup(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nr_devices; i++)
|
||||
if (devices[i])
|
||||
platform_device_put(devices[i]);
|
||||
}
|
||||
|
||||
static int __init i2c_gpio_custom_add_one(unsigned int id, unsigned int *params)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
struct i2c_gpio_platform_data pdata;
|
||||
int err;
|
||||
|
||||
if (!bus_nump[id])
|
||||
return 0;
|
||||
|
||||
if (bus_nump[id] < BUS_PARAM_REQUIRED) {
|
||||
printk(KERN_ERR PFX "not enough parameters for bus%d\n", id);
|
||||
err = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
|
||||
pdev = platform_device_alloc("i2c-gpio", params[BUS_PARAM_ID]);
|
||||
if (!pdev) {
|
||||
err = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
|
||||
pdata.sda_pin = params[BUS_PARAM_SDA];
|
||||
pdata.scl_pin = params[BUS_PARAM_SCL];
|
||||
pdata.udelay = params[BUS_PARAM_UDELAY];
|
||||
pdata.timeout = params[BUS_PARAM_TIMEOUT];
|
||||
pdata.sda_is_open_drain = params[BUS_PARAM_SDA_OD] != 0;
|
||||
pdata.scl_is_open_drain = params[BUS_PARAM_SCL_OD] != 0;
|
||||
pdata.scl_is_output_only = params[BUS_PARAM_SCL_OO] != 0;
|
||||
|
||||
err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
|
||||
if (err)
|
||||
goto err_put;
|
||||
|
||||
err = platform_device_add(pdev);
|
||||
if (err)
|
||||
goto err_put;
|
||||
|
||||
devices[nr_devices++] = pdev;
|
||||
return 0;
|
||||
|
||||
err_put:
|
||||
platform_device_put(pdev);
|
||||
err:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int __init i2c_gpio_custom_probe(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
printk(KERN_INFO DRV_DESC " version " DRV_VERSION "\n");
|
||||
|
||||
err = i2c_gpio_custom_add_one(0, bus0);
|
||||
if (err) goto err;
|
||||
|
||||
err = i2c_gpio_custom_add_one(1, bus1);
|
||||
if (err) goto err;
|
||||
|
||||
err = i2c_gpio_custom_add_one(2, bus2);
|
||||
if (err) goto err;
|
||||
|
||||
err = i2c_gpio_custom_add_one(3, bus3);
|
||||
if (err) goto err;
|
||||
|
||||
if (!nr_devices) {
|
||||
printk(KERN_ERR PFX "no bus parameter(s) specified\n");
|
||||
err = -ENODEV;
|
||||
goto err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
i2c_gpio_custom_cleanup();
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifdef MODULE
|
||||
static int __init i2c_gpio_custom_init(void)
|
||||
{
|
||||
return i2c_gpio_custom_probe();
|
||||
}
|
||||
module_init(i2c_gpio_custom_init);
|
||||
|
||||
static void __exit i2c_gpio_custom_exit(void)
|
||||
{
|
||||
i2c_gpio_custom_cleanup();
|
||||
}
|
||||
module_exit(i2c_gpio_custom_exit);
|
||||
#else
|
||||
subsys_initcall(i2c_gpio_custom_probe);
|
||||
#endif /* MODULE*/
|
||||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org >");
|
||||
MODULE_DESCRIPTION(DRV_DESC);
|
||||
MODULE_VERSION(DRV_VERSION);
|
||||
57
package/system/ixp4xx-microcode/Makefile
Normal file
57
package/system/ixp4xx-microcode/Makefile
Normal file
@@ -0,0 +1,57 @@
|
||||
#
|
||||
# Copyright (C) 2007 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ixp4xx-microcode
|
||||
PKG_VERSION:=2.4
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=IPL_ixp400NpeLibraryWithCrypto-2_4.zip
|
||||
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources
|
||||
PKG_MD5SUM:=dd5f6482e625ecb334469958bcd54b37
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/ixp4xx-microcode
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Microcode for the IXP4xx network engines
|
||||
DEPENDS:=@TARGET_ixp4xx
|
||||
endef
|
||||
|
||||
define Package/ixp4xx-microcode/description
|
||||
This package contains the microcode needed to use the network engines in IXP4xx CPUs
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
rm -rf $(PKG_BUILD_DIR)
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
unzip -d $(PKG_BUILD_DIR)/ $(DL_DIR)/$(PKG_SOURCE)
|
||||
mv $(PKG_BUILD_DIR)/ixp400_xscale_sw/src/npeDl/IxNpeMicrocode.c $(PKG_BUILD_DIR)/
|
||||
rm -rf $(PKG_BUILD_DIR)/ixp400_xscale_sw
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
(cd $(PKG_BUILD_DIR); \
|
||||
$(HOSTCC) -Wall -I$(STAGING_DIR_HOST)/include IxNpeMicrocode.c -o IxNpeMicrocode; \
|
||||
./IxNpeMicrocode -be \
|
||||
)
|
||||
endef
|
||||
|
||||
define Package/ixp4xx-microcode/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware
|
||||
$(INSTALL_DIR) $(1)/usr/share/doc
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-A $(1)/lib/firmware/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-A-HSS $(1)/lib/firmware/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-B $(1)/lib/firmware/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-C $(1)/lib/firmware/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE.IPL $(1)/usr/share/doc/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ixp4xx-microcode))
|
||||
148
package/system/ixp4xx-microcode/src/IxNpeMicrocode.h
Normal file
148
package/system/ixp4xx-microcode/src/IxNpeMicrocode.h
Normal file
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* IxNpeMicrocode.h - Headerfile for compiling the Intel microcode C file
|
||||
*
|
||||
* Copyright (C) 2006 Christian Hohnstaedt <chohnstaedt@innominate.com>
|
||||
*
|
||||
* This file is released under the GPLv2
|
||||
*
|
||||
*
|
||||
* compile with
|
||||
*
|
||||
* gcc -Wall IxNpeMicrocode.c -o IxNpeMicrocode
|
||||
*
|
||||
* Executing the resulting binary on your build-host creates the
|
||||
* "NPE-[ABC].xxxxxxxx" files containing the selected microcode
|
||||
*
|
||||
* fetch the IxNpeMicrocode.c from the Intel Access Library.
|
||||
* It will include this header.
|
||||
*
|
||||
* select Images for every NPE from the following
|
||||
* (used C++ comments for easy uncommenting ....)
|
||||
*/
|
||||
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_MASK_FIREWALL_VLAN_QOS_HDR_CONV_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_VLAN_QOS_HDR_CONV_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_MASK_FIREWALL_VLAN_QOS_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS_TSLOT_SWITCH
|
||||
#define IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL
|
||||
#define IX_NPEDL_NPEIMAGE_NPEA_HSS_2_PORT
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_DMA
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_ATM_MPHY_12_PORT
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_MPHY_1_PORT
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_SPHY_1_PORT
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS0
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEA_WEP
|
||||
|
||||
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_MASK_FIREWALL_VLAN_QOS_HDR_CONV_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_VLAN_QOS_HDR_CONV_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_MASK_FIREWALL_VLAN_QOS_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEB_DMA
|
||||
#define IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL
|
||||
|
||||
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_MASK_FIREWALL_VLAN_QOS_HDR_CONV_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_VLAN_QOS_HDR_CONV_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_MASK_FIREWALL_VLAN_QOS_EXTMIB
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_DMA
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_ETH_LEARN_FILTER_SPAN
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_ETH_LEARN_FILTER_FIREWALL
|
||||
#define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_CCM_ETH
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_CCM_EXTSHA_ETH
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_ETH_LEARN_FILTER_SPAN_FIREWALL
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
|
||||
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <endian.h>
|
||||
#include <byteswap.h>
|
||||
#include <string.h>
|
||||
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
#define to_le32(x) (x)
|
||||
#define to_be32(x) bswap_32(x)
|
||||
#else
|
||||
#define to_be32(x) (x)
|
||||
#define to_le32(x) bswap_32(x)
|
||||
#endif
|
||||
|
||||
struct dl_image {
|
||||
unsigned magic;
|
||||
unsigned id;
|
||||
unsigned size;
|
||||
unsigned data[0];
|
||||
};
|
||||
|
||||
const unsigned IxNpeMicrocode_array[];
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct dl_image *image = (struct dl_image *)IxNpeMicrocode_array;
|
||||
int imgsiz, i, fd, cnt;
|
||||
const unsigned *arrayptr = IxNpeMicrocode_array;
|
||||
const char *names[] = { "IXP425", "IXP465", "unknown" };
|
||||
int bigendian = 1;
|
||||
|
||||
if (argc > 1) {
|
||||
if (!strcmp(argv[1], "-le"))
|
||||
bigendian = 0;
|
||||
else if (!strcmp(argv[1], "-be"))
|
||||
bigendian = 1;
|
||||
else {
|
||||
printf("Usage: %s <-le|-be>\n", argv[0]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
for (image = (struct dl_image *)arrayptr, cnt=0;
|
||||
(image->id != 0xfeedf00d) && (image->magic == 0xfeedf00d);
|
||||
image = (struct dl_image *)(arrayptr), cnt++)
|
||||
{
|
||||
unsigned char field[4];
|
||||
imgsiz = image->size + 3;
|
||||
*(unsigned*)field = to_be32(image->id);
|
||||
char filename[40], slnk[10];
|
||||
|
||||
sprintf(filename, "NPE-%c.%08x", (field[0] & 0xf) + 'A',
|
||||
image->id);
|
||||
if (image->id == 0x00090000)
|
||||
sprintf(slnk, "NPE-%c-HSS", (field[0] & 0xf) + 'A');
|
||||
else
|
||||
sprintf(slnk, "NPE-%c", (field[0] & 0xf) + 'A');
|
||||
|
||||
printf("Writing image: %s.NPE_%c Func: %2x Rev: %02x.%02x "
|
||||
"Size: %5d to: '%s'\n",
|
||||
names[field[0] >> 4], (field[0] & 0xf) + 'A',
|
||||
field[1], field[2], field[3], imgsiz*4, filename);
|
||||
fd = open(filename, O_CREAT | O_RDWR | O_TRUNC, 0644);
|
||||
if (fd >= 0) {
|
||||
for (i=0; i<imgsiz; i++) {
|
||||
*(unsigned*)field = bigendian ?
|
||||
to_be32(arrayptr[i]) :
|
||||
to_le32(arrayptr[i]);
|
||||
write(fd, field, sizeof(field));
|
||||
}
|
||||
close(fd);
|
||||
unlink(slnk);
|
||||
symlink(filename, slnk);
|
||||
} else {
|
||||
perror(filename);
|
||||
}
|
||||
arrayptr += imgsiz;
|
||||
}
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
27
package/system/ixp4xx-microcode/src/LICENSE.IPL
Normal file
27
package/system/ixp4xx-microcode/src/LICENSE.IPL
Normal file
@@ -0,0 +1,27 @@
|
||||
INTEL(R) SOFTWARE LICENSE AGREEMENT
|
||||
|
||||
Copyright (c) 2007, Intel Corporation.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution. Redistribution and use in binary form, without modification, are permitted
|
||||
provided that the following conditions are met:
|
||||
o Redistributions must reproduce the above copyright notice and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
o Neither the name of Intel Corporation nor the names of its suppliers may be used to endorse
|
||||
or promote products derived from this software without specific prior written permission.
|
||||
o No reverse engineering, decompilation, or disassembly of this software is permitted.
|
||||
|
||||
Limited patent license. Intel Corporation grants a world-wide, royalty-free, non-exclusive
|
||||
license under patents it now or hereafter owns or controls to make, have made, use, import,
|
||||
offer to sell and sell (.Utilize.) this software, but solely to the extent that any such patent is
|
||||
necessary to Utilize the software alone. The patent license shall not apply to any combinations
|
||||
which include this software. No hardware per se is licensed hereunder.
|
||||
DISCLAIMER. 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.
|
||||
5
package/system/ltq-dsl/Config.in
Normal file
5
package/system/ltq-dsl/Config.in
Normal file
@@ -0,0 +1,5 @@
|
||||
config LANTIQ_DSL_DEBUG
|
||||
bool "verbose debugging"
|
||||
depends on PACKAGE_kmod-ltq-dsl
|
||||
help
|
||||
Say Y, if you need ltq-dsl to display debug messages.
|
||||
177
package/system/ltq-dsl/Makefile
Normal file
177
package/system/ltq-dsl/Makefile
Normal file
@@ -0,0 +1,177 @@
|
||||
#
|
||||
# Copyright (C) 2011 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ltq-dsl
|
||||
PKG_BASE_NAME:=drv_dsl_cpe_api_danube
|
||||
PKG_VERSION:=3.24.4.4
|
||||
PKG_RELEASE:=3
|
||||
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/drv_dsl_cpe_api-$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
|
||||
PKG_MD5SUM:=c45bc531c1ed2ac80f68fb986b63bb87
|
||||
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
|
||||
|
||||
FW_NAME:=ltq-dsl-fw-0.1
|
||||
FW_MD5:=4700a36b66b955b4c5544227267356f4
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Download/ltq-dsl-fw
|
||||
FILE:=$(FW_NAME).tar.bz2
|
||||
MD5SUM:=$(FW_MD5)
|
||||
URL:=http://mirror2.openwrt.org/sources/
|
||||
endef
|
||||
$(eval $(call Download,ltq-dsl-fw))
|
||||
|
||||
define KernelPackage/ltq-dsl-template
|
||||
SECTION:=sys
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Lantiq dsl driver for $(1)
|
||||
URL:=http://www.lantiq.com/
|
||||
VARIANT:=$(1)
|
||||
DEPENDS:=@TARGET_lantiq_$(1) +kmod-atm
|
||||
FILES:=$(PKG_BUILD_DIR)/src/mei/lantiq_mei.ko \
|
||||
$(PKG_BUILD_DIR)/src/drv_dsl_cpe_api.ko \
|
||||
$(PKG_BUILD_DIR)/src/mei/lantiq_atm.ko
|
||||
AUTOLOAD:=$(call AutoLoad,50,lantiq_mei drv_dsl_cpe_api lantiq_atm)
|
||||
endef
|
||||
|
||||
KernelPackage/ltq-dsl-danube=$(call KernelPackage/ltq-dsl-template,danube)
|
||||
KernelPackage/ltq-dsl-ase=$(call KernelPackage/ltq-dsl-template,ase)
|
||||
KernelPackage/ltq-dsl-ar9=$(call KernelPackage/ltq-dsl-template,ar9)
|
||||
KernelPackage/ltq-dsl-vr9=$(call KernelPackage/ltq-dsl-template,vr9)
|
||||
|
||||
define Package/kmod-ltq-dsl-firmware-template
|
||||
TITLE+=Firmware Annex-$(1) $(2)
|
||||
SECTION:=sys
|
||||
CATEGORY:=Kernel modules
|
||||
SUBMENU:=Network Devices
|
||||
VARIANT:= $(1)-$(2)
|
||||
URL:=http://www.lantiq.com/
|
||||
DEPENDS:=@TARGET_lantiq_$(2) kmod-ltq-dsl-$(2)
|
||||
endef
|
||||
|
||||
Package/kmod-ltq-dsl-firmware-a-danube=$(call Package/kmod-ltq-dsl-firmware-template,a,danube)
|
||||
Package/kmod-ltq-dsl-firmware-b-danube=$(call Package/kmod-ltq-dsl-firmware-template,b,danube)
|
||||
Package/kmod-ltq-dsl-firmware-a-ase=$(call Package/kmod-ltq-dsl-firmware-template,a,ase)
|
||||
Package/kmod-ltq-dsl-firmware-b-ase=$(call Package/kmod-ltq-dsl-firmware-template,b,ase)
|
||||
Package/kmod-ltq-dsl-firmware-a-ar9=$(call Package/kmod-ltq-dsl-firmware-template,a,ar9)
|
||||
Package/kmod-ltq-dsl-firmware-b-ar9=$(call Package/kmod-ltq-dsl-firmware-template,b,ar9)
|
||||
Package/kmod-ltq-dsl-firmware-a-vr9=$(call Package/kmod-ltq-dsl-firmware-template,a,vr9)
|
||||
Package/kmod-ltq-dsl-firmware-b-vr9=$(call Package/kmod-ltq-dsl-firmware-template,b,vr9)
|
||||
|
||||
define KernelPackage/ltq-dsl/description
|
||||
Lantiq DSL driver for AR9, Amazon SE, Danube and VR9
|
||||
endef
|
||||
|
||||
define KernelPackage/ltq-dsl/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
endef
|
||||
|
||||
IFX_DSL_MAX_DEVICE=1
|
||||
IFX_DSL_LINES_PER_DEVICE=1
|
||||
IFX_DSL_CHANNELS_PER_LINE=1
|
||||
|
||||
CONFIGURE_ARGS += --enable-kernel-include="$(LINUX_DIR)/include" \
|
||||
--with-max-device="$(IFX_DSL_MAX_DEVICE)" \
|
||||
--with-lines-per-device="$(IFX_DSL_LINES_PER_DEVICE)" \
|
||||
--with-channels-per-line="$(IFX_DSL_CHANNELS_PER_LINE)" \
|
||||
--disable-dsl-delt-static \
|
||||
--disable-adsl-led \
|
||||
--enable-dsl-ceoc \
|
||||
--enable-dsl-pm \
|
||||
--enable-dsl-pm-total \
|
||||
--enable-dsl-pm-history \
|
||||
--enable-dsl-pm-showtime \
|
||||
--enable-dsl-pm-channel-counters \
|
||||
--enable-dsl-pm-datapath-counters \
|
||||
--enable-dsl-pm-line-counters \
|
||||
--enable-dsl-pm-channel-thresholds \
|
||||
--enable-dsl-pm-datapath-thresholds \
|
||||
--enable-dsl-pm-line-thresholds \
|
||||
--enable-dsl-pm-optional-parameters \
|
||||
--enable-linux-26 \
|
||||
--enable-kernelbuild="$(LINUX_DIR)" \
|
||||
ARCH=$(LINUX_KARCH)
|
||||
|
||||
CONFIG_TAG_danube:=DANUBE
|
||||
CONFIG_TAG_ase:=AMAZON_SE
|
||||
CONFIG_TAG_ar9:=AR9
|
||||
CONFIG_TAG_vr9:=VR9
|
||||
CONFIGURE_ARGS += --enable-add-drv-cflags="-DMODULE -DCONFIG_$(CONFIG_TAG_$(BUILD_VARIANT))"
|
||||
|
||||
ifeq ($(BUILD_VARIANT),vr9)
|
||||
CONFIGURE_ARGS += --enable-vinax
|
||||
else
|
||||
CONFIGURE_ARGS += --enable-danube
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_LANTIQ_DSL_DEBUG),y)
|
||||
CONFIGURE_ARGS += \
|
||||
--enable-debug=yes \
|
||||
--enable-debug-prints=yes
|
||||
EXTRA_CFLAGS += -DDEBUG
|
||||
endif
|
||||
|
||||
EXTRA_CFLAGS = -fno-pic -mno-abicalls -mlong-calls -G 0
|
||||
|
||||
define Build/Prepare
|
||||
$(PKG_UNPACK)
|
||||
$(INSTALL_DIR) $(PKG_BUILD_DIR)/src/mei/
|
||||
$(CP) ./src/* $(PKG_BUILD_DIR)/src/mei/
|
||||
$(Build/Patch)
|
||||
$(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(FW_NAME).tar.bz2
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
(cd $(PKG_BUILD_DIR); aclocal && autoconf && automake)
|
||||
$(call Build/Configure/Default)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
cd $(LINUX_DIR); \
|
||||
ARCH=mips CROSS_COMPILE="$(KERNEL_CROSS)" \
|
||||
$(MAKE) BUILD_VARIANT=$(BUILD_VARIANT) M=$(PKG_BUILD_DIR)/src/mei/ V=1 modules
|
||||
$(call Build/Compile/Default)
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_ioctl.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_adslmib.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_adslmib_ioctl.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_g997.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_types.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_pm.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_api_error.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_danube_ctx.h $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe_cmv_danube.h $(1)/usr/include
|
||||
endef
|
||||
|
||||
define Package/kmod-ltq-dsl-firmware-$(BUILD_VARIANT)/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/
|
||||
$(CP) $(PKG_BUILD_DIR)/$(FW_NAME)/ltq-dsl-fw-$(BUILD_VARIANT).bin $(1)/lib/firmware/dsl-fw-$(word 1, $(subst -, ,$(BUILD_VARIANT))).bin
|
||||
ln -s /lib/firmware/dsl-fw-$(word 1, $(subst -, ,$(BUILD_VARIANT))).bin $(1)/lib/firmware/ModemHWE.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-a-danube))
|
||||
$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-b-danube))
|
||||
$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-a-ase))
|
||||
$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-b-ase))
|
||||
$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-a-ar9))
|
||||
$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-b-ar9))
|
||||
#$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-a-vr9))
|
||||
#$(eval $(call BuildPackage,kmod-ltq-dsl-firmware-b-vr9))
|
||||
$(eval $(call KernelPackage,ltq-dsl-danube))
|
||||
$(eval $(call KernelPackage,ltq-dsl-ase))
|
||||
$(eval $(call KernelPackage,ltq-dsl-ar9))
|
||||
#$(eval $(call KernelPackage,ltq-dsl-vr9))
|
||||
125
package/system/ltq-dsl/patches/100-dsl_compat.patch
Normal file
125
package/system/ltq-dsl/patches/100-dsl_compat.patch
Normal file
@@ -0,0 +1,125 @@
|
||||
--- a/src/include/drv_dsl_cpe_device_danube.h
|
||||
+++ b/src/include/drv_dsl_cpe_device_danube.h
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "drv_dsl_cpe_simulator_danube.h"
|
||||
#else
|
||||
/* Include for the low level driver interface header file */
|
||||
-#include "asm/ifx/ifx_mei_bsp.h"
|
||||
+#include "mei/ifxmips_mei_interface.h"
|
||||
#endif /* defined(DSL_CPE_SIMULATOR_DRIVER) && defined(WIN32)*/
|
||||
|
||||
#define DSL_MAX_LINE_NUMBER 1
|
||||
--- a/src/common/drv_dsl_cpe_os_linux.c
|
||||
+++ b/src/common/drv_dsl_cpe_os_linux.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#ifdef __LINUX__
|
||||
|
||||
#define DSL_INTERN
|
||||
+#include <linux/device.h>
|
||||
|
||||
#include "drv_dsl_cpe_api.h"
|
||||
#include "drv_dsl_cpe_api_ioctl.h"
|
||||
@@ -34,9 +35,13 @@
|
||||
static DSL_ssize_t DSL_DRV_Write(DSL_DRV_file_t *pFile, const DSL_char_t * pBuf,
|
||||
DSL_DRV_size_t nSize, DSL_DRV_offset_t * pLoff);
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36))
|
||||
static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_inode_t * pINode, DSL_DRV_file_t * pFile,
|
||||
DSL_uint_t nCommand, unsigned long nArg);
|
||||
-
|
||||
+#else
|
||||
+static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_file_t * pFile,
|
||||
+ DSL_uint_t nCommand, unsigned long nArg);
|
||||
+#endif
|
||||
static int DSL_DRV_Open(DSL_DRV_inode_t * ino, DSL_DRV_file_t * fil);
|
||||
|
||||
static int DSL_DRV_Release(DSL_DRV_inode_t * ino, DSL_DRV_file_t * fil);
|
||||
@@ -72,7 +77,11 @@
|
||||
open: DSL_DRV_Open,
|
||||
release: DSL_DRV_Release,
|
||||
write: DSL_DRV_Write,
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36))
|
||||
ioctl: DSL_DRV_Ioctls,
|
||||
+#else
|
||||
+ unlocked_ioctl: DSL_DRV_Ioctls,
|
||||
+#endif
|
||||
poll: DSL_DRV_Poll
|
||||
};
|
||||
#else
|
||||
@@ -168,10 +177,17 @@
|
||||
\return Success or failure.
|
||||
\ingroup Internal
|
||||
*/
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36))
|
||||
static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_inode_t * pINode,
|
||||
DSL_DRV_file_t * pFile,
|
||||
DSL_uint_t nCommand,
|
||||
unsigned long nArg)
|
||||
+#else
|
||||
+static DSL_int_t DSL_DRV_Ioctls(
|
||||
+ DSL_DRV_file_t * pFile,
|
||||
+ DSL_uint_t nCommand,
|
||||
+ unsigned long nArg)
|
||||
+#endif
|
||||
{
|
||||
DSL_int_t nErr=0;
|
||||
DSL_boolean_t bIsInKernel;
|
||||
@@ -216,16 +232,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
- if (pINode == DSL_NULL)
|
||||
- {
|
||||
- bIsInKernel = DSL_TRUE;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- bIsInKernel = DSL_FALSE;
|
||||
- }
|
||||
-
|
||||
+ bIsInKernel = DSL_FALSE;
|
||||
if ( (_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API) ||
|
||||
(_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API_G997) ||
|
||||
(_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API_PM) ||
|
||||
@@ -1058,6 +1065,7 @@
|
||||
/* Entry point of driver */
|
||||
int __init DSL_ModuleInit(void)
|
||||
{
|
||||
+ struct class *dsl_class;
|
||||
DSL_int_t i;
|
||||
|
||||
printk(DSL_DRV_CRLF DSL_DRV_CRLF "Infineon CPE API Driver version: %s" DSL_DRV_CRLF,
|
||||
@@ -1104,7 +1112,8 @@
|
||||
}
|
||||
|
||||
DSL_DRV_DevNodeInit();
|
||||
-
|
||||
+ dsl_class = class_create(THIS_MODULE, "dsl_cpe_api");
|
||||
+ device_create(dsl_class, NULL, MKDEV(DRV_DSL_CPE_API_DEV_MAJOR, 0), NULL, "dsl_cpe_api");
|
||||
return 0;
|
||||
}
|
||||
|
||||
--- a/src/include/drv_dsl_cpe_os_linux.h
|
||||
+++ b/src/include/drv_dsl_cpe_os_linux.h
|
||||
@@ -17,17 +17,17 @@
|
||||
#endif
|
||||
|
||||
#include <asm/ioctl.h>
|
||||
-#include <linux/autoconf.h>
|
||||
+#include <generated/autoconf.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/spinlock.h>
|
||||
-
|
||||
+#include <linux/sched.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
|
||||
- #include <linux/utsrelease.h>
|
||||
+ #include <generated/utsrelease.h>
|
||||
#endif
|
||||
|
||||
#include <linux/types.h>
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/src/device/drv_dsl_cpe_device_danube.c
|
||||
+++ b/src/device/drv_dsl_cpe_device_danube.c
|
||||
@@ -4069,7 +4069,7 @@ static DSL_Error_t DSL_DRV_DANUBE_XTUSys
|
||||
|
||||
DSL_CTX_WRITE(pContext, nErrCode, xtseCurr, xtseCurr);
|
||||
|
||||
- for (nRetry = 0; nRetry < 20; nRetry++)
|
||||
+ for (nRetry = 0; nRetry < 20 && bStatusUpdated == DSL_FALSE; nRetry++)
|
||||
{
|
||||
/* Get STAT1 info*/
|
||||
nErrCode = DSL_DRV_DANUBE_CmvRead(pContext, DSL_CMV_GROUP_STAT,
|
||||
227
package/system/ltq-dsl/patches/500-portability.patch
Normal file
227
package/system/ltq-dsl/patches/500-portability.patch
Normal file
@@ -0,0 +1,227 @@
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -310,7 +310,7 @@
|
||||
AC_ARG_ENABLE(kernelbuild,
|
||||
AC_HELP_STRING(--enable-kernel-build=x,Set the target kernel build path),
|
||||
[
|
||||
- if test -e $enableval/include/linux/autoconf.h; then
|
||||
+ if test -e $enableval/include/linux/autoconf.h -o -e $enableval/include/generated/autoconf.h; then
|
||||
AC_SUBST([KERNEL_BUILD_PATH],[$enableval])
|
||||
else
|
||||
AC_MSG_ERROR([The kernel build directory is not valid or not configured!])
|
||||
@@ -333,12 +333,12 @@
|
||||
echo Set the lib_ifxos include path $enableval
|
||||
AC_SUBST([IFXOS_INCLUDE_PATH],[$enableval])
|
||||
else
|
||||
- echo -e Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
|
||||
+ echo Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
|
||||
AC_SUBST([IFXOS_INCLUDE_PATH],[$DEFAULT_IFXOS_INCLUDE_PATH])
|
||||
fi
|
||||
],
|
||||
[
|
||||
- echo -e Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
|
||||
+ echo Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
|
||||
AC_SUBST([IFXOS_INCLUDE_PATH],[$DEFAULT_IFXOS_INCLUDE_PATH])
|
||||
]
|
||||
)
|
||||
@@ -1702,73 +1702,73 @@
|
||||
AC_SUBST([DISTCHECK_CONFIGURE_PARAMS],[$CONFIGURE_OPTIONS])
|
||||
|
||||
AC_CONFIG_COMMANDS_PRE([
|
||||
-echo -e "------------------------------------------------------------------------"
|
||||
-echo -e " Configuration for drv_dsl_cpe_api:"
|
||||
-echo -e " Configure model type: $DSL_CONFIG_MODEL_TYPE"
|
||||
-echo -e " Source code location: $srcdir"
|
||||
-echo -e " Compiler: $CC"
|
||||
-echo -e " Compiler c-flags: $CFLAGS"
|
||||
-echo -e " Extra compiler c-flags: $EXTRA_DRV_CFLAGS"
|
||||
-echo -e " Host System Type: $host"
|
||||
-echo -e " Install path: $prefix"
|
||||
-echo -e " Linux kernel include path: $KERNEL_INCL_PATH"
|
||||
-echo -e " Linux kernel build path: $KERNEL_BUILD_PATH"
|
||||
-echo -e " Linux kernel architecture: $KERNEL_ARCH"
|
||||
-echo -e " Include IFXOS: $INCLUDE_DSL_CPE_API_IFXOS_SUPPORT"
|
||||
-echo -e " IFXOS include path: $IFXOS_INCLUDE_PATH"
|
||||
-echo -e " Driver Include Path $DSL_DRIVER_INCL_PATH"
|
||||
-echo -e " DSL device: $DSL_DEVICE_NAME"
|
||||
-echo -e " Max device number: $DSL_DRV_MAX_DEVICE_NUMBER"
|
||||
-echo -e " Channels per line: $DSL_CHANNELS_PER_LINE"
|
||||
-echo -e " Build lib (only for kernel 2.6) $DSL_CPE_API_LIBRARY_BUILD_2_6"
|
||||
-echo -e " DSL data led flash frequency: $DSL_DATA_LED_FLASH_FREQUENCY Hz"
|
||||
-echo -e " Disable debug prints: $DSL_DEBUG_DISABLE"
|
||||
-echo -e " Preselection of max. debug level: $DSL_DBG_MAX_LEVEL_SET"
|
||||
-echo -e " Preselected max. debug level: $DSL_DBG_MAX_LEVEL_PRE"
|
||||
-echo -e " Include deprecated functions: $INCLUDE_DEPRECATED"
|
||||
-echo -e " Include Device Exception Codes: $INCLUDE_DEVICE_EXCEPTION_CODES"
|
||||
-echo -e " Include FW request support: $INCLUDE_FW_REQUEST_SUPPORT"
|
||||
-echo -e " Include ADSL trace buffer: $INCLUDE_DSL_CPE_TRACE_BUFFER"
|
||||
-echo -e " Include ADSL MIB: $INCLUDE_DSL_ADSL_MIB"
|
||||
-echo -e " Include ADSL LED: $INCLUDE_ADSL_LED"
|
||||
-echo -e " Include CEOC: $INCLUDE_DSL_CEOC"
|
||||
-echo -e " Include config get support: $INCLUDE_DSL_CONFIG_GET"
|
||||
-echo -e " Include System i/f configuration: $INCLUDE_DSL_SYSTEM_INTERFACE"
|
||||
-echo -e " Include Resource Statistics: $INCLUDE_DSL_RESOURCE_STATISTICS"
|
||||
-echo -e " Include Framing Parameters: $INCLUDE_DSL_FRAMING_PARAMETERS"
|
||||
-echo -e " Include G997 Line Inventory: $INCLUDE_DSL_G997_LINE_INVENTORY"
|
||||
-echo -e " Include G997 Framing Parameters: $INCLUDE_DSL_G997_FRAMING_PARAMETERS"
|
||||
-echo -e " Include G997 per tone data: $INCLUDE_DSL_G997_PER_TONE"
|
||||
-echo -e " Include G997 status: $INCLUDE_DSL_G997_STATUS"
|
||||
-echo -e " Include G997 alarm: $INCLUDE_DSL_G997_ALARM"
|
||||
-echo -e " Include DSL Bonding: $INCLUDE_DSL_BONDING"
|
||||
-echo -e " Include Misc Line Status $INCLUDE_DSL_CPE_MISC_LINE_STATUS"
|
||||
-echo -e " Include DELT: $INCLUDE_DSL_DELT"
|
||||
-echo -e " Include DELT data static storage: $DSL_CPE_STATIC_DELT_DATA"
|
||||
-echo -e " Include PM: $INCLUDE_DSL_PM"
|
||||
-echo -e " Include PM config: $INCLUDE_DSL_CPE_PM_CONFIG"
|
||||
-echo -e " Include PM total: $INCLUDE_DSL_CPE_PM_TOTAL_COUNTERS"
|
||||
-echo -e " Include PM history: $INCLUDE_DSL_CPE_PM_HISTORY"
|
||||
-echo -e " Include PM showtime: $INCLUDE_DSL_CPE_PM_SHOWTIME_COUNTERS"
|
||||
-echo -e " Include PM optional: $INCLUDE_DSL_CPE_PM_OPTIONAL_PARAMETERS"
|
||||
-echo -e " Include PM line: $INCLUDE_DSL_CPE_PM_LINE_COUNTERS"
|
||||
-echo -e " Include PM line event showtime: $INCLUDE_DSL_CPE_PM_LINE_EVENT_SHOWTIME_COUNTERS"
|
||||
-echo -e " Include PM channel: $INCLUDE_DSL_CPE_PM_CHANNEL_COUNTERS"
|
||||
-echo -e " Include PM channel extended: $INCLUDE_DSL_CPE_PM_CHANNEL_EXT_COUNTERS"
|
||||
-echo -e " Include PM data path: $INCLUDE_DSL_CPE_PM_DATA_PATH_COUNTERS"
|
||||
-echo -e " Include PM data path failure: $INCLUDE_DSL_CPE_PM_DATA_PATH_FAILURE_COUNTERS"
|
||||
-echo -e " Include PM ReTx: $INCLUDE_DSL_CPE_PM_RETX_COUNTERS"
|
||||
-echo -e " Include PM line threshold: $INCLUDE_DSL_CPE_PM_LINE_THRESHOLDS"
|
||||
-echo -e " Include PM channel threshold: $INCLUDE_DSL_CPE_PM_CHANNEL_THRESHOLDS"
|
||||
-echo -e " Include PM data path threshold: $INCLUDE_DSL_CPE_PM_DATA_PATH_THRESHOLDS"
|
||||
-echo -e " Include PM ReTx threshold: $INCLUDE_DSL_CPE_PM_RETX_THRESHOLDS"
|
||||
-echo -e " Include FW memory free support: $INCLUDE_DSL_FIRMWARE_MEMORY_FREE"
|
||||
-echo -e "----------------------- deprectated ! ----------------------------------"
|
||||
-echo -e " Include PM line failure: $INCLUDE_DSL_CPE_PM_LINE_FAILURE_COUNTERS"
|
||||
-echo -e ""
|
||||
-echo -e " Settings:"
|
||||
-echo -e " Configure options: $CONFIGURE_OPTIONS"
|
||||
-echo -e "------------------------------------------------------------------------"
|
||||
+echo "------------------------------------------------------------------------"
|
||||
+echo " Configuration for drv_dsl_cpe_api:"
|
||||
+echo " Configure model type: $DSL_CONFIG_MODEL_TYPE"
|
||||
+echo " Source code location: $srcdir"
|
||||
+echo " Compiler: $CC"
|
||||
+echo " Compiler c-flags: $CFLAGS"
|
||||
+echo " Extra compiler c-flags: $EXTRA_DRV_CFLAGS"
|
||||
+echo " Host System Type: $host"
|
||||
+echo " Install path: $prefix"
|
||||
+echo " Linux kernel include path: $KERNEL_INCL_PATH"
|
||||
+echo " Linux kernel build path: $KERNEL_BUILD_PATH"
|
||||
+echo " Linux kernel architecture: $KERNEL_ARCH"
|
||||
+echo " Include IFXOS: $INCLUDE_DSL_CPE_API_IFXOS_SUPPORT"
|
||||
+echo " IFXOS include path: $IFXOS_INCLUDE_PATH"
|
||||
+echo " Driver Include Path $DSL_DRIVER_INCL_PATH"
|
||||
+echo " DSL device: $DSL_DEVICE_NAME"
|
||||
+echo " Max device number: $DSL_DRV_MAX_DEVICE_NUMBER"
|
||||
+echo " Channels per line: $DSL_CHANNELS_PER_LINE"
|
||||
+echo " Build lib (only for kernel 2.6) $DSL_CPE_API_LIBRARY_BUILD_2_6"
|
||||
+echo " DSL data led flash frequency: $DSL_DATA_LED_FLASH_FREQUENCY Hz"
|
||||
+echo " Disable debug prints: $DSL_DEBUG_DISABLE"
|
||||
+echo " Preselection of max. debug level: $DSL_DBG_MAX_LEVEL_SET"
|
||||
+echo " Preselected max. debug level: $DSL_DBG_MAX_LEVEL_PRE"
|
||||
+echo " Include deprecated functions: $INCLUDE_DEPRECATED"
|
||||
+echo " Include Device Exception Codes: $INCLUDE_DEVICE_EXCEPTION_CODES"
|
||||
+echo " Include FW request support: $INCLUDE_FW_REQUEST_SUPPORT"
|
||||
+echo " Include ADSL trace buffer: $INCLUDE_DSL_CPE_TRACE_BUFFER"
|
||||
+echo " Include ADSL MIB: $INCLUDE_DSL_ADSL_MIB"
|
||||
+echo " Include ADSL LED: $INCLUDE_ADSL_LED"
|
||||
+echo " Include CEOC: $INCLUDE_DSL_CEOC"
|
||||
+echo " Include config get support: $INCLUDE_DSL_CONFIG_GET"
|
||||
+echo " Include System i/f configuration: $INCLUDE_DSL_SYSTEM_INTERFACE"
|
||||
+echo " Include Resource Statistics: $INCLUDE_DSL_RESOURCE_STATISTICS"
|
||||
+echo " Include Framing Parameters: $INCLUDE_DSL_FRAMING_PARAMETERS"
|
||||
+echo " Include G997 Line Inventory: $INCLUDE_DSL_G997_LINE_INVENTORY"
|
||||
+echo " Include G997 Framing Parameters: $INCLUDE_DSL_G997_FRAMING_PARAMETERS"
|
||||
+echo " Include G997 per tone data: $INCLUDE_DSL_G997_PER_TONE"
|
||||
+echo " Include G997 status: $INCLUDE_DSL_G997_STATUS"
|
||||
+echo " Include G997 alarm: $INCLUDE_DSL_G997_ALARM"
|
||||
+echo " Include DSL Bonding: $INCLUDE_DSL_BONDING"
|
||||
+echo " Include Misc Line Status $INCLUDE_DSL_CPE_MISC_LINE_STATUS"
|
||||
+echo " Include DELT: $INCLUDE_DSL_DELT"
|
||||
+echo " Include DELT data static storage: $DSL_CPE_STATIC_DELT_DATA"
|
||||
+echo " Include PM: $INCLUDE_DSL_PM"
|
||||
+echo " Include PM config: $INCLUDE_DSL_CPE_PM_CONFIG"
|
||||
+echo " Include PM total: $INCLUDE_DSL_CPE_PM_TOTAL_COUNTERS"
|
||||
+echo " Include PM history: $INCLUDE_DSL_CPE_PM_HISTORY"
|
||||
+echo " Include PM showtime: $INCLUDE_DSL_CPE_PM_SHOWTIME_COUNTERS"
|
||||
+echo " Include PM optional: $INCLUDE_DSL_CPE_PM_OPTIONAL_PARAMETERS"
|
||||
+echo " Include PM line: $INCLUDE_DSL_CPE_PM_LINE_COUNTERS"
|
||||
+echo " Include PM line event showtime: $INCLUDE_DSL_CPE_PM_LINE_EVENT_SHOWTIME_COUNTERS"
|
||||
+echo " Include PM channel: $INCLUDE_DSL_CPE_PM_CHANNEL_COUNTERS"
|
||||
+echo " Include PM channel extended: $INCLUDE_DSL_CPE_PM_CHANNEL_EXT_COUNTERS"
|
||||
+echo " Include PM data path: $INCLUDE_DSL_CPE_PM_DATA_PATH_COUNTERS"
|
||||
+echo " Include PM data path failure: $INCLUDE_DSL_CPE_PM_DATA_PATH_FAILURE_COUNTERS"
|
||||
+echo " Include PM ReTx: $INCLUDE_DSL_CPE_PM_RETX_COUNTERS"
|
||||
+echo " Include PM line threshold: $INCLUDE_DSL_CPE_PM_LINE_THRESHOLDS"
|
||||
+echo " Include PM channel threshold: $INCLUDE_DSL_CPE_PM_CHANNEL_THRESHOLDS"
|
||||
+echo " Include PM data path threshold: $INCLUDE_DSL_CPE_PM_DATA_PATH_THRESHOLDS"
|
||||
+echo " Include PM ReTx threshold: $INCLUDE_DSL_CPE_PM_RETX_THRESHOLDS"
|
||||
+echo " Include FW memory free support: $INCLUDE_DSL_FIRMWARE_MEMORY_FREE"
|
||||
+echo "----------------------- deprectated ! ----------------------------------"
|
||||
+echo " Include PM line failure: $INCLUDE_DSL_CPE_PM_LINE_FAILURE_COUNTERS"
|
||||
+echo ""
|
||||
+echo " Settings:"
|
||||
+echo " Configure options: $CONFIGURE_OPTIONS"
|
||||
+echo "------------------------------------------------------------------------"
|
||||
])
|
||||
|
||||
AC_CONFIG_FILES([Makefile src/Makefile])
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -303,7 +303,7 @@
|
||||
drv_dsl_cpe_api_OBJS = "$(subst .c,.o,$(filter %.c,$(drv_dsl_cpe_api_SOURCES)))"
|
||||
|
||||
drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SOURCES)
|
||||
- @echo -e "drv_dsl_cpe_api: Making Linux 2.6.x kernel object"
|
||||
+ @echo "drv_dsl_cpe_api: Making Linux 2.6.x kernel object"
|
||||
if test ! -e common/drv_dsl_cpe_api.c ; then \
|
||||
echo "copy source files (as links only!)"; \
|
||||
for f in $(filter %.c,$(drv_dsl_cpe_api_SOURCES)); do \
|
||||
@@ -311,10 +311,10 @@
|
||||
cp -s $(addprefix @abs_srcdir@/,$$f) $(PWD)/`dirname $$f`/ ; \
|
||||
done \
|
||||
fi
|
||||
- @echo -e "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
|
||||
- @echo -e "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
|
||||
- @echo -e "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)" >> $(PWD)/Kbuild
|
||||
- @echo -e "EXTRA_CFLAGS := $(CFLAGS) -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include" >> $(PWD)/Kbuild
|
||||
+ @echo "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
|
||||
+ @echo "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
|
||||
+ @echo "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)" >> $(PWD)/Kbuild
|
||||
+ @echo "EXTRA_CFLAGS := $(CFLAGS) -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include" >> $(PWD)/Kbuild
|
||||
$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
|
||||
|
||||
clean-generic:
|
||||
--- a/src/include/drv_dsl_cpe_os_linux.h
|
||||
+++ b/src/include/drv_dsl_cpe_os_linux.h
|
||||
@@ -16,8 +16,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
-#include <asm/ioctl.h>
|
||||
-#include <generated/autoconf.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
@@ -26,8 +24,10 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/sched.h>
|
||||
|
||||
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
|
||||
- #include <generated/utsrelease.h>
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
|
||||
+#include <linux/utsrelease.h>
|
||||
+#else
|
||||
+#include <generated/utsrelease.h>
|
||||
#endif
|
||||
|
||||
#include <linux/types.h>
|
||||
@@ -39,7 +39,8 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/poll.h>
|
||||
#include <asm/uaccess.h>
|
||||
-#include <linux/smp_lock.h>
|
||||
+//#include <linux/smp_lock.h>
|
||||
+#include <asm/ioctl.h>
|
||||
|
||||
#ifdef INCLUDE_DSL_CPE_API_IFXOS_SUPPORT
|
||||
/** IFXOS includes*/
|
||||
23
package/system/ltq-dsl/src/Makefile
Normal file
23
package/system/ltq-dsl/src/Makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
obj-m = lantiq_mei.o lantiq_atm.o
|
||||
lantiq_atm-objs := ifxmips_atm_core.o
|
||||
|
||||
ifeq ($(BUILD_VARIANT),danube)
|
||||
CFLAGS_MODULE+=-DCONFIG_DANUBE
|
||||
EXTRA_CFLAGS+=-DCONFIG_DANUBE
|
||||
lantiq_atm-objs += ifxmips_atm_danube.o
|
||||
endif
|
||||
ifeq ($(BUILD_VARIANT),ase)
|
||||
CFLAGS_MODULE+=-DCONFIG_AMAZON_SE
|
||||
EXTRA_CFLAGS+=-DCONFIG_AMAZON_SE
|
||||
lantiq_atm-objs += ifxmips_atm_amazon_se.o
|
||||
endif
|
||||
ifeq ($(BUILD_VARIANT),ar9)
|
||||
CFLAGS_MODULE+=-DCONFIG_AR9
|
||||
EXTRA_CFLAGS+=-DCONFIG_AR9
|
||||
lantiq_atm-objs += ifxmips_atm_ar9.o
|
||||
endif
|
||||
ifeq ($(BUILD_VARIANT),vr9)
|
||||
CFLAGS_MODULE+=-DCONFIG_VR9
|
||||
EXTRA_CFLAGS+=-DCONFIG_VR9
|
||||
lantiq_atm-objs += ifxmips_atm_vr9.o
|
||||
endif
|
||||
196
package/system/ltq-dsl/src/ifx_atm.h
Normal file
196
package/system/ltq-dsl/src/ifx_atm.h
Normal file
@@ -0,0 +1,196 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifx_atm.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM
|
||||
**
|
||||
** DATE : 17 Jun 2009
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : Global ATM driver header file
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 07 JUL 2009 Xu Liang Init Version
|
||||
*******************************************************************************/
|
||||
|
||||
#ifndef IFX_ATM_H
|
||||
#define IFX_ATM_H
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\defgroup IFX_ATM UEIP Project - ATM driver module
|
||||
\brief UEIP Project - ATM driver module, support Danube, Amazon-SE, AR9, VR9.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\defgroup IFX_ATM_IOCTL IOCTL Commands
|
||||
\ingroup IFX_ATM
|
||||
\brief IOCTL Commands used by user application.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\defgroup IFX_ATM_STRUCT Structures
|
||||
\ingroup IFX_ATM
|
||||
\brief Structures used by user application.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file ifx_atm.h
|
||||
\ingroup IFX_ATM
|
||||
\brief ATM driver header file
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Definition
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*!
|
||||
\addtogroup IFX_ATM_STRUCT
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/*
|
||||
* ATM MIB
|
||||
*/
|
||||
|
||||
/*!
|
||||
\struct atm_cell_ifEntry_t
|
||||
\brief Structure used for Cell Level MIB Counters.
|
||||
|
||||
User application use this structure to call IOCTL command "PPE_ATM_MIB_CELL".
|
||||
*/
|
||||
typedef struct {
|
||||
__u32 ifHCInOctets_h; /*!< byte counter of ingress cells (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCInOctets_l; /*!< byte counter of ingress cells (lower 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_h; /*!< byte counter of egress cells (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_l; /*!< byte counter of egress cells (lower 32 bits, total 64 bits) */
|
||||
__u32 ifInErrors; /*!< counter of error ingress cells */
|
||||
__u32 ifInUnknownProtos; /*!< counter of unknown ingress cells */
|
||||
__u32 ifOutErrors; /*!< counter of error egress cells */
|
||||
} atm_cell_ifEntry_t;
|
||||
|
||||
/*!
|
||||
\struct atm_aal5_ifEntry_t
|
||||
\brief Structure used for AAL5 Frame Level MIB Counters.
|
||||
|
||||
User application use this structure to call IOCTL command "PPE_ATM_MIB_AAL5".
|
||||
*/
|
||||
typedef struct {
|
||||
__u32 ifHCInOctets_h; /*!< byte counter of ingress packets (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCInOctets_l; /*!< byte counter of ingress packets (lower 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_h; /*!< byte counter of egress packets (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_l; /*!< byte counter of egress packets (lower 32 bits, total 64 bits) */
|
||||
__u32 ifInUcastPkts; /*!< counter of ingress packets */
|
||||
__u32 ifOutUcastPkts; /*!< counter of egress packets */
|
||||
__u32 ifInErrors; /*!< counter of error ingress packets */
|
||||
__u32 ifInDiscards; /*!< counter of dropped ingress packets */
|
||||
__u32 ifOutErros; /*!< counter of error egress packets */
|
||||
__u32 ifOutDiscards; /*!< counter of dropped egress packets */
|
||||
} atm_aal5_ifEntry_t;
|
||||
|
||||
/*!
|
||||
\struct atm_aal5_vcc_t
|
||||
\brief Structure used for per PVC AAL5 Frame Level MIB Counters.
|
||||
|
||||
This structure is a part of structure "atm_aal5_vcc_x_t".
|
||||
*/
|
||||
typedef struct {
|
||||
__u32 aal5VccCrcErrors; /*!< counter of ingress packets with CRC error */
|
||||
__u32 aal5VccSarTimeOuts; /*!< counter of ingress packets with Re-assemble timeout */ //no timer support yet
|
||||
__u32 aal5VccOverSizedSDUs; /*!< counter of oversized ingress packets */
|
||||
} atm_aal5_vcc_t;
|
||||
|
||||
/*!
|
||||
\struct atm_aal5_vcc_x_t
|
||||
\brief Structure used for per PVC AAL5 Frame Level MIB Counters.
|
||||
|
||||
User application use this structure to call IOCTL command "PPE_ATM_MIB_VCC".
|
||||
*/
|
||||
typedef struct {
|
||||
int vpi; /*!< VPI of the VCC to get MIB counters */
|
||||
int vci; /*!< VCI of the VCC to get MIB counters */
|
||||
atm_aal5_vcc_t mib_vcc; /*!< structure to get MIB counters */
|
||||
} atm_aal5_vcc_x_t;
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* IOCTL
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*!
|
||||
\addtogroup IFX_ATM_IOCTL
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/*
|
||||
* ioctl Command
|
||||
*/
|
||||
/*!
|
||||
\brief ATM IOCTL Magic Number
|
||||
*/
|
||||
#define PPE_ATM_IOC_MAGIC 'o'
|
||||
/*!
|
||||
\brief ATM IOCTL Command - Get Cell Level MIB Counters
|
||||
|
||||
This command is obsolete. User can get cell level MIB from DSL API.
|
||||
This command uses structure "atm_cell_ifEntry_t" as parameter for output of MIB counters.
|
||||
*/
|
||||
#define PPE_ATM_MIB_CELL _IOW(PPE_ATM_IOC_MAGIC, 0, atm_cell_ifEntry_t)
|
||||
/*!
|
||||
\brief ATM IOCTL Command - Get AAL5 Level MIB Counters
|
||||
|
||||
Get AAL5 packet counters.
|
||||
This command uses structure "atm_aal5_ifEntry_t" as parameter for output of MIB counters.
|
||||
*/
|
||||
#define PPE_ATM_MIB_AAL5 _IOW(PPE_ATM_IOC_MAGIC, 1, atm_aal5_ifEntry_t)
|
||||
/*!
|
||||
\brief ATM IOCTL Command - Get Per PVC MIB Counters
|
||||
|
||||
Get AAL5 packet counters for each PVC.
|
||||
This command uses structure "atm_aal5_vcc_x_t" as parameter for input of VPI/VCI information and output of MIB counters.
|
||||
*/
|
||||
#define PPE_ATM_MIB_VCC _IOWR(PPE_ATM_IOC_MAGIC, 2, atm_aal5_vcc_x_t)
|
||||
/*!
|
||||
\brief Total Number of ATM IOCTL Commands
|
||||
*/
|
||||
#define PPE_ATM_IOC_MAXNR 3
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* API
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
struct port_cell_info {
|
||||
unsigned int port_num;
|
||||
unsigned int tx_link_rate[2];
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif // IFX_ATM_H
|
||||
|
||||
172
package/system/ltq-dsl/src/ifxmips_atm.h
Normal file
172
package/system/ltq-dsl/src/ifxmips_atm.h
Normal file
@@ -0,0 +1,172 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifx_atm.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM
|
||||
**
|
||||
** DATE : 17 Jun 2009
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : Global ATM driver header file
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 07 JUL 2009 Xu Liang Init Version
|
||||
*******************************************************************************/
|
||||
|
||||
#ifndef IFX_ATM_H
|
||||
#define IFX_ATM_H
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\defgroup IFX_ATM UEIP Project - ATM driver module
|
||||
\brief UEIP Project - ATM driver module, support Danube, Amazon-SE, AR9, VR9.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\defgroup IFX_ATM_IOCTL IOCTL Commands
|
||||
\ingroup IFX_ATM
|
||||
\brief IOCTL Commands used by user application.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\defgroup IFX_ATM_STRUCT Structures
|
||||
\ingroup IFX_ATM
|
||||
\brief Structures used by user application.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file ifx_atm.h
|
||||
\ingroup IFX_ATM
|
||||
\brief ATM driver header file
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Definition
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*!
|
||||
\addtogroup IFX_ATM_STRUCT
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/*
|
||||
* ATM MIB
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
__u32 ifHCInOctets_h; /*!< byte counter of ingress cells (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCInOctets_l; /*!< byte counter of ingress cells (lower 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_h; /*!< byte counter of egress cells (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_l; /*!< byte counter of egress cells (lower 32 bits, total 64 bits) */
|
||||
__u32 ifInErrors; /*!< counter of error ingress cells */
|
||||
__u32 ifInUnknownProtos; /*!< counter of unknown ingress cells */
|
||||
__u32 ifOutErrors; /*!< counter of error egress cells */
|
||||
} atm_cell_ifEntry_t;
|
||||
|
||||
typedef struct {
|
||||
__u32 ifHCInOctets_h; /*!< byte counter of ingress packets (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCInOctets_l; /*!< byte counter of ingress packets (lower 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_h; /*!< byte counter of egress packets (upper 32 bits, total 64 bits) */
|
||||
__u32 ifHCOutOctets_l; /*!< byte counter of egress packets (lower 32 bits, total 64 bits) */
|
||||
__u32 ifInUcastPkts; /*!< counter of ingress packets */
|
||||
__u32 ifOutUcastPkts; /*!< counter of egress packets */
|
||||
__u32 ifInErrors; /*!< counter of error ingress packets */
|
||||
__u32 ifInDiscards; /*!< counter of dropped ingress packets */
|
||||
__u32 ifOutErros; /*!< counter of error egress packets */
|
||||
__u32 ifOutDiscards; /*!< counter of dropped egress packets */
|
||||
} atm_aal5_ifEntry_t;
|
||||
|
||||
typedef struct {
|
||||
__u32 aal5VccCrcErrors; /*!< counter of ingress packets with CRC error */
|
||||
__u32 aal5VccSarTimeOuts; /*!< counter of ingress packets with Re-assemble timeout */ //no timer support yet
|
||||
__u32 aal5VccOverSizedSDUs; /*!< counter of oversized ingress packets */
|
||||
} atm_aal5_vcc_t;
|
||||
|
||||
typedef struct {
|
||||
int vpi; /*!< VPI of the VCC to get MIB counters */
|
||||
int vci; /*!< VCI of the VCC to get MIB counters */
|
||||
atm_aal5_vcc_t mib_vcc; /*!< structure to get MIB counters */
|
||||
} atm_aal5_vcc_x_t;
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* IOCTL
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*!
|
||||
\addtogroup IFX_ATM_IOCTL
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/*
|
||||
* ioctl Command
|
||||
*/
|
||||
/*!
|
||||
\brief ATM IOCTL Magic Number
|
||||
*/
|
||||
#define PPE_ATM_IOC_MAGIC 'o'
|
||||
/*!
|
||||
\brief ATM IOCTL Command - Get Cell Level MIB Counters
|
||||
|
||||
This command is obsolete. User can get cell level MIB from DSL API.
|
||||
This command uses structure "atm_cell_ifEntry_t" as parameter for output of MIB counters.
|
||||
*/
|
||||
#define PPE_ATM_MIB_CELL _IOW(PPE_ATM_IOC_MAGIC, 0, atm_cell_ifEntry_t)
|
||||
/*!
|
||||
\brief ATM IOCTL Command - Get AAL5 Level MIB Counters
|
||||
|
||||
Get AAL5 packet counters.
|
||||
This command uses structure "atm_aal5_ifEntry_t" as parameter for output of MIB counters.
|
||||
*/
|
||||
#define PPE_ATM_MIB_AAL5 _IOW(PPE_ATM_IOC_MAGIC, 1, atm_aal5_ifEntry_t)
|
||||
/*!
|
||||
\brief ATM IOCTL Command - Get Per PVC MIB Counters
|
||||
|
||||
Get AAL5 packet counters for each PVC.
|
||||
This command uses structure "atm_aal5_vcc_x_t" as parameter for input of VPI/VCI information and output of MIB counters.
|
||||
*/
|
||||
#define PPE_ATM_MIB_VCC _IOWR(PPE_ATM_IOC_MAGIC, 2, atm_aal5_vcc_x_t)
|
||||
/*!
|
||||
\brief Total Number of ATM IOCTL Commands
|
||||
*/
|
||||
#define PPE_ATM_IOC_MAXNR 3
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* API
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
struct port_cell_info {
|
||||
unsigned int port_num;
|
||||
unsigned int tx_link_rate[2];
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif // IFX_ATM_H
|
||||
|
||||
324
package/system/ltq-dsl/src/ifxmips_atm_amazon_se.c
Normal file
324
package/system/ltq-dsl/src/ifxmips_atm_amazon_se.c
Normal file
@@ -0,0 +1,324 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_amazon_se.c
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM
|
||||
**
|
||||
** DATE : 7 Jul 2009
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM driver common source file (core functions)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 07 JUL 2009 Xu Liang Init Version
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Head File
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Common Head File
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/delay.h>
|
||||
|
||||
/*
|
||||
* Chip Specific Head File
|
||||
*/
|
||||
#include <lantiq_soc.h>
|
||||
#include "ifxmips_compat.h"
|
||||
#include "ifxmips_atm_core.h"
|
||||
#include "ifxmips_atm_fw_amazon_se.h"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Definition
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* EMA Settings
|
||||
*/
|
||||
#define EMA_CMD_BUF_LEN 0x0040
|
||||
#define EMA_CMD_BASE_ADDR (0x00001580 << 2)
|
||||
#define EMA_DATA_BUF_LEN 0x0100
|
||||
#define EMA_DATA_BASE_ADDR (0x00000B00 << 2)
|
||||
#define EMA_WRITE_BURST 0x2
|
||||
#define EMA_READ_BURST 0x2
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Declaration
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Hardware Init/Uninit Functions
|
||||
*/
|
||||
static inline void init_pmu(void);
|
||||
static inline void uninit_pmu(void);
|
||||
static inline void reset_ppe(void);
|
||||
static inline void init_ema(void);
|
||||
static inline void init_mailbox(void);
|
||||
static inline void init_atm_tc(void);
|
||||
static inline void clear_share_buffer(void);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Local Variable
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Local Function
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
static inline void init_pmu(void)
|
||||
{
|
||||
//*(unsigned long *)0xBF10201C &= ~((1 << 15) | (1 << 13) | (1 << 9));
|
||||
//PPE_TOP_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
/* PPE_SLL01_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_TC_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_EMA_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
//PPE_QSB_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_TPE_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE);*/
|
||||
struct clk *clk = clk_get_sys("ltq_dsl", NULL);
|
||||
clk_enable(clk);
|
||||
}
|
||||
|
||||
static inline void uninit_pmu(void)
|
||||
{
|
||||
/* PPE_SLL01_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_TC_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_EMA_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
//PPE_QSB_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_TPE_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
//PPE_TOP_PMU_SETUP(IFX_PMU_DISABLE);*/
|
||||
struct clk *clk = clk_get_sys("ltq_dsl", NULL);
|
||||
clk_disable(clk);
|
||||
}
|
||||
|
||||
static inline void reset_ppe(void)
|
||||
{
|
||||
#ifdef MODULE
|
||||
/* unsigned int etop_cfg;
|
||||
unsigned int etop_mdio_cfg;
|
||||
unsigned int etop_ig_plen_ctrl;
|
||||
unsigned int enet_mac_cfg;
|
||||
|
||||
etop_cfg = *IFX_PP32_ETOP_CFG;
|
||||
etop_mdio_cfg = *IFX_PP32_ETOP_MDIO_CFG;
|
||||
etop_ig_plen_ctrl = *IFX_PP32_ETOP_IG_PLEN_CTRL;
|
||||
enet_mac_cfg = *IFX_PP32_ENET_MAC_CFG;
|
||||
|
||||
*IFX_PP32_ETOP_CFG = (*IFX_PP32_ETOP_CFG & ~0x03C0) | 0x0001;
|
||||
|
||||
// reset PPE
|
||||
ifx_rcu_rst(IFX_RCU_DOMAIN_PPE, IFX_RCU_MODULE_ATM);
|
||||
|
||||
*IFX_PP32_ETOP_MDIO_CFG = etop_mdio_cfg;
|
||||
*IFX_PP32_ETOP_IG_PLEN_CTRL = etop_ig_plen_ctrl;
|
||||
*IFX_PP32_ENET_MAC_CFG = enet_mac_cfg;
|
||||
*IFX_PP32_ETOP_CFG = etop_cfg;*/
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void init_ema(void)
|
||||
{
|
||||
IFX_REG_W32((EMA_CMD_BUF_LEN << 16) | (EMA_CMD_BASE_ADDR >> 2), EMA_CMDCFG);
|
||||
IFX_REG_W32((EMA_DATA_BUF_LEN << 16) | (EMA_DATA_BASE_ADDR >> 2), EMA_DATACFG);
|
||||
IFX_REG_W32(0x000000FF, EMA_IER);
|
||||
IFX_REG_W32(EMA_READ_BURST | (EMA_WRITE_BURST << 2), EMA_CFG);
|
||||
}
|
||||
|
||||
static inline void init_mailbox(void)
|
||||
{
|
||||
IFX_REG_W32(0xFFFFFFFF, MBOX_IGU1_ISRC);
|
||||
IFX_REG_W32(0x00000000, MBOX_IGU1_IER);
|
||||
IFX_REG_W32(0xFFFFFFFF, MBOX_IGU3_ISRC);
|
||||
IFX_REG_W32(0x00000000, MBOX_IGU3_IER);
|
||||
}
|
||||
|
||||
static inline void init_atm_tc(void)
|
||||
{
|
||||
IFX_REG_W32(0x0000, DREG_AT_CTRL);
|
||||
IFX_REG_W32(0x0000, DREG_AR_CTRL);
|
||||
IFX_REG_W32(0x0, DREG_AT_IDLE0);
|
||||
IFX_REG_W32(0x0, DREG_AT_IDLE1);
|
||||
IFX_REG_W32(0x0, DREG_AR_IDLE0);
|
||||
IFX_REG_W32(0x0, DREG_AR_IDLE1);
|
||||
IFX_REG_W32(0x40, RFBI_CFG);
|
||||
IFX_REG_W32(0x0700, SFSM_DBA0);
|
||||
IFX_REG_W32(0x0818, SFSM_DBA1);
|
||||
IFX_REG_W32(0x0930, SFSM_CBA0);
|
||||
IFX_REG_W32(0x0944, SFSM_CBA1);
|
||||
IFX_REG_W32(0x14014, SFSM_CFG0);
|
||||
IFX_REG_W32(0x14014, SFSM_CFG1);
|
||||
IFX_REG_W32(0x0958, FFSM_DBA0);
|
||||
IFX_REG_W32(0x09AC, FFSM_DBA1);
|
||||
IFX_REG_W32(0x10006, FFSM_CFG0);
|
||||
IFX_REG_W32(0x10006, FFSM_CFG1);
|
||||
IFX_REG_W32(0x00000001, FFSM_IDLE_HEAD_BC0);
|
||||
IFX_REG_W32(0x00000001, FFSM_IDLE_HEAD_BC1);
|
||||
}
|
||||
|
||||
static inline void clear_share_buffer(void)
|
||||
{
|
||||
volatile u32 *p = SB_RAM0_ADDR(0);
|
||||
unsigned int i;
|
||||
|
||||
for ( i = 0; i < SB_RAM0_DWLEN + SB_RAM1_DWLEN; i++ )
|
||||
IFX_REG_W32(0, p++);
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Download PPE firmware binary code.
|
||||
* Input:
|
||||
* src --- u32 *, binary code buffer
|
||||
* dword_len --- unsigned int, binary code length in DWORD (32-bit)
|
||||
* Output:
|
||||
* int --- IFX_SUCCESS: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len, u32 *data_src, unsigned int data_dword_len)
|
||||
{
|
||||
volatile u32 *dest;
|
||||
|
||||
if ( code_src == 0 || ((unsigned long)code_src & 0x03) != 0
|
||||
|| data_src == 0 || ((unsigned long)data_src & 0x03) != 0 )
|
||||
return IFX_ERROR;
|
||||
|
||||
if ( code_dword_len <= CDM_CODE_MEMORYn_DWLEN(0) )
|
||||
IFX_REG_W32(0x00, CDM_CFG);
|
||||
else
|
||||
IFX_REG_W32(0x04, CDM_CFG);
|
||||
|
||||
/* copy code */
|
||||
dest = CDM_CODE_MEMORY(0, 0);
|
||||
while ( code_dword_len-- > 0 )
|
||||
IFX_REG_W32(*code_src++, dest++);
|
||||
|
||||
/* copy data */
|
||||
dest = CDM_DATA_MEMORY(0, 0);
|
||||
while ( data_dword_len-- > 0 )
|
||||
IFX_REG_W32(*data_src++, dest++);
|
||||
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Global Function
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
extern void ifx_atm_get_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
{
|
||||
ASSERT(major != NULL, "pointer is NULL");
|
||||
ASSERT(minor != NULL, "pointer is NULL");
|
||||
|
||||
#ifdef VER_IN_FIRMWARE
|
||||
*major = FW_VER_ID->major;
|
||||
*minor = FW_VER_ID->minor;
|
||||
#else
|
||||
*major = ATM_FW_VER_MAJOR;
|
||||
*minor = ATM_FW_VER_MINOR;
|
||||
#endif
|
||||
}
|
||||
|
||||
void ifx_atm_init_chip(void)
|
||||
{
|
||||
init_pmu();
|
||||
|
||||
reset_ppe();
|
||||
|
||||
init_ema();
|
||||
|
||||
init_mailbox();
|
||||
|
||||
init_atm_tc();
|
||||
|
||||
clear_share_buffer();
|
||||
}
|
||||
|
||||
void ifx_atm_uninit_chip(void)
|
||||
{
|
||||
uninit_pmu();
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Initialize and start up PP32.
|
||||
* Input:
|
||||
* none
|
||||
* Output:
|
||||
* int --- IFX_SUCCESS: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
int ifx_pp32_start(int pp32)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* download firmware */
|
||||
ret = pp32_download_code(firmware_binary_code, sizeof(firmware_binary_code) / sizeof(*firmware_binary_code), firmware_binary_data, sizeof(firmware_binary_data) / sizeof(*firmware_binary_data));
|
||||
if ( ret != IFX_SUCCESS )
|
||||
return ret;
|
||||
|
||||
/* run PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_RESTART, PP32_DBG_CTRL);
|
||||
|
||||
/* idle for a while to let PP32 init itself */
|
||||
udelay(10);
|
||||
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Halt PP32.
|
||||
* Input:
|
||||
* none
|
||||
* Output:
|
||||
* none
|
||||
*/
|
||||
void ifx_pp32_stop(int pp32)
|
||||
{
|
||||
/* halt PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_STOP, PP32_DBG_CTRL);
|
||||
}
|
||||
295
package/system/ltq-dsl/src/ifxmips_atm_ar9.c
Normal file
295
package/system/ltq-dsl/src/ifxmips_atm_ar9.c
Normal file
@@ -0,0 +1,295 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_ar9.c
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM
|
||||
**
|
||||
** DATE : 7 Jul 2009
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM driver common source file (core functions)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 07 JUL 2009 Xu Liang Init Version
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Head File
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Common Head File
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/delay.h>
|
||||
|
||||
/*
|
||||
* Chip Specific Head File
|
||||
*/
|
||||
#include <lantiq_soc.h>
|
||||
#include "ifxmips_compat.h"
|
||||
#define IFX_MEI_BSP 1
|
||||
#include "ifxmips_mei_interface.h"
|
||||
#include "ifxmips_atm_core.h"
|
||||
#include "ifxmips_atm_ppe_common.h"
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
#include "ifxmips_atm_fw_ar9_retx.h"
|
||||
#else
|
||||
#include "ifxmips_atm_fw_ar9.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Definition
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* EMA Settings
|
||||
*/
|
||||
#define EMA_CMD_BUF_LEN 0x0040
|
||||
#define EMA_CMD_BASE_ADDR (0x00003B80 << 2)
|
||||
#define EMA_DATA_BUF_LEN 0x0100
|
||||
#define EMA_DATA_BASE_ADDR (0x00003C00 << 2)
|
||||
#define EMA_WRITE_BURST 0x2
|
||||
#define EMA_READ_BURST 0x2
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Declaration
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Hardware Init/Uninit Functions
|
||||
*/
|
||||
static inline void init_pmu(void);
|
||||
static inline void uninit_pmu(void);
|
||||
static inline void reset_ppe(void);
|
||||
static inline void init_ema(void);
|
||||
static inline void init_mailbox(void);
|
||||
static inline void init_atm_tc(void);
|
||||
static inline void clear_share_buffer(void);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Local Variable
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Local Function
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
static inline void init_pmu(void)
|
||||
{
|
||||
//*(unsigned long *)0xBF10201C &= ~((1 << 15) | (1 << 13) | (1 << 9));
|
||||
//PPE_TOP_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
/* PPE_SLL01_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_TC_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_EMA_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_QSB_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_TPE_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE);*/
|
||||
struct clk *clk = clk_get_sys("ltq_dsl", NULL);
|
||||
clk_enable(clk);
|
||||
}
|
||||
|
||||
static inline void uninit_pmu(void)
|
||||
{
|
||||
/* PPE_SLL01_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_TC_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_EMA_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_QSB_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_TPE_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE);*/
|
||||
//PPE_TOP_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
struct clk *clk = clk_get_sys("ltq_dsl", NULL);
|
||||
clk_disable(clk);
|
||||
}
|
||||
|
||||
static inline void reset_ppe(void)
|
||||
{
|
||||
#ifdef MODULE
|
||||
// reset PPE
|
||||
//ifx_rcu_rst(IFX_RCU_DOMAIN_PPE, IFX_RCU_MODULE_ATM);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void init_ema(void)
|
||||
{
|
||||
IFX_REG_W32((EMA_CMD_BUF_LEN << 16) | (EMA_CMD_BASE_ADDR >> 2), EMA_CMDCFG);
|
||||
IFX_REG_W32((EMA_DATA_BUF_LEN << 16) | (EMA_DATA_BASE_ADDR >> 2), EMA_DATACFG);
|
||||
IFX_REG_W32(0x000000FF, EMA_IER);
|
||||
IFX_REG_W32(EMA_READ_BURST | (EMA_WRITE_BURST << 2), EMA_CFG);
|
||||
}
|
||||
|
||||
static inline void init_mailbox(void)
|
||||
{
|
||||
IFX_REG_W32(0xFFFFFFFF, MBOX_IGU1_ISRC);
|
||||
IFX_REG_W32(0x00000000, MBOX_IGU1_IER);
|
||||
IFX_REG_W32(0xFFFFFFFF, MBOX_IGU3_ISRC);
|
||||
IFX_REG_W32(0x00000000, MBOX_IGU3_IER);
|
||||
}
|
||||
|
||||
static inline void init_atm_tc(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void clear_share_buffer(void)
|
||||
{
|
||||
volatile u32 *p = SB_RAM0_ADDR(0);
|
||||
unsigned int i;
|
||||
|
||||
for ( i = 0; i < SB_RAM0_DWLEN + SB_RAM1_DWLEN + SB_RAM2_DWLEN + SB_RAM3_DWLEN + SB_RAM4_DWLEN; i++ )
|
||||
IFX_REG_W32(0, p++);
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Download PPE firmware binary code.
|
||||
* Input:
|
||||
* src --- u32 *, binary code buffer
|
||||
* dword_len --- unsigned int, binary code length in DWORD (32-bit)
|
||||
* Output:
|
||||
* int --- IFX_SUCCESS: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len, u32 *data_src, unsigned int data_dword_len)
|
||||
{
|
||||
volatile u32 *dest;
|
||||
|
||||
if ( code_src == 0 || ((unsigned long)code_src & 0x03) != 0
|
||||
|| data_src == 0 || ((unsigned long)data_src & 0x03) != 0 )
|
||||
return IFX_ERROR;
|
||||
|
||||
if ( code_dword_len <= CDM_CODE_MEMORYn_DWLEN(0) )
|
||||
IFX_REG_W32(0x00, CDM_CFG);
|
||||
else
|
||||
IFX_REG_W32(0x04, CDM_CFG);
|
||||
|
||||
/* copy code */
|
||||
dest = CDM_CODE_MEMORY(0, 0);
|
||||
while ( code_dword_len-- > 0 )
|
||||
IFX_REG_W32(*code_src++, dest++);
|
||||
|
||||
/* copy data */
|
||||
dest = CDM_DATA_MEMORY(0, 0);
|
||||
while ( data_dword_len-- > 0 )
|
||||
IFX_REG_W32(*data_src++, dest++);
|
||||
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Global Function
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
extern void ifx_atm_get_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
{
|
||||
ASSERT(major != NULL, "pointer is NULL");
|
||||
ASSERT(minor != NULL, "pointer is NULL");
|
||||
|
||||
#if (defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX) || defined(VER_IN_FIRMWARE)
|
||||
*major = FW_VER_ID->major;
|
||||
*minor = FW_VER_ID->minor;
|
||||
#else
|
||||
*major = ATM_FW_VER_MAJOR;
|
||||
*minor = ATM_FW_VER_MINOR;
|
||||
#endif
|
||||
}
|
||||
|
||||
void ifx_atm_init_chip(void)
|
||||
{
|
||||
init_pmu();
|
||||
|
||||
reset_ppe();
|
||||
|
||||
init_ema();
|
||||
|
||||
init_mailbox();
|
||||
|
||||
init_atm_tc();
|
||||
|
||||
clear_share_buffer();
|
||||
}
|
||||
|
||||
void ifx_atm_uninit_chip(void)
|
||||
{
|
||||
uninit_pmu();
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Initialize and start up PP32.
|
||||
* Input:
|
||||
* none
|
||||
* Output:
|
||||
* int --- IFX_SUCCESS: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
int ifx_pp32_start(int pp32)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* download firmware */
|
||||
ret = pp32_download_code(firmware_binary_code, sizeof(firmware_binary_code) / sizeof(*firmware_binary_code), firmware_binary_data, sizeof(firmware_binary_data) / sizeof(*firmware_binary_data));
|
||||
if ( ret != IFX_SUCCESS )
|
||||
return ret;
|
||||
|
||||
/* run PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_RESTART, PP32_DBG_CTRL(0));
|
||||
|
||||
/* idle for a while to let PP32 init itself */
|
||||
udelay(10);
|
||||
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Halt PP32.
|
||||
* Input:
|
||||
* none
|
||||
* Output:
|
||||
* none
|
||||
*/
|
||||
void ifx_pp32_stop(int pp32)
|
||||
{
|
||||
/* halt PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_STOP, PP32_DBG_CTRL(0));
|
||||
}
|
||||
4770
package/system/ltq-dsl/src/ifxmips_atm_core.c
Normal file
4770
package/system/ltq-dsl/src/ifxmips_atm_core.c
Normal file
File diff suppressed because it is too large
Load Diff
271
package/system/ltq-dsl/src/ifxmips_atm_core.h
Normal file
271
package/system/ltq-dsl/src/ifxmips_atm_core.h
Normal file
@@ -0,0 +1,271 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_core.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM
|
||||
**
|
||||
** DATE : 7 Jul 2009
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM driver header file (core functions)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 17 JUN 2009 Xu Liang Init Version
|
||||
*******************************************************************************/
|
||||
|
||||
#ifndef IFXMIPS_ATM_CORE_H
|
||||
#define IFXMIPS_ATM_CORE_H
|
||||
|
||||
|
||||
#include "ifxmips_compat.h"
|
||||
#include "ifx_atm.h"
|
||||
#include "ifxmips_atm_ppe_common.h"
|
||||
#include "ifxmips_atm_fw_regs_common.h"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Definition
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Compile Options
|
||||
*/
|
||||
|
||||
#define ENABLE_DEBUG 1
|
||||
|
||||
#define ENABLE_ASSERT 1
|
||||
|
||||
#define INLINE
|
||||
|
||||
#define DEBUG_DUMP_SKB 1
|
||||
|
||||
#define DEBUG_QOS 1
|
||||
|
||||
#define DISABLE_QOS_WORKAROUND 0
|
||||
|
||||
#define ENABLE_DBG_PROC 1
|
||||
|
||||
#define ENABLE_FW_PROC 1
|
||||
|
||||
#ifdef CONFIG_IFX_ATM_TASKLET
|
||||
#define ENABLE_TASKLET 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IFX_ATM_RETX
|
||||
#define ENABLE_ATM_RETX 1
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_DSL_MEI_CPE_DRV) && !defined(CONFIG_IFXMIPS_DSL_CPE_MEI)
|
||||
#define CONFIG_IFXMIPS_DSL_CPE_MEI 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Debug/Assert/Error Message
|
||||
*/
|
||||
|
||||
#define DBG_ENABLE_MASK_ERR (1 << 0)
|
||||
#define DBG_ENABLE_MASK_DEBUG_PRINT (1 << 1)
|
||||
#define DBG_ENABLE_MASK_ASSERT (1 << 2)
|
||||
#define DBG_ENABLE_MASK_DUMP_SKB_RX (1 << 8)
|
||||
#define DBG_ENABLE_MASK_DUMP_SKB_TX (1 << 9)
|
||||
#define DBG_ENABLE_MASK_DUMP_QOS (1 << 10)
|
||||
#define DBG_ENABLE_MASK_DUMP_INIT (1 << 11)
|
||||
#define DBG_ENABLE_MASK_MAC_SWAP (1 << 12)
|
||||
#define DBG_ENABLE_MASK_ALL (DBG_ENABLE_MASK_ERR | DBG_ENABLE_MASK_DEBUG_PRINT | DBG_ENABLE_MASK_ASSERT | DBG_ENABLE_MASK_DUMP_SKB_RX | DBG_ENABLE_MASK_DUMP_SKB_TX | DBG_ENABLE_MASK_DUMP_QOS | DBG_ENABLE_MASK_DUMP_INIT | DBG_ENABLE_MASK_MAC_SWAP)
|
||||
|
||||
#define err(format, arg...) do { if ( (ifx_atm_dbg_enable & DBG_ENABLE_MASK_ERR) ) printk(KERN_ERR __FILE__ ":%d:%s: " format "\n", __LINE__, __FUNCTION__, ##arg); } while ( 0 )
|
||||
|
||||
#if defined(ENABLE_DEBUG) && ENABLE_DEBUG
|
||||
#undef dbg
|
||||
#define dbg(format, arg...) do { if ( (ifx_atm_dbg_enable & DBG_ENABLE_MASK_DEBUG_PRINT) ) printk(KERN_WARNING __FILE__ ":%d:%s: " format "\n", __LINE__, __FUNCTION__, ##arg); } while ( 0 )
|
||||
#else
|
||||
#if !defined(dbg)
|
||||
#define dbg(format, arg...)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_ASSERT) && ENABLE_ASSERT
|
||||
#define ASSERT(cond, format, arg...) do { if ( (ifx_atm_dbg_enable & DBG_ENABLE_MASK_ASSERT) && !(cond) ) printk(KERN_ERR __FILE__ ":%d:%s: " format "\n", __LINE__, __FUNCTION__, ##arg); } while ( 0 )
|
||||
#else
|
||||
#define ASSERT(cond, format, arg...)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
#define DEFAULT_TX_LINK_RATE 3200 // in cells
|
||||
|
||||
/*
|
||||
* ATM Port, QSB Queue, DMA RX/TX Channel Parameters
|
||||
*/
|
||||
#define ATM_PORT_NUMBER 2
|
||||
#define MAX_QUEUE_NUMBER 16
|
||||
#define OAM_RX_QUEUE 15
|
||||
#define QSB_RESERVE_TX_QUEUE 0
|
||||
#define FIRST_QSB_QID 1
|
||||
#define MAX_PVC_NUMBER (MAX_QUEUE_NUMBER - FIRST_QSB_QID)
|
||||
#define MAX_RX_DMA_CHANNEL_NUMBER 8
|
||||
#define MAX_TX_DMA_CHANNEL_NUMBER 16
|
||||
#define DATA_BUFFER_ALIGNMENT EMA_ALIGNMENT
|
||||
#define DESC_ALIGNMENT 8
|
||||
#define DEFAULT_RX_HUNT_BITTH 4
|
||||
|
||||
/*
|
||||
* RX DMA Channel Allocation
|
||||
*/
|
||||
#define RX_DMA_CH_OAM 0
|
||||
#define RX_DMA_CH_AAL 1
|
||||
#define RX_DMA_CH_TOTAL 2
|
||||
#define RX_DMA_CH_OAM_DESC_LEN 32
|
||||
#define RX_DMA_CH_OAM_BUF_SIZE (CELL_SIZE & ~15)
|
||||
#define RX_DMA_CH_AAL_BUF_SIZE (2048 - 48)
|
||||
|
||||
/*
|
||||
* OAM Constants
|
||||
*/
|
||||
#define OAM_HTU_ENTRY_NUMBER 3
|
||||
#define OAM_F4_SEG_HTU_ENTRY 0
|
||||
#define OAM_F4_TOT_HTU_ENTRY 1
|
||||
#define OAM_F5_HTU_ENTRY 2
|
||||
#define OAM_F4_CELL_ID 0
|
||||
#define OAM_F5_CELL_ID 15
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
#undef OAM_HTU_ENTRY_NUMBER
|
||||
#define OAM_HTU_ENTRY_NUMBER 4
|
||||
#define OAM_ARQ_HTU_ENTRY 3
|
||||
#endif
|
||||
|
||||
/*
|
||||
* RX Frame Definitions
|
||||
*/
|
||||
#define MAX_RX_PACKET_ALIGN_BYTES 3
|
||||
#define MAX_RX_PACKET_PADDING_BYTES 3
|
||||
#define RX_INBAND_TRAILER_LENGTH 8
|
||||
#define MAX_RX_FRAME_EXTRA_BYTES (RX_INBAND_TRAILER_LENGTH + MAX_RX_PACKET_ALIGN_BYTES + MAX_RX_PACKET_PADDING_BYTES)
|
||||
|
||||
/*
|
||||
* TX Frame Definitions
|
||||
*/
|
||||
#define MAX_TX_HEADER_ALIGN_BYTES 12
|
||||
#define MAX_TX_PACKET_ALIGN_BYTES 3
|
||||
#define MAX_TX_PACKET_PADDING_BYTES 3
|
||||
#define TX_INBAND_HEADER_LENGTH 8
|
||||
#define MAX_TX_FRAME_EXTRA_BYTES (TX_INBAND_HEADER_LENGTH + MAX_TX_HEADER_ALIGN_BYTES + MAX_TX_PACKET_ALIGN_BYTES + MAX_TX_PACKET_PADDING_BYTES)
|
||||
|
||||
/*
|
||||
* Cell Constant
|
||||
*/
|
||||
#define CELL_SIZE ATM_AAL0_SDU
|
||||
|
||||
/*
|
||||
* ReTX Constant
|
||||
*/
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
#define RETX_PLAYOUT_BUFFER_ORDER 6
|
||||
#define RETX_PLAYOUT_BUFFER_SIZE (PAGE_SIZE * (1 << RETX_PLAYOUT_BUFFER_ORDER))
|
||||
#define RETX_PLAYOUT_FW_BUFF_SIZE (RETX_PLAYOUT_BUFFER_SIZE / (32 * 56 /* cell size */))
|
||||
#define RETX_POLLING_INTERVAL (HZ / 100 > 0 ? HZ / 100 : 1)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Data Type
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
unsigned int h;
|
||||
unsigned int l;
|
||||
} ppe_u64_t;
|
||||
|
||||
struct port {
|
||||
unsigned int tx_max_cell_rate;
|
||||
unsigned int tx_current_cell_rate;
|
||||
|
||||
struct atm_dev *dev;
|
||||
};
|
||||
|
||||
struct connection {
|
||||
struct atm_vcc *vcc;
|
||||
|
||||
volatile struct tx_descriptor
|
||||
*tx_desc;
|
||||
unsigned int tx_desc_pos;
|
||||
struct sk_buff **tx_skb;
|
||||
|
||||
unsigned int aal5_vcc_crc_err; /* number of packets with CRC error */
|
||||
unsigned int aal5_vcc_oversize_sdu; /* number of packets with oversize error */
|
||||
|
||||
unsigned int port;
|
||||
};
|
||||
|
||||
struct atm_priv_data {
|
||||
unsigned long conn_table;
|
||||
struct connection conn[MAX_PVC_NUMBER];
|
||||
|
||||
volatile struct rx_descriptor
|
||||
*aal_desc;
|
||||
unsigned int aal_desc_pos;
|
||||
|
||||
volatile struct rx_descriptor
|
||||
*oam_desc;
|
||||
unsigned char *oam_buf;
|
||||
unsigned int oam_desc_pos;
|
||||
|
||||
struct port port[ATM_PORT_NUMBER];
|
||||
|
||||
unsigned int wrx_pdu; /* successfully received AAL5 packet */
|
||||
unsigned int wrx_drop_pdu; /* AAL5 packet dropped by driver on RX */
|
||||
unsigned int wtx_pdu; /* successfully tranmitted AAL5 packet */
|
||||
unsigned int wtx_err_pdu; /* error AAL5 packet */
|
||||
unsigned int wtx_drop_pdu; /* AAL5 packet dropped by driver on TX */
|
||||
|
||||
ppe_u64_t wrx_total_byte;
|
||||
ppe_u64_t wtx_total_byte;
|
||||
unsigned int prev_wrx_total_byte;
|
||||
unsigned int prev_wtx_total_byte;
|
||||
|
||||
void *aal_desc_base;
|
||||
void *oam_desc_base;
|
||||
void *oam_buf_base;
|
||||
void *tx_desc_base;
|
||||
void *tx_skb_base;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Declaration
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
extern unsigned int ifx_atm_dbg_enable;
|
||||
|
||||
extern void ifx_atm_get_fw_ver(unsigned int *major, unsigned int *minor);
|
||||
|
||||
extern void ifx_atm_init_chip(void);
|
||||
extern void ifx_atm_uninit_chip(void);
|
||||
|
||||
extern int ifx_pp32_start(int pp32);
|
||||
extern void ifx_pp32_stop(int pp32);
|
||||
|
||||
extern void ifx_reset_ppe(void);
|
||||
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_CORE_H
|
||||
326
package/system/ltq-dsl/src/ifxmips_atm_danube.c
Normal file
326
package/system/ltq-dsl/src/ifxmips_atm_danube.c
Normal file
@@ -0,0 +1,326 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_danube.c
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM
|
||||
**
|
||||
** DATE : 7 Jul 2009
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM driver common source file (core functions)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 07 JUL 2009 Xu Liang Init Version
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Head File
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Common Head File
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/delay.h>
|
||||
|
||||
/*
|
||||
* Chip Specific Head File
|
||||
*/
|
||||
#include <lantiq_soc.h>
|
||||
#include "ifxmips_compat.h"
|
||||
#include "ifxmips_atm_core.h"
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
#include "ifxmips_atm_fw_danube_retx.h"
|
||||
#else
|
||||
#include "ifxmips_atm_fw_danube.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Definition
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* EMA Settings
|
||||
*/
|
||||
#define EMA_CMD_BUF_LEN 0x0040
|
||||
#define EMA_CMD_BASE_ADDR (0x00001580 << 2)
|
||||
#define EMA_DATA_BUF_LEN 0x0100
|
||||
#define EMA_DATA_BASE_ADDR (0x00001900 << 2)
|
||||
#define EMA_WRITE_BURST 0x2
|
||||
#define EMA_READ_BURST 0x2
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Declaration
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
/*
|
||||
* Hardware Init/Uninit Functions
|
||||
*/
|
||||
static inline void init_pmu(void);
|
||||
static inline void uninit_pmu(void);
|
||||
static inline void reset_ppe(void);
|
||||
static inline void init_ema(void);
|
||||
static inline void init_mailbox(void);
|
||||
static inline void init_atm_tc(void);
|
||||
static inline void clear_share_buffer(void);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Local Variable
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Local Function
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
static inline void init_pmu(void)
|
||||
{
|
||||
//*(unsigned long *)0xBF10201C &= ~((1 << 15) | (1 << 13) | (1 << 9));
|
||||
//PPE_TOP_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
/* PPE_SLL01_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_TC_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_EMA_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_QSB_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
PPE_TPE_PMU_SETUP(IFX_PMU_ENABLE);
|
||||
DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE);*/
|
||||
struct clk *clk = clk_get_sys("ltq_dsl", NULL);
|
||||
clk_enable(clk);
|
||||
}
|
||||
|
||||
static inline void uninit_pmu(void)
|
||||
{
|
||||
/* PPE_SLL01_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_TC_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_EMA_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_QSB_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
PPE_TPE_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE);*/
|
||||
//PPE_TOP_PMU_SETUP(IFX_PMU_DISABLE);
|
||||
struct clk *clk = clk_get_sys("ltq_dsl", NULL);
|
||||
clk_disable(clk);
|
||||
}
|
||||
|
||||
static inline void reset_ppe(void)
|
||||
{
|
||||
#if 0 //def MODULE
|
||||
unsigned int etop_cfg;
|
||||
unsigned int etop_mdio_cfg;
|
||||
unsigned int etop_ig_plen_ctrl;
|
||||
unsigned int enet_mac_cfg;
|
||||
|
||||
etop_cfg = *IFX_PP32_ETOP_CFG;
|
||||
etop_mdio_cfg = *IFX_PP32_ETOP_MDIO_CFG;
|
||||
etop_ig_plen_ctrl = *IFX_PP32_ETOP_IG_PLEN_CTRL;
|
||||
enet_mac_cfg = *IFX_PP32_ENET_MAC_CFG;
|
||||
|
||||
*IFX_PP32_ETOP_CFG &= ~0x03C0;
|
||||
|
||||
// reset PPE
|
||||
ifx_rcu_rst(IFX_RCU_DOMAIN_PPE, IFX_RCU_MODULE_ATM);
|
||||
|
||||
*IFX_PP32_ETOP_MDIO_CFG = etop_mdio_cfg;
|
||||
*IFX_PP32_ETOP_IG_PLEN_CTRL = etop_ig_plen_ctrl;
|
||||
*IFX_PP32_ENET_MAC_CFG = enet_mac_cfg;
|
||||
*IFX_PP32_ETOP_CFG = etop_cfg;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void init_ema(void)
|
||||
{
|
||||
IFX_REG_W32((EMA_CMD_BUF_LEN << 16) | (EMA_CMD_BASE_ADDR >> 2), EMA_CMDCFG);
|
||||
IFX_REG_W32((EMA_DATA_BUF_LEN << 16) | (EMA_DATA_BASE_ADDR >> 2), EMA_DATACFG);
|
||||
IFX_REG_W32(0x000000FF, EMA_IER);
|
||||
IFX_REG_W32(EMA_READ_BURST | (EMA_WRITE_BURST << 2), EMA_CFG);
|
||||
}
|
||||
|
||||
static inline void init_mailbox(void)
|
||||
{
|
||||
IFX_REG_W32(0xFFFFFFFF, MBOX_IGU1_ISRC);
|
||||
IFX_REG_W32(0x00000000, MBOX_IGU1_IER);
|
||||
IFX_REG_W32(0xFFFFFFFF, MBOX_IGU3_ISRC);
|
||||
IFX_REG_W32(0x00000000, MBOX_IGU3_IER);
|
||||
}
|
||||
|
||||
static inline void init_atm_tc(void)
|
||||
{
|
||||
IFX_REG_W32(0x0000, DREG_AT_CTRL);
|
||||
IFX_REG_W32(0x0000, DREG_AR_CTRL);
|
||||
IFX_REG_W32(0x0, DREG_AT_IDLE0);
|
||||
IFX_REG_W32(0x0, DREG_AT_IDLE1);
|
||||
IFX_REG_W32(0x0, DREG_AR_IDLE0);
|
||||
IFX_REG_W32(0x0, DREG_AR_IDLE1);
|
||||
IFX_REG_W32(0x40, RFBI_CFG);
|
||||
IFX_REG_W32(0x1600, SFSM_DBA0);
|
||||
IFX_REG_W32(0x1718, SFSM_DBA1);
|
||||
IFX_REG_W32(0x1830, SFSM_CBA0);
|
||||
IFX_REG_W32(0x1844, SFSM_CBA1);
|
||||
IFX_REG_W32(0x14014, SFSM_CFG0);
|
||||
IFX_REG_W32(0x14014, SFSM_CFG1);
|
||||
IFX_REG_W32(0x1858, FFSM_DBA0);
|
||||
IFX_REG_W32(0x18AC, FFSM_DBA1);
|
||||
IFX_REG_W32(0x10006, FFSM_CFG0);
|
||||
IFX_REG_W32(0x10006, FFSM_CFG1);
|
||||
IFX_REG_W32(0x00000001, FFSM_IDLE_HEAD_BC0);
|
||||
IFX_REG_W32(0x00000001, FFSM_IDLE_HEAD_BC1);
|
||||
}
|
||||
|
||||
static inline void clear_share_buffer(void)
|
||||
{
|
||||
volatile u32 *p = SB_RAM0_ADDR(0);
|
||||
unsigned int i;
|
||||
|
||||
for ( i = 0; i < SB_RAM0_DWLEN + SB_RAM1_DWLEN + SB_RAM2_DWLEN + SB_RAM3_DWLEN; i++ )
|
||||
IFX_REG_W32(0, p++);
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Download PPE firmware binary code.
|
||||
* Input:
|
||||
* src --- u32 *, binary code buffer
|
||||
* dword_len --- unsigned int, binary code length in DWORD (32-bit)
|
||||
* Output:
|
||||
* int --- IFX_SUCCESS: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len, u32 *data_src, unsigned int data_dword_len)
|
||||
{
|
||||
volatile u32 *dest;
|
||||
|
||||
if ( code_src == 0 || ((unsigned long)code_src & 0x03) != 0
|
||||
|| data_src == 0 || ((unsigned long)data_src & 0x03) != 0 )
|
||||
return IFX_ERROR;
|
||||
|
||||
if ( code_dword_len <= CDM_CODE_MEMORYn_DWLEN(0) )
|
||||
IFX_REG_W32(0x00, CDM_CFG);
|
||||
else
|
||||
IFX_REG_W32(0x04, CDM_CFG);
|
||||
|
||||
/* copy code */
|
||||
dest = CDM_CODE_MEMORY(0, 0);
|
||||
while ( code_dword_len-- > 0 )
|
||||
IFX_REG_W32(*code_src++, dest++);
|
||||
|
||||
/* copy data */
|
||||
dest = CDM_DATA_MEMORY(0, 0);
|
||||
while ( data_dword_len-- > 0 )
|
||||
IFX_REG_W32(*data_src++, dest++);
|
||||
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ####################################
|
||||
* Global Function
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
extern void ifx_atm_get_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
{
|
||||
ASSERT(major != NULL, "pointer is NULL");
|
||||
ASSERT(minor != NULL, "pointer is NULL");
|
||||
|
||||
#if (defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX) || defined(VER_IN_FIRMWARE)
|
||||
*major = FW_VER_ID->major;
|
||||
*minor = FW_VER_ID->minor;
|
||||
#else
|
||||
*major = ATM_FW_VER_MAJOR;
|
||||
*minor = ATM_FW_VER_MINOR;
|
||||
#endif
|
||||
}
|
||||
|
||||
void ifx_atm_init_chip(void)
|
||||
{
|
||||
init_pmu();
|
||||
|
||||
reset_ppe();
|
||||
|
||||
init_ema();
|
||||
|
||||
init_mailbox();
|
||||
|
||||
init_atm_tc();
|
||||
|
||||
clear_share_buffer();
|
||||
}
|
||||
|
||||
void ifx_atm_uninit_chip(void)
|
||||
{
|
||||
uninit_pmu();
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Initialize and start up PP32.
|
||||
* Input:
|
||||
* none
|
||||
* Output:
|
||||
* int --- IFX_SUCCESS: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
int ifx_pp32_start(int pp32)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* download firmware */
|
||||
ret = pp32_download_code(firmware_binary_code, sizeof(firmware_binary_code) / sizeof(*firmware_binary_code), firmware_binary_data, sizeof(firmware_binary_data) / sizeof(*firmware_binary_data));
|
||||
if ( ret != IFX_SUCCESS )
|
||||
return ret;
|
||||
|
||||
/* run PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_START_SET(1), PP32_DBG_CTRL);
|
||||
|
||||
/* idle for a while to let PP32 init itself */
|
||||
udelay(10);
|
||||
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* Description:
|
||||
* Halt PP32.
|
||||
* Input:
|
||||
* none
|
||||
* Output:
|
||||
* none
|
||||
*/
|
||||
void ifx_pp32_stop(int pp32)
|
||||
{
|
||||
/* halt PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_STOP_SET(1), PP32_DBG_CTRL);
|
||||
}
|
||||
3335
package/system/ltq-dsl/src/ifxmips_atm_fw_amazon_se.h
Normal file
3335
package/system/ltq-dsl/src/ifxmips_atm_fw_amazon_se.h
Normal file
File diff suppressed because it is too large
Load Diff
439
package/system/ltq-dsl/src/ifxmips_atm_fw_ar9.h
Normal file
439
package/system/ltq-dsl/src/ifxmips_atm_fw_ar9.h
Normal file
@@ -0,0 +1,439 @@
|
||||
#ifndef IFXMIPS_ATM_FW_AR9_H
|
||||
#define IFXMIPS_ATM_FW_AR9_H
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_ar9.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 22 OCT 2007
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (PP32 Firmware)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 22 OCT 2007 Xu Liang Initiate Version, v00.01
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#define VER_IN_FIRMWARE 1
|
||||
|
||||
#define ATM_FW_VER_MAJOR 0
|
||||
#define ATM_FW_VER_MINOR 16
|
||||
|
||||
|
||||
static unsigned int firmware_binary_code[] = {
|
||||
0x800004b8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000ffe0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xc1000002, 0xd90c00f8, 0xc2000002, 0xda0800f9, 0x80004980, 0xc2000000, 0xda0800f9, 0x80003fe8,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80003fa0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80005178, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80003ea0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xc0400000, 0xc0004840, 0xc88400f8, 0x80004640, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xc0400002, 0xc0004840, 0xc88400f8, 0x800045c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xc3c00004, 0xdbc800f9, 0xc10c0002, 0xd90c00f8, 0x8000fee0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xc10e0002, 0xd90c00f8, 0xc0004808, 0xc84000f8, 0x800045f0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xc3e1fffe, 0x597dfffe, 0x593dfe14, 0x900004d9, 0x00000000, 0x00000000, 0x00000000, 0x90cc0481,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xc3c00000, 0xdbc800f9, 0xc1400008, 0xc1900000, 0x71588000,
|
||||
0x14100100, 0xc140000a, 0xc1900002, 0x71588000, 0x14100100, 0xc140000c, 0xc1900004, 0x71588000,
|
||||
0x14100100, 0xc1400004, 0xc1900006, 0x71588000, 0x14100100, 0xc1400006, 0xc1900008, 0x71588000,
|
||||
0x14100100, 0xc140000e, 0xc190000a, 0x71588000, 0x14100100, 0xc1400000, 0xc190000c, 0x71588000,
|
||||
0x14100100, 0xc1400002, 0xc190000e, 0x71588000, 0x14100100, 0xc0400000, 0xc11c0000, 0xc000082c,
|
||||
0xcd05ce00, 0xc11c0002, 0xc000082c, 0xcd05ce00, 0xc0400002, 0xc11c0000, 0xc000082c, 0xcd05ce00,
|
||||
0xc11c0002, 0xc000082c, 0xcd05ce00, 0xc0000824, 0x00000000, 0xcbc000f9, 0xcb8000f9, 0xcb4000f9,
|
||||
0xcb0000f8, 0xc0004878, 0x5bfc4000, 0xcfc000f9, 0x5bb84000, 0xcf8000f9, 0x5b744000, 0xcf4000f9,
|
||||
0x5b304000, 0xcf0000f8, 0xc0000a10, 0x00000000, 0xcbc000f9, 0xcb8000f8, 0xc0004874, 0x5bfc4000,
|
||||
0xcfc000f9, 0x5bb84000, 0xcf8000f8, 0xc30001fe, 0xc000140a, 0xcf0000f8, 0xc3000000, 0x7f018000,
|
||||
0xc000042e, 0xcf0000f8, 0xc000040e, 0xcf0000f8, 0xc3c1fffe, 0xc000490e, 0xcfc00078, 0xc000492c,
|
||||
0xcfc00078, 0xc0004924, 0xcfc00038, 0xc0004912, 0xcfc00038, 0xc0004966, 0xcfc00038, 0xc0004968,
|
||||
0xcfc00078, 0xc000496a, 0xcfc00078, 0xc3c1fffe, 0xc00049a0, 0xcfc000f8, 0xc3c00000, 0xc2800020,
|
||||
0xc3000000, 0x7f018000, 0x6ff88000, 0x6fd44000, 0x4395c000, 0x5bb84a00, 0x5838000a, 0xcf0000f8,
|
||||
0x5bfc0002, 0xb7e8ffc8, 0x00000000, 0xc3c00000, 0xc2800010, 0x6ff86000, 0x47bdc000, 0x5bb84c80,
|
||||
0xc3400000, 0x58380004, 0xcb420078, 0x00000000, 0x58380008, 0xcf400078, 0x5bfc0002, 0xb7e8ffb0,
|
||||
0x00000000, 0xc3c00000, 0xc2800020, 0xc348001e, 0xc3000000, 0x7f018000, 0x6ff8a000, 0x6fd44000,
|
||||
0x4795c000, 0x47bdc000, 0x5bb87000, 0x58380008, 0xcf408418, 0x5838000a, 0xcf0000f8, 0x5bfc0002,
|
||||
0xb7e8ffb0, 0x00000000, 0x00000000, 0xc3e0a242, 0x5bfc0020, 0xc0004002, 0xcfc000f8, 0x00000000,
|
||||
0xc121fffe, 0x5911fe14, 0x14100000, 0x80000530, 0x00000000, 0x80002130, 0x00000000, 0x8000ffe0,
|
||||
0xc0004958, 0xc84000f8, 0x00000000, 0xc3c00002, 0x787c2000, 0xcc4000f8, 0xc0004848, 0xcb8400f8,
|
||||
0xc000495c, 0xcac400f8, 0xc0004844, 0xc88400f8, 0x47ad0000, 0x8400ff82, 0xc000487c, 0xc80400f8,
|
||||
0x00000000, 0x00000000, 0x40080000, 0xca0000f8, 0xc0001624, 0xcb0400f8, 0xa63c007a, 0x00000000,
|
||||
0x00000000, 0xa71eff22, 0x00000000, 0xc0000824, 0xca8400f8, 0x6ca08000, 0x6ca42000, 0x46250000,
|
||||
0x42290000, 0xc35e0002, 0xc6340060, 0xc0001624, 0xcf440078, 0xc2000000, 0xc161fffe, 0x5955fffe,
|
||||
0x14140000, 0x00000000, 0xc0004844, 0xc88400f8, 0xc000082c, 0xca040038, 0x00000000, 0x00000000,
|
||||
0x58880002, 0xb6080018, 0x00000000, 0xc0800000, 0xc0004844, 0xcc840038, 0x5aec0002, 0xc000495c,
|
||||
0xcec400f8, 0x5e6c0006, 0x84000060, 0xc0004848, 0xcb8400f8, 0xc0000838, 0xc2500002, 0xce450800,
|
||||
0x5fb80002, 0xc0004848, 0xcf8400f8, 0x5eec0002, 0xc000495c, 0xcec400f8, 0x00000000, 0xc121fffe,
|
||||
0x5911fe14, 0x14100000, 0x8000fd98, 0xc000495a, 0xc84000f8, 0x00000000, 0xc3c00002, 0x787c2000,
|
||||
0xcc4000f8, 0xc0004960, 0xcac400f8, 0x00000000, 0x00000000, 0x5eec0000, 0x8400010a, 0x00000000,
|
||||
0xb6fc0050, 0xc0001600, 0xca0400f8, 0x00000000, 0x00000000, 0xa61e00d2, 0x6fe90000, 0xc0000a28,
|
||||
0xce850800, 0xc2c00000, 0xc2800004, 0xb6e800a0, 0xc0001604, 0xca8400f8, 0xc0004960, 0xcec400f8,
|
||||
0xa69efcc2, 0x00000000, 0x6fe90000, 0xc0000a28, 0xce850800, 0xc2c00002, 0xc0001600, 0xca0400f8,
|
||||
0x00000000, 0x00000000, 0xa61e002a, 0x6fe90000, 0xc0000a28, 0xce850800, 0xc2c00000, 0xc0001604,
|
||||
0xca8400f8, 0xc0004960, 0xcec400f8, 0xa69efc2a, 0xc2400000, 0xc0000a14, 0xca440028, 0x00000000,
|
||||
0x00000000, 0x466d2000, 0xa4400020, 0xc2800000, 0xdfeb0029, 0x80000010, 0xdfea0029, 0xb668fba2,
|
||||
0x00000000, 0xc00048a0, 0xcb0400f8, 0xc0000a10, 0xca8400f8, 0x6f208000, 0x6f242000, 0x46250000,
|
||||
0x42a10000, 0xc2400000, 0xc0000a14, 0xca440028, 0xc35e0002, 0xc6340060, 0xc0001604, 0xcf440078,
|
||||
0x5b300002, 0xb6700018, 0x5aec0002, 0xc3000000, 0xc00048a0, 0xcf0400f8, 0xc0004960, 0xcec400f8,
|
||||
0x8000fad8, 0xc0004918, 0xd28000f8, 0xc2000000, 0xdf600038, 0x5e600080, 0x84000272, 0x00000000,
|
||||
0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc000480a, 0xca0000f8, 0xc0004912, 0xca4000f8,
|
||||
0xc0004924, 0xca8000f8, 0xc0004966, 0xcac000f8, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000,
|
||||
0x76250000, 0x76290000, 0x762d0000, 0x840001ca, 0xc0004918, 0xca4000f8, 0xc28001fe, 0x76290000,
|
||||
0x5a640002, 0x6a254010, 0x5ee80000, 0x8400001a, 0x6aa54000, 0x80000010, 0xc62800f8, 0x62818008,
|
||||
0xc0004918, 0xcf0000f8, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc0004966, 0xca4000f8,
|
||||
0xc2000002, 0x6a310000, 0x7e010000, 0x76612000, 0xce4000f8, 0x00000000, 0xc121fffe, 0x5911fe14,
|
||||
0x14100000, 0x6f346000, 0x4771a000, 0x5b744c80, 0xc2800000, 0x58340006, 0xca800078, 0xc2c00000,
|
||||
0x58340000, 0xcac000d8, 0xc2400000, 0x5834000a, 0xca420078, 0x6ea82000, 0x42e9e000, 0x6f2ca000,
|
||||
0x42e56000, 0x5aec2e00, 0xc3990040, 0xc7381c18, 0xc6f80060, 0x99005b78, 0xdb9800f8, 0xdbd800f9,
|
||||
0x00000000, 0xdea000f8, 0x46310000, 0x8400fd80, 0xc0004958, 0xc84000f8, 0x00000000, 0xc3c00002,
|
||||
0x787c2000, 0xcc4000f8, 0xc0004848, 0xcb8400f8, 0xc0004844, 0xc88400f8, 0x5fb80000, 0x8400f7f2,
|
||||
0xc0001a1c, 0xca0000f8, 0xc2400002, 0x6a452000, 0x76250000, 0x8400f7c2, 0xc000487c, 0xc80400f8,
|
||||
0x00000000, 0x00000000, 0x40080000, 0xca0000f8, 0xc42400f8, 0x00000000, 0xa63c17da, 0x00000000,
|
||||
0xc0004878, 0xc80400f8, 0x6c908000, 0x45088000, 0x45088000, 0x40100000, 0xca0000f8, 0xc42400f8,
|
||||
0x00000000, 0xc0004934, 0xce0000f8, 0xc2800002, 0xc4681c08, 0xc62821d0, 0xc2600010, 0x5a650060,
|
||||
0xc0004800, 0xcb4000f8, 0xc2200400, 0x5a200020, 0xc7601040, 0xc0001220, 0xce8000f8, 0xc0001200,
|
||||
0xce4000f8, 0xc0001202, 0xce0000f8, 0xc0001240, 0xcb4000f8, 0x00000000, 0x00000000, 0xa754ffe0,
|
||||
0xc2000000, 0xc7600040, 0xa7520042, 0x00000000, 0x00000000, 0x990062f0, 0xc0004822, 0xc94000f8,
|
||||
0xc1800002, 0x80001680, 0x582040a0, 0xc2000000, 0xca000018, 0xc2400000, 0xca414000, 0xc2800000,
|
||||
0xca812000, 0xc2c00000, 0xcac20018, 0xc0004938, 0xce0000f8, 0xc0004920, 0xce4000f8, 0xc0004916,
|
||||
0xce8000f8, 0xc0004922, 0xcec000f8, 0xa6400540, 0x00000000, 0xc0004938, 0xcbc000f8, 0x00000000,
|
||||
0xc3800000, 0x6ff48000, 0x6fd44000, 0x4355a000, 0x5b744a00, 0x58340000, 0xcb802010, 0x00000000,
|
||||
0xc2000000, 0x6fb46000, 0x4779a000, 0x5b744c80, 0x5834000c, 0xca000020, 0xc000491a, 0xcf8000f8,
|
||||
0x5e200000, 0x8400046a, 0xc2000000, 0xdf610048, 0x5e6001e8, 0x8800ffe8, 0xc2000002, 0xc2400466,
|
||||
0xc2a00000, 0x5aa80000, 0xc0001006, 0xce0000f8, 0xc0001008, 0xce4000f8, 0xc000100a, 0xce8000f8,
|
||||
0x990055b8, 0xc1a0fffe, 0xc0000824, 0xc9840060, 0xc0004934, 0xca4000f8, 0xc2000000, 0xc2800002,
|
||||
0x990055f8, 0xda9800f8, 0xc61400f8, 0xc65800f8, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000,
|
||||
0x990056e0, 0xc000491a, 0xc94000f8, 0x00000000, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000,
|
||||
0xc0004922, 0xca001118, 0xc3c00000, 0xc3800000, 0xc0004930, 0xce023118, 0xc0004932, 0xcbc000d8,
|
||||
0xc2800000, 0xc000491e, 0xcfc000f8, 0xc0004862, 0xca800060, 0xc3a0001a, 0x5bb94000, 0xc6b80060,
|
||||
0xc000491c, 0xcf8000f8, 0x99005950, 0xc000491c, 0xc1400000, 0xc9420048, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xa8e2ffe8, 0xc2000000, 0xc1220002, 0xd90c00f8, 0xdf600038, 0x5e600080, 0x8400fff2,
|
||||
0xc000491c, 0xca0000f8, 0xc000491e, 0xca4000f8, 0x00000000, 0x00000000, 0x99005b78, 0xda1800f8,
|
||||
0xda5800f9, 0x00000000, 0xc2000000, 0xdf610048, 0x5e6001fe, 0x8800ffe8, 0xc0004916, 0xca8000f8,
|
||||
0xc2c00000, 0xdfec0048, 0xc2400000, 0x466d2000, 0x8400004a, 0x5ea80000, 0x8400003a, 0xc2600002,
|
||||
0x990062f0, 0xc000482e, 0xc94000f8, 0xc1800002, 0x80000030, 0xc2600000, 0x990062f0, 0xc000482c,
|
||||
0xc94000f8, 0xc1800002, 0xc2000068, 0xc6240078, 0xc0004930, 0xce400080, 0xc000491a, 0xc98000f8,
|
||||
0xc0004862, 0xc94000f8, 0x6d9c6000, 0x45d8e000, 0x59dc4c80, 0x990059d8, 0xd95800f8, 0xd99800f9,
|
||||
0xd9d400f8, 0x99005950, 0xc000491c, 0xc1400000, 0xc9420048, 0xc2000000, 0xdf600038, 0x5e600080,
|
||||
0x8400ffea, 0x00000000, 0xc000491c, 0xca0000f8, 0xc000491e, 0xca4000f8, 0x00000000, 0x00000000,
|
||||
0x99005b78, 0xda1800f8, 0xda5800f9, 0x00000000, 0x800010e8, 0x00000000, 0x990062f0, 0xc000482a,
|
||||
0xc94000f8, 0xc1800002, 0x800010b8, 0xc0004938, 0xcbc000f8, 0x00000000, 0x00000000, 0x6ff88000,
|
||||
0x6fd44000, 0x4395c000, 0x5bb84a00, 0x58380008, 0xca0000f8, 0x00000000, 0x00000000, 0xa6000382,
|
||||
0x00000000, 0xc0004938, 0xcbc000f8, 0xc3000000, 0x00000000, 0x6ff88000, 0x6fd44000, 0x4395c000,
|
||||
0x5bb84a00, 0x58380000, 0xcb002010, 0xc2000000, 0x58380008, 0xca020078, 0x5838000c, 0xcac000f8,
|
||||
0x5838000e, 0xca4000f8, 0xc000491a, 0xcf0000f8, 0xc0004930, 0xcec000f8, 0xc000493c, 0xce0000f8,
|
||||
0xc0004932, 0xce4000f8, 0x5e200000, 0x84000120, 0xc2800000, 0xa6fe00ba, 0x6f206000, 0x46310000,
|
||||
0x5a204c80, 0x5820000c, 0xca800020, 0x00000000, 0x00000000, 0x5ea80000, 0x840001f2, 0x00000000,
|
||||
0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0x990056e0, 0xc000491a, 0xc94000f8, 0x00000000,
|
||||
0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0xc0004930, 0xcac000f8, 0xc0004932, 0xca4000f8,
|
||||
0xc7ec1118, 0xc0004930, 0xcec000f8, 0x5838000c, 0xcec000f8, 0x58000002, 0xce4000f8, 0xc0004934,
|
||||
0xca0000f8, 0xc2400002, 0x6e642000, 0x6e642000, 0x76612000, 0x8400002a, 0xc2400002, 0x6e684000,
|
||||
0x58380008, 0xce804200, 0xa6000020, 0x6e682000, 0x58380008, 0xce802100, 0xc2400002, 0x6e642000,
|
||||
0x76612000, 0x840000ea, 0x58380008, 0xca0000f8, 0xc2800000, 0xc2400000, 0xa60200c0, 0xdba800f8,
|
||||
0x6f386000, 0x47b1c000, 0x5bb84c80, 0x58380004, 0xca400078, 0x58380002, 0xca800078, 0x00000000,
|
||||
0xdeb800f8, 0x46a54000, 0x88000060, 0x00000000, 0xc0004824, 0xca0000f8, 0xc2400002, 0x6e640000,
|
||||
0x5a200002, 0xce0000f8, 0x58380008, 0xce400000, 0x80000018, 0x00000000, 0x80000048, 0xc0004934,
|
||||
0xca0000f8, 0x00000000, 0x00000000, 0xa6020c6a, 0x00000000, 0x00000000, 0x80000c98, 0xc2800000,
|
||||
0xc2000200, 0xc240001a, 0xdf690048, 0x46294000, 0x46a54000, 0x8800ffd2, 0xc2000006, 0xc2600982,
|
||||
0x5a643b6e, 0x5838000a, 0xca8000f8, 0xc0001006, 0xce0000f8, 0xc0001008, 0xce4000f8, 0xc000100a,
|
||||
0xce8000f8, 0x990055b8, 0xc1a0fffe, 0xc0000824, 0xc9840060, 0xc2000000, 0xc0004930, 0xca02e008,
|
||||
0x58380026, 0xca4000f8, 0x00000000, 0xc2800000, 0x990055f8, 0xda9800f8, 0xc61400f8, 0xc65800f8,
|
||||
0xc0004934, 0xca0000f8, 0x00000000, 0x00000000, 0xa6020022, 0x00000000, 0x00000000, 0x80000318,
|
||||
0xc0004938, 0xcbc000f8, 0xc0004878, 0xc80400f8, 0x6c908000, 0x45088000, 0x45088000, 0x40100000,
|
||||
0xca0000f8, 0xc42400f8, 0x00000000, 0x58240018, 0xca0000f8, 0x6ff88000, 0x6fd44000, 0x4395c000,
|
||||
0x5bb84a00, 0xc3000000, 0xc3400002, 0xc2c00000, 0xc62c0078, 0xc6270038, 0xc0004940, 0xce400038,
|
||||
0xc6260038, 0xc0004942, 0xce400038, 0xc000493c, 0xca0000f8, 0x5eec0000, 0x8400018a, 0x5a6c0010,
|
||||
0x46254000, 0x88000190, 0x5a600052, 0x46e54000, 0x88000178, 0x58380006, 0xca8000f8, 0xc0004940,
|
||||
0xca0000f8, 0xc2400000, 0xc6a70038, 0x7e412000, 0x76612000, 0xc2000000, 0xc6a10038, 0x46250000,
|
||||
0x84000138, 0xc0004942, 0xca0000f8, 0xc2400000, 0xc6a60038, 0x7e412000, 0x76612000, 0xc2000000,
|
||||
0xc6a00038, 0x58380002, 0xca8000f8, 0x46250000, 0x840000e8, 0xc2400000, 0xc6a60078, 0x466d0000,
|
||||
0x880000da, 0xc2400000, 0xc6a40078, 0x58380008, 0xca8000f8, 0x46e50000, 0x880000ba, 0x00000000,
|
||||
0xa6820018, 0x00000000, 0xc7700b00, 0xa6840098, 0x00000000, 0xc7700a00, 0x80000080, 0xc7700200,
|
||||
0xc000493c, 0xcac000f8, 0x80000060, 0xc7700300, 0xc000493c, 0xcac000f8, 0x80000040, 0xc7700900,
|
||||
0x80000030, 0xc7700800, 0x80000020, 0xc7700700, 0x80000010, 0xc7700500, 0xc0004944, 0xcf0000f8,
|
||||
0xc000493e, 0xcec000f8, 0xc0004938, 0xca4000f8, 0xc000493c, 0xcb8000f8, 0xc000493e, 0xcb4000f8,
|
||||
0xc3000000, 0x6e608000, 0x6e544000, 0x42150000, 0x5a204a00, 0x5aa00008, 0x58200004, 0xcb000078,
|
||||
0xc0004934, 0xca0000f8, 0xc2400000, 0xc0004930, 0xca42e008, 0xc3c00018, 0xa6020098, 0x00000000,
|
||||
0x43656000, 0x47ad0000, 0x88000050, 0x46f96000, 0x6ee04010, 0x5be00004, 0xc2000000, 0xc6e00008,
|
||||
0x5e200000, 0x84000042, 0x5bfc0002, 0x80000030, 0xc3c00004, 0x5a2c0008, 0x47a10000, 0x88000012,
|
||||
0x5fb80008, 0x6fe04000, 0x42390000, 0x47212000, 0x88000068, 0xc2400000, 0xc0004930, 0xca42e008,
|
||||
0xc2060002, 0xc68000f8, 0xce006300, 0x6fe04000, 0x4721c000, 0x5f700010, 0x4765a000, 0xc2000000,
|
||||
0xc6340008, 0xc25a000a, 0xc000491a, 0xca401c18, 0xc2800000, 0xc0004932, 0xca8000d8, 0xc0004862,
|
||||
0xca400060, 0x6fa04010, 0x42290000, 0xc000491e, 0xce0000f8, 0xc7e41048, 0xc000491c, 0xce4000f8,
|
||||
0x6fe04000, 0x43a1c000, 0xc000493c, 0xcf8000f8, 0xc000493e, 0xcf4000f8, 0xc000493a, 0xcfc000f8,
|
||||
0x80000008, 0x00000000, 0x00000000, 0x00000000, 0xc2000000, 0xdce000f8, 0xa622ffd8, 0xc1220002,
|
||||
0xd90c00f8, 0xc0004938, 0xcbc000f8, 0xc0004944, 0xcb4000f8, 0xc0004862, 0xcb0000f8, 0xc0004934,
|
||||
0xca0000f8, 0x6ff88000, 0x6fd44000, 0x4395c000, 0x5bb84a00, 0xa6020268, 0xc2400000, 0x58380008,
|
||||
0xca406000, 0xdfe800f8, 0xc2218e08, 0x5a21baf6, 0x46a14000, 0x84000022, 0xc2080002, 0x7361a000,
|
||||
0x80000058, 0x5e640000, 0x84000022, 0xc20c0002, 0x7361a000, 0x80000030, 0xc2000000, 0xc760e710,
|
||||
0xc7604218, 0x5e200000, 0x84000272, 0xc2200002, 0xc0004930, 0xce021000, 0x990062f0, 0xc0004828,
|
||||
0xc94000f8, 0xc1800002, 0x58380000, 0xca0000f8, 0x00000000, 0x00000000, 0xa6000132, 0xc0004940,
|
||||
0xca8000f8, 0xc0004942, 0xca4000f8, 0xc7600078, 0xc6a01838, 0xc6601038, 0xc000493a, 0xca4000f8,
|
||||
0xc0004934, 0xca8000f8, 0xc0007800, 0x40300000, 0x40240000, 0x5c000004, 0x5ec07a00, 0x88000012,
|
||||
0x5c000200, 0xce0000f8, 0x58000002, 0x5ec07a00, 0x88000012, 0x5c000200, 0xce8000f8, 0xc000493e,
|
||||
0xca0000f8, 0xc2400000, 0x5838000c, 0xce4000f8, 0x990062f0, 0xc0004830, 0xc94000f8, 0xc61800f8,
|
||||
0xc0004930, 0xc6100078, 0xcd000078, 0x800000a8, 0xc2400002, 0x58380008, 0xce400000, 0xc0004944,
|
||||
0xcf4000f8, 0x80000278, 0xc000493c, 0xca4000f8, 0xdfe800f8, 0x5a300018, 0xc0007800, 0x40200000,
|
||||
0xca0000f8, 0x58380008, 0xc6501078, 0xcd021078, 0x5838000a, 0xce8000f8, 0x58380026, 0xce0000f8,
|
||||
0xc0004944, 0xcf4000f8, 0x99005950, 0xc000491c, 0xc1400000, 0xc9420048, 0x80000038, 0x00000000,
|
||||
0x990062f0, 0xc0004826, 0xc94000f8, 0xc1800002, 0x8000fdd8, 0xc2000000, 0xc2400080, 0xdf600038,
|
||||
0xb624ffea, 0xc000491c, 0xca4000f8, 0xc000491e, 0xca8000f8, 0x99005b78, 0xda5800f8, 0xda9800f9,
|
||||
0x00000000, 0xc0004934, 0xca0000f8, 0x00000000, 0xc2800000, 0xa6020160, 0xc2400004, 0xc2000200,
|
||||
0xdf690048, 0x46294000, 0x46a54000, 0x8800ffda, 0x00000000, 0xc000491a, 0xc98000f8, 0xc0004862,
|
||||
0xc94000f8, 0x6d9c6000, 0x45d8e000, 0x59dc4c80, 0x990059d8, 0xd95800f8, 0xd99800f9, 0xd9d400f8,
|
||||
0x99005950, 0xc000491c, 0xc1400000, 0xc9420048, 0xc2000000, 0xc2400080, 0xdf600038, 0xb624ffea,
|
||||
0xc000491c, 0xca4000f8, 0xc000491e, 0xca8000f8, 0x99005b78, 0xda5800f8, 0xda9800f9, 0x00000000,
|
||||
0x58380008, 0xca4000f8, 0xc2000000, 0xce000018, 0xc2a1fffe, 0x5aa9fffe, 0xce021078, 0x5838000a,
|
||||
0xce8000f8, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc0000838, 0xc2500002, 0xce450800,
|
||||
0xc0004848, 0xcb8400f8, 0xc2000000, 0xc000082c, 0xca040028, 0x5fb80002, 0xc0004848, 0xcf8400f8,
|
||||
0x58880002, 0xb6080018, 0x00000000, 0xc0800000, 0xc0004844, 0xcc8400f8, 0x00000000, 0xc121fffe,
|
||||
0x5911fe14, 0x14100000, 0x8000ded8, 0xc2000000, 0xdf600038, 0x5e200080, 0x8400026a, 0x00000000,
|
||||
0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc000480c, 0xca0000f8, 0xc0004910, 0xca4000f8,
|
||||
0xc000492c, 0xca8000f8, 0xc0004968, 0xcac000f8, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000,
|
||||
0x76250000, 0x76290000, 0x76e16000, 0x840001c2, 0xc0004926, 0xca4000f8, 0xc201fffe, 0x76e16000,
|
||||
0x5a640002, 0x6ae50010, 0x5f200000, 0x8400001a, 0x6a250000, 0x80000010, 0xc6e000f8, 0x62014008,
|
||||
0xc0004926, 0xce8000f8, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc0004968, 0xca4000f8,
|
||||
0xc2000002, 0x6a290000, 0x7e010000, 0x76612000, 0xce4000f8, 0x00000000, 0xc121fffe, 0x5911fe14,
|
||||
0x14100000, 0x6eb4a000, 0x6e944000, 0x4755a000, 0x4769a000, 0x5b747000, 0x58340002, 0xc2000000,
|
||||
0xca0000d8, 0x5834002e, 0xc2400000, 0xca400078, 0x6eb0a000, 0x6ebc4000, 0x473d8000, 0x47298000,
|
||||
0x5b30302e, 0x5b300004, 0x6e642000, 0x4225e000, 0xc39a8024, 0xc7380060, 0xc6b81c18, 0x99005b78,
|
||||
0xdb9800f8, 0xdbd800f9, 0x00000000, 0xc2000000, 0xdf600038, 0x5e200080, 0x84000352, 0x00000000,
|
||||
0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc000490e, 0xca0000f8, 0xc00049a0, 0xca8000f8,
|
||||
0xc000492a, 0xca4000f8, 0xc000496a, 0xcb0000f8, 0xc0004956, 0xcac000f8, 0x00000000, 0xc121fffe,
|
||||
0x5911fe14, 0x14100000, 0x77218000, 0x77258000, 0x77298000, 0x8400029a, 0xc201fffe, 0x77218000,
|
||||
0x5aec0002, 0x6b2d0010, 0x5ea00000, 0x8400001a, 0x6a2d0000, 0x80000010, 0xc72000f8, 0x62016008,
|
||||
0xc0004956, 0xcec000f8, 0x6ef4a000, 0x6ed44000, 0x4755a000, 0x476da000, 0x5b747000, 0x58340000,
|
||||
0xc9c000f8, 0xc00049a0, 0xca0000f8, 0xc3000000, 0xc5f04018, 0xc2400000, 0xc5e50038, 0x7e412000,
|
||||
0x76250000, 0xce0000f8, 0xc0004980, 0x40300000, 0xcec000f8, 0xc161fffe, 0x5955fffe, 0x14140000,
|
||||
0x00000000, 0xc000496a, 0xca4000f8, 0xc2000002, 0x6a2d0000, 0x7e010000, 0x76612000, 0xce4000f8,
|
||||
0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0x6ef4a000, 0x6ed44000, 0x4755a000, 0x476da000,
|
||||
0x5b747000, 0x5834000e, 0xc2000000, 0xca0000d8, 0x58340008, 0xc2400000, 0xca420078, 0x5834000c,
|
||||
0xc2800000, 0xca832010, 0x6e644010, 0x42250000, 0x4229e000, 0xc39a8008, 0x58340008, 0xcb809018,
|
||||
0x58340008, 0xc2800000, 0xca810010, 0x6ee0a000, 0x6ee44000, 0x46250000, 0x462d0000, 0x5a200008,
|
||||
0x5a203008, 0x42290000, 0xc6380060, 0xc6f81c18, 0x99005b78, 0xdb9800f8, 0xdbd800f9, 0x00000000,
|
||||
0xc000495a, 0xc84000f8, 0x00000000, 0xc3c00002, 0x787c2000, 0xcc4000f8, 0xc0001a1c, 0xca0000f8,
|
||||
0xc2400008, 0x6a452000, 0x76250000, 0x84000ec2, 0xc0000a28, 0xc3800000, 0xcb840028, 0xc0000a14,
|
||||
0xc3400000, 0xcb440028, 0xc0004880, 0xcb0400f8, 0xb7b40072, 0x58041802, 0xcac000f8, 0xa7000078,
|
||||
0x00000000, 0x00000000, 0xa6c8d808, 0xc1000000, 0xc6d00018, 0xc0004980, 0x40100000, 0xca8000f8,
|
||||
0x80000070, 0x00000000, 0x00000000, 0x00000000, 0x8000d7b8, 0x00000000, 0xc2800000, 0xc7282018,
|
||||
0xc000490e, 0xca4000f8, 0x6be9e000, 0x00000000, 0x767d2000, 0x8400d770, 0x6ea0a000, 0x6e944000,
|
||||
0x46150000, 0x46290000, 0x5a207000, 0x5820000c, 0xca0000f8, 0xc0004946, 0xce8000f8, 0xa62203a8,
|
||||
0x00000000, 0xc2200060, 0xc0004948, 0xce000008, 0xce021038, 0xc240000a, 0xc000494a, 0xce4000f8,
|
||||
0xc2b60002, 0xc0004964, 0xce837b00, 0x99005e48, 0xc00048a0, 0xc88400f8, 0x00000000, 0xc0004946,
|
||||
0xcbc000f8, 0x00000000, 0x00000000, 0x6ff8a000, 0x6fd44000, 0x4795c000, 0x47bdc000, 0x5bb87000,
|
||||
0x99005c08, 0xdbd800f8, 0xdb9800f9, 0x00000000, 0x99005950, 0xc000491c, 0xc1400000, 0xc9420048,
|
||||
0xc000491c, 0x99005e00, 0xc94000f9, 0xc98000f8, 0x00000000, 0x99005b78, 0xd95800f8, 0xd99800f9,
|
||||
0x00000000, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0x99005840, 0xdbd800f8, 0xdb9800f9,
|
||||
0xc7d800f8, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0x6ff8a000, 0x6fd44000, 0x4795c000,
|
||||
0x47bdc000, 0x5bb87000, 0x58380010, 0xca0000f8, 0xc0004874, 0xc80400f8, 0x6c908000, 0x45088000,
|
||||
0x45088000, 0x40100000, 0xca4000f8, 0xc43400f8, 0x00000000, 0xc74000f8, 0xce0000f8, 0xc161fffe,
|
||||
0x5955fffe, 0x14140000, 0x00000000, 0xc000490e, 0xca4000f8, 0xc2800002, 0x6abd4000, 0x72692000,
|
||||
0xce4000f8, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0x990062f0, 0xc0004836, 0xc94000f8,
|
||||
0xc1800002, 0x00000000, 0x00000000, 0x00000000, 0xa8e2ffe8, 0x00000000, 0x58380000, 0xc90000f8,
|
||||
0xc00049a0, 0xca0000f8, 0xc2800000, 0xc5290038, 0x72290000, 0xce0000f8, 0xc1220002, 0xd90c00f8,
|
||||
0xc2000000, 0xc0000a14, 0xca040028, 0xc0000a28, 0xc2500002, 0xce450800, 0x58880002, 0xb6080018,
|
||||
0xc00048a0, 0xc0800000, 0xcc8400f8, 0x8000d380, 0xc0004946, 0xcbc000f8, 0xc161fffe, 0x5955fffe,
|
||||
0x14140000, 0x00000000, 0xc000490e, 0xca4000f8, 0xc2800002, 0x6abd4000, 0x72692000, 0xce4000f8,
|
||||
0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0x6ff8a000, 0x6fd44000, 0x4795c000, 0x47bdc000,
|
||||
0x5bb87000, 0x58380008, 0xca0000f8, 0x5838000c, 0xca4000f8, 0xc3400000, 0xc6340000, 0xc000494e,
|
||||
0xcf4000f8, 0xc2800000, 0xc62a0078, 0xc3000000, 0xc6308018, 0x6f304000, 0x43298000, 0xc000493c,
|
||||
0xcf0000f8, 0xc2c00000, 0xc66c0078, 0xc0004950, 0xcec000f8, 0xc2800000, 0xc66ae020, 0xc0004954,
|
||||
0xce8000f8, 0x5f740000, 0x840001a0, 0x5e300028, 0x46e12000, 0x8400016a, 0x46e12000, 0x88000132,
|
||||
0x5e300018, 0x46e12000, 0x8800002a, 0x46e12000, 0x84000042, 0x00000000, 0x800000c0, 0x00000000,
|
||||
0x99005f88, 0xdbd800f8, 0xdb9800f9, 0xc78000f8, 0xc3400002, 0xc000494e, 0xcf4000f8, 0xc161fffe,
|
||||
0x5955fffe, 0x14140000, 0x00000000, 0xc000490e, 0xca4000f8, 0xc2800002, 0x6abd4000, 0x7e814000,
|
||||
0x76692000, 0xce4000f8, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0xc2200060, 0xc0004948,
|
||||
0xce021038, 0xc2000000, 0xc000494c, 0xce0000f8, 0x80000080, 0x00000000, 0x99005f88, 0xdbd800f8,
|
||||
0xdb9800f9, 0xc78000f8, 0x99006188, 0xdbd800f8, 0xdb9800f9, 0xc78000f8, 0xc2200058, 0xc0004948,
|
||||
0xce021038, 0xc2000002, 0xc000494c, 0xce0000f8, 0xc2000006, 0xc0001006, 0xce0000f8, 0x5838000a,
|
||||
0xca4000f8, 0xc2200982, 0x5a203b6e, 0xc0001008, 0xce0000f8, 0xc000100a, 0xce4000f8, 0xc0004954,
|
||||
0xca8000f8, 0xc200000c, 0xc000494a, 0xce0000f8, 0xc0004948, 0xce800008, 0xc2b60000, 0xc0004964,
|
||||
0xce8000f8, 0x99005e48, 0xc00048a0, 0xc88400f8, 0x00000000, 0xc0004946, 0xcbc000f8, 0xc000494c,
|
||||
0xca0000f8, 0x6ff8a000, 0x6fd44000, 0x4795c000, 0x47bdc000, 0x5bb87000, 0x5e200000, 0x840000fa,
|
||||
0x00000000, 0x99005c08, 0xdbd800f8, 0xdb9800f9, 0x00000000, 0x99005950, 0xc000491c, 0xc1400000,
|
||||
0xc9420048, 0xc000491c, 0x99005e00, 0xc94000f9, 0xc98000f8, 0x00000000, 0x99005b78, 0xd95800f8,
|
||||
0xd99800f9, 0x00000000, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0x99005840, 0xdbd800f8,
|
||||
0xdb9800f9, 0xc7d800f8, 0x00000000, 0xc121fffe, 0x5911fe14, 0x14100000, 0xc000493c, 0xca8000f8,
|
||||
0xc000494e, 0xcac000f8, 0xc3000018, 0xc3400006, 0x5e200000, 0x8400002a, 0xc2800000, 0xc2c00000,
|
||||
0xc300001e, 0xc3400000, 0xc6ac1078, 0xc72c0418, 0xc76c0810, 0x58380010, 0xca8000f8, 0x58380008,
|
||||
0xcec000f8, 0xc6280100, 0xc0004874, 0xc80400f8, 0x6c908000, 0x45088000, 0x45088000, 0x40100000,
|
||||
0xcb0000f8, 0xc43400f8, 0x00000000, 0xc74000f8, 0xce8000f8, 0xc0004952, 0xce8000f8, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xa8e2ffe8, 0x00000000, 0xc000494c, 0xca0000f8, 0xc0004950, 0xcac000f8,
|
||||
0x5e200000, 0x8400006a, 0xdfe800f8, 0x7e814000, 0x5834001a, 0xce8000f8, 0x990062f0, 0xc0004834,
|
||||
0xc94000f8, 0xc1800002, 0x990062f0, 0xc0004838, 0xc94000f8, 0xc6d800f8, 0xc1220002, 0xd90c00f8,
|
||||
0x5e200000, 0x84000040, 0x5838002c, 0xcb0000f8, 0xdfe800f8, 0x00000000, 0x58380014, 0xcf0000f8,
|
||||
0x80000058, 0xc2a1fffe, 0x5aa9fffe, 0x58380000, 0xc90000f8, 0xc00049a0, 0xcb0000f8, 0xc2c00000,
|
||||
0xc52d0038, 0x732d8000, 0xcf0000f8, 0x5838000a, 0xce8000f8, 0xc3000000, 0xc0000a14, 0xcb040028,
|
||||
0xc2d00002, 0xc0000a28, 0xcec50800, 0xc000494e, 0xca8000f8, 0x58880002, 0xb4b00018, 0xc00048a0,
|
||||
0xc0800000, 0xcc8400f8, 0x5ea80000, 0x8400017a, 0x5e200000, 0x84000168, 0xc000493c, 0xca8000f8,
|
||||
0x00000000, 0x00000000, 0x5aa80060, 0xce8000f8, 0x99005f88, 0xdbd800f8, 0xdb9800f9, 0xc78000f8,
|
||||
0x99006188, 0xdbd800f8, 0xdb9800f9, 0xc78000f8, 0x58380000, 0xcac000f8, 0x00000000, 0xc2000000,
|
||||
0xc6e04018, 0xc0004952, 0xcac000f8, 0x58380000, 0xca8000f8, 0xc30c0002, 0xc6300018, 0xa6800098,
|
||||
0x00000000, 0x00000000, 0xc161fffe, 0x5955fffe, 0x14140000, 0x00000000, 0xc0001800, 0xca0000f8,
|
||||
0x00000000, 0x00000000, 0xa60cffea, 0xc6f00500, 0xc6b0c400, 0xcf0000f8, 0x00000000, 0xc121fffe,
|
||||
0x5911fe14, 0x14100000, 0x8000c9c8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000c960,
|
||||
0xdcbc00f9, 0x5ffc0000, 0x84000052, 0xc3800002, 0xdb8800f9, 0x5ffc0004, 0x8400c292, 0xc3800000,
|
||||
0xdb8800f9, 0xc3ce0002, 0xc0000800, 0xcfc0e700, 0xc3e1fffe, 0x597dfffe, 0x593dfe14, 0x94000001,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xc000487c, 0xc80400f8, 0x00000000, 0x00000000, 0x40080000,
|
||||
0xcbc000f8, 0xc43800f8, 0x00000000, 0xc000480e, 0xca0000f8, 0xc0004858, 0xcb4400f8, 0x00000000,
|
||||
0x00000000, 0x47610000, 0x880000b0, 0x00000000, 0xa7c00048, 0xc0004854, 0xc1000002, 0xcd0400f8,
|
||||
0xc11c0000, 0xc000082c, 0xcd05ce00, 0x800000d8, 0x00000000, 0xa7d20138, 0x00000000, 0xc7e14040,
|
||||
0xc2400000, 0xc6246028, 0xc200006a, 0x46250000, 0xc6240030, 0xc0000810, 0xce440030, 0x8000ff70,
|
||||
0xc2000000, 0xc0000808, 0xca040010, 0xc11c0000, 0xc000082c, 0xcd05ce00, 0x5a200002, 0x5e600010,
|
||||
0x84000010, 0xc2000000, 0xc0000808, 0xce040010, 0xc3400000, 0x80000028, 0xc1200002, 0xc0000818,
|
||||
0xcd061000, 0x5b740002, 0xc0004858, 0xcf4400f8, 0x99005590, 0xc0004848, 0xc94400f8, 0xc1800000,
|
||||
0xc11c0002, 0xc000082c, 0xcd05ce00, 0x80000600, 0x5b740002, 0xc0004858, 0xcf4400f8, 0xc78000f8,
|
||||
0xc13c0002, 0xcd03de00, 0xc0004848, 0xc94400f8, 0xc1800000, 0xc000082c, 0xc9840028, 0x59540002,
|
||||
0xc0004848, 0xcd4400f8, 0x58880002, 0xb4980580, 0x00000000, 0xc0800000, 0x80000568, 0xc000487c,
|
||||
0xc80400f8, 0x00000000, 0x00000000, 0x40080000, 0xcbc000f8, 0xc42800f8, 0x00000000, 0xa7c00130,
|
||||
0xc000484c, 0xca0400f8, 0xc2400000, 0xc0001aec, 0xca440018, 0x5a200002, 0xc000484c, 0xce0400f8,
|
||||
0xb624008a, 0xc68000f8, 0xc13c0002, 0xcd03de00, 0xc0004848, 0xc94400f8, 0xc1800000, 0xc000082c,
|
||||
0xc9840028, 0x59540002, 0xc0004848, 0xcd4400f8, 0x58880002, 0xb4980470, 0x00000000, 0xc0800000,
|
||||
0x80000458, 0xc0004854, 0xc1000004, 0xcd0400f8, 0xc0000820, 0xc2000002, 0xce0400f8, 0xc2000000,
|
||||
0xc000484c, 0xce0400f8, 0xc0004858, 0xce0400f8, 0x8000ff28, 0xc0004854, 0xc1000000, 0xcd0400f8,
|
||||
0xc11c0000, 0xc000082c, 0xcd05ce00, 0x99005590, 0xc0004848, 0xc94400f8, 0xc1800000, 0xc1200000,
|
||||
0xc0000818, 0xcd061000, 0xc11c0002, 0xc000082c, 0xcd05ce00, 0xc2000000, 0xc000484c, 0xce0400f8,
|
||||
0x80000358, 0xc0001ac0, 0xcb8400f8, 0xc000487c, 0xc80400f8, 0x00000000, 0x00000000, 0x40080000,
|
||||
0xcbc000f8, 0xc42800f8, 0x00000000, 0x00000000, 0xc68000f8, 0xc13c0000, 0xcd03de00, 0xa780024a,
|
||||
0x00000000, 0x00000000, 0xa7c0020a, 0x00000000, 0xc0001b00, 0xc2060006, 0xce046308, 0xa7e801c2,
|
||||
0x00000000, 0xc0004850, 0xca0400f8, 0xc2400000, 0xc0001aec, 0xca448018, 0x5a200002, 0xc0004850,
|
||||
0xce0400f8, 0xb62400aa, 0x00000000, 0xc68000f8, 0xc13c0002, 0xcd03de00, 0xc0001acc, 0xc2000002,
|
||||
0xce040000, 0xc0004848, 0xc94400f8, 0xc1800000, 0xc000082c, 0xc9840028, 0x59540002, 0xc0004848,
|
||||
0xcd4400f8, 0x58880002, 0xb49801c8, 0x00000000, 0xc0800000, 0x800001b0, 0xc0004854, 0xc1000000,
|
||||
0xcd0400f8, 0xc11c0000, 0xc000082c, 0xcd05ce00, 0x99005590, 0xc0004848, 0xc94400f8, 0xc1800000,
|
||||
0xc2000000, 0xc0000820, 0xce0400f8, 0xc1200000, 0xc0000818, 0xcd061000, 0xc11c0002, 0xc000082c,
|
||||
0xcd05ce00, 0xc0004850, 0xce0400f8, 0xc2000002, 0xc0001acc, 0xce040008, 0x800000e8, 0xc2000002,
|
||||
0xc0004850, 0xce0400f8, 0x8000fe88, 0xc2000000, 0xc0004850, 0xce0400f8, 0xa7e60032, 0x00000000,
|
||||
0xc2000002, 0xc0001b00, 0xce040000, 0x8000fe70, 0x00000000, 0xa7860052, 0x00000000, 0xc68000f8,
|
||||
0xc13c0002, 0xcd03de00, 0xc2020002, 0xc7e2a540, 0xc0001b00, 0xce0400f8, 0x8000fe18, 0xc2040002,
|
||||
0xc0001b00, 0xce044200, 0x8000fdf8, 0xc2c80002, 0x6ac56000, 0xdacc00f8, 0xc0004854, 0xcb4400f8,
|
||||
0xc0004848, 0xcb8400f8, 0xc0000838, 0xc3c00000, 0xcbc40028, 0x5ef40004, 0x84000022, 0xc3000000,
|
||||
0xc0001acc, 0xcf042100, 0x47f98000, 0x8400002a, 0x47f98000, 0x88000030, 0xc1006e8c, 0x8000b6c8,
|
||||
0xc0004840, 0xcc8400f8, 0x8000f6b0, 0xc0001ac0, 0xcac400f8, 0xc0004854, 0xcb4400f8, 0xa6c0fbd2,
|
||||
0x00000000, 0x5ef40000, 0x8400f70a, 0x5ef40002, 0x8400f99a, 0x5ef40004, 0x8400fb9a, 0xc1006ce8,
|
||||
0x8000b640, 0x00000000, 0xc0800000, 0xdf4b0038, 0xc0004900, 0xcb8000f8, 0xc2000000, 0xc000490a,
|
||||
0xa78000d0, 0xcbc000f8, 0xc1000000, 0xd90000f9, 0xc1000002, 0xd90c00f8, 0x6ff46000, 0x477da000,
|
||||
0x5b744c80, 0xc2400000, 0x58340004, 0xca400078, 0xc0004900, 0xce000000, 0x5a640002, 0x58340004,
|
||||
0xc6500078, 0xcd000078, 0xc0004914, 0xca4000f8, 0xc2000002, 0x6a3d0000, 0x72612000, 0xce4000f8,
|
||||
0xc0000408, 0xce0000f8, 0xa78200d8, 0xc0004908, 0xcbc000f8, 0xc1000000, 0xd90000f9, 0xc1000002,
|
||||
0xd90c00f8, 0x6ff4a000, 0x6fd44000, 0x4755a000, 0x477da000, 0x5b747000, 0xc2800000, 0x58340006,
|
||||
0xca800078, 0xc2000000, 0xc0004900, 0xce002100, 0x5ea80002, 0x58340006, 0xc6900078, 0xcd000078,
|
||||
0x5a7c0020, 0xc2000002, 0x6a250000, 0xc0000408, 0xce0000f8, 0xdca800f9, 0x5ea80000, 0x8400b4b0,
|
||||
0x00000000, 0xa4800230, 0x00000000, 0xc3c00000, 0xc000140e, 0xcbc00018, 0xc3400000, 0xc2400000,
|
||||
0x6ff86000, 0x47bdc000, 0x5bb84c80, 0x58380008, 0xcb400078, 0x58380006, 0xca400078, 0x5f740002,
|
||||
0x58380008, 0xc7500078, 0xcd000078, 0xc2000000, 0x58380004, 0xca020078, 0xc3000000, 0x5838000c,
|
||||
0xcb000020, 0x5a640002, 0x46610000, 0x84000010, 0xc2400000, 0x58380006, 0xc6500078, 0xcd000078,
|
||||
0xc2000000, 0x5838000a, 0xca020078, 0x5b300002, 0x5838000c, 0xc7100020, 0xcd000020, 0xc2420020,
|
||||
0x5a200004, 0x46252000, 0x84000010, 0xc2000000, 0x5838000a, 0xc6101078, 0xcd021078, 0xc0004966,
|
||||
0xca4000f8, 0xc2000002, 0x6a3d0000, 0x72612000, 0xce4000f8, 0x5f740000, 0x84000040, 0xc0004912,
|
||||
0xca0000f8, 0xc2c00002, 0x6afd6000, 0x7ec16000, 0x762d0000, 0xce0000f8, 0x5f300020, 0x84000040,
|
||||
0xc0004924, 0xca0000f8, 0xc2c00002, 0x6afd6000, 0x7ec16000, 0x762d0000, 0xce0000f8, 0xa4820070,
|
||||
0xc2400000, 0xc000140e, 0xca408018, 0xc2000002, 0xc0004900, 0xce000000, 0xc000490a, 0xce4000f8,
|
||||
0xc1000000, 0xd90000f9, 0xd8400078, 0xc1000004, 0xd90000f9, 0xa4840270, 0x00000000, 0xc3c00000,
|
||||
0xc000140e, 0xcbc10018, 0xc2800000, 0xc2000000, 0x6ff8a000, 0x6fd44000, 0x4795c000, 0x47bdc000,
|
||||
0x5bb87000, 0x5838002e, 0xca800078, 0x58380006, 0xca020078, 0xc3400000, 0x5838002e, 0xcb420078,
|
||||
0x5aa80002, 0x46a10000, 0x84000010, 0xc2800000, 0x5838002e, 0xc6900078, 0xcd000078, 0x5f740002,
|
||||
0x5838002e, 0xc7501078, 0xcd021078, 0xc0004968, 0xca4000f8, 0xc2000002, 0x6a3d0000, 0x72612000,
|
||||
0xce4000f8, 0xc000492a, 0xca8000f8, 0x5e740000, 0x84000040, 0xc0004910, 0xca0000f8, 0xc2c00002,
|
||||
0x6afd6000, 0x7ec16000, 0x762d0000, 0xce0000f8, 0x6abd4010, 0xa68000ba, 0x00000000, 0x58380032,
|
||||
0xca0000f8, 0x58000002, 0xca4000f8, 0x5838000c, 0x00000000, 0xce0000f9, 0xce4000f8, 0xc000492a,
|
||||
0xca0000f8, 0xc2c00002, 0x6afd6000, 0x722d0000, 0xce0000f8, 0xc000492c, 0xca0000f8, 0xc2c00002,
|
||||
0x6afd6000, 0x722d0000, 0xce0000f8, 0x80000040, 0xc000492c, 0xca0000f8, 0xc2c00002, 0x6afd6000,
|
||||
0x7ec16000, 0x762d0000, 0xce0000f8, 0xa4880148, 0xc2c00000, 0xc000140e, 0xcac20018, 0xc000490e,
|
||||
0xca4000f8, 0xc2000002, 0x6a2d0000, 0x7e010000, 0x76612000, 0xce4000f8, 0xc000496a, 0xca4000f8,
|
||||
0xc2000002, 0x6a2d0000, 0x72612000, 0xce4000f8, 0x6ef0a000, 0x6ed44000, 0x47158000, 0x472d8000,
|
||||
0x5b307000, 0x58300000, 0xca0000f8, 0x00000000, 0xc2400002, 0x76612000, 0x84000072, 0x58300000,
|
||||
0xca4000f8, 0xc2800000, 0x00000000, 0xc6684018, 0xc24c0002, 0xc6a40018, 0xc624c400, 0x58300010,
|
||||
0xca400500, 0x00000000, 0xc0001800, 0xce4000f8, 0xa4860070, 0xc2400000, 0xc000140e, 0xca418018,
|
||||
0xc2020002, 0xc0004900, 0xce002100, 0xc0004908, 0xce4000f8, 0xc1000000, 0xd90000f9, 0xd8400078,
|
||||
0xc1000004, 0xd90000f9, 0xc0001408, 0xcc8000f8, 0xc10e0002, 0xd90c00f8, 0x8000edb0, 0xdfbc00f9,
|
||||
0xc000496e, 0x99006298, 0xc94000f8, 0xc7d800f8, 0x00000000, 0xc57000f8, 0x5ef00020, 0x88000148,
|
||||
0x6f346000, 0x4771a000, 0x5b744c80, 0x58340008, 0xc2400000, 0xca400078, 0x00000000, 0xc2000000,
|
||||
0x5a640002, 0xce400078, 0x58340004, 0xca000078, 0x00000000, 0x00000000, 0x5e200002, 0xce000078,
|
||||
0xc0004912, 0xca8000f8, 0xc2400002, 0x6a712000, 0x72a54000, 0xce8000f8, 0x5e200000, 0x84000052,
|
||||
0xc000480a, 0xca0000f8, 0xc0000408, 0xca8000f8, 0x76250000, 0x00000000, 0x72a14000, 0xce8000f8,
|
||||
0x80000038, 0xc0004914, 0xca0000f8, 0x7e412000, 0x00000000, 0x76250000, 0xce0000f8, 0x800000d0,
|
||||
0x6ef4a000, 0x6ed44000, 0x4755a000, 0x476da000, 0x5b747000, 0x5834002e, 0xc2400000, 0xca420078,
|
||||
0x00000000, 0xc2000000, 0x5a640002, 0xc6501078, 0xcd021078, 0x58340006, 0xca000078, 0x00000000,
|
||||
0x00000000, 0x5a200002, 0xce000078, 0xc0004910, 0xca4000f8, 0xc2000002, 0x6a2d0000, 0x72612000,
|
||||
0xce4000f8, 0xc2000002, 0x6a310000, 0xc000042a, 0xce0000f8, 0xc1040002, 0xd90c00f8, 0x00000000,
|
||||
0x8000eb20, 0x00000000, 0xc4980928, 0x9d000000, 0xc5580028, 0xc0000838, 0xcd8400f8, 0xc1440200,
|
||||
0xc1c03800, 0xc55c1070, 0xc000100e, 0x9d000000, 0xcd8000f8, 0xc000100c, 0xcdc000f8, 0xc0004862,
|
||||
0xc9c000f8, 0x00000000, 0x00000000, 0xd9d800f9, 0xc0007800, 0x401c0000, 0x5dc07a00, 0x88000012,
|
||||
0x5c000200, 0xcd8000f8, 0xc1f0000a, 0x715ca000, 0xdd9800f8, 0xdd9c00f9, 0x41d8e000, 0xc5d40260,
|
||||
0xc0001010, 0xcd4000f8, 0x6c9c8000, 0x45c8e000, 0x45c8e000, 0x59dc0004, 0xc1601260, 0xc5d40260,
|
||||
0x9d000000, 0xc0001012, 0xcd4000f8, 0x00000000, 0x00000000, 0xd95800f8, 0x6d586000, 0x4594c000,
|
||||
0x59984c80, 0xd99800f9, 0x5818000a, 0xc1800000, 0xc9800078, 0xc0006e00, 0x6d5ca000, 0x401c0000,
|
||||
0x40180000, 0xc94000f8, 0x58000002, 0x00000000, 0xc9c000f8, 0xc0004930, 0xcd4000f8, 0xc0004932,
|
||||
0xcdc000f8, 0x59980004, 0xc1c20020, 0xb59c0018, 0x00000000, 0xc1800000, 0xdd9c00f9, 0x581c000a,
|
||||
0xcd800078, 0x581c000c, 0xc1800000, 0xc9800020, 0xc1c00002, 0xdd9400f8, 0x69d4e000, 0x5d980002,
|
||||
0xcd800020, 0xc0004924, 0xc98000f8, 0x00000000, 0x9d000000, 0x00000000, 0x719cc000, 0xcd8000f8,
|
||||
0xc000492a, 0xc94000f8, 0xc1c00002, 0x69d8e000, 0x7dc0c000, 0x7558a000, 0xcd4000f8, 0xc000492c,
|
||||
0xc94000f8, 0xdd8000f9, 0x58000032, 0x755ca000, 0x84000090, 0xc94000f9, 0xc98000f8, 0xdd8000f9,
|
||||
0x5800000c, 0x00000000, 0xcd4000f9, 0xcd8000f8, 0xc000492c, 0xc94000f8, 0xc000492a, 0xc98000f8,
|
||||
0x715ca000, 0xc000492c, 0xcd4000f8, 0x719cc000, 0xc000492a, 0xcd8000f8, 0x9d000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xc0004862, 0xc98000f8, 0x00000000, 0xc1c00200, 0x4194c000, 0x459ce000,
|
||||
0x88000012, 0xc5d800f8, 0xc0004862, 0xcd8000f8, 0xc0001406, 0xc98000f8, 0xc1c00002, 0x9d000000,
|
||||
0xc5d80a00, 0xc5581048, 0xcd8000f8, 0xc0004930, 0xc98000f8, 0xc0004932, 0xc9c000f8, 0xc140000e,
|
||||
0xc5581c18, 0xdd9400f8, 0xc0007800, 0x40140000, 0x5d407a00, 0x88000012, 0x5c000200, 0xcd8000f8,
|
||||
0x58000002, 0x5d407a00, 0x88000012, 0x5c000200, 0xcdc000f8, 0xdd5400f8, 0xc1c00000, 0x58140006,
|
||||
0xc9c20078, 0xc1800000, 0x58140000, 0xc98000d8, 0x6ddc2000, 0xc000491e, 0x41d8e000, 0xcdc000f8,
|
||||
0xdd9800f8, 0xc1c00022, 0xc5d80d70, 0xdd9400f9, 0xc5581c18, 0xc000491c, 0xcd8000f8, 0xdd5400f8,
|
||||
0xc1c00000, 0x58140006, 0xc9c20078, 0xc1800000, 0x58140004, 0xc9820078, 0x00000000, 0x59dc0002,
|
||||
0x45d8c000, 0x84000010, 0xc1c00000, 0x9d000000, 0x58140006, 0xc5d81078, 0xcd821078, 0xc0004860,
|
||||
0xc94000f8, 0xc1820080, 0xc1d00002, 0x58147700, 0xd58000f8, 0x58000002, 0xd58000f9, 0x59540004,
|
||||
0xb5580018, 0xc0004860, 0xc1400000, 0xcd4000f8, 0xdd9800f9, 0x9d000000, 0xdd9400f8, 0xc0001404,
|
||||
0xcdc10800, 0xc1c00000, 0xc1800200, 0x5d980004, 0xdf5d0048, 0x459ca000, 0x8800fff2, 0xdd8000f9,
|
||||
0x5800000c, 0x00000000, 0xc94000f9, 0xc98000f8, 0xc1c00002, 0xc5d43f00, 0xc5d81e00, 0xc0004862,
|
||||
0xc9c000f8, 0x00000000, 0x00000000, 0x581c7800, 0x5dc07a00, 0x88000012, 0x5c000200, 0xcd4000f8,
|
||||
0x58000002, 0x5dc07a00, 0x88000012, 0x5c000200, 0xcd8000f8, 0xc0004862, 0xc9c000f8, 0x00000000,
|
||||
0xc15004c0, 0xc5d40060, 0xdd9c00f8, 0xc5d41c18, 0xc1c00000, 0xdd8000f9, 0x58000030, 0xc9c00078,
|
||||
0xdd8000f9, 0x58000002, 0xc98000f8, 0x6ddc2000, 0xc000491c, 0x41d8e000, 0xcd4000f9, 0xcdc000f8,
|
||||
0xdd9400f9, 0xc1c00000, 0x58140030, 0xc9c00078, 0xc1800000, 0x58140006, 0xc9820078, 0x00000000,
|
||||
0x59dc0002, 0x45d8c000, 0x84000010, 0xc1c00000, 0x9d000000, 0x58140030, 0xc5d80078, 0xcd800078,
|
||||
0xc1c00000, 0xdf5c0038, 0x5ddc0080, 0x8400ffea, 0x00000000, 0x9d000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xc160fffe, 0xc0000a10, 0xc9440060, 0xc1a0fffe, 0x59983008, 0xc000100c, 0xcd4000f8,
|
||||
0xc000100e, 0xcd8000f8, 0xc0004964, 0xc98000f8, 0x00000000, 0xc170000a, 0x7158a000, 0x6c988000,
|
||||
0x4588c000, 0x4588c000, 0x59980004, 0xc5940270, 0xc0001010, 0xcd4000f8, 0xc0004946, 0xc94000f8,
|
||||
0x00000000, 0x00000000, 0x6d58a000, 0x6d5c4000, 0x459cc000, 0x4594c000, 0xc000494a, 0xc94000f8,
|
||||
0xc0004948, 0xc9c000f8, 0x4194c000, 0xc1400012, 0xc55c1818, 0x9d000000, 0xc59c0268, 0xc0001012,
|
||||
0xcdc000f8, 0xc1400000, 0x58000012, 0xc9410038, 0xc0004950, 0xc9c000f8, 0xc55800f8, 0xc5940838,
|
||||
0xc5581078, 0xd99400f8, 0xc000493c, 0xc94000f8, 0xc0004954, 0xc98000f8, 0x59dc00a8, 0x45d4e000,
|
||||
0x41d8e000, 0x5d5c0030, 0x88000010, 0xc1c00030, 0xc1800000, 0xc5d84028, 0xc1400000, 0xc5d40008,
|
||||
0x5dd40002, 0x84000072, 0x5dd40004, 0x8400009a, 0x5dd40006, 0x840000c2, 0x5dd80026, 0x840000ea,
|
||||
0xdd5400f8, 0xdd8000f9, 0x58000008, 0x40180000, 0xcd4000f8, 0x59980002, 0x8000ffc0, 0xdd5400f8,
|
||||
0xdd8000f9, 0x58000008, 0x40180000, 0xcd4000b8, 0x59980002, 0x8000ff88, 0xdd5400f8, 0xdd8000f9,
|
||||
0x58000008, 0x40180000, 0xcd400078, 0x59980002, 0x8000ff50, 0xdd5400f8, 0xdd8000f9, 0x58000008,
|
||||
0x40180000, 0xcd400038, 0x59980002, 0x8000ff18, 0x00000000, 0x9d000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x58000012, 0xc94000f8, 0xc0004954, 0xc9c000f8, 0xc0004950, 0xc9400078, 0xdd8000f9,
|
||||
0x58000028, 0x5d9c0000, 0x84000052, 0x5d9c0002, 0x84000052, 0x5d9c0004, 0x8400006a, 0xc55b0038,
|
||||
0xc55c08b8, 0xcd800039, 0xcdc108b8, 0x80000060, 0xcd4000f8, 0x80000050, 0xc55900b8, 0xc55c1838,
|
||||
0xcd8000b9, 0xcdc31838, 0x80000028, 0xc55a0078, 0xc55c1078, 0xcd800079, 0xcdc21078, 0x9d000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x59540002, 0x6994e018, 0x61c0c008, 0x4194a000, 0x5d940040,
|
||||
0x88000012, 0xc59400f8, 0x9d000000, 0xcd4000f8, 0x00000000, 0x00000000, 0x9d000000, 0x4158a000,
|
||||
0xcd4000f8, 0x00000000,
|
||||
};
|
||||
|
||||
static unsigned int firmware_binary_data[] = {
|
||||
};
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_AR9_H
|
||||
611
package/system/ltq-dsl/src/ifxmips_atm_fw_ar9_retx.h
Normal file
611
package/system/ltq-dsl/src/ifxmips_atm_fw_ar9_retx.h
Normal file
@@ -0,0 +1,611 @@
|
||||
#ifndef IFXMIPS_ATM_FW_AR9_H
|
||||
#define IFXMIPS_ATM_FW_AR9_H
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_ar9.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 22 OCT 2007
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (PP32 Firmware)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 22 OCT 2007 Xu Liang Initiate Version, v00.01
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#define VER_IN_FIRMWARE 1
|
||||
|
||||
#define ATM_FW_VER_MAJOR 0
|
||||
#define ATM_FW_VER_MINOR 15
|
||||
|
||||
|
||||
static unsigned int firmware_binary_code[] = {
|
||||
0x800004B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000FFE0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC1000002, 0xD90C00F8, 0xC2000002, 0xDA0800F9, 0xC0001B50, 0x8C100000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xC2000000, 0xDA0800F9, 0x80006030, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80006008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC1001DA6, 0x8D3C0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80005F08, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400000, 0xC0004840, 0xC88400F8, 0xC2001AEE, 0x8E100000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400002, 0xC0004840, 0xC88400F8, 0xC2001AEE, 0x8E100000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3C00004, 0xDBC800F9, 0xC10C0002, 0xD90C00F8, 0x8000FEE0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC10E0002, 0xD90C00F8, 0xC0004808, 0xC84000F8, 0xC2001B4C, 0x8E100000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x900004D9, 0x00000000, 0x00000000, 0x00000000, 0x90CC0481,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC3E0A252, 0x5BFC001E, 0xC0004002, 0xCFC000F8, 0xC3C00000,
|
||||
0xDBC800F9, 0xC1400008, 0xC1900000, 0x71588000, 0x14100100, 0xC140000A, 0xC1900002, 0x71588000,
|
||||
0x14100100, 0xC140000C, 0xC1900004, 0x71588000, 0x14100100, 0xC1400004, 0xC1900006, 0x71588000,
|
||||
0x14100100, 0xC1400006, 0xC1900008, 0x71588000, 0x14100100, 0xC140000E, 0xC190000A, 0x71588000,
|
||||
0x14100100, 0xC1400000, 0xC190000C, 0x71588000, 0x14100100, 0xC1400002, 0xC190000E, 0x71588000,
|
||||
0x14100100, 0xC0400000, 0xC11C0000, 0xC000082C, 0xCD05CE00, 0xC11C0002, 0xC000082C, 0xCD05CE00,
|
||||
0xC0400002, 0xC11C0000, 0xC000082C, 0xCD05CE00, 0xC0000824, 0x00000000, 0xCBC000F9, 0xCB8000F9,
|
||||
0xCB4000F9, 0xCB0000F8, 0xC0004878, 0x5BFC4000, 0xCFC000F9, 0x5BB84000, 0xCF8000F9, 0x5B744000,
|
||||
0xCF4000F9, 0x5B304000, 0xCF0000F8, 0xC0000A10, 0x00000000, 0xCBC000F9, 0xCB8000F8, 0xC0004874,
|
||||
0x5BFC4000, 0xCFC000F9, 0x5BB84000, 0xCF8000F8, 0xC30001FE, 0xC000140A, 0xCF0000F8, 0xC3000000,
|
||||
0x7F018000, 0xC000042E, 0xCF0000F8, 0xC000040E, 0xCF0000F8, 0xC3C1FFFE, 0xC000490E, 0xCFC00078,
|
||||
0xC000492C, 0xCFC00078, 0xC0004924, 0xCFC00038, 0xC0004912, 0xCFC00038, 0xC0004966, 0xCFC00038,
|
||||
0xC0004968, 0xCFC00078, 0xC000496A, 0xCFC00078, 0xC3C00000, 0xC2800020, 0xC3000000, 0x7F018000,
|
||||
0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0x5838000A, 0xCF0000F8, 0x5BFC0002, 0xB7E8FFC8,
|
||||
0x00000000, 0xC3C00000, 0xC2800010, 0x6FF86000, 0x47BDC000, 0x5BB84C80, 0xC3400000, 0x58380004,
|
||||
0xCB420078, 0x00000000, 0x58380008, 0xCF400078, 0x5BFC0002, 0xB7E8FFB0, 0x00000000, 0xC3C00000,
|
||||
0xC2800020, 0xC348001E, 0xC3000000, 0x7F018000, 0x6FF8A000, 0x6FD44000, 0x4795C000, 0x47BDC000,
|
||||
0x5BB87000, 0x58380008, 0xCF408418, 0x5838000A, 0xCF0000F8, 0x5BFC0002, 0xB7E8FFB0, 0x00000000,
|
||||
0x00000000, 0xC0004816, 0xC3C00000, 0xCBC00078, 0x00000000, 0x00000000, 0xC1000000, 0xD90400F9,
|
||||
0xDBC40078, 0xC1000006, 0xD90400F9, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0xC3C00000,
|
||||
0xDCFC2000, 0x5FFC0002, 0x00000000, 0x98C08D62, 0xC0004730, 0xC94000F8, 0xC0004732, 0xC0001AF2,
|
||||
0xCBC000F8, 0x00000000, 0x00000000, 0xA7C20470, 0xC000474A, 0xCA8000F8, 0x00000000, 0x00000000,
|
||||
0x5D280000, 0x8400FFE0, 0x00000000, 0xC121FFFE, 0x5911FEF4, 0x14100000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC2802000, 0x6EA8E010, 0xC0004200, 0xC2400000, 0x7E410000, 0xC1000000, 0xCE4000F9, 0xCE4000F9,
|
||||
0xCE4000F9, 0xCE4000F9, 0x5EA80002, 0x8400FFD8, 0xC0004300, 0xC2800200, 0x6EA84010, 0xCE4000F9,
|
||||
0xCE0000F9, 0xCE4000F9, 0xCE0000F9, 0xCE4000F9, 0xCE0000F9, 0xCE4000F9, 0xCE0000F9, 0x5EA80002,
|
||||
0x8400FFB8, 0xC0004700, 0xC2800200, 0x6EA8E010, 0xCE4000F9, 0xCE4000F9, 0xCE4000F9, 0xCE4000F9,
|
||||
0x5EA80002, 0x8400FFD8, 0xC0004740, 0xCE4000F8, 0xC0004742, 0xC1000200, 0x5D100002, 0xCD0000F8,
|
||||
0xC0004744, 0xCE4000F8, 0xC0004746, 0xCE4000F8, 0xC0004748, 0xCE4000F8, 0xC000474A, 0xCE4000F8,
|
||||
0xC000474C, 0xC1000002, 0xCD0000F8, 0xC000474E, 0xCE4000F8, 0xC0004750, 0xCE4000F8, 0xC0004752,
|
||||
0xCE4000F8, 0xC0004754, 0xCE4000F8, 0xC0400000, 0xC11C0000, 0xC000082C, 0xCD05CE00, 0xC0000838,
|
||||
0xCE4000F8, 0xC0000818, 0xCE4000F8, 0xC0000820, 0xCE4000F8, 0xC2804840, 0xC240485A, 0x98C086B0,
|
||||
0xC68000F8, 0xC65400F8, 0xC1800000, 0xC11C0002, 0xC000082C, 0xCD05CE00, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x14100000, 0xC0000A10, 0xCB8000F8, 0xC0000A12, 0xCB4000F8, 0xC0000A14, 0xCB0000F8,
|
||||
0xC0000A16, 0xCAC000F8, 0xC0000040, 0xC2800000, 0xCE800000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC2800002,
|
||||
0xCE800000, 0xC0000A10, 0xCF8000F8, 0xC0000A12, 0xCF4000F8, 0xC0000A14, 0xCF0000F8, 0xC0000A16,
|
||||
0xCEC000F8, 0xC1000000, 0xC00048A0, 0xCD0000F8, 0xC00048A2, 0xCD0000F8, 0xC0001AF2, 0xC1000000,
|
||||
0xCD002100, 0x80001038, 0x00000000, 0xC3C00000, 0xDCFC2000, 0x5FFC0002, 0x00000000, 0x98C08D62,
|
||||
0xC0004730, 0xC94000F8, 0xC0004732, 0x800033D8, 0x00000000, 0xC3C00000, 0xDCFC2000, 0x5FFC0002,
|
||||
0x00000000, 0x98C08D62, 0xC0004730, 0xC94000F8, 0xC0004732, 0xC0004810, 0xC90000F8, 0xC000474A,
|
||||
0xC94000F8, 0xA50007E8, 0x00000000, 0x5D140002, 0x840007D2, 0xC1000000, 0xC000484A, 0xC90000F8,
|
||||
0xC0004740, 0xC84000F8, 0x5D100000, 0x84000798, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FEF4,
|
||||
0x14100000, 0xC0004744, 0xC88000F8, 0xC0001AF0, 0xC3000000, 0x58000002, 0xCB010038, 0x6C7C2000,
|
||||
0x5BFC4300, 0x98C08A88, 0xC1400000, 0xC4540020, 0x6C40A010, 0x5D240002, 0x8400021A, 0x00000000,
|
||||
0xC0004742, 0xCA8000F8, 0x00000000, 0x00000000, 0x59280002, 0x6D130000, 0x6D130010, 0x45048000,
|
||||
0x84000692, 0x00000000, 0x98C08870, 0xC45400F8, 0xC69800F8, 0xC241FFFE, 0xC67400F8, 0x5D35FFFE,
|
||||
0x84000652, 0x47448000, 0x84000642, 0xC1000000, 0x6F502000, 0xC0004300, 0x40100000, 0xC1400000,
|
||||
0x58000000, 0xC9410038, 0xC1800000, 0xC0004814, 0xC9820038, 0x4714A000, 0xC10001FE, 0x4150A004,
|
||||
0x45588000, 0x880005CA, 0x4744C000, 0xC1000200, 0x4190C004, 0xC000473E, 0xC90000F8, 0x00000000,
|
||||
0x00000000, 0x41188000, 0xCD0000F8, 0xC000471C, 0xC90000F8, 0x00000000, 0x00000000, 0x41188000,
|
||||
0xCD0000F8, 0x98C087E8, 0xC45400F8, 0x6C58A010, 0xC0004700, 0x58440002, 0x6C470000, 0x6C470010,
|
||||
0x44748000, 0x8400FFC0, 0xC74400F8, 0xC0004740, 0xCC4000F8, 0xC0800000, 0xC0004744, 0xCC8000F8,
|
||||
0x800004D0, 0xC1000000, 0x583C0000, 0xC9000038, 0x00000000, 0x00000000, 0x44908000, 0x88000280,
|
||||
0xC1400000, 0x583C0000, 0xC9410038, 0xC1800000, 0xC0004814, 0xC9800038, 0x4714A000, 0xC10001FE,
|
||||
0x4150A004, 0x45588000, 0x88000442, 0xC3800000, 0x583C0002, 0xCB820078, 0xC1000000, 0x583C0002,
|
||||
0xC9000078, 0x00000000, 0x00000000, 0x47908000, 0x8400024A, 0xC0400002, 0xC0800000, 0xC3C00000,
|
||||
0xC000481A, 0xC80000F8, 0x6F908000, 0x45388000, 0x45388000, 0x4011E000, 0xC000491E, 0xCFC000F8,
|
||||
0xC3400000, 0xC0004878, 0xC80400F8, 0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xCAC000F8,
|
||||
0xC43000F8, 0x00000000, 0xC7340060, 0xC1000002, 0xC5341B00, 0xC100001C, 0xC5341048, 0xC100000C,
|
||||
0xC5340D10, 0xC000491C, 0xCF4000F8, 0xC3000000, 0xDF700038, 0x5D300080, 0x8800FFE8, 0xC000474A,
|
||||
0xC1000002, 0xCD0000F8, 0xC000491C, 0xCB4000F8, 0xC000491E, 0xCBC000F8, 0x99007F18, 0xDB5800F8,
|
||||
0xDBD800F9, 0x00000000, 0xC1400000, 0xC794A030, 0xC1800000, 0xC7980020, 0x58144200, 0xC9C000F8,
|
||||
0xC1210000, 0x69188010, 0x7D008000, 0x75D0E000, 0xCDC000F8, 0x80000228, 0x00000000, 0xC1000000,
|
||||
0x583C0000, 0xC903E000, 0x00000000, 0x00000000, 0x5D100000, 0x84000042, 0xC0004734, 0xC90000F8,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x800000C0, 0xC1400000, 0x583C0000, 0xC9410038,
|
||||
0xC1800000, 0xC0004814, 0xC9820038, 0x4714A000, 0xC10001FE, 0x4150A004, 0x45588000, 0x8800015A,
|
||||
0xC000473E, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0xC000471C, 0xC90000F8,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0xC3800000, 0x583C0002, 0xCB820078, 0x00000000,
|
||||
0x00000000, 0x5D39FFFE, 0x84000062, 0xC1400000, 0xC794A030, 0xC1800000, 0xC7980020, 0x58144200,
|
||||
0xC9C000F8, 0xC1210000, 0x69188010, 0x7D008000, 0x75D0E000, 0xCDC000F8, 0x98C087E8, 0xC45400F8,
|
||||
0x6C58A010, 0xC0004700, 0x58440002, 0x6C470000, 0x6C470010, 0xC0004740, 0xCC4000F8, 0xC0800000,
|
||||
0xC0004744, 0xCC8000F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x8000F288, 0x00000000,
|
||||
0x00000000, 0x98C086F0, 0xC0004748, 0xC98000F8, 0xC2000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC1400000, 0xC7D4A030, 0xC1800000, 0xC7D80020, 0x58144200,
|
||||
0xC9C000F8, 0xC1210000, 0x69188010, 0x7D008000, 0x75D0E000, 0xCDC000F8, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x98C087E8, 0xC7D400F8, 0x6FD8A010, 0xC0004700, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x98C08870, 0xC7D400F8, 0xC79800F8, 0xC241FFFE, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08A88, 0xC1400000, 0xC7D40020, 0x6FC0A010,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08AB8, 0xC1400000, 0xC7D40020, 0x6FC0A010,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08AF0, 0xC7D400F8, 0xC0004740, 0xC9C000F8,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08BE0, 0xC7D400F8, 0xC0004742, 0xC98000F8,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC0004958, 0xC84000F8, 0x00000000, 0xC3C00002,
|
||||
0x787C2000, 0xCC4000F8, 0xC0004848, 0xCB8400F8, 0xC000495C, 0xCAC400F8, 0xC0004844, 0xC88400F8,
|
||||
0x47AD0000, 0x8400F492, 0xC000487C, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000, 0xCA0000F8,
|
||||
0xC0001624, 0xCB0400F8, 0xA63C007A, 0x00000000, 0x00000000, 0xA71EF432, 0x00000000, 0xC0000824,
|
||||
0xCA8400F8, 0x6CA08000, 0x6CA42000, 0x46250000, 0x42290000, 0xC35E0002, 0xC6340060, 0xC0001624,
|
||||
0xCF440078, 0xC2000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xC0004844, 0xC88400F8, 0xC000082C, 0xCA040038, 0x00000000, 0x00000000, 0x58880002,
|
||||
0xB6080018, 0x00000000, 0xC0800000, 0xC0004844, 0xCC840038, 0x5AEC0002, 0xC000495C, 0xCEC400F8,
|
||||
0x5E6C0006, 0x84000060, 0xC0004848, 0xCB8400F8, 0xC0000838, 0xC2500002, 0xCE450800, 0x5FB80002,
|
||||
0xC0004848, 0xCF8400F8, 0x5EEC0002, 0xC000495C, 0xCEC400F8, 0x00000000, 0xC121FFFE, 0x5911FE54,
|
||||
0x14100000, 0x8000F290, 0xC000495A, 0xC84000F8, 0x00000000, 0xC3C00002, 0x787C2000, 0xCC4000F8,
|
||||
0xC0004960, 0xCAC400F8, 0x00000000, 0x00000000, 0x5EEC0000, 0x8400010A, 0x00000000, 0xB6FC0050,
|
||||
0xC0001600, 0xCA0400F8, 0x00000000, 0x00000000, 0xA61E00D2, 0x6FE90000, 0xC0000A28, 0xCE850800,
|
||||
0xC2C00000, 0xC2800004, 0xB6E800A0, 0xC0001604, 0xCA8400F8, 0xC0004960, 0xCEC400F8, 0xA69EFCAA,
|
||||
0x00000000, 0x6FE90000, 0xC0000A28, 0xCE850800, 0xC2C00002, 0xC0001600, 0xCA0400F8, 0x00000000,
|
||||
0x00000000, 0xA61E002A, 0x6FE90000, 0xC0000A28, 0xCE850800, 0xC2C00000, 0xC0001604, 0xCA8400F8,
|
||||
0xC0004960, 0xCEC400F8, 0xA69EFC12, 0xC2400000, 0xC0000A14, 0xCA440028, 0x00000000, 0x00000000,
|
||||
0x466D2000, 0xA4400020, 0xC2800000, 0xDFEB0029, 0x80000010, 0xDFEA0029, 0xB668EC0A, 0x00000000,
|
||||
0xC00048A0, 0xCB0400F8, 0xC0000A10, 0xCA8400F8, 0x6F208000, 0x6F242000, 0x46250000, 0x42A10000,
|
||||
0xC2400000, 0xC0000A14, 0xCA440028, 0xC35E0002, 0xC6340060, 0xC0001604, 0xCF440078, 0x5B300002,
|
||||
0xB6700018, 0x5AEC0002, 0xC3000000, 0xC00048A0, 0xCF0400F8, 0xC0004960, 0xCEC400F8, 0x8000F030,
|
||||
0xC0004918, 0xD28000F8, 0xC2000000, 0xDF600038, 0x5E600080, 0x840002A2, 0x00000000, 0xC161FFFE,
|
||||
0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC000480A, 0xCA0000F8,
|
||||
0xC0004912, 0xCA4000F8, 0xC0004924, 0xCA8000F8, 0xC0004966, 0xCAC000F8, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x14100000, 0x76250000, 0x76290000, 0x762D0000, 0x840001E2, 0xC0004918, 0xCA4000F8,
|
||||
0xC28001FE, 0x76290000, 0x5A640002, 0x6A254010, 0x5EE80000, 0x8400001A, 0x6AA54000, 0x80000010,
|
||||
0xC62800F8, 0x62818008, 0xC0004918, 0xCF0000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC0004966, 0xCA4000F8, 0xC2000002, 0x6A310000, 0x7E010000,
|
||||
0x76612000, 0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x6F346000, 0x4771A000,
|
||||
0x5B744C80, 0xC2800000, 0x58340006, 0xCA800078, 0xC2C00000, 0x58340000, 0xCAC000D8, 0xC2400000,
|
||||
0x5834000A, 0xCA420078, 0x6EA82000, 0x42E9E000, 0x6F2CA000, 0x42E56000, 0x5AEC2E00, 0xC3990040,
|
||||
0xC7381C18, 0xC6F80060, 0x99007F18, 0xDB9800F8, 0xDBD800F9, 0x00000000, 0xDEA000F8, 0x46310000,
|
||||
0x8400FD50, 0xC0004958, 0xC84000F8, 0x00000000, 0xC1000002, 0x78502000, 0xCC4000F8, 0xC0004848,
|
||||
0xCBC400F8, 0xC0004844, 0xC88400F8, 0x5FFC0000, 0x8400ECBA, 0xC0004740, 0xCB0000F8, 0xC0004744,
|
||||
0xCAC000F8, 0x6F282000, 0x5AA84300, 0xC000487C, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000,
|
||||
0xCA4000F8, 0xC40000F8, 0x00000000, 0xC0004878, 0xC80400F8, 0x6C908000, 0x45088000, 0x45088000,
|
||||
0x40100000, 0xC90000F8, 0xC43400F8, 0x00000000, 0x5C440000, 0x840000A2, 0x00000000, 0xC00047D2,
|
||||
0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x58340002, 0xC9000078, 0x00000000,
|
||||
0x00000000, 0x58280002, 0x6D120000, 0xCD021078, 0x5AEC0002, 0xC0004744, 0xCEC000F8, 0x80000630,
|
||||
0x00000000, 0xC00047C0, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0xA67C0048,
|
||||
0xC00047C2, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x80001E18, 0x00000000,
|
||||
0xA6600042, 0xC00047C4, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x80000570,
|
||||
0xC00047C6, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0xC3C00000, 0xC67D0038,
|
||||
0xC3800000, 0xC6780038, 0x47F08000, 0x840000A8, 0x47AC8000, 0x84000098, 0xC1000000, 0xC0004814,
|
||||
0xC9000038, 0x00000000, 0x00000000, 0x5D100000, 0x840000F0, 0x5AEC0002, 0xC0004744, 0xCEC000F8,
|
||||
0xC00047CA, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x80000478, 0x00000000,
|
||||
0x98C08AF0, 0xC7D400F8, 0xC0004740, 0xC9C000F8, 0x5D240000, 0x8400006A, 0x00000000, 0x98C087E8,
|
||||
0xC7D400F8, 0x6FD8A010, 0xC0004700, 0xC00047C8, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD0000F8, 0x80001C40, 0xC00047CC, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8,
|
||||
0x6FE82000, 0x5AA84300, 0x5D380000, 0x840000A0, 0x00000000, 0x98C086F0, 0xC0004748, 0xC98000F8,
|
||||
0xC2000000, 0x58280002, 0x6E520000, 0xCD021078, 0x58280002, 0xCE400078, 0x5D25FFFE, 0x84000040,
|
||||
0xC00047D0, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x800002D0, 0xC3000000,
|
||||
0x58280002, 0xCB000078, 0x00000000, 0x00000000, 0x5D31FFFE, 0x84000048, 0xC00047D0, 0xC90000F8,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x80000260, 0x00000000, 0x98C086F0, 0xC0004748,
|
||||
0xC98000F8, 0xC2000000, 0x58340002, 0xC6500078, 0xC7D01038, 0xC7901838, 0xCD0000F8, 0x58280002,
|
||||
0xCE400078, 0xC3C00200, 0x5FFC001C, 0xC3800000, 0xDF790048, 0x00000000, 0x00000000, 0x47F88000,
|
||||
0x8800FFDA, 0xC0004862, 0xCBC000F8, 0xC0000000, 0xC76C00F8, 0x5BBC7800, 0xC280001C, 0xCA6C00F9,
|
||||
0x00000000, 0x00000000, 0xCE7800F9, 0xC1007A00, 0x45388000, 0xC1007800, 0xC53800FE, 0x5EA80002,
|
||||
0x8400FFB8, 0xC3800000, 0xC000481A, 0xC80000F8, 0x6F108000, 0x45308000, 0x45308000, 0x4011C000,
|
||||
0xC000491E, 0xCF8000F8, 0xC2C00000, 0xC7EC0060, 0xC100001C, 0xC52C1048, 0xC100000A, 0xC52C0D10,
|
||||
0xC000491C, 0xCEC000F8, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048, 0xC2800000, 0xDF680038,
|
||||
0x5D280080, 0x8800FFE8, 0xC000491C, 0xCAC000F8, 0xC000491E, 0xCB8000F8, 0x99007F18, 0xDAD800F8,
|
||||
0xDB9800F9, 0x00000000, 0xC00047CE, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8,
|
||||
0x00000000, 0x80001880, 0x00000000, 0x00000000, 0x00000000, 0xC0004878, 0xC80400F8, 0x6C908000,
|
||||
0x45088000, 0x45088000, 0x40100000, 0xCA0000F8, 0xC42400F8, 0x00000000, 0xC0004934, 0xCE0000F8,
|
||||
0xC2800002, 0xC4681C08, 0xC62821D0, 0xC6281E00, 0xC2600010, 0x5A650060, 0xC0004800, 0xCB4000F8,
|
||||
0xC2200400, 0x5A200020, 0xC7601040, 0xC0001220, 0xCE8000F8, 0xC0001200, 0xCE4000F8, 0xC0001202,
|
||||
0xCE0000F8, 0xC0001240, 0xCB4000F8, 0x00000000, 0x00000000, 0xA754FFE0, 0xC2000000, 0xC7600040,
|
||||
0xA7520042, 0x00000000, 0x00000000, 0x99008690, 0xC0004822, 0xC94000F8, 0xC1800002, 0x80001710,
|
||||
0x582040A0, 0xC2000000, 0xCA000018, 0xC2400000, 0xCA414000, 0xC2800000, 0xCA812000, 0xC2C00000,
|
||||
0xCAC20018, 0xC0004938, 0xCE0000F8, 0xC0004920, 0xCE4000F8, 0xC0004916, 0xCE8000F8, 0xC0004922,
|
||||
0xCEC000F8, 0xA6400558, 0x00000000, 0xC0004938, 0xCBC000F8, 0x00000000, 0xC3800000, 0x6FF48000,
|
||||
0x6FD44000, 0x4355A000, 0x5B744A00, 0x58340000, 0xCB802010, 0x00000000, 0xC2000000, 0x6FB46000,
|
||||
0x4779A000, 0x5B744C80, 0x5834000C, 0xCA000020, 0xC000491A, 0xCF8000F8, 0x5E200000, 0x84000482,
|
||||
0xC2000000, 0xDF610048, 0x5E6001E8, 0x8800FFE8, 0xC2000002, 0xC2400466, 0xC2A00000, 0x5AA80000,
|
||||
0xC0001006, 0xCE0000F8, 0xC0001008, 0xCE4000F8, 0xC000100A, 0xCE8000F8, 0x99007958, 0xC1A0FFFE,
|
||||
0xC0000824, 0xC9840060, 0xC0004934, 0xCA4000F8, 0xC2000000, 0xC2800002, 0x99007998, 0xDA9800F8,
|
||||
0xC61400F8, 0xC65800F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x99007A80, 0xC000491A, 0xC94000F8, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FE54,
|
||||
0x14100000, 0xC0004922, 0xCA001118, 0xC3C00000, 0xC3800000, 0xC0004930, 0xCE023118, 0xC0004932,
|
||||
0xCBC000D8, 0xC2800000, 0xC000491E, 0xCFC000F8, 0xC0004862, 0xCA800060, 0xC3A0001A, 0x5BB94000,
|
||||
0xC6B80060, 0xC000491C, 0xCF8000F8, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xA8E2FFE8, 0xC2000000, 0xC1220002, 0xD90C00F8, 0xDF600038, 0x5E600080,
|
||||
0x8400FFF2, 0xC000491C, 0xCA0000F8, 0xC000491E, 0xCA4000F8, 0x00000000, 0x00000000, 0x99007F18,
|
||||
0xDA1800F8, 0xDA5800F9, 0x00000000, 0xC2000000, 0xDF610048, 0x5E6001FE, 0x8800FFE8, 0xC0004916,
|
||||
0xCA8000F8, 0xC2C00000, 0xDFEC0048, 0xC2400000, 0x466D2000, 0x8400004A, 0x5EA80000, 0x8400003A,
|
||||
0xC2600002, 0x99008690, 0xC000482E, 0xC94000F8, 0xC1800002, 0x80000030, 0xC2600000, 0x99008690,
|
||||
0xC000482C, 0xC94000F8, 0xC1800002, 0xC2000068, 0xC6240078, 0xC0004930, 0xCE400080, 0xC000491A,
|
||||
0xC98000F8, 0xC0004862, 0xC94000F8, 0x6D9C6000, 0x45D8E000, 0x59DC4C80, 0x99007D78, 0xD95800F8,
|
||||
0xD99800F9, 0xD9D400F8, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048, 0xC2000000, 0xDF600038,
|
||||
0x5E600080, 0x8400FFEA, 0x00000000, 0xC000491C, 0xCA0000F8, 0xC000491E, 0xCA4000F8, 0x00000000,
|
||||
0x00000000, 0x99007F18, 0xDA1800F8, 0xDA5800F9, 0x00000000, 0x80001160, 0x00000000, 0x99008690,
|
||||
0xC000482A, 0xC94000F8, 0xC1800002, 0x80001130, 0xC0004938, 0xCBC000F8, 0x00000000, 0x00000000,
|
||||
0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0x58380008, 0xCA0000F8, 0x00000000, 0x00000000,
|
||||
0xA600039A, 0x00000000, 0xC0004938, 0xCBC000F8, 0xC3000000, 0x00000000, 0x6FF88000, 0x6FD44000,
|
||||
0x4395C000, 0x5BB84A00, 0x58380000, 0xCB002010, 0xC2000000, 0x58380008, 0xCA020078, 0x5838000C,
|
||||
0xCAC000F8, 0x5838000E, 0xCA4000F8, 0xC000491A, 0xCF0000F8, 0xC0004930, 0xCEC000F8, 0xC000493C,
|
||||
0xCE0000F8, 0xC0004932, 0xCE4000F8, 0x5E200000, 0x84000138, 0xC2800000, 0xA6FE00D2, 0x6F206000,
|
||||
0x46310000, 0x5A204C80, 0x5820000C, 0xCA800020, 0x00000000, 0x00000000, 0x5EA80000, 0x8400020A,
|
||||
0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x99007A80, 0xC000491A, 0xC94000F8, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000,
|
||||
0xC0004930, 0xCAC000F8, 0xC0004932, 0xCA4000F8, 0xC7EC1118, 0xC0004930, 0xCEC000F8, 0x5838000C,
|
||||
0xCEC000F8, 0x58000002, 0xCE4000F8, 0xC0004934, 0xCA0000F8, 0xC2400002, 0x6E642000, 0x6E642000,
|
||||
0x76612000, 0x8400002A, 0xC2400002, 0x6E684000, 0x58380008, 0xCE804200, 0xA6000020, 0x6E682000,
|
||||
0x58380008, 0xCE802100, 0xC2400002, 0x6E642000, 0x76612000, 0x840000EA, 0x58380008, 0xCA0000F8,
|
||||
0xC2800000, 0xC2400000, 0xA60200C0, 0xDBA800F8, 0x6F386000, 0x47B1C000, 0x5BB84C80, 0x58380004,
|
||||
0xCA400078, 0x58380002, 0xCA800078, 0x00000000, 0xDEB800F8, 0x46A54000, 0x88000060, 0x00000000,
|
||||
0xC0004824, 0xCA0000F8, 0xC2400002, 0x6E640000, 0x5A200002, 0xCE0000F8, 0x58380008, 0xCE400000,
|
||||
0x80000018, 0x00000000, 0x80000048, 0xC0004934, 0xCA0000F8, 0x00000000, 0x00000000, 0xA6020CCA,
|
||||
0x00000000, 0x00000000, 0x80000CF8, 0xC2800000, 0xC2000200, 0xC240001A, 0xDF690048, 0x46294000,
|
||||
0x46A54000, 0x8800FFD2, 0xC2000006, 0xC2600982, 0x5A643B6E, 0x5838000A, 0xCA8000F8, 0xC0001006,
|
||||
0xCE0000F8, 0xC0001008, 0xCE4000F8, 0xC000100A, 0xCE8000F8, 0x99007958, 0xC1A0FFFE, 0xC0000824,
|
||||
0xC9840060, 0xC2000000, 0xC0004930, 0xCA02E008, 0x58380026, 0xCA4000F8, 0x00000000, 0xC2800000,
|
||||
0x99007998, 0xDA9800F8, 0xC61400F8, 0xC65800F8, 0xC0004934, 0xCA0000F8, 0x00000000, 0x00000000,
|
||||
0xA6020022, 0x00000000, 0x00000000, 0x80000318, 0xC0004938, 0xCBC000F8, 0xC0004878, 0xC80400F8,
|
||||
0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xCA0000F8, 0xC42400F8, 0x00000000, 0x58240018,
|
||||
0xCA0000F8, 0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0xC3000000, 0xC3400002, 0xC2C00000,
|
||||
0xC62C0078, 0xC6270038, 0xC0004940, 0xCE400038, 0xC6260038, 0xC0004942, 0xCE400038, 0xC000493C,
|
||||
0xCA0000F8, 0x5EEC0000, 0x8400018A, 0x5A6C0010, 0x46254000, 0x88000190, 0x5A600052, 0x46E54000,
|
||||
0x88000178, 0x58380006, 0xCA8000F8, 0xC0004940, 0xCA0000F8, 0xC2400000, 0xC6A70038, 0x7E412000,
|
||||
0x76612000, 0xC2000000, 0xC6A10038, 0x46250000, 0x84000138, 0xC0004942, 0xCA0000F8, 0xC2400000,
|
||||
0xC6A60038, 0x7E412000, 0x76612000, 0xC2000000, 0xC6A00038, 0x58380002, 0xCA8000F8, 0x46250000,
|
||||
0x840000E8, 0xC2400000, 0xC6A60078, 0x466D0000, 0x880000DA, 0xC2400000, 0xC6A40078, 0x58380008,
|
||||
0xCA8000F8, 0x46E50000, 0x880000BA, 0x00000000, 0xA6820018, 0x00000000, 0xC7700B00, 0xA6840098,
|
||||
0x00000000, 0xC7700A00, 0x80000080, 0xC7700200, 0xC000493C, 0xCAC000F8, 0x80000060, 0xC7700300,
|
||||
0xC000493C, 0xCAC000F8, 0x80000040, 0xC7700900, 0x80000030, 0xC7700800, 0x80000020, 0xC7700700,
|
||||
0x80000010, 0xC7700500, 0xC0004944, 0xCF0000F8, 0xC000493E, 0xCEC000F8, 0xC0004938, 0xCA4000F8,
|
||||
0xC000493C, 0xCB8000F8, 0xC000493E, 0xCB4000F8, 0xC3000000, 0x6E608000, 0x6E544000, 0x42150000,
|
||||
0x5A204A00, 0x5AA00008, 0x58200004, 0xCB000078, 0xC0004934, 0xCA0000F8, 0xC2400000, 0xC0004930,
|
||||
0xCA42E008, 0xC3C00018, 0xA6020098, 0x00000000, 0x43656000, 0x47AD0000, 0x88000050, 0x46F96000,
|
||||
0x6EE04010, 0x5BE00004, 0xC2000000, 0xC6E00008, 0x5E200000, 0x84000042, 0x5BFC0002, 0x80000030,
|
||||
0xC3C00004, 0x5A2C0008, 0x47A10000, 0x88000012, 0x5FB80008, 0x6FE04000, 0x42390000, 0x47212000,
|
||||
0x88000068, 0xC2400000, 0xC0004930, 0xCA42E008, 0xC2060002, 0xC68000F8, 0xCE006300, 0x6FE04000,
|
||||
0x4721C000, 0x5F700010, 0x4765A000, 0xC2000000, 0xC6340008, 0xC25A000A, 0xC000491A, 0xCA401C18,
|
||||
0xC2800000, 0xC0004932, 0xCA8000D8, 0xC0004862, 0xCA400060, 0x6FA04010, 0x42290000, 0xC000491E,
|
||||
0xCE0000F8, 0xC7E41048, 0xC000491C, 0xCE4000F8, 0x6FE04000, 0x43A1C000, 0xC000493C, 0xCF8000F8,
|
||||
0xC000493E, 0xCF4000F8, 0xC000493A, 0xCFC000F8, 0x80000008, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC2000000, 0xDCE000F8, 0xA622FFD8, 0xC1220002, 0xD90C00F8, 0xC0004938, 0xCBC000F8, 0xC0004944,
|
||||
0xCB4000F8, 0xC0004862, 0xCB0000F8, 0xC0004934, 0xCA0000F8, 0x6FF88000, 0x6FD44000, 0x4395C000,
|
||||
0x5BB84A00, 0xA6020298, 0xC2400000, 0x58380008, 0xCA406000, 0xDFE800F8, 0xC2218E08, 0x5A21BAF6,
|
||||
0x46A14000, 0x84000022, 0xC2080002, 0x7361A000, 0x80000058, 0x5E640000, 0x84000022, 0xC20C0002,
|
||||
0x7361A000, 0x80000030, 0xC2000000, 0xC760E710, 0xC7604218, 0x5E200000, 0x840002A2, 0xC2200002,
|
||||
0xC0004930, 0xCE021000, 0x99008690, 0xC0004828, 0xC94000F8, 0xC1800002, 0xC0004780, 0xC93C00F8,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD3C00F8, 0x58380000, 0xCA0000F8, 0x00000000, 0x00000000,
|
||||
0xA6000132, 0xC0004940, 0xCA8000F8, 0xC0004942, 0xCA4000F8, 0xC7600078, 0xC6A01838, 0xC6601038,
|
||||
0xC000493A, 0xCA4000F8, 0xC0004934, 0xCA8000F8, 0xC0007800, 0x40300000, 0x40240000, 0x5C000004,
|
||||
0x5EC07A00, 0x88000012, 0x5C000200, 0xCE0000F8, 0x58000002, 0x5EC07A00, 0x88000012, 0x5C000200,
|
||||
0xCE8000F8, 0xC000493E, 0xCA0000F8, 0xC2400000, 0x5838000C, 0xCE4000F8, 0x99008690, 0xC0004830,
|
||||
0xC94000F8, 0xC61800F8, 0xC0004930, 0xC6100078, 0xCD000078, 0x800000A8, 0xC2400002, 0x58380008,
|
||||
0xCE400000, 0xC0004944, 0xCF4000F8, 0x800002A8, 0xC000493C, 0xCA4000F8, 0xDFE800F8, 0x5A300018,
|
||||
0xC0007800, 0x40200000, 0xCA0000F8, 0x58380008, 0xC6501078, 0xCD021078, 0x5838000A, 0xCE8000F8,
|
||||
0x58380026, 0xCE0000F8, 0xC0004944, 0xCF4000F8, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048,
|
||||
0x80000068, 0x00000000, 0x99008690, 0xC0004826, 0xC94000F8, 0xC1800002, 0xC0004760, 0xC93C00F8,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD3C00F8, 0x8000FDA8, 0xC2000000, 0xC2400080, 0xDF600038,
|
||||
0xB624FFEA, 0xC000491C, 0xCA4000F8, 0xC000491E, 0xCA8000F8, 0x99007F18, 0xDA5800F8, 0xDA9800F9,
|
||||
0x00000000, 0xC0004934, 0xCA0000F8, 0x00000000, 0xC2800000, 0xA6020160, 0xC2400004, 0xC2000200,
|
||||
0xDF690048, 0x46294000, 0x46A54000, 0x8800FFDA, 0x00000000, 0xC000491A, 0xC98000F8, 0xC0004862,
|
||||
0xC94000F8, 0x6D9C6000, 0x45D8E000, 0x59DC4C80, 0x99007D78, 0xD95800F8, 0xD99800F9, 0xD9D400F8,
|
||||
0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048, 0xC2000000, 0xC2400080, 0xDF600038, 0xB624FFEA,
|
||||
0xC000491C, 0xCA4000F8, 0xC000491E, 0xCA8000F8, 0x99007F18, 0xDA5800F8, 0xDA9800F9, 0x00000000,
|
||||
0x58380008, 0xCA4000F8, 0xC2000000, 0xCE000018, 0xC2A1FFFE, 0x5AA9FFFE, 0xCE021078, 0x5838000A,
|
||||
0xCE8000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0000838, 0xC2500002, 0xCE450800, 0xC0004848, 0xCBC400F8, 0xC3800000, 0xC000082C, 0xCB840028,
|
||||
0x5FFC0002, 0xC0004848, 0xCFC400F8, 0x58880002, 0x47888000, 0xC1000000, 0xC50800FE, 0xC0004844,
|
||||
0xCC8400F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x8000CBF0, 0xC2000000, 0xDF600038,
|
||||
0x5E200080, 0x8400029A, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC000480C, 0xCA0000F8, 0xC0004910, 0xCA4000F8, 0xC000492C, 0xCA8000F8,
|
||||
0xC0004968, 0xCAC000F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x76250000, 0x76290000,
|
||||
0x76E16000, 0x840001DA, 0xC0004926, 0xCA4000F8, 0xC201FFFE, 0x76E16000, 0x5A640002, 0x6AE50010,
|
||||
0x5F200000, 0x8400001A, 0x6A250000, 0x80000010, 0xC6E000F8, 0x62014008, 0xC0004926, 0xCE8000F8,
|
||||
0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC0004968,
|
||||
0xCA4000F8, 0xC2000002, 0x6A290000, 0x7E010000, 0x76612000, 0xCE4000F8, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x14100000, 0x6EB4A000, 0x6E944000, 0x4755A000, 0x4769A000, 0x5B747000, 0x58340002,
|
||||
0xC2000000, 0xCA0000D8, 0x5834002E, 0xC2400000, 0xCA400078, 0x6EB0A000, 0x6EBC4000, 0x473D8000,
|
||||
0x47298000, 0x5B30302E, 0x5B300004, 0x6E642000, 0x4225E000, 0xC39A8024, 0xC7380060, 0xC6B81C18,
|
||||
0x99007F18, 0xDB9800F8, 0xDBD800F9, 0x00000000, 0xC2000000, 0xDF600038, 0x5E200080, 0x840002D2,
|
||||
0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000490E, 0xCA0000F8, 0xC000492A, 0xCA4000F8, 0xC000496A, 0xCB0000F8, 0xC0004956, 0xCAC000F8,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x77218000, 0x77258000, 0x8400021A, 0xC201FFFE,
|
||||
0x77218000, 0x5AEC0002, 0x6B2D0010, 0x5EA00000, 0x8400001A, 0x6A2D0000, 0x80000010, 0xC72000F8,
|
||||
0x62016008, 0xC0004956, 0xCEC000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC000496A, 0xCA4000F8, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76612000,
|
||||
0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x6EF4A000, 0x6ED44000, 0x4755A000,
|
||||
0x476DA000, 0x5B747000, 0x5834000E, 0xC2000000, 0xCA0000D8, 0x58340008, 0xC2400000, 0xCA420078,
|
||||
0x5834000C, 0xC2800000, 0xCA832010, 0x6E644010, 0x42250000, 0x4229E000, 0xC39A8008, 0x58340008,
|
||||
0xCB809018, 0x58340008, 0xC2800000, 0xCA810010, 0x6EE0A000, 0x6EE44000, 0x46250000, 0x462D0000,
|
||||
0x5A200008, 0x5A203008, 0x42290000, 0xC6380060, 0xC6F81C18, 0x99007F18, 0xDB9800F8, 0xDBD800F9,
|
||||
0x00000000, 0xC000495A, 0xC84000F8, 0x00000000, 0xC3C00002, 0x787C2000, 0xCC4000F8, 0xC0001A1C,
|
||||
0xCA0000F8, 0xC2400008, 0x6A452000, 0x76250000, 0x84000E9A, 0xC0000A28, 0xC3800000, 0xCB840028,
|
||||
0xC0000A14, 0xC3400000, 0xCB440028, 0xC0004880, 0xCB0400F8, 0x47B48000, 0x88000E48, 0x58041802,
|
||||
0xCAC000F8, 0xA7000060, 0x00000000, 0x00000000, 0xA6C8C5C8, 0xC2800000, 0xC6E80018, 0x80000070,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x8000C590, 0x00000000, 0xC2800000, 0xC7282018, 0xC000490E,
|
||||
0xCA4000F8, 0x6BE9E000, 0x00000000, 0x767D2000, 0x8400C548, 0x6EA0A000, 0x6E944000, 0x46150000,
|
||||
0x46290000, 0x5A207000, 0x5820000C, 0xCA0000F8, 0xC0004946, 0xCE8000F8, 0xA6220398, 0x00000000,
|
||||
0xC2200060, 0xC0004948, 0xCE000008, 0xCE021038, 0xC240000A, 0xC000494A, 0xCE4000F8, 0xC2B60002,
|
||||
0xC0004964, 0xCE837B00, 0x990081E8, 0xC00048A0, 0xC88400F8, 0x00000000, 0xC0004946, 0xCBC000F8,
|
||||
0x00000000, 0x00000000, 0x6FF8A000, 0x6FD44000, 0x4795C000, 0x47BDC000, 0x5BB87000, 0x99007FA8,
|
||||
0xDBD800F8, 0xDB9800F9, 0x00000000, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048, 0xC000491C,
|
||||
0x990081A0, 0xC94000F9, 0xC98000F8, 0x00000000, 0x99007F18, 0xD95800F8, 0xD99800F9, 0x00000000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x99007BE0,
|
||||
0xDBD800F8, 0xDB9800F9, 0xC7D800F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x6FF8A000,
|
||||
0x6FD44000, 0x4795C000, 0x47BDC000, 0x5BB87000, 0x58380010, 0xCA0000F8, 0xC0004874, 0xC80400F8,
|
||||
0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xCA4000F8, 0xC43400F8, 0x00000000, 0xC74000F8,
|
||||
0xCE0000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000490E, 0xCA4000F8, 0xC2800002, 0x6ABD4000, 0x72692000, 0xCE4000F8, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x14100000, 0x99008690, 0xC0004836, 0xC94000F8, 0xC1800002, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xA8E2FFE8, 0x00000000, 0xC1220002, 0xD90C00F8, 0xC2000000, 0xC0000A14, 0xCA040028,
|
||||
0xC0000A28, 0xC2500002, 0xCE450800, 0x58880002, 0xB6080018, 0xC00048A0, 0xC0800000, 0xCC8400F8,
|
||||
0x8000C168, 0xC0004946, 0xCBC000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC000490E, 0xCA4000F8, 0xC2800002, 0x6ABD4000, 0x72692000, 0xCE4000F8,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x6FF8A000, 0x6FD44000, 0x4795C000, 0x47BDC000,
|
||||
0x5BB87000, 0x58380008, 0xCA0000F8, 0x5838000C, 0xCA4000F8, 0xC3400000, 0xC6340000, 0xC000494E,
|
||||
0xCF4000F8, 0xC2800000, 0xC62A0078, 0xC3000000, 0xC6308018, 0x6F304000, 0x43298000, 0xC000493C,
|
||||
0xCF0000F8, 0xC2C00000, 0xC66C0078, 0xC0004950, 0xCEC000F8, 0xC2800000, 0xC66AE020, 0xC0004954,
|
||||
0xCE8000F8, 0x5F740000, 0x840001B8, 0x5E300028, 0x46E12000, 0x84000182, 0x46E12000, 0x8800014A,
|
||||
0x5E300018, 0x46E12000, 0x8800002A, 0x46E12000, 0x84000042, 0x00000000, 0x800000D8, 0x00000000,
|
||||
0x99008328, 0xDBD800F8, 0xDB9800F9, 0xC78000F8, 0xC3400002, 0xC000494E, 0xCF4000F8, 0xC161FFFE,
|
||||
0x5955FFFE, 0x14140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC000490E, 0xCA4000F8,
|
||||
0xC2800002, 0x6ABD4000, 0x7E814000, 0x76692000, 0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE54,
|
||||
0x14100000, 0xC2200060, 0xC0004948, 0xCE021038, 0xC2000000, 0xC000494C, 0xCE0000F8, 0x80000080,
|
||||
0x00000000, 0x99008328, 0xDBD800F8, 0xDB9800F9, 0xC78000F8, 0x99008528, 0xDBD800F8, 0xDB9800F9,
|
||||
0xC78000F8, 0xC2200058, 0xC0004948, 0xCE021038, 0xC2000002, 0xC000494C, 0xCE0000F8, 0xC2000006,
|
||||
0xC0001006, 0xCE0000F8, 0x5838000A, 0xCA4000F8, 0xC2200982, 0x5A203B6E, 0xC0001008, 0xCE0000F8,
|
||||
0xC000100A, 0xCE4000F8, 0xC0004954, 0xCA8000F8, 0xC200000C, 0xC000494A, 0xCE0000F8, 0xC0004948,
|
||||
0xCE800008, 0xC2B60000, 0xC0004964, 0xCE8000F8, 0x990081E8, 0xC00048A0, 0xC88400F8, 0x00000000,
|
||||
0xC0004946, 0xCBC000F8, 0xC000494C, 0xCA0000F8, 0x6FF8A000, 0x6FD44000, 0x4795C000, 0x47BDC000,
|
||||
0x5BB87000, 0x5E200000, 0x84000112, 0x00000000, 0x99007FA8, 0xDBD800F8, 0xDB9800F9, 0x00000000,
|
||||
0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420048, 0xC000491C, 0x990081A0, 0xC94000F9, 0xC98000F8,
|
||||
0x00000000, 0x99007F18, 0xD95800F8, 0xD99800F9, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x99007BE0, 0xDBD800F8, 0xDB9800F9, 0xC7D800F8,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0xC000493C, 0xCA8000F8, 0xC000494E, 0xCAC000F8,
|
||||
0xC3000018, 0xC3400006, 0x5E200000, 0x8400002A, 0xC2800000, 0xC2C00000, 0xC300001E, 0xC3400000,
|
||||
0xC6AC1078, 0xC72C0418, 0xC76C0810, 0x58380010, 0xCA8000F8, 0x58380008, 0xCEC000F8, 0xC6280100,
|
||||
0xC0004874, 0xC80400F8, 0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xCB0000F8, 0xC43400F8,
|
||||
0x00000000, 0xC74000F8, 0xCE8000F8, 0xC0004952, 0xCE8000F8, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xA8E2FFE8, 0x00000000, 0xC000494C, 0xCA0000F8, 0xC0004950, 0xCAC000F8, 0x5E200000, 0x8400006A,
|
||||
0xDFE800F8, 0x7E814000, 0x5834001A, 0xCE8000F8, 0x99008690, 0xC0004834, 0xC94000F8, 0xC1800002,
|
||||
0x99008690, 0xC0004838, 0xC94000F8, 0xC6D800F8, 0xC1220002, 0xD90C00F8, 0x5E200000, 0x84000040,
|
||||
0x5838002C, 0xCB0000F8, 0xDFE800F8, 0x00000000, 0x58380014, 0xCF0000F8, 0x80000018, 0xC2A1FFFE,
|
||||
0x5AA9FFFE, 0x5838000A, 0xCE8000F8, 0xC3000000, 0xC0000A14, 0xCB040028, 0xC2D00002, 0xC0000A28,
|
||||
0xCEC50800, 0xC000494E, 0xCA8000F8, 0x58880002, 0xB4B00018, 0xC00048A0, 0xC0800000, 0xCC8400F8,
|
||||
0x5EA80000, 0x8400016A, 0x5E200000, 0x84000158, 0xC000493C, 0xCA8000F8, 0x00000000, 0x00000000,
|
||||
0x5AA80060, 0xCE8000F8, 0x99008328, 0xDBD800F8, 0xDB9800F9, 0xC78000F8, 0x99008528, 0xDBD800F8,
|
||||
0xDB9800F9, 0xC78000F8, 0xC0004952, 0xCAC000F8, 0x58380000, 0xCA8000F8, 0xC30C0002, 0xC7F00018,
|
||||
0xA68000B0, 0x00000000, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC0001800, 0xCA0000F8, 0x00000000, 0x00000000, 0xA60CFFEA, 0xC6F00500,
|
||||
0xC6B0C400, 0xCF0000F8, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x14100000, 0x8000B7B8, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x8000B750, 0xDCBC00F9, 0x5FFC0000, 0x8400095A, 0xC3800002,
|
||||
0xDB8800F9, 0xC3800000, 0xDB8800F9, 0xC0004728, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD0000F8, 0xC0004730, 0xC98000F8, 0xC000472E, 0xC94000F8, 0xC00047DC, 0xC90000F8, 0xC00047DE,
|
||||
0xC9C000F8, 0xC000472E, 0xCD8000F8, 0x6D110000, 0xC5D30038, 0xC00047DC, 0xCD0000F8, 0x4594A000,
|
||||
0x6DDD0000, 0xC55C0038, 0xC00047DE, 0xCDC000F8, 0xC0001AC4, 0xC94000F8, 0xC0001AC8, 0xC98000F8,
|
||||
0xC000472C, 0xC9C000F8, 0x45948000, 0xC1000002, 0x41D0E004, 0xCDC000F8, 0xC5501078, 0xC5900078,
|
||||
0xC000472A, 0xCD0000F8, 0xC0001AF0, 0xCBC000F8, 0x58000002, 0xCB8000F8, 0xC3400000, 0xC7F50038,
|
||||
0x6F702000, 0x5B304300, 0xC000474C, 0xCAC000F8, 0xC0004720, 0xC94000F8, 0x00000000, 0x00000000,
|
||||
0x5D940002, 0x6D9B8000, 0x6D9B8010, 0x581847E0, 0xC98000F8, 0x581447E0, 0xC9C000F8, 0x5D2C0000,
|
||||
0x8400007A, 0xC7901078, 0xC7D00078, 0xCD0000F8, 0xC1000000, 0xC5910038, 0x45348000, 0x84000090,
|
||||
0xC0004722, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x80000058, 0xC1000000,
|
||||
0xC5D10038, 0x45348000, 0x8400003A, 0xC0004724, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD0000F8, 0xA7840080, 0x59540002, 0x6D578000, 0x6D578010, 0xC0004720, 0xCD4000F8, 0xC1000000,
|
||||
0xC5910038, 0x45348000, 0x84000038, 0xC0004726, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD0000F8, 0xA78000B8, 0xC2800002, 0xC000474E, 0xCE8000F8, 0xC2C00000, 0xC000474C, 0xCEC000F8,
|
||||
0xC0004758, 0xCFC000F8, 0x58000002, 0xCF8000F8, 0xC000475C, 0xC90000F8, 0x00000000, 0x00000000,
|
||||
0xA53E003A, 0x00000000, 0xC13E0002, 0xCFC000F8, 0xCD03DE08, 0x58000002, 0xCF8000F8, 0x800001A0,
|
||||
0xC000475C, 0xC13C0002, 0xCD03DE08, 0x5D2C0000, 0x8400017A, 0xC2C00000, 0xC000474C, 0xCEC000F8,
|
||||
0x98C08AF0, 0xC75400F8, 0xC0004740, 0xC9C000F8, 0x5D240000, 0x84000042, 0xC1000002, 0xC0004750,
|
||||
0xCD0000F8, 0xC0004752, 0xCD0000F8, 0x80000100, 0x00000000, 0x98C08BE0, 0xC75400F8, 0xC0004742,
|
||||
0xC98000F8, 0x5D240000, 0x8400002A, 0xC1000002, 0xC0004752, 0xCD0000F8, 0x80000060, 0xC0004742,
|
||||
0xC94000F8, 0xC0004754, 0xC1000002, 0xCD0000F8, 0x98C08CF0, 0xC55400F8, 0xC75800F8, 0x00000000,
|
||||
0xC0004742, 0xCF4000F8, 0x98C08AB8, 0xC1400000, 0xC7540020, 0x6F40A010, 0xC1000000, 0xC7D00038,
|
||||
0x58300000, 0x6D110000, 0xCD010838, 0xA7840398, 0xC000474C, 0xCAC000F8, 0xC000474E, 0xCA8000F8,
|
||||
0xC0004750, 0xCBC000F8, 0xC0004752, 0xCB8000F8, 0xC0004710, 0xC90000F8, 0x00000000, 0x00000000,
|
||||
0x59100002, 0xCD0000F8, 0x5D280002, 0x840000B8, 0xC000473C, 0xC90000F8, 0x00000000, 0x00000000,
|
||||
0x59100002, 0xCD0000F8, 0xC0004712, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8,
|
||||
0xC0004754, 0xC90000F8, 0x00000000, 0x00000000, 0x5D100000, 0x8400021A, 0x58300000, 0xC13C0002,
|
||||
0xCD03DE00, 0x800001F8, 0xC0004714, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8,
|
||||
0x5D380000, 0x8400003A, 0xC0004736, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8,
|
||||
0x5D3C0000, 0x84000042, 0xC0004718, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8,
|
||||
0x80000140, 0xC1000000, 0x58300000, 0xC903E000, 0x00000000, 0x00000000, 0x5D100000, 0x84000042,
|
||||
0xC000471A, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x800000D0, 0x58300000,
|
||||
0xC13E0002, 0xCD03FF00, 0xC1000000, 0x58300000, 0xC903C000, 0x00000000, 0x00000000, 0x5D100000,
|
||||
0x84000082, 0xC0004716, 0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0xC000473A,
|
||||
0xC90000F8, 0x00000000, 0x00000000, 0x59100002, 0xCD0000F8, 0x58300000, 0xC13C0000, 0xCD03DE00,
|
||||
0xC1000000, 0xC0004746, 0xCD0000F8, 0xC0004750, 0xCD0000F8, 0xC0004752, 0xCD0000F8, 0xC000474E,
|
||||
0xCD0000F8, 0xC2C00002, 0xC000474C, 0xCEC000F8, 0xC0004754, 0xCD0000F8, 0xC3CE0002, 0xC0000800,
|
||||
0xCFC0E700, 0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x94000001, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000487C, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000, 0xCBC000F8, 0xC43800F8, 0x00000000,
|
||||
0xC000480E, 0xCA0000F8, 0xC0004858, 0xCB4400F8, 0x00000000, 0x00000000, 0x47610000, 0x880000B0,
|
||||
0x00000000, 0xA7C00048, 0xC0004854, 0xC1000002, 0xCD0400F8, 0xC11C0000, 0xC000082C, 0xCD05CE00,
|
||||
0x800000D8, 0x00000000, 0xA7D20138, 0x00000000, 0xC7E14040, 0xC2400000, 0xC6246028, 0xC200006A,
|
||||
0x46250000, 0xC6240030, 0xC0000810, 0xCE440030, 0x8000FF70, 0xC2000000, 0xC0000808, 0xCA040010,
|
||||
0xC11C0000, 0xC000082C, 0xCD05CE00, 0x5A200002, 0x5E600010, 0x84000010, 0xC2000000, 0xC0000808,
|
||||
0xCE040010, 0xC3400000, 0x80000028, 0xC1200002, 0xC0000818, 0xCD061000, 0x5B740002, 0xC0004858,
|
||||
0xCF4400F8, 0x99007930, 0xC0004848, 0xC94400F8, 0xC1800000, 0xC11C0002, 0xC000082C, 0xCD05CE00,
|
||||
0x80000878, 0x5B740002, 0xC0004858, 0xCF4400F8, 0xC78000F8, 0xC13C0002, 0xCD03DE00, 0xC0004848,
|
||||
0xC94400F8, 0xC1800000, 0xC000082C, 0xC9840028, 0x59540002, 0xC0004848, 0xCD4400F8, 0x58880002,
|
||||
0xB49807F8, 0x00000000, 0xC0800000, 0x800007E0, 0xC000487C, 0xC80400F8, 0x00000000, 0x00000000,
|
||||
0x40080000, 0xCBC000F8, 0xC42800F8, 0x00000000, 0xA7C00130, 0xC000484C, 0xCA0400F8, 0xC2400000,
|
||||
0xC0001AEC, 0xCA440018, 0x5A200002, 0xC000484C, 0xCE0400F8, 0xB624008A, 0xC68000F8, 0xC13C0002,
|
||||
0xCD03DE00, 0xC0004848, 0xC94400F8, 0xC1800000, 0xC000082C, 0xC9840028, 0x59540002, 0xC0004848,
|
||||
0xCD4400F8, 0x58880002, 0xB49806E8, 0x00000000, 0xC0800000, 0x800006D0, 0xC0004854, 0xC1000004,
|
||||
0xCD0400F8, 0xC0000820, 0xC2000002, 0xCE0400F8, 0xC2000000, 0xC000484C, 0xCE0400F8, 0xC0004858,
|
||||
0xCE0400F8, 0x8000FF28, 0xC0004854, 0xC1000000, 0xCD0400F8, 0xC11C0000, 0xC000082C, 0xCD05CE00,
|
||||
0x99007930, 0xC0004848, 0xC94400F8, 0xC1800000, 0xC1200000, 0xC0000818, 0xCD061000, 0xC11C0002,
|
||||
0xC000082C, 0xCD05CE00, 0xC2000000, 0xC000484C, 0xCE0400F8, 0x800005D0, 0xC0001AC0, 0xCB8400F8,
|
||||
0xC000487C, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000, 0xCBC000F8, 0xC42800F8, 0x00000000,
|
||||
0xA78004E2, 0x00000000, 0x00000000, 0xA7C004A2, 0x00000000, 0xC0001B00, 0xC2060006, 0xCE046308,
|
||||
0xA7E8045A, 0x00000000, 0xC0004850, 0xCA0400F8, 0xC2400000, 0xC0004812, 0xCA420078, 0x5A200002,
|
||||
0xC0004850, 0xCE0400F8, 0x5E640000, 0x8400001A, 0x46250000, 0x880002F8, 0xC68000F8, 0xC13C0002,
|
||||
0xCD03DE00, 0xC0001ACC, 0xC2000002, 0xCE040000, 0x5C440000, 0x84000250, 0xC0004810, 0xC94000F8,
|
||||
0xC68000F8, 0xCBC000F8, 0x00000000, 0xC1000000, 0xA5400208, 0xC53C1000, 0x00000000, 0xA7FC01F2,
|
||||
0xC0001AF0, 0xC1000000, 0x58000002, 0xC9000000, 0xC000474E, 0xC98000F8, 0x5D100000, 0x84000022,
|
||||
0xC1000002, 0xC53C1E00, 0x80000198, 0x5D180000, 0x84000022, 0xC1000002, 0xC53C1E00, 0x80000170,
|
||||
0xC0004878, 0xC80400F8, 0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xC98000F8, 0xC43800F8,
|
||||
0x00000000, 0xC000481E, 0xC9C000F8, 0xC000481C, 0xCA0000F8, 0x00000000, 0x759CC000, 0x45A08000,
|
||||
0x840000E8, 0xC0001AF0, 0xC3400000, 0x58000000, 0xCB410038, 0xC0004746, 0xC94000F8, 0x6F702000,
|
||||
0x5B304300, 0xC2C00000, 0x58300000, 0xCAC00038, 0x00000000, 0x00000000, 0x456C8000, 0x88000020,
|
||||
0xC1000002, 0xC53C1E00, 0x80000040, 0x5AEC0002, 0x58300000, 0xCEC00038, 0xC1000002, 0xC53C1000,
|
||||
0xC77C0838, 0xC57C0038, 0x59540002, 0xC0004746, 0xCD4000F8, 0xC68000F8, 0xCFC000F8, 0xC0004848,
|
||||
0xC94400F8, 0xC1800000, 0xC000082C, 0xC9840028, 0x59540002, 0xC0004848, 0xCD4400F8, 0x58880002,
|
||||
0xB49801F8, 0x00000000, 0xC0800000, 0x800001E0, 0xC000471E, 0xC90000F8, 0x00000000, 0x00000000,
|
||||
0x59100002, 0xCD0000F8, 0xC0004854, 0xC1000000, 0xCD0400F8, 0xC11C0000, 0xC000082C, 0xCD05CE00,
|
||||
0x99007930, 0xC0004848, 0xC94400F8, 0xC1800000, 0xC2000000, 0xC0000820, 0xCE0400F8, 0xC1200000,
|
||||
0xC0000818, 0xCD061000, 0xC11C0002, 0xC000082C, 0xCD05CE00, 0xC0004850, 0xCE0400F8, 0xC2000002,
|
||||
0xC0001ACC, 0xCE040008, 0x800000E8, 0xC2000002, 0xC0004850, 0xCE0400F8, 0x8000FC00, 0xC2000000,
|
||||
0xC0004850, 0xCE0400F8, 0xA7E60032, 0x00000000, 0xC2000002, 0xC0001B00, 0xCE040000, 0x8000FBE8,
|
||||
0x00000000, 0xA7860052, 0x00000000, 0xC68000F8, 0xC13C0002, 0xCD03DE00, 0xC2020002, 0xC7E2A540,
|
||||
0xC0001B00, 0xCE0400F8, 0x8000FB90, 0xC2040002, 0xC0001B00, 0xCE044200, 0x8000FB70, 0xC2C80002,
|
||||
0x6AC56000, 0xDACC00F8, 0xC0004854, 0xCB4400F8, 0xC0004848, 0xCB8400F8, 0xC0000838, 0xC3C00000,
|
||||
0xCBC40028, 0x5EF40004, 0x84000022, 0xC3000000, 0xC0001ACC, 0xCF042100, 0x47F98000, 0x8400004A,
|
||||
0x47F98000, 0x88000050, 0xC1006E8C, 0xC1400010, 0x8D580000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0004840, 0xCC8400F8, 0x8000EB10, 0xC0001AC0, 0xCAC400F8, 0xC0004854, 0xCB4400F8, 0xA6C0F93A,
|
||||
0x00000000, 0x5EF40000, 0x8400F472, 0x5EF40002, 0x8400F702, 0x5EF40004, 0x8400F902, 0xC1006CE8,
|
||||
0xC1400010, 0x8D580000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC0800000, 0xDF4B0038,
|
||||
0xC0004900, 0xCB8000F8, 0xC2000000, 0xC000490A, 0xA78000D0, 0xCBC000F8, 0xC1000000, 0xD90000F9,
|
||||
0xC1000002, 0xD90C00F8, 0x6FF46000, 0x477DA000, 0x5B744C80, 0xC2400000, 0x58340004, 0xCA400078,
|
||||
0xC0004900, 0xCE000000, 0x5A640002, 0x58340004, 0xC6500078, 0xCD000078, 0xC0004914, 0xCA4000F8,
|
||||
0xC2000002, 0x6A3D0000, 0x72612000, 0xCE4000F8, 0xC0000408, 0xCE0000F8, 0xA78200D8, 0xC0004908,
|
||||
0xCBC000F8, 0xC1000000, 0xD90000F9, 0xC1000002, 0xD90C00F8, 0x6FF4A000, 0x6FD44000, 0x4755A000,
|
||||
0x477DA000, 0x5B747000, 0xC2800000, 0x58340006, 0xCA800078, 0xC2000000, 0xC0004900, 0xCE002100,
|
||||
0x5EA80002, 0x58340006, 0xC6900078, 0xCD000078, 0x5A7C0020, 0xC2000002, 0x6A250000, 0xC0000408,
|
||||
0xCE0000F8, 0xC0000032, 0xDCA800F9, 0xC1000002, 0x45294000, 0x00000000, 0x8C100006, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xA4800230, 0x00000000, 0xC3C00000, 0xC000140E, 0xCBC00018, 0xC3400000,
|
||||
0xC2400000, 0x6FF86000, 0x47BDC000, 0x5BB84C80, 0x58380008, 0xCB400078, 0x58380006, 0xCA400078,
|
||||
0x5F740002, 0x58380008, 0xC7500078, 0xCD000078, 0xC2000000, 0x58380004, 0xCA020078, 0xC3000000,
|
||||
0x5838000C, 0xCB000020, 0x5A640002, 0x46610000, 0x84000010, 0xC2400000, 0x58380006, 0xC6500078,
|
||||
0xCD000078, 0xC2000000, 0x5838000A, 0xCA020078, 0x5B300002, 0x5838000C, 0xC7100020, 0xCD000020,
|
||||
0xC2420020, 0x5A200004, 0x46252000, 0x84000010, 0xC2000000, 0x5838000A, 0xC6101078, 0xCD021078,
|
||||
0xC0004966, 0xCA4000F8, 0xC2000002, 0x6A3D0000, 0x72612000, 0xCE4000F8, 0x5F740000, 0x84000040,
|
||||
0xC0004912, 0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8, 0x5F300020,
|
||||
0x84000040, 0xC0004924, 0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8,
|
||||
0xA4820070, 0xC2400000, 0xC000140E, 0xCA408018, 0xC2000002, 0xC0004900, 0xCE000000, 0xC000490A,
|
||||
0xCE4000F8, 0xC1000000, 0xD90000F9, 0xD8400078, 0xC1000004, 0xD90000F9, 0xA48402A8, 0x00000000,
|
||||
0xC3C00000, 0xC000140E, 0xCBC10018, 0xC2800000, 0xC2000000, 0x6FF8A000, 0x6FD44000, 0x4795C000,
|
||||
0x47BDC000, 0x5BB87000, 0x5838002E, 0xCA800078, 0x58380006, 0xCA020078, 0xC3400000, 0x5838002E,
|
||||
0xCB420078, 0x5AA80002, 0x46A10000, 0x84000010, 0xC2800000, 0x5838002E, 0xC6900078, 0xCD000078,
|
||||
0x5F740002, 0x5838002E, 0xC7501078, 0xCD021078, 0xC0004968, 0xCA4000F8, 0xC2000002, 0x6A3D0000,
|
||||
0x72612000, 0xCE4000F8, 0xC000492A, 0xCA8000F8, 0x5E740000, 0x84000040, 0xC0004910, 0xCA0000F8,
|
||||
0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8, 0x6ABD4010, 0xA68000F2, 0x00000000,
|
||||
0xC0004910, 0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8, 0x58380032,
|
||||
0xCA0000F8, 0x58000002, 0xCA4000F8, 0x5838000C, 0x00000000, 0xCE0000F9, 0xCE4000F8, 0xC000492A,
|
||||
0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x722D0000, 0xCE0000F8, 0xC000492C, 0xCA0000F8, 0xC2C00002,
|
||||
0x6AFD6000, 0x722D0000, 0xCE0000F8, 0x80000040, 0xC000492C, 0xCA0000F8, 0xC2C00002, 0x6AFD6000,
|
||||
0x7EC16000, 0x762D0000, 0xCE0000F8, 0xA4880120, 0xC2C00000, 0xC000140E, 0xCAC20018, 0xC000490E,
|
||||
0xCA4000F8, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76612000, 0xCE4000F8, 0xC000496A, 0xCA4000F8,
|
||||
0xC2000002, 0x6A2D0000, 0x72612000, 0xCE4000F8, 0x6EF0A000, 0x6ED44000, 0x47158000, 0x472D8000,
|
||||
0x5B307000, 0x58300000, 0xCA0000F8, 0x00000000, 0xC2400002, 0x76612000, 0x8400004A, 0xC24C0002,
|
||||
0xC6E40018, 0xC624C400, 0x58300010, 0xCA400500, 0x00000000, 0xC0001800, 0xCE4000F8, 0xA4860070,
|
||||
0xC2400000, 0xC000140E, 0xCA418018, 0xC2020002, 0xC0004900, 0xCE002100, 0xC0004908, 0xCE4000F8,
|
||||
0xC1000000, 0xD90000F9, 0xD8400078, 0xC1000004, 0xD90000F9, 0xA48C0048, 0xC2800002, 0xC000484A,
|
||||
0xCE8000F8, 0xC2800000, 0xC000474A, 0xCE8000F8, 0xC0004846, 0xCE8000F8, 0xC0001408, 0xCC8000F8,
|
||||
0xC10E0002, 0xD90C00F8, 0x8000EA78, 0xDFBC00F9, 0xC000496E, 0x99008638, 0xC94000F8, 0xC7D800F8,
|
||||
0x00000000, 0xC57000F8, 0x5EF00020, 0x88000148, 0x6F346000, 0x4771A000, 0x5B744C80, 0x58340008,
|
||||
0xC2400000, 0xCA400078, 0x00000000, 0xC2000000, 0x5A640002, 0xCE400078, 0x58340004, 0xCA000078,
|
||||
0x00000000, 0x00000000, 0x5E200002, 0xCE000078, 0xC0004912, 0xCA8000F8, 0xC2400002, 0x6A712000,
|
||||
0x72A54000, 0xCE8000F8, 0x5E200000, 0x84000052, 0xC000480A, 0xCA0000F8, 0xC0000408, 0xCA8000F8,
|
||||
0x76250000, 0x00000000, 0x72A14000, 0xCE8000F8, 0x80000038, 0xC0004914, 0xCA0000F8, 0x7E412000,
|
||||
0x00000000, 0x76250000, 0xCE0000F8, 0x800000D0, 0x6EF4A000, 0x6ED44000, 0x4755A000, 0x476DA000,
|
||||
0x5B747000, 0x5834002E, 0xC2400000, 0xCA420078, 0x00000000, 0xC2000000, 0x5A640002, 0xC6501078,
|
||||
0xCD021078, 0x58340006, 0xCA000078, 0x00000000, 0x00000000, 0x5A200002, 0xCE000078, 0xC0004910,
|
||||
0xCA4000F8, 0xC2000002, 0x6A2D0000, 0x72612000, 0xCE4000F8, 0xC2000002, 0x6A310000, 0xC000042A,
|
||||
0xCE0000F8, 0xC1040002, 0xD90C00F8, 0x00000000, 0x8000E7E8, 0x00000000, 0xC4980928, 0x9D000000,
|
||||
0xC5580028, 0xC0000838, 0xCD8400F8, 0xC1440200, 0xC1C03800, 0xC55C1070, 0xC000100E, 0x9D000000,
|
||||
0xCD8000F8, 0xC000100C, 0xCDC000F8, 0xC0004862, 0xC9C000F8, 0x00000000, 0x00000000, 0xD9D800F9,
|
||||
0xC0007800, 0x401C0000, 0x5DC07A00, 0x88000012, 0x5C000200, 0xCD8000F8, 0xC1F0000A, 0x715CA000,
|
||||
0xDD9800F8, 0xDD9C00F9, 0x41D8E000, 0xC5D40260, 0xC0001010, 0xCD4000F8, 0x6C9C8000, 0x45C8E000,
|
||||
0x45C8E000, 0x59DC0004, 0xC1601260, 0xC5D40260, 0x9D000000, 0xC0001012, 0xCD4000F8, 0x00000000,
|
||||
0x00000000, 0xD95800F8, 0x6D586000, 0x4594C000, 0x59984C80, 0xD99800F9, 0x5818000A, 0xC1800000,
|
||||
0xC9800078, 0xC0006E00, 0x6D5CA000, 0x401C0000, 0x40180000, 0xC94000F8, 0x58000002, 0x00000000,
|
||||
0xC9C000F8, 0xC0004930, 0xCD4000F8, 0xC0004932, 0xCDC000F8, 0x59980004, 0xC1C20020, 0xB59C0018,
|
||||
0x00000000, 0xC1800000, 0xDD9C00F9, 0x581C000A, 0xCD800078, 0x581C000C, 0xC1800000, 0xC9800020,
|
||||
0xC1C00002, 0xDD9400F8, 0x69D4E000, 0x5D980002, 0xCD800020, 0xC0004924, 0xC98000F8, 0x00000000,
|
||||
0x9D000000, 0x00000000, 0x719CC000, 0xCD8000F8, 0xC000492A, 0xC94000F8, 0xC1C00002, 0x69D8E000,
|
||||
0x7DC0C000, 0x7558A000, 0xCD4000F8, 0xC000492C, 0xC94000F8, 0xDD8000F9, 0x58000032, 0x755CA000,
|
||||
0x84000090, 0xC94000F9, 0xC98000F8, 0xDD8000F9, 0x5800000C, 0x00000000, 0xCD4000F9, 0xCD8000F8,
|
||||
0xC000492C, 0xC94000F8, 0xC000492A, 0xC98000F8, 0x715CA000, 0xC000492C, 0xCD4000F8, 0x719CC000,
|
||||
0xC000492A, 0xCD8000F8, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0xC0004862, 0xC98000F8,
|
||||
0x00000000, 0xC1C00200, 0x4194C000, 0x459CE000, 0x88000012, 0xC5D800F8, 0xC0004862, 0xCD8000F8,
|
||||
0xC0001406, 0xC98000F8, 0xC1C00002, 0x9D000000, 0xC5D80A00, 0xC5581048, 0xCD8000F8, 0xC0004930,
|
||||
0xC98000F8, 0xC0004932, 0xC9C000F8, 0xC140000E, 0xC5581C18, 0xDD9400F8, 0xC0007800, 0x40140000,
|
||||
0x5D407A00, 0x88000012, 0x5C000200, 0xCD8000F8, 0x58000002, 0x5D407A00, 0x88000012, 0x5C000200,
|
||||
0xCDC000F8, 0xDD5400F8, 0xC1C00000, 0x58140006, 0xC9C20078, 0xC1800000, 0x58140000, 0xC98000D8,
|
||||
0x6DDC2000, 0xC000491E, 0x41D8E000, 0xCDC000F8, 0xDD9800F8, 0xC1C00022, 0xC5D80D70, 0xDD9400F9,
|
||||
0xC5581C18, 0xC000491C, 0xCD8000F8, 0xDD5400F8, 0xC1C00000, 0x58140006, 0xC9C20078, 0xC1800000,
|
||||
0x58140004, 0xC9820078, 0x00000000, 0x59DC0002, 0x45D8C000, 0x84000010, 0xC1C00000, 0x9D000000,
|
||||
0x58140006, 0xC5D81078, 0xCD821078, 0xC0004860, 0xC94000F8, 0xC1820080, 0xC1D00002, 0x58147700,
|
||||
0xD58000F8, 0x58000002, 0xD58000F9, 0x59540004, 0xB5580018, 0xC0004860, 0xC1400000, 0xCD4000F8,
|
||||
0xDD9800F9, 0x9D000000, 0xDD9400F8, 0xC0001404, 0xCDC10800, 0xC1C00000, 0xC1800200, 0x5D980004,
|
||||
0xDF5D0048, 0x459CA000, 0x8800FFF2, 0xDD8000F9, 0x5800000C, 0x00000000, 0xC94000F9, 0xC98000F8,
|
||||
0xC1C00002, 0xC5D43F00, 0xC5D81E00, 0xC0004862, 0xC9C000F8, 0x00000000, 0x00000000, 0x581C7800,
|
||||
0x5DC07A00, 0x88000012, 0x5C000200, 0xCD4000F8, 0x58000002, 0x5DC07A00, 0x88000012, 0x5C000200,
|
||||
0xCD8000F8, 0xC0004862, 0xC9C000F8, 0x00000000, 0xC15004C0, 0xC5D40060, 0xDD9C00F8, 0xC5D41C18,
|
||||
0xC1C00000, 0xDD8000F9, 0x58000030, 0xC9C00078, 0xDD8000F9, 0x58000002, 0xC98000F8, 0x6DDC2000,
|
||||
0xC000491C, 0x41D8E000, 0xCD4000F9, 0xCDC000F8, 0xDD9400F9, 0xC1C00000, 0x58140030, 0xC9C00078,
|
||||
0xC1800000, 0x58140006, 0xC9820078, 0x00000000, 0x59DC0002, 0x45D8C000, 0x84000010, 0xC1C00000,
|
||||
0x9D000000, 0x58140030, 0xC5D80078, 0xCD800078, 0xC1C00000, 0xDF5C0038, 0x5DDC0080, 0x8400FFEA,
|
||||
0x00000000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0xC160FFFE, 0xC0000A10, 0xC9440060,
|
||||
0xC1A0FFFE, 0x59983008, 0xC000100C, 0xCD4000F8, 0xC000100E, 0xCD8000F8, 0xC0004964, 0xC98000F8,
|
||||
0x00000000, 0xC170000A, 0x7158A000, 0x6C988000, 0x4588C000, 0x4588C000, 0x59980004, 0xC5940270,
|
||||
0xC0001010, 0xCD4000F8, 0xC0004946, 0xC94000F8, 0x00000000, 0x00000000, 0x6D58A000, 0x6D5C4000,
|
||||
0x459CC000, 0x4594C000, 0xC000494A, 0xC94000F8, 0xC0004948, 0xC9C000F8, 0x4194C000, 0xC1400012,
|
||||
0xC55C1818, 0x9D000000, 0xC59C0268, 0xC0001012, 0xCDC000F8, 0xC1400000, 0x58000012, 0xC9410038,
|
||||
0xC0004950, 0xC9C000F8, 0xC55800F8, 0xC5940838, 0xC5581078, 0xD99400F8, 0xC000493C, 0xC94000F8,
|
||||
0xC0004954, 0xC98000F8, 0x59DC00A8, 0x45D4E000, 0x41D8E000, 0x5D5C0030, 0x88000010, 0xC1C00030,
|
||||
0xC1800000, 0xC5D84028, 0xC1400000, 0xC5D40008, 0x5DD40002, 0x84000072, 0x5DD40004, 0x8400009A,
|
||||
0x5DD40006, 0x840000C2, 0x5DD80026, 0x840000EA, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000,
|
||||
0xCD4000F8, 0x59980002, 0x8000FFC0, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000, 0xCD4000B8,
|
||||
0x59980002, 0x8000FF88, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000, 0xCD400078, 0x59980002,
|
||||
0x8000FF50, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000, 0xCD400038, 0x59980002, 0x8000FF18,
|
||||
0x00000000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0x58000012, 0xC94000F8, 0xC0004954,
|
||||
0xC9C000F8, 0xC0004950, 0xC9400078, 0xDD8000F9, 0x58000028, 0x5D9C0000, 0x84000052, 0x5D9C0002,
|
||||
0x84000052, 0x5D9C0004, 0x8400006A, 0xC55B0038, 0xC55C08B8, 0xCD800039, 0xCDC108B8, 0x80000060,
|
||||
0xCD4000F8, 0x80000050, 0xC55900B8, 0xC55C1838, 0xCD8000B9, 0xCDC31838, 0x80000028, 0xC55A0078,
|
||||
0xC55C1078, 0xCD800079, 0xCDC21078, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0x59540002,
|
||||
0x6994E018, 0x61C0C008, 0x4194A000, 0x5D940040, 0x88000012, 0xC59400F8, 0x9D000000, 0xCD4000F8,
|
||||
0x00000000, 0x00000000, 0x9D000000, 0x4158A000, 0xCD4000F8, 0x00000000, 0xCD8000F9, 0x45408000,
|
||||
0x8800FFF0, 0x00000000, 0x9CC00000, 0x00000000, 0x00000000, 0x00000000, 0xC0004810, 0xCA010038,
|
||||
0xC241FFFE, 0xC1400000, 0x46148000, 0x00000000, 0x9CC00006, 0xC0004200, 0x40180000, 0xC9C000F8,
|
||||
0x00000000, 0x00000000, 0x61C08010, 0x8400005A, 0xC2400002, 0x6A512000, 0x71E4E000, 0xCDC000F8,
|
||||
0xC0004748, 0xCD8000F8, 0x9CC00000, 0x6D98A000, 0x5998003E, 0x45912000, 0x59540002, 0x59980002,
|
||||
0x46188000, 0xC1000000, 0xC51800FE, 0x8000FF38, 0x00000000, 0x40180000, 0xC9C000F8, 0xC2000000,
|
||||
0xC5600020, 0xC1210000, 0x69208010, 0x7D008000, 0x75D0E000, 0xCDC000F8, 0x6D542000, 0x58144300,
|
||||
0xC1000000, 0xCD0000F9, 0x9CC00000, 0xC121FFFE, 0x5911FFFE, 0xCD0000F9, 0x79588000, 0x6D10A010,
|
||||
0x5D100000, 0x840000C0, 0x45948000, 0x880000B0, 0x6D536000, 0x6D136010, 0x6D54A010, 0xC0004700,
|
||||
0x40140000, 0xCA0000F8, 0x00000000, 0x00000000, 0x6A110000, 0x6A110010, 0x62008018, 0x84000032,
|
||||
0x00000000, 0x9CC00000, 0x6D54A000, 0x5954003E, 0x45512000, 0x59540002, 0x6D57A000, 0x6D57A010,
|
||||
0x6D54A000, 0x6D936000, 0x6D136010, 0xC1E10000, 0x69D0E010, 0x5DDC0002, 0x7DC0E000, 0x6D98A010,
|
||||
0x6D536000, 0x6D136010, 0x6D54A010, 0xC0004700, 0x40140000, 0xCA0000F8, 0x00000000, 0x00000000,
|
||||
0x6A110000, 0x6A110010, 0x45588000, 0x00000000, 0x761D0002, 0x62008018, 0x84000032, 0x00000000,
|
||||
0x9CC00000, 0x6D54A000, 0x5954003E, 0x45512000, 0x45588000, 0x00000000, 0x9CC00002, 0x59540002,
|
||||
0x6D57A000, 0x6D57A010, 0xC0004700, 0x40140000, 0xCA0000F8, 0x8000FF68, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x58004700, 0xC98000F8, 0x9CC00000, 0x00000000, 0x6994C000, 0x6DA7E010, 0x58004700,
|
||||
0xC98000F8, 0xC1210000, 0x9CC00000, 0x69148010, 0x7190C000, 0xCD8000F8, 0xC1000000, 0xC0004810,
|
||||
0xC9020038, 0x00000000, 0x00000000, 0x45D0C000, 0x88000062, 0xC2400002, 0x45588000, 0xC1000000,
|
||||
0xC52400FC, 0x45D48000, 0xC1000000, 0xC52400FE, 0x9CC00000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x59980200, 0xC2400000, 0x455C8000, 0xC1000002, 0xC52400FC, 0x45948000, 0xC1000002, 0xC52400FE,
|
||||
0x9CC00000, 0x00000000, 0x00000000, 0x00000000, 0xC0004740, 0xC9C000F8, 0x59180002, 0x6D130000,
|
||||
0x6D130010, 0x451C8000, 0xC2400000, 0x9CC00002, 0x00000000, 0x00000000, 0x459C8000, 0x88000062,
|
||||
0xC2400002, 0x455C8000, 0xC1000000, 0xC52400FC, 0x45948000, 0xC1000000, 0xC52400FC, 0x9CC00000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC2400000, 0x45588000, 0xC1000002, 0xC52400FE, 0x45D48000,
|
||||
0xC1000002, 0xC52400FE, 0x9CC00000, 0x00000000, 0x00000000, 0x00000000, 0x59540002, 0x6D570000,
|
||||
0x6D570010, 0x45588000, 0x6D402000, 0x9CC00002, 0x58004300, 0x58000000, 0xC13C0002, 0xCD03DE00,
|
||||
0x8000FFB0, 0x00000000, 0x00000000, 0x00000000, 0xC1020002, 0xD90C00F8, 0xC98000F8, 0x59540002,
|
||||
0xC0004730, 0xCD4000F8, 0x5D980002, 0x00000000, 0x80000036, 0x00000000, 0x9CC00000, 0xC0004732,
|
||||
0xCD8000F8, 0x00000000, 0xC0004734, 0xC9C000F8, 0xC1800000, 0xC0004816, 0xC9820078, 0xC0004738,
|
||||
0xCDC000F8, 0xC1C00000, 0xC0004734, 0x9CC00000, 0xCDC000F8, 0xC0004732, 0xCD8000F8,
|
||||
};
|
||||
|
||||
static unsigned int firmware_binary_data[] = {
|
||||
};
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_AR9_H
|
||||
440
package/system/ltq-dsl/src/ifxmips_atm_fw_danube.h
Normal file
440
package/system/ltq-dsl/src/ifxmips_atm_fw_danube.h
Normal file
@@ -0,0 +1,440 @@
|
||||
#ifndef IFXMIPS_ATM_FW_DANUBE_H
|
||||
#define IFXMIPS_ATM_FW_DANUBE_H
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_danube.h
|
||||
** PROJECT : Danube
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 1 AUG 2005
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (PP32 Firmware)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 4 AUG 2005 Xu Liang Initiate Version
|
||||
** 23 OCT 2006 Xu Liang Add GPL header.
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#define VER_IN_FIRMWARE 1
|
||||
|
||||
#define ATM_FW_VER_MAJOR 0
|
||||
#define ATM_FW_VER_MINOR 17
|
||||
|
||||
|
||||
static unsigned int firmware_binary_code[] = {
|
||||
0x800004A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000FFC8, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC1000002, 0xD90C0000, 0xC2000002, 0xDA080001, 0x80004968, 0xC2000000, 0xDA080001, 0x80003FD0,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80003F88, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80005160, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80003E88, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400000, 0xC0004840, 0xC8840000, 0x80004628, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400002, 0xC0004840, 0xC8840000, 0x800045A8, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3C00004, 0xDBC80001, 0xC10C0002, 0xD90C0000, 0x8000FEC8, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC10E0002, 0xD90C0000, 0xC0004808, 0xC8400000, 0x800045D8, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x900004D9, 0x00000000, 0x00000000, 0x00000000, 0x90CC0481,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC3C00000, 0xDBC80001, 0xC1400008, 0xC1900000, 0x71948000,
|
||||
0x15000100, 0xC140000A, 0xC1900002, 0x71948000, 0x15000100, 0xC140000C, 0xC1900004, 0x71948000,
|
||||
0x15000100, 0xC1400004, 0xC1900006, 0x71948000, 0x15000100, 0xC1400006, 0xC1900008, 0x71948000,
|
||||
0x15000100, 0xC140000E, 0xC190000A, 0x71948000, 0x15000100, 0xC1400000, 0xC190000C, 0x71948000,
|
||||
0x15000100, 0xC1400002, 0xC190000E, 0x71948000, 0x15000100, 0xC0400000, 0xC11C0000, 0xC000082C,
|
||||
0xCD040E08, 0xC11C0002, 0xC000082C, 0xCD040E08, 0xC0400002, 0xC11C0000, 0xC000082C, 0xCD040E08,
|
||||
0xC11C0002, 0xC000082C, 0xCD040E08, 0xC0000824, 0x00000000, 0xCBC00001, 0xCB800001, 0xCB400001,
|
||||
0xCB000000, 0xC0004878, 0x5BFC4000, 0xCFC00001, 0x5BB84000, 0xCF800001, 0x5B744000, 0xCF400001,
|
||||
0x5B304000, 0xCF000000, 0xC0000A10, 0x00000000, 0xCBC00001, 0xCB800000, 0xC0004874, 0x5BFC4000,
|
||||
0xCFC00001, 0x5BB84000, 0xCF800000, 0xC30001FE, 0xC000140A, 0xCF000000, 0xC3000000, 0x7F018000,
|
||||
0xC000042E, 0xCF000000, 0xC000040E, 0xCF000000, 0xC3C1FFFE, 0xC000490E, 0xCFC00080, 0xC000492C,
|
||||
0xCFC00080, 0xC0004924, 0xCFC00040, 0xC0004912, 0xCFC00040, 0xC0004966, 0xCFC00040, 0xC0004968,
|
||||
0xCFC00080, 0xC000496A, 0xCFC00080, 0xC3C1FFFE, 0xC00049A0, 0xCFC00000, 0xC3C00000, 0xC2800020,
|
||||
0xC3000000, 0x7F018000, 0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0x5838000A, 0xCF000000,
|
||||
0x5BFC0002, 0xB7E8FFA8, 0x00000000, 0xC3C00000, 0xC2800010, 0x6FF86000, 0x47F9C000, 0x5BB84C80,
|
||||
0xC3400000, 0x58380004, 0xCB420080, 0x00000000, 0x58380008, 0xCF400080, 0x5BFC0002, 0xB7E8FF90,
|
||||
0x00000000, 0xC3C00000, 0xC2800020, 0xC348001E, 0xC3000000, 0x7F018000, 0x6FF8A000, 0x6FD44000,
|
||||
0x4579C000, 0x47F9C000, 0x5BB84E20, 0x58380008, 0xCF400420, 0x5838000A, 0xCF000000, 0x5BFC0002,
|
||||
0xB7E8FF90, 0x00000000, 0x00000000, 0xC3E02242, 0x5BFC0022, 0xC0004002, 0xCFC00000, 0x00000000,
|
||||
0xC121FFFE, 0x5911FE14, 0x15000000, 0x80000518, 0x00000000, 0x80002118, 0x00000000, 0x8000FFC8,
|
||||
0xC0004958, 0xC8400000, 0x00000000, 0xC3C00002, 0x7BC42000, 0xCC400000, 0xC0004848, 0xCB840000,
|
||||
0xC000495C, 0xCAC40000, 0xC0004844, 0xC8840000, 0x46F90000, 0x8400FF6A, 0xC000487C, 0xC8040000,
|
||||
0x00000000, 0x00000000, 0x40080000, 0xCA000000, 0xC0001624, 0xCB040000, 0xA63C005A, 0x00000000,
|
||||
0x00000000, 0xA71EFF02, 0x00000000, 0xC0000824, 0xCA840000, 0x6CA08000, 0x6CA42000, 0x46610000,
|
||||
0x42290000, 0xC35E0002, 0xC6340068, 0xC0001624, 0xCF440080, 0xC2000000, 0xC161FFFE, 0x5955FFFE,
|
||||
0x15400000, 0x00000000, 0xC0004844, 0xC8840000, 0xC000082C, 0xCA040040, 0x00000000, 0x00000000,
|
||||
0x58880002, 0xB608FFF8, 0x00000000, 0xC0800000, 0xC0004844, 0xCC840040, 0x5AEC0002, 0xC000495C,
|
||||
0xCEC40000, 0x5E6C0006, 0x84000048, 0xC0004848, 0xCB840000, 0xC0000838, 0xC2500002, 0xCE440808,
|
||||
0x5FB80002, 0xC0004848, 0xCF840000, 0x5EEC0002, 0xC000495C, 0xCEC40000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE14, 0x15000000, 0x8000FD80, 0xC000495A, 0xC8400000, 0x00000000, 0xC3C00002, 0x7BC42000,
|
||||
0xCC400000, 0xC0004960, 0xCAC40000, 0x00000000, 0x00000000, 0x5EEC0000, 0x840000F2, 0x00000000,
|
||||
0xB6FC0030, 0xC0001600, 0xCA040000, 0x00000000, 0x00000000, 0xA61E00B2, 0x6FE90000, 0xC0000A28,
|
||||
0xCE840808, 0xC2C00000, 0xC2800004, 0xB6E80080, 0xC0001604, 0xCA840000, 0xC0004960, 0xCEC40000,
|
||||
0xA69EFCA2, 0x00000000, 0x6FE90000, 0xC0000A28, 0xCE840808, 0xC2C00002, 0xC0001600, 0xCA040000,
|
||||
0x00000000, 0x00000000, 0xA61E000A, 0x6FE90000, 0xC0000A28, 0xCE840808, 0xC2C00000, 0xC0001604,
|
||||
0xCA840000, 0xC0004960, 0xCEC40000, 0xA69EFC0A, 0xC2400000, 0xC0000A14, 0xCA440030, 0x00000000,
|
||||
0x00000000, 0x46E52000, 0xA4400000, 0xC2800000, 0xDFEB0031, 0x8000FFF8, 0xDFEA0031, 0xB668FB82,
|
||||
0x00000000, 0xC00048A0, 0xCB040000, 0xC0000A10, 0xCA840000, 0x6F208000, 0x6F242000, 0x46610000,
|
||||
0x42A10000, 0xC2400000, 0xC0000A14, 0xCA440030, 0xC35E0002, 0xC6340068, 0xC0001604, 0xCF440080,
|
||||
0x5B300002, 0xB670FFF8, 0x5AEC0002, 0xC3000000, 0xC00048A0, 0xCF040000, 0xC0004960, 0xCEC40000,
|
||||
0x8000FAC0, 0xC0004918, 0xD2800000, 0xC2000000, 0xDF600040, 0x5E600080, 0x8400025A, 0x00000000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC000480A, 0xCA000000, 0xC0004912, 0xCA400000,
|
||||
0xC0004924, 0xCA800000, 0xC0004966, 0xCAC00000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000,
|
||||
0x76610000, 0x76A10000, 0x76E10000, 0x840001B2, 0xC0004918, 0xCA400000, 0xC28001FE, 0x76A10000,
|
||||
0x5A640002, 0x6A254010, 0x5EE80000, 0x84000002, 0x6AA54000, 0x8000FFF8, 0xC6280000, 0x62818008,
|
||||
0xC0004918, 0xCF000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC0004966, 0xCA400000,
|
||||
0xC2000002, 0x6A310000, 0x7E010000, 0x76252000, 0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE14,
|
||||
0x15000000, 0x6F346000, 0x4735A000, 0x5B744C80, 0xC2800000, 0x58340006, 0xCA800080, 0xC2C00000,
|
||||
0x58340000, 0xCAC000E0, 0xC2400000, 0x5834000A, 0xCA420080, 0x6EA82000, 0x42E9E000, 0x6F2CA000,
|
||||
0x42E56000, 0x5AEC1400, 0xC3990040, 0xC7381C20, 0xC6F80068, 0x99005B78, 0xDB980000, 0xDBD80001,
|
||||
0x00000000, 0xDEA00000, 0x47210000, 0x8400FD68, 0xC0004958, 0xC8400000, 0x00000000, 0xC3C00002,
|
||||
0x7BC42000, 0xCC400000, 0xC0004848, 0xCB840000, 0xC0004844, 0xC8840000, 0x5FB80000, 0x8400F7DA,
|
||||
0xC0001A1C, 0xCA000000, 0xC2400002, 0x6A452000, 0x76610000, 0x8400F7AA, 0xC000487C, 0xC8040000,
|
||||
0x00000000, 0x00000000, 0x40080000, 0xCA000000, 0xC4240000, 0x00000000, 0xA63C17BA, 0x00000000,
|
||||
0xC0004878, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000, 0x40100000, 0xCA000000, 0xC4240000,
|
||||
0x00000000, 0xC0004934, 0xCE000000, 0xC2800002, 0xC4681C10, 0xC62821D8, 0xC2600010, 0x5A650040,
|
||||
0xC0004800, 0xCB400000, 0xC2200400, 0x5A200000, 0xC7601048, 0xC0001220, 0xCE800000, 0xC0001200,
|
||||
0xCE400000, 0xC0001202, 0xCE000000, 0xC0001240, 0xCB400000, 0x00000000, 0x00000000, 0xA754FFC0,
|
||||
0xC2000000, 0xC7600048, 0xA7520022, 0x00000000, 0x00000000, 0x990062F0, 0xC0004822, 0xC9400000,
|
||||
0xC1800002, 0x80001668, 0x58204080, 0xC2000000, 0xCA000020, 0xC2400000, 0xCA414008, 0xC2800000,
|
||||
0xCA812008, 0xC2C00000, 0xCAC20020, 0xC0004938, 0xCE000000, 0xC0004920, 0xCE400000, 0xC0004916,
|
||||
0xCE800000, 0xC0004922, 0xCEC00000, 0xA6400520, 0x00000000, 0xC0004938, 0xCBC00000, 0x00000000,
|
||||
0xC3800000, 0x6FF48000, 0x6FD44000, 0x4355A000, 0x5B744A00, 0x58340000, 0xCB802018, 0x00000000,
|
||||
0xC2000000, 0x6FB46000, 0x47B5A000, 0x5B744C80, 0x5834000C, 0xCA000028, 0xC000491A, 0xCF800000,
|
||||
0x5E200000, 0x84000452, 0xC2000000, 0xDF610050, 0x5E6001E8, 0x8800FFD0, 0xC2000002, 0xC2400466,
|
||||
0xC2A00000, 0x5AA80000, 0xC0001006, 0xCE000000, 0xC0001008, 0xCE400000, 0xC000100A, 0xCE800000,
|
||||
0x990055B8, 0xC1A0FFFE, 0xC0000824, 0xC9840068, 0xC0004934, 0xCA400000, 0xC2000000, 0xC2800002,
|
||||
0x990055F8, 0xDA980000, 0xC6140000, 0xC6580000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000,
|
||||
0x990056E0, 0xC000491A, 0xC9400000, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000,
|
||||
0xC0004922, 0xCA001120, 0xC3C00000, 0xC3800000, 0xC0004930, 0xCE001120, 0xC0004932, 0xCBC000E0,
|
||||
0xC2800000, 0xC000491E, 0xCFC00000, 0xC0004862, 0xCA800068, 0xC3A0001A, 0x5BB94000, 0xC6B80068,
|
||||
0xC000491C, 0xCF800000, 0x99005950, 0xC000491C, 0xC1400000, 0xC9420050, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xA8E2FFC8, 0xC2000000, 0xC1220002, 0xD90C0000, 0xDF600040, 0x5E600080, 0x8400FFDA,
|
||||
0xC000491C, 0xCA000000, 0xC000491E, 0xCA400000, 0x00000000, 0x00000000, 0x99005B78, 0xDA180000,
|
||||
0xDA580001, 0x00000000, 0xC2000000, 0xDF610050, 0x5E6001FE, 0x8800FFD0, 0xC0004916, 0xCA800000,
|
||||
0xC2C00000, 0xDFEC0050, 0xC2400000, 0x46E52000, 0x84000032, 0x5EA80000, 0x84000022, 0xC2600002,
|
||||
0x990062F0, 0xC000482E, 0xC9400000, 0xC1800002, 0x80000018, 0xC2600000, 0x990062F0, 0xC000482C,
|
||||
0xC9400000, 0xC1800002, 0xC2000068, 0xC6240080, 0xC0004930, 0xCE400088, 0xC000491A, 0xC9800000,
|
||||
0xC0004862, 0xC9400000, 0x6D9C6000, 0x459CE000, 0x59DC4C80, 0x990059D8, 0xD9580000, 0xD9980001,
|
||||
0xD9D40000, 0x99005950, 0xC000491C, 0xC1400000, 0xC9420050, 0xC2000000, 0xDF600040, 0x5E600080,
|
||||
0x8400FFD2, 0x00000000, 0xC000491C, 0xCA000000, 0xC000491E, 0xCA400000, 0x00000000, 0x00000000,
|
||||
0x99005B78, 0xDA180000, 0xDA580001, 0x00000000, 0x800010D0, 0x00000000, 0x990062F0, 0xC000482A,
|
||||
0xC9400000, 0xC1800002, 0x800010A0, 0xC0004938, 0xCBC00000, 0x00000000, 0x00000000, 0x6FF88000,
|
||||
0x6FD44000, 0x4395C000, 0x5BB84A00, 0x58380008, 0xCA000000, 0x00000000, 0x00000000, 0xA6000362,
|
||||
0x00000000, 0xC0004938, 0xCBC00000, 0xC3000000, 0x00000000, 0x6FF88000, 0x6FD44000, 0x4395C000,
|
||||
0x5BB84A00, 0x58380000, 0xCB002018, 0xC2000000, 0x58380008, 0xCA020080, 0x5838000C, 0xCAC00000,
|
||||
0x5838000E, 0xCA400000, 0xC000491A, 0xCF000000, 0xC0004930, 0xCEC00000, 0xC000493C, 0xCE000000,
|
||||
0xC0004932, 0xCE400000, 0x5E200000, 0x84000108, 0xC2800000, 0xA6FE009A, 0x6F206000, 0x47210000,
|
||||
0x5A204C80, 0x5820000C, 0xCA800028, 0x00000000, 0x00000000, 0x5EA80000, 0x840001DA, 0x00000000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x990056E0, 0xC000491A, 0xC9400000, 0x00000000,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0xC0004930, 0xCAC00000, 0xC0004932, 0xCA400000,
|
||||
0xC7EC1120, 0xC0004930, 0xCEC00000, 0x5838000C, 0xCEC00000, 0x58000002, 0xCE400000, 0xC0004934,
|
||||
0xCA000000, 0xC2400002, 0x6E642000, 0x6E642000, 0x76252000, 0x84000012, 0xC2400002, 0x6E684000,
|
||||
0x58380008, 0xCE800208, 0xA6000000, 0x6E682000, 0x58380008, 0xCE800108, 0xC2400002, 0x6E642000,
|
||||
0x76252000, 0x840000D2, 0x58380008, 0xCA000000, 0xC2800000, 0xC2400000, 0xA60200A0, 0xDBA80000,
|
||||
0x6F386000, 0x4739C000, 0x5BB84C80, 0x58380004, 0xCA400080, 0x58380002, 0xCA800080, 0x00000000,
|
||||
0xDEB80000, 0x46694000, 0x88000048, 0x00000000, 0xC0004824, 0xCA000000, 0xC2400002, 0x6E640000,
|
||||
0x5A200002, 0xCE000000, 0x58380008, 0xCE400008, 0x80000000, 0x00000000, 0x80000030, 0xC0004934,
|
||||
0xCA000000, 0x00000000, 0x00000000, 0xA6020C4A, 0x00000000, 0x00000000, 0x80000C80, 0xC2800000,
|
||||
0xC2000200, 0xC240001A, 0xDF690050, 0x46A14000, 0x46694000, 0x8800FFBA, 0xC2000006, 0xC2600982,
|
||||
0x5A643B6E, 0x5838000A, 0xCA800000, 0xC0001006, 0xCE000000, 0xC0001008, 0xCE400000, 0xC000100A,
|
||||
0xCE800000, 0x990055B8, 0xC1A0FFFE, 0xC0000824, 0xC9840068, 0xC2000000, 0xC0004930, 0xCA02E010,
|
||||
0x58380026, 0xCA400000, 0x00000000, 0xC2800000, 0x990055F8, 0xDA980000, 0xC6140000, 0xC6580000,
|
||||
0xC0004934, 0xCA000000, 0x00000000, 0x00000000, 0xA6020002, 0x00000000, 0x00000000, 0x80000300,
|
||||
0xC0004938, 0xCBC00000, 0xC0004878, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000, 0x40100000,
|
||||
0xCA000000, 0xC4240000, 0x00000000, 0x58240018, 0xCA000000, 0x6FF88000, 0x6FD44000, 0x4395C000,
|
||||
0x5BB84A00, 0xC3000000, 0xC3400002, 0xC2C00000, 0xC62C0080, 0xC6270040, 0xC0004940, 0xCE400040,
|
||||
0xC6260040, 0xC0004942, 0xCE400040, 0xC000493C, 0xCA000000, 0x5EEC0000, 0x84000172, 0x5A6C0010,
|
||||
0x46614000, 0x88000178, 0x5A600052, 0x466D4000, 0x88000160, 0x58380006, 0xCA800000, 0xC0004940,
|
||||
0xCA000000, 0xC2400000, 0xC6A70040, 0x7E412000, 0x76252000, 0xC2000000, 0xC6A10040, 0x46610000,
|
||||
0x84000120, 0xC0004942, 0xCA000000, 0xC2400000, 0xC6A60040, 0x7E412000, 0x76252000, 0xC2000000,
|
||||
0xC6A00040, 0x58380002, 0xCA800000, 0x46610000, 0x840000D0, 0xC2400000, 0xC6A60080, 0x46E50000,
|
||||
0x880000C2, 0xC2400000, 0xC6A40080, 0x58380008, 0xCA800000, 0x466D0000, 0x880000A2, 0x00000000,
|
||||
0xA682FFF8, 0x00000000, 0xC7700B08, 0xA6840078, 0x00000000, 0xC7700A08, 0x80000068, 0xC7700208,
|
||||
0xC000493C, 0xCAC00000, 0x80000048, 0xC7700308, 0xC000493C, 0xCAC00000, 0x80000028, 0xC7700908,
|
||||
0x80000018, 0xC7700808, 0x80000008, 0xC7700708, 0x8000FFF8, 0xC7700508, 0xC0004944, 0xCF000000,
|
||||
0xC000493E, 0xCEC00000, 0xC0004938, 0xCA400000, 0xC000493C, 0xCB800000, 0xC000493E, 0xCB400000,
|
||||
0xC3000000, 0x6E608000, 0x6E544000, 0x42150000, 0x5A204A00, 0x5AA00008, 0x58200004, 0xCB000080,
|
||||
0xC0004934, 0xCA000000, 0xC2400000, 0xC0004930, 0xCA42E010, 0xC3C00018, 0xA6020078, 0x00000000,
|
||||
0x43656000, 0x46F90000, 0x88000038, 0x47AD6000, 0x6EE04010, 0x5BE00004, 0xC2000000, 0xC6E00010,
|
||||
0x5E200000, 0x8400002A, 0x5BFC0002, 0x80000018, 0xC3C00004, 0x5A2C0008, 0x46390000, 0x8800FFFA,
|
||||
0x5FB80008, 0x6FE04000, 0x42390000, 0x46312000, 0x88000050, 0xC2400000, 0xC0004930, 0xCA42E010,
|
||||
0xC2060002, 0xC6800000, 0xCE000308, 0x6FE04000, 0x4631C000, 0x5F700010, 0x4675A000, 0xC2000000,
|
||||
0xC6340010, 0xC25A000A, 0xC000491A, 0xCA401C20, 0xC2800000, 0xC0004932, 0xCA8000E0, 0xC0004862,
|
||||
0xCA400068, 0x6FA04010, 0x42290000, 0xC000491E, 0xCE000000, 0xC7E41050, 0xC000491C, 0xCE400000,
|
||||
0x6FE04000, 0x43A1C000, 0xC000493C, 0xCF800000, 0xC000493E, 0xCF400000, 0xC000493A, 0xCFC00000,
|
||||
0x8000FFF0, 0x00000000, 0x00000000, 0x00000000, 0xC2000000, 0xDCE00000, 0xA622FFB8, 0xC1220002,
|
||||
0xD90C0000, 0xC0004938, 0xCBC00000, 0xC0004944, 0xCB400000, 0xC0004862, 0xCB000000, 0xC0004934,
|
||||
0xCA000000, 0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0xA6020248, 0xC2400000, 0x58380008,
|
||||
0xCA406008, 0xDFE80000, 0xC2218E08, 0x5A21BAF6, 0x46294000, 0x8400000A, 0xC2080002, 0x7235A000,
|
||||
0x80000040, 0x5E640000, 0x8400000A, 0xC20C0002, 0x7235A000, 0x80000018, 0xC2000000, 0xC760E718,
|
||||
0xC7604220, 0x5E200000, 0x8400025A, 0xC2200002, 0xC0004930, 0xCE001008, 0x990062F0, 0xC0004828,
|
||||
0xC9400000, 0xC1800002, 0x58380000, 0xCA000000, 0x00000000, 0x00000000, 0xA6000112, 0xC0004940,
|
||||
0xCA800000, 0xC0004942, 0xCA400000, 0xC7600080, 0xC6A01840, 0xC6601040, 0xC000493A, 0xCA400000,
|
||||
0xC0004934, 0xCA800000, 0xC0007200, 0x40300000, 0x40240000, 0x5C000004, 0x5EC07400, 0x8800FFFA,
|
||||
0x5C000200, 0xCE000000, 0x58000002, 0x5EC07400, 0x8800FFFA, 0x5C000200, 0xCE800000, 0xC000493E,
|
||||
0xCA000000, 0xC2400000, 0x5838000C, 0xCE400000, 0x990062F0, 0xC0004830, 0xC9400000, 0xC6180000,
|
||||
0xC0004930, 0xC6100080, 0xCD000080, 0x80000090, 0xC2400002, 0x58380008, 0xCE400008, 0xC0004944,
|
||||
0xCF400000, 0x80000260, 0xC000493C, 0xCA400000, 0xDFE80000, 0x5A300018, 0xC0007200, 0x40200000,
|
||||
0xCA000000, 0x58380008, 0xC6501080, 0xCD001080, 0x5838000A, 0xCE800000, 0x58380026, 0xCE000000,
|
||||
0xC0004944, 0xCF400000, 0x99005950, 0xC000491C, 0xC1400000, 0xC9420050, 0x80000020, 0x00000000,
|
||||
0x990062F0, 0xC0004826, 0xC9400000, 0xC1800002, 0x8000FDC0, 0xC2000000, 0xC2400080, 0xDF600040,
|
||||
0xB624FFCA, 0xC000491C, 0xCA400000, 0xC000491E, 0xCA800000, 0x99005B78, 0xDA580000, 0xDA980001,
|
||||
0x00000000, 0xC0004934, 0xCA000000, 0x00000000, 0xC2800000, 0xA6020140, 0xC2400004, 0xC2000200,
|
||||
0xDF690050, 0x46A14000, 0x46694000, 0x8800FFC2, 0x00000000, 0xC000491A, 0xC9800000, 0xC0004862,
|
||||
0xC9400000, 0x6D9C6000, 0x459CE000, 0x59DC4C80, 0x990059D8, 0xD9580000, 0xD9980001, 0xD9D40000,
|
||||
0x99005950, 0xC000491C, 0xC1400000, 0xC9420050, 0xC2000000, 0xC2400080, 0xDF600040, 0xB624FFCA,
|
||||
0xC000491C, 0xCA400000, 0xC000491E, 0xCA800000, 0x99005B78, 0xDA580000, 0xDA980001, 0x00000000,
|
||||
0x58380008, 0xCA400000, 0xC2000000, 0xCE000020, 0xC2A1FFFE, 0x5AA9FFFE, 0xCE001080, 0x5838000A,
|
||||
0xCE800000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC0000838, 0xC2500002, 0xCE440808,
|
||||
0xC0004848, 0xCB840000, 0xC2000000, 0xC000082C, 0xCA040030, 0x5FB80002, 0xC0004848, 0xCF840000,
|
||||
0x58880002, 0xB608FFF8, 0x00000000, 0xC0800000, 0xC0004844, 0xCC840000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE14, 0x15000000, 0x8000DEC0, 0xC2000000, 0xDF600040, 0x5E200080, 0x84000252, 0x00000000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC000480C, 0xCA000000, 0xC0004910, 0xCA400000,
|
||||
0xC000492C, 0xCA800000, 0xC0004968, 0xCAC00000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000,
|
||||
0x76610000, 0x76A10000, 0x762D6000, 0x840001AA, 0xC0004926, 0xCA400000, 0xC201FFFE, 0x762D6000,
|
||||
0x5A640002, 0x6AE50010, 0x5F200000, 0x84000002, 0x6A250000, 0x8000FFF8, 0xC6E00000, 0x62014008,
|
||||
0xC0004926, 0xCE800000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC0004968, 0xCA400000,
|
||||
0xC2000002, 0x6A290000, 0x7E010000, 0x76252000, 0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE14,
|
||||
0x15000000, 0x6EB4A000, 0x6E944000, 0x4575A000, 0x46B5A000, 0x5B744E20, 0x58340002, 0xC2000000,
|
||||
0xCA0000E0, 0x5834002E, 0xC2400000, 0xCA400080, 0x6EB0A000, 0x6EBC4000, 0x47F18000, 0x46B18000,
|
||||
0x5B300E4E, 0x5B300004, 0x6E642000, 0x4225E000, 0xC39A8024, 0xC7380068, 0xC6B81C20, 0x99005B78,
|
||||
0xDB980000, 0xDBD80001, 0x00000000, 0xC2000000, 0xDF600040, 0x5E200080, 0x8400033A, 0x00000000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC000490E, 0xCA000000, 0xC00049A0, 0xCA800000,
|
||||
0xC000492A, 0xCA400000, 0xC000496A, 0xCB000000, 0xC0004956, 0xCAC00000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE14, 0x15000000, 0x76318000, 0x76718000, 0x76B18000, 0x84000282, 0xC201FFFE, 0x76318000,
|
||||
0x5AEC0002, 0x6B2D0010, 0x5EA00000, 0x84000002, 0x6A2D0000, 0x8000FFF8, 0xC7200000, 0x62016008,
|
||||
0xC0004956, 0xCEC00000, 0x6EF4A000, 0x6ED44000, 0x4575A000, 0x46F5A000, 0x5B744E20, 0x58340000,
|
||||
0xC9C00000, 0xC00049A0, 0xCA000000, 0xC3000000, 0xC5F04020, 0xC2400000, 0xC5E50040, 0x7E412000,
|
||||
0x76610000, 0xCE000000, 0xC0004980, 0x40300000, 0xCEC00000, 0xC161FFFE, 0x5955FFFE, 0x15400000,
|
||||
0x00000000, 0xC000496A, 0xCA400000, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76252000, 0xCE400000,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0x6EF4A000, 0x6ED44000, 0x4575A000, 0x46F5A000,
|
||||
0x5B744E20, 0x5834000E, 0xC2000000, 0xCA0000E0, 0x58340008, 0xC2400000, 0xCA420080, 0x5834000C,
|
||||
0xC2800000, 0xCA832018, 0x6E644010, 0x42250000, 0x4229E000, 0xC39A8008, 0x58340008, 0xCB809020,
|
||||
0x58340008, 0xC2800000, 0xCA810018, 0x6EE0A000, 0x6EE44000, 0x46610000, 0x46E10000, 0x5A200008,
|
||||
0x5A200E28, 0x42290000, 0xC6380068, 0xC6F81C20, 0x99005B78, 0xDB980000, 0xDBD80001, 0x00000000,
|
||||
0xC000495A, 0xC8400000, 0x00000000, 0xC3C00002, 0x7BC42000, 0xCC400000, 0xC0001A1C, 0xCA000000,
|
||||
0xC2400008, 0x6A452000, 0x76610000, 0x84000EAA, 0xC0000A28, 0xC3800000, 0xCB840030, 0xC0000A14,
|
||||
0xC3400000, 0xCB440030, 0xC0004880, 0xCB040000, 0xB7B40052, 0x58041802, 0xCAC00000, 0xA7000058,
|
||||
0x00000000, 0x00000000, 0xA6C8D7E8, 0xC1000000, 0xC6D00020, 0xC0004980, 0x40100000, 0xCA800000,
|
||||
0x80000058, 0x00000000, 0x00000000, 0x00000000, 0x8000D7A0, 0x00000000, 0xC2800000, 0xC7282020,
|
||||
0xC000490E, 0xCA400000, 0x6BE9E000, 0x00000000, 0x77E52000, 0x8400D758, 0x6EA0A000, 0x6E944000,
|
||||
0x45610000, 0x46A10000, 0x5A204E20, 0x5820000C, 0xCA000000, 0xC0004946, 0xCE800000, 0xA6220388,
|
||||
0x00000000, 0xC2200060, 0xC0004948, 0xCE000010, 0xCE001040, 0xC240000A, 0xC000494A, 0xCE400000,
|
||||
0xC2B60002, 0xC0004964, 0xCE801B08, 0x99005E48, 0xC00048A0, 0xC8840000, 0x00000000, 0xC0004946,
|
||||
0xCBC00000, 0x00000000, 0x00000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000, 0x5BB84E20,
|
||||
0x99005C08, 0xDBD80000, 0xDB980001, 0x00000000, 0x99005950, 0xC000491C, 0xC1400000, 0xC9420050,
|
||||
0xC000491C, 0x99005E00, 0xC9400001, 0xC9800000, 0x00000000, 0x99005B78, 0xD9580000, 0xD9980001,
|
||||
0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x99005840, 0xDBD80000, 0xDB980001,
|
||||
0xC7D80000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0x6FF8A000, 0x6FD44000, 0x4579C000,
|
||||
0x47F9C000, 0x5BB84E20, 0x58380010, 0xCA000000, 0xC0004874, 0xC8040000, 0x6C908000, 0x44908000,
|
||||
0x44908000, 0x40100000, 0xCA400000, 0xC4340000, 0x00000000, 0xC7400000, 0xCE000000, 0xC161FFFE,
|
||||
0x5955FFFE, 0x15400000, 0x00000000, 0xC000490E, 0xCA400000, 0xC2800002, 0x6ABD4000, 0x72A52000,
|
||||
0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0x990062F0, 0xC0004836, 0xC9400000,
|
||||
0xC1800002, 0x00000000, 0x00000000, 0x00000000, 0xA8E2FFC8, 0x00000000, 0x58380000, 0xC9000000,
|
||||
0xC00049A0, 0xCA000000, 0xC2800000, 0xC5290040, 0x72A10000, 0xCE000000, 0xC1220002, 0xD90C0000,
|
||||
0xC2000000, 0xC0000A14, 0xCA040030, 0xC0000A28, 0xC2500002, 0xCE440808, 0x58880002, 0xB608FFF8,
|
||||
0xC00048A0, 0xC0800000, 0xCC840000, 0x8000D368, 0xC0004946, 0xCBC00000, 0xC161FFFE, 0x5955FFFE,
|
||||
0x15400000, 0x00000000, 0xC000490E, 0xCA400000, 0xC2800002, 0x6ABD4000, 0x72A52000, 0xCE400000,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000,
|
||||
0x5BB84E20, 0x58380008, 0xCA000000, 0x5838000C, 0xCA400000, 0xC3400000, 0xC6340008, 0xC000494E,
|
||||
0xCF400000, 0xC2800000, 0xC62A0080, 0xC3000000, 0xC6308020, 0x6F304000, 0x43298000, 0xC000493C,
|
||||
0xCF000000, 0xC2C00000, 0xC66C0080, 0xC0004950, 0xCEC00000, 0xC2800000, 0xC66AE028, 0xC0004954,
|
||||
0xCE800000, 0x5F740000, 0x84000188, 0x5E300028, 0x462D2000, 0x84000152, 0x462D2000, 0x8800011A,
|
||||
0x5E300018, 0x462D2000, 0x88000012, 0x462D2000, 0x8400002A, 0x00000000, 0x800000A8, 0x00000000,
|
||||
0x99005F88, 0xDBD80000, 0xDB980001, 0xC7800000, 0xC3400002, 0xC000494E, 0xCF400000, 0xC161FFFE,
|
||||
0x5955FFFE, 0x15400000, 0x00000000, 0xC000490E, 0xCA400000, 0xC2800002, 0x6ABD4000, 0x7E814000,
|
||||
0x76A52000, 0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0xC2200060, 0xC0004948,
|
||||
0xCE001040, 0xC2000000, 0xC000494C, 0xCE000000, 0x80000068, 0x00000000, 0x99005F88, 0xDBD80000,
|
||||
0xDB980001, 0xC7800000, 0x99006188, 0xDBD80000, 0xDB980001, 0xC7800000, 0xC2200058, 0xC0004948,
|
||||
0xCE001040, 0xC2000002, 0xC000494C, 0xCE000000, 0xC2000006, 0xC0001006, 0xCE000000, 0x5838000A,
|
||||
0xCA400000, 0xC2200982, 0x5A203B6E, 0xC0001008, 0xCE000000, 0xC000100A, 0xCE400000, 0xC0004954,
|
||||
0xCA800000, 0xC200000C, 0xC000494A, 0xCE000000, 0xC0004948, 0xCE800010, 0xC2B60000, 0xC0004964,
|
||||
0xCE800000, 0x99005E48, 0xC00048A0, 0xC8840000, 0x00000000, 0xC0004946, 0xCBC00000, 0xC000494C,
|
||||
0xCA000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000, 0x5BB84E20, 0x5E200000, 0x840000E2,
|
||||
0x00000000, 0x99005C08, 0xDBD80000, 0xDB980001, 0x00000000, 0x99005950, 0xC000491C, 0xC1400000,
|
||||
0xC9420050, 0xC000491C, 0x99005E00, 0xC9400001, 0xC9800000, 0x00000000, 0x99005B78, 0xD9580000,
|
||||
0xD9980001, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x99005840, 0xDBD80000,
|
||||
0xDB980001, 0xC7D80000, 0x00000000, 0xC121FFFE, 0x5911FE14, 0x15000000, 0xC000493C, 0xCA800000,
|
||||
0xC000494E, 0xCAC00000, 0xC3000018, 0xC3400006, 0x5E200000, 0x84000012, 0xC2800000, 0xC2C00000,
|
||||
0xC300001E, 0xC3400000, 0xC6AC1080, 0xC72C0420, 0xC76C0818, 0x58380010, 0xCA800000, 0x58380008,
|
||||
0xCEC00000, 0xC6280108, 0xC0004874, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000, 0x40100000,
|
||||
0xCB000000, 0xC4340000, 0x00000000, 0xC7400000, 0xCE800000, 0xC0004952, 0xCE800000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xA8E2FFC8, 0x00000000, 0xC000494C, 0xCA000000, 0xC0004950, 0xCAC00000,
|
||||
0x5E200000, 0x84000052, 0xDFE80000, 0x7E814000, 0x5834001A, 0xCE800000, 0x990062F0, 0xC0004834,
|
||||
0xC9400000, 0xC1800002, 0x990062F0, 0xC0004838, 0xC9400000, 0xC6D80000, 0xC1220002, 0xD90C0000,
|
||||
0x5E200000, 0x84000028, 0x5838002C, 0xCB000000, 0xDFE80000, 0x00000000, 0x58380014, 0xCF000000,
|
||||
0x80000040, 0xC2A1FFFE, 0x5AA9FFFE, 0x58380000, 0xC9000000, 0xC00049A0, 0xCB000000, 0xC2C00000,
|
||||
0xC52D0040, 0x72F18000, 0xCF000000, 0x5838000A, 0xCE800000, 0xC3000000, 0xC0000A14, 0xCB040030,
|
||||
0xC2D00002, 0xC0000A28, 0xCEC40808, 0xC000494E, 0xCA800000, 0x58880002, 0xB4B0FFF8, 0xC00048A0,
|
||||
0xC0800000, 0xCC840000, 0x5EA80000, 0x84000162, 0x5E200000, 0x84000150, 0xC000493C, 0xCA800000,
|
||||
0x00000000, 0x00000000, 0x5AA80060, 0xCE800000, 0x99005F88, 0xDBD80000, 0xDB980001, 0xC7800000,
|
||||
0x99006188, 0xDBD80000, 0xDB980001, 0xC7800000, 0x58380000, 0xCAC00000, 0x00000000, 0xC2000000,
|
||||
0xC6E04020, 0xC0004952, 0xCAC00000, 0x58380000, 0xCA800000, 0xC30C0002, 0xC6300020, 0xA6800078,
|
||||
0x00000000, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0xC0001800, 0xCA000000,
|
||||
0x00000000, 0x00000000, 0xA60CFFCA, 0xC6F00508, 0xC6B0C408, 0xCF000000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE14, 0x15000000, 0x8000C9B0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000C948,
|
||||
0xDCBC0001, 0x5FFC0000, 0x8400003A, 0xC3800002, 0xDB880001, 0x5FFC0004, 0x8400C27A, 0xC3800000,
|
||||
0xDB880001, 0xC3CE0002, 0xC0000800, 0xCFC00708, 0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x94000001,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC000487C, 0xC8040000, 0x00000000, 0x00000000, 0x40080000,
|
||||
0xCBC00000, 0xC4380000, 0x00000000, 0xC000480E, 0xCA000000, 0xC0004858, 0xCB440000, 0x00000000,
|
||||
0x00000000, 0x46350000, 0x88000098, 0x00000000, 0xA7C00028, 0xC0004854, 0xC1000002, 0xCD040000,
|
||||
0xC11C0000, 0xC000082C, 0xCD040E08, 0x800000C0, 0x00000000, 0xA7D20118, 0x00000000, 0xC7E14048,
|
||||
0xC2400000, 0xC6246030, 0xC200006A, 0x46610000, 0xC6240038, 0xC0000810, 0xCE440038, 0x8000FF58,
|
||||
0xC2000000, 0xC0000808, 0xCA040018, 0xC11C0000, 0xC000082C, 0xCD040E08, 0x5A200002, 0x5E600010,
|
||||
0x8400FFF8, 0xC2000000, 0xC0000808, 0xCE040018, 0xC3400000, 0x80000010, 0xC1200002, 0xC0000818,
|
||||
0xCD041008, 0x5B740002, 0xC0004858, 0xCF440000, 0x99005590, 0xC0004848, 0xC9440000, 0xC1800000,
|
||||
0xC11C0002, 0xC000082C, 0xCD040E08, 0x800005E8, 0x5B740002, 0xC0004858, 0xCF440000, 0xC7800000,
|
||||
0xC13C0002, 0xCD001E08, 0xC0004848, 0xC9440000, 0xC1800000, 0xC000082C, 0xC9840030, 0x59540002,
|
||||
0xC0004848, 0xCD440000, 0x58880002, 0xB4980560, 0x00000000, 0xC0800000, 0x80000550, 0xC000487C,
|
||||
0xC8040000, 0x00000000, 0x00000000, 0x40080000, 0xCBC00000, 0xC4280000, 0x00000000, 0xA7C00110,
|
||||
0xC000484C, 0xCA040000, 0xC2400000, 0xC0001AEC, 0xCA440020, 0x5A200002, 0xC000484C, 0xCE040000,
|
||||
0xB624006A, 0xC6800000, 0xC13C0002, 0xCD001E08, 0xC0004848, 0xC9440000, 0xC1800000, 0xC000082C,
|
||||
0xC9840030, 0x59540002, 0xC0004848, 0xCD440000, 0x58880002, 0xB4980450, 0x00000000, 0xC0800000,
|
||||
0x80000440, 0xC0004854, 0xC1000004, 0xCD040000, 0xC0000820, 0xC2000002, 0xCE040000, 0xC2000000,
|
||||
0xC000484C, 0xCE040000, 0xC0004858, 0xCE040000, 0x8000FF10, 0xC0004854, 0xC1000000, 0xCD040000,
|
||||
0xC11C0000, 0xC000082C, 0xCD040E08, 0x99005590, 0xC0004848, 0xC9440000, 0xC1800000, 0xC1200000,
|
||||
0xC0000818, 0xCD041008, 0xC11C0002, 0xC000082C, 0xCD040E08, 0xC2000000, 0xC000484C, 0xCE040000,
|
||||
0x80000340, 0xC0001AC0, 0xCB840000, 0xC000487C, 0xC8040000, 0x00000000, 0x00000000, 0x40080000,
|
||||
0xCBC00000, 0xC4280000, 0x00000000, 0x00000000, 0xC6800000, 0xC13C0000, 0xCD001E08, 0xA780022A,
|
||||
0x00000000, 0x00000000, 0xA7C001EA, 0x00000000, 0xC0001B00, 0xC2060006, 0xCE040310, 0xA7E801A2,
|
||||
0x00000000, 0xC0004850, 0xCA040000, 0xC2400000, 0xC0001AEC, 0xCA448020, 0x5A200002, 0xC0004850,
|
||||
0xCE040000, 0xB624008A, 0x00000000, 0xC6800000, 0xC13C0002, 0xCD001E08, 0xC0001ACC, 0xC2000002,
|
||||
0xCE040008, 0xC0004848, 0xC9440000, 0xC1800000, 0xC000082C, 0xC9840030, 0x59540002, 0xC0004848,
|
||||
0xCD440000, 0x58880002, 0xB49801A8, 0x00000000, 0xC0800000, 0x80000198, 0xC0004854, 0xC1000000,
|
||||
0xCD040000, 0xC11C0000, 0xC000082C, 0xCD040E08, 0x99005590, 0xC0004848, 0xC9440000, 0xC1800000,
|
||||
0xC2000000, 0xC0000820, 0xCE040000, 0xC1200000, 0xC0000818, 0xCD041008, 0xC11C0002, 0xC000082C,
|
||||
0xCD040E08, 0xC0004850, 0xCE040000, 0xC2000002, 0xC0001ACC, 0xCE040010, 0x800000D0, 0xC2000002,
|
||||
0xC0004850, 0xCE040000, 0x8000FE70, 0xC2000000, 0xC0004850, 0xCE040000, 0xA7E60012, 0x00000000,
|
||||
0xC2000002, 0xC0001B00, 0xCE040008, 0x8000FE58, 0x00000000, 0xA7860032, 0x00000000, 0xC6800000,
|
||||
0xC13C0002, 0xCD001E08, 0xC2020002, 0xC7E2A548, 0xC0001B00, 0xCE040000, 0x8000FE00, 0xC2040002,
|
||||
0xC0001B00, 0xCE040208, 0x8000FDE0, 0xC2C80002, 0x6AC56000, 0xDACC0000, 0xC0004854, 0xCB440000,
|
||||
0xC0004848, 0xCB840000, 0xC0000838, 0xC3C00000, 0xCBC40030, 0x5EF40004, 0x8400000A, 0xC3000000,
|
||||
0xC0001ACC, 0xCF040108, 0x47BD8000, 0x84000012, 0x47BD8000, 0x88000018, 0xC1006E8C, 0x8000B6B0,
|
||||
0xC0004840, 0xCC840000, 0x8000F698, 0xC0001AC0, 0xCAC40000, 0xC0004854, 0xCB440000, 0xA6C0FBB2,
|
||||
0x00000000, 0x5EF40000, 0x8400F6F2, 0x5EF40002, 0x8400F982, 0x5EF40004, 0x8400FB82, 0xC1006CE8,
|
||||
0x8000B628, 0x00000000, 0xC0800000, 0xDF4B0040, 0xC0004900, 0xCB800000, 0xC2000000, 0xC000490A,
|
||||
0xA78000B0, 0xCBC00000, 0xC1000000, 0xD9000001, 0xC1000002, 0xD90C0000, 0x6FF46000, 0x47F5A000,
|
||||
0x5B744C80, 0xC2400000, 0x58340004, 0xCA400080, 0xC0004900, 0xCE000008, 0x5A640002, 0x58340004,
|
||||
0xC6500080, 0xCD000080, 0xC0004914, 0xCA400000, 0xC2000002, 0x6A3D0000, 0x72252000, 0xCE400000,
|
||||
0xC0000408, 0xCE000000, 0xA78200B8, 0xC0004908, 0xCBC00000, 0xC1000000, 0xD9000001, 0xC1000002,
|
||||
0xD90C0000, 0x6FF4A000, 0x6FD44000, 0x4575A000, 0x47F5A000, 0x5B744E20, 0xC2800000, 0x58340006,
|
||||
0xCA800080, 0xC2000000, 0xC0004900, 0xCE000108, 0x5EA80002, 0x58340006, 0xC6900080, 0xCD000080,
|
||||
0x5A7C0020, 0xC2000002, 0x6A250000, 0xC0000408, 0xCE000000, 0xDCA80001, 0x5EA80000, 0x8400B498,
|
||||
0x00000000, 0xA4800210, 0x00000000, 0xC3C00000, 0xC000140E, 0xCBC00020, 0xC3400000, 0xC2400000,
|
||||
0x6FF86000, 0x47F9C000, 0x5BB84C80, 0x58380008, 0xCB400080, 0x58380006, 0xCA400080, 0x5F740002,
|
||||
0x58380008, 0xC7500080, 0xCD000080, 0xC2000000, 0x58380004, 0xCA020080, 0xC3000000, 0x5838000C,
|
||||
0xCB000028, 0x5A640002, 0x46250000, 0x8400FFF8, 0xC2400000, 0x58380006, 0xC6500080, 0xCD000080,
|
||||
0xC2000000, 0x5838000A, 0xCA020080, 0x5B300002, 0x5838000C, 0xC7100028, 0xCD000028, 0xC2420020,
|
||||
0x5A200004, 0x46612000, 0x8400FFF8, 0xC2000000, 0x5838000A, 0xC6101080, 0xCD001080, 0xC0004966,
|
||||
0xCA400000, 0xC2000002, 0x6A3D0000, 0x72252000, 0xCE400000, 0x5F740000, 0x84000028, 0xC0004912,
|
||||
0xCA000000, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000, 0x5F300020, 0x84000028,
|
||||
0xC0004924, 0xCA000000, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000, 0xA4820050,
|
||||
0xC2400000, 0xC000140E, 0xCA408020, 0xC2000002, 0xC0004900, 0xCE000008, 0xC000490A, 0xCE400000,
|
||||
0xC1000000, 0xD9000001, 0xD8400080, 0xC1000004, 0xD9000001, 0xA4840250, 0x00000000, 0xC3C00000,
|
||||
0xC000140E, 0xCBC10020, 0xC2800000, 0xC2000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000,
|
||||
0x5BB84E20, 0x5838002E, 0xCA800080, 0x58380006, 0xCA020080, 0xC3400000, 0x5838002E, 0xCB420080,
|
||||
0x5AA80002, 0x46290000, 0x8400FFF8, 0xC2800000, 0x5838002E, 0xC6900080, 0xCD000080, 0x5F740002,
|
||||
0x5838002E, 0xC7501080, 0xCD001080, 0xC0004968, 0xCA400000, 0xC2000002, 0x6A3D0000, 0x72252000,
|
||||
0xCE400000, 0xC000492A, 0xCA800000, 0x5E740000, 0x84000028, 0xC0004910, 0xCA000000, 0xC2C00002,
|
||||
0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000, 0x6ABD4010, 0xA680009A, 0x00000000, 0x58380032,
|
||||
0xCA000000, 0x58000002, 0xCA400000, 0x5838000C, 0x00000000, 0xCE000001, 0xCE400000, 0xC000492A,
|
||||
0xCA000000, 0xC2C00002, 0x6AFD6000, 0x72E10000, 0xCE000000, 0xC000492C, 0xCA000000, 0xC2C00002,
|
||||
0x6AFD6000, 0x72E10000, 0xCE000000, 0x80000028, 0xC000492C, 0xCA000000, 0xC2C00002, 0x6AFD6000,
|
||||
0x7EC16000, 0x76E10000, 0xCE000000, 0xA4880128, 0xC2C00000, 0xC000140E, 0xCAC20020, 0xC000490E,
|
||||
0xCA400000, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76252000, 0xCE400000, 0xC000496A, 0xCA400000,
|
||||
0xC2000002, 0x6A2D0000, 0x72252000, 0xCE400000, 0x6EF0A000, 0x6ED44000, 0x45718000, 0x46F18000,
|
||||
0x5B304E20, 0x58300000, 0xCA000000, 0x00000000, 0xC2400002, 0x76252000, 0x8400005A, 0x58300000,
|
||||
0xCA400000, 0xC2800000, 0x00000000, 0xC6684020, 0xC24C0002, 0xC6A40020, 0xC624C408, 0x58300010,
|
||||
0xCA400508, 0x00000000, 0xC0001800, 0xCE400000, 0xA4860050, 0xC2400000, 0xC000140E, 0xCA418020,
|
||||
0xC2020002, 0xC0004900, 0xCE000108, 0xC0004908, 0xCE400000, 0xC1000000, 0xD9000001, 0xD8400080,
|
||||
0xC1000004, 0xD9000001, 0xC0001408, 0xCC800000, 0xC10E0002, 0xD90C0000, 0x8000ED98, 0xDFBC0001,
|
||||
0xC000496E, 0x99006298, 0xC9400000, 0xC7D80000, 0x00000000, 0xC5700000, 0x5EF00020, 0x88000130,
|
||||
0x6F346000, 0x4735A000, 0x5B744C80, 0x58340008, 0xC2400000, 0xCA400080, 0x00000000, 0xC2000000,
|
||||
0x5A640002, 0xCE400080, 0x58340004, 0xCA000080, 0x00000000, 0x00000000, 0x5E200002, 0xCE000080,
|
||||
0xC0004912, 0xCA800000, 0xC2400002, 0x6A712000, 0x72694000, 0xCE800000, 0x5E200000, 0x8400003A,
|
||||
0xC000480A, 0xCA000000, 0xC0000408, 0xCA800000, 0x76610000, 0x00000000, 0x72294000, 0xCE800000,
|
||||
0x80000020, 0xC0004914, 0xCA000000, 0x7E412000, 0x00000000, 0x76610000, 0xCE000000, 0x800000B8,
|
||||
0x6EF4A000, 0x6ED44000, 0x4575A000, 0x46F5A000, 0x5B744E20, 0x5834002E, 0xC2400000, 0xCA420080,
|
||||
0x00000000, 0xC2000000, 0x5A640002, 0xC6501080, 0xCD001080, 0x58340006, 0xCA000080, 0x00000000,
|
||||
0x00000000, 0x5A200002, 0xCE000080, 0xC0004910, 0xCA400000, 0xC2000002, 0x6A2D0000, 0x72252000,
|
||||
0xCE400000, 0xC2000002, 0x6A310000, 0xC000042A, 0xCE000000, 0xC1040002, 0xD90C0000, 0x00000000,
|
||||
0x8000EB08, 0x00000000, 0xC4980930, 0x9D000000, 0xC5580030, 0xC0000838, 0xCD840000, 0xC1440200,
|
||||
0xC1C03200, 0xC55C1078, 0xC000100E, 0x9D000000, 0xCD800000, 0xC000100C, 0xCDC00000, 0xC0004862,
|
||||
0xC9C00000, 0x00000000, 0x00000000, 0xD9D80001, 0xC0007200, 0x401C0000, 0x5DC07400, 0x8800FFFA,
|
||||
0x5C000200, 0xCD800000, 0xC1F0000A, 0x71D4A000, 0xDD980000, 0xDD9C0001, 0x41D8E000, 0xC5D40268,
|
||||
0xC0001010, 0xCD400000, 0x6C9C8000, 0x449CE000, 0x449CE000, 0x59DC0004, 0xC1601260, 0xC5D40268,
|
||||
0x9D000000, 0xC0001012, 0xCD400000, 0x00000000, 0x00000000, 0xD9580000, 0x6D586000, 0x4558C000,
|
||||
0x59984C80, 0xD9980001, 0x5818000A, 0xC1800000, 0xC9800080, 0xC0005400, 0x6D5CA000, 0x401C0000,
|
||||
0x40180000, 0xC9400000, 0x58000002, 0x00000000, 0xC9C00000, 0xC0004930, 0xCD400000, 0xC0004932,
|
||||
0xCDC00000, 0x59980004, 0xC1C20020, 0xB59CFFF8, 0x00000000, 0xC1800000, 0xDD9C0001, 0x581C000A,
|
||||
0xCD800080, 0x581C000C, 0xC1800000, 0xC9800028, 0xC1C00002, 0xDD940000, 0x69D4E000, 0x5D980002,
|
||||
0xCD800028, 0xC0004924, 0xC9800000, 0x00000000, 0x9D000000, 0x00000000, 0x71D8C000, 0xCD800000,
|
||||
0xC000492A, 0xC9400000, 0xC1C00002, 0x69D8E000, 0x7DC0C000, 0x7594A000, 0xCD400000, 0xC000492C,
|
||||
0xC9400000, 0xDD800001, 0x58000032, 0x75D4A000, 0x84000078, 0xC9400001, 0xC9800000, 0xDD800001,
|
||||
0x5800000C, 0x00000000, 0xCD400001, 0xCD800000, 0xC000492C, 0xC9400000, 0xC000492A, 0xC9800000,
|
||||
0x71D4A000, 0xC000492C, 0xCD400000, 0x71D8C000, 0xC000492A, 0xCD800000, 0x9D000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC0004862, 0xC9800000, 0x00000000, 0xC1C00200, 0x4194C000, 0x45D8E000,
|
||||
0x8800FFFA, 0xC5D80000, 0xC0004862, 0xCD800000, 0xC0001406, 0xC9800000, 0xC1C00002, 0x9D000000,
|
||||
0xC5D80A08, 0xC5581050, 0xCD800000, 0xC0004930, 0xC9800000, 0xC0004932, 0xC9C00000, 0xC140000E,
|
||||
0xC5581C20, 0xDD940000, 0xC0007200, 0x40140000, 0x5D407400, 0x8800FFFA, 0x5C000200, 0xCD800000,
|
||||
0x58000002, 0x5D407400, 0x8800FFFA, 0x5C000200, 0xCDC00000, 0xDD540000, 0xC1C00000, 0x58140006,
|
||||
0xC9C20080, 0xC1800000, 0x58140000, 0xC98000E0, 0x6DDC2000, 0xC000491E, 0x41D8E000, 0xCDC00000,
|
||||
0xDD980000, 0xC1C00022, 0xC5D80D78, 0xDD940001, 0xC5581C20, 0xC000491C, 0xCD800000, 0xDD540000,
|
||||
0xC1C00000, 0x58140006, 0xC9C20080, 0xC1800000, 0x58140004, 0xC9820080, 0x00000000, 0x59DC0002,
|
||||
0x459CC000, 0x8400FFF8, 0xC1C00000, 0x9D000000, 0x58140006, 0xC5D81080, 0xCD801080, 0xC0004860,
|
||||
0xC9400000, 0xC1820080, 0xC1D00002, 0x58146B00, 0xD5800000, 0x58000002, 0xD5800001, 0x59540004,
|
||||
0xB558FFF8, 0xC0004860, 0xC1400000, 0xCD400000, 0xDD980001, 0x9D000000, 0xDD940000, 0xC0001404,
|
||||
0xCDC00808, 0xC1C00000, 0xC1800200, 0x5D980004, 0xDF5D0050, 0x45D8A000, 0x8800FFDA, 0xDD800001,
|
||||
0x5800000C, 0x00000000, 0xC9400001, 0xC9800000, 0xC1C00002, 0xC5D43F08, 0xC5D81E08, 0xC0004862,
|
||||
0xC9C00000, 0x00000000, 0x00000000, 0x581C7200, 0x5DC07400, 0x8800FFFA, 0x5C000200, 0xCD400000,
|
||||
0x58000002, 0x5DC07400, 0x8800FFFA, 0x5C000200, 0xCD800000, 0xC0004862, 0xC9C00000, 0x00000000,
|
||||
0xC15004C0, 0xC5D40068, 0xDD9C0000, 0xC5D41C20, 0xC1C00000, 0xDD800001, 0x58000030, 0xC9C00080,
|
||||
0xDD800001, 0x58000002, 0xC9800000, 0x6DDC2000, 0xC000491C, 0x41D8E000, 0xCD400001, 0xCDC00000,
|
||||
0xDD940001, 0xC1C00000, 0x58140030, 0xC9C00080, 0xC1800000, 0x58140006, 0xC9820080, 0x00000000,
|
||||
0x59DC0002, 0x459CC000, 0x8400FFF8, 0xC1C00000, 0x9D000000, 0x58140030, 0xC5D80080, 0xCD800080,
|
||||
0xC1C00000, 0xDF5C0040, 0x5DDC0080, 0x8400FFD2, 0x00000000, 0x9D000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xC160FFFE, 0xC0000A10, 0xC9440068, 0xC1A0FFFE, 0x59980E28, 0xC000100C, 0xCD400000,
|
||||
0xC000100E, 0xCD800000, 0xC0004964, 0xC9800000, 0x00000000, 0xC170000A, 0x7194A000, 0x6C988000,
|
||||
0x4498C000, 0x4498C000, 0x59980004, 0xC5940278, 0xC0001010, 0xCD400000, 0xC0004946, 0xC9400000,
|
||||
0x00000000, 0x00000000, 0x6D58A000, 0x6D5C4000, 0x45D8C000, 0x4558C000, 0xC000494A, 0xC9400000,
|
||||
0xC0004948, 0xC9C00000, 0x4194C000, 0xC1400012, 0xC55C1820, 0x9D000000, 0xC59C0270, 0xC0001012,
|
||||
0xCDC00000, 0xC1400000, 0x58000012, 0xC9410040, 0xC0004950, 0xC9C00000, 0xC5580000, 0xC5940840,
|
||||
0xC5581080, 0xD9940000, 0xC000493C, 0xC9400000, 0xC0004954, 0xC9800000, 0x59DC00A8, 0x455CE000,
|
||||
0x41D8E000, 0x5D5C0030, 0x8800FFF8, 0xC1C00030, 0xC1800000, 0xC5D84030, 0xC1400000, 0xC5D40010,
|
||||
0x5DD40002, 0x8400005A, 0x5DD40004, 0x84000082, 0x5DD40006, 0x840000AA, 0x5DD80026, 0x840000D2,
|
||||
0xDD540000, 0xDD800001, 0x58000008, 0x40180000, 0xCD400000, 0x59980002, 0x8000FFA8, 0xDD540000,
|
||||
0xDD800001, 0x58000008, 0x40180000, 0xCD4000C0, 0x59980002, 0x8000FF70, 0xDD540000, 0xDD800001,
|
||||
0x58000008, 0x40180000, 0xCD400080, 0x59980002, 0x8000FF38, 0xDD540000, 0xDD800001, 0x58000008,
|
||||
0x40180000, 0xCD400040, 0x59980002, 0x8000FF00, 0x00000000, 0x9D000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x58000012, 0xC9400000, 0xC0004954, 0xC9C00000, 0xC0004950, 0xC9400080, 0xDD800001,
|
||||
0x58000028, 0x5D9C0000, 0x8400003A, 0x5D9C0002, 0x8400003A, 0x5D9C0004, 0x84000052, 0xC55B0040,
|
||||
0xC55C08C0, 0xCD800041, 0xCDC008C0, 0x80000048, 0xCD400000, 0x80000038, 0xC55900C0, 0xC55C1840,
|
||||
0xCD8000C1, 0xCDC01840, 0x80000010, 0xC55A0080, 0xC55C1080, 0xCD800081, 0xCDC01080, 0x9D000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x59540002, 0x6994E018, 0x61C0C008, 0x4194A000, 0x5D940040,
|
||||
0x8800FFFA, 0xC5940000, 0x9D000000, 0xCD400000, 0x00000000, 0x00000000, 0x9D000000, 0x4158A000,
|
||||
0xCD400000, 0x00000000,
|
||||
};
|
||||
|
||||
static unsigned int firmware_binary_data[] = {
|
||||
};
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_DANUBE_H
|
||||
612
package/system/ltq-dsl/src/ifxmips_atm_fw_danube_retx.h
Normal file
612
package/system/ltq-dsl/src/ifxmips_atm_fw_danube_retx.h
Normal file
@@ -0,0 +1,612 @@
|
||||
#ifndef IFXMIPS_ATM_FW_DANUBE_H
|
||||
#define IFXMIPS_ATM_FW_DANUBE_H
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_danube.h
|
||||
** PROJECT : Danube
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 1 AUG 2005
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (PP32 Firmware)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 4 AUG 2005 Xu Liang Initiate Version
|
||||
** 23 OCT 2006 Xu Liang Add GPL header.
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#define VER_IN_FIRMWARE 1
|
||||
|
||||
#define ATM_FW_VER_MAJOR 0
|
||||
#define ATM_FW_VER_MINOR 15
|
||||
|
||||
|
||||
static unsigned int firmware_binary_code[] = {
|
||||
0x800004A0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000FFC8, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC1000002, 0xD90C0000, 0xC2000002, 0xDA080001, 0xC0001B50, 0x8C100000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xC2000000, 0xDA080001, 0x80006018, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80005FF0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC1001DA6, 0x8D3C0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80005EF0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400000, 0xC0004840, 0xC8840000, 0xC2001AEE, 0x8E100000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400002, 0xC0004840, 0xC8840000, 0xC2001AEE, 0x8E100000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3C00004, 0xDBC80001, 0xC10C0002, 0xD90C0000, 0x8000FEC8, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC10E0002, 0xD90C0000, 0xC0004808, 0xC8400000, 0xC2001B4C, 0x8E100000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x900004D9, 0x00000000, 0x00000000, 0x00000000, 0x90CC0481,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC3E02252, 0x5BFC001E, 0xC0004002, 0xCFC00000, 0xC3C00000,
|
||||
0xDBC80001, 0xC1400008, 0xC1900000, 0x71948000, 0x15000100, 0xC140000A, 0xC1900002, 0x71948000,
|
||||
0x15000100, 0xC140000C, 0xC1900004, 0x71948000, 0x15000100, 0xC1400004, 0xC1900006, 0x71948000,
|
||||
0x15000100, 0xC1400006, 0xC1900008, 0x71948000, 0x15000100, 0xC140000E, 0xC190000A, 0x71948000,
|
||||
0x15000100, 0xC1400000, 0xC190000C, 0x71948000, 0x15000100, 0xC1400002, 0xC190000E, 0x71948000,
|
||||
0x15000100, 0xC0400000, 0xC11C0000, 0xC000082C, 0xCD040E08, 0xC11C0002, 0xC000082C, 0xCD040E08,
|
||||
0xC0400002, 0xC11C0000, 0xC000082C, 0xCD040E08, 0xC0000824, 0x00000000, 0xCBC00001, 0xCB800001,
|
||||
0xCB400001, 0xCB000000, 0xC0004878, 0x5BFC4000, 0xCFC00001, 0x5BB84000, 0xCF800001, 0x5B744000,
|
||||
0xCF400001, 0x5B304000, 0xCF000000, 0xC0000A10, 0x00000000, 0xCBC00001, 0xCB800000, 0xC0004874,
|
||||
0x5BFC4000, 0xCFC00001, 0x5BB84000, 0xCF800000, 0xC30001FE, 0xC000140A, 0xCF000000, 0xC3000000,
|
||||
0x7F018000, 0xC000042E, 0xCF000000, 0xC000040E, 0xCF000000, 0xC3C1FFFE, 0xC000490E, 0xCFC00080,
|
||||
0xC000492C, 0xCFC00080, 0xC0004924, 0xCFC00040, 0xC0004912, 0xCFC00040, 0xC0004966, 0xCFC00040,
|
||||
0xC0004968, 0xCFC00080, 0xC000496A, 0xCFC00080, 0xC3C00000, 0xC2800020, 0xC3000000, 0x7F018000,
|
||||
0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0x5838000A, 0xCF000000, 0x5BFC0002, 0xB7E8FFA8,
|
||||
0x00000000, 0xC3C00000, 0xC2800010, 0x6FF86000, 0x47F9C000, 0x5BB84C80, 0xC3400000, 0x58380004,
|
||||
0xCB420080, 0x00000000, 0x58380008, 0xCF400080, 0x5BFC0002, 0xB7E8FF90, 0x00000000, 0xC3C00000,
|
||||
0xC2800020, 0xC348001E, 0xC3000000, 0x7F018000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000,
|
||||
0x5BB84E20, 0x58380008, 0xCF400420, 0x5838000A, 0xCF000000, 0x5BFC0002, 0xB7E8FF90, 0x00000000,
|
||||
0x00000000, 0xC0004816, 0xC3C00000, 0xCBC00080, 0x00000000, 0x00000000, 0xC1000000, 0xD9040001,
|
||||
0xDBC40080, 0xC1000006, 0xD9040001, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0xC3C00000,
|
||||
0xDCFC2008, 0x5FFC0002, 0x00000000, 0x98C08D62, 0xC0004730, 0xC9400000, 0xC0004732, 0xC0001AF2,
|
||||
0xCBC00000, 0x00000000, 0x00000000, 0xA7C20450, 0xC000474A, 0xCA800000, 0x00000000, 0x00000000,
|
||||
0x5D280000, 0x8400FFC8, 0x00000000, 0xC121FFFE, 0x5911FEF4, 0x15000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC2802000, 0x6EA8E010, 0xC0004200, 0xC2400000, 0x7E410000, 0xC1000000, 0xCE400001, 0xCE400001,
|
||||
0xCE400001, 0xCE400001, 0x5EA80002, 0x8400FFC0, 0xC0004300, 0xC2800200, 0x6EA84010, 0xCE400001,
|
||||
0xCE000001, 0xCE400001, 0xCE000001, 0xCE400001, 0xCE000001, 0xCE400001, 0xCE000001, 0x5EA80002,
|
||||
0x8400FFA0, 0xC0004700, 0xC2800200, 0x6EA8E010, 0xCE400001, 0xCE400001, 0xCE400001, 0xCE400001,
|
||||
0x5EA80002, 0x8400FFC0, 0xC0004740, 0xCE400000, 0xC0004742, 0xC1000200, 0x5D100002, 0xCD000000,
|
||||
0xC0004744, 0xCE400000, 0xC0004746, 0xCE400000, 0xC0004748, 0xCE400000, 0xC000474A, 0xCE400000,
|
||||
0xC000474C, 0xC1000002, 0xCD000000, 0xC000474E, 0xCE400000, 0xC0004750, 0xCE400000, 0xC0004752,
|
||||
0xCE400000, 0xC0004754, 0xCE400000, 0xC0400000, 0xC11C0000, 0xC000082C, 0xCD040E08, 0xC0000838,
|
||||
0xCE400000, 0xC0000818, 0xCE400000, 0xC0000820, 0xCE400000, 0xC2804840, 0xC240485A, 0x98C086B0,
|
||||
0xC6800000, 0xC6540000, 0xC1800000, 0xC11C0002, 0xC000082C, 0xCD040E08, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x15000000, 0xC0000A10, 0xCB800000, 0xC0000A12, 0xCB400000, 0xC0000A14, 0xCB000000,
|
||||
0xC0000A16, 0xCAC00000, 0xC0000040, 0xC2800000, 0xCE800008, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC2800002,
|
||||
0xCE800008, 0xC0000A10, 0xCF800000, 0xC0000A12, 0xCF400000, 0xC0000A14, 0xCF000000, 0xC0000A16,
|
||||
0xCEC00000, 0xC1000000, 0xC00048A0, 0xCD000000, 0xC00048A2, 0xCD000000, 0xC0001AF2, 0xC1000000,
|
||||
0xCD000108, 0x80001020, 0x00000000, 0xC3C00000, 0xDCFC2008, 0x5FFC0002, 0x00000000, 0x98C08D62,
|
||||
0xC0004730, 0xC9400000, 0xC0004732, 0x800033C0, 0x00000000, 0xC3C00000, 0xDCFC2008, 0x5FFC0002,
|
||||
0x00000000, 0x98C08D62, 0xC0004730, 0xC9400000, 0xC0004732, 0xC0004810, 0xC9000000, 0xC000474A,
|
||||
0xC9400000, 0xA50007C8, 0x00000000, 0x5D140002, 0x840007BA, 0xC1000000, 0xC000484A, 0xC9000000,
|
||||
0xC0004740, 0xC8400000, 0x5D100000, 0x84000780, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FEF4,
|
||||
0x15000000, 0xC0004744, 0xC8800000, 0xC0001AF0, 0xC3000000, 0x58000002, 0xCB010040, 0x6C7C2000,
|
||||
0x5BFC4300, 0x98C08A88, 0xC1400000, 0xC4540028, 0x6C40A010, 0x5D240002, 0x84000202, 0x00000000,
|
||||
0xC0004742, 0xCA800000, 0x00000000, 0x00000000, 0x59280002, 0x6D130000, 0x6D130010, 0x44508000,
|
||||
0x8400067A, 0x00000000, 0x98C08870, 0xC4540000, 0xC6980000, 0xC241FFFE, 0xC6740000, 0x5D35FFFE,
|
||||
0x8400063A, 0x44748000, 0x8400062A, 0xC1000000, 0x6F502000, 0xC0004300, 0x40100000, 0xC1400000,
|
||||
0x58000000, 0xC9410040, 0xC1800000, 0xC0004814, 0xC9820040, 0x4570A000, 0xC10001FE, 0x4150A004,
|
||||
0x45948000, 0x880005B2, 0x4474C000, 0xC1000200, 0x4190C004, 0xC000473E, 0xC9000000, 0x00000000,
|
||||
0x00000000, 0x41188000, 0xCD000000, 0xC000471C, 0xC9000000, 0x00000000, 0x00000000, 0x41188000,
|
||||
0xCD000000, 0x98C087E8, 0xC4540000, 0x6C58A010, 0xC0004700, 0x58440002, 0x6C470000, 0x6C470010,
|
||||
0x47448000, 0x8400FFA8, 0xC7440000, 0xC0004740, 0xCC400000, 0xC0800000, 0xC0004744, 0xCC800000,
|
||||
0x800004B8, 0xC1000000, 0x583C0000, 0xC9000040, 0x00000000, 0x00000000, 0x45088000, 0x88000268,
|
||||
0xC1400000, 0x583C0000, 0xC9410040, 0xC1800000, 0xC0004814, 0xC9800040, 0x4570A000, 0xC10001FE,
|
||||
0x4150A004, 0x45948000, 0x8800042A, 0xC3800000, 0x583C0002, 0xCB820080, 0xC1000000, 0x583C0002,
|
||||
0xC9000080, 0x00000000, 0x00000000, 0x45388000, 0x84000232, 0xC0400002, 0xC0800000, 0xC3C00000,
|
||||
0xC000481A, 0xC8000000, 0x6F908000, 0x47908000, 0x47908000, 0x4011E000, 0xC000491E, 0xCFC00000,
|
||||
0xC3400000, 0xC0004878, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000, 0x40100000, 0xCAC00000,
|
||||
0xC4300000, 0x00000000, 0xC7340068, 0xC1000002, 0xC5341B08, 0xC100001C, 0xC5341050, 0xC100000C,
|
||||
0xC5340D18, 0xC000491C, 0xCF400000, 0xC3000000, 0xDF700040, 0x5D300080, 0x8800FFD0, 0xC000474A,
|
||||
0xC1000002, 0xCD000000, 0xC000491C, 0xCB400000, 0xC000491E, 0xCBC00000, 0x99007F18, 0xDB580000,
|
||||
0xDBD80001, 0x00000000, 0xC1400000, 0xC794A038, 0xC1800000, 0xC7980028, 0x58144200, 0xC9C00000,
|
||||
0xC1210000, 0x69188010, 0x7D008000, 0x751CE000, 0xCDC00000, 0x80000210, 0x00000000, 0xC1000000,
|
||||
0x583C0000, 0xC903E008, 0x00000000, 0x00000000, 0x5D100000, 0x8400002A, 0xC0004734, 0xC9000000,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x800000A8, 0xC1400000, 0x583C0000, 0xC9410040,
|
||||
0xC1800000, 0xC0004814, 0xC9820040, 0x4570A000, 0xC10001FE, 0x4150A004, 0x45948000, 0x88000142,
|
||||
0xC000473E, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0xC000471C, 0xC9000000,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0xC3800000, 0x583C0002, 0xCB820080, 0x00000000,
|
||||
0x00000000, 0x5D39FFFE, 0x8400004A, 0xC1400000, 0xC794A038, 0xC1800000, 0xC7980028, 0x58144200,
|
||||
0xC9C00000, 0xC1210000, 0x69188010, 0x7D008000, 0x751CE000, 0xCDC00000, 0x98C087E8, 0xC4540000,
|
||||
0x6C58A010, 0xC0004700, 0x58440002, 0x6C470000, 0x6C470010, 0xC0004740, 0xCC400000, 0xC0800000,
|
||||
0xC0004744, 0xCC800000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x8000F270, 0x00000000,
|
||||
0x00000000, 0x98C086F0, 0xC0004748, 0xC9800000, 0xC2000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC1400000, 0xC7D4A038, 0xC1800000, 0xC7D80028, 0x58144200,
|
||||
0xC9C00000, 0xC1210000, 0x69188010, 0x7D008000, 0x751CE000, 0xCDC00000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x98C087E8, 0xC7D40000, 0x6FD8A010, 0xC0004700, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x98C08870, 0xC7D40000, 0xC7980000, 0xC241FFFE, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08A88, 0xC1400000, 0xC7D40028, 0x6FC0A010,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08AB8, 0xC1400000, 0xC7D40028, 0x6FC0A010,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08AF0, 0xC7D40000, 0xC0004740, 0xC9C00000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x98C08BE0, 0xC7D40000, 0xC0004742, 0xC9800000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC0004958, 0xC8400000, 0x00000000, 0xC3C00002,
|
||||
0x7BC42000, 0xCC400000, 0xC0004848, 0xCB840000, 0xC000495C, 0xCAC40000, 0xC0004844, 0xC8840000,
|
||||
0x46F90000, 0x8400F47A, 0xC000487C, 0xC8040000, 0x00000000, 0x00000000, 0x40080000, 0xCA000000,
|
||||
0xC0001624, 0xCB040000, 0xA63C005A, 0x00000000, 0x00000000, 0xA71EF412, 0x00000000, 0xC0000824,
|
||||
0xCA840000, 0x6CA08000, 0x6CA42000, 0x46610000, 0x42290000, 0xC35E0002, 0xC6340068, 0xC0001624,
|
||||
0xCF440080, 0xC2000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xC0004844, 0xC8840000, 0xC000082C, 0xCA040040, 0x00000000, 0x00000000, 0x58880002,
|
||||
0xB608FFF8, 0x00000000, 0xC0800000, 0xC0004844, 0xCC840040, 0x5AEC0002, 0xC000495C, 0xCEC40000,
|
||||
0x5E6C0006, 0x84000048, 0xC0004848, 0xCB840000, 0xC0000838, 0xC2500002, 0xCE440808, 0x5FB80002,
|
||||
0xC0004848, 0xCF840000, 0x5EEC0002, 0xC000495C, 0xCEC40000, 0x00000000, 0xC121FFFE, 0x5911FE54,
|
||||
0x15000000, 0x8000F278, 0xC000495A, 0xC8400000, 0x00000000, 0xC3C00002, 0x7BC42000, 0xCC400000,
|
||||
0xC0004960, 0xCAC40000, 0x00000000, 0x00000000, 0x5EEC0000, 0x840000F2, 0x00000000, 0xB6FC0030,
|
||||
0xC0001600, 0xCA040000, 0x00000000, 0x00000000, 0xA61E00B2, 0x6FE90000, 0xC0000A28, 0xCE840808,
|
||||
0xC2C00000, 0xC2800004, 0xB6E80080, 0xC0001604, 0xCA840000, 0xC0004960, 0xCEC40000, 0xA69EFC8A,
|
||||
0x00000000, 0x6FE90000, 0xC0000A28, 0xCE840808, 0xC2C00002, 0xC0001600, 0xCA040000, 0x00000000,
|
||||
0x00000000, 0xA61E000A, 0x6FE90000, 0xC0000A28, 0xCE840808, 0xC2C00000, 0xC0001604, 0xCA840000,
|
||||
0xC0004960, 0xCEC40000, 0xA69EFBF2, 0xC2400000, 0xC0000A14, 0xCA440030, 0x00000000, 0x00000000,
|
||||
0x46E52000, 0xA4400000, 0xC2800000, 0xDFEB0031, 0x8000FFF8, 0xDFEA0031, 0xB668EBEA, 0x00000000,
|
||||
0xC00048A0, 0xCB040000, 0xC0000A10, 0xCA840000, 0x6F208000, 0x6F242000, 0x46610000, 0x42A10000,
|
||||
0xC2400000, 0xC0000A14, 0xCA440030, 0xC35E0002, 0xC6340068, 0xC0001604, 0xCF440080, 0x5B300002,
|
||||
0xB670FFF8, 0x5AEC0002, 0xC3000000, 0xC00048A0, 0xCF040000, 0xC0004960, 0xCEC40000, 0x8000F018,
|
||||
0xC0004918, 0xD2800000, 0xC2000000, 0xDF600040, 0x5E600080, 0x8400028A, 0x00000000, 0xC161FFFE,
|
||||
0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC000480A, 0xCA000000,
|
||||
0xC0004912, 0xCA400000, 0xC0004924, 0xCA800000, 0xC0004966, 0xCAC00000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x15000000, 0x76610000, 0x76A10000, 0x76E10000, 0x840001CA, 0xC0004918, 0xCA400000,
|
||||
0xC28001FE, 0x76A10000, 0x5A640002, 0x6A254010, 0x5EE80000, 0x84000002, 0x6AA54000, 0x8000FFF8,
|
||||
0xC6280000, 0x62818008, 0xC0004918, 0xCF000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC0004966, 0xCA400000, 0xC2000002, 0x6A310000, 0x7E010000,
|
||||
0x76252000, 0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x6F346000, 0x4735A000,
|
||||
0x5B744C80, 0xC2800000, 0x58340006, 0xCA800080, 0xC2C00000, 0x58340000, 0xCAC000E0, 0xC2400000,
|
||||
0x5834000A, 0xCA420080, 0x6EA82000, 0x42E9E000, 0x6F2CA000, 0x42E56000, 0x5AEC1400, 0xC3990040,
|
||||
0xC7381C20, 0xC6F80068, 0x99007F18, 0xDB980000, 0xDBD80001, 0x00000000, 0xDEA00000, 0x47210000,
|
||||
0x8400FD38, 0xC0004958, 0xC8400000, 0x00000000, 0xC1000002, 0x79042000, 0xCC400000, 0xC0004848,
|
||||
0xCBC40000, 0xC0004844, 0xC8840000, 0x5FFC0000, 0x8400ECA2, 0xC0004740, 0xCB000000, 0xC0004744,
|
||||
0xCAC00000, 0x6F282000, 0x5AA84300, 0xC000487C, 0xC8040000, 0x00000000, 0x00000000, 0x40080000,
|
||||
0xCA400000, 0xC4000000, 0x00000000, 0xC0004878, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000,
|
||||
0x40100000, 0xC9000000, 0xC4340000, 0x00000000, 0x5C440000, 0x8400008A, 0x00000000, 0xC00047D2,
|
||||
0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x58340002, 0xC9000080, 0x00000000,
|
||||
0x00000000, 0x58280002, 0x6D120000, 0xCD001080, 0x5AEC0002, 0xC0004744, 0xCEC00000, 0x80000618,
|
||||
0x00000000, 0xC00047C0, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0xA67C0028,
|
||||
0xC00047C2, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x80001E00, 0x00000000,
|
||||
0xA6600022, 0xC00047C4, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x80000558,
|
||||
0xC00047C6, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0xC3C00000, 0xC67D0040,
|
||||
0xC3800000, 0xC6780040, 0x473C8000, 0x84000090, 0x46F88000, 0x84000080, 0xC1000000, 0xC0004814,
|
||||
0xC9000040, 0x00000000, 0x00000000, 0x5D100000, 0x840000D8, 0x5AEC0002, 0xC0004744, 0xCEC00000,
|
||||
0xC00047CA, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x80000460, 0x00000000,
|
||||
0x98C08AF0, 0xC7D40000, 0xC0004740, 0xC9C00000, 0x5D240000, 0x84000052, 0x00000000, 0x98C087E8,
|
||||
0xC7D40000, 0x6FD8A010, 0xC0004700, 0xC00047C8, 0xC9000000, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD000000, 0x80001C28, 0xC00047CC, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000,
|
||||
0x6FE82000, 0x5AA84300, 0x5D380000, 0x84000088, 0x00000000, 0x98C086F0, 0xC0004748, 0xC9800000,
|
||||
0xC2000000, 0x58280002, 0x6E520000, 0xCD001080, 0x58280002, 0xCE400080, 0x5D25FFFE, 0x84000028,
|
||||
0xC00047D0, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x800002B8, 0xC3000000,
|
||||
0x58280002, 0xCB000080, 0x00000000, 0x00000000, 0x5D31FFFE, 0x84000030, 0xC00047D0, 0xC9000000,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x80000248, 0x00000000, 0x98C086F0, 0xC0004748,
|
||||
0xC9800000, 0xC2000000, 0x58340002, 0xC6500080, 0xC7D01040, 0xC7901840, 0xCD000000, 0x58280002,
|
||||
0xCE400080, 0xC3C00200, 0x5FFC001C, 0xC3800000, 0xDF790050, 0x00000000, 0x00000000, 0x47BC8000,
|
||||
0x8800FFC2, 0xC0004862, 0xCBC00000, 0xC0000000, 0xC76C0000, 0x5BBC7200, 0xC280001C, 0xCA6C0001,
|
||||
0x00000000, 0x00000000, 0xCE780001, 0xC1007400, 0x47908000, 0xC1007200, 0xC5380006, 0x5EA80002,
|
||||
0x8400FFA0, 0xC3800000, 0xC000481A, 0xC8000000, 0x6F108000, 0x47108000, 0x47108000, 0x4011C000,
|
||||
0xC000491E, 0xCF800000, 0xC2C00000, 0xC7EC0068, 0xC100001C, 0xC52C1050, 0xC100000A, 0xC52C0D18,
|
||||
0xC000491C, 0xCEC00000, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050, 0xC2800000, 0xDF680040,
|
||||
0x5D280080, 0x8800FFD0, 0xC000491C, 0xCAC00000, 0xC000491E, 0xCB800000, 0x99007F18, 0xDAD80000,
|
||||
0xDB980001, 0x00000000, 0xC00047CE, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000,
|
||||
0x00000000, 0x80001868, 0x00000000, 0x00000000, 0x00000000, 0xC0004878, 0xC8040000, 0x6C908000,
|
||||
0x44908000, 0x44908000, 0x40100000, 0xCA000000, 0xC4240000, 0x00000000, 0xC0004934, 0xCE000000,
|
||||
0xC2800002, 0xC4681C10, 0xC62821D8, 0xC6281E08, 0xC2600010, 0x5A650080, 0xC0004800, 0xCB400000,
|
||||
0xC2200400, 0x5A200040, 0xC7601048, 0xC0001220, 0xCE800000, 0xC0001200, 0xCE400000, 0xC0001202,
|
||||
0xCE000000, 0xC0001240, 0xCB400000, 0x00000000, 0x00000000, 0xA754FFC0, 0xC2000000, 0xC7600048,
|
||||
0xA7520022, 0x00000000, 0x00000000, 0x99008690, 0xC0004822, 0xC9400000, 0xC1800002, 0x800016F8,
|
||||
0x582040C0, 0xC2000000, 0xCA000020, 0xC2400000, 0xCA414008, 0xC2800000, 0xCA812008, 0xC2C00000,
|
||||
0xCAC20020, 0xC0004938, 0xCE000000, 0xC0004920, 0xCE400000, 0xC0004916, 0xCE800000, 0xC0004922,
|
||||
0xCEC00000, 0xA6400538, 0x00000000, 0xC0004938, 0xCBC00000, 0x00000000, 0xC3800000, 0x6FF48000,
|
||||
0x6FD44000, 0x4355A000, 0x5B744A00, 0x58340000, 0xCB802018, 0x00000000, 0xC2000000, 0x6FB46000,
|
||||
0x47B5A000, 0x5B744C80, 0x5834000C, 0xCA000028, 0xC000491A, 0xCF800000, 0x5E200000, 0x8400046A,
|
||||
0xC2000000, 0xDF610050, 0x5E6001E8, 0x8800FFD0, 0xC2000002, 0xC2400466, 0xC2A00000, 0x5AA80000,
|
||||
0xC0001006, 0xCE000000, 0xC0001008, 0xCE400000, 0xC000100A, 0xCE800000, 0x99007958, 0xC1A0FFFE,
|
||||
0xC0000824, 0xC9840068, 0xC0004934, 0xCA400000, 0xC2000000, 0xC2800002, 0x99007998, 0xDA980000,
|
||||
0xC6140000, 0xC6580000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x99007A80, 0xC000491A, 0xC9400000, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FE54,
|
||||
0x15000000, 0xC0004922, 0xCA001120, 0xC3C00000, 0xC3800000, 0xC0004930, 0xCE001120, 0xC0004932,
|
||||
0xCBC000E0, 0xC2800000, 0xC000491E, 0xCFC00000, 0xC0004862, 0xCA800068, 0xC3A0001A, 0x5BB94000,
|
||||
0xC6B80068, 0xC000491C, 0xCF800000, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xA8E2FFC8, 0xC2000000, 0xC1220002, 0xD90C0000, 0xDF600040, 0x5E600080,
|
||||
0x8400FFDA, 0xC000491C, 0xCA000000, 0xC000491E, 0xCA400000, 0x00000000, 0x00000000, 0x99007F18,
|
||||
0xDA180000, 0xDA580001, 0x00000000, 0xC2000000, 0xDF610050, 0x5E6001FE, 0x8800FFD0, 0xC0004916,
|
||||
0xCA800000, 0xC2C00000, 0xDFEC0050, 0xC2400000, 0x46E52000, 0x84000032, 0x5EA80000, 0x84000022,
|
||||
0xC2600002, 0x99008690, 0xC000482E, 0xC9400000, 0xC1800002, 0x80000018, 0xC2600000, 0x99008690,
|
||||
0xC000482C, 0xC9400000, 0xC1800002, 0xC2000068, 0xC6240080, 0xC0004930, 0xCE400088, 0xC000491A,
|
||||
0xC9800000, 0xC0004862, 0xC9400000, 0x6D9C6000, 0x459CE000, 0x59DC4C80, 0x99007D78, 0xD9580000,
|
||||
0xD9980001, 0xD9D40000, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050, 0xC2000000, 0xDF600040,
|
||||
0x5E600080, 0x8400FFD2, 0x00000000, 0xC000491C, 0xCA000000, 0xC000491E, 0xCA400000, 0x00000000,
|
||||
0x00000000, 0x99007F18, 0xDA180000, 0xDA580001, 0x00000000, 0x80001148, 0x00000000, 0x99008690,
|
||||
0xC000482A, 0xC9400000, 0xC1800002, 0x80001118, 0xC0004938, 0xCBC00000, 0x00000000, 0x00000000,
|
||||
0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0x58380008, 0xCA000000, 0x00000000, 0x00000000,
|
||||
0xA600037A, 0x00000000, 0xC0004938, 0xCBC00000, 0xC3000000, 0x00000000, 0x6FF88000, 0x6FD44000,
|
||||
0x4395C000, 0x5BB84A00, 0x58380000, 0xCB002018, 0xC2000000, 0x58380008, 0xCA020080, 0x5838000C,
|
||||
0xCAC00000, 0x5838000E, 0xCA400000, 0xC000491A, 0xCF000000, 0xC0004930, 0xCEC00000, 0xC000493C,
|
||||
0xCE000000, 0xC0004932, 0xCE400000, 0x5E200000, 0x84000120, 0xC2800000, 0xA6FE00B2, 0x6F206000,
|
||||
0x47210000, 0x5A204C80, 0x5820000C, 0xCA800028, 0x00000000, 0x00000000, 0x5EA80000, 0x840001F2,
|
||||
0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x99007A80, 0xC000491A, 0xC9400000, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000,
|
||||
0xC0004930, 0xCAC00000, 0xC0004932, 0xCA400000, 0xC7EC1120, 0xC0004930, 0xCEC00000, 0x5838000C,
|
||||
0xCEC00000, 0x58000002, 0xCE400000, 0xC0004934, 0xCA000000, 0xC2400002, 0x6E642000, 0x6E642000,
|
||||
0x76252000, 0x84000012, 0xC2400002, 0x6E684000, 0x58380008, 0xCE800208, 0xA6000000, 0x6E682000,
|
||||
0x58380008, 0xCE800108, 0xC2400002, 0x6E642000, 0x76252000, 0x840000D2, 0x58380008, 0xCA000000,
|
||||
0xC2800000, 0xC2400000, 0xA60200A0, 0xDBA80000, 0x6F386000, 0x4739C000, 0x5BB84C80, 0x58380004,
|
||||
0xCA400080, 0x58380002, 0xCA800080, 0x00000000, 0xDEB80000, 0x46694000, 0x88000048, 0x00000000,
|
||||
0xC0004824, 0xCA000000, 0xC2400002, 0x6E640000, 0x5A200002, 0xCE000000, 0x58380008, 0xCE400008,
|
||||
0x80000000, 0x00000000, 0x80000030, 0xC0004934, 0xCA000000, 0x00000000, 0x00000000, 0xA6020CAA,
|
||||
0x00000000, 0x00000000, 0x80000CE0, 0xC2800000, 0xC2000200, 0xC240001A, 0xDF690050, 0x46A14000,
|
||||
0x46694000, 0x8800FFBA, 0xC2000006, 0xC2600982, 0x5A643B6E, 0x5838000A, 0xCA800000, 0xC0001006,
|
||||
0xCE000000, 0xC0001008, 0xCE400000, 0xC000100A, 0xCE800000, 0x99007958, 0xC1A0FFFE, 0xC0000824,
|
||||
0xC9840068, 0xC2000000, 0xC0004930, 0xCA02E010, 0x58380026, 0xCA400000, 0x00000000, 0xC2800000,
|
||||
0x99007998, 0xDA980000, 0xC6140000, 0xC6580000, 0xC0004934, 0xCA000000, 0x00000000, 0x00000000,
|
||||
0xA6020002, 0x00000000, 0x00000000, 0x80000300, 0xC0004938, 0xCBC00000, 0xC0004878, 0xC8040000,
|
||||
0x6C908000, 0x44908000, 0x44908000, 0x40100000, 0xCA000000, 0xC4240000, 0x00000000, 0x58240018,
|
||||
0xCA000000, 0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB84A00, 0xC3000000, 0xC3400002, 0xC2C00000,
|
||||
0xC62C0080, 0xC6270040, 0xC0004940, 0xCE400040, 0xC6260040, 0xC0004942, 0xCE400040, 0xC000493C,
|
||||
0xCA000000, 0x5EEC0000, 0x84000172, 0x5A6C0010, 0x46614000, 0x88000178, 0x5A600052, 0x466D4000,
|
||||
0x88000160, 0x58380006, 0xCA800000, 0xC0004940, 0xCA000000, 0xC2400000, 0xC6A70040, 0x7E412000,
|
||||
0x76252000, 0xC2000000, 0xC6A10040, 0x46610000, 0x84000120, 0xC0004942, 0xCA000000, 0xC2400000,
|
||||
0xC6A60040, 0x7E412000, 0x76252000, 0xC2000000, 0xC6A00040, 0x58380002, 0xCA800000, 0x46610000,
|
||||
0x840000D0, 0xC2400000, 0xC6A60080, 0x46E50000, 0x880000C2, 0xC2400000, 0xC6A40080, 0x58380008,
|
||||
0xCA800000, 0x466D0000, 0x880000A2, 0x00000000, 0xA682FFF8, 0x00000000, 0xC7700B08, 0xA6840078,
|
||||
0x00000000, 0xC7700A08, 0x80000068, 0xC7700208, 0xC000493C, 0xCAC00000, 0x80000048, 0xC7700308,
|
||||
0xC000493C, 0xCAC00000, 0x80000028, 0xC7700908, 0x80000018, 0xC7700808, 0x80000008, 0xC7700708,
|
||||
0x8000FFF8, 0xC7700508, 0xC0004944, 0xCF000000, 0xC000493E, 0xCEC00000, 0xC0004938, 0xCA400000,
|
||||
0xC000493C, 0xCB800000, 0xC000493E, 0xCB400000, 0xC3000000, 0x6E608000, 0x6E544000, 0x42150000,
|
||||
0x5A204A00, 0x5AA00008, 0x58200004, 0xCB000080, 0xC0004934, 0xCA000000, 0xC2400000, 0xC0004930,
|
||||
0xCA42E010, 0xC3C00018, 0xA6020078, 0x00000000, 0x43656000, 0x46F90000, 0x88000038, 0x47AD6000,
|
||||
0x6EE04010, 0x5BE00004, 0xC2000000, 0xC6E00010, 0x5E200000, 0x8400002A, 0x5BFC0002, 0x80000018,
|
||||
0xC3C00004, 0x5A2C0008, 0x46390000, 0x8800FFFA, 0x5FB80008, 0x6FE04000, 0x42390000, 0x46312000,
|
||||
0x88000050, 0xC2400000, 0xC0004930, 0xCA42E010, 0xC2060002, 0xC6800000, 0xCE000308, 0x6FE04000,
|
||||
0x4631C000, 0x5F700010, 0x4675A000, 0xC2000000, 0xC6340010, 0xC25A000A, 0xC000491A, 0xCA401C20,
|
||||
0xC2800000, 0xC0004932, 0xCA8000E0, 0xC0004862, 0xCA400068, 0x6FA04010, 0x42290000, 0xC000491E,
|
||||
0xCE000000, 0xC7E41050, 0xC000491C, 0xCE400000, 0x6FE04000, 0x43A1C000, 0xC000493C, 0xCF800000,
|
||||
0xC000493E, 0xCF400000, 0xC000493A, 0xCFC00000, 0x8000FFF0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC2000000, 0xDCE00000, 0xA622FFB8, 0xC1220002, 0xD90C0000, 0xC0004938, 0xCBC00000, 0xC0004944,
|
||||
0xCB400000, 0xC0004862, 0xCB000000, 0xC0004934, 0xCA000000, 0x6FF88000, 0x6FD44000, 0x4395C000,
|
||||
0x5BB84A00, 0xA6020278, 0xC2400000, 0x58380008, 0xCA406008, 0xDFE80000, 0xC2218E08, 0x5A21BAF6,
|
||||
0x46294000, 0x8400000A, 0xC2080002, 0x7235A000, 0x80000040, 0x5E640000, 0x8400000A, 0xC20C0002,
|
||||
0x7235A000, 0x80000018, 0xC2000000, 0xC760E718, 0xC7604220, 0x5E200000, 0x8400028A, 0xC2200002,
|
||||
0xC0004930, 0xCE001008, 0x99008690, 0xC0004828, 0xC9400000, 0xC1800002, 0xC0004780, 0xC93C0000,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD3C0000, 0x58380000, 0xCA000000, 0x00000000, 0x00000000,
|
||||
0xA6000112, 0xC0004940, 0xCA800000, 0xC0004942, 0xCA400000, 0xC7600080, 0xC6A01840, 0xC6601040,
|
||||
0xC000493A, 0xCA400000, 0xC0004934, 0xCA800000, 0xC0007200, 0x40300000, 0x40240000, 0x5C000004,
|
||||
0x5EC07400, 0x8800FFFA, 0x5C000200, 0xCE000000, 0x58000002, 0x5EC07400, 0x8800FFFA, 0x5C000200,
|
||||
0xCE800000, 0xC000493E, 0xCA000000, 0xC2400000, 0x5838000C, 0xCE400000, 0x99008690, 0xC0004830,
|
||||
0xC9400000, 0xC6180000, 0xC0004930, 0xC6100080, 0xCD000080, 0x80000090, 0xC2400002, 0x58380008,
|
||||
0xCE400008, 0xC0004944, 0xCF400000, 0x80000290, 0xC000493C, 0xCA400000, 0xDFE80000, 0x5A300018,
|
||||
0xC0007200, 0x40200000, 0xCA000000, 0x58380008, 0xC6501080, 0xCD001080, 0x5838000A, 0xCE800000,
|
||||
0x58380026, 0xCE000000, 0xC0004944, 0xCF400000, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050,
|
||||
0x80000050, 0x00000000, 0x99008690, 0xC0004826, 0xC9400000, 0xC1800002, 0xC0004760, 0xC93C0000,
|
||||
0x00000000, 0x00000000, 0x59100002, 0xCD3C0000, 0x8000FD90, 0xC2000000, 0xC2400080, 0xDF600040,
|
||||
0xB624FFCA, 0xC000491C, 0xCA400000, 0xC000491E, 0xCA800000, 0x99007F18, 0xDA580000, 0xDA980001,
|
||||
0x00000000, 0xC0004934, 0xCA000000, 0x00000000, 0xC2800000, 0xA6020140, 0xC2400004, 0xC2000200,
|
||||
0xDF690050, 0x46A14000, 0x46694000, 0x8800FFC2, 0x00000000, 0xC000491A, 0xC9800000, 0xC0004862,
|
||||
0xC9400000, 0x6D9C6000, 0x459CE000, 0x59DC4C80, 0x99007D78, 0xD9580000, 0xD9980001, 0xD9D40000,
|
||||
0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050, 0xC2000000, 0xC2400080, 0xDF600040, 0xB624FFCA,
|
||||
0xC000491C, 0xCA400000, 0xC000491E, 0xCA800000, 0x99007F18, 0xDA580000, 0xDA980001, 0x00000000,
|
||||
0x58380008, 0xCA400000, 0xC2000000, 0xCE000020, 0xC2A1FFFE, 0x5AA9FFFE, 0xCE001080, 0x5838000A,
|
||||
0xCE800000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0000838, 0xC2500002, 0xCE440808, 0xC0004848, 0xCBC40000, 0xC3800000, 0xC000082C, 0xCB840030,
|
||||
0x5FFC0002, 0xC0004848, 0xCFC40000, 0x58880002, 0x44B88000, 0xC1000000, 0xC5080006, 0xC0004844,
|
||||
0xCC840000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x8000CBD8, 0xC2000000, 0xDF600040,
|
||||
0x5E200080, 0x84000282, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC000480C, 0xCA000000, 0xC0004910, 0xCA400000, 0xC000492C, 0xCA800000,
|
||||
0xC0004968, 0xCAC00000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x76610000, 0x76A10000,
|
||||
0x762D6000, 0x840001C2, 0xC0004926, 0xCA400000, 0xC201FFFE, 0x762D6000, 0x5A640002, 0x6AE50010,
|
||||
0x5F200000, 0x84000002, 0x6A250000, 0x8000FFF8, 0xC6E00000, 0x62014008, 0xC0004926, 0xCE800000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC0004968,
|
||||
0xCA400000, 0xC2000002, 0x6A290000, 0x7E010000, 0x76252000, 0xCE400000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x15000000, 0x6EB4A000, 0x6E944000, 0x4575A000, 0x46B5A000, 0x5B744E20, 0x58340002,
|
||||
0xC2000000, 0xCA0000E0, 0x5834002E, 0xC2400000, 0xCA400080, 0x6EB0A000, 0x6EBC4000, 0x47F18000,
|
||||
0x46B18000, 0x5B300E4E, 0x5B300004, 0x6E642000, 0x4225E000, 0xC39A8024, 0xC7380068, 0xC6B81C20,
|
||||
0x99007F18, 0xDB980000, 0xDBD80001, 0x00000000, 0xC2000000, 0xDF600040, 0x5E200080, 0x840002BA,
|
||||
0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000490E, 0xCA000000, 0xC000492A, 0xCA400000, 0xC000496A, 0xCB000000, 0xC0004956, 0xCAC00000,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x76318000, 0x76718000, 0x84000202, 0xC201FFFE,
|
||||
0x76318000, 0x5AEC0002, 0x6B2D0010, 0x5EA00000, 0x84000002, 0x6A2D0000, 0x8000FFF8, 0xC7200000,
|
||||
0x62016008, 0xC0004956, 0xCEC00000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC000496A, 0xCA400000, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76252000,
|
||||
0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x6EF4A000, 0x6ED44000, 0x4575A000,
|
||||
0x46F5A000, 0x5B744E20, 0x5834000E, 0xC2000000, 0xCA0000E0, 0x58340008, 0xC2400000, 0xCA420080,
|
||||
0x5834000C, 0xC2800000, 0xCA832018, 0x6E644010, 0x42250000, 0x4229E000, 0xC39A8008, 0x58340008,
|
||||
0xCB809020, 0x58340008, 0xC2800000, 0xCA810018, 0x6EE0A000, 0x6EE44000, 0x46610000, 0x46E10000,
|
||||
0x5A200008, 0x5A200E28, 0x42290000, 0xC6380068, 0xC6F81C20, 0x99007F18, 0xDB980000, 0xDBD80001,
|
||||
0x00000000, 0xC000495A, 0xC8400000, 0x00000000, 0xC3C00002, 0x7BC42000, 0xCC400000, 0xC0001A1C,
|
||||
0xCA000000, 0xC2400008, 0x6A452000, 0x76610000, 0x84000E82, 0xC0000A28, 0xC3800000, 0xCB840030,
|
||||
0xC0000A14, 0xC3400000, 0xCB440030, 0xC0004880, 0xCB040000, 0x47788000, 0x88000E30, 0x58041802,
|
||||
0xCAC00000, 0xA7000040, 0x00000000, 0x00000000, 0xA6C8C5A8, 0xC2800000, 0xC6E80020, 0x80000058,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x8000C578, 0x00000000, 0xC2800000, 0xC7282020, 0xC000490E,
|
||||
0xCA400000, 0x6BE9E000, 0x00000000, 0x77E52000, 0x8400C530, 0x6EA0A000, 0x6E944000, 0x45610000,
|
||||
0x46A10000, 0x5A204E20, 0x5820000C, 0xCA000000, 0xC0004946, 0xCE800000, 0xA6220378, 0x00000000,
|
||||
0xC2200060, 0xC0004948, 0xCE000010, 0xCE001040, 0xC240000A, 0xC000494A, 0xCE400000, 0xC2B60002,
|
||||
0xC0004964, 0xCE801B08, 0x990081E8, 0xC00048A0, 0xC8840000, 0x00000000, 0xC0004946, 0xCBC00000,
|
||||
0x00000000, 0x00000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000, 0x5BB84E20, 0x99007FA8,
|
||||
0xDBD80000, 0xDB980001, 0x00000000, 0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050, 0xC000491C,
|
||||
0x990081A0, 0xC9400001, 0xC9800000, 0x00000000, 0x99007F18, 0xD9580000, 0xD9980001, 0x00000000,
|
||||
0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x99007BE0,
|
||||
0xDBD80000, 0xDB980001, 0xC7D80000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x6FF8A000,
|
||||
0x6FD44000, 0x4579C000, 0x47F9C000, 0x5BB84E20, 0x58380010, 0xCA000000, 0xC0004874, 0xC8040000,
|
||||
0x6C908000, 0x44908000, 0x44908000, 0x40100000, 0xCA400000, 0xC4340000, 0x00000000, 0xC7400000,
|
||||
0xCE000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000490E, 0xCA400000, 0xC2800002, 0x6ABD4000, 0x72A52000, 0xCE400000, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE54, 0x15000000, 0x99008690, 0xC0004836, 0xC9400000, 0xC1800002, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xA8E2FFC8, 0x00000000, 0xC1220002, 0xD90C0000, 0xC2000000, 0xC0000A14, 0xCA040030,
|
||||
0xC0000A28, 0xC2500002, 0xCE440808, 0x58880002, 0xB608FFF8, 0xC00048A0, 0xC0800000, 0xCC840000,
|
||||
0x8000C150, 0xC0004946, 0xCBC00000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC000490E, 0xCA400000, 0xC2800002, 0x6ABD4000, 0x72A52000, 0xCE400000,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000,
|
||||
0x5BB84E20, 0x58380008, 0xCA000000, 0x5838000C, 0xCA400000, 0xC3400000, 0xC6340008, 0xC000494E,
|
||||
0xCF400000, 0xC2800000, 0xC62A0080, 0xC3000000, 0xC6308020, 0x6F304000, 0x43298000, 0xC000493C,
|
||||
0xCF000000, 0xC2C00000, 0xC66C0080, 0xC0004950, 0xCEC00000, 0xC2800000, 0xC66AE028, 0xC0004954,
|
||||
0xCE800000, 0x5F740000, 0x840001A0, 0x5E300028, 0x462D2000, 0x8400016A, 0x462D2000, 0x88000132,
|
||||
0x5E300018, 0x462D2000, 0x88000012, 0x462D2000, 0x8400002A, 0x00000000, 0x800000C0, 0x00000000,
|
||||
0x99008328, 0xDBD80000, 0xDB980001, 0xC7800000, 0xC3400002, 0xC000494E, 0xCF400000, 0xC161FFFE,
|
||||
0x5955FFFE, 0x15400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC000490E, 0xCA400000,
|
||||
0xC2800002, 0x6ABD4000, 0x7E814000, 0x76A52000, 0xCE400000, 0x00000000, 0xC121FFFE, 0x5911FE54,
|
||||
0x15000000, 0xC2200060, 0xC0004948, 0xCE001040, 0xC2000000, 0xC000494C, 0xCE000000, 0x80000068,
|
||||
0x00000000, 0x99008328, 0xDBD80000, 0xDB980001, 0xC7800000, 0x99008528, 0xDBD80000, 0xDB980001,
|
||||
0xC7800000, 0xC2200058, 0xC0004948, 0xCE001040, 0xC2000002, 0xC000494C, 0xCE000000, 0xC2000006,
|
||||
0xC0001006, 0xCE000000, 0x5838000A, 0xCA400000, 0xC2200982, 0x5A203B6E, 0xC0001008, 0xCE000000,
|
||||
0xC000100A, 0xCE400000, 0xC0004954, 0xCA800000, 0xC200000C, 0xC000494A, 0xCE000000, 0xC0004948,
|
||||
0xCE800010, 0xC2B60000, 0xC0004964, 0xCE800000, 0x990081E8, 0xC00048A0, 0xC8840000, 0x00000000,
|
||||
0xC0004946, 0xCBC00000, 0xC000494C, 0xCA000000, 0x6FF8A000, 0x6FD44000, 0x4579C000, 0x47F9C000,
|
||||
0x5BB84E20, 0x5E200000, 0x840000FA, 0x00000000, 0x99007FA8, 0xDBD80000, 0xDB980001, 0x00000000,
|
||||
0x99007CF0, 0xC000491C, 0xC1400000, 0xC9420050, 0xC000491C, 0x990081A0, 0xC9400001, 0xC9800000,
|
||||
0x00000000, 0x99007F18, 0xD9580000, 0xD9980001, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x99007BE0, 0xDBD80000, 0xDB980001, 0xC7D80000,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0xC000493C, 0xCA800000, 0xC000494E, 0xCAC00000,
|
||||
0xC3000018, 0xC3400006, 0x5E200000, 0x84000012, 0xC2800000, 0xC2C00000, 0xC300001E, 0xC3400000,
|
||||
0xC6AC1080, 0xC72C0420, 0xC76C0818, 0x58380010, 0xCA800000, 0x58380008, 0xCEC00000, 0xC6280108,
|
||||
0xC0004874, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000, 0x40100000, 0xCB000000, 0xC4340000,
|
||||
0x00000000, 0xC7400000, 0xCE800000, 0xC0004952, 0xCE800000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xA8E2FFC8, 0x00000000, 0xC000494C, 0xCA000000, 0xC0004950, 0xCAC00000, 0x5E200000, 0x84000052,
|
||||
0xDFE80000, 0x7E814000, 0x5834001A, 0xCE800000, 0x99008690, 0xC0004834, 0xC9400000, 0xC1800002,
|
||||
0x99008690, 0xC0004838, 0xC9400000, 0xC6D80000, 0xC1220002, 0xD90C0000, 0x5E200000, 0x84000028,
|
||||
0x5838002C, 0xCB000000, 0xDFE80000, 0x00000000, 0x58380014, 0xCF000000, 0x80000000, 0xC2A1FFFE,
|
||||
0x5AA9FFFE, 0x5838000A, 0xCE800000, 0xC3000000, 0xC0000A14, 0xCB040030, 0xC2D00002, 0xC0000A28,
|
||||
0xCEC40808, 0xC000494E, 0xCA800000, 0x58880002, 0xB4B0FFF8, 0xC00048A0, 0xC0800000, 0xCC840000,
|
||||
0x5EA80000, 0x84000152, 0x5E200000, 0x84000140, 0xC000493C, 0xCA800000, 0x00000000, 0x00000000,
|
||||
0x5AA80060, 0xCE800000, 0x99008328, 0xDBD80000, 0xDB980001, 0xC7800000, 0x99008528, 0xDBD80000,
|
||||
0xDB980001, 0xC7800000, 0xC0004952, 0xCAC00000, 0x58380000, 0xCA800000, 0xC30C0002, 0xC7F00020,
|
||||
0xA6800090, 0x00000000, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x15400000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xC0001800, 0xCA000000, 0x00000000, 0x00000000, 0xA60CFFCA, 0xC6F00508,
|
||||
0xC6B0C408, 0xCF000000, 0x00000000, 0xC121FFFE, 0x5911FE54, 0x15000000, 0x8000B7A0, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x8000B738, 0xDCBC0001, 0x5FFC0000, 0x84000942, 0xC3800002,
|
||||
0xDB880001, 0xC3800000, 0xDB880001, 0xC0004728, 0xC9000000, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD000000, 0xC0004730, 0xC9800000, 0xC000472E, 0xC9400000, 0xC00047DC, 0xC9000000, 0xC00047DE,
|
||||
0xC9C00000, 0xC000472E, 0xCD800000, 0x6D110000, 0xC5D30040, 0xC00047DC, 0xCD000000, 0x4558A000,
|
||||
0x6DDD0000, 0xC55C0040, 0xC00047DE, 0xCDC00000, 0xC0001AC4, 0xC9400000, 0xC0001AC8, 0xC9800000,
|
||||
0xC000472C, 0xC9C00000, 0x45588000, 0xC1000002, 0x41D0E004, 0xCDC00000, 0xC5501080, 0xC5900080,
|
||||
0xC000472A, 0xCD000000, 0xC0001AF0, 0xCBC00000, 0x58000002, 0xCB800000, 0xC3400000, 0xC7F50040,
|
||||
0x6F702000, 0x5B304300, 0xC000474C, 0xCAC00000, 0xC0004720, 0xC9400000, 0x00000000, 0x00000000,
|
||||
0x5D940002, 0x6D9B8000, 0x6D9B8010, 0x581847E0, 0xC9800000, 0x581447E0, 0xC9C00000, 0x5D2C0000,
|
||||
0x84000062, 0xC7901080, 0xC7D00080, 0xCD000000, 0xC1000000, 0xC5910040, 0x47508000, 0x84000078,
|
||||
0xC0004722, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x80000040, 0xC1000000,
|
||||
0xC5D10040, 0x47508000, 0x84000022, 0xC0004724, 0xC9000000, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD000000, 0xA7840060, 0x59540002, 0x6D578000, 0x6D578010, 0xC0004720, 0xCD400000, 0xC1000000,
|
||||
0xC5910040, 0x47508000, 0x84000020, 0xC0004726, 0xC9000000, 0x00000000, 0x00000000, 0x59100002,
|
||||
0xCD000000, 0xA7800098, 0xC2800002, 0xC000474E, 0xCE800000, 0xC2C00000, 0xC000474C, 0xCEC00000,
|
||||
0xC0004758, 0xCFC00000, 0x58000002, 0xCF800000, 0xC000475C, 0xC9000000, 0x00000000, 0x00000000,
|
||||
0xA53E001A, 0x00000000, 0xC13E0002, 0xCFC00000, 0xCD001E10, 0x58000002, 0xCF800000, 0x80000188,
|
||||
0xC000475C, 0xC13C0002, 0xCD001E10, 0x5D2C0000, 0x84000162, 0xC2C00000, 0xC000474C, 0xCEC00000,
|
||||
0x98C08AF0, 0xC7540000, 0xC0004740, 0xC9C00000, 0x5D240000, 0x8400002A, 0xC1000002, 0xC0004750,
|
||||
0xCD000000, 0xC0004752, 0xCD000000, 0x800000E8, 0x00000000, 0x98C08BE0, 0xC7540000, 0xC0004742,
|
||||
0xC9800000, 0x5D240000, 0x84000012, 0xC1000002, 0xC0004752, 0xCD000000, 0x80000048, 0xC0004742,
|
||||
0xC9400000, 0xC0004754, 0xC1000002, 0xCD000000, 0x98C08CF0, 0xC5540000, 0xC7580000, 0x00000000,
|
||||
0xC0004742, 0xCF400000, 0x98C08AB8, 0xC1400000, 0xC7540028, 0x6F40A010, 0xC1000000, 0xC7D00040,
|
||||
0x58300000, 0x6D110000, 0xCD000840, 0xA7840378, 0xC000474C, 0xCAC00000, 0xC000474E, 0xCA800000,
|
||||
0xC0004750, 0xCBC00000, 0xC0004752, 0xCB800000, 0xC0004710, 0xC9000000, 0x00000000, 0x00000000,
|
||||
0x59100002, 0xCD000000, 0x5D280002, 0x840000A0, 0xC000473C, 0xC9000000, 0x00000000, 0x00000000,
|
||||
0x59100002, 0xCD000000, 0xC0004712, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000,
|
||||
0xC0004754, 0xC9000000, 0x00000000, 0x00000000, 0x5D100000, 0x84000202, 0x58300000, 0xC13C0002,
|
||||
0xCD001E08, 0x800001E0, 0xC0004714, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000,
|
||||
0x5D380000, 0x84000022, 0xC0004736, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000,
|
||||
0x5D3C0000, 0x8400002A, 0xC0004718, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000,
|
||||
0x80000128, 0xC1000000, 0x58300000, 0xC903E008, 0x00000000, 0x00000000, 0x5D100000, 0x8400002A,
|
||||
0xC000471A, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x800000B8, 0x58300000,
|
||||
0xC13E0002, 0xCD001F08, 0xC1000000, 0x58300000, 0xC903C008, 0x00000000, 0x00000000, 0x5D100000,
|
||||
0x8400006A, 0xC0004716, 0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0xC000473A,
|
||||
0xC9000000, 0x00000000, 0x00000000, 0x59100002, 0xCD000000, 0x58300000, 0xC13C0000, 0xCD001E08,
|
||||
0xC1000000, 0xC0004746, 0xCD000000, 0xC0004750, 0xCD000000, 0xC0004752, 0xCD000000, 0xC000474E,
|
||||
0xCD000000, 0xC2C00002, 0xC000474C, 0xCEC00000, 0xC0004754, 0xCD000000, 0xC3CE0002, 0xC0000800,
|
||||
0xCFC00708, 0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x94000001, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000487C, 0xC8040000, 0x00000000, 0x00000000, 0x40080000, 0xCBC00000, 0xC4380000, 0x00000000,
|
||||
0xC000480E, 0xCA000000, 0xC0004858, 0xCB440000, 0x00000000, 0x00000000, 0x46350000, 0x88000098,
|
||||
0x00000000, 0xA7C00028, 0xC0004854, 0xC1000002, 0xCD040000, 0xC11C0000, 0xC000082C, 0xCD040E08,
|
||||
0x800000C0, 0x00000000, 0xA7D20118, 0x00000000, 0xC7E14048, 0xC2400000, 0xC6246030, 0xC200006A,
|
||||
0x46610000, 0xC6240038, 0xC0000810, 0xCE440038, 0x8000FF58, 0xC2000000, 0xC0000808, 0xCA040018,
|
||||
0xC11C0000, 0xC000082C, 0xCD040E08, 0x5A200002, 0x5E600010, 0x8400FFF8, 0xC2000000, 0xC0000808,
|
||||
0xCE040018, 0xC3400000, 0x80000010, 0xC1200002, 0xC0000818, 0xCD041008, 0x5B740002, 0xC0004858,
|
||||
0xCF440000, 0x99007930, 0xC0004848, 0xC9440000, 0xC1800000, 0xC11C0002, 0xC000082C, 0xCD040E08,
|
||||
0x80000860, 0x5B740002, 0xC0004858, 0xCF440000, 0xC7800000, 0xC13C0002, 0xCD001E08, 0xC0004848,
|
||||
0xC9440000, 0xC1800000, 0xC000082C, 0xC9840030, 0x59540002, 0xC0004848, 0xCD440000, 0x58880002,
|
||||
0xB49807D8, 0x00000000, 0xC0800000, 0x800007C8, 0xC000487C, 0xC8040000, 0x00000000, 0x00000000,
|
||||
0x40080000, 0xCBC00000, 0xC4280000, 0x00000000, 0xA7C00110, 0xC000484C, 0xCA040000, 0xC2400000,
|
||||
0xC0001AEC, 0xCA440020, 0x5A200002, 0xC000484C, 0xCE040000, 0xB624006A, 0xC6800000, 0xC13C0002,
|
||||
0xCD001E08, 0xC0004848, 0xC9440000, 0xC1800000, 0xC000082C, 0xC9840030, 0x59540002, 0xC0004848,
|
||||
0xCD440000, 0x58880002, 0xB49806C8, 0x00000000, 0xC0800000, 0x800006B8, 0xC0004854, 0xC1000004,
|
||||
0xCD040000, 0xC0000820, 0xC2000002, 0xCE040000, 0xC2000000, 0xC000484C, 0xCE040000, 0xC0004858,
|
||||
0xCE040000, 0x8000FF10, 0xC0004854, 0xC1000000, 0xCD040000, 0xC11C0000, 0xC000082C, 0xCD040E08,
|
||||
0x99007930, 0xC0004848, 0xC9440000, 0xC1800000, 0xC1200000, 0xC0000818, 0xCD041008, 0xC11C0002,
|
||||
0xC000082C, 0xCD040E08, 0xC2000000, 0xC000484C, 0xCE040000, 0x800005B8, 0xC0001AC0, 0xCB840000,
|
||||
0xC000487C, 0xC8040000, 0x00000000, 0x00000000, 0x40080000, 0xCBC00000, 0xC4280000, 0x00000000,
|
||||
0xA78004C2, 0x00000000, 0x00000000, 0xA7C00482, 0x00000000, 0xC0001B00, 0xC2060006, 0xCE040310,
|
||||
0xA7E8043A, 0x00000000, 0xC0004850, 0xCA040000, 0xC2400000, 0xC0004812, 0xCA420080, 0x5A200002,
|
||||
0xC0004850, 0xCE040000, 0x5E640000, 0x84000002, 0x46610000, 0x880002E0, 0xC6800000, 0xC13C0002,
|
||||
0xCD001E08, 0xC0001ACC, 0xC2000002, 0xCE040008, 0x5C440000, 0x84000238, 0xC0004810, 0xC9400000,
|
||||
0xC6800000, 0xCBC00000, 0x00000000, 0xC1000000, 0xA54001E8, 0xC53C1008, 0x00000000, 0xA7FC01D2,
|
||||
0xC0001AF0, 0xC1000000, 0x58000002, 0xC9000008, 0xC000474E, 0xC9800000, 0x5D100000, 0x8400000A,
|
||||
0xC1000002, 0xC53C1E08, 0x80000180, 0x5D180000, 0x8400000A, 0xC1000002, 0xC53C1E08, 0x80000158,
|
||||
0xC0004878, 0xC8040000, 0x6C908000, 0x44908000, 0x44908000, 0x40100000, 0xC9800000, 0xC4380000,
|
||||
0x00000000, 0xC000481E, 0xC9C00000, 0xC000481C, 0xCA000000, 0x00000000, 0x75D8C000, 0x46188000,
|
||||
0x840000D0, 0xC0001AF0, 0xC3400000, 0x58000000, 0xCB410040, 0xC0004746, 0xC9400000, 0x6F702000,
|
||||
0x5B304300, 0xC2C00000, 0x58300000, 0xCAC00040, 0x00000000, 0x00000000, 0x46D48000, 0x88000008,
|
||||
0xC1000002, 0xC53C1E08, 0x80000028, 0x5AEC0002, 0x58300000, 0xCEC00040, 0xC1000002, 0xC53C1008,
|
||||
0xC77C0840, 0xC57C0040, 0x59540002, 0xC0004746, 0xCD400000, 0xC6800000, 0xCFC00000, 0xC0004848,
|
||||
0xC9440000, 0xC1800000, 0xC000082C, 0xC9840030, 0x59540002, 0xC0004848, 0xCD440000, 0x58880002,
|
||||
0xB49801D8, 0x00000000, 0xC0800000, 0x800001C8, 0xC000471E, 0xC9000000, 0x00000000, 0x00000000,
|
||||
0x59100002, 0xCD000000, 0xC0004854, 0xC1000000, 0xCD040000, 0xC11C0000, 0xC000082C, 0xCD040E08,
|
||||
0x99007930, 0xC0004848, 0xC9440000, 0xC1800000, 0xC2000000, 0xC0000820, 0xCE040000, 0xC1200000,
|
||||
0xC0000818, 0xCD041008, 0xC11C0002, 0xC000082C, 0xCD040E08, 0xC0004850, 0xCE040000, 0xC2000002,
|
||||
0xC0001ACC, 0xCE040010, 0x800000D0, 0xC2000002, 0xC0004850, 0xCE040000, 0x8000FBE8, 0xC2000000,
|
||||
0xC0004850, 0xCE040000, 0xA7E60012, 0x00000000, 0xC2000002, 0xC0001B00, 0xCE040008, 0x8000FBD0,
|
||||
0x00000000, 0xA7860032, 0x00000000, 0xC6800000, 0xC13C0002, 0xCD001E08, 0xC2020002, 0xC7E2A548,
|
||||
0xC0001B00, 0xCE040000, 0x8000FB78, 0xC2040002, 0xC0001B00, 0xCE040208, 0x8000FB58, 0xC2C80002,
|
||||
0x6AC56000, 0xDACC0000, 0xC0004854, 0xCB440000, 0xC0004848, 0xCB840000, 0xC0000838, 0xC3C00000,
|
||||
0xCBC40030, 0x5EF40004, 0x8400000A, 0xC3000000, 0xC0001ACC, 0xCF040108, 0x47BD8000, 0x84000032,
|
||||
0x47BD8000, 0x88000038, 0xC1006E8C, 0xC1400010, 0x8D580000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0004840, 0xCC840000, 0x8000EAF8, 0xC0001AC0, 0xCAC40000, 0xC0004854, 0xCB440000, 0xA6C0F91A,
|
||||
0x00000000, 0x5EF40000, 0x8400F45A, 0x5EF40002, 0x8400F6EA, 0x5EF40004, 0x8400F8EA, 0xC1006CE8,
|
||||
0xC1400010, 0x8D580000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xC0800000, 0xDF4B0040,
|
||||
0xC0004900, 0xCB800000, 0xC2000000, 0xC000490A, 0xA78000B0, 0xCBC00000, 0xC1000000, 0xD9000001,
|
||||
0xC1000002, 0xD90C0000, 0x6FF46000, 0x47F5A000, 0x5B744C80, 0xC2400000, 0x58340004, 0xCA400080,
|
||||
0xC0004900, 0xCE000008, 0x5A640002, 0x58340004, 0xC6500080, 0xCD000080, 0xC0004914, 0xCA400000,
|
||||
0xC2000002, 0x6A3D0000, 0x72252000, 0xCE400000, 0xC0000408, 0xCE000000, 0xA78200B8, 0xC0004908,
|
||||
0xCBC00000, 0xC1000000, 0xD9000001, 0xC1000002, 0xD90C0000, 0x6FF4A000, 0x6FD44000, 0x4575A000,
|
||||
0x47F5A000, 0x5B744E20, 0xC2800000, 0x58340006, 0xCA800080, 0xC2000000, 0xC0004900, 0xCE000108,
|
||||
0x5EA80002, 0x58340006, 0xC6900080, 0xCD000080, 0x5A7C0020, 0xC2000002, 0x6A250000, 0xC0000408,
|
||||
0xCE000000, 0xC0000032, 0xDCA80001, 0xC1000002, 0x46914000, 0x00000000, 0x8C100006, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xA4800210, 0x00000000, 0xC3C00000, 0xC000140E, 0xCBC00020, 0xC3400000,
|
||||
0xC2400000, 0x6FF86000, 0x47F9C000, 0x5BB84C80, 0x58380008, 0xCB400080, 0x58380006, 0xCA400080,
|
||||
0x5F740002, 0x58380008, 0xC7500080, 0xCD000080, 0xC2000000, 0x58380004, 0xCA020080, 0xC3000000,
|
||||
0x5838000C, 0xCB000028, 0x5A640002, 0x46250000, 0x8400FFF8, 0xC2400000, 0x58380006, 0xC6500080,
|
||||
0xCD000080, 0xC2000000, 0x5838000A, 0xCA020080, 0x5B300002, 0x5838000C, 0xC7100028, 0xCD000028,
|
||||
0xC2420020, 0x5A200004, 0x46612000, 0x8400FFF8, 0xC2000000, 0x5838000A, 0xC6101080, 0xCD001080,
|
||||
0xC0004966, 0xCA400000, 0xC2000002, 0x6A3D0000, 0x72252000, 0xCE400000, 0x5F740000, 0x84000028,
|
||||
0xC0004912, 0xCA000000, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000, 0x5F300020,
|
||||
0x84000028, 0xC0004924, 0xCA000000, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000,
|
||||
0xA4820050, 0xC2400000, 0xC000140E, 0xCA408020, 0xC2000002, 0xC0004900, 0xCE000008, 0xC000490A,
|
||||
0xCE400000, 0xC1000000, 0xD9000001, 0xD8400080, 0xC1000004, 0xD9000001, 0xA4840288, 0x00000000,
|
||||
0xC3C00000, 0xC000140E, 0xCBC10020, 0xC2800000, 0xC2000000, 0x6FF8A000, 0x6FD44000, 0x4579C000,
|
||||
0x47F9C000, 0x5BB84E20, 0x5838002E, 0xCA800080, 0x58380006, 0xCA020080, 0xC3400000, 0x5838002E,
|
||||
0xCB420080, 0x5AA80002, 0x46290000, 0x8400FFF8, 0xC2800000, 0x5838002E, 0xC6900080, 0xCD000080,
|
||||
0x5F740002, 0x5838002E, 0xC7501080, 0xCD001080, 0xC0004968, 0xCA400000, 0xC2000002, 0x6A3D0000,
|
||||
0x72252000, 0xCE400000, 0xC000492A, 0xCA800000, 0x5E740000, 0x84000028, 0xC0004910, 0xCA000000,
|
||||
0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000, 0x6ABD4010, 0xA68000D2, 0x00000000,
|
||||
0xC0004910, 0xCA000000, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x76E10000, 0xCE000000, 0x58380032,
|
||||
0xCA000000, 0x58000002, 0xCA400000, 0x5838000C, 0x00000000, 0xCE000001, 0xCE400000, 0xC000492A,
|
||||
0xCA000000, 0xC2C00002, 0x6AFD6000, 0x72E10000, 0xCE000000, 0xC000492C, 0xCA000000, 0xC2C00002,
|
||||
0x6AFD6000, 0x72E10000, 0xCE000000, 0x80000028, 0xC000492C, 0xCA000000, 0xC2C00002, 0x6AFD6000,
|
||||
0x7EC16000, 0x76E10000, 0xCE000000, 0xA4880100, 0xC2C00000, 0xC000140E, 0xCAC20020, 0xC000490E,
|
||||
0xCA400000, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76252000, 0xCE400000, 0xC000496A, 0xCA400000,
|
||||
0xC2000002, 0x6A2D0000, 0x72252000, 0xCE400000, 0x6EF0A000, 0x6ED44000, 0x45718000, 0x46F18000,
|
||||
0x5B304E20, 0x58300000, 0xCA000000, 0x00000000, 0xC2400002, 0x76252000, 0x84000032, 0xC24C0002,
|
||||
0xC6E40020, 0xC624C408, 0x58300010, 0xCA400508, 0x00000000, 0xC0001800, 0xCE400000, 0xA4860050,
|
||||
0xC2400000, 0xC000140E, 0xCA418020, 0xC2020002, 0xC0004900, 0xCE000108, 0xC0004908, 0xCE400000,
|
||||
0xC1000000, 0xD9000001, 0xD8400080, 0xC1000004, 0xD9000001, 0xA48C0028, 0xC2800002, 0xC000484A,
|
||||
0xCE800000, 0xC2800000, 0xC000474A, 0xCE800000, 0xC0004846, 0xCE800000, 0xC0001408, 0xCC800000,
|
||||
0xC10E0002, 0xD90C0000, 0x8000EA60, 0xDFBC0001, 0xC000496E, 0x99008638, 0xC9400000, 0xC7D80000,
|
||||
0x00000000, 0xC5700000, 0x5EF00020, 0x88000130, 0x6F346000, 0x4735A000, 0x5B744C80, 0x58340008,
|
||||
0xC2400000, 0xCA400080, 0x00000000, 0xC2000000, 0x5A640002, 0xCE400080, 0x58340004, 0xCA000080,
|
||||
0x00000000, 0x00000000, 0x5E200002, 0xCE000080, 0xC0004912, 0xCA800000, 0xC2400002, 0x6A712000,
|
||||
0x72694000, 0xCE800000, 0x5E200000, 0x8400003A, 0xC000480A, 0xCA000000, 0xC0000408, 0xCA800000,
|
||||
0x76610000, 0x00000000, 0x72294000, 0xCE800000, 0x80000020, 0xC0004914, 0xCA000000, 0x7E412000,
|
||||
0x00000000, 0x76610000, 0xCE000000, 0x800000B8, 0x6EF4A000, 0x6ED44000, 0x4575A000, 0x46F5A000,
|
||||
0x5B744E20, 0x5834002E, 0xC2400000, 0xCA420080, 0x00000000, 0xC2000000, 0x5A640002, 0xC6501080,
|
||||
0xCD001080, 0x58340006, 0xCA000080, 0x00000000, 0x00000000, 0x5A200002, 0xCE000080, 0xC0004910,
|
||||
0xCA400000, 0xC2000002, 0x6A2D0000, 0x72252000, 0xCE400000, 0xC2000002, 0x6A310000, 0xC000042A,
|
||||
0xCE000000, 0xC1040002, 0xD90C0000, 0x00000000, 0x8000E7D0, 0x00000000, 0xC4980930, 0x9D000000,
|
||||
0xC5580030, 0xC0000838, 0xCD840000, 0xC1440200, 0xC1C03200, 0xC55C1078, 0xC000100E, 0x9D000000,
|
||||
0xCD800000, 0xC000100C, 0xCDC00000, 0xC0004862, 0xC9C00000, 0x00000000, 0x00000000, 0xD9D80001,
|
||||
0xC0007200, 0x401C0000, 0x5DC07400, 0x8800FFFA, 0x5C000200, 0xCD800000, 0xC1F0000A, 0x71D4A000,
|
||||
0xDD980000, 0xDD9C0001, 0x41D8E000, 0xC5D40268, 0xC0001010, 0xCD400000, 0x6C9C8000, 0x449CE000,
|
||||
0x449CE000, 0x59DC0004, 0xC1601260, 0xC5D40268, 0x9D000000, 0xC0001012, 0xCD400000, 0x00000000,
|
||||
0x00000000, 0xD9580000, 0x6D586000, 0x4558C000, 0x59984C80, 0xD9980001, 0x5818000A, 0xC1800000,
|
||||
0xC9800080, 0xC0005400, 0x6D5CA000, 0x401C0000, 0x40180000, 0xC9400000, 0x58000002, 0x00000000,
|
||||
0xC9C00000, 0xC0004930, 0xCD400000, 0xC0004932, 0xCDC00000, 0x59980004, 0xC1C20020, 0xB59CFFF8,
|
||||
0x00000000, 0xC1800000, 0xDD9C0001, 0x581C000A, 0xCD800080, 0x581C000C, 0xC1800000, 0xC9800028,
|
||||
0xC1C00002, 0xDD940000, 0x69D4E000, 0x5D980002, 0xCD800028, 0xC0004924, 0xC9800000, 0x00000000,
|
||||
0x9D000000, 0x00000000, 0x71D8C000, 0xCD800000, 0xC000492A, 0xC9400000, 0xC1C00002, 0x69D8E000,
|
||||
0x7DC0C000, 0x7594A000, 0xCD400000, 0xC000492C, 0xC9400000, 0xDD800001, 0x58000032, 0x75D4A000,
|
||||
0x84000078, 0xC9400001, 0xC9800000, 0xDD800001, 0x5800000C, 0x00000000, 0xCD400001, 0xCD800000,
|
||||
0xC000492C, 0xC9400000, 0xC000492A, 0xC9800000, 0x71D4A000, 0xC000492C, 0xCD400000, 0x71D8C000,
|
||||
0xC000492A, 0xCD800000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0xC0004862, 0xC9800000,
|
||||
0x00000000, 0xC1C00200, 0x4194C000, 0x45D8E000, 0x8800FFFA, 0xC5D80000, 0xC0004862, 0xCD800000,
|
||||
0xC0001406, 0xC9800000, 0xC1C00002, 0x9D000000, 0xC5D80A08, 0xC5581050, 0xCD800000, 0xC0004930,
|
||||
0xC9800000, 0xC0004932, 0xC9C00000, 0xC140000E, 0xC5581C20, 0xDD940000, 0xC0007200, 0x40140000,
|
||||
0x5D407400, 0x8800FFFA, 0x5C000200, 0xCD800000, 0x58000002, 0x5D407400, 0x8800FFFA, 0x5C000200,
|
||||
0xCDC00000, 0xDD540000, 0xC1C00000, 0x58140006, 0xC9C20080, 0xC1800000, 0x58140000, 0xC98000E0,
|
||||
0x6DDC2000, 0xC000491E, 0x41D8E000, 0xCDC00000, 0xDD980000, 0xC1C00022, 0xC5D80D78, 0xDD940001,
|
||||
0xC5581C20, 0xC000491C, 0xCD800000, 0xDD540000, 0xC1C00000, 0x58140006, 0xC9C20080, 0xC1800000,
|
||||
0x58140004, 0xC9820080, 0x00000000, 0x59DC0002, 0x459CC000, 0x8400FFF8, 0xC1C00000, 0x9D000000,
|
||||
0x58140006, 0xC5D81080, 0xCD801080, 0xC0004860, 0xC9400000, 0xC1820080, 0xC1D00002, 0x58146B00,
|
||||
0xD5800000, 0x58000002, 0xD5800001, 0x59540004, 0xB558FFF8, 0xC0004860, 0xC1400000, 0xCD400000,
|
||||
0xDD980001, 0x9D000000, 0xDD940000, 0xC0001404, 0xCDC00808, 0xC1C00000, 0xC1800200, 0x5D980004,
|
||||
0xDF5D0050, 0x45D8A000, 0x8800FFDA, 0xDD800001, 0x5800000C, 0x00000000, 0xC9400001, 0xC9800000,
|
||||
0xC1C00002, 0xC5D43F08, 0xC5D81E08, 0xC0004862, 0xC9C00000, 0x00000000, 0x00000000, 0x581C7200,
|
||||
0x5DC07400, 0x8800FFFA, 0x5C000200, 0xCD400000, 0x58000002, 0x5DC07400, 0x8800FFFA, 0x5C000200,
|
||||
0xCD800000, 0xC0004862, 0xC9C00000, 0x00000000, 0xC15004C0, 0xC5D40068, 0xDD9C0000, 0xC5D41C20,
|
||||
0xC1C00000, 0xDD800001, 0x58000030, 0xC9C00080, 0xDD800001, 0x58000002, 0xC9800000, 0x6DDC2000,
|
||||
0xC000491C, 0x41D8E000, 0xCD400001, 0xCDC00000, 0xDD940001, 0xC1C00000, 0x58140030, 0xC9C00080,
|
||||
0xC1800000, 0x58140006, 0xC9820080, 0x00000000, 0x59DC0002, 0x459CC000, 0x8400FFF8, 0xC1C00000,
|
||||
0x9D000000, 0x58140030, 0xC5D80080, 0xCD800080, 0xC1C00000, 0xDF5C0040, 0x5DDC0080, 0x8400FFD2,
|
||||
0x00000000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0xC160FFFE, 0xC0000A10, 0xC9440068,
|
||||
0xC1A0FFFE, 0x59980E28, 0xC000100C, 0xCD400000, 0xC000100E, 0xCD800000, 0xC0004964, 0xC9800000,
|
||||
0x00000000, 0xC170000A, 0x7194A000, 0x6C988000, 0x4498C000, 0x4498C000, 0x59980004, 0xC5940278,
|
||||
0xC0001010, 0xCD400000, 0xC0004946, 0xC9400000, 0x00000000, 0x00000000, 0x6D58A000, 0x6D5C4000,
|
||||
0x45D8C000, 0x4558C000, 0xC000494A, 0xC9400000, 0xC0004948, 0xC9C00000, 0x4194C000, 0xC1400012,
|
||||
0xC55C1820, 0x9D000000, 0xC59C0270, 0xC0001012, 0xCDC00000, 0xC1400000, 0x58000012, 0xC9410040,
|
||||
0xC0004950, 0xC9C00000, 0xC5580000, 0xC5940840, 0xC5581080, 0xD9940000, 0xC000493C, 0xC9400000,
|
||||
0xC0004954, 0xC9800000, 0x59DC00A8, 0x455CE000, 0x41D8E000, 0x5D5C0030, 0x8800FFF8, 0xC1C00030,
|
||||
0xC1800000, 0xC5D84030, 0xC1400000, 0xC5D40010, 0x5DD40002, 0x8400005A, 0x5DD40004, 0x84000082,
|
||||
0x5DD40006, 0x840000AA, 0x5DD80026, 0x840000D2, 0xDD540000, 0xDD800001, 0x58000008, 0x40180000,
|
||||
0xCD400000, 0x59980002, 0x8000FFA8, 0xDD540000, 0xDD800001, 0x58000008, 0x40180000, 0xCD4000C0,
|
||||
0x59980002, 0x8000FF70, 0xDD540000, 0xDD800001, 0x58000008, 0x40180000, 0xCD400080, 0x59980002,
|
||||
0x8000FF38, 0xDD540000, 0xDD800001, 0x58000008, 0x40180000, 0xCD400040, 0x59980002, 0x8000FF00,
|
||||
0x00000000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0x58000012, 0xC9400000, 0xC0004954,
|
||||
0xC9C00000, 0xC0004950, 0xC9400080, 0xDD800001, 0x58000028, 0x5D9C0000, 0x8400003A, 0x5D9C0002,
|
||||
0x8400003A, 0x5D9C0004, 0x84000052, 0xC55B0040, 0xC55C08C0, 0xCD800041, 0xCDC008C0, 0x80000048,
|
||||
0xCD400000, 0x80000038, 0xC55900C0, 0xC55C1840, 0xCD8000C1, 0xCDC01840, 0x80000010, 0xC55A0080,
|
||||
0xC55C1080, 0xCD800081, 0xCDC01080, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0x59540002,
|
||||
0x6994E018, 0x61C0C008, 0x4194A000, 0x5D940040, 0x8800FFFA, 0xC5940000, 0x9D000000, 0xCD400000,
|
||||
0x00000000, 0x00000000, 0x9D000000, 0x4158A000, 0xCD400000, 0x00000000, 0xCD800001, 0x44148000,
|
||||
0x8800FFD8, 0x00000000, 0x9CC00000, 0x00000000, 0x00000000, 0x00000000, 0xC0004810, 0xCA010040,
|
||||
0xC241FFFE, 0xC1400000, 0x45608000, 0x00000000, 0x9CC00006, 0xC0004200, 0x40180000, 0xC9C00000,
|
||||
0x00000000, 0x00000000, 0x61C08010, 0x84000042, 0xC2400002, 0x6A512000, 0x725CE000, 0xCDC00000,
|
||||
0xC0004748, 0xCD800000, 0x9CC00000, 0x6D98A000, 0x5998003E, 0x45192000, 0x59540002, 0x59980002,
|
||||
0x45A08000, 0xC1000000, 0xC5180006, 0x8000FF20, 0x00000000, 0x40180000, 0xC9C00000, 0xC2000000,
|
||||
0xC5600028, 0xC1210000, 0x69208010, 0x7D008000, 0x751CE000, 0xCDC00000, 0x6D542000, 0x58144300,
|
||||
0xC1000000, 0xCD000001, 0x9CC00000, 0xC121FFFE, 0x5911FFFE, 0xCD000001, 0x79948000, 0x6D10A010,
|
||||
0x5D100000, 0x840000A8, 0x45588000, 0x88000098, 0x6D536000, 0x6D136010, 0x6D54A010, 0xC0004700,
|
||||
0x40140000, 0xCA000000, 0x00000000, 0x00000000, 0x6A110000, 0x6A110010, 0x62008018, 0x8400001A,
|
||||
0x00000000, 0x9CC00000, 0x6D54A000, 0x5954003E, 0x45152000, 0x59540002, 0x6D57A000, 0x6D57A010,
|
||||
0x6D54A000, 0x6D936000, 0x6D136010, 0xC1E10000, 0x69D0E010, 0x5DDC0002, 0x7DC0E000, 0x6D98A010,
|
||||
0x6D536000, 0x6D136010, 0x6D54A010, 0xC0004700, 0x40140000, 0xCA000000, 0x00000000, 0x00000000,
|
||||
0x6A110000, 0x6A110010, 0x45948000, 0x00000000, 0x75E10002, 0x62008018, 0x8400001A, 0x00000000,
|
||||
0x9CC00000, 0x6D54A000, 0x5954003E, 0x45152000, 0x45948000, 0x00000000, 0x9CC00002, 0x59540002,
|
||||
0x6D57A000, 0x6D57A010, 0xC0004700, 0x40140000, 0xCA000000, 0x8000FF50, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x58004700, 0xC9800000, 0x9CC00000, 0x00000000, 0x6994C000, 0x6DA7E010, 0x58004700,
|
||||
0xC9800000, 0xC1210000, 0x9CC00000, 0x69148010, 0x7118C000, 0xCD800000, 0xC1000000, 0xC0004810,
|
||||
0xC9020040, 0x00000000, 0x00000000, 0x451CC000, 0x8800004A, 0xC2400002, 0x45948000, 0xC1000000,
|
||||
0xC5240004, 0x455C8000, 0xC1000000, 0xC5240006, 0x9CC00000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x59980200, 0xC2400000, 0x45D48000, 0xC1000002, 0xC5240004, 0x45588000, 0xC1000002, 0xC5240006,
|
||||
0x9CC00000, 0x00000000, 0x00000000, 0x00000000, 0xC0004740, 0xC9C00000, 0x59180002, 0x6D130000,
|
||||
0x6D130010, 0x45D08000, 0xC2400000, 0x9CC00002, 0x00000000, 0x00000000, 0x45D88000, 0x8800004A,
|
||||
0xC2400002, 0x45D48000, 0xC1000000, 0xC5240004, 0x45588000, 0xC1000000, 0xC5240004, 0x9CC00000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC2400000, 0x45948000, 0xC1000002, 0xC5240006, 0x455C8000,
|
||||
0xC1000002, 0xC5240006, 0x9CC00000, 0x00000000, 0x00000000, 0x00000000, 0x59540002, 0x6D570000,
|
||||
0x6D570010, 0x45948000, 0x6D402000, 0x9CC00002, 0x58004300, 0x58000000, 0xC13C0002, 0xCD001E08,
|
||||
0x8000FF98, 0x00000000, 0x00000000, 0x00000000, 0xC1020002, 0xD90C0000, 0xC9800000, 0x59540002,
|
||||
0xC0004730, 0xCD400000, 0x5D980002, 0x00000000, 0x8000001E, 0x00000000, 0x9CC00000, 0xC0004732,
|
||||
0xCD800000, 0x00000000, 0xC0004734, 0xC9C00000, 0xC1800000, 0xC0004816, 0xC9820080, 0xC0004738,
|
||||
0xCDC00000, 0xC1C00000, 0xC0004734, 0x9CC00000, 0xCDC00000, 0xC0004732, 0xCD800000,
|
||||
};
|
||||
|
||||
static unsigned int firmware_binary_data[] = {
|
||||
};
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_DANUBE_H
|
||||
30
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_amazon_se.h
Normal file
30
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_amazon_se.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#ifndef IFXMIPS_ATM_FW_REGS_AMAZON_SE_H
|
||||
#define IFXMIPS_ATM_FW_REGS_AMAZON_SE_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Host-PPE Communication Data Address Mapping
|
||||
*/
|
||||
#define FW_VER_ID SB_BUFFER(0x2001) /* Firmware Version ID */
|
||||
#define CFG_WRX_HTUTS SB_BUFFER(0x2400) /* WAN RX HTU Table Size, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRX_QNUM SB_BUFFER(0x2401) /* WAN RX Queue Number */
|
||||
#define CFG_WRX_DCHNUM SB_BUFFER(0x2402) /* WAN RX DMA Channel Number, no more than 8, must be configured before enable PPE firmware. */
|
||||
#define CFG_WTX_DCHNUM SB_BUFFER(0x2403) /* WAN TX DMA Channel Number, no more than 16, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRDES_DELAY SB_BUFFER(0x2404) /* WAN Descriptor Write Delay, must be configured before enable PPE firmware. */
|
||||
#define WRX_DMACH_ON SB_BUFFER(0x2405) /* WAN RX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WTX_DMACH_ON SB_BUFFER(0x2406) /* WAN TX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WRX_HUNT_BITTH SB_BUFFER(0x2407) /* WAN RX HUNT Threshold, must be between 2 to 8. */
|
||||
#define WRX_QUEUE_CONFIG(i) ((struct wrx_queue_config*) SB_BUFFER(0x2500 + (i) * 20))
|
||||
#define WRX_DMA_CHANNEL_CONFIG(i) ((struct wrx_dma_channel_config*) SB_BUFFER(0x2640 + (i) * 7))
|
||||
#define WTX_PORT_CONFIG(i) ((struct wtx_port_config*) SB_BUFFER(0x2440 + (i)))
|
||||
#define WTX_QUEUE_CONFIG(i) ((struct wtx_queue_config*) SB_BUFFER(0x2F00 + (i) * 27))
|
||||
#define WTX_DMA_CHANNEL_CONFIG(i) ((struct wtx_dma_channel_config*) SB_BUFFER(0x2F01 + (i) * 27))
|
||||
#define WAN_MIB_TABLE ((struct wan_mib_table*) SB_BUFFER(0x2410))
|
||||
#define HTU_ENTRY(i) ((struct htu_entry*) SB_BUFFER(0x3200 + (i)))
|
||||
#define HTU_MASK(i) ((struct htu_mask*) SB_BUFFER(0x3220 + (i)))
|
||||
#define HTU_RESULT(i) ((struct htu_result*) SB_BUFFER(0x3240 + (i)))
|
||||
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_REGS_AMAZON_SE_H
|
||||
172
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_ar9.h
Normal file
172
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_ar9.h
Normal file
@@ -0,0 +1,172 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_regs_ar9.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 1 AUG 2005
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (Firmware Registers)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 4 AUG 2005 Xu Liang Initiate Version
|
||||
** 23 OCT 2006 Xu Liang Add GPL header.
|
||||
** 9 JAN 2007 Xu Liang First version got from Anand (IC designer)
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
#ifndef IFXMIPS_ATM_FW_REGS_AR9_H
|
||||
#define IFXMIPS_ATM_FW_REGS_AR9_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Host-PPE Communication Data Address Mapping
|
||||
*/
|
||||
#define FW_VER_ID ((volatile struct fw_ver_id *) SB_BUFFER(0x2001))
|
||||
#define CFG_WRX_HTUTS SB_BUFFER(0x2400) /* WAN RX HTU Table Size, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRX_QNUM SB_BUFFER(0x2401) /* WAN RX Queue Number */
|
||||
#define CFG_WRX_DCHNUM SB_BUFFER(0x2402) /* WAN RX DMA Channel Number, no more than 8, must be configured before enable PPE firmware. */
|
||||
#define CFG_WTX_DCHNUM SB_BUFFER(0x2403) /* WAN TX DMA Channel Number, no more than 16, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRDES_DELAY SB_BUFFER(0x2404) /* WAN Descriptor Write Delay, must be configured before enable PPE firmware. */
|
||||
#define WRX_DMACH_ON SB_BUFFER(0x2405) /* WAN RX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WTX_DMACH_ON SB_BUFFER(0x2406) /* WAN TX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WRX_HUNT_BITTH SB_BUFFER(0x2407) /* WAN RX HUNT Threshold, must be between 2 to 8. */
|
||||
#define WRX_QUEUE_CONFIG(i) ((struct wrx_queue_config*) SB_BUFFER(0x2500 + (i) * 20))
|
||||
#define WRX_QUEUE_CONTEXT(i) ((struct wrx_queue_context*) SB_BUFFER(0x2504 + (i) * 20))
|
||||
#define WRX_DMA_CHANNEL_CONFIG(i) ((struct wrx_dma_channel_config*) SB_BUFFER(0x2640 + (i) * 7))
|
||||
#define WRX_DESC_CONTEXT(i) ((struct wrx_desc_context*) SB_BUFFER(0x2643 + (i) * 7))
|
||||
#define WTX_PORT_CONFIG(i) ((struct wtx_port_config*) SB_BUFFER(0x2440 + (i)))
|
||||
#define WTX_QUEUE_CONFIG(i) ((struct wtx_queue_config*) SB_BUFFER(0x3800 + (i) * 27))
|
||||
#define WTX_DMA_CHANNEL_CONFIG(i) ((struct wtx_dma_channel_config*) SB_BUFFER(0x3801 + (i) * 27))
|
||||
#define WAN_MIB_TABLE ((struct wan_mib_table*) SB_BUFFER(0x2410))
|
||||
#define HTU_ENTRY(i) ((struct htu_entry*) SB_BUFFER(0x2010 + (i)))
|
||||
#define HTU_MASK(i) ((struct htu_mask*) SB_BUFFER(0x2030 + (i)))
|
||||
#define HTU_RESULT(i) ((struct htu_result*) SB_BUFFER(0x2050 + (i)))
|
||||
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
|
||||
#define RETX_MODE_CFG ((volatile struct Retx_mode_cfg *) SB_BUFFER(0x2408))
|
||||
#define RETX_TSYNC_CFG ((volatile struct Retx_Tsync_cfg *) SB_BUFFER(0x2409))
|
||||
#define RETX_TD_CFG ((volatile struct Retx_Td_cfg *) SB_BUFFER(0x240A))
|
||||
#define RETX_MIB_TIMER_CFG ((volatile struct Retx_MIB_Timer_cfg *) SB_BUFFER(0x240B))
|
||||
#define RETX_PLAYOUT_BUFFER_BASE SB_BUFFER(0x240D)
|
||||
#define RETX_SERVICE_HEADER_CFG SB_BUFFER(0x240E)
|
||||
#define RETX_MASK_HEADER_CFG SB_BUFFER(0x240F)
|
||||
|
||||
#define RETX_ADSL_PPE_INTF ((volatile struct Retx_adsl_ppe_intf *) PPE_REG_ADDR(0x0D78))
|
||||
#define BAD_REC_RETX_ADSL_PPE_INTF ((volatile struct Retx_adsl_ppe_intf *) SB_BUFFER(0x23AC))
|
||||
#define FIRST_BAD_REC_RETX_ADSL_PPE_INTF ((volatile struct Retx_adsl_ppe_intf *) SB_BUFFER(0x23AE))
|
||||
|
||||
#define PB_BUFFER_USAGE SB_BUFFER(0x2100)
|
||||
#define DTU_STAT_INFO ((volatile struct DTU_stat_info *) SB_BUFFER(0x2180))
|
||||
#define DTU_VLD_STAT SB_BUFFER(0x2380)
|
||||
|
||||
|
||||
//=====================================================================
|
||||
// retx firmware mib, for debug purpose
|
||||
// address : 0x2388 - 0x238F
|
||||
// size : 8
|
||||
//=====================================================================
|
||||
#define URETX_RX_TOTAL_DTU SB_BUFFER(0x2388)
|
||||
#define URETX_RX_BAD_DTU SB_BUFFER(0x2389)
|
||||
#define URETX_RX_GOOD_DTU SB_BUFFER(0x238A)
|
||||
#define URETX_RX_CORRECTED_DTU SB_BUFFER(0x238B)
|
||||
#define URETX_RX_OUTOFDATE_DTU SB_BUFFER(0x238C)
|
||||
#define URETX_RX_DUPLICATE_DTU SB_BUFFER(0x238D)
|
||||
#define URETX_RX_TIMEOUT_DTU SB_BUFFER(0x238E)
|
||||
|
||||
#define URETX_ALPHA_SWITCH_TO_HUNT_TIMES SB_BUFFER(0x238F)
|
||||
|
||||
// cell counter for debug purpose
|
||||
#define WRX_BC0_CELL_NUM SB_BUFFER(0x23E0)
|
||||
#define WRX_BC0_DROP_CELL_NUM SB_BUFFER(0x23E1)
|
||||
#define WRX_BC0_NONRETX_CELL_NUM SB_BUFFER(0x23E2)
|
||||
#define WRX_BC0_RETX_CELL_NUM SB_BUFFER(0x23E3)
|
||||
#define WRX_BC0_OUTOFDATE_CELL_NUM SB_BUFFER(0x23E4)
|
||||
#define WRX_BC0_DIRECTUP_NUM SB_BUFFER(0x23E5)
|
||||
#define WRX_BC0_PBW_TOTAL_NUM SB_BUFFER(0x23E6)
|
||||
#define WRX_BC0_PBW_SUCC_NUM SB_BUFFER(0x23E7)
|
||||
#define WRX_BC0_PBW_FAIL_NUM SB_BUFFER(0x23E8)
|
||||
#define WRX_BC1_CELL_NUM SB_BUFFER(0x23E9)
|
||||
|
||||
// debug info (interface)
|
||||
|
||||
#define DBG_DTU_INTF_WRPTR SB_BUFFER(0x2390)
|
||||
#define DBG_INTF_FCW_DUP_CNT SB_BUFFER(0x2391)
|
||||
#define DBG_INTF_SID_CHANGE_IN_DTU_CNT SB_BUFFER(0x2392)
|
||||
#define DBG_INTF_LCW_DUP_CNT SB_BUFFER(0x2393)
|
||||
|
||||
#define DBG_RFBI_DONE_INT_CNT SB_BUFFER(0x2394)
|
||||
#define DBG_DREG_BEG_END SB_BUFFER(0x2395)
|
||||
#define DBG_RFBI_BC0_INVALID_CNT SB_BUFFER(0x2396)
|
||||
#define DBG_RFBI_LAST_T SB_BUFFER(0x2397)
|
||||
|
||||
#define DBG_RFBI_INTV0 SB_BUFFER(0x23EE)
|
||||
#define DBG_RFBI_INTV1 SB_BUFFER(0x23EF)
|
||||
|
||||
#define DBG_INTF_INFO(i) ((volatile struct Retx_adsl_ppe_intf_rec *) SB_BUFFER(0x23F0 + i))
|
||||
|
||||
// Internal status
|
||||
#define URetx_curr_time SB_BUFFER(0x2398)
|
||||
#define URetx_sec_counter SB_BUFFER(0x2399)
|
||||
#define RxCURR_EFB SB_BUFFER(0x239A)
|
||||
#define RxDTURetransmittedCNT SB_BUFFER(0x239B)
|
||||
|
||||
//=====================================================================
|
||||
// standardized MIB counter
|
||||
// address : 0x239C - 0x239F
|
||||
// size : 4
|
||||
//=====================================================================
|
||||
#define RxLastEFBCNT SB_BUFFER(0x239C)
|
||||
#define RxDTUCorrectedCNT SB_BUFFER(0x239D)
|
||||
#define RxDTUCorruptedCNT SB_BUFFER(0x239E)
|
||||
#define RxRetxDTUUncorrectedCNT SB_BUFFER(0x239F)
|
||||
|
||||
|
||||
//=====================================================================
|
||||
// General URetx Context
|
||||
// address : 0x23A0 - 0x23AF
|
||||
// size : 16
|
||||
//=====================================================================
|
||||
#define NEXT_DTU_SID_OUT SB_BUFFER(0x23A0)
|
||||
#define LAST_DTU_SID_IN SB_BUFFER(0x23A1)
|
||||
#define NEXT_CELL_SID_OUT SB_BUFFER(0x23A2)
|
||||
#define ISR_CELL_ID SB_BUFFER(0x23A3)
|
||||
#define PB_CELL_SEARCH_IDX SB_BUFFER(0x23A4)
|
||||
#define PB_READ_PEND_FLAG SB_BUFFER(0x23A5)
|
||||
#define RFBI_FIRST_CW SB_BUFFER(0x23A6)
|
||||
#define RFBI_BAD_CW SB_BUFFER(0x23A7)
|
||||
#define RFBI_INVALID_CW SB_BUFFER(0x23A8)
|
||||
#define RFBI_RETX_CW SB_BUFFER(0x23A9)
|
||||
#define RFBI_CHK_DTU_STATUS SB_BUFFER(0x23AA)
|
||||
|
||||
//=====================================================================
|
||||
// per PVC counter for RX error_pdu and correct_pdu
|
||||
// address : 0x23B0 - 0x23CF
|
||||
// size : 32
|
||||
//=====================================================================
|
||||
#define WRX_PER_PVC_CORRECT_PDU_BASE SB_BUFFER(0x23B0)
|
||||
#define WRX_PER_PVC_ERROR_PDU_BASE SB_BUFFER(0x23C0)
|
||||
|
||||
#define __WRXCTXT_L2_RdPtr(i) SB_BUFFER(0x2422 + (i))
|
||||
#define __WRXCTXT_L2Pages(i) SB_BUFFER(0x2424 + (i))
|
||||
|
||||
#define __WTXCTXT_TC_WRPTR(i) SB_BUFFER(0x2450 + (i))
|
||||
#define __WRXCTXT_PortState(i) SB_BUFFER(0x242A + (i))
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_REGS_AR9_H
|
||||
546
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_common.h
Normal file
546
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_common.h
Normal file
@@ -0,0 +1,546 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_regs_common.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 1 AUG 2005
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (Firmware Register Structures)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 4 AUG 2005 Xu Liang Initiate Version
|
||||
** 23 OCT 2006 Xu Liang Add GPL header.
|
||||
** 9 JAN 2007 Xu Liang First version got from Anand (IC designer)
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
#ifndef IFXMIPS_ATM_FW_REGS_COMMON_H
|
||||
#define IFXMIPS_ATM_FW_REGS_COMMON_H
|
||||
|
||||
|
||||
|
||||
#if defined(CONFIG_DANUBE)
|
||||
#include "ifxmips_atm_fw_regs_danube.h"
|
||||
#elif defined(CONFIG_AMAZON_SE)
|
||||
#include "ifxmips_atm_fw_regs_amazon_se.h"
|
||||
#elif defined(CONFIG_AR9)
|
||||
#include "ifxmips_atm_fw_regs_ar9.h"
|
||||
#elif defined(CONFIG_VR9)
|
||||
#include "ifxmips_atm_fw_regs_vr9.h"
|
||||
#else
|
||||
#error Platform is not specified!
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* PPE ATM Cell Header
|
||||
*/
|
||||
#if defined(__BIG_ENDIAN)
|
||||
struct uni_cell_header {
|
||||
unsigned int gfc :4;
|
||||
unsigned int vpi :8;
|
||||
unsigned int vci :16;
|
||||
unsigned int pti :3;
|
||||
unsigned int clp :1;
|
||||
};
|
||||
#else
|
||||
struct uni_cell_header {
|
||||
unsigned int clp :1;
|
||||
unsigned int pti :3;
|
||||
unsigned int vci :16;
|
||||
unsigned int vpi :8;
|
||||
unsigned int gfc :4;
|
||||
};
|
||||
#endif // defined(__BIG_ENDIAN)
|
||||
|
||||
/*
|
||||
* Inband Header and Trailer
|
||||
*/
|
||||
#if defined(__BIG_ENDIAN)
|
||||
struct rx_inband_trailer {
|
||||
/* 0 - 3h */
|
||||
unsigned int uu :8;
|
||||
unsigned int cpi :8;
|
||||
unsigned int stw_res1:4;
|
||||
unsigned int stw_clp :1;
|
||||
unsigned int stw_ec :1;
|
||||
unsigned int stw_uu :1;
|
||||
unsigned int stw_cpi :1;
|
||||
unsigned int stw_ovz :1;
|
||||
unsigned int stw_mfl :1;
|
||||
unsigned int stw_usz :1;
|
||||
unsigned int stw_crc :1;
|
||||
unsigned int stw_il :1;
|
||||
unsigned int stw_ra :1;
|
||||
unsigned int stw_res2:2;
|
||||
/* 4 - 7h */
|
||||
unsigned int gfc :4;
|
||||
unsigned int vpi :8;
|
||||
unsigned int vci :16;
|
||||
unsigned int pti :3;
|
||||
unsigned int clp :1;
|
||||
};
|
||||
|
||||
struct tx_inband_header {
|
||||
/* 0 - 3h */
|
||||
unsigned int gfc :4;
|
||||
unsigned int vpi :8;
|
||||
unsigned int vci :16;
|
||||
unsigned int pti :3;
|
||||
unsigned int clp :1;
|
||||
/* 4 - 7h */
|
||||
unsigned int uu :8;
|
||||
unsigned int cpi :8;
|
||||
unsigned int pad :8;
|
||||
unsigned int res1 :8;
|
||||
};
|
||||
#else
|
||||
struct rx_inband_trailer {
|
||||
/* 0 - 3h */
|
||||
unsigned int stw_res2:2;
|
||||
unsigned int stw_ra :1;
|
||||
unsigned int stw_il :1;
|
||||
unsigned int stw_crc :1;
|
||||
unsigned int stw_usz :1;
|
||||
unsigned int stw_mfl :1;
|
||||
unsigned int stw_ovz :1;
|
||||
unsigned int stw_cpi :1;
|
||||
unsigned int stw_uu :1;
|
||||
unsigned int stw_ec :1;
|
||||
unsigned int stw_clp :1;
|
||||
unsigned int stw_res1:4;
|
||||
unsigned int cpi :8;
|
||||
unsigned int uu :8;
|
||||
/* 4 - 7h */
|
||||
unsigned int clp :1;
|
||||
unsigned int pti :3;
|
||||
unsigned int vci :16;
|
||||
unsigned int vpi :8;
|
||||
unsigned int gfc :4;
|
||||
};
|
||||
|
||||
struct tx_inband_header {
|
||||
/* 0 - 3h */
|
||||
unsigned int clp :1;
|
||||
unsigned int pti :3;
|
||||
unsigned int vci :16;
|
||||
unsigned int vpi :8;
|
||||
unsigned int gfc :4;
|
||||
/* 4 - 7h */
|
||||
unsigned int res1 :8;
|
||||
unsigned int pad :8;
|
||||
unsigned int cpi :8;
|
||||
unsigned int uu :8;
|
||||
};
|
||||
#endif // defined(__BIG_ENDIAN)
|
||||
|
||||
/*
|
||||
* MIB Table Maintained by Firmware
|
||||
*/
|
||||
struct wan_mib_table {
|
||||
u32 res1;
|
||||
u32 wrx_drophtu_cell;
|
||||
u32 wrx_dropdes_pdu;
|
||||
u32 wrx_correct_pdu;
|
||||
u32 wrx_err_pdu;
|
||||
u32 wrx_dropdes_cell;
|
||||
u32 wrx_correct_cell;
|
||||
u32 wrx_err_cell;
|
||||
u32 wrx_total_byte;
|
||||
u32 res2;
|
||||
u32 wtx_total_pdu;
|
||||
u32 wtx_total_cell;
|
||||
u32 wtx_total_byte;
|
||||
};
|
||||
|
||||
/*
|
||||
* Host-PPE Communication Data Structure
|
||||
*/
|
||||
|
||||
#if defined(__BIG_ENDIAN)
|
||||
struct fw_ver_id {
|
||||
unsigned int family :4;
|
||||
unsigned int fwtype :4;
|
||||
unsigned int interface :4;
|
||||
unsigned int fwmode :4;
|
||||
unsigned int major :8;
|
||||
unsigned int minor :8;
|
||||
};
|
||||
|
||||
struct wrx_queue_config {
|
||||
/* 0h */
|
||||
unsigned int res2 :27;
|
||||
unsigned int dmach :4;
|
||||
unsigned int errdp :1;
|
||||
/* 1h */
|
||||
unsigned int oversize :16;
|
||||
unsigned int undersize :16;
|
||||
/* 2h */
|
||||
unsigned int res1 :16;
|
||||
unsigned int mfs :16;
|
||||
/* 3h */
|
||||
unsigned int uumask :8;
|
||||
unsigned int cpimask :8;
|
||||
unsigned int uuexp :8;
|
||||
unsigned int cpiexp :8;
|
||||
};
|
||||
|
||||
struct wrx_queue_context {
|
||||
/* 0h */
|
||||
unsigned int curr_len :16;
|
||||
unsigned int res0 :12;
|
||||
unsigned int mfs :1;
|
||||
unsigned int ec :1;
|
||||
unsigned int clp1 :1;
|
||||
unsigned int aal5dp :1;
|
||||
|
||||
/* 1h */
|
||||
unsigned int intcrc;
|
||||
|
||||
/* 2h, 3h */
|
||||
unsigned int curr_des0;
|
||||
unsigned int curr_des1;
|
||||
|
||||
/* 4h - 0xE */
|
||||
unsigned int res1[11];
|
||||
|
||||
unsigned int last_dword;
|
||||
};
|
||||
|
||||
struct wtx_port_config {
|
||||
unsigned int res1 :27;
|
||||
unsigned int qid :4;
|
||||
unsigned int qsben :1;
|
||||
};
|
||||
|
||||
struct wtx_queue_config {
|
||||
unsigned int res1 :25;
|
||||
unsigned int sbid :1;
|
||||
unsigned int qsb_vcid :4; // Which QSB queue (VCID) does this TX queue map to.
|
||||
unsigned int res2 :1;
|
||||
unsigned int qsben :1;
|
||||
};
|
||||
|
||||
struct wrx_desc_context {
|
||||
unsigned int dmach_wrptr : 16;
|
||||
unsigned int dmach_rdptr : 16;
|
||||
|
||||
unsigned int res0 : 16;
|
||||
unsigned int dmach_fcnt : 16;
|
||||
|
||||
unsigned int res1 : 11;
|
||||
unsigned int desbuf_wrptr : 5;
|
||||
unsigned int res2 : 11;
|
||||
unsigned int desbuf_rdptr : 5;
|
||||
|
||||
unsigned int res3 : 27;
|
||||
unsigned int desbuf_vcnt : 5;
|
||||
};
|
||||
|
||||
struct wrx_dma_channel_config {
|
||||
/* 0h */
|
||||
unsigned int res1 :1;
|
||||
unsigned int mode :2;
|
||||
unsigned int rlcfg :1;
|
||||
unsigned int desba :28;
|
||||
/* 1h */
|
||||
unsigned int chrl :16;
|
||||
unsigned int clp1th :16;
|
||||
/* 2h */
|
||||
unsigned int deslen :16;
|
||||
unsigned int vlddes :16;
|
||||
};
|
||||
|
||||
struct wtx_dma_channel_config {
|
||||
/* 0h */
|
||||
unsigned int res2 :1;
|
||||
unsigned int mode :2;
|
||||
unsigned int res3 :1;
|
||||
unsigned int desba :28;
|
||||
/* 1h */
|
||||
unsigned int res1 :32;
|
||||
/* 2h */
|
||||
unsigned int deslen :16;
|
||||
unsigned int vlddes :16;
|
||||
};
|
||||
|
||||
struct htu_entry {
|
||||
unsigned int res1 :1;
|
||||
unsigned int clp :1;
|
||||
unsigned int pid :2;
|
||||
unsigned int vpi :8;
|
||||
unsigned int vci :16;
|
||||
unsigned int pti :3;
|
||||
unsigned int vld :1;
|
||||
};
|
||||
|
||||
struct htu_mask {
|
||||
unsigned int set :1;
|
||||
unsigned int clp :1;
|
||||
unsigned int pid_mask :2;
|
||||
unsigned int vpi_mask :8;
|
||||
unsigned int vci_mask :16;
|
||||
unsigned int pti_mask :3;
|
||||
unsigned int clear :1;
|
||||
};
|
||||
|
||||
struct htu_result {
|
||||
unsigned int res1 :12;
|
||||
unsigned int cellid :4;
|
||||
unsigned int res2 :5;
|
||||
unsigned int type :1;
|
||||
unsigned int ven :1;
|
||||
unsigned int res3 :5;
|
||||
unsigned int qid :4;
|
||||
};
|
||||
|
||||
struct rx_descriptor {
|
||||
/* 0 - 3h */
|
||||
unsigned int own :1;
|
||||
unsigned int c :1;
|
||||
unsigned int sop :1;
|
||||
unsigned int eop :1;
|
||||
unsigned int res1 :3;
|
||||
unsigned int byteoff :2;
|
||||
unsigned int res2 :2;
|
||||
unsigned int id :4;
|
||||
unsigned int err :1;
|
||||
unsigned int datalen :16;
|
||||
/* 4 - 7h */
|
||||
unsigned int res3 :4;
|
||||
unsigned int dataptr :28;
|
||||
};
|
||||
|
||||
struct tx_descriptor {
|
||||
/* 0 - 3h */
|
||||
unsigned int own :1;
|
||||
unsigned int c :1;
|
||||
unsigned int sop :1;
|
||||
unsigned int eop :1;
|
||||
unsigned int byteoff :5;
|
||||
unsigned int res1 :5;
|
||||
unsigned int iscell :1;
|
||||
unsigned int clp :1;
|
||||
unsigned int datalen :16;
|
||||
/* 4 - 7h */
|
||||
unsigned int res2 :4;
|
||||
unsigned int dataptr :28;
|
||||
};
|
||||
#else
|
||||
struct wrx_queue_config {
|
||||
/* 0h */
|
||||
unsigned int errdp :1;
|
||||
unsigned int dmach :4;
|
||||
unsigned int res2 :27;
|
||||
/* 1h */
|
||||
unsigned int undersize :16;
|
||||
unsigned int oversize :16;
|
||||
/* 2h */
|
||||
unsigned int mfs :16;
|
||||
unsigned int res1 :16;
|
||||
/* 3h */
|
||||
unsigned int cpiexp :8;
|
||||
unsigned int uuexp :8;
|
||||
unsigned int cpimask :8;
|
||||
unsigned int uumask :8;
|
||||
};
|
||||
|
||||
struct wtx_port_config {
|
||||
unsigned int qsben :1;
|
||||
unsigned int qid :4;
|
||||
unsigned int res1 :27;
|
||||
};
|
||||
|
||||
struct wtx_queue_config {
|
||||
unsigned int qsben :1;
|
||||
unsigned int res2 :1;
|
||||
unsigned int qsb_vcid :4; // Which QSB queue (VCID) does this TX queue map to.
|
||||
unsigned int sbid :1;
|
||||
unsigned int res1 :25;
|
||||
};
|
||||
|
||||
struct wrx_dma_channel_config
|
||||
{
|
||||
/* 0h */
|
||||
unsigned int desba :28;
|
||||
unsigned int rlcfg :1;
|
||||
unsigned int mode :2;
|
||||
unsigned int res1 :1;
|
||||
/* 1h */
|
||||
unsigned int clp1th :16;
|
||||
unsigned int chrl :16;
|
||||
/* 2h */
|
||||
unsigned int vlddes :16;
|
||||
unsigned int deslen :16;
|
||||
};
|
||||
|
||||
struct wtx_dma_channel_config {
|
||||
/* 0h */
|
||||
unsigned int desba :28;
|
||||
unsigned int res3 :1;
|
||||
unsigned int mode :2;
|
||||
unsigned int res2 :1;
|
||||
/* 1h */
|
||||
unsigned int res1 :32;
|
||||
/* 2h */
|
||||
unsigned int vlddes :16;
|
||||
unsigned int deslen :16;
|
||||
};
|
||||
|
||||
struct rx_descriptor {
|
||||
/* 4 - 7h */
|
||||
unsigned int dataptr :28;
|
||||
unsigned int res3 :4;
|
||||
/* 0 - 3h */
|
||||
unsigned int datalen :16;
|
||||
unsigned int err :1;
|
||||
unsigned int id :4;
|
||||
unsigned int res2 :2;
|
||||
unsigned int byteoff :2;
|
||||
unsigned int res1 :3;
|
||||
unsigned int eop :1;
|
||||
unsigned int sop :1;
|
||||
unsigned int c :1;
|
||||
unsigned int own :1;
|
||||
};
|
||||
|
||||
struct tx_descriptor {
|
||||
/* 4 - 7h */
|
||||
unsigned int dataptr :28;
|
||||
unsigned int res2 :4;
|
||||
/* 0 - 3h */
|
||||
unsigned int datalen :16;
|
||||
unsigned int clp :1;
|
||||
unsigned int iscell :1;
|
||||
unsigned int res1 :5;
|
||||
unsigned int byteoff :5;
|
||||
unsigned int eop :1;
|
||||
unsigned int sop :1;
|
||||
unsigned int c :1;
|
||||
unsigned int own :1;
|
||||
};
|
||||
#endif // defined(__BIG_ENDIAN)
|
||||
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
#if defined(__BIG_ENDIAN)
|
||||
|
||||
struct Retx_adsl_ppe_intf {
|
||||
unsigned int res0_0 : 16;
|
||||
unsigned int dtu_sid : 8;
|
||||
unsigned int dtu_timestamp : 8;
|
||||
|
||||
unsigned int res1_0 : 16;
|
||||
unsigned int local_time : 8;
|
||||
unsigned int res1_1 : 5;
|
||||
unsigned int is_last_cw : 1;
|
||||
unsigned int reinit_flag : 1;
|
||||
unsigned int is_bad_cw : 1;
|
||||
};
|
||||
|
||||
struct Retx_adsl_ppe_intf_rec {
|
||||
|
||||
unsigned int local_time : 8;
|
||||
unsigned int res1_1 : 5;
|
||||
unsigned int is_last_cw : 1;
|
||||
unsigned int reinit_flag : 1;
|
||||
unsigned int is_bad_cw : 1;
|
||||
|
||||
unsigned int dtu_sid : 8;
|
||||
unsigned int dtu_timestamp : 8;
|
||||
|
||||
};
|
||||
|
||||
struct Retx_mode_cfg {
|
||||
unsigned int res0 :8;
|
||||
unsigned int invld_range :8; // used for rejecting the too late arrival of the retransmitted DTU
|
||||
unsigned int buff_size :8; // the total number of cells in playout buffer is 32 * buff_size
|
||||
unsigned int res1 :7;
|
||||
unsigned int retx_en :1;
|
||||
};
|
||||
|
||||
struct Retx_Tsync_cfg {
|
||||
unsigned int fw_alpha :16; // number of consecutive HEC error cell causes that the cell delineation state machine transit from SYNC to HUNT (0 means never)
|
||||
unsigned int sync_inp :16; // reserved
|
||||
};
|
||||
|
||||
struct Retx_Td_cfg {
|
||||
unsigned int res0 :8;
|
||||
unsigned int td_max :8; // maximum delay between the time a DTU is first created at transmitter and the time the DTU is sent out of ReTX layer at receiver
|
||||
unsigned int res1 :8;
|
||||
unsigned int td_min :8; // minimum delay between the time a DTU is first created at transmitter and the time the DTU is sent out of ReTX layer at receiver
|
||||
};
|
||||
|
||||
struct Retx_MIB_Timer_cfg {
|
||||
unsigned int ticks_per_sec : 16;
|
||||
unsigned int tick_cycle : 16;
|
||||
};
|
||||
|
||||
struct DTU_stat_info {
|
||||
unsigned int complete : 1;
|
||||
unsigned int bad : 1;
|
||||
unsigned int res0_0 : 14;
|
||||
unsigned int time_stamp : 8;
|
||||
unsigned int cell_cnt : 8;
|
||||
|
||||
unsigned int dtu_rd_ptr : 16;
|
||||
unsigned int dtu_wr_ptr : 16;
|
||||
};
|
||||
|
||||
struct Retx_ctrl_field {
|
||||
unsigned int res0 : 1;
|
||||
|
||||
unsigned int l2_drop : 1;
|
||||
unsigned int res1 : 13;
|
||||
unsigned int retx : 1;
|
||||
|
||||
unsigned int dtu_sid : 8;
|
||||
unsigned int cell_sid : 8;
|
||||
};
|
||||
|
||||
#else
|
||||
#error Little Endian is not supported yet.
|
||||
#endif
|
||||
|
||||
struct dsl_param {
|
||||
unsigned int update_flag; // 00
|
||||
unsigned int res0; // 04
|
||||
unsigned int MinDelayrt; // 08
|
||||
unsigned int MaxDelayrt; // 0C
|
||||
unsigned int res1; // 10
|
||||
unsigned int res2; // 14
|
||||
unsigned int RetxEnable; // 18
|
||||
unsigned int ServiceSpecificReTx; // 1C
|
||||
unsigned int res3; // 20
|
||||
unsigned int ReTxPVC; // 24
|
||||
unsigned int res4; // 28
|
||||
unsigned int res5; // 2C
|
||||
unsigned int res6; // 30
|
||||
unsigned int res7; // 34
|
||||
unsigned int res8; // 38
|
||||
unsigned int res9; // 3C
|
||||
unsigned int res10; // 40
|
||||
unsigned int res11; // 44
|
||||
unsigned int res12; // 48
|
||||
unsigned int res13; // 4C
|
||||
unsigned int RxDtuCorruptedCNT; // 50
|
||||
unsigned int RxRetxDtuUnCorrectedCNT;// 54
|
||||
unsigned int RxLastEFB; // 58
|
||||
unsigned int RxDtuCorrectedCNT; // 5C
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_REGS_COMMON_H
|
||||
178
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_danube.h
Normal file
178
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_danube.h
Normal file
@@ -0,0 +1,178 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_regs_danube.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 1 AUG 2005
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (Firmware Registers)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 4 AUG 2005 Xu Liang Initiate Version
|
||||
** 23 OCT 2006 Xu Liang Add GPL header.
|
||||
** 9 JAN 2007 Xu Liang First version got from Anand (IC designer)
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
#ifndef IFXMIPS_ATM_FW_REGS_DANUBE_H
|
||||
#define IFXMIPS_ATM_FW_REGS_DANUBE_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Host-PPE Communication Data Address Mapping
|
||||
*/
|
||||
#define FW_VER_ID ((volatile struct fw_ver_id *) SB_BUFFER(0x2001))
|
||||
#define CFG_WRX_HTUTS SB_BUFFER(0x2400) /* WAN RX HTU Table Size, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRX_QNUM SB_BUFFER(0x2401) /* WAN RX Queue Number */
|
||||
#define CFG_WRX_DCHNUM SB_BUFFER(0x2402) /* WAN RX DMA Channel Number, no more than 8, must be configured before enable PPE firmware. */
|
||||
#define CFG_WTX_DCHNUM SB_BUFFER(0x2403) /* WAN TX DMA Channel Number, no more than 16, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRDES_DELAY SB_BUFFER(0x2404) /* WAN Descriptor Write Delay, must be configured before enable PPE firmware. */
|
||||
#define WRX_DMACH_ON SB_BUFFER(0x2405) /* WAN RX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WTX_DMACH_ON SB_BUFFER(0x2406) /* WAN TX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WRX_HUNT_BITTH SB_BUFFER(0x2407) /* WAN RX HUNT Threshold, must be between 2 to 8. */
|
||||
#define WRX_QUEUE_CONFIG(i) ((struct wrx_queue_config*) SB_BUFFER(0x2500 + (i) * 20))
|
||||
#define WRX_QUEUE_CONTEXT(i) ((struct wrx_queue_context*) SB_BUFFER(0x2504 + (i) * 20))
|
||||
#define WRX_DMA_CHANNEL_CONFIG(i) ((struct wrx_dma_channel_config*) SB_BUFFER(0x2640 + (i) * 7))
|
||||
#define WRX_DESC_CONTEXT(i) ((struct wrx_desc_context*) SB_BUFFER(0x2643 + (i) * 7))
|
||||
#define WTX_PORT_CONFIG(i) ((struct wtx_port_config*) SB_BUFFER(0x2440 + (i)))
|
||||
#define WTX_QUEUE_CONFIG(i) ((struct wtx_queue_config*) SB_BUFFER(0x2710 + (i) * 27))
|
||||
#define WTX_DMA_CHANNEL_CONFIG(i) ((struct wtx_dma_channel_config*) SB_BUFFER(0x2711 + (i) * 27))
|
||||
#define WAN_MIB_TABLE ((struct wan_mib_table*) SB_BUFFER(0x2410))
|
||||
#if !defined(ENABLE_ATM_RETX) || !ENABLE_ATM_RETX
|
||||
#define HTU_ENTRY(i) ((struct htu_entry*) SB_BUFFER(0x2000 + (i)))
|
||||
#define HTU_MASK(i) ((struct htu_mask*) SB_BUFFER(0x2020 + (i)))
|
||||
#define HTU_RESULT(i) ((struct htu_result*) SB_BUFFER(0x2040 + (i)))
|
||||
#else
|
||||
#define HTU_ENTRY(i) ((struct htu_entry*) SB_BUFFER(0x2020 + (i)))
|
||||
#define HTU_MASK(i) ((struct htu_mask*) SB_BUFFER(0x2040 + (i)))
|
||||
#define HTU_RESULT(i) ((struct htu_result*) SB_BUFFER(0x2060 + (i)))
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_ATM_RETX) && ENABLE_ATM_RETX
|
||||
|
||||
#define RETX_MODE_CFG ((volatile struct Retx_mode_cfg *) SB_BUFFER(0x2408))
|
||||
#define RETX_TSYNC_CFG ((volatile struct Retx_Tsync_cfg *) SB_BUFFER(0x2409))
|
||||
#define RETX_TD_CFG ((volatile struct Retx_Td_cfg *) SB_BUFFER(0x240A))
|
||||
#define RETX_MIB_TIMER_CFG ((volatile struct Retx_MIB_Timer_cfg *) SB_BUFFER(0x240B))
|
||||
#define RETX_PLAYOUT_BUFFER_BASE SB_BUFFER(0x240D)
|
||||
#define RETX_SERVICE_HEADER_CFG SB_BUFFER(0x240E)
|
||||
#define RETX_MASK_HEADER_CFG SB_BUFFER(0x240F)
|
||||
|
||||
#define RETX_ADSL_PPE_INTF ((volatile struct Retx_adsl_ppe_intf *) PPE_REG_ADDR(0x0D78))
|
||||
#define BAD_REC_RETX_ADSL_PPE_INTF ((volatile struct Retx_adsl_ppe_intf *) SB_BUFFER(0x23AC))
|
||||
#define FIRST_BAD_REC_RETX_ADSL_PPE_INTF ((volatile struct Retx_adsl_ppe_intf *) SB_BUFFER(0x23AE))
|
||||
|
||||
#define PB_BUFFER_USAGE SB_BUFFER(0x2100)
|
||||
#define DTU_STAT_INFO ((volatile struct DTU_stat_info *) SB_BUFFER(0x2180))
|
||||
#define DTU_VLD_STAT SB_BUFFER(0x2380)
|
||||
|
||||
|
||||
//=====================================================================
|
||||
// retx firmware mib, for debug purpose
|
||||
// address : 0x2388 - 0x238F
|
||||
// size : 8
|
||||
//=====================================================================
|
||||
#define URETX_RX_TOTAL_DTU SB_BUFFER(0x2388)
|
||||
#define URETX_RX_BAD_DTU SB_BUFFER(0x2389)
|
||||
#define URETX_RX_GOOD_DTU SB_BUFFER(0x238A)
|
||||
#define URETX_RX_CORRECTED_DTU SB_BUFFER(0x238B)
|
||||
#define URETX_RX_OUTOFDATE_DTU SB_BUFFER(0x238C)
|
||||
#define URETX_RX_DUPLICATE_DTU SB_BUFFER(0x238D)
|
||||
#define URETX_RX_TIMEOUT_DTU SB_BUFFER(0x238E)
|
||||
|
||||
#define URETX_ALPHA_SWITCH_TO_HUNT_TIMES SB_BUFFER(0x238F)
|
||||
|
||||
// cell counter for debug purpose
|
||||
#define WRX_BC0_CELL_NUM SB_BUFFER(0x23E0)
|
||||
#define WRX_BC0_DROP_CELL_NUM SB_BUFFER(0x23E1)
|
||||
#define WRX_BC0_NONRETX_CELL_NUM SB_BUFFER(0x23E2)
|
||||
#define WRX_BC0_RETX_CELL_NUM SB_BUFFER(0x23E3)
|
||||
#define WRX_BC0_OUTOFDATE_CELL_NUM SB_BUFFER(0x23E4)
|
||||
#define WRX_BC0_DIRECTUP_NUM SB_BUFFER(0x23E5)
|
||||
#define WRX_BC0_PBW_TOTAL_NUM SB_BUFFER(0x23E6)
|
||||
#define WRX_BC0_PBW_SUCC_NUM SB_BUFFER(0x23E7)
|
||||
#define WRX_BC0_PBW_FAIL_NUM SB_BUFFER(0x23E8)
|
||||
#define WRX_BC1_CELL_NUM SB_BUFFER(0x23E9)
|
||||
|
||||
// debug info (interface)
|
||||
|
||||
#define DBG_DTU_INTF_WRPTR SB_BUFFER(0x2390)
|
||||
#define DBG_INTF_FCW_DUP_CNT SB_BUFFER(0x2391)
|
||||
#define DBG_INTF_SID_CHANGE_IN_DTU_CNT SB_BUFFER(0x2392)
|
||||
#define DBG_INTF_LCW_DUP_CNT SB_BUFFER(0x2393)
|
||||
|
||||
#define DBG_RFBI_DONE_INT_CNT SB_BUFFER(0x2394)
|
||||
#define DBG_DREG_BEG_END SB_BUFFER(0x2395)
|
||||
#define DBG_RFBI_BC0_INVALID_CNT SB_BUFFER(0x2396)
|
||||
#define DBG_RFBI_LAST_T SB_BUFFER(0x2397)
|
||||
|
||||
#define DBG_RFBI_INTV0 SB_BUFFER(0x23EE)
|
||||
#define DBG_RFBI_INTV1 SB_BUFFER(0x23EF)
|
||||
|
||||
#define DBG_INTF_INFO(i) ((volatile struct Retx_adsl_ppe_intf_rec *) SB_BUFFER(0x23F0 + i))
|
||||
|
||||
// Internal status
|
||||
#define URetx_curr_time SB_BUFFER(0x2398)
|
||||
#define URetx_sec_counter SB_BUFFER(0x2399)
|
||||
#define RxCURR_EFB SB_BUFFER(0x239A)
|
||||
#define RxDTURetransmittedCNT SB_BUFFER(0x239B)
|
||||
|
||||
//=====================================================================
|
||||
// standardized MIB counter
|
||||
// address : 0x239C - 0x239F
|
||||
// size : 4
|
||||
//=====================================================================
|
||||
#define RxLastEFBCNT SB_BUFFER(0x239C)
|
||||
#define RxDTUCorrectedCNT SB_BUFFER(0x239D)
|
||||
#define RxDTUCorruptedCNT SB_BUFFER(0x239E)
|
||||
#define RxRetxDTUUncorrectedCNT SB_BUFFER(0x239F)
|
||||
|
||||
|
||||
//=====================================================================
|
||||
// General URetx Context
|
||||
// address : 0x23A0 - 0x23AF
|
||||
// size : 16
|
||||
//=====================================================================
|
||||
#define NEXT_DTU_SID_OUT SB_BUFFER(0x23A0)
|
||||
#define LAST_DTU_SID_IN SB_BUFFER(0x23A1)
|
||||
#define NEXT_CELL_SID_OUT SB_BUFFER(0x23A2)
|
||||
#define ISR_CELL_ID SB_BUFFER(0x23A3)
|
||||
#define PB_CELL_SEARCH_IDX SB_BUFFER(0x23A4)
|
||||
#define PB_READ_PEND_FLAG SB_BUFFER(0x23A5)
|
||||
#define RFBI_FIRST_CW SB_BUFFER(0x23A6)
|
||||
#define RFBI_BAD_CW SB_BUFFER(0x23A7)
|
||||
#define RFBI_INVALID_CW SB_BUFFER(0x23A8)
|
||||
#define RFBI_RETX_CW SB_BUFFER(0x23A9)
|
||||
#define RFBI_CHK_DTU_STATUS SB_BUFFER(0x23AA)
|
||||
|
||||
//=====================================================================
|
||||
// per PVC counter for RX error_pdu and correct_pdu
|
||||
// address : 0x23B0 - 0x23CF
|
||||
// size : 32
|
||||
//=====================================================================
|
||||
#define WRX_PER_PVC_CORRECT_PDU_BASE SB_BUFFER(0x23B0)
|
||||
#define WRX_PER_PVC_ERROR_PDU_BASE SB_BUFFER(0x23C0)
|
||||
|
||||
#define __WRXCTXT_L2_RdPtr(i) SB_BUFFER(0x2422 + (i))
|
||||
#define __WRXCTXT_L2Pages(i) SB_BUFFER(0x2424 + (i))
|
||||
|
||||
#define __WTXCTXT_TC_WRPTR(i) SB_BUFFER(0x2450 + (i))
|
||||
#define __WRXCTXT_PortState(i) SB_BUFFER(0x242A + (i))
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_REGS_DANUBE_H
|
||||
59
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_vr9.h
Normal file
59
package/system/ltq-dsl/src/ifxmips_atm_fw_regs_vr9.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_regs_vr9.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 1 AUG 2005
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (Firmware Registers)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 4 AUG 2005 Xu Liang Initiate Version
|
||||
** 23 OCT 2006 Xu Liang Add GPL header.
|
||||
** 9 JAN 2007 Xu Liang First version got from Anand (IC designer)
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
#ifndef IFXMIPS_ATM_FW_REGS_VR9_H
|
||||
#define IFXMIPS_ATM_FW_REGS_VR9_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Host-PPE Communication Data Address Mapping
|
||||
*/
|
||||
#define FW_VER_ID ((volatile struct fw_ver_id *) SB_BUFFER(0x2001))
|
||||
#define CFG_WRX_HTUTS SB_BUFFER(0x2010) /* WAN RX HTU Table Size, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRX_QNUM SB_BUFFER(0x2011) /* WAN RX Queue Number */
|
||||
#define CFG_WRX_DCHNUM SB_BUFFER(0x2012) /* WAN RX DMA Channel Number, no more than 8, must be configured before enable PPE firmware. */
|
||||
#define CFG_WTX_DCHNUM SB_BUFFER(0x2013) /* WAN TX DMA Channel Number, no more than 16, must be configured before enable PPE firmware. */
|
||||
#define CFG_WRDES_DELAY SB_BUFFER(0x2014) /* WAN Descriptor Write Delay, must be configured before enable PPE firmware. */
|
||||
#define WRX_DMACH_ON SB_BUFFER(0x2015) /* WAN RX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WTX_DMACH_ON SB_BUFFER(0x2016) /* WAN TX DMA Channel Enable, must be configured before enable PPE firmware. */
|
||||
#define WRX_HUNT_BITTH SB_BUFFER(0x2017) /* WAN RX HUNT Threshold, must be between 2 to 8. */
|
||||
#define WRX_QUEUE_CONFIG(i) ((struct wrx_queue_config*) SB_BUFFER(0x4C00 + (i) * 20)) /* i < 16 */
|
||||
#define WRX_DMA_CHANNEL_CONFIG(i) ((struct wrx_dma_channel_config*) SB_BUFFER(0x4F80 + (i) * 7)) /* i < 8 */
|
||||
#define WTX_PORT_CONFIG(i) ((struct wtx_port_config*) SB_BUFFER(0x4FB8 + (i))) /* i < 2 */
|
||||
#define WTX_QUEUE_CONFIG(i) ((struct wtx_queue_config*) SB_BUFFER(0x3A00 + (i) * 27)) /* i < 16 */
|
||||
#define WTX_DMA_CHANNEL_CONFIG(i) ((struct wtx_dma_channel_config*) SB_BUFFER(0x3A01 + (i) * 27)) /* i < 16 */
|
||||
#define WAN_MIB_TABLE ((struct wan_mib_table*) SB_BUFFER(0x4EF0))
|
||||
#define HTU_ENTRY(i) ((struct htu_entry*) SB_BUFFER(0x26A0 + (i))) /* i < 32 */
|
||||
#define HTU_MASK(i) ((struct htu_mask*) SB_BUFFER(0x26C0 + (i))) /* i < 32 */
|
||||
#define HTU_RESULT(i) ((struct htu_result*) SB_BUFFER(0x26E0 + (i))) /* i < 32 */
|
||||
|
||||
#define UTP_CFG SB_BUFFER(0x2018) // bit 0~3 - 0x0F: in showtime, 0x00: not in showtime
|
||||
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_REGS_VR9_H
|
||||
427
package/system/ltq-dsl/src/ifxmips_atm_fw_vr9.h
Normal file
427
package/system/ltq-dsl/src/ifxmips_atm_fw_vr9.h
Normal file
@@ -0,0 +1,427 @@
|
||||
#ifndef IFXMIPS_ATM_FW_VR9_H
|
||||
#define IFXMIPS_ATM_FW_VR9_H
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
**
|
||||
** FILE NAME : ifxmips_atm_fw_vr9.h
|
||||
** PROJECT : UEIP
|
||||
** MODULES : ATM (ADSL)
|
||||
**
|
||||
** DATE : 22 OCT 2007
|
||||
** AUTHOR : Xu Liang
|
||||
** DESCRIPTION : ATM Driver (PP32 Firmware)
|
||||
** COPYRIGHT : Copyright (c) 2006
|
||||
** Infineon Technologies AG
|
||||
** Am Campeon 1-12, 85579 Neubiberg, Germany
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation; either version 2 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** HISTORY
|
||||
** $Date $Author $Comment
|
||||
** 22 OCT 2007 Xu Liang Initial Version, v00.01
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#define VER_IN_FIRMWARE 1
|
||||
|
||||
#define ATM_FW_VER_MAJOR 0
|
||||
#define ATM_FW_VER_MINOR 24
|
||||
|
||||
|
||||
static u32 firmware_binary_code[] = {
|
||||
0x800004B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000FFE0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC1000002, 0xD90C00F8, 0xC2000002, 0xDA0800F9, 0x80004390, 0xC2000000, 0xDA0800F9, 0x80003A10,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x800039C8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x80004B60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x800038C8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400000, 0xC000ABC0, 0xC88400F8, 0x80004050, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC0400002, 0xC000ABC0, 0xC88400F8, 0x80003FD0, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3C00004, 0xDBC800F9, 0xC10C0002, 0xD90C00F8, 0x8000FEE0, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC10E0002, 0xD90C00F8, 0xC0004028, 0xC84000F8, 0x80004000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x900004D9, 0x00000000, 0x00000000, 0x00000000, 0x90CC0481,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xC3C00000, 0xDBC800F9, 0xC1400008, 0xC1900000, 0x71588000,
|
||||
0x14100100, 0xC140000A, 0xC1900002, 0x71588000, 0x14100100, 0xC140000C, 0xC1900004, 0x71588000,
|
||||
0x14100100, 0xC1400004, 0xC1900006, 0x71588000, 0x14100100, 0xC1400006, 0xC1900008, 0x71588000,
|
||||
0x14100100, 0xC140000E, 0xC190000A, 0x71588000, 0x14100100, 0xC1400000, 0xC190000C, 0x71588000,
|
||||
0x14100100, 0xC1400002, 0xC190000E, 0x71588000, 0x14100100, 0xC0400000, 0xC11C0000, 0xC000E82C,
|
||||
0xCD05CE00, 0xC11C0002, 0xC000E82C, 0xCD05CE00, 0xC0400002, 0xC11C0000, 0xC000E82C, 0xCD05CE00,
|
||||
0xC11C0002, 0xC000E82C, 0xCD05CE00, 0xC000E824, 0x00000000, 0xCBC000F9, 0xCB8000F9, 0xCB4000F9,
|
||||
0xCB0000F8, 0xC000ABE4, 0x5BFC4000, 0xCFC000F9, 0x5BB84000, 0xCF8000F9, 0x5B744000, 0xCF4000F9,
|
||||
0x5B304000, 0xCF0000F8, 0xC000EA10, 0x00000000, 0xCBC000F9, 0xCB8000F8, 0xC000ABE0, 0x5BFC4000,
|
||||
0xCFC000F9, 0x5BB84000, 0xCF8000F8, 0xC30001FE, 0xC000F416, 0xCF0000F8, 0xC3000000, 0x7F018000,
|
||||
0xC000E42E, 0xCF0000F8, 0xC000E40E, 0xCF0000F8, 0xC3C1FFFE, 0xC000690E, 0xCFC00078, 0xC000692C,
|
||||
0xCFC00078, 0xC0006924, 0xCFC00038, 0xC0006912, 0xCFC00038, 0xC0006966, 0xCFC00038, 0xC0006968,
|
||||
0xCFC00078, 0xC000696A, 0xCFC00078, 0xC3C00000, 0xC2800020, 0xC3000000, 0x7F018000, 0x6FF88000,
|
||||
0x6FD44000, 0x4395C000, 0x5BB89800, 0x5838000A, 0xCF0000F8, 0x5BFC0002, 0xB7E8FFC8, 0x00000000,
|
||||
0xC3C00000, 0xC2800010, 0x6FF86000, 0x47BDC000, 0x5BB89F00, 0xC3400000, 0x58380004, 0xCB420078,
|
||||
0x00000000, 0x58380008, 0xCF400078, 0x5BFC0002, 0xB7E8FFB0, 0x00000000, 0xC3C00000, 0xC2800020,
|
||||
0xC348001E, 0xC3000000, 0x7F018000, 0x6FF8A000, 0x6FD44000, 0x4795C000, 0x47BDC000, 0x5BB87400,
|
||||
0x58380008, 0xCF408418, 0x5838000A, 0xCF0000F8, 0x5BFC0002, 0xB7E8FFB0, 0x00000000, 0x00000000,
|
||||
0xC3E0E282, 0x5BFC0030, 0xC0004002, 0xCFC000F8, 0xC000E82C, 0xC11E0002, 0xCD01EF00, 0xC000E82E,
|
||||
0xCD01EF00, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x80000028, 0x00000000, 0x80001CB8,
|
||||
0x00000000, 0x8000FFE0, 0xC0006918, 0xD28000F8, 0xC2000000, 0xDF600038, 0x5E600020, 0x84000272,
|
||||
0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000402A, 0xCA0000F8, 0xC0006912,
|
||||
0xCA4000F8, 0xC0006924, 0xCA8000F8, 0xC0006966, 0xCAC000F8, 0x00000000, 0xC121FFFE, 0x5911FE94,
|
||||
0x14100000, 0x76250000, 0x76290000, 0x762D0000, 0x840001CA, 0xC0006918, 0xCA4000F8, 0xC28001FE,
|
||||
0x76290000, 0x5A640002, 0x6A254010, 0x5EE80000, 0x8400001A, 0x6AA54000, 0x80000010, 0xC62800F8,
|
||||
0x62818008, 0xC0006918, 0xCF0000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC0006966,
|
||||
0xCA4000F8, 0xC2000002, 0x6A310000, 0x7E010000, 0x76612000, 0xCE4000F8, 0x00000000, 0xC121FFFE,
|
||||
0x5911FE94, 0x14100000, 0x6F346000, 0x4771A000, 0x5B749F00, 0xC2800000, 0x58340006, 0xCA800078,
|
||||
0xC2C00000, 0x58340000, 0xCAC000D8, 0xC2400000, 0x5834000A, 0xCA420078, 0x6EA82000, 0x42E9E000,
|
||||
0x6F2CA000, 0x42E56000, 0x5AEC3200, 0xC3990040, 0xC7381C18, 0xC6F80060, 0x99005560, 0xDB9800F8,
|
||||
0xDBD800F9, 0x00000000, 0xDEA000F8, 0x46310000, 0x8400FD80, 0xC0006958, 0xC84000F8, 0x00000000,
|
||||
0xC3C00002, 0x787C2000, 0xCC4000F8, 0xC000ABC8, 0xCB8400F8, 0xC000ABC4, 0xC88400F8, 0x5FB80000,
|
||||
0x8400FCFA, 0xC000FAC0, 0xCA0400F8, 0x00000000, 0x00000000, 0xA6040070, 0xC000ABE4, 0xC80400F8,
|
||||
0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xCA0000F8, 0xC42400F8, 0x00000000, 0x98C05CD8,
|
||||
0xC000697C, 0xCA0000F8, 0x59640004, 0xC0004030, 0xCA0000F8, 0xC2400002, 0x6A452000, 0x76250000,
|
||||
0x8400FC3A, 0xC000ABE8, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000, 0xCA0000F8, 0xC42400F8,
|
||||
0x00000000, 0xA63C17DA, 0x00000000, 0xC000ABE4, 0xC80400F8, 0x6C908000, 0x45088000, 0x45088000,
|
||||
0x40100000, 0xCA0000F8, 0xC42400F8, 0x00000000, 0xC0006934, 0xCE0000F8, 0xC2800002, 0xC4681C08,
|
||||
0xC62821D0, 0xC2600010, 0x5A650D80, 0xC0004020, 0xCB4000F8, 0xC2200400, 0x5A200D40, 0xC7601040,
|
||||
0xC000F220, 0xCE8000F8, 0xC000F200, 0xCE4000F8, 0xC000F202, 0xCE0000F8, 0xC000F240, 0xCB4000F8,
|
||||
0x00000000, 0x00000000, 0xA754FFE0, 0xC2000000, 0xC7600040, 0xA7520042, 0x00000000, 0x00000000,
|
||||
0x99005FD8, 0xC0009DE2, 0xC94000F8, 0xC1800002, 0x80001680, 0x58204DC0, 0xC2000000, 0xCA000018,
|
||||
0xC2400000, 0xCA414000, 0xC2800000, 0xCA812000, 0xC2C00000, 0xCAC20018, 0xC0006938, 0xCE0000F8,
|
||||
0xC0006920, 0xCE4000F8, 0xC0006916, 0xCE8000F8, 0xC0006922, 0xCEC000F8, 0xA6400540, 0x00000000,
|
||||
0xC0006938, 0xCBC000F8, 0x00000000, 0xC3800000, 0x6FF48000, 0x6FD44000, 0x4355A000, 0x5B749800,
|
||||
0x58340000, 0xCB802010, 0x00000000, 0xC2000000, 0x6FB46000, 0x4779A000, 0x5B749F00, 0x5834000C,
|
||||
0xCA000020, 0xC000691A, 0xCF8000F8, 0x5E200000, 0x8400046A, 0xC2000000, 0xDF610048, 0x5E6001E8,
|
||||
0x8800FFE8, 0xC2000002, 0xC2400466, 0xC2A00000, 0x5AA80000, 0xC000F006, 0xCE0000F8, 0xC000F008,
|
||||
0xCE4000F8, 0xC000F00A, 0xCE8000F8, 0x99004FA0, 0xC1A0FFFE, 0xC000E824, 0xC9840070, 0xC0006934,
|
||||
0xCA4000F8, 0xC2000000, 0xC2800002, 0x99004FE0, 0xDA9800F8, 0xC61400F8, 0xC65800F8, 0xC161FFFE,
|
||||
0x5955FFFE, 0x14140000, 0x00000000, 0x990050C8, 0xC000691A, 0xC94000F8, 0x00000000, 0x00000000,
|
||||
0xC121FFFE, 0x5911FE94, 0x14100000, 0xC0006922, 0xCA001118, 0xC3C00000, 0xC3800000, 0xC0006930,
|
||||
0xCE023118, 0xC0006932, 0xCBC000D8, 0xC2800000, 0xC000691E, 0xCFC000F8, 0xC000ABDE, 0xCA800060,
|
||||
0xC3A0001A, 0x5BB94000, 0xC6B80060, 0xC000691C, 0xCF8000F8, 0x99005338, 0xC000691C, 0xC1400000,
|
||||
0xC9420048, 0x00000000, 0x00000000, 0x00000000, 0xA8E2FFE8, 0xC2000000, 0xC1220002, 0xD90C00F8,
|
||||
0xDF600038, 0x5E600020, 0x8400FFF2, 0xC000691C, 0xCA0000F8, 0xC000691E, 0xCA4000F8, 0x00000000,
|
||||
0x00000000, 0x99005560, 0xDA1800F8, 0xDA5800F9, 0x00000000, 0xC2000000, 0xDF610048, 0x5E6001FE,
|
||||
0x8800FFE8, 0xC0006916, 0xCA8000F8, 0xC2C00000, 0xDFEC0048, 0xC2400000, 0x466D2000, 0x8400004A,
|
||||
0x5EA80000, 0x8400003A, 0xC2600002, 0x99005FD8, 0xC0009DEE, 0xC94000F8, 0xC1800002, 0x80000030,
|
||||
0xC2600000, 0x99005FD8, 0xC0009DEC, 0xC94000F8, 0xC1800002, 0xC2000068, 0xC6240078, 0xC0006930,
|
||||
0xCE400080, 0xC000691A, 0xC98000F8, 0xC000ABDE, 0xC94000F8, 0x6D9C6000, 0x45D8E000, 0x59DC9F00,
|
||||
0x990053C0, 0xD95800F8, 0xD99800F9, 0xD9D400F8, 0x99005338, 0xC000691C, 0xC1400000, 0xC9420048,
|
||||
0xC2000000, 0xDF600038, 0x5E600020, 0x8400FFEA, 0x00000000, 0xC000691C, 0xCA0000F8, 0xC000691E,
|
||||
0xCA4000F8, 0x00000000, 0x00000000, 0x99005560, 0xDA1800F8, 0xDA5800F9, 0x00000000, 0x800010E8,
|
||||
0x00000000, 0x99005FD8, 0xC0009DEA, 0xC94000F8, 0xC1800002, 0x800010B8, 0xC0006938, 0xCBC000F8,
|
||||
0x00000000, 0x00000000, 0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB89800, 0x58380008, 0xCA0000F8,
|
||||
0x00000000, 0x00000000, 0xA6000382, 0x00000000, 0xC0006938, 0xCBC000F8, 0xC3000000, 0x00000000,
|
||||
0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB89800, 0x58380000, 0xCB002010, 0xC2000000, 0x58380008,
|
||||
0xCA020078, 0x5838000C, 0xCAC000F8, 0x5838000E, 0xCA4000F8, 0xC000691A, 0xCF0000F8, 0xC0006930,
|
||||
0xCEC000F8, 0xC000693C, 0xCE0000F8, 0xC0006932, 0xCE4000F8, 0x5E200000, 0x84000120, 0xC2800000,
|
||||
0xA6FE00BA, 0x6F206000, 0x46310000, 0x5A209F00, 0x5820000C, 0xCA800020, 0x00000000, 0x00000000,
|
||||
0x5EA80000, 0x840001F2, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x990050C8,
|
||||
0xC000691A, 0xC94000F8, 0x00000000, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0xC0006930,
|
||||
0xCAC000F8, 0xC0006932, 0xCA4000F8, 0xC7EC1118, 0xC0006930, 0xCEC000F8, 0x5838000C, 0xCEC000F8,
|
||||
0x58000002, 0xCE4000F8, 0xC0006934, 0xCA0000F8, 0xC2400002, 0x6E642000, 0x6E642000, 0x76612000,
|
||||
0x8400002A, 0xC2400002, 0x6E684000, 0x58380008, 0xCE804200, 0xA6000020, 0x6E682000, 0x58380008,
|
||||
0xCE802100, 0xC2400002, 0x6E642000, 0x76612000, 0x840000EA, 0x58380008, 0xCA0000F8, 0xC2800000,
|
||||
0xC2400000, 0xA60200C0, 0xDBA800F8, 0x6F386000, 0x47B1C000, 0x5BB89F00, 0x58380004, 0xCA400078,
|
||||
0x58380002, 0xCA800078, 0x00000000, 0xDEB800F8, 0x46A54000, 0x88000060, 0x00000000, 0xC0009DE4,
|
||||
0xCA0000F8, 0xC2400002, 0x6E640000, 0x5A200002, 0xCE0000F8, 0x58380008, 0xCE400000, 0x80000018,
|
||||
0x00000000, 0x80000048, 0xC0006934, 0xCA0000F8, 0x00000000, 0x00000000, 0xA6020C6A, 0x00000000,
|
||||
0x00000000, 0x80000C98, 0xC2800000, 0xC2000080, 0xC240001A, 0xDF690048, 0x46294000, 0x46A54000,
|
||||
0x8800FFD2, 0xC2000006, 0xC2600982, 0x5A643B6E, 0x5838000A, 0xCA8000F8, 0xC000F006, 0xCE0000F8,
|
||||
0xC000F008, 0xCE4000F8, 0xC000F00A, 0xCE8000F8, 0x99004FA0, 0xC1A0FFFE, 0xC000E824, 0xC9840070,
|
||||
0xC2000000, 0xC0006930, 0xCA02E008, 0x58380026, 0xCA4000F8, 0x00000000, 0xC2800000, 0x99004FE0,
|
||||
0xDA9800F8, 0xC61400F8, 0xC65800F8, 0xC0006934, 0xCA0000F8, 0x00000000, 0x00000000, 0xA6020022,
|
||||
0x00000000, 0x00000000, 0x80000318, 0xC0006938, 0xCBC000F8, 0xC000ABE4, 0xC80400F8, 0x6C908000,
|
||||
0x45088000, 0x45088000, 0x40100000, 0xCA0000F8, 0xC42400F8, 0x00000000, 0x58240018, 0xCA0000F8,
|
||||
0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB89800, 0xC3000000, 0xC3400002, 0xC2C00000, 0xC62C0078,
|
||||
0xC6270038, 0xC0006940, 0xCE400038, 0xC6260038, 0xC0006942, 0xCE400038, 0xC000693C, 0xCA0000F8,
|
||||
0x5EEC0000, 0x8400018A, 0x5A6C0010, 0x46254000, 0x88000190, 0x5A600052, 0x46E54000, 0x88000178,
|
||||
0x58380006, 0xCA8000F8, 0xC0006940, 0xCA0000F8, 0xC2400000, 0xC6A70038, 0x7E412000, 0x76612000,
|
||||
0xC2000000, 0xC6A10038, 0x46250000, 0x84000138, 0xC0006942, 0xCA0000F8, 0xC2400000, 0xC6A60038,
|
||||
0x7E412000, 0x76612000, 0xC2000000, 0xC6A00038, 0x58380002, 0xCA8000F8, 0x46250000, 0x840000E8,
|
||||
0xC2400000, 0xC6A60078, 0x466D0000, 0x880000DA, 0xC2400000, 0xC6A40078, 0x58380008, 0xCA8000F8,
|
||||
0x46E50000, 0x880000BA, 0x00000000, 0xA6820018, 0x00000000, 0xC7700B00, 0xA6840098, 0x00000000,
|
||||
0xC7700A00, 0x80000080, 0xC7700200, 0xC000693C, 0xCAC000F8, 0x80000060, 0xC7700300, 0xC000693C,
|
||||
0xCAC000F8, 0x80000040, 0xC7700900, 0x80000030, 0xC7700800, 0x80000020, 0xC7700700, 0x80000010,
|
||||
0xC7700500, 0xC0006944, 0xCF0000F8, 0xC000693E, 0xCEC000F8, 0xC0006938, 0xCA4000F8, 0xC000693C,
|
||||
0xCB8000F8, 0xC000693E, 0xCB4000F8, 0xC3000000, 0x6E608000, 0x6E544000, 0x42150000, 0x5A209800,
|
||||
0x5AA00008, 0x58200004, 0xCB000078, 0xC0006934, 0xCA0000F8, 0xC2400000, 0xC0006930, 0xCA42E008,
|
||||
0xC3C00018, 0xA6020098, 0x00000000, 0x43656000, 0x47AD0000, 0x88000050, 0x46F96000, 0x6EE04010,
|
||||
0x5BE00004, 0xC2000000, 0xC6E00008, 0x5E200000, 0x84000042, 0x5BFC0002, 0x80000030, 0xC3C00004,
|
||||
0x5A2C0008, 0x47A10000, 0x88000012, 0x5FB80008, 0x6FE04000, 0x42390000, 0x47212000, 0x88000068,
|
||||
0xC2400000, 0xC0006930, 0xCA42E008, 0xC2060002, 0xC68000F8, 0xCE006300, 0x6FE04000, 0x4721C000,
|
||||
0x5F700010, 0x4765A000, 0xC2000000, 0xC6340008, 0xC25A000A, 0xC000691A, 0xCA401C18, 0xC2800000,
|
||||
0xC0006932, 0xCA8000D8, 0xC000ABDE, 0xCA400060, 0x6FA04010, 0x42290000, 0xC000691E, 0xCE0000F8,
|
||||
0xC7E41048, 0xC000691C, 0xCE4000F8, 0x6FE04000, 0x43A1C000, 0xC000693C, 0xCF8000F8, 0xC000693E,
|
||||
0xCF4000F8, 0xC000693A, 0xCFC000F8, 0x80000008, 0x00000000, 0x00000000, 0x00000000, 0xC2000000,
|
||||
0xDCE000F8, 0xA622FFD8, 0xC1220002, 0xD90C00F8, 0xC0006938, 0xCBC000F8, 0xC0006944, 0xCB4000F8,
|
||||
0xC000ABDE, 0xCB0000F8, 0xC0006934, 0xCA0000F8, 0x6FF88000, 0x6FD44000, 0x4395C000, 0x5BB89800,
|
||||
0xA6020268, 0xC2400000, 0x58380008, 0xCA406000, 0xDFE800F8, 0xC2218E08, 0x5A21BAF6, 0x46A14000,
|
||||
0x84000022, 0xC2080002, 0x7361A000, 0x80000058, 0x5E640000, 0x84000022, 0xC20C0002, 0x7361A000,
|
||||
0x80000030, 0xC2000000, 0xC760E710, 0xC7604218, 0x5E200000, 0x84000272, 0xC2200002, 0xC0006930,
|
||||
0xCE021000, 0x99005FD8, 0xC0009DE8, 0xC94000F8, 0xC1800002, 0x58380000, 0xCA0000F8, 0x00000000,
|
||||
0x00000000, 0xA6000132, 0xC0006940, 0xCA8000F8, 0xC0006942, 0xCA4000F8, 0xC7600078, 0xC6A01838,
|
||||
0xC6601038, 0xC000693A, 0xCA4000F8, 0xC0006934, 0xCA8000F8, 0xC000AB40, 0x40300000, 0x40240000,
|
||||
0x5C000004, 0x5EC0ABC0, 0x88000012, 0x5C000080, 0xCE0000F8, 0x58000002, 0x5EC0ABC0, 0x88000012,
|
||||
0x5C000080, 0xCE8000F8, 0xC000693E, 0xCA0000F8, 0xC2400000, 0x5838000C, 0xCE4000F8, 0x99005FD8,
|
||||
0xC0009DF0, 0xC94000F8, 0xC61800F8, 0xC0006930, 0xC6100078, 0xCD000078, 0x800000A8, 0xC2400002,
|
||||
0x58380008, 0xCE400000, 0xC0006944, 0xCF4000F8, 0x80000278, 0xC000693C, 0xCA4000F8, 0xDFE800F8,
|
||||
0x5A300018, 0xC000AB40, 0x40200000, 0xCA0000F8, 0x58380008, 0xC6501078, 0xCD021078, 0x5838000A,
|
||||
0xCE8000F8, 0x58380026, 0xCE0000F8, 0xC0006944, 0xCF4000F8, 0x99005338, 0xC000691C, 0xC1400000,
|
||||
0xC9420048, 0x80000038, 0x00000000, 0x99005FD8, 0xC0009DE6, 0xC94000F8, 0xC1800002, 0x8000FDD8,
|
||||
0xC2000000, 0xC2400020, 0xDF600038, 0xB624FFEA, 0xC000691C, 0xCA4000F8, 0xC000691E, 0xCA8000F8,
|
||||
0x99005560, 0xDA5800F8, 0xDA9800F9, 0x00000000, 0xC0006934, 0xCA0000F8, 0x00000000, 0xC2800000,
|
||||
0xA6020160, 0xC2400004, 0xC2000080, 0xDF690048, 0x46294000, 0x46A54000, 0x8800FFDA, 0x00000000,
|
||||
0xC000691A, 0xC98000F8, 0xC000ABDE, 0xC94000F8, 0x6D9C6000, 0x45D8E000, 0x59DC9F00, 0x990053C0,
|
||||
0xD95800F8, 0xD99800F9, 0xD9D400F8, 0x99005338, 0xC000691C, 0xC1400000, 0xC9420048, 0xC2000000,
|
||||
0xC2400020, 0xDF600038, 0xB624FFEA, 0xC000691C, 0xCA4000F8, 0xC000691E, 0xCA8000F8, 0x99005560,
|
||||
0xDA5800F8, 0xDA9800F9, 0x00000000, 0x58380008, 0xCA4000F8, 0xC2000000, 0xCE000018, 0xC2A1FFFE,
|
||||
0x5AA9FFFE, 0xCE021078, 0x5838000A, 0xCE8000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000,
|
||||
0xC000E838, 0xC2500002, 0xCE450800, 0xC000ABC8, 0xCB8400F8, 0xC2000000, 0xC000E82C, 0xCA040038,
|
||||
0x5FB80002, 0xC000ABC8, 0xCF8400F8, 0x58880002, 0xB6080018, 0x00000000, 0xC0800000, 0xC000ABC4,
|
||||
0xCC8400F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x8000E350, 0xC2000000, 0xDF600038,
|
||||
0x5E200020, 0x8400026A, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000402C,
|
||||
0xCA0000F8, 0xC0006910, 0xCA4000F8, 0xC000692C, 0xCA8000F8, 0xC0006968, 0xCAC000F8, 0x00000000,
|
||||
0xC121FFFE, 0x5911FE94, 0x14100000, 0x76250000, 0x76290000, 0x76E16000, 0x840001C2, 0xC0006926,
|
||||
0xCA4000F8, 0xC201FFFE, 0x76E16000, 0x5A640002, 0x6AE50010, 0x5F200000, 0x8400001A, 0x6A250000,
|
||||
0x80000010, 0xC6E000F8, 0x62014008, 0xC0006926, 0xCE8000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000,
|
||||
0x00000000, 0xC0006968, 0xCA4000F8, 0xC2000002, 0x6A290000, 0x7E010000, 0x76612000, 0xCE4000F8,
|
||||
0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x6EB4A000, 0x6E944000, 0x4755A000, 0x4769A000,
|
||||
0x5B747400, 0x58340002, 0xC2000000, 0xCA0000D8, 0x5834002E, 0xC2400000, 0xCA400078, 0x6EB0A000,
|
||||
0x6EBC4000, 0x473D8000, 0x47298000, 0x5B30342E, 0x5B300004, 0x6E642000, 0x4225E000, 0xC39A8024,
|
||||
0xC7380060, 0xC6B81C18, 0x99005560, 0xDB9800F8, 0xDBD800F9, 0x00000000, 0xC2000000, 0xDF600038,
|
||||
0x5E200020, 0x840002A2, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000690E,
|
||||
0xCA0000F8, 0xC000692A, 0xCA4000F8, 0xC000696A, 0xCB0000F8, 0xC0006956, 0xCAC000F8, 0x00000000,
|
||||
0xC121FFFE, 0x5911FE94, 0x14100000, 0x77218000, 0x77258000, 0x84000202, 0xC201FFFE, 0x77218000,
|
||||
0x5AEC0002, 0x6B2D0010, 0x5EA00000, 0x8400001A, 0x6A2D0000, 0x80000010, 0xC72000F8, 0x62016008,
|
||||
0xC0006956, 0xCEC000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000696A, 0xCA4000F8,
|
||||
0xC2000002, 0x6A2D0000, 0x7E010000, 0x76612000, 0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE94,
|
||||
0x14100000, 0x6EF4A000, 0x6ED44000, 0x4755A000, 0x476DA000, 0x5B747400, 0x5834000E, 0xC2000000,
|
||||
0xCA0000D8, 0x58340008, 0xC2400000, 0xCA420078, 0x5834000C, 0xC2800000, 0xCA832010, 0x6E644010,
|
||||
0x42250000, 0x4229E000, 0xC39A8008, 0x58340008, 0xCB809018, 0x58340008, 0xC2800000, 0xCA810010,
|
||||
0x6EE0A000, 0x6EE44000, 0x46250000, 0x462D0000, 0x5A200008, 0x5A203408, 0x42290000, 0xC6380060,
|
||||
0xC6F81C18, 0x99005560, 0xDB9800F8, 0xDBD800F9, 0x00000000, 0xC000695A, 0xC84000F8, 0x00000000,
|
||||
0xC3C00002, 0x787C2000, 0xCC4000F8, 0xC0004030, 0xCA0000F8, 0xC2400008, 0x6A452000, 0x76250000,
|
||||
0x84000E02, 0xC000EA28, 0xC3800000, 0xCB840038, 0xC000EA14, 0xC3400000, 0xCB440038, 0xC0009F70,
|
||||
0xCB0400F8, 0xB7B4005A, 0x5804F802, 0xCAC000F8, 0xA7000060, 0x00000000, 0x00000000, 0xA6C8DD30,
|
||||
0xC2800000, 0xC6E80018, 0x80000070, 0x00000000, 0x00000000, 0x00000000, 0x8000DCF8, 0x00000000,
|
||||
0xC2800000, 0xC7282018, 0xC000690E, 0xCA4000F8, 0x6BE9E000, 0x00000000, 0x767D2000, 0x8400DCB0,
|
||||
0x6EA0A000, 0x6E944000, 0x46150000, 0x46290000, 0x5A207400, 0x5820000C, 0xCA0000F8, 0xC0006946,
|
||||
0xCE8000F8, 0xA6220368, 0x00000000, 0xC2200060, 0xC0006948, 0xCE000008, 0xCE021038, 0xC240000A,
|
||||
0xC000694A, 0xCE4000F8, 0xC2B60002, 0xC0006964, 0xCE837B00, 0x99005830, 0xC0009F74, 0xC88400F8,
|
||||
0x00000000, 0xC0006946, 0xCBC000F8, 0x00000000, 0x00000000, 0x6FF8A000, 0x6FD44000, 0x4795C000,
|
||||
0x47BDC000, 0x5BB87400, 0x990055F0, 0xDBD800F8, 0xDB9800F9, 0x00000000, 0x99005338, 0xC000691C,
|
||||
0xC1400000, 0xC9420048, 0xC000691C, 0x990057E8, 0xC94000F9, 0xC98000F8, 0x00000000, 0x99005560,
|
||||
0xD95800F8, 0xD99800F9, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0x99005228,
|
||||
0xDBD800F8, 0xDB9800F9, 0xC7D800F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x6FF8A000,
|
||||
0x6FD44000, 0x4795C000, 0x47BDC000, 0x5BB87400, 0x58380010, 0xCA0000F8, 0xC000ABE0, 0xC80400F8,
|
||||
0x6C908000, 0x45088000, 0x45088000, 0x40100000, 0xCA4000F8, 0xC43400F8, 0x00000000, 0xC74000F8,
|
||||
0xCE0000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000690E, 0xCA4000F8, 0xC2800002,
|
||||
0x6ABD4000, 0x72692000, 0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x99005FD8,
|
||||
0xC0009DF6, 0xC94000F8, 0xC1800002, 0x00000000, 0x00000000, 0x00000000, 0xA8E2FFE8, 0x00000000,
|
||||
0xC1220002, 0xD90C00F8, 0xC2000000, 0xC000EA14, 0xCA040038, 0xC000EA28, 0xC2500002, 0xCE450800,
|
||||
0x58880002, 0xB6080018, 0xC0009F74, 0xC0800000, 0xCC8400F8, 0x8000D900, 0xC0006946, 0xCBC000F8,
|
||||
0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000690E, 0xCA4000F8, 0xC2800002, 0x6ABD4000,
|
||||
0x72692000, 0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x6FF8A000, 0x6FD44000,
|
||||
0x4795C000, 0x47BDC000, 0x5BB87400, 0x58380008, 0xCA0000F8, 0x5838000C, 0xCA4000F8, 0xC3400000,
|
||||
0xC6340000, 0xC000694E, 0xCF4000F8, 0xC2800000, 0xC62A0078, 0xC3000000, 0xC6308018, 0x6F304000,
|
||||
0x43298000, 0xC000693C, 0xCF0000F8, 0xC2C00000, 0xC66C0078, 0xC0006950, 0xCEC000F8, 0xC2800000,
|
||||
0xC66AE020, 0xC0006954, 0xCE8000F8, 0x5F740000, 0x840001A0, 0x5E300028, 0x46E12000, 0x8400016A,
|
||||
0x46E12000, 0x88000132, 0x5E300018, 0x46E12000, 0x8800002A, 0x46E12000, 0x84000042, 0x00000000,
|
||||
0x800000C0, 0x00000000, 0x99005970, 0xDBD800F8, 0xDB9800F9, 0xC78000F8, 0xC3400002, 0xC000694E,
|
||||
0xCF4000F8, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000, 0xC000690E, 0xCA4000F8, 0xC2800002,
|
||||
0x6ABD4000, 0x7E814000, 0x76692000, 0xCE4000F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000,
|
||||
0xC2200060, 0xC0006948, 0xCE021038, 0xC2000000, 0xC000694C, 0xCE0000F8, 0x80000080, 0x00000000,
|
||||
0x99005970, 0xDBD800F8, 0xDB9800F9, 0xC78000F8, 0x99005B70, 0xDBD800F8, 0xDB9800F9, 0xC78000F8,
|
||||
0xC2200058, 0xC0006948, 0xCE021038, 0xC2000002, 0xC000694C, 0xCE0000F8, 0xC2000006, 0xC000F006,
|
||||
0xCE0000F8, 0x5838000A, 0xCA4000F8, 0xC2200982, 0x5A203B6E, 0xC000F008, 0xCE0000F8, 0xC000F00A,
|
||||
0xCE4000F8, 0xC0006954, 0xCA8000F8, 0xC200000C, 0xC000694A, 0xCE0000F8, 0xC0006948, 0xCE800008,
|
||||
0xC2B60000, 0xC0006964, 0xCE8000F8, 0x99005830, 0xC0009F74, 0xC88400F8, 0x00000000, 0xC0006946,
|
||||
0xCBC000F8, 0xC000694C, 0xCA0000F8, 0x6FF8A000, 0x6FD44000, 0x4795C000, 0x47BDC000, 0x5BB87400,
|
||||
0x5E200000, 0x840000FA, 0x00000000, 0x990055F0, 0xDBD800F8, 0xDB9800F9, 0x00000000, 0x99005338,
|
||||
0xC000691C, 0xC1400000, 0xC9420048, 0xC000691C, 0x990057E8, 0xC94000F9, 0xC98000F8, 0x00000000,
|
||||
0x99005560, 0xD95800F8, 0xD99800F9, 0x00000000, 0xC161FFFE, 0x5955FFFE, 0x14140000, 0x00000000,
|
||||
0x99005228, 0xDBD800F8, 0xDB9800F9, 0xC7D800F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000,
|
||||
0xC000693C, 0xCA8000F8, 0xC000694E, 0xCAC000F8, 0xC3000018, 0xC3400006, 0x5E200000, 0x8400002A,
|
||||
0xC2800000, 0xC2C00000, 0xC300001E, 0xC3400000, 0xC6AC1078, 0xC72C0418, 0xC76C0810, 0x58380010,
|
||||
0xCA8000F8, 0x58380008, 0xCEC000F8, 0xC6280100, 0xC000ABE0, 0xC80400F8, 0x6C908000, 0x45088000,
|
||||
0x45088000, 0x40100000, 0xCB0000F8, 0xC43400F8, 0x00000000, 0xC74000F8, 0xCE8000F8, 0xC0006952,
|
||||
0xCE8000F8, 0x00000000, 0x00000000, 0x00000000, 0xA8E2FFE8, 0x00000000, 0xC000694C, 0xCA0000F8,
|
||||
0xC0006950, 0xCAC000F8, 0x5E200000, 0x8400006A, 0xDFE800F8, 0x7E814000, 0x5834001A, 0xCE8000F8,
|
||||
0x99005FD8, 0xC0009DF4, 0xC94000F8, 0xC1800002, 0x99005FD8, 0xC0009DF8, 0xC94000F8, 0xC6D800F8,
|
||||
0xC1220002, 0xD90C00F8, 0x5E200000, 0x84000040, 0x5838002C, 0xCB0000F8, 0xDFE800F8, 0x00000000,
|
||||
0x58380014, 0xCF0000F8, 0x80000018, 0xC2A1FFFE, 0x5AA9FFFE, 0x5838000A, 0xCE8000F8, 0xC3000000,
|
||||
0xC000EA14, 0xCB040038, 0xC2D00002, 0xC000EA28, 0xCEC50800, 0xC000694E, 0xCA8000F8, 0x58880002,
|
||||
0xB4B00018, 0xC0009F74, 0xC0800000, 0xCC8400F8, 0x5EA80000, 0x84000152, 0x5E200000, 0x84000140,
|
||||
0xC000693C, 0xCA8000F8, 0x00000000, 0x00000000, 0x5AA80060, 0xCE8000F8, 0x99005970, 0xDBD800F8,
|
||||
0xDB9800F9, 0xC78000F8, 0x99005B70, 0xDBD800F8, 0xDB9800F9, 0xC78000F8, 0xC0006952, 0xCAC000F8,
|
||||
0x58380000, 0xCA8000F8, 0xC30C0002, 0xC7F00018, 0xA6800098, 0x00000000, 0x00000000, 0xC161FFFE,
|
||||
0x5955FFFE, 0x14140000, 0x00000000, 0xC000F800, 0xCA0000F8, 0x00000000, 0x00000000, 0xA60CFFEA,
|
||||
0xC6F00500, 0xC6B0C400, 0xCF0000F8, 0x00000000, 0xC121FFFE, 0x5911FE94, 0x14100000, 0x8000CFB0,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8000CF48, 0xDCBC00F9, 0x5FFC0000, 0x84000052,
|
||||
0xC3800002, 0xDB8800F9, 0x5FFC0004, 0x8400C86A, 0xC3800000, 0xDB8800F9, 0xC3CE0002, 0xC000E800,
|
||||
0xCFC0E700, 0xC3E1FFFE, 0x597DFFFE, 0x593DFE14, 0x94000001, 0x00000000, 0x00000000, 0x00000000,
|
||||
0xC000ABE8, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000, 0xCBC000F8, 0xC43800F8, 0x00000000,
|
||||
0xC000402E, 0xCA0000F8, 0xC000ABD8, 0xCB4400F8, 0x00000000, 0x00000000, 0x47610000, 0x880000B0,
|
||||
0x00000000, 0xA7C00048, 0xC000ABD4, 0xC1000002, 0xCD0400F8, 0xC11C0000, 0xC000E82C, 0xCD05CE00,
|
||||
0x800000D8, 0x00000000, 0xA7D20120, 0x00000000, 0xC7E14040, 0xC2400000, 0xC6246028, 0xC200006A,
|
||||
0x46250000, 0xC6240030, 0xC000E810, 0xCE440030, 0x8000FF70, 0xC2000000, 0xC000E808, 0xCA040010,
|
||||
0xC11C0000, 0xC000E82C, 0xCD05CE00, 0x5A200002, 0x5E600010, 0x84000010, 0xC2000000, 0xC000E808,
|
||||
0xCE040010, 0xC3400000, 0x80000010, 0x5B740002, 0xC000ABD8, 0xCF4400F8, 0x99004F78, 0xC000ABC8,
|
||||
0xC94400F8, 0xC1800000, 0xC11C0002, 0xC000E82C, 0xCD05CE00, 0x80000600, 0x5B740002, 0xC000ABD8,
|
||||
0xCF4400F8, 0xC78000F8, 0xC13C0002, 0xCD03DE00, 0xC000ABC8, 0xC94400F8, 0xC1800000, 0xC000E82C,
|
||||
0xC9840038, 0x59540002, 0xC000ABC8, 0xCD4400F8, 0x58880002, 0xB4980580, 0x00000000, 0xC0800000,
|
||||
0x80000568, 0xC000ABE8, 0xC80400F8, 0x00000000, 0x00000000, 0x40080000, 0xCBC000F8, 0xC42800F8,
|
||||
0x00000000, 0xA7C00130, 0xC000ABCC, 0xCA0400F8, 0xC2400000, 0xC000FAEC, 0xCA440018, 0x5A200002,
|
||||
0xC000ABCC, 0xCE0400F8, 0xB624008A, 0xC68000F8, 0xC13C0002, 0xCD03DE00, 0xC000ABC8, 0xC94400F8,
|
||||
0xC1800000, 0xC000E82C, 0xC9840038, 0x59540002, 0xC000ABC8, 0xCD4400F8, 0x58880002, 0xB4980470,
|
||||
0x00000000, 0xC0800000, 0x80000458, 0xC000ABD4, 0xC1000004, 0xCD0400F8, 0xC000E820, 0xC2000002,
|
||||
0xCE0400F8, 0xC2000000, 0xC000ABCC, 0xCE0400F8, 0xC000ABD8, 0xCE0400F8, 0x8000FF28, 0xC000ABD4,
|
||||
0xC1000000, 0xCD0400F8, 0xC11C0000, 0xC000E82C, 0xCD05CE00, 0x99004F78, 0xC000ABC8, 0xC94400F8,
|
||||
0xC1800000, 0xC1200000, 0xC000E818, 0xCD061000, 0xC11C0002, 0xC000E82C, 0xCD05CE00, 0xC2000000,
|
||||
0xC000ABCC, 0xCE0400F8, 0x80000358, 0xC000FAC0, 0xCB8400F8, 0xC000ABE8, 0xC80400F8, 0x00000000,
|
||||
0x00000000, 0x40080000, 0xCBC000F8, 0xC42800F8, 0x00000000, 0x00000000, 0xC68000F8, 0xC13C0000,
|
||||
0xCD03DE00, 0xA780024A, 0x00000000, 0x00000000, 0xA7C0020A, 0x00000000, 0xC000FB60, 0xC2060006,
|
||||
0xCE046308, 0xA7E801C2, 0x00000000, 0xC000ABD0, 0xCA0400F8, 0xC2400000, 0xC000FAEC, 0xCA448018,
|
||||
0x5A200002, 0xC000ABD0, 0xCE0400F8, 0xB62400AA, 0x00000000, 0xC68000F8, 0xC13C0002, 0xCD03DE00,
|
||||
0xC000FACC, 0xC2000002, 0xCE040000, 0xC000ABC8, 0xC94400F8, 0xC1800000, 0xC000E82C, 0xC9840038,
|
||||
0x59540002, 0xC000ABC8, 0xCD4400F8, 0x58880002, 0xB49801C8, 0x00000000, 0xC0800000, 0x800001B0,
|
||||
0xC000ABD4, 0xC1000000, 0xCD0400F8, 0xC11C0000, 0xC000E82C, 0xCD05CE00, 0x99004F78, 0xC000ABC8,
|
||||
0xC94400F8, 0xC1800000, 0xC2000000, 0xC000E820, 0xCE0400F8, 0xC1200000, 0xC000E818, 0xCD061000,
|
||||
0xC11C0002, 0xC000E82C, 0xCD05CE00, 0xC000ABD0, 0xCE0400F8, 0xC2000002, 0xC000FACC, 0xCE040008,
|
||||
0x800000E8, 0xC2000002, 0xC000ABD0, 0xCE0400F8, 0x8000FE88, 0xC2000000, 0xC000ABD0, 0xCE0400F8,
|
||||
0xA7E60032, 0x00000000, 0xC2000002, 0xC000FB60, 0xCE040000, 0x8000FE70, 0x00000000, 0xA7860052,
|
||||
0x00000000, 0xC68000F8, 0xC13C0002, 0xCD03DE00, 0xC2020002, 0xC7E2A540, 0xC000FB60, 0xCE0400F8,
|
||||
0x8000FE18, 0xC2040002, 0xC000FB60, 0xCE044200, 0x8000FDF8, 0xC2C80002, 0x6AC56000, 0xDACC00F8,
|
||||
0xC000ABD4, 0xCB4400F8, 0xC000ABC8, 0xCB8400F8, 0xC000E838, 0xC3C00000, 0xCBC40038, 0x5EF40004,
|
||||
0x84000022, 0xC3000000, 0xC000FACC, 0xCF042100, 0x47F98000, 0x8400002A, 0x47F98000, 0x88000030,
|
||||
0xC1006E8C, 0x8000BCB8, 0xC000ABC0, 0xCC8400F8, 0x8000F6C8, 0xC000FAC0, 0xCAC400F8, 0xC000ABD4,
|
||||
0xCB4400F8, 0xA6C0FBD2, 0x00000000, 0x5EF40000, 0x8400F722, 0x5EF40002, 0x8400F99A, 0x5EF40004,
|
||||
0x8400FB9A, 0xC1006CE8, 0x8000BC30, 0x00000000, 0xC0800000, 0xDF4B0038, 0xC0006900, 0xCB8000F8,
|
||||
0xC2000000, 0xC000690A, 0xA78000D0, 0xCBC000F8, 0xC1000000, 0xD90000F9, 0xC1000002, 0xD90C00F8,
|
||||
0x6FF46000, 0x477DA000, 0x5B749F00, 0xC2400000, 0x58340004, 0xCA400078, 0xC0006900, 0xCE000000,
|
||||
0x5A640002, 0x58340004, 0xC6500078, 0xCD000078, 0xC0006914, 0xCA4000F8, 0xC2000002, 0x6A3D0000,
|
||||
0x72612000, 0xCE4000F8, 0xC000E408, 0xCE0000F8, 0xA78200D8, 0xC0006908, 0xCBC000F8, 0xC1000000,
|
||||
0xD90000F9, 0xC1000002, 0xD90C00F8, 0x6FF4A000, 0x6FD44000, 0x4755A000, 0x477DA000, 0x5B747400,
|
||||
0xC2800000, 0x58340006, 0xCA800078, 0xC2000000, 0xC0006900, 0xCE002100, 0x5EA80002, 0x58340006,
|
||||
0xC6900078, 0xCD000078, 0x5A7C0020, 0xC2000002, 0x6A250000, 0xC000E408, 0xCE0000F8, 0xDCA800F9,
|
||||
0x5EA80000, 0x8400BAA0, 0x00000000, 0xA4800230, 0x00000000, 0xC3C00000, 0xC000F418, 0xCBC00018,
|
||||
0xC3400000, 0xC2400000, 0x6FF86000, 0x47BDC000, 0x5BB89F00, 0x58380008, 0xCB400078, 0x58380006,
|
||||
0xCA400078, 0x5F740002, 0x58380008, 0xC7500078, 0xCD000078, 0xC2000000, 0x58380004, 0xCA020078,
|
||||
0xC3000000, 0x5838000C, 0xCB000020, 0x5A640002, 0x46610000, 0x84000010, 0xC2400000, 0x58380006,
|
||||
0xC6500078, 0xCD000078, 0xC2000000, 0x5838000A, 0xCA020078, 0x5B300002, 0x5838000C, 0xC7100020,
|
||||
0xCD000020, 0xC2420020, 0x5A200004, 0x46252000, 0x84000010, 0xC2000000, 0x5838000A, 0xC6101078,
|
||||
0xCD021078, 0xC0006966, 0xCA4000F8, 0xC2000002, 0x6A3D0000, 0x72612000, 0xCE4000F8, 0x5F740000,
|
||||
0x84000040, 0xC0006912, 0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8,
|
||||
0x5F300020, 0x84000040, 0xC0006924, 0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000,
|
||||
0xCE0000F8, 0xA4820070, 0xC2400000, 0xC000F418, 0xCA408018, 0xC2000002, 0xC0006900, 0xCE000000,
|
||||
0xC000690A, 0xCE4000F8, 0xC1000000, 0xD90000F9, 0xD8400078, 0xC1000004, 0xD90000F9, 0xA4840270,
|
||||
0x00000000, 0xC3C00000, 0xC000F418, 0xCBC10018, 0xC2800000, 0xC2000000, 0x6FF8A000, 0x6FD44000,
|
||||
0x4795C000, 0x47BDC000, 0x5BB87400, 0x5838002E, 0xCA800078, 0x58380006, 0xCA020078, 0xC3400000,
|
||||
0x5838002E, 0xCB420078, 0x5AA80002, 0x46A10000, 0x84000010, 0xC2800000, 0x5838002E, 0xC6900078,
|
||||
0xCD000078, 0x5F740002, 0x5838002E, 0xC7501078, 0xCD021078, 0xC0006968, 0xCA4000F8, 0xC2000002,
|
||||
0x6A3D0000, 0x72612000, 0xCE4000F8, 0xC000692A, 0xCA8000F8, 0x5E740000, 0x84000040, 0xC0006910,
|
||||
0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8, 0x6ABD4010, 0xA68000BA,
|
||||
0x00000000, 0x58380032, 0xCA0000F8, 0x58000002, 0xCA4000F8, 0x5838000C, 0x00000000, 0xCE0000F9,
|
||||
0xCE4000F8, 0xC000692A, 0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x722D0000, 0xCE0000F8, 0xC000692C,
|
||||
0xCA0000F8, 0xC2C00002, 0x6AFD6000, 0x722D0000, 0xCE0000F8, 0x80000040, 0xC000692C, 0xCA0000F8,
|
||||
0xC2C00002, 0x6AFD6000, 0x7EC16000, 0x762D0000, 0xCE0000F8, 0xA4880120, 0xC2C00000, 0xC000F418,
|
||||
0xCAC20018, 0xC000690E, 0xCA4000F8, 0xC2000002, 0x6A2D0000, 0x7E010000, 0x76612000, 0xCE4000F8,
|
||||
0xC000696A, 0xCA4000F8, 0xC2000002, 0x6A2D0000, 0x72612000, 0xCE4000F8, 0x6EF0A000, 0x6ED44000,
|
||||
0x47158000, 0x472D8000, 0x5B307400, 0x58300000, 0xCA0000F8, 0x00000000, 0xC2400002, 0x76612000,
|
||||
0x8400004A, 0xC24C0002, 0xC6E40018, 0xC624C400, 0x58300010, 0xCA400500, 0x00000000, 0xC000F800,
|
||||
0xCE4000F8, 0xA4860070, 0xC2400000, 0xC000F418, 0xCA418018, 0xC2020002, 0xC0006900, 0xCE002100,
|
||||
0xC0006908, 0xCE4000F8, 0xC1000000, 0xD90000F9, 0xD8400078, 0xC1000004, 0xD90000F9, 0xC000F414,
|
||||
0xCC8000F8, 0xC10E0002, 0xD90C00F8, 0x8000EDF0, 0xDFBC00F9, 0xC000696E, 0x99005C80, 0xC94000F8,
|
||||
0xC7D800F8, 0x00000000, 0xC57000F8, 0x5EF00020, 0x88000148, 0x6F346000, 0x4771A000, 0x5B749F00,
|
||||
0x58340008, 0xC2400000, 0xCA400078, 0x00000000, 0xC2000000, 0x5A640002, 0xCE400078, 0x58340004,
|
||||
0xCA000078, 0x00000000, 0x00000000, 0x5E200002, 0xCE000078, 0xC0006912, 0xCA8000F8, 0xC2400002,
|
||||
0x6A712000, 0x72A54000, 0xCE8000F8, 0x5E200000, 0x84000052, 0xC000402A, 0xCA0000F8, 0xC000E408,
|
||||
0xCA8000F8, 0x76250000, 0x00000000, 0x72A14000, 0xCE8000F8, 0x80000038, 0xC0006914, 0xCA0000F8,
|
||||
0x7E412000, 0x00000000, 0x76250000, 0xCE0000F8, 0x800000D0, 0x6EF4A000, 0x6ED44000, 0x4755A000,
|
||||
0x476DA000, 0x5B747400, 0x5834002E, 0xC2400000, 0xCA420078, 0x00000000, 0xC2000000, 0x5A640002,
|
||||
0xC6501078, 0xCD021078, 0x58340006, 0xCA000078, 0x00000000, 0x00000000, 0x5A200002, 0xCE000078,
|
||||
0xC0006910, 0xCA4000F8, 0xC2000002, 0x6A2D0000, 0x72612000, 0xCE4000F8, 0xC2000002, 0x6A310000,
|
||||
0xC000E42A, 0xCE0000F8, 0xC1040002, 0xD90C00F8, 0x00000000, 0x8000EB60, 0x00000000, 0xC4980928,
|
||||
0x9D000000, 0xC5580038, 0xC000E838, 0xCD8400F8, 0xC1440080, 0xC1C06B40, 0xC55C0F80, 0xC000F00E,
|
||||
0x9D000000, 0xCD8000F8, 0xC000F00C, 0xCDC000F8, 0xC000ABDE, 0xC9C000F8, 0x00000000, 0x00000000,
|
||||
0xD9D800F9, 0xC000AB40, 0x401C0000, 0x5DC0ABC0, 0x88000012, 0x5C000080, 0xCD8000F8, 0xC1F0000A,
|
||||
0x715CA000, 0xDD9800F8, 0xDD9C00F9, 0x41D8E000, 0xC5D40260, 0xC000F010, 0xCD4000F8, 0x6C9C8000,
|
||||
0x45C8E000, 0x45C8E000, 0x59DC0004, 0xC1601260, 0xC5D40260, 0x9D000000, 0xC000F012, 0xCD4000F8,
|
||||
0x00000000, 0x00000000, 0xD95800F8, 0x6D586000, 0x4594C000, 0x59989F00, 0xD99800F9, 0x5818000A,
|
||||
0xC1800000, 0xC9800078, 0xC0007200, 0x6D5CA000, 0x401C0000, 0x40180000, 0xC94000F8, 0x58000002,
|
||||
0x00000000, 0xC9C000F8, 0xC0006930, 0xCD4000F8, 0xC0006932, 0xCDC000F8, 0x59980004, 0xC1C20020,
|
||||
0xB59C0018, 0x00000000, 0xC1800000, 0xDD9C00F9, 0x581C000A, 0xCD800078, 0x581C000C, 0xC1800000,
|
||||
0xC9800020, 0xC1C00002, 0xDD9400F8, 0x69D4E000, 0x5D980002, 0xCD800020, 0xC0006924, 0xC98000F8,
|
||||
0x00000000, 0x9D000000, 0x00000000, 0x719CC000, 0xCD8000F8, 0xC000692A, 0xC94000F8, 0xC1C00002,
|
||||
0x69D8E000, 0x7DC0C000, 0x7558A000, 0xCD4000F8, 0xC000692C, 0xC94000F8, 0xDD8000F9, 0x58000032,
|
||||
0x755CA000, 0x84000090, 0xC94000F9, 0xC98000F8, 0xDD8000F9, 0x5800000C, 0x00000000, 0xCD4000F9,
|
||||
0xCD8000F8, 0xC000692C, 0xC94000F8, 0xC000692A, 0xC98000F8, 0x715CA000, 0xC000692C, 0xCD4000F8,
|
||||
0x719CC000, 0xC000692A, 0xCD8000F8, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0xC000ABDE,
|
||||
0xC98000F8, 0x00000000, 0xC1C00080, 0x4194C000, 0x459CE000, 0x88000012, 0xC5D800F8, 0xC000ABDE,
|
||||
0xCD8000F8, 0xC000F406, 0xC98000F8, 0xC1C00002, 0x9D000000, 0xC5D80A00, 0xC5581048, 0xCD8000F8,
|
||||
0xC0006930, 0xC98000F8, 0xC0006932, 0xC9C000F8, 0xC140000E, 0xC5581C18, 0xDD9400F8, 0xC000AB40,
|
||||
0x40140000, 0x5D40ABC0, 0x88000012, 0x5C000080, 0xCD8000F8, 0x58000002, 0x5D40ABC0, 0x88000012,
|
||||
0x5C000080, 0xCDC000F8, 0xDD5400F8, 0xC1C00000, 0x58140006, 0xC9C20078, 0xC1800000, 0x58140000,
|
||||
0xC98000D8, 0x6DDC2000, 0xC000691E, 0x41D8E000, 0xCDC000F8, 0xDD9800F8, 0xC1C00022, 0xC5D80D70,
|
||||
0xDD9400F9, 0xC5581C18, 0xC000691C, 0xCD8000F8, 0xDD5400F8, 0xC1C00000, 0x58140006, 0xC9C20078,
|
||||
0xC1800000, 0x58140004, 0xC9820078, 0x00000000, 0x59DC0002, 0x45D8C000, 0x84000010, 0xC1C00000,
|
||||
0x9D000000, 0x58140006, 0xC5D81078, 0xCD821078, 0xC000ABDC, 0xC94000F8, 0xC1820020, 0xC1D00002,
|
||||
0x5814AB00, 0xD58000F8, 0x58000002, 0xD58000F9, 0x59540004, 0xB5580018, 0xC000ABDC, 0xC1400000,
|
||||
0xCD4000F8, 0xDD9800F9, 0x9D000000, 0xDD9400F8, 0xC000F402, 0xCDC10800, 0xC1C00000, 0xC1800080,
|
||||
0x5D980004, 0xDF5D0048, 0x459CA000, 0x8800FFF2, 0xDD8000F9, 0x5800000C, 0x00000000, 0xC94000F9,
|
||||
0xC98000F8, 0xC1C00002, 0xC5D43F00, 0xC5D81E00, 0xC000ABDE, 0xC9C000F8, 0x00000000, 0x00000000,
|
||||
0x581CAB40, 0x5DC0ABC0, 0x88000012, 0x5C000080, 0xCD4000F8, 0x58000002, 0x5DC0ABC0, 0x88000012,
|
||||
0x5C000080, 0xCD8000F8, 0xC000ABDE, 0xC9C000F8, 0x00000000, 0xC15004C0, 0xC5D40060, 0xDD9C00F8,
|
||||
0xC5D41C18, 0xC1C00000, 0xDD8000F9, 0x58000030, 0xC9C00078, 0xDD8000F9, 0x58000002, 0xC98000F8,
|
||||
0x6DDC2000, 0xC000691C, 0x41D8E000, 0xCD4000F9, 0xCDC000F8, 0xDD9400F9, 0xC1C00000, 0x58140030,
|
||||
0xC9C00078, 0xC1800000, 0x58140006, 0xC9820078, 0x00000000, 0x59DC0002, 0x45D8C000, 0x84000010,
|
||||
0xC1C00000, 0x9D000000, 0x58140030, 0xC5D80078, 0xCD800078, 0xC1C00000, 0xDF5C0038, 0x5DDC0020,
|
||||
0x8400FFEA, 0x00000000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0xC160FFFE, 0xC000EA10,
|
||||
0xC9440070, 0xC1A0FFFE, 0x59983408, 0xC000F00C, 0xCD4000F8, 0xC000F00E, 0xCD8000F8, 0xC0006964,
|
||||
0xC98000F8, 0x00000000, 0xC170000A, 0x7158A000, 0x6C988000, 0x4588C000, 0x4588C000, 0x59980004,
|
||||
0xC5940270, 0xC000F010, 0xCD4000F8, 0xC0006946, 0xC94000F8, 0x00000000, 0x00000000, 0x6D58A000,
|
||||
0x6D5C4000, 0x459CC000, 0x4594C000, 0xC000694A, 0xC94000F8, 0xC0006948, 0xC9C000F8, 0x4194C000,
|
||||
0xC1400012, 0xC55C1818, 0x9D000000, 0xC59C0268, 0xC000F012, 0xCDC000F8, 0xC1400000, 0x58000012,
|
||||
0xC9410038, 0xC0006950, 0xC9C000F8, 0xC55800F8, 0xC5940838, 0xC5581078, 0xD99400F8, 0xC000693C,
|
||||
0xC94000F8, 0xC0006954, 0xC98000F8, 0x59DC00A8, 0x45D4E000, 0x41D8E000, 0x5D5C0030, 0x88000010,
|
||||
0xC1C00030, 0xC1800000, 0xC5D84028, 0xC1400000, 0xC5D40008, 0x5DD40002, 0x84000072, 0x5DD40004,
|
||||
0x8400009A, 0x5DD40006, 0x840000C2, 0x5DD80026, 0x840000EA, 0xDD5400F8, 0xDD8000F9, 0x58000008,
|
||||
0x40180000, 0xCD4000F8, 0x59980002, 0x8000FFC0, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000,
|
||||
0xCD4000B8, 0x59980002, 0x8000FF88, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000, 0xCD400078,
|
||||
0x59980002, 0x8000FF50, 0xDD5400F8, 0xDD8000F9, 0x58000008, 0x40180000, 0xCD400038, 0x59980002,
|
||||
0x8000FF18, 0x00000000, 0x9D000000, 0x00000000, 0x00000000, 0x00000000, 0x58000012, 0xC94000F8,
|
||||
0xC0006954, 0xC9C000F8, 0xC0006950, 0xC9400078, 0xDD8000F9, 0x58000028, 0x5D9C0000, 0x84000052,
|
||||
0x5D9C0002, 0x84000052, 0x5D9C0004, 0x8400006A, 0xC55B0038, 0xC55C08B8, 0xCD800039, 0xCDC108B8,
|
||||
0x80000060, 0xCD4000F8, 0x80000050, 0xC55900B8, 0xC55C1838, 0xCD8000B9, 0xCDC31838, 0x80000028,
|
||||
0xC55A0078, 0xC55C1078, 0xCD800079, 0xCDC21078, 0x9D000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x59540002, 0x6994E018, 0x61C0C008, 0x4194A000, 0x5D940040, 0x88000012, 0xC59400F8, 0x9D000000,
|
||||
0xCD4000F8, 0x00000000, 0x00000000, 0xC000697E, 0xCA4000F8, 0xC0000000, 0xC55800F8, 0xC9D400F9,
|
||||
0x00000000, 0x00000000, 0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0,
|
||||
0xC5241550, 0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550,
|
||||
0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550, 0x79E08000,
|
||||
0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550, 0x79E08000, 0xCD1800F9,
|
||||
0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550, 0x79E08000, 0xCD1800F9, 0xC5D000F8,
|
||||
0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550, 0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9,
|
||||
0xC66000F8, 0xC52160A0, 0xC5241550, 0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8,
|
||||
0xC52160A0, 0xC5241550, 0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0,
|
||||
0xC5241550, 0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550,
|
||||
0x79E08000, 0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550, 0x79E08000,
|
||||
0xCD1800F9, 0xC5D000F8, 0xC9D400F9, 0xC66000F8, 0xC52160A0, 0xC5241550, 0xC000697C, 0x9CC00000,
|
||||
0xCE0000F8, 0xC000697E, 0xCE4000F8, 0x9D000000, 0x4158A000, 0xCD4000F8, 0x00000000,
|
||||
};
|
||||
|
||||
static u32 firmware_binary_data[] = {
|
||||
};
|
||||
|
||||
|
||||
#endif // IFXMIPS_ATM_FW_VR9_H
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user