MIPS: Whitespace cleanup.
Having received another series of whitespace patches I decided to do this once and for all rather than dealing with this kind of patches trickling in forever. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
405ab01c70
Коммит
7034228792
|
@ -191,7 +191,7 @@ endif
|
|||
include $(srctree)/arch/mips/Kbuild.platforms
|
||||
|
||||
ifdef CONFIG_PHYSICAL_START
|
||||
load-y = $(CONFIG_PHYSICAL_START)
|
||||
load-y = $(CONFIG_PHYSICAL_START)
|
||||
endif
|
||||
|
||||
cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Core Alchemy code
|
||||
#
|
||||
platform-$(CONFIG_MIPS_ALCHEMY) += alchemy/common/
|
||||
platform-$(CONFIG_MIPS_ALCHEMY) += alchemy/common/
|
||||
|
||||
|
||||
#
|
||||
|
@ -45,7 +45,7 @@ load-$(CONFIG_MIPS_MTX1) += 0xffffffff80100000
|
|||
#
|
||||
# MyCable eval board
|
||||
#
|
||||
platform-$(CONFIG_MIPS_XXS1500) += alchemy/
|
||||
platform-$(CONFIG_MIPS_XXS1500) += alchemy/
|
||||
load-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000
|
||||
|
||||
#
|
||||
|
@ -56,7 +56,7 @@ load-$(CONFIG_MIPS_GPR) += 0xffffffff80100000
|
|||
|
||||
# boards can specify their own <gpio.h> in one of their include dirs.
|
||||
# If they do, placing this line here at the end will make sure the
|
||||
# compiler picks the board one. If they don't, it will make sure
|
||||
# compiler picks the board one. If they don't, it will make sure
|
||||
# the alchemy generic gpio header is picked up.
|
||||
|
||||
cflags-$(CONFIG_MIPS_ALCHEMY) += -I$(srctree)/arch/mips/include/asm/mach-au1x00
|
||||
|
|
|
@ -135,33 +135,33 @@ static struct mtd_partition gpr_mtd_partitions[] = {
|
|||
{
|
||||
.name = "kernel",
|
||||
.size = 0x00200000,
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
},
|
||||
{
|
||||
.name = "rootfs",
|
||||
.size = 0x00800000,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
},
|
||||
{
|
||||
.name = "config",
|
||||
.size = 0x00200000,
|
||||
.offset = 0x01d00000,
|
||||
.offset = 0x01d00000,
|
||||
},
|
||||
{
|
||||
.name = "yamon",
|
||||
.size = 0x00100000,
|
||||
.offset = 0x01c00000,
|
||||
.offset = 0x01c00000,
|
||||
},
|
||||
{
|
||||
.name = "yamon env vars",
|
||||
.size = 0x00040000,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
},
|
||||
{
|
||||
.name = "kernel+rootfs",
|
||||
.size = 0x00a00000,
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -173,23 +173,23 @@ static struct mtd_partition mtx1_mtd_partitions[] = {
|
|||
{
|
||||
.name = "filesystem",
|
||||
.size = 0x01C00000,
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
},
|
||||
{
|
||||
.name = "yamon",
|
||||
.size = 0x00100000,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.mask_flags = MTD_WRITEABLE,
|
||||
},
|
||||
{
|
||||
.name = "kernel",
|
||||
.size = 0x002c0000,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
},
|
||||
{
|
||||
.name = "yamon env",
|
||||
.size = 0x00040000,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -252,7 +252,7 @@ EXPORT_SYMBOL(au1xxx_ddma_del_device);
|
|||
u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
|
||||
void (*callback)(int, void *), void *callparam)
|
||||
{
|
||||
unsigned long flags;
|
||||
unsigned long flags;
|
||||
u32 used, chan;
|
||||
u32 dcp;
|
||||
int i;
|
||||
|
@ -512,7 +512,7 @@ u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
|
|||
break;
|
||||
}
|
||||
|
||||
/* If source input is FIFO, set static address. */
|
||||
/* If source input is FIFO, set static address. */
|
||||
if (stp->dev_flags & DEV_FLAGS_IN) {
|
||||
if (stp->dev_flags & DEV_FLAGS_BURSTABLE)
|
||||
src1 |= DSCR_SRC1_SAM(DSCR_xAM_BURST);
|
||||
|
@ -635,7 +635,7 @@ u32 au1xxx_dbdma_put_source(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
|
|||
dma_cache_wback_inv((unsigned long)dp, sizeof(*dp));
|
||||
ctp->chan_ptr->ddma_dbell = 0;
|
||||
|
||||
/* Get next descriptor pointer. */
|
||||
/* Get next descriptor pointer. */
|
||||
ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
|
||||
|
||||
/* Return something non-zero. */
|
||||
|
@ -697,7 +697,7 @@ u32 au1xxx_dbdma_put_dest(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
|
|||
dma_cache_wback_inv((unsigned long)dp, sizeof(*dp));
|
||||
ctp->chan_ptr->ddma_dbell = 0;
|
||||
|
||||
/* Get next descriptor pointer. */
|
||||
/* Get next descriptor pointer. */
|
||||
ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
|
||||
|
||||
/* Return something non-zero. */
|
||||
|
@ -742,7 +742,7 @@ u32 au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes)
|
|||
*nbytes = dp->dscr_cmd1;
|
||||
rv = dp->dscr_stat;
|
||||
|
||||
/* Get next descriptor pointer. */
|
||||
/* Get next descriptor pointer. */
|
||||
ctp->get_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
|
||||
|
||||
/* Return something non-zero. */
|
||||
|
@ -891,7 +891,7 @@ void au1xxx_dbdma_dump(u32 chanid)
|
|||
chan_tab_t *ctp;
|
||||
au1x_ddma_desc_t *dp;
|
||||
dbdev_tab_t *stp, *dtp;
|
||||
au1x_dma_chan_t *cp;
|
||||
au1x_dma_chan_t *cp;
|
||||
u32 i = 0;
|
||||
|
||||
ctp = *((chan_tab_t **)chanid);
|
||||
|
@ -969,7 +969,7 @@ u32 au1xxx_dbdma_put_dscr(u32 chanid, au1x_ddma_desc_t *dscr)
|
|||
dp->dscr_cmd0 |= dscr->dscr_cmd0 | DSCR_CMD0_V;
|
||||
ctp->chan_ptr->ddma_dbell = 0;
|
||||
|
||||
/* Get next descriptor pointer. */
|
||||
/* Get next descriptor pointer. */
|
||||
ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
|
||||
|
||||
/* Return something non-zero. */
|
||||
|
|
|
@ -106,14 +106,14 @@ struct gpio_chip alchemy_gpio_chip[] = {
|
|||
.ngpio = ALCHEMY_GPIO1_NUM,
|
||||
},
|
||||
[1] = {
|
||||
.label = "alchemy-gpio2",
|
||||
.direction_input = gpio2_direction_input,
|
||||
.direction_output = gpio2_direction_output,
|
||||
.get = gpio2_get,
|
||||
.set = gpio2_set,
|
||||
.label = "alchemy-gpio2",
|
||||
.direction_input = gpio2_direction_input,
|
||||
.direction_output = gpio2_direction_output,
|
||||
.get = gpio2_get,
|
||||
.set = gpio2_set,
|
||||
.to_irq = gpio2_to_irq,
|
||||
.base = ALCHEMY_GPIO2_BASE,
|
||||
.ngpio = ALCHEMY_GPIO2_NUM,
|
||||
.base = ALCHEMY_GPIO2_BASE,
|
||||
.ngpio = ALCHEMY_GPIO2_NUM,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -84,20 +84,20 @@ static int au1300_gpic_settype(struct irq_data *d, unsigned int type);
|
|||
* needs the highest priority.
|
||||
*/
|
||||
struct alchemy_irqmap au1000_irqmap[] __initdata = {
|
||||
{ AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
|
@ -106,33 +106,33 @@ struct alchemy_irqmap au1000_irqmap[] __initdata = {
|
|||
{ AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0, 0 },
|
||||
{ AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ -1, },
|
||||
};
|
||||
|
||||
struct alchemy_irqmap au1500_irqmap[] __initdata = {
|
||||
{ AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_TOY_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1500_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1500_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
|
@ -141,31 +141,31 @@ struct alchemy_irqmap au1500_irqmap[] __initdata = {
|
|||
{ AU1500_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1500_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1500_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0, 0 },
|
||||
{ AU1500_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1500_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1500_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1500_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1500_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1500_AC97C_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ -1, },
|
||||
};
|
||||
|
||||
struct alchemy_irqmap au1100_irqmap[] __initdata = {
|
||||
{ AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_TOY_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1100_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1100_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
|
@ -174,33 +174,33 @@ struct alchemy_irqmap au1100_irqmap[] __initdata = {
|
|||
{ AU1100_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1100_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1100_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0, 0 },
|
||||
{ AU1100_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1100_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1100_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1100_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1100_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1100_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1100_AC97C_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ -1, },
|
||||
};
|
||||
|
||||
struct alchemy_irqmap au1550_irqmap[] __initdata = {
|
||||
{ AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_TOY_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1550_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1550_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
|
@ -210,26 +210,26 @@ struct alchemy_irqmap au1550_irqmap[] __initdata = {
|
|||
{ AU1550_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1550_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0, 0 },
|
||||
{ AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0, 0 },
|
||||
{ AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 1, 0 },
|
||||
{ AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ -1, },
|
||||
};
|
||||
|
||||
struct alchemy_irqmap au1200_irqmap[] __initdata = {
|
||||
{ AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_TOY_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1200_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1200_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
|
@ -239,9 +239,9 @@ struct alchemy_irqmap au1200_irqmap[] __initdata = {
|
|||
{ AU1200_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1200_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0, 0 },
|
||||
{ AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 1, 0 },
|
||||
{ AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 1, 0 },
|
||||
{ -1, },
|
||||
};
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ static void alchemy_8250_pm(struct uart_port *port, unsigned int state,
|
|||
.irq = _irq, \
|
||||
.regshift = 2, \
|
||||
.iotype = UPIO_AU, \
|
||||
.flags = UPF_SKIP_TEST | UPF_IOREMAP | \
|
||||
.flags = UPF_SKIP_TEST | UPF_IOREMAP | \
|
||||
UPF_FIXED_TYPE, \
|
||||
.type = PORT_16550A, \
|
||||
.pm = alchemy_8250_pm, \
|
||||
|
@ -137,7 +137,7 @@ static void alchemy_ehci_power_off(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
static struct usb_ehci_pdata alchemy_ehci_pdata = {
|
||||
.no_io_watchdog = 1,
|
||||
.no_io_watchdog = 1,
|
||||
.power_on = alchemy_ehci_power_on,
|
||||
.power_off = alchemy_ehci_power_off,
|
||||
.power_suspend = alchemy_ehci_power_off,
|
||||
|
|
|
@ -59,7 +59,7 @@ void __init plat_mem_setup(void)
|
|||
/* Clear to obtain best system bus performance */
|
||||
clear_c0_config(1 << 19); /* Clear Config[OD] */
|
||||
|
||||
board_setup(); /* board specific setup */
|
||||
board_setup(); /* board specific setup */
|
||||
|
||||
/* IO/MEM resources. */
|
||||
set_io_port_base(0);
|
||||
|
|
|
@ -102,12 +102,12 @@ LEAF(alchemy_sleep_au1000)
|
|||
cache 0x14, 96(t0)
|
||||
.set mips0
|
||||
|
||||
1: lui a0, 0xb400 /* mem_xxx */
|
||||
sw zero, 0x001c(a0) /* Precharge */
|
||||
1: lui a0, 0xb400 /* mem_xxx */
|
||||
sw zero, 0x001c(a0) /* Precharge */
|
||||
sync
|
||||
sw zero, 0x0020(a0) /* Auto Refresh */
|
||||
sync
|
||||
sw zero, 0x0030(a0) /* Sleep */
|
||||
sw zero, 0x0030(a0) /* Sleep */
|
||||
sync
|
||||
|
||||
DO_SLEEP
|
||||
|
@ -128,15 +128,15 @@ LEAF(alchemy_sleep_au1550)
|
|||
cache 0x14, 96(t0)
|
||||
.set mips0
|
||||
|
||||
1: lui a0, 0xb400 /* mem_xxx */
|
||||
sw zero, 0x08c0(a0) /* Precharge */
|
||||
1: lui a0, 0xb400 /* mem_xxx */
|
||||
sw zero, 0x08c0(a0) /* Precharge */
|
||||
sync
|
||||
sw zero, 0x08d0(a0) /* Self Refresh */
|
||||
sync
|
||||
|
||||
/* wait for sdram to enter self-refresh mode */
|
||||
lui t0, 0x0100
|
||||
2: lw t1, 0x0850(a0) /* mem_sdstat */
|
||||
lui t0, 0x0100
|
||||
2: lw t1, 0x0850(a0) /* mem_sdstat */
|
||||
and t2, t1, t0
|
||||
beq t2, zero, 2b
|
||||
nop
|
||||
|
@ -144,9 +144,9 @@ LEAF(alchemy_sleep_au1550)
|
|||
/* disable SDRAM clocks */
|
||||
lui t0, 0xcfff
|
||||
ori t0, t0, 0xffff
|
||||
lw t1, 0x0840(a0) /* mem_sdconfiga */
|
||||
and t1, t0, t1 /* clear CE[1:0] */
|
||||
sw t1, 0x0840(a0) /* mem_sdconfiga */
|
||||
lw t1, 0x0840(a0) /* mem_sdconfiga */
|
||||
and t1, t0, t1 /* clear CE[1:0] */
|
||||
sw t1, 0x0840(a0) /* mem_sdconfiga */
|
||||
sync
|
||||
|
||||
DO_SLEEP
|
||||
|
|
|
@ -85,7 +85,7 @@ static struct clock_event_device au1x_rtcmatch2_clockdev = {
|
|||
.name = "rtcmatch2",
|
||||
.features = CLOCK_EVT_FEAT_ONESHOT,
|
||||
.rating = 1500,
|
||||
.set_next_event = au1x_rtcmatch2_set_next_event,
|
||||
.set_next_event = au1x_rtcmatch2_set_next_event,
|
||||
.set_mode = au1x_rtcmatch2_set_mode,
|
||||
.cpumask = cpu_all_mask,
|
||||
};
|
||||
|
|
|
@ -122,7 +122,7 @@ static inline void __au1300_ohci_control(void __iomem *base, int enable, int id)
|
|||
unsigned long r;
|
||||
|
||||
if (enable) {
|
||||
__raw_writel(1, base + USB_DWC_CTRL7); /* start OHCI clock */
|
||||
__raw_writel(1, base + USB_DWC_CTRL7); /* start OHCI clock */
|
||||
wmb();
|
||||
|
||||
r = __raw_readl(base + USB_DWC_CTRL3); /* enable OHCI block */
|
||||
|
|
|
@ -20,7 +20,7 @@ static struct bcsr_reg {
|
|||
spinlock_t lock;
|
||||
} bcsr_regs[BCSR_CNT];
|
||||
|
||||
static void __iomem *bcsr_virt; /* KSEG1 addr of BCSR base */
|
||||
static void __iomem *bcsr_virt; /* KSEG1 addr of BCSR base */
|
||||
static int bcsr_csc_base; /* linux-irq of first cascaded irq */
|
||||
|
||||
void __init bcsr_init(unsigned long bcsr1_phys, unsigned long bcsr2_phys)
|
||||
|
|
|
@ -276,7 +276,7 @@ static void db1100_mmcled_set(struct led_classdev *led, enum led_brightness b)
|
|||
}
|
||||
|
||||
static struct led_classdev db1100_mmc_led = {
|
||||
.brightness_set = db1100_mmcled_set,
|
||||
.brightness_set = db1100_mmcled_set,
|
||||
};
|
||||
|
||||
static int db1100_mmc1_card_readonly(void *mmc_host)
|
||||
|
@ -314,7 +314,7 @@ static void db1100_mmc1led_set(struct led_classdev *led, enum led_brightness b)
|
|||
}
|
||||
|
||||
static struct led_classdev db1100_mmc1_led = {
|
||||
.brightness_set = db1100_mmc1led_set,
|
||||
.brightness_set = db1100_mmc1led_set,
|
||||
};
|
||||
|
||||
static struct au1xmmc_platform_data db1100_mmc_platdata[2] = {
|
||||
|
@ -357,7 +357,7 @@ static struct resource au1100_mmc0_resources[] = {
|
|||
}
|
||||
};
|
||||
|
||||
static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32);
|
||||
static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32);
|
||||
|
||||
static struct platform_device db1100_mmc0_dev = {
|
||||
.name = "au1xxx-mmc",
|
||||
|
@ -482,7 +482,7 @@ static struct spi_board_info db1100_spi_info[] __initdata = {
|
|||
.mode = 0,
|
||||
.irq = AU1100_GPIO21_INT,
|
||||
.platform_data = &db1100_touch_pd,
|
||||
.controller_data = (void *)210, /* for spi_gpio: CS# GPIO210 */
|
||||
.controller_data = (void *)210, /* for spi_gpio: CS# GPIO210 */
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -572,7 +572,7 @@ static int __init db1000_dev_init(void)
|
|||
irq_set_irq_type(AU1500_GPIO204_INT, IRQ_TYPE_LEVEL_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO205_INT, IRQ_TYPE_LEVEL_LOW);
|
||||
/* EPSON S1D13806 0x1b000000
|
||||
* SRAM 1MB/2MB 0x1a000000
|
||||
* SRAM 1MB/2MB 0x1a000000
|
||||
* DS1693 RTC 0x0c000000
|
||||
*/
|
||||
} else if (board == BCSR_WHOAMI_PB1100) {
|
||||
|
@ -586,7 +586,7 @@ static int __init db1000_dev_init(void)
|
|||
irq_set_irq_type(AU1100_GPIO12_INT, IRQ_TYPE_LEVEL_LOW);
|
||||
irq_set_irq_type(AU1100_GPIO13_INT, IRQ_TYPE_LEVEL_LOW);
|
||||
/* EPSON S1D13806 0x1b000000
|
||||
* SRAM 1MB/2MB 0x1a000000
|
||||
* SRAM 1MB/2MB 0x1a000000
|
||||
* DiskOnChip 0x0d000000
|
||||
* DS1693 RTC 0x0c000000
|
||||
*/
|
||||
|
@ -605,7 +605,7 @@ static int __init db1000_dev_init(void)
|
|||
AU1000_PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
|
||||
AU1000_PCMCIA_IO_PHYS_ADDR,
|
||||
AU1000_PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
|
||||
c0, d0, /*s0*/0, 0, 0);
|
||||
c0, d0, /*s0*/0, 0, 0);
|
||||
|
||||
if (twosocks) {
|
||||
irq_set_irq_type(d1, IRQ_TYPE_EDGE_BOTH);
|
||||
|
@ -619,7 +619,7 @@ static int __init db1000_dev_init(void)
|
|||
AU1000_PCMCIA_MEM_PHYS_ADDR + 0x004400000 - 1,
|
||||
AU1000_PCMCIA_IO_PHYS_ADDR + 0x004000000,
|
||||
AU1000_PCMCIA_IO_PHYS_ADDR + 0x004010000 - 1,
|
||||
c1, d1, /*s1*/0, 0, 1);
|
||||
c1, d1, /*s1*/0, 0, 1);
|
||||
}
|
||||
|
||||
platform_add_devices(db1x00_devs, ARRAY_SIZE(db1x00_devs));
|
||||
|
|
|
@ -90,14 +90,14 @@ int __init db1200_board_setup(void)
|
|||
|
||||
whoami = bcsr_read(BCSR_WHOAMI);
|
||||
printk(KERN_INFO "Alchemy/AMD/RMI %s Board, CPLD Rev %d"
|
||||
" Board-ID %d Daughtercard ID %d\n", get_system_type(),
|
||||
" Board-ID %d Daughtercard ID %d\n", get_system_type(),
|
||||
(whoami >> 4) & 0xf, (whoami >> 8) & 0xf, whoami & 0xf);
|
||||
|
||||
/* SMBus/SPI on PSC0, Audio on PSC1 */
|
||||
pfc = __raw_readl((void __iomem *)SYS_PINFUNC);
|
||||
pfc &= ~(SYS_PINFUNC_P0A | SYS_PINFUNC_P0B);
|
||||
pfc &= ~(SYS_PINFUNC_P1A | SYS_PINFUNC_P1B | SYS_PINFUNC_FS3);
|
||||
pfc |= SYS_PINFUNC_P1C; /* SPI is configured later */
|
||||
pfc |= SYS_PINFUNC_P1C; /* SPI is configured later */
|
||||
__raw_writel(pfc, (void __iomem *)SYS_PINFUNC);
|
||||
wmb();
|
||||
|
||||
|
@ -129,7 +129,7 @@ int __init db1200_board_setup(void)
|
|||
static struct mtd_partition db1200_spiflash_parts[] = {
|
||||
{
|
||||
.name = "spi_flash",
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
.size = MTDPART_SIZ_FULL,
|
||||
},
|
||||
};
|
||||
|
@ -200,12 +200,12 @@ static int au1200_nand_device_ready(struct mtd_info *mtd)
|
|||
static struct mtd_partition db1200_nand_parts[] = {
|
||||
{
|
||||
.name = "NAND FS 0",
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
.size = 8 * 1024 * 1024,
|
||||
},
|
||||
{
|
||||
.name = "NAND FS 1",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = MTDPART_SIZ_FULL
|
||||
},
|
||||
};
|
||||
|
@ -395,7 +395,7 @@ static void db1200_mmcled_set(struct led_classdev *led,
|
|||
}
|
||||
|
||||
static struct led_classdev db1200_mmc_led = {
|
||||
.brightness_set = db1200_mmcled_set,
|
||||
.brightness_set = db1200_mmcled_set,
|
||||
};
|
||||
|
||||
/* -- */
|
||||
|
@ -463,7 +463,7 @@ static void pb1200_mmc1led_set(struct led_classdev *led,
|
|||
}
|
||||
|
||||
static struct led_classdev pb1200_mmc1_led = {
|
||||
.brightness_set = pb1200_mmc1led_set,
|
||||
.brightness_set = pb1200_mmc1led_set,
|
||||
};
|
||||
|
||||
static void pb1200_mmc1_set_power(void *mmc_host, int state)
|
||||
|
@ -526,7 +526,7 @@ static struct resource au1200_mmc0_resources[] = {
|
|||
}
|
||||
};
|
||||
|
||||
static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32);
|
||||
static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32);
|
||||
|
||||
static struct platform_device db1200_mmc0_dev = {
|
||||
.name = "au1xxx-mmc",
|
||||
|
@ -601,7 +601,7 @@ static int db1200fb_panel_shutdown(void)
|
|||
static struct au1200fb_platdata db1200fb_pd = {
|
||||
.panel_index = db1200fb_panel_index,
|
||||
.panel_init = db1200fb_panel_init,
|
||||
.panel_shutdown = db1200fb_panel_shutdown,
|
||||
.panel_shutdown = db1200fb_panel_shutdown,
|
||||
};
|
||||
|
||||
static struct resource au1200_lcd_res[] = {
|
||||
|
@ -772,11 +772,11 @@ static int __init pb1200_res_fixup(void)
|
|||
}
|
||||
|
||||
db1200_nand_res[0].start = PB1200_NAND_PHYS_ADDR;
|
||||
db1200_nand_res[0].end = PB1200_NAND_PHYS_ADDR + 0xff;
|
||||
db1200_nand_res[0].end = PB1200_NAND_PHYS_ADDR + 0xff;
|
||||
db1200_ide_res[0].start = PB1200_IDE_PHYS_ADDR;
|
||||
db1200_ide_res[0].end = PB1200_IDE_PHYS_ADDR + DB1200_IDE_PHYS_LEN - 1;
|
||||
db1200_ide_res[0].end = PB1200_IDE_PHYS_ADDR + DB1200_IDE_PHYS_LEN - 1;
|
||||
db1200_eth_res[0].start = PB1200_ETH_PHYS_ADDR;
|
||||
db1200_eth_res[0].end = PB1200_ETH_PHYS_ADDR + 0xff;
|
||||
db1200_eth_res[0].end = PB1200_ETH_PHYS_ADDR + 0xff;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -797,7 +797,7 @@ int __init db1200_dev_setup(void)
|
|||
irq_set_irq_type(AU1200_GPIO7_INT, IRQ_TYPE_LEVEL_LOW);
|
||||
bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT);
|
||||
|
||||
/* insert/eject pairs: one of both is always screaming. To avoid
|
||||
/* insert/eject pairs: one of both is always screaming. To avoid
|
||||
* issues they must not be automatically enabled when initially
|
||||
* requested.
|
||||
*/
|
||||
|
@ -813,7 +813,7 @@ int __init db1200_dev_setup(void)
|
|||
spi_register_board_info(db1200_spi_devs,
|
||||
ARRAY_SIZE(db1200_i2c_devs));
|
||||
|
||||
/* SWITCHES: S6.8 I2C/SPI selector (OFF=I2C ON=SPI)
|
||||
/* SWITCHES: S6.8 I2C/SPI selector (OFF=I2C ON=SPI)
|
||||
* S6.7 AC97/I2S selector (OFF=AC97 ON=I2S)
|
||||
* or S12 on the PB1200.
|
||||
*/
|
||||
|
|
|
@ -80,7 +80,7 @@ static int db1300_dev_pins[] __initdata = {
|
|||
AU1300_PIN_PSC0D1,
|
||||
AU1300_PIN_PSC1SYNC0, AU1300_PIN_PSC1SYNC1, AU1300_PIN_PSC1D0,
|
||||
AU1300_PIN_PSC1D1,
|
||||
AU1300_PIN_PSC2SYNC0, AU1300_PIN_PSC2D0,
|
||||
AU1300_PIN_PSC2SYNC0, AU1300_PIN_PSC2D0,
|
||||
AU1300_PIN_PSC2D1,
|
||||
AU1300_PIN_PSC3SYNC0, AU1300_PIN_PSC3SYNC1, AU1300_PIN_PSC3D0,
|
||||
AU1300_PIN_PSC3D1,
|
||||
|
@ -143,12 +143,12 @@ static int au1300_nand_device_ready(struct mtd_info *mtd)
|
|||
static struct mtd_partition db1300_nand_parts[] = {
|
||||
{
|
||||
.name = "NAND FS 0",
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
.size = 8 * 1024 * 1024,
|
||||
},
|
||||
{
|
||||
.name = "NAND FS 1",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = MTDPART_SIZ_FULL
|
||||
},
|
||||
};
|
||||
|
@ -487,7 +487,7 @@ static void db1300_mmcled_set(struct led_classdev *led,
|
|||
}
|
||||
|
||||
static struct led_classdev db1300_mmc_led = {
|
||||
.brightness_set = db1300_mmcled_set,
|
||||
.brightness_set = db1300_mmcled_set,
|
||||
};
|
||||
|
||||
struct au1xmmc_platform_data db1300_sd1_platdata = {
|
||||
|
@ -646,7 +646,7 @@ static int db1300fb_panel_shutdown(void)
|
|||
static struct au1200fb_platdata db1300fb_pd = {
|
||||
.panel_index = db1300fb_panel_index,
|
||||
.panel_init = db1300fb_panel_init,
|
||||
.panel_shutdown = db1300fb_panel_shutdown,
|
||||
.panel_shutdown = db1300fb_panel_shutdown,
|
||||
};
|
||||
|
||||
static struct resource au1300_lcd_res[] = {
|
||||
|
|
|
@ -67,7 +67,7 @@ int __init db1550_board_setup(void)
|
|||
bcsr_init(PB1550_BCSR_PHYS_ADDR,
|
||||
PB1550_BCSR_PHYS_ADDR + PB1550_BCSR_HEXLED_OFS);
|
||||
|
||||
pr_info("Alchemy/AMD %s Board, CPLD Rev %d Board-ID %d " \
|
||||
pr_info("Alchemy/AMD %s Board, CPLD Rev %d Board-ID %d " \
|
||||
"Daughtercard ID %d\n", get_system_type(),
|
||||
(whoami >> 4) & 0xf, (whoami >> 8) & 0xf, whoami & 0xf);
|
||||
|
||||
|
@ -80,7 +80,7 @@ int __init db1550_board_setup(void)
|
|||
static struct mtd_partition db1550_spiflash_parts[] = {
|
||||
{
|
||||
.name = "spi_flash",
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
.size = MTDPART_SIZ_FULL,
|
||||
},
|
||||
};
|
||||
|
@ -151,12 +151,12 @@ static int au1550_nand_device_ready(struct mtd_info *mtd)
|
|||
static struct mtd_partition db1550_nand_parts[] = {
|
||||
{
|
||||
.name = "NAND FS 0",
|
||||
.offset = 0,
|
||||
.offset = 0,
|
||||
.size = 8 * 1024 * 1024,
|
||||
},
|
||||
{
|
||||
.name = "NAND FS 1",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = MTDPART_SIZ_FULL
|
||||
},
|
||||
};
|
||||
|
@ -495,10 +495,10 @@ static void __init db1550_devices(void)
|
|||
{
|
||||
alchemy_gpio_direction_output(203, 0); /* red led on */
|
||||
|
||||
irq_set_irq_type(AU1550_GPIO0_INT, IRQ_TYPE_EDGE_BOTH); /* CD0# */
|
||||
irq_set_irq_type(AU1550_GPIO1_INT, IRQ_TYPE_EDGE_BOTH); /* CD1# */
|
||||
irq_set_irq_type(AU1550_GPIO3_INT, IRQ_TYPE_LEVEL_LOW); /* CARD0# */
|
||||
irq_set_irq_type(AU1550_GPIO5_INT, IRQ_TYPE_LEVEL_LOW); /* CARD1# */
|
||||
irq_set_irq_type(AU1550_GPIO0_INT, IRQ_TYPE_EDGE_BOTH); /* CD0# */
|
||||
irq_set_irq_type(AU1550_GPIO1_INT, IRQ_TYPE_EDGE_BOTH); /* CD1# */
|
||||
irq_set_irq_type(AU1550_GPIO3_INT, IRQ_TYPE_LEVEL_LOW); /* CARD0# */
|
||||
irq_set_irq_type(AU1550_GPIO5_INT, IRQ_TYPE_LEVEL_LOW); /* CARD1# */
|
||||
irq_set_irq_type(AU1550_GPIO21_INT, IRQ_TYPE_LEVEL_LOW); /* STSCHG0# */
|
||||
irq_set_irq_type(AU1550_GPIO22_INT, IRQ_TYPE_LEVEL_LOW); /* STSCHG1# */
|
||||
|
||||
|
@ -539,7 +539,7 @@ static void __init pb1550_devices(void)
|
|||
|
||||
/* Pb1550, like all others, also has statuschange irqs; however they're
|
||||
* wired up on one of the Au1550's shared GPIO201_205 line, which also
|
||||
* services the PCMCIA card interrupts. So we ignore statuschange and
|
||||
* services the PCMCIA card interrupts. So we ignore statuschange and
|
||||
* use the GPIO201_205 exclusively for card interrupts, since a) pcmcia
|
||||
* drivers are used to shared irqs and b) statuschange isn't really use-
|
||||
* ful anyway.
|
||||
|
|
|
@ -194,7 +194,7 @@ static ssize_t db1x_pmattr_store(struct kobject *kobj,
|
|||
}
|
||||
|
||||
#define ATTR(x) \
|
||||
static struct kobj_attribute x##_attribute = \
|
||||
static struct kobj_attribute x##_attribute = \
|
||||
__ATTR(x, 0664, db1x_pmattr_show, \
|
||||
db1x_pmattr_store);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Texas Instruments AR7
|
||||
#
|
||||
platform-$(CONFIG_AR7) += ar7/
|
||||
cflags-$(CONFIG_AR7) += -I$(srctree)/arch/mips/include/asm/mach-ar7
|
||||
load-$(CONFIG_AR7) += 0xffffffff94100000
|
||||
platform-$(CONFIG_AR7) += ar7/
|
||||
cflags-$(CONFIG_AR7) += -I$(srctree)/arch/mips/include/asm/mach-ar7
|
||||
load-$(CONFIG_AR7) += 0xffffffff94100000
|
||||
|
|
|
@ -492,11 +492,11 @@ static struct gpio_led gt701_leds[] = {
|
|||
.active_low = 1,
|
||||
.default_trigger = "default-on",
|
||||
},
|
||||
{
|
||||
.name = "ethernet",
|
||||
.gpio = 10,
|
||||
.active_low = 1,
|
||||
},
|
||||
{
|
||||
.name = "ethernet",
|
||||
.gpio = 10,
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_led_platform_data ar7_led_data;
|
||||
|
@ -512,7 +512,7 @@ static void __init detect_leds(void)
|
|||
{
|
||||
char *prid, *usb_prod;
|
||||
|
||||
/* Default LEDs */
|
||||
/* Default LEDs */
|
||||
ar7_led_data.num_leds = ARRAY_SIZE(default_leds);
|
||||
ar7_led_data.leds = default_leds;
|
||||
|
||||
|
|
|
@ -198,7 +198,7 @@ static void __init ar934x_clocks_init(void)
|
|||
dpll_base = ioremap(AR934X_SRIF_BASE, AR934X_SRIF_SIZE);
|
||||
|
||||
bootstrap = ath79_reset_rr(AR934X_RESET_REG_BOOTSTRAP);
|
||||
if (bootstrap & AR934X_BOOTSTRAP_REF_CLK_40)
|
||||
if (bootstrap & AR934X_BOOTSTRAP_REF_CLK_40)
|
||||
ath79_ref_clk.rate = 40 * 1000 * 1000;
|
||||
else
|
||||
ath79_ref_clk.rate = 25 * 1000 * 1000;
|
||||
|
|
|
@ -69,7 +69,7 @@ static struct spi_board_info ap121_spi_info[] = {
|
|||
|
||||
static struct ath79_spi_platform_data ap121_spi_data = {
|
||||
.bus_num = 0,
|
||||
.num_chipselect = 1,
|
||||
.num_chipselect = 1,
|
||||
};
|
||||
|
||||
static void __init ap121_setup(void)
|
||||
|
|
|
@ -78,7 +78,7 @@ static struct spi_board_info ap81_spi_info[] = {
|
|||
|
||||
static struct ath79_spi_platform_data ap81_spi_data = {
|
||||
.bus_num = 0,
|
||||
.num_chipselect = 1,
|
||||
.num_chipselect = 1,
|
||||
};
|
||||
|
||||
static void __init ap81_setup(void)
|
||||
|
|
|
@ -87,7 +87,7 @@ static struct spi_board_info db120_spi_info[] = {
|
|||
|
||||
static struct ath79_spi_platform_data db120_spi_data = {
|
||||
.bus_num = 0,
|
||||
.num_chipselect = 1,
|
||||
.num_chipselect = 1,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
#define PB44_KEYS_DEBOUNCE_INTERVAL (3 * PB44_KEYS_POLL_INTERVAL)
|
||||
|
||||
static struct i2c_gpio_platform_data pb44_i2c_gpio_data = {
|
||||
.sda_pin = PB44_GPIO_I2C_SDA,
|
||||
.scl_pin = PB44_GPIO_I2C_SCL,
|
||||
.sda_pin = PB44_GPIO_I2C_SDA,
|
||||
.scl_pin = PB44_GPIO_I2C_SCL,
|
||||
};
|
||||
|
||||
static struct platform_device pb44_i2c_gpio_device = {
|
||||
|
@ -53,7 +53,7 @@ static struct pcf857x_platform_data pb44_pcf857x_data = {
|
|||
static struct i2c_board_info pb44_i2c_board_info[] __initdata = {
|
||||
{
|
||||
I2C_BOARD_INFO("pcf8575", 0x20),
|
||||
.platform_data = &pb44_pcf857x_data,
|
||||
.platform_data = &pb44_pcf857x_data,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
# under Linux.
|
||||
#
|
||||
|
||||
obj-y += irq.o nvram.o prom.o serial.o setup.o time.o sprom.o
|
||||
obj-y += irq.o nvram.o prom.o serial.o setup.o time.o sprom.o
|
||||
obj-$(CONFIG_BCM47XX_SSB) += wgt634u.o
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org>
|
||||
* Copyright (C) 2010-2011 Hauke Mehrtens <hauke@hauke-m.de>
|
||||
*
|
||||
* 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
|
||||
* 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.
|
||||
*/
|
||||
|
|
|
@ -60,8 +60,8 @@ static int get_nvram_var(const char *prefix, const char *postfix,
|
|||
|
||||
#define NVRAM_READ_VAL(type) \
|
||||
static void nvram_read_ ## type (const char *prefix, \
|
||||
const char *postfix, const char *name, \
|
||||
type *val, type allset, bool fallback) \
|
||||
const char *postfix, const char *name, \
|
||||
type *val, type allset, bool fallback) \
|
||||
{ \
|
||||
char buf[100]; \
|
||||
int err; \
|
||||
|
|
|
@ -36,13 +36,13 @@ static struct gpio_led wgt634u_leds[] = {
|
|||
};
|
||||
|
||||
static struct gpio_led_platform_data wgt634u_led_data = {
|
||||
.num_leds = ARRAY_SIZE(wgt634u_leds),
|
||||
.leds = wgt634u_leds,
|
||||
.num_leds = ARRAY_SIZE(wgt634u_leds),
|
||||
.leds = wgt634u_leds,
|
||||
};
|
||||
|
||||
static struct platform_device wgt634u_gpio_leds = {
|
||||
.name = "leds-gpio",
|
||||
.id = -1,
|
||||
.name = "leds-gpio",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &wgt634u_led_data,
|
||||
}
|
||||
|
@ -53,35 +53,35 @@ static struct platform_device wgt634u_gpio_leds = {
|
|||
firmware. */
|
||||
static struct mtd_partition wgt634u_partitions[] = {
|
||||
{
|
||||
.name = "cfe",
|
||||
.offset = 0,
|
||||
.size = 0x60000, /* 384k */
|
||||
.mask_flags = MTD_WRITEABLE /* force read-only */
|
||||
.name = "cfe",
|
||||
.offset = 0,
|
||||
.size = 0x60000, /* 384k */
|
||||
.mask_flags = MTD_WRITEABLE /* force read-only */
|
||||
},
|
||||
{
|
||||
.name = "config",
|
||||
.name = "config",
|
||||
.offset = 0x60000,
|
||||
.size = 0x20000 /* 128k */
|
||||
.size = 0x20000 /* 128k */
|
||||
},
|
||||
{
|
||||
.name = "linux",
|
||||
.name = "linux",
|
||||
.offset = 0x80000,
|
||||
.size = 0x140000 /* 1280k */
|
||||
.size = 0x140000 /* 1280k */
|
||||
},
|
||||
{
|
||||
.name = "jffs",
|
||||
.name = "jffs",
|
||||
.offset = 0x1c0000,
|
||||
.size = 0x620000 /* 6272k */
|
||||
.size = 0x620000 /* 6272k */
|
||||
},
|
||||
{
|
||||
.name = "nvram",
|
||||
.name = "nvram",
|
||||
.offset = 0x7e0000,
|
||||
.size = 0x20000 /* 128k */
|
||||
.size = 0x20000 /* 128k */
|
||||
},
|
||||
};
|
||||
|
||||
static struct physmap_flash_data wgt634u_flash_data = {
|
||||
.parts = wgt634u_partitions,
|
||||
.parts = wgt634u_partitions,
|
||||
.nr_parts = ARRAY_SIZE(wgt634u_partitions)
|
||||
};
|
||||
|
||||
|
@ -90,9 +90,9 @@ static struct resource wgt634u_flash_resource = {
|
|||
};
|
||||
|
||||
static struct platform_device wgt634u_flash = {
|
||||
.name = "physmap-flash",
|
||||
.id = 0,
|
||||
.dev = { .platform_data = &wgt634u_flash_data, },
|
||||
.name = "physmap-flash",
|
||||
.id = 0,
|
||||
.dev = { .platform_data = &wgt634u_flash_data, },
|
||||
.resource = &wgt634u_flash_resource,
|
||||
.num_resources = 1,
|
||||
};
|
||||
|
|
|
@ -406,9 +406,9 @@ static struct board_info __initdata board_FAST2404 = {
|
|||
.expected_cpu_id = 0x6348,
|
||||
|
||||
.has_uart0 = 1,
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
|
||||
.enet0 = {
|
||||
.has_phy = 1,
|
||||
|
@ -591,22 +591,22 @@ static struct board_info __initdata board_96358vw2 = {
|
|||
};
|
||||
|
||||
static struct board_info __initdata board_AGPFS0 = {
|
||||
.name = "AGPF-S0",
|
||||
.expected_cpu_id = 0x6358,
|
||||
.name = "AGPF-S0",
|
||||
.expected_cpu_id = 0x6358,
|
||||
|
||||
.has_uart0 = 1,
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
|
||||
.enet0 = {
|
||||
.has_phy = 1,
|
||||
.use_internal_phy = 1,
|
||||
.has_phy = 1,
|
||||
.use_internal_phy = 1,
|
||||
},
|
||||
|
||||
.enet1 = {
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
|
||||
.has_ohci0 = 1,
|
||||
|
@ -677,7 +677,7 @@ static struct ssb_sprom bcm63xx_sprom = {
|
|||
.revision = 0x02,
|
||||
.board_rev = 0x17,
|
||||
.country_code = 0x0,
|
||||
.ant_available_bg = 0x3,
|
||||
.ant_available_bg = 0x3,
|
||||
.pa0b0 = 0x15ae,
|
||||
.pa0b1 = 0xfa85,
|
||||
.pa0b2 = 0xfe8d,
|
||||
|
|
|
@ -24,7 +24,7 @@ strip-flags := $(addprefix --remove-section=,$(drop-sections))
|
|||
hostprogs-y := elf2ecoff
|
||||
|
||||
targets := vmlinux.ecoff
|
||||
quiet_cmd_ecoff = ECOFF $@
|
||||
quiet_cmd_ecoff = ECOFF $@
|
||||
cmd_ecoff = $(obj)/elf2ecoff $(VMLINUX) $@ $(e2eflag)
|
||||
$(obj)/vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) FORCE
|
||||
$(call if_changed,ecoff)
|
||||
|
|
|
@ -51,7 +51,7 @@ $(obj)/vmlinux.bin.z: $(obj)/vmlinux.bin FORCE
|
|||
|
||||
targets += piggy.o
|
||||
OBJCOPYFLAGS_piggy.o := --add-section=.image=$(obj)/vmlinux.bin.z \
|
||||
--set-section-flags=.image=contents,alloc,load,readonly,data
|
||||
--set-section-flags=.image=contents,alloc,load,readonly,data
|
||||
$(obj)/piggy.o: $(obj)/dummy.o $(obj)/vmlinux.bin.z FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
|
@ -67,9 +67,9 @@ endif
|
|||
|
||||
vmlinuzobjs-y += $(obj)/piggy.o
|
||||
|
||||
quiet_cmd_zld = LD $@
|
||||
quiet_cmd_zld = LD $@
|
||||
cmd_zld = $(LD) $(LDFLAGS) -Ttext $(VMLINUZ_LOAD_ADDRESS) -T $< $(vmlinuzobjs-y) -o $@
|
||||
quiet_cmd_strip = STRIP $@
|
||||
quiet_cmd_strip = STRIP $@
|
||||
cmd_strip = $(STRIP) -s $@
|
||||
vmlinuz: $(src)/ld.script $(vmlinuzobjs-y) $(obj)/calc_vmlinuz_load_addr
|
||||
$(call cmd,zld)
|
||||
|
@ -96,7 +96,7 @@ quiet_cmd_32 = OBJCOPY $@
|
|||
vmlinuz.32: vmlinuz
|
||||
$(call cmd,32)
|
||||
|
||||
quiet_cmd_ecoff = ECOFF $@
|
||||
quiet_cmd_ecoff = ECOFF $@
|
||||
cmd_ecoff = $< $(VMLINUZ) $@ $(e2eflag)
|
||||
vmlinuz.ecoff: $(obj)/../elf2ecoff $(VMLINUZ)
|
||||
$(call cmd,ecoff)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* Copyright (C) 2010 "Wu Zhangjin" <wuzhangjin@gmail.com>
|
||||
*
|
||||
* 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
|
||||
* 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.
|
||||
*/
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* Copyright (C) 2009 Lemote, Inc.
|
||||
* Author: Wu Zhangjin <wuzhangjin@gmail.com>
|
||||
*
|
||||
* 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
|
||||
* 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.
|
||||
*/
|
||||
|
|
|
@ -32,8 +32,8 @@ start:
|
|||
bne a2, a0, 1b
|
||||
addiu a0, a0, 4
|
||||
|
||||
PTR_LA a0, (.heap) /* heap address */
|
||||
PTR_LA sp, (.stack + 8192) /* stack address */
|
||||
PTR_LA a0, (.heap) /* heap address */
|
||||
PTR_LA sp, (.stack + 8192) /* stack address */
|
||||
|
||||
PTR_LA ra, 2f
|
||||
PTR_LA k0, decompress_kernel
|
||||
|
|
|
@ -2,48 +2,48 @@
|
|||
* Some ECOFF definitions.
|
||||
*/
|
||||
typedef struct filehdr {
|
||||
unsigned short f_magic; /* magic number */
|
||||
unsigned short f_nscns; /* number of sections */
|
||||
long f_timdat; /* time & date stamp */
|
||||
long f_symptr; /* file pointer to symbolic header */
|
||||
long f_nsyms; /* sizeof(symbolic hdr) */
|
||||
unsigned short f_opthdr; /* sizeof(optional hdr) */
|
||||
unsigned short f_flags; /* flags */
|
||||
unsigned short f_magic; /* magic number */
|
||||
unsigned short f_nscns; /* number of sections */
|
||||
long f_timdat; /* time & date stamp */
|
||||
long f_symptr; /* file pointer to symbolic header */
|
||||
long f_nsyms; /* sizeof(symbolic hdr) */
|
||||
unsigned short f_opthdr; /* sizeof(optional hdr) */
|
||||
unsigned short f_flags; /* flags */
|
||||
} FILHDR;
|
||||
#define FILHSZ sizeof(FILHDR)
|
||||
#define FILHSZ sizeof(FILHDR)
|
||||
|
||||
#define OMAGIC 0407
|
||||
#define MIPSEBMAGIC 0x160
|
||||
#define MIPSELMAGIC 0x162
|
||||
|
||||
typedef struct scnhdr {
|
||||
char s_name[8]; /* section name */
|
||||
long s_paddr; /* physical address, aliased s_nlib */
|
||||
long s_vaddr; /* virtual address */
|
||||
long s_size; /* section size */
|
||||
long s_scnptr; /* file ptr to raw data for section */
|
||||
long s_relptr; /* file ptr to relocation */
|
||||
long s_lnnoptr; /* file ptr to gp histogram */
|
||||
unsigned short s_nreloc; /* number of relocation entries */
|
||||
unsigned short s_nlnno; /* number of gp histogram entries */
|
||||
long s_flags; /* flags */
|
||||
char s_name[8]; /* section name */
|
||||
long s_paddr; /* physical address, aliased s_nlib */
|
||||
long s_vaddr; /* virtual address */
|
||||
long s_size; /* section size */
|
||||
long s_scnptr; /* file ptr to raw data for section */
|
||||
long s_relptr; /* file ptr to relocation */
|
||||
long s_lnnoptr; /* file ptr to gp histogram */
|
||||
unsigned short s_nreloc; /* number of relocation entries */
|
||||
unsigned short s_nlnno; /* number of gp histogram entries */
|
||||
long s_flags; /* flags */
|
||||
} SCNHDR;
|
||||
#define SCNHSZ sizeof(SCNHDR)
|
||||
#define SCNROUND ((long)16)
|
||||
|
||||
typedef struct aouthdr {
|
||||
short magic; /* see above */
|
||||
short vstamp; /* version stamp */
|
||||
long tsize; /* text size in bytes, padded to DW bdry*/
|
||||
long dsize; /* initialized data " " */
|
||||
long bsize; /* uninitialized data " " */
|
||||
long entry; /* entry pt. */
|
||||
long text_start; /* base of text used for this file */
|
||||
long data_start; /* base of data used for this file */
|
||||
long bss_start; /* base of bss used for this file */
|
||||
long gprmask; /* general purpose register mask */
|
||||
long cprmask[4]; /* co-processor register masks */
|
||||
long gp_value; /* the gp value used for this object */
|
||||
short magic; /* see above */
|
||||
short vstamp; /* version stamp */
|
||||
long tsize; /* text size in bytes, padded to DW bdry*/
|
||||
long dsize; /* initialized data " " */
|
||||
long bsize; /* uninitialized data " " */
|
||||
long entry; /* entry pt. */
|
||||
long text_start; /* base of text used for this file */
|
||||
long data_start; /* base of data used for this file */
|
||||
long bss_start; /* base of bss used for this file */
|
||||
long gprmask; /* general purpose register mask */
|
||||
long cprmask[4]; /* co-processor register masks */
|
||||
long gp_value; /* the gp value used for this object */
|
||||
} AOUTHDR;
|
||||
#define AOUTHSZ sizeof(AOUTHDR)
|
||||
|
||||
|
@ -51,7 +51,7 @@ typedef struct aouthdr {
|
|||
#define NMAGIC 0410
|
||||
#define ZMAGIC 0413
|
||||
#define SMAGIC 0411
|
||||
#define LIBMAGIC 0443
|
||||
#define LIBMAGIC 0443
|
||||
|
||||
#define N_TXTOFF(f, a) \
|
||||
((a).magic == ZMAGIC || (a).magic == LIBMAGIC ? 0 : \
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
/* elf2ecoff.c
|
||||
|
||||
This program converts an elf executable to an ECOFF executable.
|
||||
No symbol table is retained. This is useful primarily in building
|
||||
No symbol table is retained. This is useful primarily in building
|
||||
net-bootable kernels for machines (e.g., DECstation and Alpha) which
|
||||
only support the ECOFF object file format. */
|
||||
|
||||
|
@ -341,7 +341,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
/* Figure out if we can cram the program header into an ECOFF
|
||||
header... Basically, we can't handle anything but loadable
|
||||
segments, but we can ignore some kinds of segments. We can't
|
||||
segments, but we can ignore some kinds of segments. We can't
|
||||
handle holes in the address space. Segments may be out of order,
|
||||
so we sort them first. */
|
||||
|
||||
|
@ -514,7 +514,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
for (i = 0; i < nosecs; i++) {
|
||||
printf
|
||||
("Section %d: %s phys %lx size %lx file offset %lx\n",
|
||||
("Section %d: %s phys %lx size %lx file offset %lx\n",
|
||||
i, esecs[i].s_name, esecs[i].s_paddr,
|
||||
esecs[i].s_size, esecs[i].s_scnptr);
|
||||
}
|
||||
|
@ -551,7 +551,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
/*
|
||||
* Copy the loadable sections. Zero-fill any gaps less than 64k;
|
||||
* Copy the loadable sections. Zero-fill any gaps less than 64k;
|
||||
* complain about any zero-filling, and die if we're asked to zero-fill
|
||||
* more than 64k.
|
||||
*/
|
||||
|
|
|
@ -17,7 +17,7 @@ obj-y += dma-octeon.o flash_setup.o
|
|||
obj-y += octeon-memcpy.o
|
||||
obj-y += executive/
|
||||
|
||||
obj-$(CONFIG_SMP) += smp.o
|
||||
obj-$(CONFIG_SMP) += smp.o
|
||||
|
||||
DTS_FILES = octeon_3xxx.dts octeon_68xx.dts
|
||||
DTB_FILES = $(patsubst %.dts, %.dtb, $(DTS_FILES))
|
||||
|
|
|
@ -155,8 +155,8 @@ int cvmx_bootmem_init(void *mem_desc_ptr)
|
|||
*
|
||||
* Linux 64 bit: Set XKPHYS bit
|
||||
* Linux 32 bit: use mmap to create mapping, use virtual address
|
||||
* CVMX 64 bit: use physical address directly
|
||||
* CVMX 32 bit: use physical address directly
|
||||
* CVMX 64 bit: use physical address directly
|
||||
* CVMX 32 bit: use physical address directly
|
||||
*
|
||||
* Note that the CVMX environment assumes the use of 1-1 TLB
|
||||
* mappings so that the physical addresses can be used
|
||||
|
@ -398,7 +398,7 @@ error_out:
|
|||
int __cvmx_bootmem_phy_free(uint64_t phy_addr, uint64_t size, uint32_t flags)
|
||||
{
|
||||
uint64_t cur_addr;
|
||||
uint64_t prev_addr = 0; /* zero is invalid */
|
||||
uint64_t prev_addr = 0; /* zero is invalid */
|
||||
int retval = 0;
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -424,7 +424,7 @@ int __cvmx_bootmem_phy_free(uint64_t phy_addr, uint64_t size, uint32_t flags)
|
|||
if (cur_addr == 0 || phy_addr < cur_addr) {
|
||||
/* add at front of list - special case with changing head ptr */
|
||||
if (cur_addr && phy_addr + size > cur_addr)
|
||||
goto bootmem_free_done; /* error, overlapping section */
|
||||
goto bootmem_free_done; /* error, overlapping section */
|
||||
else if (phy_addr + size == cur_addr) {
|
||||
/* Add to front of existing first block */
|
||||
cvmx_bootmem_phy_set_next(phy_addr,
|
||||
|
@ -611,7 +611,7 @@ int cvmx_bootmem_phy_named_block_free(char *name, uint32_t flags)
|
|||
}
|
||||
|
||||
cvmx_bootmem_unlock();
|
||||
return named_block_ptr != NULL; /* 0 on failure, 1 on success */
|
||||
return named_block_ptr != NULL; /* 0 on failure, 1 on success */
|
||||
}
|
||||
|
||||
int64_t cvmx_bootmem_phy_named_block_alloc(uint64_t size, uint64_t min_addr,
|
||||
|
|
|
@ -203,10 +203,10 @@ int cvmx_helper_board_get_mii_address(int ipd_port)
|
|||
* enumeration from the bootloader.
|
||||
*
|
||||
* @ipd_port: IPD input port associated with the port we want to get link
|
||||
* status for.
|
||||
* status for.
|
||||
*
|
||||
* Returns The ports link status. If the link isn't fully resolved, this must
|
||||
* return zero.
|
||||
* return zero.
|
||||
*/
|
||||
cvmx_helper_link_info_t __cvmx_helper_board_link_get(int ipd_port)
|
||||
{
|
||||
|
@ -357,16 +357,16 @@ cvmx_helper_link_info_t __cvmx_helper_board_link_get(int ipd_port)
|
|||
result.s.link_up = 1;
|
||||
result.s.full_duplex = ((phy_status >> 13) & 1);
|
||||
switch ((phy_status >> 14) & 3) {
|
||||
case 0: /* 10 Mbps */
|
||||
case 0: /* 10 Mbps */
|
||||
result.s.speed = 10;
|
||||
break;
|
||||
case 1: /* 100 Mbps */
|
||||
case 1: /* 100 Mbps */
|
||||
result.s.speed = 100;
|
||||
break;
|
||||
case 2: /* 1 Gbps */
|
||||
case 2: /* 1 Gbps */
|
||||
result.s.speed = 1000;
|
||||
break;
|
||||
case 3: /* Illegal */
|
||||
case 3: /* Illegal */
|
||||
result.u64 = 0;
|
||||
break;
|
||||
}
|
||||
|
@ -391,16 +391,16 @@ cvmx_helper_link_info_t __cvmx_helper_board_link_get(int ipd_port)
|
|||
result.s.link_up = inband_status.s.status;
|
||||
result.s.full_duplex = inband_status.s.duplex;
|
||||
switch (inband_status.s.speed) {
|
||||
case 0: /* 10 Mbps */
|
||||
case 0: /* 10 Mbps */
|
||||
result.s.speed = 10;
|
||||
break;
|
||||
case 1: /* 100 Mbps */
|
||||
case 1: /* 100 Mbps */
|
||||
result.s.speed = 100;
|
||||
break;
|
||||
case 2: /* 1 Gbps */
|
||||
case 2: /* 1 Gbps */
|
||||
result.s.speed = 1000;
|
||||
break;
|
||||
case 3: /* Illegal */
|
||||
case 3: /* Illegal */
|
||||
result.u64 = 0;
|
||||
break;
|
||||
}
|
||||
|
@ -429,9 +429,9 @@ cvmx_helper_link_info_t __cvmx_helper_board_link_get(int ipd_port)
|
|||
*
|
||||
* @phy_addr: The address of the PHY to program
|
||||
* @enable_autoneg:
|
||||
* Non zero if you want to enable auto-negotiation.
|
||||
* Non zero if you want to enable auto-negotiation.
|
||||
* @link_info: Link speed to program. If the speed is zero and auto-negotiation
|
||||
* is enabled, all possible negotiation speeds are advertised.
|
||||
* is enabled, all possible negotiation speeds are advertised.
|
||||
*
|
||||
* Returns Zero on success, negative on failure
|
||||
*/
|
||||
|
@ -607,10 +607,10 @@ int cvmx_helper_board_link_set_phy(int phy_addr,
|
|||
*
|
||||
* @interface: Interface to probe
|
||||
* @supported_ports:
|
||||
* Number of ports Octeon supports.
|
||||
* Number of ports Octeon supports.
|
||||
*
|
||||
* Returns Number of ports the actual board supports. Many times this will
|
||||
* simple be "support_ports".
|
||||
* simple be "support_ports".
|
||||
*/
|
||||
int __cvmx_helper_board_interface_probe(int interface, int supported_ports)
|
||||
{
|
||||
|
|
|
@ -79,10 +79,10 @@ void cvmx_helper_qlm_jtag_init(void)
|
|||
* @qlm: QLM to shift value into
|
||||
* @bits: Number of bits to shift in (1-32).
|
||||
* @data: Data to shift in. Bit 0 enters the chain first, followed by
|
||||
* bit 1, etc.
|
||||
* bit 1, etc.
|
||||
*
|
||||
* Returns The low order bits of the JTAG chain that shifted out of the
|
||||
* circle.
|
||||
* circle.
|
||||
*/
|
||||
uint32_t cvmx_helper_qlm_jtag_shift(int qlm, int bits, uint32_t data)
|
||||
{
|
||||
|
|
|
@ -131,7 +131,7 @@ void cvmx_helper_rgmii_internal_loopback(int port)
|
|||
* @interface: Interface to setup
|
||||
* @port: Port to setup (0..3)
|
||||
* @cpu_clock_hz:
|
||||
* Chip frequency in Hertz
|
||||
* Chip frequency in Hertz
|
||||
*
|
||||
* Returns Zero on success, negative on failure
|
||||
*/
|
||||
|
@ -409,14 +409,14 @@ int __cvmx_helper_rgmii_link_set(int ipd_port,
|
|||
mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
|
||||
|
||||
/*
|
||||
* Port .en .type .p0mii Configuration
|
||||
* ---- --- ----- ------ -----------------------------------------
|
||||
* X 0 X X All links are disabled.
|
||||
* 0 1 X 0 Port 0 is RGMII
|
||||
* 0 1 X 1 Port 0 is MII
|
||||
* 1 1 0 X Ports 1 and 2 are configured as RGMII ports.
|
||||
* 1 1 1 X Port 1: GMII/MII; Port 2: disabled. GMII or
|
||||
* MII port is selected by GMX_PRT1_CFG[SPEED].
|
||||
* Port .en .type .p0mii Configuration
|
||||
* ---- --- ----- ------ -----------------------------------------
|
||||
* X 0 X X All links are disabled.
|
||||
* 0 1 X 0 Port 0 is RGMII
|
||||
* 0 1 X 1 Port 0 is MII
|
||||
* 1 1 0 X Ports 1 and 2 are configured as RGMII ports.
|
||||
* 1 1 1 X Port 1: GMII/MII; Port 2: disabled. GMII or
|
||||
* MII port is selected by GMX_PRT1_CFG[SPEED].
|
||||
*/
|
||||
|
||||
/* In MII mode, CLK_CNT = 1. */
|
||||
|
@ -464,9 +464,9 @@ int __cvmx_helper_rgmii_link_set(int ipd_port,
|
|||
*
|
||||
* @ipd_port: IPD/PKO port to loopback.
|
||||
* @enable_internal:
|
||||
* Non zero if you want internal loopback
|
||||
* Non zero if you want internal loopback
|
||||
* @enable_external:
|
||||
* Non zero if you want external loopback
|
||||
* Non zero if you want external loopback
|
||||
*
|
||||
* Returns Zero on success, negative on failure.
|
||||
*/
|
||||
|
|
|
@ -523,9 +523,9 @@ int __cvmx_helper_sgmii_link_set(int ipd_port,
|
|||
*
|
||||
* @ipd_port: IPD/PKO port to loopback.
|
||||
* @enable_internal:
|
||||
* Non zero if you want internal loopback
|
||||
* Non zero if you want internal loopback
|
||||
* @enable_external:
|
||||
* Non zero if you want external loopback
|
||||
* Non zero if you want external loopback
|
||||
*
|
||||
* Returns Zero on success, negative on failure.
|
||||
*/
|
||||
|
|
|
@ -160,16 +160,16 @@ cvmx_helper_link_info_t __cvmx_helper_spi_link_get(int ipd_port)
|
|||
result.s.link_up = inband.s.status;
|
||||
result.s.full_duplex = inband.s.duplex;
|
||||
switch (inband.s.speed) {
|
||||
case 0: /* 10 Mbps */
|
||||
case 0: /* 10 Mbps */
|
||||
result.s.speed = 10;
|
||||
break;
|
||||
case 1: /* 100 Mbps */
|
||||
case 1: /* 100 Mbps */
|
||||
result.s.speed = 100;
|
||||
break;
|
||||
case 2: /* 1 Gbps */
|
||||
case 2: /* 1 Gbps */
|
||||
result.s.speed = 1000;
|
||||
break;
|
||||
case 3: /* Illegal */
|
||||
case 3: /* Illegal */
|
||||
result.s.speed = 0;
|
||||
result.s.link_up = 0;
|
||||
break;
|
||||
|
|
|
@ -96,9 +96,9 @@ int cvmx_helper_dump_packet(cvmx_wqe_t *work)
|
|||
uint8_t *end_of_data;
|
||||
|
||||
cvmx_dprintf("Packet Length: %u\n", work->len);
|
||||
cvmx_dprintf(" Input Port: %u\n", work->ipprt);
|
||||
cvmx_dprintf(" QoS: %u\n", work->qos);
|
||||
cvmx_dprintf(" Buffers: %u\n", work->word2.s.bufs);
|
||||
cvmx_dprintf(" Input Port: %u\n", work->ipprt);
|
||||
cvmx_dprintf(" QoS: %u\n", work->qos);
|
||||
cvmx_dprintf(" Buffers: %u\n", work->word2.s.bufs);
|
||||
|
||||
if (work->word2.s.bufs == 0) {
|
||||
union cvmx_ipd_wqe_fpa_queue wqe_pool;
|
||||
|
@ -132,14 +132,14 @@ int cvmx_helper_dump_packet(cvmx_wqe_t *work)
|
|||
while (remaining_bytes) {
|
||||
start_of_buffer =
|
||||
((buffer_ptr.s.addr >> 7) - buffer_ptr.s.back) << 7;
|
||||
cvmx_dprintf(" Buffer Start:%llx\n",
|
||||
cvmx_dprintf(" Buffer Start:%llx\n",
|
||||
(unsigned long long)start_of_buffer);
|
||||
cvmx_dprintf(" Buffer I : %u\n", buffer_ptr.s.i);
|
||||
cvmx_dprintf(" Buffer Back: %u\n", buffer_ptr.s.back);
|
||||
cvmx_dprintf(" Buffer Pool: %u\n", buffer_ptr.s.pool);
|
||||
cvmx_dprintf(" Buffer Data: %llx\n",
|
||||
cvmx_dprintf(" Buffer I : %u\n", buffer_ptr.s.i);
|
||||
cvmx_dprintf(" Buffer Back: %u\n", buffer_ptr.s.back);
|
||||
cvmx_dprintf(" Buffer Pool: %u\n", buffer_ptr.s.pool);
|
||||
cvmx_dprintf(" Buffer Data: %llx\n",
|
||||
(unsigned long long)buffer_ptr.s.addr);
|
||||
cvmx_dprintf(" Buffer Size: %u\n", buffer_ptr.s.size);
|
||||
cvmx_dprintf(" Buffer Size: %u\n", buffer_ptr.s.size);
|
||||
|
||||
cvmx_dprintf("\t\t");
|
||||
data_address = (uint8_t *) cvmx_phys_to_ptr(buffer_ptr.s.addr);
|
||||
|
@ -172,11 +172,11 @@ int cvmx_helper_dump_packet(cvmx_wqe_t *work)
|
|||
*
|
||||
* @queue: Input queue to setup RED on (0-7)
|
||||
* @pass_thresh:
|
||||
* Packets will begin slowly dropping when there are less than
|
||||
* this many packet buffers free in FPA 0.
|
||||
* Packets will begin slowly dropping when there are less than
|
||||
* this many packet buffers free in FPA 0.
|
||||
* @drop_thresh:
|
||||
* All incomming packets will be dropped when there are less
|
||||
* than this many free packet buffers in FPA 0.
|
||||
* All incomming packets will be dropped when there are less
|
||||
* than this many free packet buffers in FPA 0.
|
||||
* Returns Zero on success. Negative on failure
|
||||
*/
|
||||
int cvmx_helper_setup_red_queue(int queue, int pass_thresh, int drop_thresh)
|
||||
|
@ -207,11 +207,11 @@ int cvmx_helper_setup_red_queue(int queue, int pass_thresh, int drop_thresh)
|
|||
* Setup Random Early Drop to automatically begin dropping packets.
|
||||
*
|
||||
* @pass_thresh:
|
||||
* Packets will begin slowly dropping when there are less than
|
||||
* this many packet buffers free in FPA 0.
|
||||
* Packets will begin slowly dropping when there are less than
|
||||
* this many packet buffers free in FPA 0.
|
||||
* @drop_thresh:
|
||||
* All incomming packets will be dropped when there are less
|
||||
* than this many free packet buffers in FPA 0.
|
||||
* All incomming packets will be dropped when there are less
|
||||
* than this many free packet buffers in FPA 0.
|
||||
* Returns Zero on success. Negative on failure
|
||||
*/
|
||||
int cvmx_helper_setup_red(int pass_thresh, int drop_thresh)
|
||||
|
|
|
@ -321,9 +321,9 @@ int __cvmx_helper_xaui_link_set(int ipd_port, cvmx_helper_link_info_t link_info)
|
|||
*
|
||||
* @ipd_port: IPD/PKO port to loopback.
|
||||
* @enable_internal:
|
||||
* Non zero if you want internal loopback
|
||||
* Non zero if you want internal loopback
|
||||
* @enable_external:
|
||||
* Non zero if you want external loopback
|
||||
* Non zero if you want external loopback
|
||||
*
|
||||
* Returns Zero on success, negative on failure.
|
||||
*/
|
||||
|
|
|
@ -111,7 +111,7 @@ int cvmx_helper_ports_on_interface(int interface)
|
|||
* @interface: Interface to probe
|
||||
*
|
||||
* Returns Mode of the interface. Unknown or unsupported interfaces return
|
||||
* DISABLED.
|
||||
* DISABLED.
|
||||
*/
|
||||
cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface)
|
||||
{
|
||||
|
@ -187,7 +187,7 @@ cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface)
|
|||
* the defines in executive-config.h.
|
||||
*
|
||||
* @ipd_port: Port to configure. This follows the IPD numbering, not the
|
||||
* per interface numbering
|
||||
* per interface numbering
|
||||
*
|
||||
* Returns Zero on success, negative on failure
|
||||
*/
|
||||
|
@ -591,7 +591,7 @@ static int __cvmx_helper_packet_hardware_enable(int interface)
|
|||
* Function to adjust internal IPD pointer alignments
|
||||
*
|
||||
* Returns 0 on success
|
||||
* !0 on failure
|
||||
* !0 on failure
|
||||
*/
|
||||
int __cvmx_helper_errata_fix_ipd_ptr_alignment(void)
|
||||
{
|
||||
|
@ -1068,9 +1068,9 @@ int cvmx_helper_link_set(int ipd_port, cvmx_helper_link_info_t link_info)
|
|||
*
|
||||
* @ipd_port: IPD/PKO port to loopback.
|
||||
* @enable_internal:
|
||||
* Non zero if you want internal loopback
|
||||
* Non zero if you want internal loopback
|
||||
* @enable_external:
|
||||
* Non zero if you want external loopback
|
||||
* Non zero if you want external loopback
|
||||
*
|
||||
* Returns Zero on success, negative on failure.
|
||||
*/
|
||||
|
|
|
@ -85,11 +85,11 @@ void __cvmx_interrupt_gmxx_enable(int interface)
|
|||
if (OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN52XX)) {
|
||||
if (mode.s.en) {
|
||||
switch (mode.cn56xx.mode) {
|
||||
case 1: /* XAUI */
|
||||
case 1: /* XAUI */
|
||||
num_ports = 1;
|
||||
break;
|
||||
case 2: /* SGMII */
|
||||
case 3: /* PICMG */
|
||||
case 2: /* SGMII */
|
||||
case 3: /* PICMG */
|
||||
num_ports = 4;
|
||||
break;
|
||||
default: /* Disabled */
|
||||
|
|
|
@ -147,7 +147,7 @@ int cvmx_l2c_set_hw_way_partition(uint32_t mask)
|
|||
mask &= valid_mask;
|
||||
|
||||
/* A UMSK setting which blocks all L2C Ways is an error on some chips */
|
||||
if (mask == valid_mask && !OCTEON_IS_MODEL(OCTEON_CN63XX))
|
||||
if (mask == valid_mask && !OCTEON_IS_MODEL(OCTEON_CN63XX))
|
||||
return -1;
|
||||
|
||||
if (OCTEON_IS_MODEL(OCTEON_CN63XX))
|
||||
|
@ -438,7 +438,7 @@ void cvmx_l2c_flush(void)
|
|||
for (set = 0; set < n_set; set++) {
|
||||
for (assoc = 0; assoc < n_assoc; assoc++) {
|
||||
address = CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
|
||||
(assoc << assoc_shift) | (set << set_shift));
|
||||
(assoc << assoc_shift) | (set << set_shift));
|
||||
CVMX_CACHE_WBIL2I(address, 0);
|
||||
}
|
||||
}
|
||||
|
@ -573,8 +573,8 @@ union __cvmx_l2c_tag {
|
|||
* @index: Index of the cacheline
|
||||
*
|
||||
* Returns The Octeon model specific tag structure. This is
|
||||
* translated by a wrapper function to a generic form that is
|
||||
* easier for applications to use.
|
||||
* translated by a wrapper function to a generic form that is
|
||||
* easier for applications to use.
|
||||
*/
|
||||
static union __cvmx_l2c_tag __read_l2_tag(uint64_t assoc, uint64_t index)
|
||||
{
|
||||
|
@ -618,12 +618,12 @@ static union __cvmx_l2c_tag __read_l2_tag(uint64_t assoc, uint64_t index)
|
|||
".set push\n\t"
|
||||
".set mips64\n\t"
|
||||
".set noreorder\n\t"
|
||||
"sd %[dbg_val], 0(%[dbg_addr])\n\t" /* Enter debug mode, wait for store */
|
||||
"sd %[dbg_val], 0(%[dbg_addr])\n\t" /* Enter debug mode, wait for store */
|
||||
"ld $0, 0(%[dbg_addr])\n\t"
|
||||
"ld %[tag_val], 0(%[tag_addr])\n\t" /* Read L2C tag data */
|
||||
"sd $0, 0(%[dbg_addr])\n\t" /* Exit debug mode, wait for store */
|
||||
"ld %[tag_val], 0(%[tag_addr])\n\t" /* Read L2C tag data */
|
||||
"sd $0, 0(%[dbg_addr])\n\t" /* Exit debug mode, wait for store */
|
||||
"ld $0, 0(%[dbg_addr])\n\t"
|
||||
"cache 9, 0($0)\n\t" /* Invalidate dcache to discard debug data */
|
||||
"cache 9, 0($0)\n\t" /* Invalidate dcache to discard debug data */
|
||||
".set pop"
|
||||
: [tag_val] "=r" (tag_val)
|
||||
: [dbg_addr] "r" (dbg_addr), [dbg_val] "r" (debug_val), [tag_addr] "r" (debug_tag_addr)
|
||||
|
@ -664,10 +664,10 @@ union cvmx_l2c_tag cvmx_l2c_get_tag(uint32_t association, uint32_t index)
|
|||
CVMX_SYNC; /* make sure CVMX_L2C_TADX_TAG is updated */
|
||||
l2c_tadx_tag.u64 = cvmx_read_csr(CVMX_L2C_TADX_TAG(0));
|
||||
|
||||
tag.s.V = l2c_tadx_tag.s.valid;
|
||||
tag.s.D = l2c_tadx_tag.s.dirty;
|
||||
tag.s.L = l2c_tadx_tag.s.lock;
|
||||
tag.s.U = l2c_tadx_tag.s.use;
|
||||
tag.s.V = l2c_tadx_tag.s.valid;
|
||||
tag.s.D = l2c_tadx_tag.s.dirty;
|
||||
tag.s.L = l2c_tadx_tag.s.lock;
|
||||
tag.s.U = l2c_tadx_tag.s.use;
|
||||
tag.s.addr = l2c_tadx_tag.s.tag;
|
||||
} else {
|
||||
union __cvmx_l2c_tag tmp_tag;
|
||||
|
@ -679,34 +679,34 @@ union cvmx_l2c_tag cvmx_l2c_get_tag(uint32_t association, uint32_t index)
|
|||
* as it can represent all models.
|
||||
*/
|
||||
if (OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN56XX)) {
|
||||
tag.s.V = tmp_tag.cn58xx.V;
|
||||
tag.s.D = tmp_tag.cn58xx.D;
|
||||
tag.s.L = tmp_tag.cn58xx.L;
|
||||
tag.s.U = tmp_tag.cn58xx.U;
|
||||
tag.s.V = tmp_tag.cn58xx.V;
|
||||
tag.s.D = tmp_tag.cn58xx.D;
|
||||
tag.s.L = tmp_tag.cn58xx.L;
|
||||
tag.s.U = tmp_tag.cn58xx.U;
|
||||
tag.s.addr = tmp_tag.cn58xx.addr;
|
||||
} else if (OCTEON_IS_MODEL(OCTEON_CN38XX)) {
|
||||
tag.s.V = tmp_tag.cn38xx.V;
|
||||
tag.s.D = tmp_tag.cn38xx.D;
|
||||
tag.s.L = tmp_tag.cn38xx.L;
|
||||
tag.s.U = tmp_tag.cn38xx.U;
|
||||
tag.s.V = tmp_tag.cn38xx.V;
|
||||
tag.s.D = tmp_tag.cn38xx.D;
|
||||
tag.s.L = tmp_tag.cn38xx.L;
|
||||
tag.s.U = tmp_tag.cn38xx.U;
|
||||
tag.s.addr = tmp_tag.cn38xx.addr;
|
||||
} else if (OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN52XX)) {
|
||||
tag.s.V = tmp_tag.cn31xx.V;
|
||||
tag.s.D = tmp_tag.cn31xx.D;
|
||||
tag.s.L = tmp_tag.cn31xx.L;
|
||||
tag.s.U = tmp_tag.cn31xx.U;
|
||||
tag.s.V = tmp_tag.cn31xx.V;
|
||||
tag.s.D = tmp_tag.cn31xx.D;
|
||||
tag.s.L = tmp_tag.cn31xx.L;
|
||||
tag.s.U = tmp_tag.cn31xx.U;
|
||||
tag.s.addr = tmp_tag.cn31xx.addr;
|
||||
} else if (OCTEON_IS_MODEL(OCTEON_CN30XX)) {
|
||||
tag.s.V = tmp_tag.cn30xx.V;
|
||||
tag.s.D = tmp_tag.cn30xx.D;
|
||||
tag.s.L = tmp_tag.cn30xx.L;
|
||||
tag.s.U = tmp_tag.cn30xx.U;
|
||||
tag.s.V = tmp_tag.cn30xx.V;
|
||||
tag.s.D = tmp_tag.cn30xx.D;
|
||||
tag.s.L = tmp_tag.cn30xx.L;
|
||||
tag.s.U = tmp_tag.cn30xx.U;
|
||||
tag.s.addr = tmp_tag.cn30xx.addr;
|
||||
} else if (OCTEON_IS_MODEL(OCTEON_CN50XX)) {
|
||||
tag.s.V = tmp_tag.cn50xx.V;
|
||||
tag.s.D = tmp_tag.cn50xx.D;
|
||||
tag.s.L = tmp_tag.cn50xx.L;
|
||||
tag.s.U = tmp_tag.cn50xx.U;
|
||||
tag.s.V = tmp_tag.cn50xx.V;
|
||||
tag.s.D = tmp_tag.cn50xx.D;
|
||||
tag.s.L = tmp_tag.cn50xx.L;
|
||||
tag.s.U = tmp_tag.cn50xx.U;
|
||||
tag.s.addr = tmp_tag.cn50xx.addr;
|
||||
} else {
|
||||
cvmx_dprintf("Unsupported OCTEON Model in %s\n", __func__);
|
||||
|
@ -865,7 +865,7 @@ void cvmx_l2c_flush_line(uint32_t assoc, uint32_t index)
|
|||
uint64_t address;
|
||||
/* Create the address based on index and association.
|
||||
* Bits<20:17> select the way of the cache block involved in
|
||||
* the operation
|
||||
* the operation
|
||||
* Bits<16:7> of the effect address select the index
|
||||
*/
|
||||
address = CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
|
||||
|
|
|
@ -99,7 +99,7 @@ void cvmx_pko_initialize_global(void)
|
|||
* be called after the FPA has been initialized and filled with pages.
|
||||
*
|
||||
* Returns 0 on success
|
||||
* !0 on failure
|
||||
* !0 on failure
|
||||
*/
|
||||
int cvmx_pko_initialize_local(void)
|
||||
{
|
||||
|
@ -186,19 +186,19 @@ void cvmx_pko_shutdown(void)
|
|||
/**
|
||||
* Configure a output port and the associated queues for use.
|
||||
*
|
||||
* @port: Port to configure.
|
||||
* @port: Port to configure.
|
||||
* @base_queue: First queue number to associate with this port.
|
||||
* @num_queues: Number of queues to associate with this port
|
||||
* @priority: Array of priority levels for each queue. Values are
|
||||
* allowed to be 0-8. A value of 8 get 8 times the traffic
|
||||
* of a value of 1. A value of 0 indicates that no rounds
|
||||
* will be participated in. These priorities can be changed
|
||||
* on the fly while the pko is enabled. A priority of 9
|
||||
* indicates that static priority should be used. If static
|
||||
* priority is used all queues with static priority must be
|
||||
* contiguous starting at the base_queue, and lower numbered
|
||||
* queues have higher priority than higher numbered queues.
|
||||
* There must be num_queues elements in the array.
|
||||
* @priority: Array of priority levels for each queue. Values are
|
||||
* allowed to be 0-8. A value of 8 get 8 times the traffic
|
||||
* of a value of 1. A value of 0 indicates that no rounds
|
||||
* will be participated in. These priorities can be changed
|
||||
* on the fly while the pko is enabled. A priority of 9
|
||||
* indicates that static priority should be used. If static
|
||||
* priority is used all queues with static priority must be
|
||||
* contiguous starting at the base_queue, and lower numbered
|
||||
* queues have higher priority than higher numbered queues.
|
||||
* There must be num_queues elements in the array.
|
||||
*/
|
||||
cvmx_pko_status_t cvmx_pko_config_port(uint64_t port, uint64_t base_queue,
|
||||
uint64_t num_queues,
|
||||
|
@ -440,7 +440,7 @@ void cvmx_pko_show_queue_map()
|
|||
* @port: Port to rate limit
|
||||
* @packets_s: Maximum packet/sec
|
||||
* @burst: Maximum number of packets to burst in a row before rate
|
||||
* limiting cuts in.
|
||||
* limiting cuts in.
|
||||
*
|
||||
* Returns Zero on success, negative on failure
|
||||
*/
|
||||
|
@ -473,7 +473,7 @@ int cvmx_pko_rate_limit_packets(int port, int packets_s, int burst)
|
|||
* @port: Port to rate limit
|
||||
* @bits_s: PKO rate limit in bits/sec
|
||||
* @burst: Maximum number of bits to burst before rate
|
||||
* limiting cuts in.
|
||||
* limiting cuts in.
|
||||
*
|
||||
* Returns Zero on success, negative on failure
|
||||
*/
|
||||
|
|
|
@ -69,7 +69,7 @@ static cvmx_spi_callbacks_t cvmx_spi_callbacks = {
|
|||
/**
|
||||
* Get current SPI4 initialization callbacks
|
||||
*
|
||||
* @callbacks: Pointer to the callbacks structure.to fill
|
||||
* @callbacks: Pointer to the callbacks structure.to fill
|
||||
*
|
||||
* Returns Pointer to cvmx_spi_callbacks_t structure.
|
||||
*/
|
||||
|
@ -92,11 +92,11 @@ void cvmx_spi_set_callbacks(cvmx_spi_callbacks_t *new_callbacks)
|
|||
* Initialize and start the SPI interface.
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* @timeout: Timeout to wait for clock synchronization in seconds
|
||||
* @num_ports: Number of SPI ports to configure
|
||||
*
|
||||
|
@ -138,11 +138,11 @@ int cvmx_spi_start_interface(int interface, cvmx_spi_mode_t mode, int timeout,
|
|||
* with its correspondent system.
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* @timeout: Timeout to wait for clock synchronization in seconds
|
||||
*
|
||||
* Returns Zero on success, negative of failure.
|
||||
|
@ -160,7 +160,7 @@ int cvmx_spi_restart_interface(int interface, cvmx_spi_mode_t mode, int timeout)
|
|||
INVOKE_CB(cvmx_spi_callbacks.reset_cb, interface, mode);
|
||||
|
||||
/* NOTE: Calendar setup is not performed during restart */
|
||||
/* Refer to cvmx_spi_start_interface() for the full sequence */
|
||||
/* Refer to cvmx_spi_start_interface() for the full sequence */
|
||||
|
||||
/* Callback to perform clock detection */
|
||||
INVOKE_CB(cvmx_spi_callbacks.clock_detect_cb, interface, mode, timeout);
|
||||
|
@ -182,11 +182,11 @@ int cvmx_spi_restart_interface(int interface, cvmx_spi_mode_t mode, int timeout)
|
|||
* Callback to perform SPI4 reset
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
*
|
||||
* Returns Zero on success, non-zero error code on failure (will cause
|
||||
* SPI initialization to abort)
|
||||
|
@ -297,11 +297,11 @@ int cvmx_spi_reset_cb(int interface, cvmx_spi_mode_t mode)
|
|||
* Callback to setup calendar and miscellaneous settings before clock detection
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* @num_ports: Number of ports to configure on SPI
|
||||
*
|
||||
* Returns Zero on success, non-zero error code on failure (will cause
|
||||
|
@ -382,7 +382,7 @@ int cvmx_spi_calendar_setup_cb(int interface, cvmx_spi_mode_t mode,
|
|||
stxx_spi4_dat.u64 = 0;
|
||||
/*Minimum needed by dynamic alignment */
|
||||
stxx_spi4_dat.s.alpha = 32;
|
||||
stxx_spi4_dat.s.max_t = 0xFFFF; /*Minimum interval is 0x20 */
|
||||
stxx_spi4_dat.s.max_t = 0xFFFF; /*Minimum interval is 0x20 */
|
||||
cvmx_write_csr(CVMX_STXX_SPI4_DAT(interface),
|
||||
stxx_spi4_dat.u64);
|
||||
|
||||
|
@ -416,11 +416,11 @@ int cvmx_spi_calendar_setup_cb(int interface, cvmx_spi_mode_t mode,
|
|||
* Callback to perform clock detection
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* @timeout: Timeout to wait for clock synchronization in seconds
|
||||
*
|
||||
* Returns Zero on success, non-zero error code on failure (will cause
|
||||
|
@ -494,11 +494,11 @@ int cvmx_spi_clock_detect_cb(int interface, cvmx_spi_mode_t mode, int timeout)
|
|||
* Callback to perform link training
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* @timeout: Timeout to wait for link to be trained (in seconds)
|
||||
*
|
||||
* Returns Zero on success, non-zero error code on failure (will cause
|
||||
|
@ -563,11 +563,11 @@ int cvmx_spi_training_cb(int interface, cvmx_spi_mode_t mode, int timeout)
|
|||
* Callback to perform calendar data synchronization
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* @timeout: Timeout to wait for calendar data in seconds
|
||||
*
|
||||
* Returns Zero on success, non-zero error code on failure (will cause
|
||||
|
@ -620,11 +620,11 @@ int cvmx_spi_calendar_sync_cb(int interface, cvmx_spi_mode_t mode, int timeout)
|
|||
* Callback to handle interface up
|
||||
*
|
||||
* @interface: The identifier of the packet interface to configure and
|
||||
* use as a SPI interface.
|
||||
* use as a SPI interface.
|
||||
* @mode: The operating mode for the SPI interface. The interface
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
* can operate as a full duplex (both Tx and Rx data paths
|
||||
* active) or as a halfplex (either the Tx data path is
|
||||
* active or the Rx data path is active, but not both).
|
||||
*
|
||||
* Returns Zero on success, non-zero error code on failure (will cause
|
||||
* SPI initialization to abort)
|
||||
|
|
|
@ -74,26 +74,26 @@ EXPORT_SYMBOL(cvmx_sysinfo_get);
|
|||
|
||||
/**
|
||||
* This function is used in non-simple executive environments (such as
|
||||
* Linux kernel, u-boot, etc.) to configure the minimal fields that
|
||||
* Linux kernel, u-boot, etc.) to configure the minimal fields that
|
||||
* are required to use simple executive files directly.
|
||||
*
|
||||
* Locking (if required) must be handled outside of this
|
||||
* function
|
||||
*
|
||||
* @phy_mem_desc_ptr:
|
||||
* Pointer to global physical memory descriptor
|
||||
* (bootmem descriptor) @board_type: Octeon board
|
||||
* type enumeration
|
||||
* Pointer to global physical memory descriptor
|
||||
* (bootmem descriptor) @board_type: Octeon board
|
||||
* type enumeration
|
||||
*
|
||||
* @board_rev_major:
|
||||
* Board major revision
|
||||
* Board major revision
|
||||
* @board_rev_minor:
|
||||
* Board minor revision
|
||||
* Board minor revision
|
||||
* @cpu_clock_hz:
|
||||
* CPU clock freqency in hertz
|
||||
* CPU clock freqency in hertz
|
||||
*
|
||||
* Returns 0: Failure
|
||||
* 1: success
|
||||
* 1: success
|
||||
*/
|
||||
int cvmx_sysinfo_minimal_initialize(void *phy_mem_desc_ptr,
|
||||
uint16_t board_type,
|
||||
|
|
|
@ -1542,7 +1542,7 @@ static bool octeon_irq_ciu2_is_edge(unsigned int line, unsigned int bit)
|
|||
|
||||
if (line == 3) /* MIO */
|
||||
switch (bit) {
|
||||
case 2: /* IPD_DRP */
|
||||
case 2: /* IPD_DRP */
|
||||
case 8 ... 11: /* Timers */
|
||||
case 48: /* PTP */
|
||||
edge = true;
|
||||
|
@ -1553,7 +1553,7 @@ static bool octeon_irq_ciu2_is_edge(unsigned int line, unsigned int bit)
|
|||
else if (line == 6) /* PKT */
|
||||
switch (bit) {
|
||||
case 52 ... 53: /* ILK_DRP */
|
||||
case 8 ... 12: /* GMX_DRP */
|
||||
case 8 ... 12: /* GMX_DRP */
|
||||
edge = true;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -116,15 +116,15 @@
|
|||
|
||||
#ifdef CONFIG_CPU_LITTLE_ENDIAN
|
||||
#define LDFIRST LOADR
|
||||
#define LDREST LOADL
|
||||
#define LDREST LOADL
|
||||
#define STFIRST STORER
|
||||
#define STREST STOREL
|
||||
#define STREST STOREL
|
||||
#define SHIFT_DISCARD SLLV
|
||||
#else
|
||||
#define LDFIRST LOADL
|
||||
#define LDREST LOADR
|
||||
#define LDREST LOADR
|
||||
#define STFIRST STOREL
|
||||
#define STREST STORER
|
||||
#define STREST STORER
|
||||
#define SHIFT_DISCARD SRLV
|
||||
#endif
|
||||
|
||||
|
@ -316,9 +316,9 @@ EXC( STORE t0, -8(dst), s_exc_p1u)
|
|||
|
||||
src_unaligned:
|
||||
#define rem t8
|
||||
SRL t0, len, LOG_NBYTES+2 # +2 for 4 units/iter
|
||||
SRL t0, len, LOG_NBYTES+2 # +2 for 4 units/iter
|
||||
beqz t0, cleanup_src_unaligned
|
||||
and rem, len, (4*NBYTES-1) # rem = len % 4*NBYTES
|
||||
and rem, len, (4*NBYTES-1) # rem = len % 4*NBYTES
|
||||
1:
|
||||
/*
|
||||
* Avoid consecutive LD*'s to the same register since some mips
|
||||
|
@ -326,13 +326,13 @@ src_unaligned:
|
|||
* It's OK to load FIRST(N+1) before REST(N) because the two addresses
|
||||
* are to the same unit (unless src is aligned, but it's not).
|
||||
*/
|
||||
EXC( LDFIRST t0, FIRST(0)(src), l_exc)
|
||||
EXC( LDFIRST t1, FIRST(1)(src), l_exc_copy)
|
||||
SUB len, len, 4*NBYTES
|
||||
EXC( LDFIRST t0, FIRST(0)(src), l_exc)
|
||||
EXC( LDFIRST t1, FIRST(1)(src), l_exc_copy)
|
||||
SUB len, len, 4*NBYTES
|
||||
EXC( LDREST t0, REST(0)(src), l_exc_copy)
|
||||
EXC( LDREST t1, REST(1)(src), l_exc_copy)
|
||||
EXC( LDFIRST t2, FIRST(2)(src), l_exc_copy)
|
||||
EXC( LDFIRST t3, FIRST(3)(src), l_exc_copy)
|
||||
EXC( LDFIRST t2, FIRST(2)(src), l_exc_copy)
|
||||
EXC( LDFIRST t3, FIRST(3)(src), l_exc_copy)
|
||||
EXC( LDREST t2, REST(2)(src), l_exc_copy)
|
||||
EXC( LDREST t3, REST(3)(src), l_exc_copy)
|
||||
ADD src, src, 4*NBYTES
|
||||
|
|
|
@ -410,7 +410,7 @@ int __init octeon_prune_device_tree(void)
|
|||
pip_path = fdt_getprop(initial_boot_params, aliases, "pip", NULL);
|
||||
if (pip_path) {
|
||||
int pip = fdt_path_offset(initial_boot_params, pip_path);
|
||||
if (pip >= 0)
|
||||
if (pip >= 0)
|
||||
for (i = 0; i <= 4; i++)
|
||||
octeon_fdt_pip_iface(pip, i, &mac_addr_base);
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* OCTEON 3XXX, 5XXX, 63XX device tree skeleton.
|
||||
*
|
||||
* This device tree is pruned and patched by early boot code before
|
||||
* use. Because of this, it contains a super-set of the available
|
||||
* use. Because of this, it contains a super-set of the available
|
||||
* devices and properties.
|
||||
*/
|
||||
/ {
|
||||
|
@ -433,12 +433,12 @@
|
|||
cavium,t-we = <45>;
|
||||
cavium,t-rd-hld = <35>;
|
||||
cavium,t-wr-hld = <45>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <0>;
|
||||
cavium,t-page = <35>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <0>;
|
||||
cavium,t-page = <35>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,bus-width = <8>;
|
||||
};
|
||||
cavium,cs-config@4 {
|
||||
|
@ -450,12 +450,12 @@
|
|||
cavium,t-we = <320>;
|
||||
cavium,t-rd-hld = <320>;
|
||||
cavium,t-wr-hld = <320>;
|
||||
cavium,t-pause = <320>;
|
||||
cavium,t-wait = <320>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-pause = <320>;
|
||||
cavium,t-wait = <320>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,bus-width = <8>;
|
||||
};
|
||||
cavium,cs-config@5 {
|
||||
|
@ -467,12 +467,12 @@
|
|||
cavium,t-we = <150>;
|
||||
cavium,t-rd-hld = <100>;
|
||||
cavium,t-wr-hld = <30>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <30>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <30>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,bus-width = <16>;
|
||||
};
|
||||
cavium,cs-config@6 {
|
||||
|
@ -484,12 +484,12 @@
|
|||
cavium,t-we = <150>;
|
||||
cavium,t-rd-hld = <100>;
|
||||
cavium,t-wr-hld = <70>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <0>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <0>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,wait-mode;
|
||||
cavium,bus-width = <16>;
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* OCTEON 68XX device tree skeleton.
|
||||
*
|
||||
* This device tree is pruned and patched by early boot code before
|
||||
* use. Because of this, it contains a super-set of the available
|
||||
* use. Because of this, it contains a super-set of the available
|
||||
* devices and properties.
|
||||
*/
|
||||
/ {
|
||||
|
@ -469,12 +469,12 @@
|
|||
cavium,t-we = <35>;
|
||||
cavium,t-rd-hld = <25>;
|
||||
cavium,t-wr-hld = <35>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <300>;
|
||||
cavium,t-page = <25>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <300>;
|
||||
cavium,t-page = <25>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,bus-width = <8>;
|
||||
};
|
||||
cavium,cs-config@4 {
|
||||
|
@ -486,12 +486,12 @@
|
|||
cavium,t-we = <320>;
|
||||
cavium,t-rd-hld = <320>;
|
||||
cavium,t-wr-hld = <320>;
|
||||
cavium,t-pause = <320>;
|
||||
cavium,t-wait = <320>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-pause = <320>;
|
||||
cavium,t-wait = <320>;
|
||||
cavium,t-page = <320>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,bus-width = <8>;
|
||||
};
|
||||
cavium,cs-config@5 {
|
||||
|
@ -503,12 +503,12 @@
|
|||
cavium,t-we = <150>;
|
||||
cavium,t-rd-hld = <100>;
|
||||
cavium,t-wr-hld = <300>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <300>;
|
||||
cavium,t-page = <310>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <300>;
|
||||
cavium,t-page = <310>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,bus-width = <16>;
|
||||
};
|
||||
cavium,cs-config@6 {
|
||||
|
@ -520,12 +520,12 @@
|
|||
cavium,t-we = <150>;
|
||||
cavium,t-rd-hld = <100>;
|
||||
cavium,t-wr-hld = <30>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <30>;
|
||||
cavium,t-page = <310>;
|
||||
cavium,t-pause = <0>;
|
||||
cavium,t-wait = <30>;
|
||||
cavium,t-page = <310>;
|
||||
cavium,t-rd-dly = <0>;
|
||||
|
||||
cavium,pages = <0>;
|
||||
cavium,pages = <0>;
|
||||
cavium,wait-mode;
|
||||
cavium,bus-width = <16>;
|
||||
};
|
||||
|
|
|
@ -31,7 +31,7 @@ struct boot_init_vector {
|
|||
uint32_t k0_val;
|
||||
/* Address of boot info block structure */
|
||||
uint64_t boot_info_addr;
|
||||
uint32_t flags; /* flags */
|
||||
uint32_t flags; /* flags */
|
||||
uint32_t pad;
|
||||
};
|
||||
|
||||
|
@ -53,20 +53,20 @@ struct linux_app_boot_info {
|
|||
|
||||
/* If not to copy a lot of bootloader's structures
|
||||
here is only offset of requested member */
|
||||
#define AVAIL_COREMASK_OFFSET_IN_LINUX_APP_BOOT_BLOCK 0x765c
|
||||
#define AVAIL_COREMASK_OFFSET_IN_LINUX_APP_BOOT_BLOCK 0x765c
|
||||
|
||||
/* hardcoded in bootloader */
|
||||
#define LABI_ADDR_IN_BOOTLOADER 0x700
|
||||
#define LABI_ADDR_IN_BOOTLOADER 0x700
|
||||
|
||||
#define LINUX_APP_BOOT_BLOCK_NAME "linux-app-boot"
|
||||
|
||||
#define LABI_SIGNATURE 0xAABBCC01
|
||||
|
||||
/* from uboot-headers/octeon_mem_map.h */
|
||||
#define EXCEPTION_BASE_INCR (4 * 1024)
|
||||
#define EXCEPTION_BASE_INCR (4 * 1024)
|
||||
/* Increment size for exception base addresses (4k minimum) */
|
||||
#define EXCEPTION_BASE_BASE 0
|
||||
#define BOOTLOADER_PRIV_DATA_BASE (EXCEPTION_BASE_BASE + 0x800)
|
||||
#define BOOTLOADER_BOOT_VECTOR (BOOTLOADER_PRIV_DATA_BASE)
|
||||
#define EXCEPTION_BASE_BASE 0
|
||||
#define BOOTLOADER_PRIV_DATA_BASE (EXCEPTION_BASE_BASE + 0x800)
|
||||
#define BOOTLOADER_BOOT_VECTOR (BOOTLOADER_PRIV_DATA_BASE)
|
||||
|
||||
#endif /* __OCTEON_BOOT_H__ */
|
||||
|
|
|
@ -319,7 +319,7 @@ EXPORT_SYMBOL(octeon_get_io_clock_rate);
|
|||
* exists on most Cavium evaluation boards. If it doesn't exist, then
|
||||
* this function doesn't do anything.
|
||||
*
|
||||
* @s: String to write
|
||||
* @s: String to write
|
||||
*/
|
||||
void octeon_write_lcd(const char *s)
|
||||
{
|
||||
|
@ -341,7 +341,7 @@ void octeon_write_lcd(const char *s)
|
|||
/**
|
||||
* Return the console uart passed by the bootloader
|
||||
*
|
||||
* Returns uart (0 or 1)
|
||||
* Returns uart (0 or 1)
|
||||
*/
|
||||
int octeon_get_boot_uart(void)
|
||||
{
|
||||
|
@ -805,7 +805,7 @@ void __init prom_init(void)
|
|||
/*
|
||||
* To do: switch parsing to new style, something like:
|
||||
* parse_crashkernel(arg, sysinfo->system_dram_size,
|
||||
* &crashk_size, &crashk_base);
|
||||
* &crashk_size, &crashk_base);
|
||||
*/
|
||||
#endif
|
||||
} else if (strlen(arcs_cmdline) + strlen(arg) + 1 <
|
||||
|
@ -1013,7 +1013,7 @@ void __init plat_mem_setup(void)
|
|||
}
|
||||
|
||||
/*
|
||||
* Emit one character to the boot UART. Exported for use by the
|
||||
* Emit one character to the boot UART. Exported for use by the
|
||||
* watchdog timer.
|
||||
*/
|
||||
int prom_putchar(char c)
|
||||
|
|
|
@ -55,7 +55,7 @@ static irqreturn_t mailbox_interrupt(int irq, void *dev_id)
|
|||
|
||||
/**
|
||||
* Cause the function described by call_data to be executed on the passed
|
||||
* cpu. When the function has finished, increment the finished field of
|
||||
* cpu. When the function has finished, increment the finished field of
|
||||
* call_data.
|
||||
*/
|
||||
void octeon_send_ipi_single(int cpu, unsigned int action)
|
||||
|
@ -126,8 +126,8 @@ static void octeon_smp_setup(void)
|
|||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
/*
|
||||
* The possible CPUs are all those present on the chip. We
|
||||
* will assign CPU numbers for possible cores as well. Cores
|
||||
* The possible CPUs are all those present on the chip. We
|
||||
* will assign CPU numbers for possible cores as well. Cores
|
||||
* are always consecutively numberd from 0.
|
||||
*/
|
||||
for (id = 0; id < num_cores && id < NR_CPUS; id++) {
|
||||
|
@ -332,7 +332,7 @@ extern void kernel_entry(unsigned long arg1, ...);
|
|||
|
||||
static void start_after_reset(void)
|
||||
{
|
||||
kernel_entry(0, 0, 0); /* set a2 = 0 for secondary core */
|
||||
kernel_entry(0, 0, 0); /* set a2 = 0 for secondary core */
|
||||
}
|
||||
|
||||
static int octeon_update_boot_vector(unsigned int cpu)
|
||||
|
@ -401,7 +401,7 @@ static int __cpuinit register_cavium_notifier(void)
|
|||
}
|
||||
late_initcall(register_cavium_notifier);
|
||||
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
|
||||
struct plat_smp_ops octeon_smp_ops = {
|
||||
.send_ipi_single = octeon_send_ipi_single,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Registration of Cobalt LED platform device.
|
||||
*
|
||||
* Copyright (C) 2007 Yoichi Yuasa <yuasa@linux-mips.org>
|
||||
* Copyright (C) 2007 Yoichi Yuasa <yuasa@linux-mips.org>
|
||||
*
|
||||
* 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
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
static struct mtd_partition cobalt_mtd_partitions[] = {
|
||||
{
|
||||
.name = "firmware",
|
||||
.offset = 0x0,
|
||||
.offset = 0x0,
|
||||
.size = 0x80000,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -46,7 +46,7 @@ static __init int cobalt_rtc_add(void)
|
|||
return -ENOMEM;
|
||||
|
||||
retval = platform_device_add_resources(pdev, cobalt_rtc_resource,
|
||||
ARRAY_SIZE(cobalt_rtc_resource));
|
||||
ARRAY_SIZE(cobalt_rtc_resource));
|
||||
if (retval)
|
||||
goto err_free_device;
|
||||
|
||||
|
|
|
@ -55,70 +55,70 @@
|
|||
* DS2100/3100's, aka kn01, aka Pmax:
|
||||
*
|
||||
* MIPS IRQ Source
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 SCSI
|
||||
* 3 Lance Ethernet
|
||||
* 4 DZ11 serial
|
||||
* 5 RTC
|
||||
* 6 Memory Controller & Video
|
||||
* 7 FPU
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 SCSI
|
||||
* 3 Lance Ethernet
|
||||
* 4 DZ11 serial
|
||||
* 5 RTC
|
||||
* 6 Memory Controller & Video
|
||||
* 7 FPU
|
||||
*
|
||||
* DS5000/200, aka kn02, aka 3max:
|
||||
*
|
||||
* MIPS IRQ Source
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 TurboChannel
|
||||
* 3 RTC
|
||||
* 4 Reserved
|
||||
* 5 Memory Controller
|
||||
* 6 Reserved
|
||||
* 7 FPU
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 TurboChannel
|
||||
* 3 RTC
|
||||
* 4 Reserved
|
||||
* 5 Memory Controller
|
||||
* 6 Reserved
|
||||
* 7 FPU
|
||||
*
|
||||
* DS5000/1xx's, aka kn02ba, aka 3min:
|
||||
*
|
||||
* MIPS IRQ Source
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 TurboChannel Slot 0
|
||||
* 3 TurboChannel Slot 1
|
||||
* 4 TurboChannel Slot 2
|
||||
* 5 TurboChannel Slot 3 (ASIC)
|
||||
* 6 Halt button
|
||||
* 7 FPU/R4k timer
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 TurboChannel Slot 0
|
||||
* 3 TurboChannel Slot 1
|
||||
* 4 TurboChannel Slot 2
|
||||
* 5 TurboChannel Slot 3 (ASIC)
|
||||
* 6 Halt button
|
||||
* 7 FPU/R4k timer
|
||||
*
|
||||
* DS5000/2x's, aka kn02ca, aka maxine:
|
||||
*
|
||||
* MIPS IRQ Source
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 Periodic Interrupt (100usec)
|
||||
* 3 RTC
|
||||
* 4 I/O write timeout
|
||||
* 5 TurboChannel (ASIC)
|
||||
* 6 Halt Keycode from Access.Bus keyboard (CTRL-ALT-ENTER)
|
||||
* 7 FPU/R4k timer
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 Periodic Interrupt (100usec)
|
||||
* 3 RTC
|
||||
* 4 I/O write timeout
|
||||
* 5 TurboChannel (ASIC)
|
||||
* 6 Halt Keycode from Access.Bus keyboard (CTRL-ALT-ENTER)
|
||||
* 7 FPU/R4k timer
|
||||
*
|
||||
* DS5000/2xx's, aka kn03, aka 3maxplus:
|
||||
*
|
||||
* MIPS IRQ Source
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 System Board (ASIC)
|
||||
* 3 RTC
|
||||
* 4 Reserved
|
||||
* 5 Memory
|
||||
* 6 Halt Button
|
||||
* 7 FPU/R4k timer
|
||||
* -------- ------
|
||||
* 0 Software (ignored)
|
||||
* 1 Software (ignored)
|
||||
* 2 System Board (ASIC)
|
||||
* 3 RTC
|
||||
* 4 Reserved
|
||||
* 5 Memory
|
||||
* 6 Halt Button
|
||||
* 7 FPU/R4k timer
|
||||
*
|
||||
* We handle the IRQ according to _our_ priority (see setup.c),
|
||||
* then we just return. If multiple IRQs are pending then we will
|
||||
* then we just return. If multiple IRQs are pending then we will
|
||||
* just take another exception, big deal.
|
||||
*/
|
||||
.align 5
|
||||
|
@ -146,7 +146,7 @@
|
|||
/*
|
||||
* Find irq with highest priority
|
||||
*/
|
||||
PTR_LA t1,cpu_mask_nr_tbl
|
||||
PTR_LA t1,cpu_mask_nr_tbl
|
||||
1: lw t2,(t1)
|
||||
nop
|
||||
and t2,t0
|
||||
|
@ -195,7 +195,7 @@
|
|||
/*
|
||||
* Find irq with highest priority
|
||||
*/
|
||||
PTR_LA t1,asic_mask_nr_tbl
|
||||
PTR_LA t1,asic_mask_nr_tbl
|
||||
2: lw t2,(t1)
|
||||
nop
|
||||
and t2,t0
|
||||
|
@ -221,7 +221,7 @@
|
|||
FEXPORT(cpu_all_int) # HALT, timers, software junk
|
||||
li a0,DEC_CPU_IRQ_BASE
|
||||
srl t0,CAUSEB_IP
|
||||
li t1,CAUSEF_IP>>CAUSEB_IP # mask
|
||||
li t1,CAUSEF_IP>>CAUSEB_IP # mask
|
||||
b 1f
|
||||
li t2,4 # nr of bits / 2
|
||||
|
||||
|
|
|
@ -128,8 +128,8 @@ void __init dec_kn02xa_be_init(void)
|
|||
{
|
||||
volatile u32 *mbcs = (void *)CKSEG1ADDR(KN4K_SLOT_BASE + KN4K_MB_CSR);
|
||||
|
||||
/* For KN04 we need to make sure EE (?) is enabled in the MB. */
|
||||
if (current_cpu_type() == CPU_R4000SC)
|
||||
/* For KN04 we need to make sure EE (?) is enabled in the MB. */
|
||||
if (current_cpu_type() == CPU_R4000SC)
|
||||
*mbcs |= KN4K_MB_CSR_EE;
|
||||
fast_iob();
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
/* Maximum number of arguments supported. Must be even! */
|
||||
#define O32_ARGC 32
|
||||
/* Number of static registers we save. */
|
||||
/* Number of static registers we save. */
|
||||
#define O32_STATC 11
|
||||
/* Frame size for both of the above. */
|
||||
#define O32_FRAMESZ (4 * O32_ARGC + SZREG * O32_STATC)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef DECTYPES
|
||||
#define DECTYPES
|
||||
#define DECTYPES
|
||||
|
||||
#define DS2100_3100 1 /* DS2100/3100 Pmax */
|
||||
#define DS5000_200 2 /* DS5000/200 3max */
|
||||
|
|
|
@ -103,7 +103,7 @@ void __init prom_init(void)
|
|||
if (prom_is_rex(magic))
|
||||
rex_clear_cache();
|
||||
|
||||
/* Register the early console. */
|
||||
/* Register the early console. */
|
||||
register_prom_console();
|
||||
|
||||
/* Were we compiled with the right CPU option? */
|
||||
|
|
|
@ -22,7 +22,7 @@ volatile unsigned long mem_err; /* So we know an error occurred */
|
|||
|
||||
/*
|
||||
* Probe memory in 4MB chunks, waiting for an error to tell us we've fallen
|
||||
* off the end of real memory. Only suitable for the 2100/3100's (PMAX).
|
||||
* off the end of real memory. Only suitable for the 2100/3100's (PMAX).
|
||||
*/
|
||||
|
||||
#define CHUNK_SIZE 0x400000
|
||||
|
|
|
@ -65,7 +65,7 @@ EXPORT_SYMBOL(ioasic_base);
|
|||
/*
|
||||
* IRQ routing and priority tables. Priorites are set as follows:
|
||||
*
|
||||
* KN01 KN230 KN02 KN02-BA KN02-CA KN03
|
||||
* KN01 KN230 KN02 KN02-BA KN02-CA KN03
|
||||
*
|
||||
* MEMORY CPU CPU CPU ASIC CPU CPU
|
||||
* RTC CPU CPU CPU ASIC CPU CPU
|
||||
|
@ -413,7 +413,7 @@ static void __init dec_init_kn02(void)
|
|||
|
||||
/*
|
||||
* Machine-specific initialisation for KN02-BA, aka DS5000/1xx
|
||||
* (xx = 20, 25, 33), aka 3min. Also applies to KN04(-BA), aka
|
||||
* (xx = 20, 25, 33), aka 3min. Also applies to KN04(-BA), aka
|
||||
* DS5000/150, aka 4min.
|
||||
*/
|
||||
static int kn02ba_interrupt[DEC_NR_INTS] __initdata = {
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
* Setup the right wbflush routine for the different DECstations.
|
||||
*
|
||||
* Created with information from:
|
||||
* DECstation 3100 Desktop Workstation Functional Specification
|
||||
* DECstation 5000/200 KN02 System Module Functional Specification
|
||||
* mipsel-linux-objdump --disassemble vmunix | grep "wbflush" :-)
|
||||
* DECstation 3100 Desktop Workstation Functional Specification
|
||||
* DECstation 5000/200 KN02 System Module Functional Specification
|
||||
* mipsel-linux-objdump --disassemble vmunix | grep "wbflush" :-)
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
|
|
|
@ -292,7 +292,7 @@ void __init arch_init_irq(void)
|
|||
|
||||
asmlinkage void plat_irq_dispatch(void)
|
||||
{
|
||||
unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
|
||||
unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
|
||||
|
||||
if (pending & STATUSF_IP7)
|
||||
do_IRQ(MIPS_CPU_IRQ_BASE + 7);
|
||||
|
|
|
@ -190,7 +190,7 @@ static struct platform_device markeins_flash_device = {
|
|||
.name = "physmap-flash",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &markeins_flash_data,
|
||||
.platform_data = &markeins_flash_data,
|
||||
},
|
||||
.num_resources = 1,
|
||||
.resource = &markeins_flash_resource,
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#include <asm/emma/emma2rh.h>
|
||||
|
||||
#define USE_CPU_COUNTER_TIMER /* whether we use cpu counter */
|
||||
#define USE_CPU_COUNTER_TIMER /* whether we use cpu counter */
|
||||
|
||||
extern void markeins_led(const char *);
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
LONG
|
||||
ArcGetDirectoryEntry(ULONG FileID, struct linux_vdirent *Buffer,
|
||||
ULONG N, ULONG *Count)
|
||||
ULONG N, ULONG *Count)
|
||||
{
|
||||
return ARC_CALL4(get_vdirent, FileID, Buffer, N, Count);
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ ArcGetFileInformation(ULONG FileID, struct linux_finfo *Information)
|
|||
}
|
||||
|
||||
LONG ArcSetFileInformation(ULONG FileID, ULONG AttributeFlags,
|
||||
ULONG AttributeMask)
|
||||
ULONG AttributeMask)
|
||||
{
|
||||
return ARC_CALL3(set_finfo, FileID, AttributeFlags, AttributeMask);
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ void __init prom_identify_arch(void)
|
|||
if (p == NULL) {
|
||||
#ifdef CONFIG_SGI_IP27
|
||||
/* IP27 PROM misbehaves, seems to not implement ARC
|
||||
GetChild(). So we just assume it's an IP27. */
|
||||
GetChild(). So we just assume it's an IP27. */
|
||||
iname = "SGI-IP27";
|
||||
#else
|
||||
iname = "Unknown";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* memory.c: PROM library functions for acquiring/using memory descriptors
|
||||
* given to us from the ARCS firmware.
|
||||
* given to us from the ARCS firmware.
|
||||
*
|
||||
* Copyright (C) 1996 by David S. Miller
|
||||
* Copyright (C) 1999, 2000, 2001 by Ralf Baechle
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <asm/bcache.h>
|
||||
|
||||
/*
|
||||
* IP22 boardcache is not compatible with board caches. Thus we disable it
|
||||
* IP22 boardcache is not compatible with board caches. Thus we disable it
|
||||
* during romvec action. Since r4xx0.c is always compiled and linked with your
|
||||
* kernel, this shouldn't cause any harm regardless what MIPS processor you
|
||||
* have.
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
/* Maximum number of arguments supported. Must be even! */
|
||||
#define O32_ARGC 32
|
||||
/* Number of static registers we save. */
|
||||
/* Number of static registers we save. */
|
||||
#define O32_STATC 11
|
||||
/* Frame size for static register */
|
||||
#define O32_FRAMESZ (SZREG * O32_STATC)
|
||||
|
|
|
@ -28,20 +28,20 @@
|
|||
* registers
|
||||
*/
|
||||
#define PROM_GET_MEMCONF 58
|
||||
#define PROM_GET_HWCONF 61
|
||||
#define PROM_GET_HWCONF 61
|
||||
|
||||
#define PROM_VEC (u64 *)CKSEG1ADDR(0x1fc00000)
|
||||
#define PROM_ENTRY(x) (PROM_VEC + (x))
|
||||
|
||||
#define ___prom_putchar ((int *(*)(int))PROM_ENTRY(PROM_PUTCHAR))
|
||||
#define ___prom_getenv ((char *(*)(char *))PROM_ENTRY(PROM_GETENV))
|
||||
#define ___prom_get_memconf ((void (*)(void *))PROM_ENTRY(PROM_GET_MEMCONF))
|
||||
#define ___prom_get_hwconf ((u32 (*)(void))PROM_ENTRY(PROM_GET_HWCONF))
|
||||
#define ___prom_putchar ((int *(*)(int))PROM_ENTRY(PROM_PUTCHAR))
|
||||
#define ___prom_getenv ((char *(*)(char *))PROM_ENTRY(PROM_GETENV))
|
||||
#define ___prom_get_memconf ((void (*)(void *))PROM_ENTRY(PROM_GET_MEMCONF))
|
||||
#define ___prom_get_hwconf ((u32 (*)(void))PROM_ENTRY(PROM_GET_HWCONF))
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
|
||||
static u8 o32_stk[16384];
|
||||
#define O32_STK &o32_stk[sizeof(o32_stk)]
|
||||
#define O32_STK &o32_stk[sizeof(o32_stk)]
|
||||
|
||||
#define __PROM_O32(fun, arg) fun arg __asm__(#fun); \
|
||||
__asm__(#fun " = call_o32")
|
||||
|
@ -52,13 +52,13 @@ void __PROM_O32(__prom_get_memconf, (void (*)(void *), void *, void *));
|
|||
u32 __PROM_O32(__prom_get_hwconf, (u32 (*)(void), void *));
|
||||
|
||||
#define _prom_putchar(x) __prom_putchar(___prom_putchar, O32_STK, x)
|
||||
#define _prom_getenv(x) __prom_getenv(___prom_getenv, O32_STK, x)
|
||||
#define _prom_getenv(x) __prom_getenv(___prom_getenv, O32_STK, x)
|
||||
#define _prom_get_memconf(x) __prom_get_memconf(___prom_get_memconf, O32_STK, x)
|
||||
#define _prom_get_hwconf() __prom_get_hwconf(___prom_get_hwconf, O32_STK)
|
||||
|
||||
#else
|
||||
#define _prom_putchar(x) ___prom_putchar(x)
|
||||
#define _prom_getenv(x) ___prom_getenv(x)
|
||||
#define _prom_getenv(x) ___prom_getenv(x)
|
||||
#define _prom_get_memconf(x) ___prom_get_memconf(x)
|
||||
#define _prom_get_hwconf(x) ___prom_get_hwconf(x)
|
||||
#endif
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
|
||||
struct mips_abi {
|
||||
int (* const setup_frame)(void *sig_return, struct k_sigaction *ka,
|
||||
struct pt_regs *regs, int signr,
|
||||
sigset_t *set);
|
||||
struct pt_regs *regs, int signr,
|
||||
sigset_t *set);
|
||||
const unsigned long signal_return_offset;
|
||||
int (* const setup_rt_frame)(void *sig_return, struct k_sigaction *ka,
|
||||
struct pt_regs *regs, int signr,
|
||||
sigset_t *set, siginfo_t *info);
|
||||
struct pt_regs *regs, int signr,
|
||||
sigset_t *set, siginfo_t *info);
|
||||
const unsigned long rt_signal_return_offset;
|
||||
const unsigned long restart;
|
||||
};
|
||||
|
|
|
@ -51,14 +51,14 @@
|
|||
* Returns the physical address of a CKSEGx / XKPHYS address
|
||||
*/
|
||||
#define CPHYSADDR(a) ((_ACAST32_(a)) & 0x1fffffff)
|
||||
#define XPHYSADDR(a) ((_ACAST64_(a)) & \
|
||||
#define XPHYSADDR(a) ((_ACAST64_(a)) & \
|
||||
_CONST64_(0x000000ffffffffff))
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
|
||||
/*
|
||||
* Memory segments (64bit kernel mode addresses)
|
||||
* The compatibility segments use the full 64-bit sign extended value. Note
|
||||
* The compatibility segments use the full 64-bit sign extended value. Note
|
||||
* the R8000 doesn't have them so don't reference these in generic MIPS code.
|
||||
*/
|
||||
#define XKUSEG _CONST64_(0x0000000000000000)
|
||||
|
@ -131,7 +131,7 @@
|
|||
|
||||
/*
|
||||
* The ultimate limited of the 64-bit MIPS architecture: 2 bits for selecting
|
||||
* the region, 3 bits for the CCA mode. This leaves 59 bits of which the
|
||||
* the region, 3 bits for the CCA mode. This leaves 59 bits of which the
|
||||
* R8000 implements most with its 48-bit physical address space.
|
||||
*/
|
||||
#define TO_PHYS_MASK _CONST64_(0x07ffffffffffffff) /* 2^^59 - 1 */
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
* Not used for the kernel but here seems to be the right place.
|
||||
*/
|
||||
#ifdef __PIC__
|
||||
#define CPRESTORE(register) \
|
||||
#define CPRESTORE(register) \
|
||||
.cprestore register
|
||||
#define CPADD(register) \
|
||||
#define CPADD(register) \
|
||||
.cpadd register
|
||||
#define CPLOAD(register) \
|
||||
.cpload register
|
||||
#define CPLOAD(register) \
|
||||
.cpload register
|
||||
#else
|
||||
#define CPRESTORE(register)
|
||||
#define CPADD(register)
|
||||
|
@ -48,35 +48,35 @@
|
|||
/*
|
||||
* LEAF - declare leaf routine
|
||||
*/
|
||||
#define LEAF(symbol) \
|
||||
.globl symbol; \
|
||||
.align 2; \
|
||||
.type symbol, @function; \
|
||||
.ent symbol, 0; \
|
||||
#define LEAF(symbol) \
|
||||
.globl symbol; \
|
||||
.align 2; \
|
||||
.type symbol, @function; \
|
||||
.ent symbol, 0; \
|
||||
symbol: .frame sp, 0, ra
|
||||
|
||||
/*
|
||||
* NESTED - declare nested routine entry point
|
||||
*/
|
||||
#define NESTED(symbol, framesize, rpc) \
|
||||
.globl symbol; \
|
||||
.align 2; \
|
||||
.type symbol, @function; \
|
||||
.ent symbol, 0; \
|
||||
#define NESTED(symbol, framesize, rpc) \
|
||||
.globl symbol; \
|
||||
.align 2; \
|
||||
.type symbol, @function; \
|
||||
.ent symbol, 0; \
|
||||
symbol: .frame sp, framesize, rpc
|
||||
|
||||
/*
|
||||
* END - mark end of function
|
||||
*/
|
||||
#define END(function) \
|
||||
.end function; \
|
||||
#define END(function) \
|
||||
.end function; \
|
||||
.size function, .-function
|
||||
|
||||
/*
|
||||
* EXPORT - export definition of symbol
|
||||
*/
|
||||
#define EXPORT(symbol) \
|
||||
.globl symbol; \
|
||||
.globl symbol; \
|
||||
symbol:
|
||||
|
||||
/*
|
||||
|
@ -90,16 +90,16 @@ symbol:
|
|||
/*
|
||||
* ABS - export absolute symbol
|
||||
*/
|
||||
#define ABS(symbol,value) \
|
||||
.globl symbol; \
|
||||
#define ABS(symbol,value) \
|
||||
.globl symbol; \
|
||||
symbol = value
|
||||
|
||||
#define PANIC(msg) \
|
||||
#define PANIC(msg) \
|
||||
.set push; \
|
||||
.set reorder; \
|
||||
PTR_LA a0, 8f; \
|
||||
jal panic; \
|
||||
9: b 9b; \
|
||||
.set reorder; \
|
||||
PTR_LA a0, 8f; \
|
||||
jal panic; \
|
||||
9: b 9b; \
|
||||
.set pop; \
|
||||
TEXT(msg)
|
||||
|
||||
|
@ -107,31 +107,31 @@ symbol = value
|
|||
* Print formatted string
|
||||
*/
|
||||
#ifdef CONFIG_PRINTK
|
||||
#define PRINT(string) \
|
||||
#define PRINT(string) \
|
||||
.set push; \
|
||||
.set reorder; \
|
||||
PTR_LA a0, 8f; \
|
||||
jal printk; \
|
||||
.set reorder; \
|
||||
PTR_LA a0, 8f; \
|
||||
jal printk; \
|
||||
.set pop; \
|
||||
TEXT(string)
|
||||
#else
|
||||
#define PRINT(string)
|
||||
#endif
|
||||
|
||||
#define TEXT(msg) \
|
||||
#define TEXT(msg) \
|
||||
.pushsection .data; \
|
||||
8: .asciiz msg; \
|
||||
8: .asciiz msg; \
|
||||
.popsection;
|
||||
|
||||
/*
|
||||
* Build text tables
|
||||
*/
|
||||
#define TTABLE(string) \
|
||||
#define TTABLE(string) \
|
||||
.pushsection .text; \
|
||||
.word 1f; \
|
||||
.word 1f; \
|
||||
.popsection \
|
||||
.pushsection .data; \
|
||||
1: .asciiz string; \
|
||||
1: .asciiz string; \
|
||||
.popsection
|
||||
|
||||
/*
|
||||
|
@ -143,13 +143,13 @@ symbol = value
|
|||
*/
|
||||
#ifdef CONFIG_CPU_HAS_PREFETCH
|
||||
|
||||
#define PREF(hint,addr) \
|
||||
#define PREF(hint,addr) \
|
||||
.set push; \
|
||||
.set mips4; \
|
||||
pref hint, addr; \
|
||||
.set pop
|
||||
|
||||
#define PREFX(hint,addr) \
|
||||
#define PREFX(hint,addr) \
|
||||
.set push; \
|
||||
.set mips4; \
|
||||
prefx hint, addr; \
|
||||
|
@ -166,42 +166,42 @@ symbol = value
|
|||
* MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
|
||||
*/
|
||||
#if (_MIPS_ISA == _MIPS_ISA_MIPS1)
|
||||
#define MOVN(rd, rs, rt) \
|
||||
#define MOVN(rd, rs, rt) \
|
||||
.set push; \
|
||||
.set reorder; \
|
||||
beqz rt, 9f; \
|
||||
move rd, rs; \
|
||||
beqz rt, 9f; \
|
||||
move rd, rs; \
|
||||
.set pop; \
|
||||
9:
|
||||
#define MOVZ(rd, rs, rt) \
|
||||
#define MOVZ(rd, rs, rt) \
|
||||
.set push; \
|
||||
.set reorder; \
|
||||
bnez rt, 9f; \
|
||||
move rd, rs; \
|
||||
bnez rt, 9f; \
|
||||
move rd, rs; \
|
||||
.set pop; \
|
||||
9:
|
||||
#endif /* _MIPS_ISA == _MIPS_ISA_MIPS1 */
|
||||
#if (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3)
|
||||
#define MOVN(rd, rs, rt) \
|
||||
#define MOVN(rd, rs, rt) \
|
||||
.set push; \
|
||||
.set noreorder; \
|
||||
bnezl rt, 9f; \
|
||||
move rd, rs; \
|
||||
bnezl rt, 9f; \
|
||||
move rd, rs; \
|
||||
.set pop; \
|
||||
9:
|
||||
#define MOVZ(rd, rs, rt) \
|
||||
#define MOVZ(rd, rs, rt) \
|
||||
.set push; \
|
||||
.set noreorder; \
|
||||
beqzl rt, 9f; \
|
||||
move rd, rs; \
|
||||
beqzl rt, 9f; \
|
||||
move rd, rs; \
|
||||
.set pop; \
|
||||
9:
|
||||
#endif /* (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3) */
|
||||
#if (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \
|
||||
(_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
|
||||
#define MOVN(rd, rs, rt) \
|
||||
#define MOVN(rd, rs, rt) \
|
||||
movn rd, rs, rt
|
||||
#define MOVZ(rd, rs, rt) \
|
||||
#define MOVZ(rd, rs, rt) \
|
||||
movz rd, rs, rt
|
||||
#endif /* MIPS IV, MIPS V, MIPS32 or MIPS64 */
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Atomic operations that C can't guarantee us. Useful for
|
||||
* Atomic operations that C can't guarantee us. Useful for
|
||||
* resource counting etc..
|
||||
*
|
||||
* But use these as seldom as possible since they are much more slower
|
||||
|
@ -21,7 +21,7 @@
|
|||
#include <asm/cmpxchg.h>
|
||||
#include <asm/war.h>
|
||||
|
||||
#define ATOMIC_INIT(i) { (i) }
|
||||
#define ATOMIC_INIT(i) { (i) }
|
||||
|
||||
/*
|
||||
* atomic_read - read atomic variable
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* over this barrier. All reads preceding this primitive are guaranteed
|
||||
* to access memory (but not necessarily other CPUs' caches) before any
|
||||
* reads following this primitive that depend on the data return by
|
||||
* any of the preceding reads. This primitive is much lighter weight than
|
||||
* any of the preceding reads. This primitive is much lighter weight than
|
||||
* rmb() on most CPUs, and is never heavier weight than is
|
||||
* rmb().
|
||||
*
|
||||
|
@ -43,7 +43,7 @@
|
|||
* </programlisting>
|
||||
*
|
||||
* because the read of "*q" depends on the read of "p" and these
|
||||
* two reads are separated by a read_barrier_depends(). However,
|
||||
* two reads are separated by a read_barrier_depends(). However,
|
||||
* the following code, with the same initial values for "a" and "b":
|
||||
*
|
||||
* <programlisting>
|
||||
|
@ -57,7 +57,7 @@
|
|||
* </programlisting>
|
||||
*
|
||||
* does not enforce ordering, since there is no data dependency between
|
||||
* the read of "a" and the read of "b". Therefore, on some CPUs, such
|
||||
* the read of "a" and the read of "b". Therefore, on some CPUs, such
|
||||
* as Alpha, "y" could be set to 3 and "x" to 0. Use rmb()
|
||||
* in cases like this where there are no data dependencies.
|
||||
*/
|
||||
|
@ -92,7 +92,7 @@
|
|||
: "memory")
|
||||
#ifdef CONFIG_CPU_CAVIUM_OCTEON
|
||||
# define OCTEON_SYNCW_STR ".set push\n.set arch=octeon\nsyncw\nsyncw\n.set pop\n"
|
||||
# define __syncw() __asm__ __volatile__(OCTEON_SYNCW_STR : : : "memory")
|
||||
# define __syncw() __asm__ __volatile__(OCTEON_SYNCW_STR : : : "memory")
|
||||
|
||||
# define fast_wmb() __syncw()
|
||||
# define fast_rmb() barrier()
|
||||
|
@ -158,7 +158,7 @@
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP)
|
||||
#define __WEAK_LLSC_MB " sync \n"
|
||||
#define __WEAK_LLSC_MB " sync \n"
|
||||
#else
|
||||
#define __WEAK_LLSC_MB " \n"
|
||||
#endif
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
|
||||
/* Some R4000 / R4400 / R4600 / R5000 machines may have a non-dma-coherent,
|
||||
chipset implemented caches. On machines with other CPUs the CPU does the
|
||||
chipset implemented caches. On machines with other CPUs the CPU does the
|
||||
cache thing itself. */
|
||||
struct bcache_ops {
|
||||
void (*bc_enable)(void);
|
||||
|
|
|
@ -26,15 +26,15 @@
|
|||
#define SZLONG_MASK 31UL
|
||||
#define __LL "ll "
|
||||
#define __SC "sc "
|
||||
#define __INS "ins "
|
||||
#define __EXT "ext "
|
||||
#define __INS "ins "
|
||||
#define __EXT "ext "
|
||||
#elif _MIPS_SZLONG == 64
|
||||
#define SZLONG_LOG 6
|
||||
#define SZLONG_MASK 63UL
|
||||
#define __LL "lld "
|
||||
#define __SC "scd "
|
||||
#define __INS "dins "
|
||||
#define __EXT "dext "
|
||||
#define __INS "dins "
|
||||
#define __EXT "dext "
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -357,7 +357,7 @@ static inline int test_and_clear_bit(unsigned long nr,
|
|||
"1: " __LL "%0, %1 # test_and_clear_bit \n"
|
||||
" or %2, %0, %3 \n"
|
||||
" xor %2, %3 \n"
|
||||
" " __SC "%2, %1 \n"
|
||||
" " __SC "%2, %1 \n"
|
||||
" beqzl %2, 1b \n"
|
||||
" and %2, %0, %3 \n"
|
||||
" .set mips0 \n"
|
||||
|
@ -371,10 +371,10 @@ static inline int test_and_clear_bit(unsigned long nr,
|
|||
|
||||
do {
|
||||
__asm__ __volatile__(
|
||||
" " __LL "%0, %1 # test_and_clear_bit \n"
|
||||
" " __LL "%0, %1 # test_and_clear_bit \n"
|
||||
" " __EXT "%2, %0, %3, 1 \n"
|
||||
" " __INS "%0, $0, %3, 1 \n"
|
||||
" " __SC "%0, %1 \n"
|
||||
" " __INS "%0, $0, %3, 1 \n"
|
||||
" " __SC "%0, %1 \n"
|
||||
: "=&r" (temp), "+m" (*m), "=&r" (res)
|
||||
: "ir" (bit)
|
||||
: "memory");
|
||||
|
@ -387,10 +387,10 @@ static inline int test_and_clear_bit(unsigned long nr,
|
|||
do {
|
||||
__asm__ __volatile__(
|
||||
" .set mips3 \n"
|
||||
" " __LL "%0, %1 # test_and_clear_bit \n"
|
||||
" " __LL "%0, %1 # test_and_clear_bit \n"
|
||||
" or %2, %0, %3 \n"
|
||||
" xor %2, %3 \n"
|
||||
" " __SC "%2, %1 \n"
|
||||
" " __SC "%2, %1 \n"
|
||||
" .set mips0 \n"
|
||||
: "=&r" (temp), "+m" (*m), "=&r" (res)
|
||||
: "r" (1UL << bit)
|
||||
|
@ -444,7 +444,7 @@ static inline int test_and_change_bit(unsigned long nr,
|
|||
do {
|
||||
__asm__ __volatile__(
|
||||
" .set mips3 \n"
|
||||
" " __LL "%0, %1 # test_and_change_bit \n"
|
||||
" " __LL "%0, %1 # test_and_change_bit \n"
|
||||
" xor %2, %0, %3 \n"
|
||||
" " __SC "\t%2, %1 \n"
|
||||
" .set mips0 \n"
|
||||
|
|
|
@ -44,19 +44,19 @@
|
|||
/*
|
||||
* Valid machtype for group PMC-MSP
|
||||
*/
|
||||
#define MACH_MSP4200_EVAL 0 /* PMC-Sierra MSP4200 Evaluation */
|
||||
#define MACH_MSP4200_GW 1 /* PMC-Sierra MSP4200 Gateway demo */
|
||||
#define MACH_MSP4200_FPGA 2 /* PMC-Sierra MSP4200 Emulation */
|
||||
#define MACH_MSP7120_EVAL 3 /* PMC-Sierra MSP7120 Evaluation */
|
||||
#define MACH_MSP7120_GW 4 /* PMC-Sierra MSP7120 Residential GW */
|
||||
#define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */
|
||||
#define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */
|
||||
#define MACH_MSP4200_EVAL 0 /* PMC-Sierra MSP4200 Evaluation */
|
||||
#define MACH_MSP4200_GW 1 /* PMC-Sierra MSP4200 Gateway demo */
|
||||
#define MACH_MSP4200_FPGA 2 /* PMC-Sierra MSP4200 Emulation */
|
||||
#define MACH_MSP7120_EVAL 3 /* PMC-Sierra MSP7120 Evaluation */
|
||||
#define MACH_MSP7120_GW 4 /* PMC-Sierra MSP7120 Residential GW */
|
||||
#define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */
|
||||
#define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */
|
||||
|
||||
/*
|
||||
* Valid machtype for group Mikrotik
|
||||
*/
|
||||
#define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */
|
||||
#define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */
|
||||
#define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */
|
||||
#define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */
|
||||
|
||||
/*
|
||||
* Valid machtype for Loongson family
|
||||
|
@ -67,7 +67,7 @@
|
|||
#define MACH_LEMOTE_ML2F7 3
|
||||
#define MACH_LEMOTE_YL2F89 4
|
||||
#define MACH_DEXXON_GDIUM2F10 5
|
||||
#define MACH_LEMOTE_NAS 6
|
||||
#define MACH_LEMOTE_NAS 6
|
||||
#define MACH_LEMOTE_LL2F 7
|
||||
#define MACH_LOONGSON_END 8
|
||||
|
||||
|
|
|
@ -8,20 +8,20 @@
|
|||
* (C) Copyright 1996, 97, 99, 2002, 03 Ralf Baechle
|
||||
* (C) Copyright 1999 Silicon Graphics, Inc.
|
||||
*/
|
||||
#ifndef __ASM_CACHEOPS_H
|
||||
#define __ASM_CACHEOPS_H
|
||||
#ifndef __ASM_CACHEOPS_H
|
||||
#define __ASM_CACHEOPS_H
|
||||
|
||||
/*
|
||||
* Cache Operations available on all MIPS processors with R4000-style caches
|
||||
*/
|
||||
#define Index_Invalidate_I 0x00
|
||||
#define Index_Writeback_Inv_D 0x01
|
||||
#define Index_Invalidate_I 0x00
|
||||
#define Index_Writeback_Inv_D 0x01
|
||||
#define Index_Load_Tag_I 0x04
|
||||
#define Index_Load_Tag_D 0x05
|
||||
#define Index_Store_Tag_I 0x08
|
||||
#define Index_Store_Tag_D 0x09
|
||||
#if defined(CONFIG_CPU_LOONGSON2)
|
||||
#define Hit_Invalidate_I 0x00
|
||||
#define Hit_Invalidate_I 0x00
|
||||
#else
|
||||
#define Hit_Invalidate_I 0x10
|
||||
#endif
|
||||
|
@ -39,8 +39,8 @@
|
|||
/*
|
||||
* R4000SC and R4400SC-specific cacheops
|
||||
*/
|
||||
#define Index_Invalidate_SI 0x02
|
||||
#define Index_Writeback_Inv_SD 0x03
|
||||
#define Index_Invalidate_SI 0x02
|
||||
#define Index_Writeback_Inv_SD 0x03
|
||||
#define Index_Load_Tag_SI 0x06
|
||||
#define Index_Load_Tag_SD 0x07
|
||||
#define Index_Store_Tag_SI 0x0A
|
||||
|
|
|
@ -194,7 +194,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len)
|
|||
|
||||
#define _HAVE_ARCH_IPV6_CSUM
|
||||
static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
|
||||
const struct in6_addr *daddr,
|
||||
const struct in6_addr *daddr,
|
||||
__u32 len, unsigned short proto,
|
||||
__wsum sum)
|
||||
{
|
||||
|
|
|
@ -146,7 +146,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
|
|||
" .set push \n" \
|
||||
" .set noat \n" \
|
||||
" .set mips3 \n" \
|
||||
"1: " ld " %0, %2 # __cmpxchg_asm \n" \
|
||||
"1: " ld " %0, %2 # __cmpxchg_asm \n" \
|
||||
" bne %0, %z3, 2f \n" \
|
||||
" .set mips0 \n" \
|
||||
" move $1, %z4 \n" \
|
||||
|
@ -163,7 +163,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
|
|||
" .set push \n" \
|
||||
" .set noat \n" \
|
||||
" .set mips3 \n" \
|
||||
"1: " ld " %0, %2 # __cmpxchg_asm \n" \
|
||||
"1: " ld " %0, %2 # __cmpxchg_asm \n" \
|
||||
" bne %0, %z3, 2f \n" \
|
||||
" .set mips0 \n" \
|
||||
" move $1, %z4 \n" \
|
||||
|
@ -205,7 +205,7 @@ extern void __cmpxchg_called_with_bad_pointer(void);
|
|||
\
|
||||
switch (sizeof(*(__ptr))) { \
|
||||
case 4: \
|
||||
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
|
||||
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
|
||||
break; \
|
||||
case 8: \
|
||||
if (sizeof(long) == 8) { \
|
||||
|
|
|
@ -18,9 +18,9 @@ static inline int __copy_conv_sigset_to_user(compat_sigset_t __user *d,
|
|||
BUG_ON(sizeof(*d) != sizeof(*s));
|
||||
BUG_ON(_NSIG_WORDS != 2);
|
||||
|
||||
err = __put_user(s->sig[0], &d->sig[0]);
|
||||
err = __put_user(s->sig[0], &d->sig[0]);
|
||||
err |= __put_user(s->sig[0] >> 32, &d->sig[1]);
|
||||
err |= __put_user(s->sig[1], &d->sig[2]);
|
||||
err |= __put_user(s->sig[1], &d->sig[2]);
|
||||
err |= __put_user(s->sig[1] >> 32, &d->sig[3]);
|
||||
|
||||
return err;
|
||||
|
|
|
@ -120,7 +120,7 @@ struct compat_statfs {
|
|||
|
||||
typedef u32 compat_old_sigset_t; /* at least 32 bits */
|
||||
|
||||
#define _COMPAT_NSIG 128 /* Don't ask !$@#% ... */
|
||||
#define _COMPAT_NSIG 128 /* Don't ask !$@#% ... */
|
||||
#define _COMPAT_NSIG_BPW 32
|
||||
|
||||
typedef u32 compat_sigset_word;
|
||||
|
@ -168,7 +168,7 @@ typedef struct compat_siginfo {
|
|||
s32 _addr; /* faulting insn/memory ref. */
|
||||
} _sigfault;
|
||||
|
||||
/* SIGPOLL, SIGXFSZ (To do ...) */
|
||||
/* SIGPOLL, SIGXFSZ (To do ...) */
|
||||
struct {
|
||||
int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
|
||||
int _fd;
|
||||
|
@ -179,7 +179,7 @@ typedef struct compat_siginfo {
|
|||
timer_t _tid; /* timer id */
|
||||
int _overrun; /* overrun count */
|
||||
compat_sigval_t _sigval;/* same as below */
|
||||
int _sys_private; /* not to be passed to user */
|
||||
int _sys_private; /* not to be passed to user */
|
||||
} _timer;
|
||||
|
||||
/* POSIX.1b signals */
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <cpu-feature-overrides.h>
|
||||
|
||||
#ifndef current_cpu_type
|
||||
#define current_cpu_type() current_cpu_data.cputype
|
||||
#define current_cpu_type() current_cpu_data.cputype
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -87,10 +87,10 @@
|
|||
#define cpu_has_mips16 (cpu_data[0].ases & MIPS_ASE_MIPS16)
|
||||
#endif
|
||||
#ifndef cpu_has_mdmx
|
||||
#define cpu_has_mdmx (cpu_data[0].ases & MIPS_ASE_MDMX)
|
||||
#define cpu_has_mdmx (cpu_data[0].ases & MIPS_ASE_MDMX)
|
||||
#endif
|
||||
#ifndef cpu_has_mips3d
|
||||
#define cpu_has_mips3d (cpu_data[0].ases & MIPS_ASE_MIPS3D)
|
||||
#define cpu_has_mips3d (cpu_data[0].ases & MIPS_ASE_MIPS3D)
|
||||
#endif
|
||||
#ifndef cpu_has_smartmips
|
||||
#define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS)
|
||||
|
@ -108,11 +108,11 @@
|
|||
#define cpu_has_ic_fills_f_dc (cpu_data[0].icache.flags & MIPS_CACHE_IC_F_DC)
|
||||
#endif
|
||||
#ifndef cpu_has_pindexed_dcache
|
||||
#define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
|
||||
#define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* I-Cache snoops remote store. This only matters on SMP. Some multiprocessors
|
||||
* I-Cache snoops remote store. This only matters on SMP. Some multiprocessors
|
||||
* such as the R10000 have I-Caches that snoop local stores; the embedded ones
|
||||
* don't. For maintaining I-cache coherency this means we need to flush the
|
||||
* D-cache all the way back to whever the I-cache does refills from, so the
|
||||
|
@ -148,8 +148,8 @@
|
|||
*/
|
||||
#define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2)
|
||||
#define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2)
|
||||
#define cpu_has_mips_r1 (cpu_has_mips32r1 | cpu_has_mips64r1)
|
||||
#define cpu_has_mips_r2 (cpu_has_mips32r2 | cpu_has_mips64r2)
|
||||
#define cpu_has_mips_r1 (cpu_has_mips32r1 | cpu_has_mips64r1)
|
||||
#define cpu_has_mips_r2 (cpu_has_mips32r2 | cpu_has_mips64r2)
|
||||
#define cpu_has_mips_r (cpu_has_mips32r1 | cpu_has_mips32r2 | \
|
||||
cpu_has_mips64r1 | cpu_has_mips64r2)
|
||||
|
||||
|
@ -159,7 +159,7 @@
|
|||
|
||||
/*
|
||||
* MIPS32, MIPS64, VR5500, IDT32332, IDT32334 and maybe a few other
|
||||
* pre-MIPS32/MIPS53 processors have CLO, CLZ. The IDT RC64574 is 64-bit and
|
||||
* pre-MIPS32/MIPS53 processors have CLO, CLZ. The IDT RC64574 is 64-bit and
|
||||
* has CLO and CLZ but not DCLO nor DCLZ. For 64-bit kernels
|
||||
* cpu_has_clo_clz also indicates the availability of DCLO and DCLZ.
|
||||
*/
|
||||
|
@ -191,7 +191,7 @@
|
|||
# define cpu_has_64bits (cpu_data[0].isa_level & MIPS_CPU_ISA_64BIT)
|
||||
# endif
|
||||
# ifndef cpu_has_64bit_zero_reg
|
||||
# define cpu_has_64bit_zero_reg (cpu_data[0].isa_level & MIPS_CPU_ISA_64BIT)
|
||||
# define cpu_has_64bit_zero_reg (cpu_data[0].isa_level & MIPS_CPU_ISA_64BIT)
|
||||
# endif
|
||||
# ifndef cpu_has_64bit_gp_regs
|
||||
# define cpu_has_64bit_gp_regs 0
|
||||
|
|
|
@ -52,14 +52,14 @@ struct cpuinfo_mips {
|
|||
unsigned int cputype;
|
||||
int isa_level;
|
||||
int tlbsize;
|
||||
struct cache_desc icache; /* Primary I-cache */
|
||||
struct cache_desc dcache; /* Primary D or combined I/D cache */
|
||||
struct cache_desc scache; /* Secondary cache */
|
||||
struct cache_desc tcache; /* Tertiary/split secondary cache */
|
||||
int srsets; /* Shadow register sets */
|
||||
struct cache_desc icache; /* Primary I-cache */
|
||||
struct cache_desc dcache; /* Primary D or combined I/D cache */
|
||||
struct cache_desc scache; /* Secondary cache */
|
||||
struct cache_desc tcache; /* Tertiary/split secondary cache */
|
||||
int srsets; /* Shadow register sets */
|
||||
int core; /* physical core number */
|
||||
#ifdef CONFIG_64BIT
|
||||
int vmbits; /* Virtual memory size in bits */
|
||||
int vmbits; /* Virtual memory size in bits */
|
||||
#endif
|
||||
#if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC)
|
||||
/*
|
||||
|
@ -68,12 +68,12 @@ struct cpuinfo_mips {
|
|||
* exception resources, ASID spaces, etc, are common
|
||||
* to all TCs within the same VPE.
|
||||
*/
|
||||
int vpe_id; /* Virtual Processor number */
|
||||
int vpe_id; /* Virtual Processor number */
|
||||
#endif
|
||||
#ifdef CONFIG_MIPS_MT_SMTC
|
||||
int tc_id; /* Thread Context number */
|
||||
int tc_id; /* Thread Context number */
|
||||
#endif
|
||||
void *data; /* Additional data */
|
||||
void *data; /* Additional data */
|
||||
unsigned int watch_reg_count; /* Number that exist */
|
||||
unsigned int watch_reg_use_cnt; /* Usable by ptrace */
|
||||
#define NUM_WATCH_REGS 4
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* cpu.h: Values of the PRId register used to match up
|
||||
* various MIPS cpu types.
|
||||
* various MIPS cpu types.
|
||||
*
|
||||
* Copyright (C) 1996 David S. Miller (davem@davemloft.net)
|
||||
* Copyright (C) 2004 Maciej W. Rozycki
|
||||
|
@ -9,14 +9,14 @@
|
|||
#define _ASM_CPU_H
|
||||
|
||||
/* Assigned Company values for bits 23:16 of the PRId Register
|
||||
(CP0 register 15, select 0). As of the MIPS32 and MIPS64 specs from
|
||||
(CP0 register 15, select 0). As of the MIPS32 and MIPS64 specs from
|
||||
MTI, the PRId register is defined in this (backwards compatible)
|
||||
way:
|
||||
|
||||
+----------------+----------------+----------------+----------------+
|
||||
| Company Options| Company ID | Processor ID | Revision |
|
||||
| Company Options| Company ID | Processor ID | Revision |
|
||||
+----------------+----------------+----------------+----------------+
|
||||
31 24 23 16 15 8 7
|
||||
31 24 23 16 15 8 7
|
||||
|
||||
I don't have docs for all the previous processors, but my impression is
|
||||
that bits 16-23 have been 0 for all MIPS processors before the MIPS32/64
|
||||
|
@ -29,7 +29,7 @@
|
|||
#define PRID_COMP_ALCHEMY 0x030000
|
||||
#define PRID_COMP_SIBYTE 0x040000
|
||||
#define PRID_COMP_SANDCRAFT 0x050000
|
||||
#define PRID_COMP_NXP 0x060000
|
||||
#define PRID_COMP_NXP 0x060000
|
||||
#define PRID_COMP_TOSHIBA 0x070000
|
||||
#define PRID_COMP_LSI 0x080000
|
||||
#define PRID_COMP_LEXRA 0x0b0000
|
||||
|
@ -38,9 +38,9 @@
|
|||
#define PRID_COMP_INGENIC 0xd00000
|
||||
|
||||
/*
|
||||
* Assigned values for the product ID register. In order to detect a
|
||||
* Assigned values for the product ID register. In order to detect a
|
||||
* certain CPU type exactly eventually additional registers may need to
|
||||
* be examined. These are valid when 23:16 == PRID_COMP_LEGACY
|
||||
* be examined. These are valid when 23:16 == PRID_COMP_LEGACY
|
||||
*/
|
||||
#define PRID_IMP_R2000 0x0100
|
||||
#define PRID_IMP_AU1_REV1 0x0100
|
||||
|
@ -101,14 +101,14 @@
|
|||
* These are the PRID's for when 23:16 == PRID_COMP_SIBYTE
|
||||
*/
|
||||
|
||||
#define PRID_IMP_SB1 0x0100
|
||||
#define PRID_IMP_SB1A 0x1100
|
||||
#define PRID_IMP_SB1 0x0100
|
||||
#define PRID_IMP_SB1A 0x1100
|
||||
|
||||
/*
|
||||
* These are the PRID's for when 23:16 == PRID_COMP_SANDCRAFT
|
||||
*/
|
||||
|
||||
#define PRID_IMP_SR71000 0x0400
|
||||
#define PRID_IMP_SR71000 0x0400
|
||||
|
||||
/*
|
||||
* These are the PRID's for when 23:16 == PRID_COMP_BROADCOM
|
||||
|
@ -145,7 +145,7 @@
|
|||
* These are the PRID's for when 23:16 == PRID_COMP_INGENIC
|
||||
*/
|
||||
|
||||
#define PRID_IMP_JZRISC 0x0200
|
||||
#define PRID_IMP_JZRISC 0x0200
|
||||
|
||||
/*
|
||||
* These are the PRID's for when 23:16 == PRID_COMP_NETLOGIC
|
||||
|
@ -188,9 +188,9 @@
|
|||
#define PRID_REV_R3000A 0x0030
|
||||
#define PRID_REV_R3000 0x0020
|
||||
#define PRID_REV_R2000A 0x0010
|
||||
#define PRID_REV_TX3912 0x0010
|
||||
#define PRID_REV_TX3922 0x0030
|
||||
#define PRID_REV_TX3927 0x0040
|
||||
#define PRID_REV_TX3912 0x0010
|
||||
#define PRID_REV_TX3922 0x0030
|
||||
#define PRID_REV_TX3927 0x0040
|
||||
#define PRID_REV_VR4111 0x0050
|
||||
#define PRID_REV_VR4181 0x0050 /* Same as VR4111 */
|
||||
#define PRID_REV_VR4121 0x0060
|
||||
|
@ -217,9 +217,9 @@
|
|||
* FPU implementation/revision register (CP1 control register 0).
|
||||
*
|
||||
* +---------------------------------+----------------+----------------+
|
||||
* | 0 | Implementation | Revision |
|
||||
* | 0 | Implementation | Revision |
|
||||
* +---------------------------------+----------------+----------------+
|
||||
* 31 16 15 8 7 0
|
||||
* 31 16 15 8 7 0
|
||||
*/
|
||||
|
||||
#define FPIR_IMP_NONE 0x0000
|
||||
|
|
|
@ -25,22 +25,22 @@
|
|||
*/
|
||||
#define IOASIC_SYS_ROM (0*IOASIC_SLOT_SIZE) /* system board ROM */
|
||||
#define IOASIC_IOCTL (1*IOASIC_SLOT_SIZE) /* I/O ASIC */
|
||||
#define IOASIC_ESAR (2*IOASIC_SLOT_SIZE) /* LANCE MAC address chip */
|
||||
#define IOASIC_LANCE (3*IOASIC_SLOT_SIZE) /* LANCE Ethernet */
|
||||
#define IOASIC_SCC0 (4*IOASIC_SLOT_SIZE) /* SCC #0 */
|
||||
#define IOASIC_ESAR (2*IOASIC_SLOT_SIZE) /* LANCE MAC address chip */
|
||||
#define IOASIC_LANCE (3*IOASIC_SLOT_SIZE) /* LANCE Ethernet */
|
||||
#define IOASIC_SCC0 (4*IOASIC_SLOT_SIZE) /* SCC #0 */
|
||||
#define IOASIC_VDAC_HI (5*IOASIC_SLOT_SIZE) /* VDAC (maxine) */
|
||||
#define IOASIC_SCC1 (6*IOASIC_SLOT_SIZE) /* SCC #1 (3min, 3max+) */
|
||||
#define IOASIC_SCC1 (6*IOASIC_SLOT_SIZE) /* SCC #1 (3min, 3max+) */
|
||||
#define IOASIC_VDAC_LO (7*IOASIC_SLOT_SIZE) /* VDAC (maxine) */
|
||||
#define IOASIC_TOY (8*IOASIC_SLOT_SIZE) /* RTC */
|
||||
#define IOASIC_ISDN (9*IOASIC_SLOT_SIZE) /* ISDN (maxine) */
|
||||
#define IOASIC_TOY (8*IOASIC_SLOT_SIZE) /* RTC */
|
||||
#define IOASIC_ISDN (9*IOASIC_SLOT_SIZE) /* ISDN (maxine) */
|
||||
#define IOASIC_ERRADDR (9*IOASIC_SLOT_SIZE) /* bus error address (3max+) */
|
||||
#define IOASIC_CHKSYN (10*IOASIC_SLOT_SIZE) /* ECC syndrome (3max+) */
|
||||
#define IOASIC_CHKSYN (10*IOASIC_SLOT_SIZE) /* ECC syndrome (3max+) */
|
||||
#define IOASIC_ACC_BUS (10*IOASIC_SLOT_SIZE) /* ACCESS.bus (maxine) */
|
||||
#define IOASIC_MCR (11*IOASIC_SLOT_SIZE) /* memory control (3max+) */
|
||||
#define IOASIC_FLOPPY (11*IOASIC_SLOT_SIZE) /* FDC (maxine) */
|
||||
#define IOASIC_SCSI (12*IOASIC_SLOT_SIZE) /* ASC SCSI */
|
||||
#define IOASIC_MCR (11*IOASIC_SLOT_SIZE) /* memory control (3max+) */
|
||||
#define IOASIC_FLOPPY (11*IOASIC_SLOT_SIZE) /* FDC (maxine) */
|
||||
#define IOASIC_SCSI (12*IOASIC_SLOT_SIZE) /* ASC SCSI */
|
||||
#define IOASIC_FDC_DMA (13*IOASIC_SLOT_SIZE) /* FDC DMA (maxine) */
|
||||
#define IOASIC_SCSI_DMA (14*IOASIC_SLOT_SIZE) /* ??? */
|
||||
#define IOASIC_SCSI_DMA (14*IOASIC_SLOT_SIZE) /* ??? */
|
||||
#define IOASIC_RES_15 (15*IOASIC_SLOT_SIZE) /* unused? */
|
||||
|
||||
|
||||
|
|
|
@ -57,12 +57,12 @@
|
|||
/*
|
||||
* System Control & Status Register bits.
|
||||
*/
|
||||
#define KN01_CSR_MNFMOD (1<<15) /* MNFMOD manufacturing jumper */
|
||||
#define KN01_CSR_STATUS (1<<14) /* self-test result status output */
|
||||
#define KN01_CSR_PARDIS (1<<13) /* parity error disable */
|
||||
#define KN01_CSR_CRSRTST (1<<12) /* PCC test output */
|
||||
#define KN01_CSR_MONO (1<<11) /* mono/color fb SIMM installed */
|
||||
#define KN01_CSR_MEMERR (1<<10) /* write timeout error status & ack*/
|
||||
#define KN01_CSR_MNFMOD (1<<15) /* MNFMOD manufacturing jumper */
|
||||
#define KN01_CSR_STATUS (1<<14) /* self-test result status output */
|
||||
#define KN01_CSR_PARDIS (1<<13) /* parity error disable */
|
||||
#define KN01_CSR_CRSRTST (1<<12) /* PCC test output */
|
||||
#define KN01_CSR_MONO (1<<11) /* mono/color fb SIMM installed */
|
||||
#define KN01_CSR_MEMERR (1<<10) /* write timeout error status & ack*/
|
||||
#define KN01_CSR_VINT (1<<9) /* PCC area detect #2 status & ack */
|
||||
#define KN01_CSR_TXDIS (1<<8) /* DZ11 transmit disable */
|
||||
#define KN01_CSR_VBGTRG (1<<2) /* blue DAC voltage over green (r/o) */
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
#define KN03CA_IO_SSR_ISDN_RST (1<<12) /* ~ISDN (Am79C30A) reset */
|
||||
|
||||
#define KN03CA_IO_SSR_FLOPPY_RST (1<<7) /* ~FDC (82077) reset */
|
||||
#define KN03CA_IO_SSR_VIDEO_RST (1<<6) /* ~framebuffer reset */
|
||||
#define KN03CA_IO_SSR_VIDEO_RST (1<<6) /* ~framebuffer reset */
|
||||
#define KN03CA_IO_SSR_AB_RST (1<<5) /* ACCESS.bus reset */
|
||||
#define KN03CA_IO_SSR_RES_4 (1<<4) /* unused */
|
||||
#define KN03CA_IO_SSR_RES_3 (1<<4) /* unused */
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
#ifdef CONFIG_64BIT
|
||||
|
||||
#define prom_is_rex(magic) 1 /* KN04 and KN05 are REX PROMs. */
|
||||
#define prom_is_rex(magic) 1 /* KN04 and KN05 are REX PROMs. */
|
||||
|
||||
#else /* !CONFIG_64BIT */
|
||||
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче