openwrtv4/target/linux/amazon-2.6/files/include/asm-mips/amazon/amazon.h
John Crispin cb3d2ae6e2 cleaned up amazon serial and prom code
SVN-Revision: 8344
2007-08-05 08:53:07 +00:00

1440 lines
79 KiB
C

#ifndef AMAZON_H
#define AMAZON_H
/******************************************************************************
Copyright (c) 2002, Infineon Technologies. All rights reserved.
No Warranty
Because the program is licensed free of charge, there is no warranty for
the program, to the extent permitted by applicable law. Except when
otherwise stated in writing the copyright holders and/or other parties
provide the program "as is" without warranty of any kind, either
expressed or implied, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose. The
entire risk as to the quality and performance of the program is with
you. should the program prove defective, you assume the cost of all
necessary servicing, repair or correction.
In no event unless required by applicable law or agreed to in writing
will any copyright holder, or any other party who may modify and/or
redistribute the program as permitted above, be liable to you for
damages, including any general, special, incidental or consequential
damages arising out of the use or inability to use the program
(including but not limited to loss of data or data being rendered
inaccurate or losses sustained by you or third parties or a failure of
the program to operate with any other programs), even if such holder or
other party has been advised of the possibility of such damages.
******************************************************************************/
#define amazon_readl(a) readl(((u32*)(a)))
#define amazon_writel(a,b) writel(a, ((u32*)(b)))
#define amazon_writel_masked(a,b,c) writel((readl(((u32*)(a))) & ~b) | (c & b), ((u32*)(a)))
/* check ADSL link status */
#define AMAZON_CHECK_LINK
/***********************************************************************/
/* Module : WDT register address and bits */
/***********************************************************************/
#define AMAZON_WDT (KSEG1+0x10100900)
/***********************************************************************/
/***Reset Request Register***/
#define AMAZON_RST_REQ ((volatile u32*)(AMAZON_WDT+ 0x0010))
#define AMAZON_RST_REQ_PLL (1 << 31)
#define AMAZON_RST_REQ_PCI_CORE (1 << 13)
#define AMAZON_RST_REQ_TPE (1 << 12)
#define AMAZON_RST_REQ_AFE (1 << 11)
#define AMAZON_RST_REQ_DMA (1 << 9)
#define AMAZON_RST_REQ_SWITCH (1 << 8)
#define AMAZON_RST_REQ_DFE (1 << 7)
#define AMAZON_RST_REQ_PHY (1 << 5)
#define AMAZON_RST_REQ_PCI (1 << 4)
#define AMAZON_RST_REQ_FPI (1 << 2)
#define AMAZON_RST_REQ_CPU (1 << 1)
#define AMAZON_RST_REQ_HRST (1 << 0)
#define AMAZON_RST_ALL (AMAZON_RST_REQ_PLL \
|AMAZON_RST_REQ_PCI_CORE \
|AMAZON_RST_REQ_TPE \
|AMAZON_RST_REQ_AFE \
|AMAZON_RST_REQ_DMA \
|AMAZON_RST_REQ_SWITCH \
|AMAZON_RST_REQ_DFE \
|AMAZON_RST_REQ_PHY \
|AMAZON_RST_REQ_PCI \
|AMAZON_RST_REQ_FPI \
|AMAZON_RST_REQ_CPU \
|AMAZON_RST_REQ_HRST)
/***Reset Status Register Power On***/
#define AMAZON_RST_SR ((volatile u32*)(AMAZON_WDT+ 0x0014))
/***Watchdog Timer Control Register 0***/
#define AMAZON_WDT_CON0 ((volatile u32*)(AMAZON_WDT+ 0x0020))
/***Watchdog Timer Control Register 1***/
#define AMAZON_WDT_CON1 ((volatile u32*)(AMAZON_WDT+ 0x0024))
#define AMAZON_WDT_CON1_WDTDR (1 << 3)
#define AMAZON_WDT_CON1_WDTIR (1 << 2)
/***Watchdog Timer Status Register***/
#define AMAZON_WDT_SR ((volatile u32*)(AMAZON_WDT+ 0x0028))
#define AMAZON_WDT_SR_WDTTIM(value) (((( 1 << 16) - 1) & (value)) << 16)
#define AMAZON_WDT_SR_WDTPR (1 << 5)
#define AMAZON_WDT_SR_WDTTO (1 << 4)
#define AMAZON_WDT_SR_WDTDS (1 << 3)
#define AMAZON_WDT_SR_WDTIS (1 << 2)
#define AMAZON_WDT_SR_WDTOE (1 << 1)
#define AMAZON_WDT_SR_WDTAE (1 << 0)
/***NMI Status Register***/
#define AMAZON_WDT_NMISR ((volatile u32*)(AMAZON_WDT+ 0x002C))
#define AMAZON_WDT_NMISR_NMIWDT (1 << 2)
#define AMAZON_WDT_NMISR_NMIPLL (1 << 1)
#define AMAZON_WDT_NMISR_NMIEXT (1 << 0)
#define AMAZON_WDT_RST_MON ((volatile u32*)(AMAZON_WDT+ 0x0030))
/***********************************************************************/
/* Module : MCD register address and bits */
/***********************************************************************/
#define AMAZON_MCD (KSEG1+0x1F106000)
/***Manufacturer Identification Register***/
#define AMAZON_MCD_MANID ((volatile u32*)(AMAZON_MCD+ 0x0024))
#define AMAZON_MCD_MANID_MANUF(value) (((( 1 << 11) - 1) & (value)) << 5)
/***Chip Identification Register***/
#define AMAZON_MCD_CHIPID ((volatile u32*)(AMAZON_MCD+ 0x0028))
#define AMAZON_MCD_CHIPID_VERSION_GET(value) (((value) >> 28) & ((1 << 4) - 1))
#define AMAZON_MCD_CHIPID_VERSION_SET(value) (((( 1 << 4) - 1) & (value)) << 28)
#define AMAZON_MCD_CHIPID_PART_NUMBER_GET(value) (((value) >> 12) & ((1 << 16) - 1))
#define AMAZON_MCD_CHIPID_PART_NUMBER_SET(value) (((( 1 << 16) - 1) & (value)) << 12)
#define AMAZON_MCD_CHIPID_MANID_GET(value) (((value) >> 1) & ((1 << 11) - 1))
#define AMAZON_MCD_CHIPID_MANID_SET(value) (((( 1 << 11) - 1) & (value)) << 1)
#define AMAZON_CHIPID_STANDARD 0x00EB
#define AMAZON_CHIPID_YANGTSE 0x00ED
/***Redesign Tracing Identification Register***/
#define AMAZON_MCD_RTID ((volatile u32*)(AMAZON_MCD+ 0x002C))
#define AMAZON_MCD_RTID_LC (1 << 15)
#define AMAZON_MCD_RTID_RIX(value) (((( 1 << 3) - 1) & (value)) << 0)
/***********************************************************************/
/* Module : CGU register address and bits */
/***********************************************************************/
#define AMAZON_CGU (KSEG1+0x1F103000)
/***********************************************************************/
/***CGU Clock Divider Select Register***/
#define AMAZON_CGU_DIV (AMAZON_CGU + 0x0000)
/***CGU PLL0 Status Register***/
#define AMAZON_CGU_PLL0SR (AMAZON_CGU + 0x0004)
/***CGU PLL1 Status Register***/
#define AMAZON_CGU_PLL1SR (AMAZON_CGU + 0x0008)
/***CGU Interface Clock Control Register***/
#define AMAZON_CGU_IFCCR (AMAZON_CGU + 0x000c)
/***CGU Oscillator Control Register***/
#define AMAZON_CGU_OSCCR (AMAZON_CGU + 0x0010)
/***CGU Memory Clock Delay Register***/
#define AMAZON_CGU_MCDEL (AMAZON_CGU + 0x0014)
/***CGU CPU Clock Reduction Register***/
#define AMAZON_CGU_CPUCRD (AMAZON_CGU + 0x0018)
/***CGU Test Register**/
#define AMAZON_CGU_TST (AMAZON_CGU + 0x003c)
/***********************************************************************/
/* Module : PMU register address and bits */
/***********************************************************************/
#define AMAZON_PMU AMAZON_CGU
/***********************************************************************/
/***PMU Power Down Control Register***/
#define AMAZON_PMU_PWDCR ((volatile u32*)(AMAZON_PMU+ 0x001c))
#define AMAZON_PMU_PWDCR_TPE (1 << 13)
#define AMAZON_PMU_PWDCR_PLL (1 << 12)
#define AMAZON_PMU_PWDCR_XTAL (1 << 11)
#define AMAZON_PMU_PWDCR_EBU (1 << 10)
#define AMAZON_PMU_PWDCR_DFE (1 << 9)
#define AMAZON_PMU_PWDCR_SPI (1 << 8)
#define AMAZON_PMU_PWDCR_UART (1 << 7)
#define AMAZON_PMU_PWDCR_GPT (1 << 6)
#define AMAZON_PMU_PWDCR_DMA (1 << 5)
#define AMAZON_PMU_PWDCR_PCI (1 << 4)
#define AMAZON_PMU_PWDCR_SW (1 << 3)
#define AMAZON_PMU_PWDCR_IOR (1 << 2)
#define AMAZON_PMU_PWDCR_FPI (1 << 1)
#define AMAZON_PMU_PWDCR_EPHY (1 << 0)
/***PMU Status Register***/
#define AMAZON_PMU_SR ((volatile u32*)(AMAZON_PMU+ 0x0020))
#define AMAZON_PMU_SR_TPE (1 << 13)
#define AMAZON_PMU_SR_PLL (1 << 12)
#define AMAZON_PMU_SR_XTAL (1 << 11)
#define AMAZON_PMU_SR_EBU (1 << 10)
#define AMAZON_PMU_SR_DFE (1 << 9)
#define AMAZON_PMU_SR_SPI (1 << 8)
#define AMAZON_PMU_SR_UART (1 << 7)
#define AMAZON_PMU_SR_GPT (1 << 6)
#define AMAZON_PMU_SR_DMA (1 << 5)
#define AMAZON_PMU_SR_PCI (1 << 4)
#define AMAZON_PMU_SR_SW (1 << 3)
#define AMAZON_PMU_SR_IOR (1 << 2)
#define AMAZON_PMU_SR_FPI (1 << 1)
#define AMAZON_PMU_SR_EPHY (1 << 0)
/***********************************************************************/
/* Module : BCU register address and bits */
/***********************************************************************/
#define AMAZON_BCU (KSEG1+0x10100000)
/***********************************************************************/
/***BCU Control Register (0010H)***/
#define AMAZON_BCU_CON ((volatile u32*)(AMAZON_BCU+ 0x0010))
#define AMAZON_BCU_CON_SPC(value) (((( 1 << 8) - 1) & (value)) << 24)
#define AMAZON_BCU_CON_SPE (1 << 19)
#define AMAZON_BCU_CON_PSE (1 << 18)
#define AMAZON_BCU_CON_DBG (1 << 16)
#define AMAZON_BCU_CON_TOUT(value) (((( 1 << 16) - 1) & (value)) << 0)
/***BCU Error Control Capture Register (0020H)***/
#define AMAZON_BCU_ECON ((volatile u32*)(AMAZON_BCU+ 0x0020))
#define AMAZON_BCU_ECON_TAG(value) (((( 1 << 4) - 1) & (value)) << 24)
#define AMAZON_BCU_ECON_RDN (1 << 23)
#define AMAZON_BCU_ECON_WRN (1 << 22)
#define AMAZON_BCU_ECON_SVM (1 << 21)
#define AMAZON_BCU_ECON_ACK(value) (((( 1 << 2) - 1) & (value)) << 19)
#define AMAZON_BCU_ECON_ABT (1 << 18)
#define AMAZON_BCU_ECON_RDY (1 << 17)
#define AMAZON_BCU_ECON_TOUT (1 << 16)
#define AMAZON_BCU_ECON_ERRCNT(value) (((( 1 << 16) - 1) & (value)) << 0)
#define AMAZON_BCU_ECON_OPC(value) (((( 1 << 4) - 1) & (value)) << 28)
/***BCU Error Address Capture Register (0024 H)***/
#define AMAZON_BCU_EADD ((volatile u32*)(AMAZON_BCU+ 0x0024))
#define AMAZON_BCU_EADD_FPIADR
/***BCU Error Data Capture Register (0028H)***/
#define AMAZON_BCU_EDAT ((volatile u32*)(AMAZON_BCU+ 0x0028))
#define AMAZON_BCU_EDAT_FPIDAT
/***********************************************************************/
/* Module : Switch register address and bits */
/***********************************************************************/
#define AMAZON_SWITCH (KSEG1+0x10106000)
/***********************************************************************/
#define AMAZON_SW_UN_DEST AMAZON_SWITCH+0x00 /*Unknown destination register*/
#define AMAZON_SW_VLAN_CTRL AMAZON_SWITCH+0x04 /*VLAN control register*/
#define AMAZON_SW_PS_CTL AMAZON_SWITCH+0x08 /*port status control register*/
#define AMAZON_SW_COS_CTL AMAZON_SWITCH+0x0c /*Cos control register*/
#define AMAZON_SW_VLAN_COS AMAZON_SWITCH+0x10 /*VLAN priority cos mapping register*/
#define AMAZON_SW_DSCP_COS3 AMAZON_SWITCH+0x14 /*DSCP cos mapping register3*/
#define AMAZON_SW_DSCP_COS2 AMAZON_SWITCH+0x18 /*DSCP cos mapping register2*/
#define AMAZON_SW_DSCP_COS1 AMAZON_SWITCH+0x1c /*DSCP cos mapping register1*/
#define AMAZON_SW_DSCP_COS0 AMAZON_SWITCH+0x20 /*DSCP cos mapping register*/
#define AMAZON_SW_ARL_CTL AMAZON_SWITCH+0x24 /*ARL control register*/
#define AMAZON_SW_PKT_LEN AMAZON_SWITCH+0x28 /*packet length register*/
#define AMAZON_SW_CPU_ACTL AMAZON_SWITCH+0x2c /*CPU control register1*/
#define AMAZON_SW_DATA1 AMAZON_SWITCH+0x30 /*CPU access control register1*/
#define AMAZON_SW_DATA2 AMAZON_SWITCH+0x34 /*CPU access control register2*/
#define AMAZON_SW_P2_PCTL AMAZON_SWITCH+0x38 /*Port2 control register*/
#define AMAZON_SW_P0_TX_CTL AMAZON_SWITCH+0x3c /*port0 TX control register*/
#define AMAZON_SW_P1_TX_CTL AMAZON_SWITCH+0x40 /*port 1 TX control register*/
#define AMAZON_SW_P0_WM AMAZON_SWITCH+0x44 /*port 0 watermark control register*/
#define AMAZON_SW_P1_WM AMAZON_SWITCH+0x48 /*port 1 watermark control register*/
#define AMAZON_SW_P2_WM AMAZON_SWITCH+0x4c /*port 2 watermark control register*/
#define AMAZON_SW_GBL_WM AMAZON_SWITCH+0x50 /*Global watermark register*/
#define AMAZON_SW_PM_CTL AMAZON_SWITCH+0x54 /*PM control register*/
#define AMAZON_SW_P2_CTL AMAZON_SWITCH+0x58 /*PMAC control register*/
#define AMAZON_SW_P2_TX_IPG AMAZON_SWITCH+0x5c /*port2 TX IPG control register*/
#define AMAZON_SW_P2_RX_IPG AMAZON_SWITCH+0x60 /*prot2 RX IPG control register*/
#define AMAZON_SW_MDIO_ACC AMAZON_SWITCH+0x64 /*MDIO access register*/
#define AMAZON_SW_EPHY AMAZON_SWITCH+0x68 /*Ethernet PHY register*/
#define AMAZON_SW_MDIO_CFG AMAZON_SWITCH+0x6c /*MDIO configuration register*/
#define AMAZON_SW_P0_RCV_DROP_CNT AMAZON_SWITCH+0x70 /*port0 receive drop counter */
#define AMAZON_SW_P0_RCV_FRAME_ERR_CNT AMAZON_SWITCH+0x74 /*port0 receive frame error conter*/
#define AMAZON_SW_P0_TX_COLL_CNT AMAZON_SWITCH+0x78 /*port0 transmit collision counter*/
#define AMAZON_SW_P0_TX_DROP_CNT AMAZON_SWITCH+0x7c /*port1 transmit drop counter*/
#define AMAZON_SW_P1_RCV_DROP_CNT AMAZON_SWITCH+0x80 /*port1 receive drop counter*/
#define AMAZON_SW_P1_RCV_FRAME_ERR_CNT AMAZON_SWITCH+0x84 /*port1 receive error counter*/
#define AMAZON_SW_P1_TX_COLL_CNT AMAZON_SWITCH+0x88 /*port1 transmit collision counter*/
#define AMAZON_SW_P1_TX_DROP_CNT AMAZON_SWITCH+0x8c /*port1 transmit drop counter*/
/***********************************************************************/
/* Module : SSC register address and bits */
/***********************************************************************/
#define AMAZON_SSC_BASE_ADD_0 (KSEG1+0x10100800)
/*165001:henryhsu:20050603:Source add by Bing Tao*/
/*configuration/Status Registers in Bus Clock Domain*/
#define AMAZON_SSC_CLC ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0000))
#define AMAZON_SSC_ID ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0008))
#define AMAZON_SSC_CON ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0010))
#define AMAZON_SSC_STATE ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0014))
#define AMAZON_SSC_WHBSTATE ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0018))
#define AMAZON_SSC_TB ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0020))
#define AMAZON_SSC_RB ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0024))
#define AMAZON_SSC_FSTAT ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0038))
/*Configuration/Status Registers in Kernel Clock Domain*/
#define AMAZON_SSC_PISEL ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0004))
#define AMAZON_SSC_RXFCON ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0030))
#define AMAZON_SSC_TXFCON ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0034))
#define AMAZON_SSC_BR ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0040))
#define AMAZON_SSC_BRSTAT ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0044))
#define AMAZON_SSC_SFCON ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0060))
#define AMAZON_SSC_SFSTAT ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0064))
#define AMAZON_SSC_GPOCON ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0070))
#define AMAZON_SSC_GPOSTAT ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0074))
#define AMAZON_SSC_WHBGPOSTAT ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0078))
#define AMAZON_SSC_RXREQ ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0080))
#define AMAZON_SSC_RXCNT ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x0084))
/*DMA Registers in Bus Clock Domain*/
#define AMAZON_SSC_DMA_CON ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x00ec))
/*interrupt Node Registers in Bus Clock Domain*/
#define AMAZON_SSC_IRNEN ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x00F4))
#define AMAZON_SSC_IRNICR ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x00FC))
#define AMAZON_SSC_IRNCR ((volatile u32*)(AMAZON_SSC_BASE_ADD_0+0x00F8))
/*165001*/
/***********************************************************************/
/***********************************************************************/
/* Module : EBU register address and bits */
/***********************************************************************/
#define AMAZON_EBU (KSEG1+0x10105300)
/***********************************************************************/
/***EBU Clock Control Register***/
#define AMAZON_EBU_CLC ((volatile u32*)(AMAZON_EBU+ 0x0000))
#define AMAZON_EBU_CLC_DISS (1 << 1)
#define AMAZON_EBU_CLC_DISR (1 << 0)
/***EBU Global Control Register***/
#define AMAZON_EBU_CON ((volatile u32*)(AMAZON_EBU+ 0x0010))
#define AMAZON_EBU_CON_DTACS(value) (((( 1 << 3) - 1) & (value)) << 20)
#define AMAZON_EBU_CON_DTARW(value) (((( 1 << 3) - 1) & (value)) << 16)
#define AMAZON_EBU_CON_TOUTC(value) (((( 1 << 8) - 1) & (value)) << 8)
#define AMAZON_EBU_CON_ARBMODE(value) (((( 1 << 2) - 1) & (value)) << 6)
#define AMAZON_EBU_CON_ARBSYNC (1 << 5)
#define AMAZON_EBU_CON_1 (1 << 3)
/***EBU Address Select Register 0***/
#define AMAZON_EBU_ADDSEL0 ((volatile u32*)(AMAZON_EBU+ 0x0020))
#define AMAZON_EBU_ADDSEL0_BASE(value) (((( 1 << 20) - 1) & (value)) << 12)
#define AMAZON_EBU_ADDSEL0_MASK(value) (((( 1 << 4) - 1) & (value)) << 4)
#define AMAZON_EBU_ADDSEL0_MIRRORE (1 << 1)
#define AMAZON_EBU_ADDSEL0_REGEN (1 << 0)
/***EBU Address Select Register 1***/
#define AMAZON_EBU_ADDSEL1 ((volatile u32*)(AMAZON_EBU+ 0x0024))
#define AMAZON_EBU_ADDSEL1_BASE(value) (((( 1 << 20) - 1) & (value)) << 12)
#define AMAZON_EBU_ADDSEL1_MASK(value) (((( 1 << 4) - 1) & (value)) << 4)
#define AMAZON_EBU_ADDSEL1_MIRRORE (1 << 1)
#define AMAZON_EBU_ADDSEL1_REGEN (1 << 0)
/***EBU Address Select Register 2***/
#define AMAZON_EBU_ADDSEL2 ((volatile u32*)(AMAZON_EBU+ 0x0028))
#define AMAZON_EBU_ADDSEL2_BASE(value) (((( 1 << 20) - 1) & (value)) << 12)
#define AMAZON_EBU_ADDSEL2_MASK(value) (((( 1 << 4) - 1) & (value)) << 4)
#define AMAZON_EBU_ADDSEL2_MIRRORE (1 << 1)
#define AMAZON_EBU_ADDSEL2_REGEN (1 << 0)
/***EBU Bus Configuration Register 0***/
#define AMAZON_EBU_BUSCON0 ((volatile u32*)(AMAZON_EBU+ 0x0060))
#define AMAZON_EBU_BUSCON0_WRDIS (1 << 31)
#define AMAZON_EBU_BUSCON0_ALEC(value) (((( 1 << 2) - 1) & (value)) << 29)
#define AMAZON_EBU_BUSCON0_BCGEN(value) (((( 1 << 2) - 1) & (value)) << 27)
#define AMAZON_EBU_BUSCON0_AGEN(value) (((( 1 << 2) - 1) & (value)) << 24)
#define AMAZON_EBU_BUSCON0_CMULTR(value) (((( 1 << 2) - 1) & (value)) << 22)
#define AMAZON_EBU_BUSCON0_WAIT(value) (((( 1 << 2) - 1) & (value)) << 20)
#define AMAZON_EBU_BUSCON0_WAITINV (1 << 19)
#define AMAZON_EBU_BUSCON0_SETUP (1 << 18)
#define AMAZON_EBU_BUSCON0_PORTW(value) (((( 1 << 2) - 1) & (value)) << 16)
#define AMAZON_EBU_BUSCON0_WAITRDC(value) (((( 1 << 7) - 1) & (value)) << 9)
#define AMAZON_EBU_BUSCON0_WAITWRC(value) (((( 1 << 3) - 1) & (value)) << 6)
#define AMAZON_EBU_BUSCON0_HOLDC(value) (((( 1 << 2) - 1) & (value)) << 4)
#define AMAZON_EBU_BUSCON0_RECOVC(value) (((( 1 << 2) - 1) & (value)) << 2)
#define AMAZON_EBU_BUSCON0_CMULT(value) (((( 1 << 2) - 1) & (value)) << 0)
/***EBU Bus Configuration Register 1***/
#define AMAZON_EBU_BUSCON1 ((volatile u32*)(AMAZON_EBU+ 0x0064))
#define AMAZON_EBU_BUSCON1_WRDIS (1 << 31)
#define AMAZON_EBU_BUSCON1_ALEC(value) (((( 1 << 2) - 1) & (value)) << 29)
#define AMAZON_EBU_BUSCON1_BCGEN(value) (((( 1 << 2) - 1) & (value)) << 27)
#define AMAZON_EBU_BUSCON1_AGEN(value) (((( 1 << 2) - 1) & (value)) << 24)
#define AMAZON_EBU_BUSCON1_CMULTR(value) (((( 1 << 2) - 1) & (value)) << 22)
#define AMAZON_EBU_BUSCON1_WAIT(value) (((( 1 << 2) - 1) & (value)) << 20)
#define AMAZON_EBU_BUSCON1_WAITINV (1 << 19)
#define AMAZON_EBU_BUSCON1_SETUP (1 << 18)
#define AMAZON_EBU_BUSCON1_PORTW(value) (((( 1 << 2) - 1) & (value)) << 16)
#define AMAZON_EBU_BUSCON1_WAITRDC(value) (((( 1 << 7) - 1) & (value)) << 9)
#define AMAZON_EBU_BUSCON1_WAITWRC(value) (((( 1 << 3) - 1) & (value)) << 6)
#define AMAZON_EBU_BUSCON1_HOLDC(value) (((( 1 << 2) - 1) & (value)) << 4)
#define AMAZON_EBU_BUSCON1_RECOVC(value) (((( 1 << 2) - 1) & (value)) << 2)
#define AMAZON_EBU_BUSCON1_CMULT(value) (((( 1 << 2) - 1) & (value)) << 0)
/***EBU Bus Configuration Register 2***/
#define AMAZON_EBU_BUSCON2 ((volatile u32*)(AMAZON_EBU+ 0x0068))
#define AMAZON_EBU_BUSCON2_WRDIS (1 << 31)
#define AMAZON_EBU_BUSCON2_ALEC(value) (((( 1 << 2) - 1) & (value)) << 29)
#define AMAZON_EBU_BUSCON2_BCGEN(value) (((( 1 << 2) - 1) & (value)) << 27)
#define AMAZON_EBU_BUSCON2_AGEN(value) (((( 1 << 2) - 1) & (value)) << 24)
#define AMAZON_EBU_BUSCON2_CMULTR(value) (((( 1 << 2) - 1) & (value)) << 22)
#define AMAZON_EBU_BUSCON2_WAIT(value) (((( 1 << 2) - 1) & (value)) << 20)
#define AMAZON_EBU_BUSCON2_WAITINV (1 << 19)
#define AMAZON_EBU_BUSCON2_SETUP (1 << 18)
#define AMAZON_EBU_BUSCON2_PORTW(value) (((( 1 << 2) - 1) & (value)) << 16)
#define AMAZON_EBU_BUSCON2_WAITRDC(value) (((( 1 << 7) - 1) & (value)) << 9)
#define AMAZON_EBU_BUSCON2_WAITWRC(value) (((( 1 << 3) - 1) & (value)) << 6)
#define AMAZON_EBU_BUSCON2_HOLDC(value) (((( 1 << 2) - 1) & (value)) << 4)
#define AMAZON_EBU_BUSCON2_RECOVC(value) (((( 1 << 2) - 1) & (value)) << 2)
#define AMAZON_EBU_BUSCON2_CMULT(value) (((( 1 << 2) - 1) & (value)) << 0)
/***********************************************************************/
/* Module : SDRAM register address and bits */
/***********************************************************************/
#define AMAZON_SDRAM (KSEG1+0x1F800000)
/***********************************************************************/
/***MC Access Error Cause Register***/
#define AMAZON_SDRAM_MC_ERRCAUSE ((volatile u32*)(AMAZON_SDRAM+ 0x0010))
#define AMAZON_SDRAM_MC_ERRCAUSE_ERR (1 << 31)
#define AMAZON_SDRAM_MC_ERRCAUSE_PORT(value) (((( 1 << 4) - 1) & (value)) << 16)
#define AMAZON_SDRAM_MC_ERRCAUSE_CAUSE(value) (((( 1 << 2) - 1) & (value)) << 0)
#define AMAZON_SDRAM_MC_ERRCAUSE_Res(value) (((( 1 << NaN) - 1) & (value)) << NaN)
/***MC Access Error Address Register***/
#define AMAZON_SDRAM_MC_ERRADDR ((volatile u32*)(AMAZON_SDRAM+ 0x0020))
#define AMAZON_SDRAM_MC_ERRADDR_ADDR
/***MC I/O General Purpose Register***/
#define AMAZON_SDRAM_MC_IOGP ((volatile u32*)(AMAZON_SDRAM+ 0x0100))
#define AMAZON_SDRAM_MC_IOGP_GPR6(value) (((( 1 << 4) - 1) & (value)) << 28)
#define AMAZON_SDRAM_MC_IOGP_GPR5(value) (((( 1 << 4) - 1) & (value)) << 24)
#define AMAZON_SDRAM_MC_IOGP_GPR4(value) (((( 1 << 4) - 1) & (value)) << 20)
#define AMAZON_SDRAM_MC_IOGP_GPR3(value) (((( 1 << 4) - 1) & (value)) << 16)
#define AMAZON_SDRAM_MC_IOGP_GPR2(value) (((( 1 << 4) - 1) & (value)) << 12)
#define AMAZON_SDRAM_MC_IOGP_CPS (1 << 11)
#define AMAZON_SDRAM_MC_IOGP_CLKDELAY(value) (((( 1 << 3) - 1) & (value)) << 8)
#define AMAZON_SDRAM_MC_IOGP_CLKRAT(value) (((( 1 << 4) - 1) & (value)) << 4)
#define AMAZON_SDRAM_MC_IOGP_RDDEL(value) (((( 1 << 4) - 1) & (value)) << 0)
/***MC Self Refresh Register***/
#define AMAZON_SDRAM_MC_SELFRFSH ((volatile u32*)(AMAZON_SDRAM+ 0x01A0))
#define AMAZON_SDRAM_MC_SELFRFSH_PWDS (1 << 1)
#define AMAZON_SDRAM_MC_SELFRFSH_PWD (1 << 0)
#define AMAZON_SDRAM_MC_SELFRFSH_Res(value) (((( 1 << 30) - 1) & (value)) << 2)
/***MC Enable Register***/
#define AMAZON_SDRAM_MC_CTRLENA ((volatile u32*)(AMAZON_SDRAM+ 0x0110))
#define AMAZON_SDRAM_MC_CTRLENA_ENA (1 << 0)
#define AMAZON_SDRAM_MC_CTRLENA_Res(value) (((( 1 << 31) - 1) & (value)) << 1)
/***MC Mode Register Setup Code***/
#define AMAZON_SDRAM_MC_MRSCODE ((volatile u32*)(AMAZON_SDRAM+ 0x0120))
#define AMAZON_SDRAM_MC_MRSCODE_UMC(value) (((( 1 << 5) - 1) & (value)) << 7)
#define AMAZON_SDRAM_MC_MRSCODE_CL(value) (((( 1 << 3) - 1) & (value)) << 4)
#define AMAZON_SDRAM_MC_MRSCODE_WT (1 << 3)
#define AMAZON_SDRAM_MC_MRSCODE_BL(value) (((( 1 << 3) - 1) & (value)) << 0)
/***MC Configuration Data-word Width Register***/
#define AMAZON_SDRAM_MC_CFGDW ((volatile u32*)(AMAZON_SDRAM+ 0x0130))
#define AMAZON_SDRAM_MC_CFGDW_DW(value) (((( 1 << 4) - 1) & (value)) << 0)
#define AMAZON_SDRAM_MC_CFGDW_Res(value) (((( 1 << 28) - 1) & (value)) << 4)
/***MC Configuration Physical Bank 0 Register***/
#define AMAZON_SDRAM_MC_CFGPB0 ((volatile u32*)(AMAZON_SDRAM+ 0x140))
#define AMAZON_SDRAM_MC_CFGPB0_MCSEN0(value) (((( 1 << 4) - 1) & (value)) << 12)
#define AMAZON_SDRAM_MC_CFGPB0_BANKN0(value) (((( 1 << 4) - 1) & (value)) << 8)
#define AMAZON_SDRAM_MC_CFGPB0_ROWW0(value) (((( 1 << 4) - 1) & (value)) << 4)
#define AMAZON_SDRAM_MC_CFGPB0_COLW0(value) (((( 1 << 4) - 1) & (value)) << 0)
#define AMAZON_SDRAM_MC_CFGPB0_Res(value) (((( 1 << 16) - 1) & (value)) << 16)
/***MC Latency Register***/
#define AMAZON_SDRAM_MC_LATENCY ((volatile u32*)(AMAZON_SDRAM+ 0x0180))
#define AMAZON_SDRAM_MC_LATENCY_TRP(value) (((( 1 << 4) - 1) & (value)) << 16)
#define AMAZON_SDRAM_MC_LATENCY_TRAS(value) (((( 1 << 4) - 1) & (value)) << 12)
#define AMAZON_SDRAM_MC_LATENCY_TRCD(value) (((( 1 << 4) - 1) & (value)) << 8)
#define AMAZON_SDRAM_MC_LATENCY_TDPL(value) (((( 1 << 4) - 1) & (value)) << 4)
#define AMAZON_SDRAM_MC_LATENCY_TDAL(value) (((( 1 << 4) - 1) & (value)) << 0)
#define AMAZON_SDRAM_MC_LATENCY_Res(value) (((( 1 << 12) - 1) & (value)) << 20)
/***MC Refresh Cycle Time Register***/
#define AMAZON_SDRAM_MC_TREFRESH ((volatile u32*)(AMAZON_SDRAM+ 0x0190))
#define AMAZON_SDRAM_MC_TREFRESH_TREF(value) (((( 1 << 13) - 1) & (value)) << 0)
#define AMAZON_SDRAM_MC_TREFRESH_Res(value) (((( 1 << 19) - 1) & (value)) << 13)
/***********************************************************************/
/* Module : GPTU register address and bits */
/***********************************************************************/
#define AMAZON_GPTU (KSEG1+0x10100A00)
/***********************************************************************/
/***GPT Clock Control Register***/
#define AMAZON_GPTU_CLC ((volatile u32*)(AMAZON_GPTU+ 0x0000))
#define AMAZON_GPTU_CLC_RMC(value) (((( 1 << 8) - 1) & (value)) << 8)
#define AMAZON_GPTU_CLC_DISS (1 << 1)
#define AMAZON_GPTU_CLC_DISR (1 << 0)
/***GPT Timer 3 Control Register***/
#define AMAZON_GPTU_T3CON ((volatile u32*)(AMAZON_GPTU+ 0x0014))
#define AMAZON_GPTU_T3CON_T3RDIR (1 << 15)
#define AMAZON_GPTU_T3CON_T3CHDIR (1 << 14)
#define AMAZON_GPTU_T3CON_T3EDGE (1 << 13)
#define AMAZON_GPTU_T3CON_BPS1(value) (((( 1 << 2) - 1) & (value)) << 11)
#define AMAZON_GPTU_T3CON_T3OTL (1 << 10)
#define AMAZON_GPTU_T3CON_T3UD (1 << 7)
#define AMAZON_GPTU_T3CON_T3R (1 << 6)
#define AMAZON_GPTU_T3CON_T3M(value) (((( 1 << 3) - 1) & (value)) << 3)
#define AMAZON_GPTU_T3CON_T3I(value) (((( 1 << 3) - 1) & (value)) << 0)
/***GPT Write Hardware Modified Timer 3 Control Register
If set and clear bit are written concurrently with 1, the associated bit is not changed.***/
#define AMAZON_GPTU_WHBT3CON ((volatile u32*)(AMAZON_GPTU+ 0x004C))
#define AMAZON_GPTU_WHBT3CON_SETT3CHDIR (1 << 15)
#define AMAZON_GPTU_WHBT3CON_CLRT3CHDIR (1 << 14)
#define AMAZON_GPTU_WHBT3CON_SETT3EDGE (1 << 13)
#define AMAZON_GPTU_WHBT3CON_CLRT3EDGE (1 << 12)
#define AMAZON_GPTU_WHBT3CON_SETT3OTL (1 << 11)
#define AMAZON_GPTU_WHBT3CON_CLRT3OTL (1 << 10)
/***GPT Timer 2 Control Register***/
#define AMAZON_GPTU_T2CON ((volatile u32*)(AMAZON_GPTU+ 0x0010))
#define AMAZON_GPTU_T2CON_TxRDIR (1 << 15)
#define AMAZON_GPTU_T2CON_TxCHDIR (1 << 14)
#define AMAZON_GPTU_T2CON_TxEDGE (1 << 13)
#define AMAZON_GPTU_T2CON_TxIRDIS (1 << 12)
#define AMAZON_GPTU_T2CON_TxRC (1 << 9)
#define AMAZON_GPTU_T2CON_TxUD (1 << 7)
#define AMAZON_GPTU_T2CON_TxR (1 << 6)
#define AMAZON_GPTU_T2CON_TxM(value) (((( 1 << 3) - 1) & (value)) << 3)
#define AMAZON_GPTU_T2CON_TxI(value) (((( 1 << 3) - 1) & (value)) << 0)
/***GPT Timer 4 Control Register***/
#define AMAZON_GPTU_T4CON ((volatile u32*)(AMAZON_GPTU+ 0x0018))
#define AMAZON_GPTU_T4CON_TxRDIR (1 << 15)
#define AMAZON_GPTU_T4CON_TxCHDIR (1 << 14)
#define AMAZON_GPTU_T4CON_TxEDGE (1 << 13)
#define AMAZON_GPTU_T4CON_TxIRDIS (1 << 12)
#define AMAZON_GPTU_T4CON_TxRC (1 << 9)
#define AMAZON_GPTU_T4CON_TxUD (1 << 7)
#define AMAZON_GPTU_T4CON_TxR (1 << 6)
#define AMAZON_GPTU_T4CON_TxM(value) (((( 1 << 3) - 1) & (value)) << 3)
#define AMAZON_GPTU_T4CON_TxI(value) (((( 1 << 3) - 1) & (value)) << 0)
/***GPT Write HW Modified Timer 2 Control Register If set
and clear bit are written concurrently with 1, the associated bit is not changed.***/
#define AMAZON_GPTU_WHBT2CON ((volatile u32*)(AMAZON_GPTU+ 0x0048))
#define AMAZON_GPTU_WHBT2CON_SETTxCHDIR (1 << 15)
#define AMAZON_GPTU_WHBT2CON_CLRTxCHDIR (1 << 14)
#define AMAZON_GPTU_WHBT2CON_SETTxEDGE (1 << 13)
#define AMAZON_GPTU_WHBT2CON_CLRTxEDGE (1 << 12)
/***GPT Write HW Modified Timer 4 Control Register If set
and clear bit are written concurrently with 1, the associated bit is not changed.***/
#define AMAZON_GPTU_WHBT4CON ((volatile u32*)(AMAZON_GPTU+ 0x0050))
#define AMAZON_GPTU_WHBT4CON_SETTxCHDIR (1 << 15)
#define AMAZON_GPTU_WHBT4CON_CLRTxCHDIR (1 << 14)
#define AMAZON_GPTU_WHBT4CON_SETTxEDGE (1 << 13)
#define AMAZON_GPTU_WHBT4CON_CLRTxEDGE (1 << 12)
/***GPT Capture Reload Register***/
#define AMAZON_GPTU_CAPREL ((volatile u32*)(AMAZON_GPTU+ 0x0030))
#define AMAZON_GPTU_CAPREL_CAPREL(value) (((( 1 << 16) - 1) & (value)) << 0)
/***GPT Timer 2 Register***/
#define AMAZON_GPTU_T2 ((volatile u32*)(AMAZON_GPTU+ 0x0034))
#define AMAZON_GPTU_T2_TVAL(value) (((( 1 << 16) - 1) & (value)) << 0)
/***GPT Timer 3 Register***/
#define AMAZON_GPTU_T3 ((volatile u32*)(AMAZON_GPTU+ 0x0038))
#define AMAZON_GPTU_T3_TVAL(value) (((( 1 << 16) - 1) & (value)) << 0)
/***GPT Timer 4 Register***/
#define AMAZON_GPTU_T4 ((volatile u32*)(AMAZON_GPTU+ 0x003C))
#define AMAZON_GPTU_T4_TVAL(value) (((( 1 << 16) - 1) & (value)) << 0)
/***GPT Timer 5 Register***/
#define AMAZON_GPTU_T5 ((volatile u32*)(AMAZON_GPTU+ 0x0040))
#define AMAZON_GPTU_T5_TVAL(value) (((( 1 << 16) - 1) & (value)) << 0)
/***GPT Timer 6 Register***/
#define AMAZON_GPTU_T6 ((volatile u32*)(AMAZON_GPTU+ 0x0044))
#define AMAZON_GPTU_T6_TVAL(value) (((( 1 << 16) - 1) & (value)) << 0)
/***GPT Timer 6 Control Register***/
#define AMAZON_GPTU_T6CON ((volatile u32*)(AMAZON_GPTU+ 0x0020))
#define AMAZON_GPTU_T6CON_T6SR (1 << 15)
#define AMAZON_GPTU_T6CON_T6CLR (1 << 14)
#define AMAZON_GPTU_T6CON_BPS2(value) (((( 1 << 2) - 1) & (value)) << 11)
#define AMAZON_GPTU_T6CON_T6OTL (1 << 10)
#define AMAZON_GPTU_T6CON_T6UD (1 << 7)
#define AMAZON_GPTU_T6CON_T6R (1 << 6)
#define AMAZON_GPTU_T6CON_T6M(value) (((( 1 << 3) - 1) & (value)) << 3)
#define AMAZON_GPTU_T6CON_T6I(value) (((( 1 << 3) - 1) & (value)) << 0)
/***GPT Write HW Modified Timer 6 Control Register If set
and clear bit are written concurrently with 1, the associated bit is not changed.***/
#define AMAZON_GPTU_WHBT6CON ((volatile u32*)(AMAZON_GPTU+ 0x0054))
#define AMAZON_GPTU_WHBT6CON_SETT6OTL (1 << 11)
#define AMAZON_GPTU_WHBT6CON_CLRT6OTL (1 << 10)
/***GPT Timer 5 Control Register***/
#define AMAZON_GPTU_T5CON ((volatile u32*)(AMAZON_GPTU+ 0x001C))
#define AMAZON_GPTU_T5CON_T5SC (1 << 15)
#define AMAZON_GPTU_T5CON_T5CLR (1 << 14)
#define AMAZON_GPTU_T5CON_CI(value) (((( 1 << 2) - 1) & (value)) << 12)
#define AMAZON_GPTU_T5CON_T5CC (1 << 11)
#define AMAZON_GPTU_T5CON_CT3 (1 << 10)
#define AMAZON_GPTU_T5CON_T5RC (1 << 9)
#define AMAZON_GPTU_T5CON_T5UDE (1 << 8)
#define AMAZON_GPTU_T5CON_T5UD (1 << 7)
#define AMAZON_GPTU_T5CON_T5R (1 << 6)
#define AMAZON_GPTU_T5CON_T5M(value) (((( 1 << 3) - 1) & (value)) << 3)
#define AMAZON_GPTU_T5CON_T5I(value) (((( 1 << 3) - 1) & (value)) << 0)
/***********************************************************************/
/* Module : ASC register address and bits */
/***********************************************************************/
#define AMAZON_ASC (KSEG1+0x10100400)
/***********************************************************************/
/***ASC Port Input Select Register***/
#define AMAZON_ASC_PISEL (AMAZON_ASC+ 0x0004)
#define AMAZON_ASC_PISEL_RIS (1 << 0)
/***ASC Control Register***/
#define AMAZON_ASC_CON (AMAZON_ASC+ 0x0010)
#define AMAZON_ASC_CON_R (1 << 15)
#define AMAZON_ASC_CON_LB (1 << 14)
#define AMAZON_ASC_CON_BRS (1 << 13)
#define AMAZON_ASC_CON_ODD (1 << 12)
#define AMAZON_ASC_CON_FDE (1 << 11)
#define AMAZON_ASC_CON_OE (1 << 10)
#define AMAZON_ASC_CON_FE (1 << 9)
#define AMAZON_ASC_CON_PE (1 << 8)
#define AMAZON_ASC_CON_OEN (1 << 7)
#define AMAZON_ASC_CON_FEN (1 << 6)
#define AMAZON_ASC_CON_PENRXDI (1 << 5)
#define AMAZON_ASC_CON_REN (1 << 4)
#define AMAZON_ASC_CON_STP (1 << 3)
#define AMAZON_ASC_CON_M(value) (((( 1 << 3) - 1) & (value)) << 0)
/***ASC Write Hardware Modified Control Register***/
#define AMAZON_ASC_WHBCON (AMAZON_ASC+ 0x0050)
#define AMAZON_ASC_WHBCON_SETOE (1 << 13)
#define AMAZON_ASC_WHBCON_SETFE (1 << 12)
#define AMAZON_ASC_WHBCON_SETPE (1 << 11)
#define AMAZON_ASC_WHBCON_CLROE (1 << 10)
#define AMAZON_ASC_WHBCON_CLRFE (1 << 9)
#define AMAZON_ASC_WHBCON_CLRPE (1 << 8)
#define AMAZON_ASC_WHBCON_SETREN (1 << 5)
#define AMAZON_ASC_WHBCON_CLRREN (1 << 4)
/***ASC Baudrate Timer/Reload Register***/
#define AMAZON_ASC_BTR (AMAZON_ASC+ 0x0014)
#define AMAZON_ASC_BTR_BR_VALUE(value) (((( 1 << 13) - 1) & (value)) << 0)
/***ASC Fractional Divider Register***/
#define AMAZON_ASC_FDV (AMAZON_ASC+ 0x0018)
#define AMAZON_ASC_FDV_FD_VALUE(value) (((( 1 << 9) - 1) & (value)) << 0)
/***ASC IrDA Pulse Mode/Width Register***/
#define AMAZON_ASC_PMW (AMAZON_ASC+ 0x001C)
#define AMAZON_ASC_PMW_IRPW (1 << 8)
#define AMAZON_ASC_PMW_PW_VALUE(value) (((( 1 << 8) - 1) & (value)) << 0)
/***ASC Transmit Buffer Register***/
#define AMAZON_ASC_TBUF (AMAZON_ASC+ 0x0020)
#define AMAZON_ASC_TBUF_TD_VALUE(value) (((( 1 << 9) - 1) & (value)) << 0)
/***ASC Receive Buffer Register***/
#define AMAZON_ASC_RBUF (AMAZON_ASC+ 0x0024)
#define AMAZON_ASC_RBUF_RD_VALUE(value) (((( 1 << 9) - 1) & (value)) << 0)
/***ASC Autobaud Control Register***/
#define AMAZON_ASC_ABCON (AMAZON_ASC+ 0x0030)
#define AMAZON_ASC_ABCON_RXINV (1 << 11)
#define AMAZON_ASC_ABCON_TXINV (1 << 10)
#define AMAZON_ASC_ABCON_ABEM(value) (((( 1 << 2) - 1) & (value)) << 8)
#define AMAZON_ASC_ABCON_FCDETEN (1 << 4)
#define AMAZON_ASC_ABCON_ABDETEN (1 << 3)
#define AMAZON_ASC_ABCON_ABSTEN (1 << 2)
#define AMAZON_ASC_ABCON_AUREN (1 << 1)
#define AMAZON_ASC_ABCON_ABEN (1 << 0)
/***Receive FIFO Control Register***/
#define AMAZON_ASC_RXFCON (AMAZON_ASC+ 0x0040)
#define AMAZON_ASC_RXFCON_RXFITL(value) (((( 1 << 6) - 1) & (value)) << 8)
#define AMAZON_ASC_RXFCON_RXTMEN (1 << 2)
#define AMAZON_ASC_RXFCON_RXFFLU (1 << 1)
#define AMAZON_ASC_RXFCON_RXFEN (1 << 0)
/***Transmit FIFO Control Register***/
#define AMAZON_ASC_TXFCON (AMAZON_ASC+ 0x0044)
#define AMAZON_ASC_TXFCON_TXFITL(value) (((( 1 << 6) - 1) & (value)) << 8)
#define AMAZON_ASC_TXFCON_TXTMEN (1 << 2)
#define AMAZON_ASC_TXFCON_TXFFLU (1 << 1)
#define AMAZON_ASC_TXFCON_TXFEN (1 << 0)
/***FIFO Status Register***/
#define AMAZON_ASC_FSTAT (AMAZON_ASC+ 0x0048)
#define AMAZON_ASC_FSTAT_TXFFL(value) (((( 1 << 6) - 1) & (value)) << 8)
#define AMAZON_ASC_FSTAT_RXFFL(value) (((( 1 << 6) - 1) & (value)) << 0)
/***ASC Write HW Modified Autobaud Control Register***/
#define AMAZON_ASC_WHBABCON (AMAZON_ASC+ 0x0054)
#define AMAZON_ASC_WHBABCON_SETABEN (1 << 1)
#define AMAZON_ASC_WHBABCON_CLRABEN (1 << 0)
/***ASC Autobaud Status Register***/
#define AMAZON_ASC_ABSTAT (AMAZON_ASC+ 0x0034)
#define AMAZON_ASC_ABSTAT_DETWAIT (1 << 4)
#define AMAZON_ASC_ABSTAT_SCCDET (1 << 3)
#define AMAZON_ASC_ABSTAT_SCSDET (1 << 2)
#define AMAZON_ASC_ABSTAT_FCCDET (1 << 1)
#define AMAZON_ASC_ABSTAT_FCSDET (1 << 0)
/***ASC Write HW Modified Autobaud Status Register***/
#define AMAZON_ASC_WHBABSTAT (AMAZON_ASC+ 0x0058)
#define AMAZON_ASC_WHBABSTAT_SETDETWAIT (1 << 9)
#define AMAZON_ASC_WHBABSTAT_CLRDETWAIT (1 << 8)
#define AMAZON_ASC_WHBABSTAT_SETSCCDET (1 << 7)
#define AMAZON_ASC_WHBABSTAT_CLRSCCDET (1 << 6)
#define AMAZON_ASC_WHBABSTAT_SETSCSDET (1 << 5)
#define AMAZON_ASC_WHBABSTAT_CLRSCSDET (1 << 4)
#define AMAZON_ASC_WHBABSTAT_SETFCCDET (1 << 3)
#define AMAZON_ASC_WHBABSTAT_CLRFCCDET (1 << 2)
#define AMAZON_ASC_WHBABSTAT_SETFCSDET (1 << 1)
#define AMAZON_ASC_WHBABSTAT_CLRFCSDET (1 << 0)
/***ASC Clock Control Register***/
#define AMAZON_ASC_CLC (AMAZON_ASC+ 0x0000)
#define AMAZON_ASC_CLC_RMC(value) (((( 1 << 8) - 1) & (value)) << 8)
#define AMAZON_ASC_CLC_DISS (1 << 1)
#define AMAZON_ASC_CLC_DISR (1 << 0)
/***ASC IRNCR0 **/
#define AMAZON_ASC_IRNCR0 (AMAZON_ASC+ 0x00FC)
/***ASC IRNCR1 **/
#define AMAZON_ASC_IRNCR1 (AMAZON_ASC+ 0x00F8)
#define ASC_IRNCR_TIR 0x1
#define ASC_IRNCR_RIR 0x2
#define ASC_IRNCR_EIR 0x4
/***********************************************************************/
/* Module : DMA register address and bits */
/***********************************************************************/
#define AMAZON_DMA (KSEG1+0x10103000)
/***********************************************************************/
#define AMAZON_DMA_CH_ON AMAZON_DMA+0x28
#define AMAZON_DMA_CH_RST AMAZON_DMA+0x2c
#define AMAZON_DMA_CH0_ISR AMAZON_DMA+0x30
#define AMAZON_DMA_CH1_ISR AMAZON_DMA+0x34
#define AMAZON_DMA_CH2_ISR AMAZON_DMA+0x38
#define AMAZON_DMA_CH3_ISR AMAZON_DMA+0x3c
#define AMAZON_DMA_CH4_ISR AMAZON_DMA+0x40
#define AMAZON_DMA_CH5_ISR AMAZON_DMA+0x44
#define AMAZON_DMA_CH6_ISR AMAZON_DMA+0x48
#define AMAZON_DMA_CH7_ISR AMAZON_DMA+0x4c
#define AMAZON_DMA_CH8_ISR AMAZON_DMA+0x50
#define AMAZON_DMA_CH9_ISR AMAZON_DMA+0x54
#define AMAZON_DMA_CH10_ISR AMAZON_DMA+0x58
#define AMAZON_DMA_CH11_ISR AMAZON_DMA+0x5c
#define AMAZON_DMA_CH0_MSK AMAZON_DMA+0x60
#define AMAZON_DMA_CH1_MSK AMAZON_DMA+0x64
#define AMAZON_DMA_CH2_MSK AMAZON_DMA+0x68
#define AMAZON_DMA_CH3_MSK AMAZON_DMA+0x6c
#define AMAZON_DMA_CH4_MSK AMAZON_DMA+0x70
#define AMAZON_DMA_CH5_MSK AMAZON_DMA+0x74
#define AMAZON_DMA_CH6_MSK AMAZON_DMA+0x78
#define AMAZON_DMA_CH7_MSK AMAZON_DMA+0x7c
#define AMAZON_DMA_CH8_MSK AMAZON_DMA+0x80
#define AMAZON_DMA_CH9_MSK AMAZON_DMA+0x84
#define AMAZON_DMA_CH10_MSK AMAZON_DMA+0x88
#define AMAZON_DMA_CH11_MSK AMAZON_DMA+0x8c
#define AMAZON_DMA_Desc_BA AMAZON_DMA+0x90
#define AMAZON_DMA_CH0_DES_LEN AMAZON_DMA+0x94
#define AMAZON_DMA_CH1_DES_LEN AMAZON_DMA+0x98
#define AMAZON_DMA_CH2_DES_LEN AMAZON_DMA+0x9c
#define AMAZON_DMA_CH3_DES_LEN AMAZON_DMA+0xa0
#define AMAZON_DMA_CH4_DES_LEN AMAZON_DMA+0xa4
#define AMAZON_DMA_CH5_DES_LEN AMAZON_DMA+0xa8
#define AMAZON_DMA_CH6_DES_LEN AMAZON_DMA+0xac
#define AMAZON_DMA_CH7_DES_LEN AMAZON_DMA+0xb0
#define AMAZON_DMA_CH8_DES_LEN AMAZON_DMA+0xb4
#define AMAZON_DMA_CH9_DES_LEN AMAZON_DMA+0xb8
#define AMAZON_DMA_CH10_DES_LEN AMAZON_DMA+0xbc
#define AMAZON_DMA_CH11_DES_LEN AMAZON_DMA+0xc0
#define AMAZON_DMA_CH1_DES_OFST AMAZON_DMA+0xc4
#define AMAZON_DMA_CH2_DES_OFST AMAZON_DMA+0xc8
#define AMAZON_DMA_CH3_DES_OFST AMAZON_DMA+0xcc
#define AMAZON_DMA_CH4_DES_OFST AMAZON_DMA+0xd0
#define AMAZON_DMA_CH5_DES_OFST AMAZON_DMA+0xd4
#define AMAZON_DMA_CH6_DES_OFST AMAZON_DMA+0xd8
#define AMAZON_DMA_CH7_DES_OFST AMAZON_DMA+0xdc
#define AMAZON_DMA_CH8_DES_OFST AMAZON_DMA+0xe0
#define AMAZON_DMA_CH9_DES_OFST AMAZON_DMA+0xe4
#define AMAZON_DMA_CH10_DES_OFST AMAZON_DMA+0xe8
#define AMAZON_DMA_CH11_DES_OFST AMAZON_DMA+0xec
#define AMAZON_DMA_SW_BL AMAZON_DMA+0xf0
#define AMAZON_DMA_TPE_BL AMAZON_DMA+0xf4
#define AMAZON_DMA_DPlus2FPI_BL AMAZON_DMA+0xf8
#define AMAZON_DMA_GRX_BUF_LEN AMAZON_DMA+0xfc
#define AMAZON_DMA_DMA_ECON_REG AMAZON_DMA+0x100
#define AMAZON_DMA_POLLING_REG AMAZON_DMA+0x104
#define AMAZON_DMA_CH_WGT AMAZON_DMA+0x108
#define AMAZON_DMA_TX_WGT AMAZON_DMA+0x10c
#define AMAZON_DMA_DPLus2FPI_CLASS AMAZON_DMA+0x110
#define AMAZON_DMA_COMB_ISR AMAZON_DMA+0x114
//channel reset
#define SWITCH1_RST_MASK 0x83 /* Switch1 channel mask */
#define SWITCH2_RST_MASK 0x10C /* Switch1 channel mask */
#define TPE_RST_MASK 0x630 /* TPE channel mask */
#define DPlus2FPI_RST_MASK 0x840 /* DPlusFPI channel mask */
//ISR
#define DMA_ISR_RDERR 0x20
#define DMA_ISR_CMDCPT 0x10
#define DMA_ISR_CPT 0x8
#define DMA_ISR_DURR 0x4
#define DMA_ISR_EOP 0x2
#define DMA_DESC_BYTEOFF_SHIFT 23
#define DMA_POLLING_ENABLE 0x80000000
#define DMA_POLLING_CNT 0x50 /*minimum 0x10, max 0xfff0*/
/***********************************************************************/
/* Module : Debug register address and bits */
/***********************************************************************/
#define AMAZON_DEBUG (KSEG1+0x1F106000)
/***********************************************************************/
/***MCD Break System Control Register***/
#define AMAZON_DEBUG_MCD_BSCR ((volatile u32*)(AMAZON_DEBUG+ 0x0000))
/***PMC Performance Counter Control Register0***/
#define AMAZON_DEBUG_PMC_PCCR0 ((volatile u32*)(AMAZON_DEBUG+ 0x0010))
/***PMC Performance Counter Control Register1***/
#define AMAZON_DEBUG_PMC_PCCR1 ((volatile u32*)(AMAZON_DEBUG+ 0x0014))
/***PMC Performance Counter Register0***/
#define AMAZON_DEBUG_PMC_PCR0 ((volatile u32*)(AMAZON_DEBUG+ 0x0018))
/*165001:henryhsu:20050603:Source modified by Bing Tao*/
/***PMC Performance Counter Register1***/
//#define AMAZON_DEBUG_PMC_PCR1 ((volatile u32*)(AMAZON_DEBUG+ 0x0020))
#define AMAZON_DEBUG_PMC_PCR1 ((volatile u32*)(AMAZON_DEBUG+ 0x001c))
/*165001*/
/***MCD Suspend Mode Control Register***/
#define AMAZON_DEBUG_MCD_SMCR ((volatile u32*)(AMAZON_DEBUG+ 0x0024))
/***********************************************************************/
/* Module : GPIO register address and bits */
/***********************************************************************/
#define AMAZON_GPIO (KSEG1+0x10100B00)
/***********************************************************************/
/***Port 0 Data Output Register (0010H)***/
#define AMAZON_GPIO_P0_OUT ((volatile u32*)(AMAZON_GPIO+ 0x0010))
/***Port 1 Data Output Register (0040H)***/
#define AMAZON_GPIO_P1_OUT ((volatile u32*)(AMAZON_GPIO+ 0x0040))
/***Port 0 Data Input Register (0014H)***/
#define AMAZON_GPIO_P0_IN ((volatile u32*)(AMAZON_GPIO+ 0x0014))
/***Port 1 Data Input Register (0044H)***/
#define AMAZON_GPIO_P1_IN ((volatile u32*)(AMAZON_GPIO+ 0x0044))
/***Port 0 Direction Register (0018H)***/
#define AMAZON_GPIO_P0_DIR ((volatile u32*)(AMAZON_GPIO+ 0x0018))
/***Port 1 Direction Register (0048H)***/
#define AMAZON_GPIO_P1_DIR ((volatile u32*)(AMAZON_GPIO+ 0x0048))
/***Port 0 Alternate Function Select Register 0 (001C H) ***/
#define AMAZON_GPIO_P0_ALTSEL0 ((volatile u32*)(AMAZON_GPIO+ 0x001C))
/***Port 1 Alternate Function Select Register 0 (004C H) ***/
#define AMAZON_GPIO_P1_ALTSEL0 ((volatile u32*)(AMAZON_GPIO+ 0x004C))
/***Port 0 Alternate Function Select Register 1 (0020 H) ***/
#define AMAZON_GPIO_P0_ALTSEL1 ((volatile u32*)(AMAZON_GPIO+ 0x0020))
/***Port 1 Alternate Function Select Register 0 (0050 H) ***/
#define AMAZON_GPIO_P1_ALTSEL1 ((volatile u32*)(AMAZON_GPIO+ 0x0050))
/***Port 0 Open Drain Control Register (0024H)***/
#define AMAZON_GPIO_P0_OD ((volatile u32*)(AMAZON_GPIO+ 0x0024))
/***Port 1 Open Drain Control Register (0054H)***/
#define AMAZON_GPIO_P1_OD ((volatile u32*)(AMAZON_GPIO+ 0x0054))
/***Port 0 Input Schmitt-Trigger Off Register (0028 H) ***/
#define AMAZON_GPIO_P0_STOFF ((volatile u32*)(AMAZON_GPIO+ 0x0028))
/***Port 1 Input Schmitt-Trigger Off Register (0058 H) ***/
#define AMAZON_GPIO_P1_STOFF ((volatile u32*)(AMAZON_GPIO+ 0x0058))
/***Port 0 Pull Up/Pull Down Select Register (002C H)***/
#define AMAZON_GPIO_P0_PUDSEL ((volatile u32*)(AMAZON_GPIO+ 0x002C))
/***Port 1 Pull Up/Pull Down Select Register (005C H)***/
#define AMAZON_GPIO_P1_PUDSEL ((volatile u32*)(AMAZON_GPIO+ 0x005C))
/***Port 0 Pull Up Device Enable Register (0030 H)***/
#define AMAZON_GPIO_P0_PUDEN ((volatile u32*)(AMAZON_GPIO+ 0x0030))
/***Port 1 Pull Up Device Enable Register (0060 H)***/
#define AMAZON_GPIO_P1_PUDEN ((volatile u32*)(AMAZON_GPIO+ 0x0060))
/***********************************************************************/
/* Module : BIU register address and bits */
/***********************************************************************/
#define AMAZON_BIU (KSEG1+0x1FA80000)
/***********************************************************************/
/***BIU Identification Register***/
#define AMAZON_BIU_ID ((volatile u32*)(AMAZON_BIU+ 0x0000))
#define AMAZON_BIU_ID_ARCH (1 << 16)
#define AMAZON_BIU_ID_ID(value) (((( 1 << 8) - 1) & (value)) << 8)
#define AMAZON_BIU_ID_REV(value) (((( 1 << 8) - 1) & (value)) << 0)
/***BIU Access Error Cause Register***/
#define AMAZON_BIU_ERRCAUSE ((volatile u32*)(AMAZON_BIU+ 0x0100))
#define AMAZON_BIU_ERRCAUSE_ERR (1 << 31)
#define AMAZON_BIU_ERRCAUSE_PORT(value) (((( 1 << 4) - 1) & (value)) << 16)
#define AMAZON_BIU_ERRCAUSE_CAUSE(value) (((( 1 << 2) - 1) & (value)) << 0)
/***BIU Access Error Address Register***/
#define AMAZON_BIU_ERRADDR ((volatile u32*)(AMAZON_BIU+ 0x0108))
#define AMAZON_BIU_ERRADDR_ADDR
/***********************************************************************/
/* Module : ICU register address and bits */
/***********************************************************************/
#define AMAZON_ICU (KSEG1+0x1F101000)
/***********************************************************************/
/***IM0 Interrupt Status Register***/
#define AMAZON_ICU_IM0_ISR (AMAZON_ICU + 0x0010)
#define AMAZON_ICU_IM1_ISR (AMAZON_ICU + 0x0020)
#define AMAZON_ICU_IM2_ISR (AMAZON_ICU + 0x0030)
#define AMAZON_ICU_IM3_ISR (AMAZON_ICU + 0x0040)
#define AMAZON_ICU_IM4_ISR (AMAZON_ICU + 0x0050)
/***IM0 Interrupt Enable Register***/
#define AMAZON_ICU_IM0_IER (AMAZON_ICU + 0x0014)
#define AMAZON_ICU_IM1_IER (AMAZON_ICU + 0x0024)
#define AMAZON_ICU_IM2_IER (AMAZON_ICU + 0x0034)
#define AMAZON_ICU_IM3_IER (AMAZON_ICU + 0x0044)
#define AMAZON_ICU_IM4_IER (AMAZON_ICU + 0x0054)
/***IM0 Interrupt Output Status Register***/
#define AMAZON_ICU_IM0_IOSR (AMAZON_ICU + 0x0018)
#define AMAZON_ICU_IM1_IOSR (AMAZON_ICU + 0x0028)
#define AMAZON_ICU_IM2_IOSR (AMAZON_ICU + 0x0038)
#define AMAZON_ICU_IM3_IOSR (AMAZON_ICU + 0x0048)
#define AMAZON_ICU_IM4_IOSR (AMAZON_ICU + 0x0058)
/***IM0 Interrupt Request Set Register***/
#define AMAZON_ICU_IM0_IRSR (AMAZON_ICU + 0x001c)
#define AMAZON_ICU_IM1_IRSR (AMAZON_ICU + 0x002c)
#define AMAZON_ICU_IM2_IRSR (AMAZON_ICU + 0x003c)
#define AMAZON_ICU_IM3_IRSR (AMAZON_ICU + 0x004c)
#define AMAZON_ICU_IM4_IRSR (AMAZON_ICU + 0x005c)
/***Interrupt Vector Value Register***/
#define AMAZON_ICU_IM_VEC (AMAZON_ICU + 0x0060)
/***Interrupt Vector Value Mask***/
#define AMAZON_ICU_IM0_VEC_MASK 0x0000001f
#define AMAZON_ICU_IM1_VEC_MASK 0x000003e0
#define AMAZON_ICU_IM2_VEC_MASK 0x00007c00
#define AMAZON_ICU_IM3_VEC_MASK 0x000f8000
#define AMAZON_ICU_IM4_VEC_MASK 0x01f00000
/***DMA Interrupt Mask Value***/
#define AMAZON_DMA_H_MASK 0x00000fff
/***External Interrupt Control Register***/
#define AMAZON_ICU_EXTINTCR (AMAZON_ICU + 0x0000)
#define AMAZON_ICU_IRNICR (AMAZON_ICU + 0x0004)
#define AMAZON_ICU_IRNCR (AMAZON_ICU + 0x0008)
#define AMAZON_ICU_IRNEN (AMAZON_ICU + 0x000c)
/***********************************************************************/
/* Module : PCI/Card-BUS/PC-Card register address and bits */
/***********************************************************************/
#define AMAZON_PCI (KSEG1+0x10105400)
#define AMAZON_PCI_CFG_BASE (KSEG1+0x11000000)
#define AMAZON_PCI_MEM_BASE (KSEG1+0x12000000)
#define CLOCK_CONTROL AMAZON_PCI + 0x00000000
#define ARB_CTRL_bit 1
#define IDENTIFICATION AMAZON_PCI + 0x00000004
#define SOFTRESET AMAZON_PCI + 0x00000010
#define PCI_FPI_ERROR_ADDRESS AMAZON_PCI + 0x00000014
#define FPI_PCI_ERROR_ADDRESS AMAZON_PCI + 0x00000018
#define FPI_ERROR_TAG AMAZON_PCI + 0x0000001c
#define IRR AMAZON_PCI + 0x00000020
#define IRA_IR AMAZON_PCI + 0x00000024
#define IRM AMAZON_PCI + 0x00000028
#define DMA_COMPLETE_BIT 0
#define PCI_POWER_CHANGE_BIT 16
#define PCI_MASTER0_BROKEN_INT_BIT 24
#define PCI_MASTER1_BROKEN_INT_BIT 25
#define PCI_MASTER2_BROKEN_INT_BIT 26
#define EOI AMAZON_PCI + 0x0000002c
#define PCI_MODE AMAZON_PCI + 0x00000030
#define PCI_MODE_cfgok_bit 24
#define DEVICE_VENDOR_ID AMAZON_PCI + 0x00000034
#define SUBSYSTEM_VENDOR_ID AMAZON_PCI + 0x00000038
#define POWER_MANAGEMENT AMAZON_PCI + 0x0000003c
#define CLASS_CODE1 AMAZON_PCI + 0x00000040
#define BAR11_MASK AMAZON_PCI + 0x00000044
#define BAR12_MASK AMAZON_PCI + 0x00000048
#define BAR13_MASK AMAZON_PCI + 0x0000004c
#define BAR14_MASK AMAZON_PCI + 0x00000050
#define BAR15_MASK AMAZON_PCI + 0x00000054
#define BAR16_MASK AMAZON_PCI + 0x00000058
#define CARDBUS_CIS_POINTER1 AMAZON_PCI + 0x0000005c
#define SUBSYSTEM_ID1 AMAZON_PCI + 0x00000060
#define PCI_ADDRESS_MAP_11 AMAZON_PCI + 0x00000064
#define PCI_ADDRESS_MAP_12 AMAZON_PCI + 0x00000068
#define PCI_ADDRESS_MAP_13 AMAZON_PCI + 0x0000006c
#define PCI_ADDRESS_MAP_14 AMAZON_PCI + 0x00000070
#define PCI_ADDRESS_MAP_15 AMAZON_PCI + 0x00000074
#define PCI_ADDRESS_MAP_16 AMAZON_PCI + 0x00000078
#define FPI_SEGMENT_ENABLE AMAZON_PCI + 0x0000007c
#define CLASS_CODE2 AMAZON_PCI + 0x00000080
#define BAR21_MASK AMAZON_PCI + 0x00000084
#define BAR22_MASK AMAZON_PCI + 0x00000088
#define BAR23_MASK AMAZON_PCI + 0x0000008c
#define BAR24_MASK AMAZON_PCI + 0x00000090
#define BAR25_MASK AMAZON_PCI + 0x00000094
#define BAR26_MASK AMAZON_PCI + 0x00000098
#define CARDBUS_CIS_POINTER2 AMAZON_PCI + 0x0000009c
#define SUBSYSTEM_ID2 AMAZON_PCI + 0x000000a0
#define PCI_ADDRESS_MAP_21 AMAZON_PCI + 0x000000a4
#define PCI_ADDRESS_MAP_22 AMAZON_PCI + 0x000000a8
#define PCI_ADDRESS_MAP_23 AMAZON_PCI + 0x000000ac
#define PCI_ADDRESS_MAP_24 AMAZON_PCI + 0x000000b0
#define PCI_ADDRESS_MAP_25 AMAZON_PCI + 0x000000b4
#define PCI_ADDRESS_MAP_26 AMAZON_PCI + 0x000000b8
#define FPI_ADDRESS_MASK11LOW AMAZON_PCI + 0x000000bc
#define FPI_ADDRESS_MAP_0 AMAZON_PCI + 0x000000c0
#define FPI_ADDRESS_MAP_1 AMAZON_PCI + 0x000000c4
#define FPI_ADDRESS_MAP_2 AMAZON_PCI + 0x000000c8
#define FPI_ADDRESS_MAP_3 AMAZON_PCI + 0x000000cc
#define FPI_ADDRESS_MAP_4 AMAZON_PCI + 0x000000d0
#define FPI_ADDRESS_MAP_5 AMAZON_PCI + 0x000000d4
#define FPI_ADDRESS_MAP_6 AMAZON_PCI + 0x000000d8
#define FPI_ADDRESS_MAP_7 AMAZON_PCI + 0x000000dc
#define FPI_ADDRESS_MAP_11LOW AMAZON_PCI + 0x000000e0
#define FPI_ADDRESS_MAP_11HIGH AMAZON_PCI + 0x000000e4
#define FPI_BURST_LENGTH AMAZON_PCI + 0x000000e8
#define SET_PCI_SERR AMAZON_PCI + 0x000000ec
#define DMA_FPI_START_ADDR AMAZON_PCI + 0x000000f0
#define DMA_PCI_START_ADDR AMAZON_PCI + 0x000000f4
#define DMA_TRANSFER_COUNT AMAZON_PCI + 0x000000f8
#define DMA_CONTROL_STATUS AMAZON_PCI + 0x000000fc
#define EXT_PCI1_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x0800
#define EXT_PCI2_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x1000
#define EXT_PCI3_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x1800
#define EXT_PCI4_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x2000
#define EXT_PCI5_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x2800
#define EXT_PCI6_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x3000
#define EXT_PCI7_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x3800
#define EXT_PCI8_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x4000
#define EXT_PCI9_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x4800
#define EXT_PCI10_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x5000
#define EXT_PCI11_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x5800
#define EXT_PCI12_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x6000
#define EXT_PCI13_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x6800
#define EXT_PCI14_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x7000
#define EXT_PCI15_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x7800
#define EXT_CARDBUS_CONFIG_SPACE_BASE_ADDR AMAZON_PCI_CFG_BASE + 0XF000
#define EXT_PCI_BAR1_ADDR 0x10
#define EXT_PCI_BAR2_ADDR 0x14
#define EXT_PCI_BAR3_ADDR 0x18
#define EXT_PCI_BAR4_ADDR 0x1C
#define EXT_PCI_BAR5_ADDR 0x20
#define EXT_PCI_BAR6_ADDR 0x24
#define DEVICE_ID_VECDOR_ID_ADDR AMAZON_PCI_CFG_BASE + 0x0
#define STATUS_COMMAND_ADDR AMAZON_PCI_CFG_BASE + 0x4
#define BUS_MASTER_ENABLE_BIT 2
#define MEM_SPACE_ENABLE_BIT 1
#define CLASS_CODE_REVISION_ADDR AMAZON_PCI_CFG_BASE + 0x8
#define BIST_HEADER_TYPE_LATENCY_CAHCE_ADDR AMAZON_PCI_CFG_BASE + 0xC
#define BAR1_ADDR AMAZON_PCI_CFG_BASE + 0x10
#define BAR2_ADDR AMAZON_PCI_CFG_BASE + 0x14
#define BAR3_ADDR AMAZON_PCI_CFG_BASE + 0x18
#define BAR4_ADDR AMAZON_PCI_CFG_BASE + 0x1C
#define BAR3_ADDR AMAZON_PCI_CFG_BASE + 0x18
#define BAR4_ADDR AMAZON_PCI_CFG_BASE + 0x1C
#define BAR5_ADDR AMAZON_PCI_CFG_BASE + 0x20
#define BAR6_ADDR AMAZON_PCI_CFG_BASE + 0x24
#define CARDBUS_CIS_POINTER_ADDR AMAZON_PCI_CFG_BASE + 0x28
#define SUBSYSTEM_ID_VENDOR_ID_ADDR AMAZON_PCI_CFG_BASE + 0x2C
#define EXPANSION_ROM_BASE_ADDR AMAZON_PCI_CFG_BASE + 0x30
#define CAPABILITIES_POINTER_ADDR AMAZON_PCI_CFG_BASE + 0x34
#define RESERVED_0x38 AMAZON_PCI_CFG_BASE + 0x38
#define MAX_LAT_MIN_GNT_INT_PIN_LINE_ADDR AMAZON_PCI_CFG_BASE + 0x3C
#define POWER_MNGT_NEXT_POINTER_CAP_ID_ADDR AMAZON_PCI_CFG_BASE + 0x40
#define POWER_MANAGEMENT_CTRL_STATUS_ADDR AMAZON_PCI_CFG_BASE + 0x44
#define RESERVED_0x48 AMAZON_PCI_CFG_BASE + 0x48
#define RESERVED_0x4C AMAZON_PCI_CFG_BASE + 0x4C
#define ERROR_ADDR_PCI_FPI_ADDR AMAZON_PCI_CFG_BASE + 0x50
#define ERROR_ADdR_FPI_PCI_ADDR AMAZON_PCI_CFG_BASE + 0x54
#define ERROR_TAG_FPI_PCI_ADDR AMAZON_PCI_CFG_BASE + 0x58
#define PCI_ARB_CTRL_STATUS_ADDR AMAZON_PCI_CFG_BASE + 0x5C
#define INTERNAL_ARB_ENABLE_BIT 0
#define ARB_SCHEME_BIT 1
#define PCI_MASTER0_PRIOR_2BITS 2
#define PCI_MASTER1_PRIOR_2BITS 4
#define PCI_MASTER2_PRIOR_2BITS 6
#define PCI_MASTER0_REQ_MASK_2BITS 8
#define PCI_MASTER1_REQ_MASK_2BITS 10
#define PCI_MASTER2_REQ_MASK_2BITS 12
#define PCI_MASTER0_GNT_MASK_2BITS 14
#define PCI_MASTER1_GNT_MASK_2BITS 16
#define PCI_MASTER2_GNT_MASK_2BITS 18
#define FPI_PCI_INT_STATUS_ADDR AMAZON_PCI_CFG_BASE + 0x60
#define FPI_PCI_INT_ACK_ADDR AMAZON_PCI_CFG_BASE + 0x64
#define FPI_PCI_INT_MASK_ADDR AMAZON_PCI_CFG_BASE + 0x68
#define CARDBUS_CTRL_STATUS_ADDR AMAZON_PCI_CFG_BASE + 0x6C
#define CARDBUS_CFRAME_ENABLE 0
#define CLOCK_CONTROL_default 0x00000000
#define CLOCK_CONTROL_mask 0x00000003
#define IDENTIFICATION_default 0x0011C002
#define IDENTIFICATION_mask 0x00000000
#define SOFTRESET_default 0x00000000
// SOFTRESET bit 0 is writable but will be reset to 0 after software reset is over
#define SOFTRESET_mask 0x00000000
#define PCI_FPI_ERROR_ADDRESS_default 0xFFFFFFFF
#define PCI_FPI_ERROR_ADDRESS_mask 0x00000000
#define FPI_PCI_ERROR_ADDRESS_default 0xFFFFFFFF
#define FPI_PCI_ERROR_ADDRESS_mask 0x00000000
#define FPI_ERROR_TAG_default 0x0000000F
#define FPI_ERROR_TAG_mask 0x00000000
#define IRR_default 0x00000000
#define IRR_mask 0x07013b2F
#define IRA_IR_default 0x00000000
#define IRA_IR_mask 0x07013b2F
#define IRM_default 0x00000000
#define IRM_mask 0xFFFFFFFF
#define EOI_default 0x00000000
#define EOI_mask 0x00000000
#define PCI_MODE_default 0x01000103
#define PCI_MODE_mask 0x1107070F
#define DEVICE_VENDOR_ID_default 0x000C15D1
#define DEVICE_VENDOR_ID_mask 0xFFFFFFFF
#define SUBSYSTEM_VENDOR_ID_default 0x000015D1
#define SUBSYSTEM_VENDOR_ID_mask 0x0000FFFF
#define POWER_MANAGEMENT_default 0x0000001B
#define POWER_MANAGEMENT_mask 0x0000001F
#define CLASS_CODE1_default 0x00028000
#define CLASS_CODE1_mask 0x00FFFFFF
#define BAR11_MASK_default 0x0FF00008
#define BAR11_MASK_mask 0x8FF00008
#define BAR12_MASK_default 0x80001800
#define BAR12_MASK_mask 0x80001F08
#define BAR13_MASK_default 0x8FF00008
#define BAR13_MASK_mask 0x8FF00008
#define BAR14_MASK_default 0x8F000000
#define BAR14_MASK_mask 0x8FFFFF08
#define BAR15_MASK_default 0x80000000
#define BAR15_MASK_mask 0x8FFFFF08
#define BAR16_MASK_default 0x80000001
// bit 0 and bit 3 is mutually exclusive
#define BAR16_MASK_mask 0x8FFFFFF9
#define CARDBUS_CIS_POINTER1_default 0x00000000
#define CARDBUS_CIS_POINTER1_mask 0x03FFFFFF
#define SUBSYSTEM_ID1_default 0x0000000C
#define SUBSYSTEM_ID1_mask 0x0000FFFF
#define PCI_ADDRESS_MAP_11_default 0x18000000
#define PCI_ADDRESS_MAP_11_mask 0x7FFFFFF1
#define PCI_ADDRESS_MAP_12_default 0x18100000
#define PCI_ADDRESS_MAP_12_mask 0x7FFFFF01
#define PCI_ADDRESS_MAP_13_default 0x18200000
#define PCI_ADDRESS_MAP_13_mask 0x7FF00001
#define PCI_ADDRESS_MAP_14_default 0x70000000
#define PCI_ADDRESS_MAP_14_mask 0x7FFFFF01
#define PCI_ADDRESS_MAP_15_default 0x00000001
#define PCI_ADDRESS_MAP_15_mask 0x7FFFFF01
#define PCI_ADDRESS_MAP_16_default 0x60000000
#define PCI_ADDRESS_MAP_16_mask 0x7FF00001
#define FPI_SEGMENT_ENABLE_default 0x000003FF
#define FPI_SEGMENT_ENABLE_mask 0x000003FF
#define CLASS_CODE2_default 0x00FF0000
#define CLASS_CODE2_mask 0x00FFFFFF
#define BAR21_MASK_default 0x80000008
#define BAR21_MASK_mask 0x8FFFFFF8
#define BAR22_MASK_default 0x80000008
#define BAR22_MASK_mask 0x80001F08
#define BAR23_MASK_default 0x80000008
#define BAR23_MASK_mask 0x8FF00008
#define BAR24_MASK_default 0x8FE00000
#define BAR24_MASK_mask 0x8FFFFF08
#define BAR25_MASK_default 0x8FFFF000
#define BAR25_MASK_mask 0x8FFFFF08
#define BAR26_MASK_default 0x8FFFFFE1
#define BAR26_MASK_mask 0x8FFFFFF1
#define CARDBUS_CIS_POINTER2_default 0x00000000
#define CARDBUS_CIS_POINTER2_mask 0x03FFFFFF
#define SUBSYSTEM_ID2_default 0x0000000C
#define SUBSYSTEM_ID2_mask 0x0000FFFF
#define PCI_ADDRESS_MAP_21_default 0x3FE00000
#define PCI_ADDRESS_MAP_21_mask 0x7FFFFFF1
#define PCI_ADDRESS_MAP_22_default 0x68000000
#define PCI_ADDRESS_MAP_22_mask 0x7FFFFF01
#define PCI_ADDRESS_MAP_23_default 0x20000000
#define PCI_ADDRESS_MAP_23_mask 0x7FF00001
#define PCI_ADDRESS_MAP_24_default 0x70000001
#define PCI_ADDRESS_MAP_24_mask 0x7FFFFF01
#define PCI_ADDRESS_MAP_25_default 0x78000001
#define PCI_ADDRESS_MAP_25_mask 0x7FFFFF01
#define PCI_ADDRESS_MAP_26_default 0x20000000
#define PCI_ADDRESS_MAP_26_mask 0x7FF00001
#define FPI_ADDRESS_MASK11LOW_default 0x00000000
#define FPI_ADDRESS_MASK11LOW_mask 0x00070000
#define FPI_ADDRESS_MAP_0_default 0x00000000
#define FPI_ADDRESS_MAP_0_mask 0xFFF00000
#define FPI_ADDRESS_MAP_1_default 0x10000000
#define FPI_ADDRESS_MAP_1_mask 0xFFF00000
#define FPI_ADDRESS_MAP_2_default 0x20000000
#define FPI_ADDRESS_MAP_2_mask 0xFFF00000
#define FPI_ADDRESS_MAP_3_default 0x30000000
#define FPI_ADDRESS_MAP_3_mask 0xFFF00000
#define FPI_ADDRESS_MAP_4_default 0x40000000
#define FPI_ADDRESS_MAP_4_mask 0xFFF00000
#define FPI_ADDRESS_MAP_5_default 0x50000000
#define FPI_ADDRESS_MAP_5_mask 0xFFF00000
#define FPI_ADDRESS_MAP_6_default 0x60000000
#define FPI_ADDRESS_MAP_6_mask 0xFFF00000
#define FPI_ADDRESS_MAP_7_default 0x70000000
#define FPI_ADDRESS_MAP_7_mask 0xFFF00000
#define FPI_ADDRESS_MAP_11LOW_default 0xB0000000
#define FPI_ADDRESS_MAP_11LOW_mask 0xFFFF0000
#define FPI_ADDRESS_MAP_11HIGH_default 0xB8000000
#define FPI_ADDRESS_MAP_11HIGH_mask 0xFFF80000
#define FPI_BURST_LENGTH_default 0x00000000
#define FPI_BURST_LENGTH_mask 0x00000303
#define SET_PCI_SERR_default 0x00000000
#define SET_PCI_SERR_mask 0x00000000
#define DMA_FPI_START_ADDRESS_default 0x00000000
#define DMA_FPI_START_ADDRESS_mask 0xFFFFFFFF
#define DMA_PCI_START_ADDRESS_default 0x00000000
#define DMA_PCI_START_ADDRESS_mask 0xFFFFFFFF
#define DMA_TRANSFER_COUNT_default 0x00000000
#define DMA_TRANSFER_COUNT_mask 0x0000FFFF
#define DMA_CONTROL_STATUS_default 0x00000000
#define DMA_CONTROL_STATUS_mask 0x00000000 // bit 0,1 is writable
/***********************************************************************/
#undef IKOS_MINI_BOOT //don't run a full booting
#ifdef CONFIG_USE_IKOS
#define CONFIG_USE_VENUS //Faster, 10M CPU and 192k baudrate
#ifdef CONFIG_USE_VENUS
#define IKOS_CPU_SPEED 10000000
#else
#define IKOS_CPU_SPEED 180000 //IKOS is slow
#endif
#endif //CONFIG_USE_IKOS
/* 165001:henryhsu:20050603:Source Modify form Bing Tao */
#if defined(CONFIG_NET_WIRELESS_SPURS) || defined(CONFIG_NET_WIRELESS_SPURS_MODULE)
#define EBU_PCI_SOFTWARE_ARBITOR
#endif
#define AMAZON_B11
#ifdef AMAZON_B11
#define SWITCH_BUF_FPI_ADDR (0x10110000)
#define SWITCH_BUF_ADDR (KSEG1+SWITCH_BUF_FPI_ADDR)
#define SWITCH_BUF_SIZE (0x2800)
#define AMAZON_B11_CBM_QD_ADDR (SWITCH_BUF_ADDR+0x0)
#define AMAZON_B11_BOND_CELL_ADDR (SWITCH_BUF_ADDR+0x000)
#endif
#define AMAZON_REFERENCE_BOARD
//for AMAZON ATM bonding application
#ifdef AMAZON_REFERENCE_BOARD
#define GPIO_DETECT_LOW
#else
#undef GPIO_DETECT_LOW
#endif
/* 165001 */
#undef AMAZON_IKOS_DEBUG_MSG
#undef AMAZON_INT_DEBUG_MSG
#undef AMAZON_ATM_DEBUG_MSG
#undef AMAZON_DMA_DEBUG_MSG
#undef AMAZON_SW_DEBUG_MSG
#undef AMAZON_WDT_DEBUG_MSG
#undef AMAZON_MTD_DEBUG_MSG
#undef AMAZON_SSC_DEBUG_MSG
#undef AMAZON_MEI_DEBUG_MSG
#ifdef AMAZON_IKOS_DEBUG_MSG
#define AMAZON_IKOS_DMSG(fmt,args...) printk("%s:" fmt, __FUNCTION__, ##args)
#else
#define AMAZON_IKOS_DMSG(fmt,args...)
#endif
#ifdef AMAZON_WDT_DEBUG_MSG
#define AMAZON_WDT_DMSG(fmt, args...) printk( "%s: " fmt, __FUNCTION__ , ##args)
#else
#define AMAZON_WDT_DMSG(fm,args...)
#endif
#ifdef AMAZON_SSC_DEBUG_MSG
#define AMAZON_SSC_DMSG(fmt, args...) printk( "%s: " fmt, __FUNCTION__ , ##args)
#else
#define AMAZON_SSC_DMSG(fm,args...)
#endif
#ifdef AMAZON_DMA_DEBUG_MSG
#define AMAZON_DMA_DMSG(fmt, args...) printk( "%s: " fmt, __FUNCTION__ , ##args)
#else
#define AMAZON_DMA_DMSG(fm,args...)
#endif
#ifdef AMAZON_ATM_DEBUG_MSG
#define AMAZON_TPE_DMSG(fmt, args...) printk( "%s: " fmt, __FUNCTION__ , ##args)
#else //not AMAZON_ATM_DEBUG
#define AMAZON_TPE_DMSG(fmt, args...)
#endif //AMAZON_ATM_DEBUG
#ifdef AMAZON_SW_DEBUG_MSG
#define AMAZON_SW_DMSG(fmt,args...) printk("%s: " fmt, __FUNCTION__ , ##args)
#else
#define AMAZON_SW_DMSG(fmt,args...)
#endif
#ifdef AMAZON_MTD_DEBUG_MSG
#define AMAZON_MTD_DMSG(fmt,args...) printk("%s: " fmt, __FUNCTION__ , ##args)
#else
#define AMAZON_MTD_DMSG(fmt,args...)
#endif
#ifdef AMAZON_INT_DEBUG_MSG
#define AMAZON_INT_DMSG(x...) printk(x)
#else
#define AMAZON_INT_DMSG(x...)
#endif
#ifdef AMAZON_MEI_DEBUG_MSG
#define AMAZON_MEI_DMSG(fmt,args...) printk("%s:" fmt, __FUNCTION__, ##args)
#else
#define AMAZON_MEI_DMSG(fmt,args...)
#endif
#endif //AMAZON_H