Merge with /home/stefan/git/u-boot/denx
This commit is contained in:
190
include/ahci.h
Normal file
190
include/ahci.h
Normal file
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Copyright (C) Freescale Semiconductor, Inc. 2006. All rights reserved.
|
||||
* Author: Jason Jin<Jason.jin@freescale.com>
|
||||
* Zhang Wei<wei.zhang@freescale.com>
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
#ifndef _AHCI_H_
|
||||
#define _AHCI_H_
|
||||
|
||||
#define AHCI_PCI_BAR 0x24
|
||||
#define AHCI_MAX_SG 56 /* hardware max is 64K */
|
||||
#define AHCI_CMD_SLOT_SZ 32
|
||||
#define AHCI_RX_FIS_SZ 256
|
||||
#define AHCI_CMD_TBL_HDR 0x80
|
||||
#define AHCI_CMD_TBL_CDB 0x40
|
||||
#define AHCI_CMD_TBL_SZ AHCI_CMD_TBL_HDR + (AHCI_MAX_SG * 16)
|
||||
#define AHCI_PORT_PRIV_DMA_SZ AHCI_CMD_SLOT_SZ + AHCI_CMD_TBL_SZ \
|
||||
+ AHCI_RX_FIS_SZ
|
||||
#define AHCI_CMD_ATAPI (1 << 5)
|
||||
#define AHCI_CMD_WRITE (1 << 6)
|
||||
#define AHCI_CMD_PREFETCH (1 << 7)
|
||||
#define AHCI_CMD_RESET (1 << 8)
|
||||
#define AHCI_CMD_CLR_BUSY (1 << 10)
|
||||
|
||||
#define RX_FIS_D2H_REG 0x40 /* offset of D2H Register FIS data */
|
||||
|
||||
/* Global controller registers */
|
||||
#define HOST_CAP 0x00 /* host capabilities */
|
||||
#define HOST_CTL 0x04 /* global host control */
|
||||
#define HOST_IRQ_STAT 0x08 /* interrupt status */
|
||||
#define HOST_PORTS_IMPL 0x0c /* bitmap of implemented ports */
|
||||
#define HOST_VERSION 0x10 /* AHCI spec. version compliancy */
|
||||
|
||||
/* HOST_CTL bits */
|
||||
#define HOST_RESET (1 << 0) /* reset controller; self-clear */
|
||||
#define HOST_IRQ_EN (1 << 1) /* global IRQ enable */
|
||||
#define HOST_AHCI_EN (1 << 31) /* AHCI enabled */
|
||||
|
||||
/* Registers for each SATA port */
|
||||
#define PORT_LST_ADDR 0x00 /* command list DMA addr */
|
||||
#define PORT_LST_ADDR_HI 0x04 /* command list DMA addr hi */
|
||||
#define PORT_FIS_ADDR 0x08 /* FIS rx buf addr */
|
||||
#define PORT_FIS_ADDR_HI 0x0c /* FIS rx buf addr hi */
|
||||
#define PORT_IRQ_STAT 0x10 /* interrupt status */
|
||||
#define PORT_IRQ_MASK 0x14 /* interrupt enable/disable mask */
|
||||
#define PORT_CMD 0x18 /* port command */
|
||||
#define PORT_TFDATA 0x20 /* taskfile data */
|
||||
#define PORT_SIG 0x24 /* device TF signature */
|
||||
#define PORT_CMD_ISSUE 0x38 /* command issue */
|
||||
#define PORT_SCR 0x28 /* SATA phy register block */
|
||||
#define PORT_SCR_STAT 0x28 /* SATA phy register: SStatus */
|
||||
#define PORT_SCR_CTL 0x2c /* SATA phy register: SControl */
|
||||
#define PORT_SCR_ERR 0x30 /* SATA phy register: SError */
|
||||
#define PORT_SCR_ACT 0x34 /* SATA phy register: SActive */
|
||||
|
||||
/* PORT_IRQ_{STAT,MASK} bits */
|
||||
#define PORT_IRQ_COLD_PRES (1 << 31) /* cold presence detect */
|
||||
#define PORT_IRQ_TF_ERR (1 << 30) /* task file error */
|
||||
#define PORT_IRQ_HBUS_ERR (1 << 29) /* host bus fatal error */
|
||||
#define PORT_IRQ_HBUS_DATA_ERR (1 << 28) /* host bus data error */
|
||||
#define PORT_IRQ_IF_ERR (1 << 27) /* interface fatal error */
|
||||
#define PORT_IRQ_IF_NONFATAL (1 << 26) /* interface non-fatal error */
|
||||
#define PORT_IRQ_OVERFLOW (1 << 24) /* xfer exhausted available S/G */
|
||||
#define PORT_IRQ_BAD_PMP (1 << 23) /* incorrect port multiplier */
|
||||
|
||||
#define PORT_IRQ_PHYRDY (1 << 22) /* PhyRdy changed */
|
||||
#define PORT_IRQ_DEV_ILCK (1 << 7) /* device interlock */
|
||||
#define PORT_IRQ_CONNECT (1 << 6) /* port connect change status */
|
||||
#define PORT_IRQ_SG_DONE (1 << 5) /* descriptor processed */
|
||||
#define PORT_IRQ_UNK_FIS (1 << 4) /* unknown FIS rx'd */
|
||||
#define PORT_IRQ_SDB_FIS (1 << 3) /* Set Device Bits FIS rx'd */
|
||||
#define PORT_IRQ_DMAS_FIS (1 << 2) /* DMA Setup FIS rx'd */
|
||||
#define PORT_IRQ_PIOS_FIS (1 << 1) /* PIO Setup FIS rx'd */
|
||||
#define PORT_IRQ_D2H_REG_FIS (1 << 0) /* D2H Register FIS rx'd */
|
||||
|
||||
#define PORT_IRQ_FATAL PORT_IRQ_TF_ERR | PORT_IRQ_HBUS_ERR \
|
||||
| PORT_IRQ_HBUS_DATA_ERR | PORT_IRQ_IF_ERR
|
||||
|
||||
#define DEF_PORT_IRQ PORT_IRQ_FATAL | PORT_IRQ_PHYRDY \
|
||||
| PORT_IRQ_CONNECT | PORT_IRQ_SG_DONE \
|
||||
| PORT_IRQ_UNK_FIS | PORT_IRQ_SDB_FIS \
|
||||
| PORT_IRQ_DMAS_FIS | PORT_IRQ_PIOS_FIS \
|
||||
| PORT_IRQ_D2H_REG_FIS
|
||||
|
||||
/* PORT_CMD bits */
|
||||
#define PORT_CMD_ATAPI (1 << 24) /* Device is ATAPI */
|
||||
#define PORT_CMD_LIST_ON (1 << 15) /* cmd list DMA engine running */
|
||||
#define PORT_CMD_FIS_ON (1 << 14) /* FIS DMA engine running */
|
||||
#define PORT_CMD_FIS_RX (1 << 4) /* Enable FIS receive DMA engine */
|
||||
#define PORT_CMD_CLO (1 << 3) /* Command list override */
|
||||
#define PORT_CMD_POWER_ON (1 << 2) /* Power up device */
|
||||
#define PORT_CMD_SPIN_UP (1 << 1) /* Spin up device */
|
||||
#define PORT_CMD_START (1 << 0) /* Enable port DMA engine */
|
||||
|
||||
#define PORT_CMD_ICC_ACTIVE (0x1 << 28) /* Put i/f in active state */
|
||||
#define PORT_CMD_ICC_PARTIAL (0x2 << 28) /* Put i/f in partial state */
|
||||
#define PORT_CMD_ICC_SLUMBER (0x6 << 28) /* Put i/f in slumber state */
|
||||
|
||||
#define AHCI_MAX_PORTS 32
|
||||
|
||||
/* SETFEATURES stuff */
|
||||
#define SETFEATURES_XFER 0x03
|
||||
#define XFER_UDMA_7 0x47
|
||||
#define XFER_UDMA_6 0x46
|
||||
#define XFER_UDMA_5 0x45
|
||||
#define XFER_UDMA_4 0x44
|
||||
#define XFER_UDMA_3 0x43
|
||||
#define XFER_UDMA_2 0x42
|
||||
#define XFER_UDMA_1 0x41
|
||||
#define XFER_UDMA_0 0x40
|
||||
#define XFER_MW_DMA_2 0x22
|
||||
#define XFER_MW_DMA_1 0x21
|
||||
#define XFER_MW_DMA_0 0x20
|
||||
#define XFER_SW_DMA_2 0x12
|
||||
#define XFER_SW_DMA_1 0x11
|
||||
#define XFER_SW_DMA_0 0x10
|
||||
#define XFER_PIO_4 0x0C
|
||||
#define XFER_PIO_3 0x0B
|
||||
#define XFER_PIO_2 0x0A
|
||||
#define XFER_PIO_1 0x09
|
||||
#define XFER_PIO_0 0x08
|
||||
#define XFER_PIO_SLOW 0x00
|
||||
|
||||
#define ATA_FLAG_SATA (1 << 3)
|
||||
#define ATA_FLAG_NO_LEGACY (1 << 4) /* no legacy mode check */
|
||||
#define ATA_FLAG_MMIO (1 << 6) /* use MMIO, not PIO */
|
||||
#define ATA_FLAG_SATA_RESET (1 << 7) /* (obsolete) use COMRESET */
|
||||
#define ATA_FLAG_PIO_DMA (1 << 8) /* PIO cmds via DMA */
|
||||
#define ATA_FLAG_NO_ATAPI (1 << 11) /* No ATAPI support */
|
||||
|
||||
struct ahci_cmd_hdr {
|
||||
u32 opts;
|
||||
u32 status;
|
||||
u32 tbl_addr;
|
||||
u32 tbl_addr_hi;
|
||||
u32 reserved[4];
|
||||
};
|
||||
|
||||
struct ahci_sg {
|
||||
u32 addr;
|
||||
u32 addr_hi;
|
||||
u32 reserved;
|
||||
u32 flags_size;
|
||||
};
|
||||
|
||||
struct ahci_ioports {
|
||||
u32 cmd_addr;
|
||||
u32 scr_addr;
|
||||
u32 port_mmio;
|
||||
struct ahci_cmd_hdr *cmd_slot;
|
||||
struct ahci_sg *cmd_tbl_sg;
|
||||
u32 cmd_tbl;
|
||||
u32 rx_fis;
|
||||
};
|
||||
|
||||
struct ahci_probe_ent {
|
||||
pci_dev_t dev;
|
||||
struct ahci_ioports port[AHCI_MAX_PORTS];
|
||||
u32 n_ports;
|
||||
u32 hard_port_no;
|
||||
u32 host_flags;
|
||||
u32 host_set_flags;
|
||||
u32 mmio_base;
|
||||
u32 pio_mask;
|
||||
u32 udma_mask;
|
||||
u32 flags;
|
||||
u32 cap; /* cache of HOST_CAP register */
|
||||
u32 port_map; /* cache of HOST_PORTS_IMPL reg */
|
||||
u32 link_port_map; /*linkup port map*/
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -6,10 +6,6 @@
|
||||
#ifndef __ARM925T_H__
|
||||
#define __ARM925T_H__
|
||||
|
||||
void gpioreserve(ushort mask);
|
||||
void gpiosetdir(ushort mask, ushort in);
|
||||
void gpiosetout(ushort mask, ushort out);
|
||||
void gpioinit(void);
|
||||
void archflashwp(void *archdata, int wp);
|
||||
|
||||
#endif /*__ARM925T_H__*/
|
||||
|
||||
46
include/asm-avr32/addrspace.h
Normal file
46
include/asm-avr32/addrspace.h
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_ADDRSPACE_H
|
||||
#define __ASM_AVR32_ADDRSPACE_H
|
||||
|
||||
/* Memory segments when segmentation is enabled */
|
||||
#define P0SEG 0x00000000
|
||||
#define P1SEG 0x80000000
|
||||
#define P2SEG 0xa0000000
|
||||
#define P3SEG 0xc0000000
|
||||
#define P4SEG 0xe0000000
|
||||
|
||||
/* Returns the privileged segment base of a given address */
|
||||
#define PXSEG(a) (((unsigned long)(a)) & 0xe0000000)
|
||||
|
||||
/* Returns the physical address of a PnSEG (n=1,2) address */
|
||||
#define PHYSADDR(a) (((unsigned long)(a)) & 0x1fffffff)
|
||||
|
||||
/*
|
||||
* Map an address to a certain privileged segment
|
||||
*/
|
||||
#define P1SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P1SEG))
|
||||
#define P2SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P2SEG))
|
||||
#define P3SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG))
|
||||
#define P4SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG))
|
||||
|
||||
#endif /* __ASM_AVR32_ADDRSPACE_H */
|
||||
232
include/asm-avr32/arch-at32ap7000/hmatrix2.h
Normal file
232
include/asm-avr32/arch-at32ap7000/hmatrix2.h
Normal file
@@ -0,0 +1,232 @@
|
||||
/*
|
||||
* Register definition for the High-speed Bus Matrix
|
||||
*/
|
||||
#ifndef __ASM_AVR32_HMATRIX2_H__
|
||||
#define __ASM_AVR32_HMATRIX2_H__
|
||||
|
||||
/* HMATRIX2 register offsets */
|
||||
#define HMATRIX2_MCFG0 0x0000
|
||||
#define HMATRIX2_MCFG1 0x0004
|
||||
#define HMATRIX2_MCFG2 0x0008
|
||||
#define HMATRIX2_MCFG3 0x000c
|
||||
#define HMATRIX2_MCFG4 0x0010
|
||||
#define HMATRIX2_MCFG5 0x0014
|
||||
#define HMATRIX2_MCFG6 0x0018
|
||||
#define HMATRIX2_MCFG7 0x001c
|
||||
#define HMATRIX2_MCFG8 0x0020
|
||||
#define HMATRIX2_MCFG9 0x0024
|
||||
#define HMATRIX2_MCFG10 0x0028
|
||||
#define HMATRIX2_MCFG11 0x002c
|
||||
#define HMATRIX2_MCFG12 0x0030
|
||||
#define HMATRIX2_MCFG13 0x0034
|
||||
#define HMATRIX2_MCFG14 0x0038
|
||||
#define HMATRIX2_MCFG15 0x003c
|
||||
#define HMATRIX2_SCFG0 0x0040
|
||||
#define HMATRIX2_SCFG1 0x0044
|
||||
#define HMATRIX2_SCFG2 0x0048
|
||||
#define HMATRIX2_SCFG3 0x004c
|
||||
#define HMATRIX2_SCFG4 0x0050
|
||||
#define HMATRIX2_SCFG5 0x0054
|
||||
#define HMATRIX2_SCFG6 0x0058
|
||||
#define HMATRIX2_SCFG7 0x005c
|
||||
#define HMATRIX2_SCFG8 0x0060
|
||||
#define HMATRIX2_SCFG9 0x0064
|
||||
#define HMATRIX2_SCFG10 0x0068
|
||||
#define HMATRIX2_SCFG11 0x006c
|
||||
#define HMATRIX2_SCFG12 0x0070
|
||||
#define HMATRIX2_SCFG13 0x0074
|
||||
#define HMATRIX2_SCFG14 0x0078
|
||||
#define HMATRIX2_SCFG15 0x007c
|
||||
#define HMATRIX2_PRAS0 0x0080
|
||||
#define HMATRIX2_PRBS0 0x0084
|
||||
#define HMATRIX2_PRAS1 0x0088
|
||||
#define HMATRIX2_PRBS1 0x008c
|
||||
#define HMATRIX2_PRAS2 0x0090
|
||||
#define HMATRIX2_PRBS2 0x0094
|
||||
#define HMATRIX2_PRAS3 0x0098
|
||||
#define HMATRIX2_PRBS3 0x009c
|
||||
#define HMATRIX2_PRAS4 0x00a0
|
||||
#define HMATRIX2_PRBS4 0x00a4
|
||||
#define HMATRIX2_PRAS5 0x00a8
|
||||
#define HMATRIX2_PRBS5 0x00ac
|
||||
#define HMATRIX2_PRAS6 0x00b0
|
||||
#define HMATRIX2_PRBS6 0x00b4
|
||||
#define HMATRIX2_PRAS7 0x00b8
|
||||
#define HMATRIX2_PRBS7 0x00bc
|
||||
#define HMATRIX2_PRAS8 0x00c0
|
||||
#define HMATRIX2_PRBS8 0x00c4
|
||||
#define HMATRIX2_PRAS9 0x00c8
|
||||
#define HMATRIX2_PRBS9 0x00cc
|
||||
#define HMATRIX2_PRAS10 0x00d0
|
||||
#define HMATRIX2_PRBS10 0x00d4
|
||||
#define HMATRIX2_PRAS11 0x00d8
|
||||
#define HMATRIX2_PRBS11 0x00dc
|
||||
#define HMATRIX2_PRAS12 0x00e0
|
||||
#define HMATRIX2_PRBS12 0x00e4
|
||||
#define HMATRIX2_PRAS13 0x00e8
|
||||
#define HMATRIX2_PRBS13 0x00ec
|
||||
#define HMATRIX2_PRAS14 0x00f0
|
||||
#define HMATRIX2_PRBS14 0x00f4
|
||||
#define HMATRIX2_PRAS15 0x00f8
|
||||
#define HMATRIX2_PRBS15 0x00fc
|
||||
#define HMATRIX2_MRCR 0x0100
|
||||
#define HMATRIX2_SFR0 0x0110
|
||||
#define HMATRIX2_SFR1 0x0114
|
||||
#define HMATRIX2_SFR2 0x0118
|
||||
#define HMATRIX2_SFR3 0x011c
|
||||
#define HMATRIX2_SFR4 0x0120
|
||||
#define HMATRIX2_SFR5 0x0124
|
||||
#define HMATRIX2_SFR6 0x0128
|
||||
#define HMATRIX2_SFR7 0x012c
|
||||
#define HMATRIX2_SFR8 0x0130
|
||||
#define HMATRIX2_SFR9 0x0134
|
||||
#define HMATRIX2_SFR10 0x0138
|
||||
#define HMATRIX2_SFR11 0x013c
|
||||
#define HMATRIX2_SFR12 0x0140
|
||||
#define HMATRIX2_SFR13 0x0144
|
||||
#define HMATRIX2_SFR14 0x0148
|
||||
#define HMATRIX2_SFR15 0x014c
|
||||
#define HMATRIX2_VERSION 0x01fc
|
||||
|
||||
/* Bitfields in MCFG0 */
|
||||
#define HMATRIX2_ULBT_OFFSET 0
|
||||
#define HMATRIX2_ULBT_SIZE 3
|
||||
|
||||
/* Bitfields in SCFG0 */
|
||||
#define HMATRIX2_SLOT_CYCLE_OFFSET 0
|
||||
#define HMATRIX2_SLOT_CYCLE_SIZE 8
|
||||
#define HMATRIX2_DEFMSTR_TYPE_OFFSET 16
|
||||
#define HMATRIX2_DEFMSTR_TYPE_SIZE 2
|
||||
#define HMATRIX2_FIXED_DEFMSTR_OFFSET 18
|
||||
#define HMATRIX2_FIXED_DEFMSTR_SIZE 4
|
||||
#define HMATRIX2_ARBT_OFFSET 24
|
||||
#define HMATRIX2_ARBT_SIZE 2
|
||||
|
||||
/* Bitfields in PRAS0 */
|
||||
#define HMATRIX2_M0PR_OFFSET 0
|
||||
#define HMATRIX2_M0PR_SIZE 4
|
||||
#define HMATRIX2_M1PR_OFFSET 4
|
||||
#define HMATRIX2_M1PR_SIZE 4
|
||||
#define HMATRIX2_M2PR_OFFSET 8
|
||||
#define HMATRIX2_M2PR_SIZE 4
|
||||
#define HMATRIX2_M3PR_OFFSET 12
|
||||
#define HMATRIX2_M3PR_SIZE 4
|
||||
#define HMATRIX2_M4PR_OFFSET 16
|
||||
#define HMATRIX2_M4PR_SIZE 4
|
||||
#define HMATRIX2_M5PR_OFFSET 20
|
||||
#define HMATRIX2_M5PR_SIZE 4
|
||||
#define HMATRIX2_M6PR_OFFSET 24
|
||||
#define HMATRIX2_M6PR_SIZE 4
|
||||
#define HMATRIX2_M7PR_OFFSET 28
|
||||
#define HMATRIX2_M7PR_SIZE 4
|
||||
|
||||
/* Bitfields in PRBS0 */
|
||||
#define HMATRIX2_M8PR_OFFSET 0
|
||||
#define HMATRIX2_M8PR_SIZE 4
|
||||
#define HMATRIX2_M9PR_OFFSET 4
|
||||
#define HMATRIX2_M9PR_SIZE 4
|
||||
#define HMATRIX2_M10PR_OFFSET 8
|
||||
#define HMATRIX2_M10PR_SIZE 4
|
||||
#define HMATRIX2_M11PR_OFFSET 12
|
||||
#define HMATRIX2_M11PR_SIZE 4
|
||||
#define HMATRIX2_M12PR_OFFSET 16
|
||||
#define HMATRIX2_M12PR_SIZE 4
|
||||
#define HMATRIX2_M13PR_OFFSET 20
|
||||
#define HMATRIX2_M13PR_SIZE 4
|
||||
#define HMATRIX2_M14PR_OFFSET 24
|
||||
#define HMATRIX2_M14PR_SIZE 4
|
||||
#define HMATRIX2_M15PR_OFFSET 28
|
||||
#define HMATRIX2_M15PR_SIZE 4
|
||||
|
||||
/* Bitfields in MRCR */
|
||||
#define HMATRIX2_RBC0_OFFSET 0
|
||||
#define HMATRIX2_RBC0_SIZE 1
|
||||
#define HMATRIX2_RBC1_OFFSET 1
|
||||
#define HMATRIX2_RBC1_SIZE 1
|
||||
#define HMATRIX2_RBC2_OFFSET 2
|
||||
#define HMATRIX2_RBC2_SIZE 1
|
||||
#define HMATRIX2_RBC3_OFFSET 3
|
||||
#define HMATRIX2_RBC3_SIZE 1
|
||||
#define HMATRIX2_RBC4_OFFSET 4
|
||||
#define HMATRIX2_RBC4_SIZE 1
|
||||
#define HMATRIX2_RBC5_OFFSET 5
|
||||
#define HMATRIX2_RBC5_SIZE 1
|
||||
#define HMATRIX2_RBC6_OFFSET 6
|
||||
#define HMATRIX2_RBC6_SIZE 1
|
||||
#define HMATRIX2_RBC7_OFFSET 7
|
||||
#define HMATRIX2_RBC7_SIZE 1
|
||||
#define HMATRIX2_RBC8_OFFSET 8
|
||||
#define HMATRIX2_RBC8_SIZE 1
|
||||
#define HMATRIX2_RBC9_OFFSET 9
|
||||
#define HMATRIX2_RBC9_SIZE 1
|
||||
#define HMATRIX2_RBC10_OFFSET 10
|
||||
#define HMATRIX2_RBC10_SIZE 1
|
||||
#define HMATRIX2_RBC11_OFFSET 11
|
||||
#define HMATRIX2_RBC11_SIZE 1
|
||||
#define HMATRIX2_RBC12_OFFSET 12
|
||||
#define HMATRIX2_RBC12_SIZE 1
|
||||
#define HMATRIX2_RBC13_OFFSET 13
|
||||
#define HMATRIX2_RBC13_SIZE 1
|
||||
#define HMATRIX2_RBC14_OFFSET 14
|
||||
#define HMATRIX2_RBC14_SIZE 1
|
||||
#define HMATRIX2_RBC15_OFFSET 15
|
||||
#define HMATRIX2_RBC15_SIZE 1
|
||||
|
||||
/* Bitfields in SFR0 */
|
||||
#define HMATRIX2_SFR_OFFSET 0
|
||||
#define HMATRIX2_SFR_SIZE 32
|
||||
|
||||
/* Bitfields in SFR4 */
|
||||
#define HMATRIX2_CS1A_OFFSET 1
|
||||
#define HMATRIX2_CS1A_SIZE 1
|
||||
#define HMATRIX2_CS3A_OFFSET 3
|
||||
#define HMATRIX2_CS3A_SIZE 1
|
||||
#define HMATRIX2_CS4A_OFFSET 4
|
||||
#define HMATRIX2_CS4A_SIZE 1
|
||||
#define HMATRIX2_CS5A_OFFSET 5
|
||||
#define HMATRIX2_CS5A_SIZE 1
|
||||
#define HMATRIX2_DBPUC_OFFSET 8
|
||||
#define HMATRIX2_DBPUC_SIZE 1
|
||||
|
||||
/* Bitfields in VERSION */
|
||||
#define HMATRIX2_VERSION_OFFSET 0
|
||||
#define HMATRIX2_VERSION_SIZE 12
|
||||
#define HMATRIX2_MFN_OFFSET 16
|
||||
#define HMATRIX2_MFN_SIZE 3
|
||||
|
||||
/* Constants for ULBT */
|
||||
#define HMATRIX2_ULBT_INFINITE 0
|
||||
#define HMATRIX2_ULBT_SINGLE 1
|
||||
#define HMATRIX2_ULBT_FOUR_BEAT 2
|
||||
#define HMATRIX2_ULBT_SIXTEEN_BEAT 4
|
||||
|
||||
/* Constants for DEFMSTR_TYPE */
|
||||
#define HMATRIX2_DEFMSTR_TYPE_NO_DEFAULT 0
|
||||
#define HMATRIX2_DEFMSTR_TYPE_LAST_DEFAULT 1
|
||||
#define HMATRIX2_DEFMSTR_TYPE_FIXED_DEFAULT 2
|
||||
|
||||
/* Constants for ARBT */
|
||||
#define HMATRIX2_ARBT_ROUND_ROBIN 0
|
||||
#define HMATRIX2_ARBT_FIXED_PRIORITY 1
|
||||
|
||||
/* Bit manipulation macros */
|
||||
#define HMATRIX2_BIT(name) \
|
||||
(1 << HMATRIX2_##name##_OFFSET)
|
||||
#define HMATRIX2_BF(name,value) \
|
||||
(((value) & ((1 << HMATRIX2_##name##_SIZE) - 1)) \
|
||||
<< HMATRIX2_##name##_OFFSET)
|
||||
#define HMATRIX2_BFEXT(name,value) \
|
||||
(((value) >> HMATRIX2_##name##_OFFSET) \
|
||||
& ((1 << HMATRIX2_##name##_SIZE) - 1))
|
||||
#define HMATRIX2_BFINS(name,value,old) \
|
||||
(((old) & ~(((1 << HMATRIX2_##name##_SIZE) - 1) \
|
||||
<< HMATRIX2_##name##_OFFSET)) \
|
||||
| HMATRIX2_BF(name,value))
|
||||
|
||||
/* Register access macros */
|
||||
#define hmatrix2_readl(port,reg) \
|
||||
readl((port)->regs + HMATRIX2_##reg)
|
||||
#define hmatrix2_writel(port,reg,value) \
|
||||
writel((value), (port)->regs + HMATRIX2_##reg)
|
||||
|
||||
#endif /* __ASM_AVR32_HMATRIX2_H__ */
|
||||
61
include/asm-avr32/arch-at32ap7000/memory-map.h
Normal file
61
include/asm-avr32/arch-at32ap7000/memory-map.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_PART_MEMORY_MAP_H__
|
||||
#define __ASM_AVR32_PART_MEMORY_MAP_H__
|
||||
|
||||
#define AUDIOC_BASE 0xFFF02800
|
||||
#define DAC_BASE 0xFFF02000
|
||||
#define DMAC_BASE 0xFF200000
|
||||
#define ECC_BASE 0xFFF03C00
|
||||
#define HISI_BASE 0xFFF02C00
|
||||
#define HMATRIX_BASE 0xFFF00800
|
||||
#define HSDRAMC_BASE 0xFFF03800
|
||||
#define HSMC_BASE 0xFFF03400
|
||||
#define LCDC_BASE 0xFF000000
|
||||
#define MACB0_BASE 0xFFF01800
|
||||
#define MACB1_BASE 0xFFF01C00
|
||||
#define MMCI_BASE 0xFFF02400
|
||||
#define PIOA_BASE 0xFFE02800
|
||||
#define PIOB_BASE 0xFFE02C00
|
||||
#define PIOC_BASE 0xFFE03000
|
||||
#define PIOD_BASE 0xFFE03400
|
||||
#define PIOE_BASE 0xFFE03800
|
||||
#define PSIF_BASE 0xFFE03C00
|
||||
#define PWM_BASE 0xFFF01400
|
||||
#define SM_BASE 0xFFF00000
|
||||
#define INTC_BASE 0XFFF00400
|
||||
#define SPI0_BASE 0xFFE00000
|
||||
#define SPI1_BASE 0xFFE00400
|
||||
#define SSC0_BASE 0xFFE01C00
|
||||
#define SSC1_BASE 0xFFE02000
|
||||
#define SSC2_BASE 0xFFE02400
|
||||
#define TIMER0_BASE 0xFFF00C00
|
||||
#define TIMER1_BASE 0xFFF01000
|
||||
#define TWI_BASE 0xFFE00800
|
||||
#define USART0_BASE 0xFFE00C00
|
||||
#define USART1_BASE 0xFFE01000
|
||||
#define USART2_BASE 0xFFE01400
|
||||
#define USART3_BASE 0xFFE01800
|
||||
#define USB_FIFO 0xFF300000
|
||||
#define USB_BASE 0xFFF03000
|
||||
|
||||
#endif /* __ASM_AVR32_PART_MEMORY_MAP_H__ */
|
||||
146
include/asm-avr32/arch-at32ap7000/platform.h
Normal file
146
include/asm-avr32/arch-at32ap7000/platform.h
Normal file
@@ -0,0 +1,146 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef _ASM_AVR32_ARCH_PM_H
|
||||
#define _ASM_AVR32_ARCH_PM_H
|
||||
|
||||
#include <config.h>
|
||||
|
||||
enum clock_domain_id {
|
||||
CLOCK_CPU,
|
||||
CLOCK_HSB,
|
||||
CLOCK_PBA,
|
||||
CLOCK_PBB,
|
||||
NR_CLOCK_DOMAINS,
|
||||
};
|
||||
|
||||
enum resource_type {
|
||||
RESOURCE_GPIO,
|
||||
RESOURCE_CLOCK,
|
||||
};
|
||||
|
||||
enum gpio_func {
|
||||
GPIO_FUNC_GPIO,
|
||||
GPIO_FUNC_A,
|
||||
GPIO_FUNC_B,
|
||||
};
|
||||
|
||||
enum device_id {
|
||||
DEVICE_HEBI,
|
||||
DEVICE_PBA_BRIDGE,
|
||||
DEVICE_PBB_BRIDGE,
|
||||
DEVICE_HRAMC,
|
||||
/* GPIO controllers must be kept together */
|
||||
DEVICE_PIOA,
|
||||
DEVICE_PIOB,
|
||||
DEVICE_PIOC,
|
||||
DEVICE_PIOD,
|
||||
DEVICE_PIOE,
|
||||
DEVICE_SM,
|
||||
DEVICE_INTC,
|
||||
DEVICE_HMATRIX,
|
||||
#if defined(CFG_HPDC)
|
||||
DEVICE_HPDC,
|
||||
#endif
|
||||
#if defined(CFG_MACB0)
|
||||
DEVICE_MACB0,
|
||||
#endif
|
||||
#if defined(CFG_MACB1)
|
||||
DEVICE_MACB1,
|
||||
#endif
|
||||
#if defined(CFG_LCDC)
|
||||
DEVICE_LCDC,
|
||||
#endif
|
||||
#if defined(CFG_USART0)
|
||||
DEVICE_USART0,
|
||||
#endif
|
||||
#if defined(CFG_USART1)
|
||||
DEVICE_USART1,
|
||||
#endif
|
||||
#if defined(CFG_USART2)
|
||||
DEVICE_USART2,
|
||||
#endif
|
||||
#if defined(CFG_USART3)
|
||||
DEVICE_USART3,
|
||||
#endif
|
||||
#if defined(CFG_MMCI)
|
||||
DEVICE_MMCI,
|
||||
#endif
|
||||
#if defined(CFG_DMAC)
|
||||
DEVICE_DMAC,
|
||||
#endif
|
||||
NR_DEVICES,
|
||||
NO_DEVICE = -1,
|
||||
};
|
||||
|
||||
struct resource {
|
||||
enum resource_type type;
|
||||
union {
|
||||
struct {
|
||||
unsigned long base;
|
||||
} iomem;
|
||||
struct {
|
||||
unsigned char nr_pins;
|
||||
enum device_id gpio_dev;
|
||||
enum gpio_func func;
|
||||
unsigned short start;
|
||||
} gpio;
|
||||
struct {
|
||||
enum clock_domain_id id;
|
||||
unsigned char index;
|
||||
} clock;
|
||||
} u;
|
||||
};
|
||||
|
||||
struct device {
|
||||
void *regs;
|
||||
unsigned int nr_resources;
|
||||
const struct resource *resource;
|
||||
};
|
||||
|
||||
struct clock_domain {
|
||||
unsigned short reg;
|
||||
enum clock_domain_id id;
|
||||
enum device_id bridge;
|
||||
};
|
||||
|
||||
extern const struct device chip_device[NR_DEVICES];
|
||||
extern const struct clock_domain chip_clock[NR_CLOCK_DOMAINS];
|
||||
|
||||
/**
|
||||
* Set up PIO, clock management and I/O memory for a device.
|
||||
*/
|
||||
const struct device *get_device(enum device_id devid);
|
||||
void put_device(const struct device *dev);
|
||||
|
||||
int gpio_set_func(enum device_id gpio_devid, unsigned int start,
|
||||
unsigned int nr_pins, enum gpio_func func);
|
||||
void gpio_free(enum device_id gpio_devid, unsigned int start,
|
||||
unsigned int nr_pins);
|
||||
|
||||
void pm_init(void);
|
||||
int pm_enable_clock(enum clock_domain_id id, unsigned int index);
|
||||
void pm_disable_clock(enum clock_domain_id id, unsigned int index);
|
||||
unsigned long pm_get_clock_freq(enum clock_domain_id domain);
|
||||
|
||||
void cpu_enable_sdram(void);
|
||||
|
||||
#endif /* _ASM_AVR32_ARCH_PM_H */
|
||||
25
include/asm-avr32/bitops.h
Normal file
25
include/asm-avr32/bitops.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_BITOPS_H
|
||||
#define __ASM_AVR32_BITOPS_H
|
||||
|
||||
#endif /* __ASM_AVR32_BITOPS_H */
|
||||
37
include/asm-avr32/byteorder.h
Normal file
37
include/asm-avr32/byteorder.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_BYTEORDER_H
|
||||
#define __ASM_AVR32_BYTEORDER_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
#define __arch__swab32(x) __builtin_bswap_32(x)
|
||||
#define __arch__swab16(x) __builtin_bswap_16(x)
|
||||
|
||||
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
|
||||
# define __BYTEORDER_HAS_U64__
|
||||
# define __SWAB_64_THRU_32__
|
||||
#endif
|
||||
|
||||
#include <linux/byteorder/big_endian.h>
|
||||
|
||||
#endif /* __ASM_AVR32_BYTEORDER_H */
|
||||
83
include/asm-avr32/cacheflush.h
Normal file
83
include/asm-avr32/cacheflush.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_CACHEFLUSH_H
|
||||
#define __ASM_AVR32_CACHEFLUSH_H
|
||||
|
||||
/*
|
||||
* Invalidate any cacheline containing virtual address vaddr without
|
||||
* writing anything back to memory.
|
||||
*
|
||||
* Note that this function may corrupt unrelated data structures when
|
||||
* applied on buffers that are not cacheline aligned in both ends.
|
||||
*/
|
||||
static inline void dcache_invalidate_line(volatile void *vaddr)
|
||||
{
|
||||
asm volatile("cache %0[0], 0x0b" : : "r"(vaddr) : "memory");
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure any cacheline containing virtual address vaddr is written
|
||||
* to memory.
|
||||
*/
|
||||
static inline void dcache_clean_line(volatile void *vaddr)
|
||||
{
|
||||
asm volatile("cache %0[0], 0x0c" : : "r"(vaddr) : "memory");
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure any cacheline containing virtual address vaddr is written
|
||||
* to memory and then invalidate it.
|
||||
*/
|
||||
static inline void dcache_flush_line(volatile void *vaddr)
|
||||
{
|
||||
asm volatile("cache %0[0], 0x0d" : : "r"(vaddr) : "memory");
|
||||
}
|
||||
|
||||
/*
|
||||
* Invalidate any instruction cacheline containing virtual address
|
||||
* vaddr.
|
||||
*/
|
||||
static inline void icache_invalidate_line(volatile void *vaddr)
|
||||
{
|
||||
asm volatile("cache %0[0], 0x01" : : "r"(vaddr) : "memory");
|
||||
}
|
||||
|
||||
/*
|
||||
* Applies the above functions on all lines that are touched by the
|
||||
* specified virtual address range.
|
||||
*/
|
||||
void dcache_invalidate_range(volatile void *start, size_t len);
|
||||
void dcache_clean_range(volatile void *start, size_t len);
|
||||
void dcache_flush_range(volatile void *start, size_t len);
|
||||
void icache_invalidate_range(volatile void *start, size_t len);
|
||||
|
||||
static inline void dcache_flush_unlocked(void)
|
||||
{
|
||||
asm volatile("cache %0[5], 0x08" : : "r"(0) : "memory");
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure any pending writes are completed before continuing.
|
||||
*/
|
||||
#define sync_write_buffer() asm volatile("sync 0" : : : "memory")
|
||||
|
||||
#endif /* __ASM_AVR32_CACHEFLUSH_H */
|
||||
39
include/asm-avr32/div64.h
Normal file
39
include/asm-avr32/div64.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef _ASM_GENERIC_DIV64_H
|
||||
#define _ASM_GENERIC_DIV64_H
|
||||
/*
|
||||
* Copyright (C) 2003 Bernardo Innocenti <bernie@develer.com>
|
||||
* Based on former asm-ppc/div64.h and asm-m68knommu/div64.h
|
||||
*
|
||||
* The semantics of do_div() are:
|
||||
*
|
||||
* uint32_t do_div(uint64_t *n, uint32_t base)
|
||||
* {
|
||||
* uint32_t remainder = *n % base;
|
||||
* *n = *n / base;
|
||||
* return remainder;
|
||||
* }
|
||||
*
|
||||
* NOTE: macro parameter n is evaluated multiple times,
|
||||
* beware of side effects!
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
|
||||
|
||||
/* The unnecessary pointer compare is there
|
||||
* to check for type safety (n must be 64bit)
|
||||
*/
|
||||
# define do_div(n,base) ({ \
|
||||
uint32_t __base = (base); \
|
||||
uint32_t __rem; \
|
||||
(void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
|
||||
if (((n) >> 32) == 0) { \
|
||||
__rem = (uint32_t)(n) % __base; \
|
||||
(n) = (uint32_t)(n) / __base; \
|
||||
} else \
|
||||
__rem = __div64_32(&(n), __base); \
|
||||
__rem; \
|
||||
})
|
||||
|
||||
#endif /* _ASM_GENERIC_DIV64_H */
|
||||
64
include/asm-avr32/dma-mapping.h
Normal file
64
include/asm-avr32/dma-mapping.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_DMA_MAPPING_H
|
||||
#define __ASM_AVR32_DMA_MAPPING_H
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/cacheflush.h>
|
||||
|
||||
enum dma_data_direction {
|
||||
DMA_BIDIRECTIONAL = 0,
|
||||
DMA_TO_DEVICE = 1,
|
||||
DMA_FROM_DEVICE = 2,
|
||||
};
|
||||
extern void *dma_alloc_coherent(size_t len, unsigned long *handle);
|
||||
|
||||
static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
extern void __bad_dma_data_direction(void);
|
||||
|
||||
switch (dir) {
|
||||
case DMA_BIDIRECTIONAL:
|
||||
dcache_flush_range(vaddr, len);
|
||||
break;
|
||||
case DMA_TO_DEVICE:
|
||||
dcache_clean_range(vaddr, len);
|
||||
break;
|
||||
case DMA_FROM_DEVICE:
|
||||
dcache_invalidate_range(vaddr, len);
|
||||
break;
|
||||
default:
|
||||
/* This will cause a linker error */
|
||||
__bad_dma_data_direction();
|
||||
}
|
||||
|
||||
return virt_to_phys(vaddr);
|
||||
}
|
||||
|
||||
static inline void dma_unmap_single(volatile void *vaddr, size_t len,
|
||||
unsigned long paddr)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
#endif /* __ASM_AVR32_DMA_MAPPING_H */
|
||||
132
include/asm-avr32/errno.h
Normal file
132
include/asm-avr32/errno.h
Normal file
@@ -0,0 +1,132 @@
|
||||
#ifndef _ASM_AVR32_ERRNO_H
|
||||
#define _ASM_AVR32_ERRNO_H
|
||||
|
||||
#define EPERM 1 /* Operation not permitted */
|
||||
#define ENOENT 2 /* No such file or directory */
|
||||
#define ESRCH 3 /* No such process */
|
||||
#define EINTR 4 /* Interrupted system call */
|
||||
#define EIO 5 /* I/O error */
|
||||
#define ENXIO 6 /* No such device or address */
|
||||
#define E2BIG 7 /* Argument list too long */
|
||||
#define ENOEXEC 8 /* Exec format error */
|
||||
#define EBADF 9 /* Bad file number */
|
||||
#define ECHILD 10 /* No child processes */
|
||||
#define EAGAIN 11 /* Try again */
|
||||
#define ENOMEM 12 /* Out of memory */
|
||||
#define EACCES 13 /* Permission denied */
|
||||
#define EFAULT 14 /* Bad address */
|
||||
#define ENOTBLK 15 /* Block device required */
|
||||
#define EBUSY 16 /* Device or resource busy */
|
||||
#define EEXIST 17 /* File exists */
|
||||
#define EXDEV 18 /* Cross-device link */
|
||||
#define ENODEV 19 /* No such device */
|
||||
#define ENOTDIR 20 /* Not a directory */
|
||||
#define EISDIR 21 /* Is a directory */
|
||||
#define EINVAL 22 /* Invalid argument */
|
||||
#define ENFILE 23 /* File table overflow */
|
||||
#define EMFILE 24 /* Too many open files */
|
||||
#define ENOTTY 25 /* Not a typewriter */
|
||||
#define ETXTBSY 26 /* Text file busy */
|
||||
#define EFBIG 27 /* File too large */
|
||||
#define ENOSPC 28 /* No space left on device */
|
||||
#define ESPIPE 29 /* Illegal seek */
|
||||
#define EROFS 30 /* Read-only file system */
|
||||
#define EMLINK 31 /* Too many links */
|
||||
#define EPIPE 32 /* Broken pipe */
|
||||
#define EDOM 33 /* Math argument out of domain of func */
|
||||
#define ERANGE 34 /* Math result not representable */
|
||||
#define EDEADLK 35 /* Resource deadlock would occur */
|
||||
#define ENAMETOOLONG 36 /* File name too long */
|
||||
#define ENOLCK 37 /* No record locks available */
|
||||
#define ENOSYS 38 /* Function not implemented */
|
||||
#define ENOTEMPTY 39 /* Directory not empty */
|
||||
#define ELOOP 40 /* Too many symbolic links encountered */
|
||||
#define EWOULDBLOCK EAGAIN /* Operation would block */
|
||||
#define ENOMSG 42 /* No message of desired type */
|
||||
#define EIDRM 43 /* Identifier removed */
|
||||
#define ECHRNG 44 /* Channel number out of range */
|
||||
#define EL2NSYNC 45 /* Level 2 not synchronized */
|
||||
#define EL3HLT 46 /* Level 3 halted */
|
||||
#define EL3RST 47 /* Level 3 reset */
|
||||
#define ELNRNG 48 /* Link number out of range */
|
||||
#define EUNATCH 49 /* Protocol driver not attached */
|
||||
#define ENOCSI 50 /* No CSI structure available */
|
||||
#define EL2HLT 51 /* Level 2 halted */
|
||||
#define EBADE 52 /* Invalid exchange */
|
||||
#define EBADR 53 /* Invalid request descriptor */
|
||||
#define EXFULL 54 /* Exchange full */
|
||||
#define ENOANO 55 /* No anode */
|
||||
#define EBADRQC 56 /* Invalid request code */
|
||||
#define EBADSLT 57 /* Invalid slot */
|
||||
|
||||
#define EDEADLOCK EDEADLK
|
||||
|
||||
#define EBFONT 59 /* Bad font file format */
|
||||
#define ENOSTR 60 /* Device not a stream */
|
||||
#define ENODATA 61 /* No data available */
|
||||
#define ETIME 62 /* Timer expired */
|
||||
#define ENOSR 63 /* Out of streams resources */
|
||||
#define ENONET 64 /* Machine is not on the network */
|
||||
#define ENOPKG 65 /* Package not installed */
|
||||
#define EREMOTE 66 /* Object is remote */
|
||||
#define ENOLINK 67 /* Link has been severed */
|
||||
#define EADV 68 /* Advertise error */
|
||||
#define ESRMNT 69 /* Srmount error */
|
||||
#define ECOMM 70 /* Communication error on send */
|
||||
#define EPROTO 71 /* Protocol error */
|
||||
#define EMULTIHOP 72 /* Multihop attempted */
|
||||
#define EDOTDOT 73 /* RFS specific error */
|
||||
#define EBADMSG 74 /* Not a data message */
|
||||
#define EOVERFLOW 75 /* Value too large for defined data type */
|
||||
#define ENOTUNIQ 76 /* Name not unique on network */
|
||||
#define EBADFD 77 /* File descriptor in bad state */
|
||||
#define EREMCHG 78 /* Remote address changed */
|
||||
#define ELIBACC 79 /* Can not access a needed shared library */
|
||||
#define ELIBBAD 80 /* Accessing a corrupted shared library */
|
||||
#define ELIBSCN 81 /* .lib section in a.out corrupted */
|
||||
#define ELIBMAX 82 /* Attempting to link in too many shared libraries */
|
||||
#define ELIBEXEC 83 /* Cannot exec a shared library directly */
|
||||
#define EILSEQ 84 /* Illegal byte sequence */
|
||||
#define ERESTART 85 /* Interrupted system call should be restarted */
|
||||
#define ESTRPIPE 86 /* Streams pipe error */
|
||||
#define EUSERS 87 /* Too many users */
|
||||
#define ENOTSOCK 88 /* Socket operation on non-socket */
|
||||
#define EDESTADDRREQ 89 /* Destination address required */
|
||||
#define EMSGSIZE 90 /* Message too long */
|
||||
#define EPROTOTYPE 91 /* Protocol wrong type for socket */
|
||||
#define ENOPROTOOPT 92 /* Protocol not available */
|
||||
#define EPROTONOSUPPORT 93 /* Protocol not supported */
|
||||
#define ESOCKTNOSUPPORT 94 /* Socket type not supported */
|
||||
#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
|
||||
#define EPFNOSUPPORT 96 /* Protocol family not supported */
|
||||
#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
|
||||
#define EADDRINUSE 98 /* Address already in use */
|
||||
#define EADDRNOTAVAIL 99 /* Cannot assign requested address */
|
||||
#define ENETDOWN 100 /* Network is down */
|
||||
#define ENETUNREACH 101 /* Network is unreachable */
|
||||
#define ENETRESET 102 /* Network dropped connection because of reset */
|
||||
#define ECONNABORTED 103 /* Software caused connection abort */
|
||||
#define ECONNRESET 104 /* Connection reset by peer */
|
||||
#define ENOBUFS 105 /* No buffer space available */
|
||||
#define EISCONN 106 /* Transport endpoint is already connected */
|
||||
#define ENOTCONN 107 /* Transport endpoint is not connected */
|
||||
#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
|
||||
#define ETOOMANYREFS 109 /* Too many references: cannot splice */
|
||||
#define ETIMEDOUT 110 /* Connection timed out */
|
||||
#define ECONNREFUSED 111 /* Connection refused */
|
||||
#define EHOSTDOWN 112 /* Host is down */
|
||||
#define EHOSTUNREACH 113 /* No route to host */
|
||||
#define EALREADY 114 /* Operation already in progress */
|
||||
#define EINPROGRESS 115 /* Operation now in progress */
|
||||
#define ESTALE 116 /* Stale NFS file handle */
|
||||
#define EUCLEAN 117 /* Structure needs cleaning */
|
||||
#define ENOTNAM 118 /* Not a XENIX named type file */
|
||||
#define ENAVAIL 119 /* No XENIX semaphores available */
|
||||
#define EISNAM 120 /* Is a named type file */
|
||||
#define EREMOTEIO 121 /* Remote I/O error */
|
||||
#define EDQUOT 122 /* Quota exceeded */
|
||||
|
||||
#define ENOMEDIUM 123 /* No medium found */
|
||||
#define EMEDIUMTYPE 124 /* Wrong medium type */
|
||||
|
||||
#endif /* _ASM_AVR32_ERRNO_H */
|
||||
59
include/asm-avr32/global_data.h
Normal file
59
include/asm-avr32/global_data.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_GLOBAL_DATA_H__
|
||||
#define __ASM_GLOBAL_DATA_H__
|
||||
|
||||
/*
|
||||
* The following data structure is placed in some memory wich is
|
||||
* available very early after boot (like DPRAM on MPC8xx/MPC82xx, or
|
||||
* some locked parts of the data cache) to allow for a minimum set of
|
||||
* global variables during system initialization (until we have set
|
||||
* up the memory controller so that we can use RAM).
|
||||
*
|
||||
* Keep it *SMALL* and remember to set CFG_GBL_DATA_SIZE > sizeof(gd_t)
|
||||
*/
|
||||
|
||||
typedef struct global_data {
|
||||
bd_t *bd;
|
||||
unsigned long flags;
|
||||
const struct device *console_uart;
|
||||
const struct device *sm;
|
||||
unsigned long baudrate;
|
||||
unsigned long sdram_size;
|
||||
unsigned long have_console; /* serial_init() was called */
|
||||
unsigned long reloc_off; /* Relocation Offset */
|
||||
unsigned long env_addr; /* Address of env struct */
|
||||
unsigned long env_valid; /* Checksum of env valid? */
|
||||
unsigned long cpu_hz; /* cpu core clock frequency */
|
||||
void **jt; /* jump table */
|
||||
} gd_t;
|
||||
|
||||
/*
|
||||
* Global Data Flags
|
||||
*/
|
||||
#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */
|
||||
#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */
|
||||
#define GD_FLG_SILENT 0x00004 /* Silent mode */
|
||||
|
||||
#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm("r5")
|
||||
|
||||
#endif /* __ASM_GLOBAL_DATA_H__ */
|
||||
33
include/asm-avr32/initcalls.h
Normal file
33
include/asm-avr32/initcalls.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2005, 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_INITCALLS_H__
|
||||
#define __ASM_AVR32_INITCALLS_H__
|
||||
|
||||
#include <config.h>
|
||||
|
||||
extern int cpu_init(void);
|
||||
extern int timer_init(void);
|
||||
extern void board_init_memories(void);
|
||||
extern void board_init_pio(void);
|
||||
extern void board_init_info(void);
|
||||
|
||||
#endif /* __ASM_AVR32_INITCALLS_H__ */
|
||||
92
include/asm-avr32/io.h
Normal file
92
include/asm-avr32/io.h
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_IO_H
|
||||
#define __ASM_AVR32_IO_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
* Generic IO read/write. These perform native-endian accesses. Note
|
||||
* that some architectures will want to re-define __raw_{read,write}w.
|
||||
*/
|
||||
extern void __raw_writesb(unsigned int addr, const void *data, int bytelen);
|
||||
extern void __raw_writesw(unsigned int addr, const void *data, int wordlen);
|
||||
extern void __raw_writesl(unsigned int addr, const void *data, int longlen);
|
||||
|
||||
extern void __raw_readsb(unsigned int addr, void *data, int bytelen);
|
||||
extern void __raw_readsw(unsigned int addr, void *data, int wordlen);
|
||||
extern void __raw_readsl(unsigned int addr, void *data, int longlen);
|
||||
|
||||
#define __raw_writeb(v,a) (*(volatile unsigned char *)(a) = (v))
|
||||
#define __raw_writew(v,a) (*(volatile unsigned short *)(a) = (v))
|
||||
#define __raw_writel(v,a) (*(volatile unsigned int *)(a) = (v))
|
||||
|
||||
#define __raw_readb(a) (*(volatile unsigned char *)(a))
|
||||
#define __raw_readw(a) (*(volatile unsigned short *)(a))
|
||||
#define __raw_readl(a) (*(volatile unsigned int *)(a))
|
||||
|
||||
/* As long as I/O is only performed in P4 (or possibly P3), we're safe */
|
||||
#define writeb(v,a) __raw_writeb(v,a)
|
||||
#define writew(v,a) __raw_writew(v,a)
|
||||
#define writel(v,a) __raw_writel(v,a)
|
||||
|
||||
#define readb(a) __raw_readb(a)
|
||||
#define readw(a) __raw_readw(a)
|
||||
#define readl(a) __raw_readl(a)
|
||||
|
||||
/*
|
||||
* Bad read/write accesses...
|
||||
*/
|
||||
extern void __readwrite_bug(const char *fn);
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
/*
|
||||
* All I/O is memory mapped, so these macros doesn't make very much sense
|
||||
*/
|
||||
#define outb(v,p) __raw_writeb(v, p)
|
||||
#define outw(v,p) __raw_writew(cpu_to_le16(v),p)
|
||||
#define outl(v,p) __raw_writel(cpu_to_le32(v),p)
|
||||
|
||||
#define inb(p) ({ unsigned int __v = __raw_readb(p); __v; })
|
||||
#define inw(p) ({ unsigned int __v = __le16_to_cpu(__raw_readw(p)); __v; })
|
||||
#define inl(p) ({ unsigned int __v = __le32_to_cpu(__raw_readl(p)); __v; })
|
||||
|
||||
#include <asm/addrspace.h>
|
||||
|
||||
/* virt_to_phys will only work when address is in P1 or P2 */
|
||||
static __inline__ unsigned long virt_to_phys(volatile void *address)
|
||||
{
|
||||
return PHYSADDR(address);
|
||||
}
|
||||
|
||||
static __inline__ void * phys_to_virt(unsigned long address)
|
||||
{
|
||||
return (void *)P1SEGADDR(address);
|
||||
}
|
||||
|
||||
#define cached(addr) ((void *)P1SEGADDR(addr))
|
||||
#define uncached(addr) ((void *)P2SEGADDR(addr))
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ASM_AVR32_IO_H */
|
||||
144
include/asm-avr32/posix_types.h
Normal file
144
include/asm-avr32/posix_types.h
Normal file
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_POSIX_TYPES_H
|
||||
#define __ASM_AVR32_POSIX_TYPES_H
|
||||
|
||||
/*
|
||||
* This file is generally used by user-level software, so you need to
|
||||
* be a little careful about namespace pollution etc. Also, we cannot
|
||||
* assume GCC is being used.
|
||||
*/
|
||||
|
||||
typedef unsigned long __kernel_dev_t;
|
||||
typedef unsigned long __kernel_ino_t;
|
||||
typedef unsigned short __kernel_mode_t;
|
||||
typedef unsigned short __kernel_nlink_t;
|
||||
typedef long __kernel_off_t;
|
||||
typedef int __kernel_pid_t;
|
||||
typedef unsigned short __kernel_ipc_pid_t;
|
||||
typedef unsigned int __kernel_uid_t;
|
||||
typedef unsigned int __kernel_gid_t;
|
||||
typedef unsigned long __kernel_size_t;
|
||||
typedef int __kernel_ssize_t;
|
||||
typedef int __kernel_ptrdiff_t;
|
||||
typedef long __kernel_time_t;
|
||||
typedef long __kernel_suseconds_t;
|
||||
typedef long __kernel_clock_t;
|
||||
typedef int __kernel_timer_t;
|
||||
typedef int __kernel_clockid_t;
|
||||
typedef int __kernel_daddr_t;
|
||||
typedef char * __kernel_caddr_t;
|
||||
typedef unsigned short __kernel_uid16_t;
|
||||
typedef unsigned short __kernel_gid16_t;
|
||||
typedef unsigned int __kernel_uid32_t;
|
||||
typedef unsigned int __kernel_gid32_t;
|
||||
|
||||
typedef unsigned short __kernel_old_uid_t;
|
||||
typedef unsigned short __kernel_old_gid_t;
|
||||
typedef unsigned short __kernel_old_dev_t;
|
||||
|
||||
#ifdef __GNUC__
|
||||
typedef long long __kernel_loff_t;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
#if defined(__KERNEL__) || defined(__USE_ALL)
|
||||
int val[2];
|
||||
#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
|
||||
int __val[2];
|
||||
#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
|
||||
} __kernel_fsid_t;
|
||||
|
||||
#if defined(__KERNEL__)
|
||||
|
||||
#undef __FD_SET
|
||||
static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
|
||||
{
|
||||
unsigned long __tmp = __fd / __NFDBITS;
|
||||
unsigned long __rem = __fd % __NFDBITS;
|
||||
__fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
|
||||
}
|
||||
|
||||
#undef __FD_CLR
|
||||
static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
|
||||
{
|
||||
unsigned long __tmp = __fd / __NFDBITS;
|
||||
unsigned long __rem = __fd % __NFDBITS;
|
||||
__fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
|
||||
}
|
||||
|
||||
|
||||
#undef __FD_ISSET
|
||||
static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
|
||||
{
|
||||
unsigned long __tmp = __fd / __NFDBITS;
|
||||
unsigned long __rem = __fd % __NFDBITS;
|
||||
return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* This will unroll the loop for the normal constant case (8 ints,
|
||||
* for a 256-bit fd_set)
|
||||
*/
|
||||
#undef __FD_ZERO
|
||||
static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
|
||||
{
|
||||
unsigned long *__tmp = __p->fds_bits;
|
||||
int __i;
|
||||
|
||||
if (__builtin_constant_p(__FDSET_LONGS)) {
|
||||
switch (__FDSET_LONGS) {
|
||||
case 16:
|
||||
__tmp[ 0] = 0; __tmp[ 1] = 0;
|
||||
__tmp[ 2] = 0; __tmp[ 3] = 0;
|
||||
__tmp[ 4] = 0; __tmp[ 5] = 0;
|
||||
__tmp[ 6] = 0; __tmp[ 7] = 0;
|
||||
__tmp[ 8] = 0; __tmp[ 9] = 0;
|
||||
__tmp[10] = 0; __tmp[11] = 0;
|
||||
__tmp[12] = 0; __tmp[13] = 0;
|
||||
__tmp[14] = 0; __tmp[15] = 0;
|
||||
return;
|
||||
|
||||
case 8:
|
||||
__tmp[ 0] = 0; __tmp[ 1] = 0;
|
||||
__tmp[ 2] = 0; __tmp[ 3] = 0;
|
||||
__tmp[ 4] = 0; __tmp[ 5] = 0;
|
||||
__tmp[ 6] = 0; __tmp[ 7] = 0;
|
||||
return;
|
||||
|
||||
case 4:
|
||||
__tmp[ 0] = 0; __tmp[ 1] = 0;
|
||||
__tmp[ 2] = 0; __tmp[ 3] = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
__i = __FDSET_LONGS;
|
||||
while (__i) {
|
||||
__i--;
|
||||
*__tmp = 0;
|
||||
__tmp++;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* defined(__KERNEL__) */
|
||||
|
||||
#endif /* __ASM_AVR32_POSIX_TYPES_H */
|
||||
97
include/asm-avr32/processor.h
Normal file
97
include/asm-avr32/processor.h
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_PROCESSOR_H
|
||||
#define __ASM_AVR32_PROCESSOR_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#define current_text_addr() ({ void *pc; __asm__("mov %0,pc" : "=r"(pc)); pc; })
|
||||
|
||||
struct avr32_cpuinfo {
|
||||
unsigned long loops_per_jiffy;
|
||||
};
|
||||
|
||||
extern struct avr32_cpuinfo boot_cpu_data;
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
extern struct avr32_cpuinfo cpu_data[];
|
||||
#define current_cpu_data cpu_data[smp_processor_id()]
|
||||
#else
|
||||
#define cpu_data (&boot_cpu_data)
|
||||
#define current_cpu_data boot_cpu_data
|
||||
#endif
|
||||
|
||||
/* TODO: Make configurable (2GB will serve as a reasonable default) */
|
||||
#define TASK_SIZE 0x80000000
|
||||
|
||||
/* This decides where the kernel will search for a free chunk of vm
|
||||
* space during mmap's
|
||||
*/
|
||||
#define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
|
||||
|
||||
#define cpu_relax() barrier()
|
||||
#define cpu_sync_pipeline() asm volatile("sub pc, -2" : : : "memory")
|
||||
|
||||
/* This struct contains the CPU context as stored by switch_to() */
|
||||
struct thread_struct {
|
||||
unsigned long pc;
|
||||
unsigned long ksp; /* Kernel stack pointer */
|
||||
unsigned long r7;
|
||||
unsigned long r6;
|
||||
unsigned long r5;
|
||||
unsigned long r4;
|
||||
unsigned long r3;
|
||||
unsigned long r2;
|
||||
unsigned long r1;
|
||||
unsigned long r0;
|
||||
};
|
||||
|
||||
#define INIT_THREAD { \
|
||||
.ksp = sizeof(init_stack) + (long)&init_stack, \
|
||||
}
|
||||
|
||||
/*
|
||||
* Do necessary setup to start up a newly executed thread.
|
||||
*/
|
||||
#define start_thread(regs, new_pc, new_sp) \
|
||||
set_fs(USER_DS); \
|
||||
regs->sr = 0; /* User mode. */ \
|
||||
regs->gr[REG_PC] = new_pc; \
|
||||
regs->gr[REG_SP] = new_sp
|
||||
|
||||
struct task_struct;
|
||||
|
||||
/* Free all resources held by a thread */
|
||||
extern void release_thread(struct task_struct *);
|
||||
|
||||
/* Create a kernel thread without removing it from tasklists */
|
||||
extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
||||
|
||||
/* Prepare to copy thread state - unlazy all lazy status */
|
||||
#define prepare_to_copy(tsk) do { } while(0)
|
||||
|
||||
/* Return saved PC of a blocked thread */
|
||||
#define thread_saved_pc(tsk) (tsk->thread.pc)
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_AVR32_PROCESSOR_H */
|
||||
148
include/asm-avr32/ptrace.h
Normal file
148
include/asm-avr32/ptrace.h
Normal file
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_PTRACE_H
|
||||
#define __ASM_AVR32_PTRACE_H
|
||||
|
||||
/*
|
||||
* Status Register bits
|
||||
*/
|
||||
#define SR_H 0x40000000
|
||||
#define SR_R 0x20000000
|
||||
#define SR_J 0x10000000
|
||||
#define SR_DM 0x08000000
|
||||
#define SR_D 0x04000000
|
||||
#define MODE_NMI 0x01c00000
|
||||
#define MODE_EXCEPTION 0x01800000
|
||||
#define MODE_INT3 0x01400000
|
||||
#define MODE_INT2 0x01000000
|
||||
#define MODE_INT1 0x00c00000
|
||||
#define MODE_INT0 0x00800000
|
||||
#define MODE_SUPERVISOR 0x00400000
|
||||
#define MODE_USER 0x00000000
|
||||
#define MODE_MASK 0x01c00000
|
||||
#define SR_EM 0x00200000
|
||||
#define SR_I3M 0x00100000
|
||||
#define SR_I2M 0x00080000
|
||||
#define SR_I1M 0x00040000
|
||||
#define SR_I0M 0x00020000
|
||||
#define SR_GM 0x00010000
|
||||
|
||||
#define MODE_SHIFT 22
|
||||
#define SR_EM_BIT 21
|
||||
#define SR_I3M_BIT 20
|
||||
#define SR_I2M_BIT 19
|
||||
#define SR_I1M_BIT 18
|
||||
#define SR_I0M_BIT 17
|
||||
#define SR_GM_BIT 16
|
||||
|
||||
/* The user-visible part */
|
||||
#define SR_Q 0x00000010
|
||||
#define SR_V 0x00000008
|
||||
#define SR_N 0x00000004
|
||||
#define SR_Z 0x00000002
|
||||
#define SR_C 0x00000001
|
||||
|
||||
/*
|
||||
* The order is defined by the stdsp instruction. r0 is stored first, so it
|
||||
* gets the highest address.
|
||||
*
|
||||
* Registers 0-12 are general-purpose registers (r12 is normally used for
|
||||
* the function return value).
|
||||
* Register 13 is the stack pointer
|
||||
* Register 14 is the link register
|
||||
* Register 15 is the program counter
|
||||
*/
|
||||
#define FRAME_SIZE_FULL 72
|
||||
#define REG_R12_ORIG 68
|
||||
#define REG_R0 64
|
||||
#define REG_R1 60
|
||||
#define REG_R2 56
|
||||
#define REG_R3 52
|
||||
#define REG_R4 48
|
||||
#define REG_R5 44
|
||||
#define REG_R6 40
|
||||
#define REG_R7 36
|
||||
#define REG_R8 32
|
||||
#define REG_R9 28
|
||||
#define REG_R10 34
|
||||
#define REG_R11 20
|
||||
#define REG_R12 16
|
||||
#define REG_SP 12
|
||||
#define REG_LR 8
|
||||
|
||||
#define FRAME_SIZE_MIN 8
|
||||
#define REG_PC 4
|
||||
#define REG_SR 0
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct pt_regs {
|
||||
/* These are always saved */
|
||||
unsigned long sr;
|
||||
unsigned long pc;
|
||||
|
||||
/* These are sometimes saved */
|
||||
unsigned long lr;
|
||||
unsigned long sp;
|
||||
unsigned long r12;
|
||||
unsigned long r11;
|
||||
unsigned long r10;
|
||||
unsigned long r9;
|
||||
unsigned long r8;
|
||||
unsigned long r7;
|
||||
unsigned long r6;
|
||||
unsigned long r5;
|
||||
unsigned long r4;
|
||||
unsigned long r3;
|
||||
unsigned long r2;
|
||||
unsigned long r1;
|
||||
unsigned long r0;
|
||||
|
||||
/* Only saved on system call */
|
||||
unsigned long r12_orig;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
# define user_mode(regs) (((regs)->sr & MODE_MASK) == MODE_USER)
|
||||
# define instruction_pointer(regs) ((regs)->pc)
|
||||
extern void show_regs (struct pt_regs *);
|
||||
|
||||
static __inline__ int valid_user_regs(struct pt_regs *regs)
|
||||
{
|
||||
/*
|
||||
* Some of the Java bits might be acceptable if/when we
|
||||
* implement some support for that stuff...
|
||||
*/
|
||||
if ((regs->sr & 0xffff0000) == 0)
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* Force status register flags to be sane and report this
|
||||
* illegal behaviour...
|
||||
*/
|
||||
regs->sr &= 0x0000ffff;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ! __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_AVR32_PTRACE_H */
|
||||
33
include/asm-avr32/sdram.h
Normal file
33
include/asm-avr32/sdram.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_SDRAM_H
|
||||
#define __ASM_AVR32_SDRAM_H
|
||||
|
||||
struct sdram_info {
|
||||
unsigned long phys_addr;
|
||||
unsigned int row_bits, col_bits, bank_bits;
|
||||
unsigned int cas, twr, trc, trp, trcd, tras, txsr;
|
||||
};
|
||||
|
||||
extern unsigned long sdram_init(const struct sdram_info *info);
|
||||
|
||||
#endif /* __ASM_AVR32_SDRAM_H */
|
||||
39
include/asm-avr32/sections.h
Normal file
39
include/asm-avr32/sections.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_SECTIONS_H
|
||||
#define __ASM_AVR32_SECTIONS_H
|
||||
|
||||
/* References to section boundaries */
|
||||
|
||||
extern char _text[], _etext[];
|
||||
extern char __flashprog_start[], __flashprog_end[];
|
||||
extern char _data[], __data_lma[], _edata[], __edata_lma[];
|
||||
extern char __got_start[], __got_lma[], __got_end[];
|
||||
extern char _end[];
|
||||
|
||||
/*
|
||||
* Everything in .flashprog will be locked in the icache so it doesn't
|
||||
* get disturbed when executing flash commands.
|
||||
*/
|
||||
#define __flashprog __attribute__((section(".flashprog"), __noinline__))
|
||||
|
||||
#endif /* __ASM_AVR32_SECTIONS_H */
|
||||
142
include/asm-avr32/setup.h
Normal file
142
include/asm-avr32/setup.h
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Atmel Corporation
|
||||
*
|
||||
* Based on linux/include/asm-arm/setup.h
|
||||
* Copyright (C) 1997-1999 Russel King
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_SETUP_H__
|
||||
#define __ASM_AVR32_SETUP_H__
|
||||
|
||||
#define COMMAND_LINE_SIZE 256
|
||||
|
||||
/* Magic number indicating that a tag table is present */
|
||||
#define ATAG_MAGIC 0xa2a25441
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/*
|
||||
* Generic memory range, used by several tags.
|
||||
*
|
||||
* addr is always physical.
|
||||
* size is measured in bytes.
|
||||
* next is for use by the OS, e.g. for grouping regions into
|
||||
* linked lists.
|
||||
*/
|
||||
struct tag_mem_range {
|
||||
u32 addr;
|
||||
u32 size;
|
||||
struct tag_mem_range * next;
|
||||
};
|
||||
|
||||
/* The list ends with an ATAG_NONE node. */
|
||||
#define ATAG_NONE 0x00000000
|
||||
|
||||
struct tag_header {
|
||||
u32 size;
|
||||
u32 tag;
|
||||
};
|
||||
|
||||
/* The list must start with an ATAG_CORE node */
|
||||
#define ATAG_CORE 0x54410001
|
||||
|
||||
struct tag_core {
|
||||
u32 flags;
|
||||
u32 pagesize;
|
||||
u32 rootdev;
|
||||
};
|
||||
|
||||
/* it is allowed to have multiple ATAG_MEM nodes */
|
||||
#define ATAG_MEM 0x54410002
|
||||
/* ATAG_MEM uses tag_mem_range */
|
||||
|
||||
/* command line: \0 terminated string */
|
||||
#define ATAG_CMDLINE 0x54410003
|
||||
|
||||
struct tag_cmdline {
|
||||
char cmdline[1]; /* this is the minimum size */
|
||||
};
|
||||
|
||||
/* Ramdisk image (may be compressed) */
|
||||
#define ATAG_RDIMG 0x54410004
|
||||
/* ATAG_RDIMG uses tag_mem_range */
|
||||
|
||||
/* Information about various clocks present in the system */
|
||||
#define ATAG_CLOCK 0x54410005
|
||||
|
||||
struct tag_clock {
|
||||
u32 clock_id; /* Which clock are we talking about? */
|
||||
u32 clock_flags; /* Special features */
|
||||
u64 clock_hz; /* Clock speed in Hz */
|
||||
};
|
||||
|
||||
/* The clock types we know about */
|
||||
#define ACLOCK_BOOTCPU 0 /* The CPU we're booting from */
|
||||
#define ACLOCK_HSB 1 /* Deprecated */
|
||||
|
||||
/* Memory reserved for the system (e.g. the bootloader) */
|
||||
#define ATAG_RSVD_MEM 0x54410006
|
||||
/* ATAG_RSVD_MEM uses tag_mem_range */
|
||||
|
||||
/* Ethernet information */
|
||||
|
||||
#define ATAG_ETHERNET 0x54410007
|
||||
|
||||
struct tag_ethernet {
|
||||
u8 mac_index;
|
||||
u8 mii_phy_addr;
|
||||
u8 hw_address[6];
|
||||
};
|
||||
|
||||
#define AETH_INVALID_PHY 0xff
|
||||
|
||||
struct tag {
|
||||
struct tag_header hdr;
|
||||
union {
|
||||
struct tag_core core;
|
||||
struct tag_mem_range mem_range;
|
||||
struct tag_cmdline cmdline;
|
||||
struct tag_clock clock;
|
||||
struct tag_ethernet ethernet;
|
||||
} u;
|
||||
};
|
||||
|
||||
struct tagtable {
|
||||
u32 tag;
|
||||
int (*parse)(struct tag *);
|
||||
};
|
||||
|
||||
#define __tag __attribute_used__ __attribute__((__section__(".taglist")))
|
||||
#define __tagtable(tag, fn) \
|
||||
static struct tagtable __tagtable_##fn __tag = { tag, fn }
|
||||
|
||||
#define tag_member_present(tag,member) \
|
||||
((unsigned long)(&((struct tag *)0L)->member + 1) \
|
||||
<= (tag)->hdr.size * 4)
|
||||
|
||||
#define tag_next(t) ((struct tag *)((u32 *)(t) + (t)->hdr.size))
|
||||
#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2)
|
||||
|
||||
#define for_each_tag(t,base) \
|
||||
for (t = base; t->hdr.size; t = tag_next(t))
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_AVR32_SETUP_H__ */
|
||||
28
include/asm-avr32/string.h
Normal file
28
include/asm-avr32/string.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_STRING_H
|
||||
#define __ASM_AVR32_STRING_H
|
||||
|
||||
#define __HAVE_ARCH_MEMSET
|
||||
extern void *memset(void *s, int c, size_t n);
|
||||
|
||||
#endif /* __ASM_AVR32_STRING_H */
|
||||
279
include/asm-avr32/sysreg.h
Normal file
279
include/asm-avr32/sysreg.h
Normal file
@@ -0,0 +1,279 @@
|
||||
/*
|
||||
* System registers for AVR32
|
||||
*/
|
||||
#ifndef __ASM_AVR32_SYSREG_H__
|
||||
#define __ASM_AVR32_SYSREG_H__
|
||||
|
||||
/* system register offsets */
|
||||
#define SYSREG_SR 0x0000
|
||||
#define SYSREG_EVBA 0x0004
|
||||
#define SYSREG_ACBA 0x0008
|
||||
#define SYSREG_CPUCR 0x000c
|
||||
#define SYSREG_ECR 0x0010
|
||||
#define SYSREG_RSR_SUP 0x0014
|
||||
#define SYSREG_RSR_INT0 0x0018
|
||||
#define SYSREG_RSR_INT1 0x001c
|
||||
#define SYSREG_RSR_INT2 0x0020
|
||||
#define SYSREG_RSR_INT3 0x0024
|
||||
#define SYSREG_RSR_EX 0x0028
|
||||
#define SYSREG_RSR_NMI 0x002c
|
||||
#define SYSREG_RSR_DBG 0x0030
|
||||
#define SYSREG_RAR_SUP 0x0034
|
||||
#define SYSREG_RAR_INT0 0x0038
|
||||
#define SYSREG_RAR_INT1 0x003c
|
||||
#define SYSREG_RAR_INT2 0x0040
|
||||
#define SYSREG_RAR_INT3 0x0044
|
||||
#define SYSREG_RAR_EX 0x0048
|
||||
#define SYSREG_RAR_NMI 0x004c
|
||||
#define SYSREG_RAR_DBG 0x0050
|
||||
#define SYSREG_JECR 0x0054
|
||||
#define SYSREG_JOSP 0x0058
|
||||
#define SYSREG_JAVA_LV0 0x005c
|
||||
#define SYSREG_JAVA_LV1 0x0060
|
||||
#define SYSREG_JAVA_LV2 0x0064
|
||||
#define SYSREG_JAVA_LV3 0x0068
|
||||
#define SYSREG_JAVA_LV4 0x006c
|
||||
#define SYSREG_JAVA_LV5 0x0070
|
||||
#define SYSREG_JAVA_LV6 0x0074
|
||||
#define SYSREG_JAVA_LV7 0x0078
|
||||
#define SYSREG_JTBA 0x007c
|
||||
#define SYSREG_JBCR 0x0080
|
||||
#define SYSREG_CONFIG0 0x0100
|
||||
#define SYSREG_CONFIG1 0x0104
|
||||
#define SYSREG_COUNT 0x0108
|
||||
#define SYSREG_COMPARE 0x010c
|
||||
#define SYSREG_TLBEHI 0x0110
|
||||
#define SYSREG_TLBELO 0x0114
|
||||
#define SYSREG_PTBR 0x0118
|
||||
#define SYSREG_TLBEAR 0x011c
|
||||
#define SYSREG_MMUCR 0x0120
|
||||
#define SYSREG_TLBARLO 0x0124
|
||||
#define SYSREG_TLBARHI 0x0128
|
||||
#define SYSREG_PCCNT 0x012c
|
||||
#define SYSREG_PCNT0 0x0130
|
||||
#define SYSREG_PCNT1 0x0134
|
||||
#define SYSREG_PCCR 0x0138
|
||||
#define SYSREG_BEAR 0x013c
|
||||
#define SYSREG_SABAL 0x0300
|
||||
#define SYSREG_SABAH 0x0304
|
||||
#define SYSREG_SABD 0x0308
|
||||
|
||||
/* Bitfields in SR */
|
||||
#define SYSREG_SR_C_OFFSET 0
|
||||
#define SYSREG_SR_C_SIZE 1
|
||||
#define SYSREG_Z_OFFSET 1
|
||||
#define SYSREG_Z_SIZE 1
|
||||
#define SYSREG_SR_N_OFFSET 2
|
||||
#define SYSREG_SR_N_SIZE 1
|
||||
#define SYSREG_SR_V_OFFSET 3
|
||||
#define SYSREG_SR_V_SIZE 1
|
||||
#define SYSREG_Q_OFFSET 4
|
||||
#define SYSREG_Q_SIZE 1
|
||||
#define SYSREG_L_OFFSET 5
|
||||
#define SYSREG_L_SIZE 1
|
||||
#define SYSREG_T_OFFSET 14
|
||||
#define SYSREG_T_SIZE 1
|
||||
#define SYSREG_SR_R_OFFSET 15
|
||||
#define SYSREG_SR_R_SIZE 1
|
||||
#define SYSREG_GM_OFFSET 16
|
||||
#define SYSREG_GM_SIZE 1
|
||||
#define SYSREG_I0M_OFFSET 17
|
||||
#define SYSREG_I0M_SIZE 1
|
||||
#define SYSREG_I1M_OFFSET 18
|
||||
#define SYSREG_I1M_SIZE 1
|
||||
#define SYSREG_I2M_OFFSET 19
|
||||
#define SYSREG_I2M_SIZE 1
|
||||
#define SYSREG_I3M_OFFSET 20
|
||||
#define SYSREG_I3M_SIZE 1
|
||||
#define SYSREG_EM_OFFSET 21
|
||||
#define SYSREG_EM_SIZE 1
|
||||
#define SYSREG_M0_OFFSET 22
|
||||
#define SYSREG_M0_SIZE 1
|
||||
#define SYSREG_M1_OFFSET 23
|
||||
#define SYSREG_M1_SIZE 1
|
||||
#define SYSREG_M2_OFFSET 24
|
||||
#define SYSREG_M2_SIZE 1
|
||||
#define SYSREG_SR_D_OFFSET 26
|
||||
#define SYSREG_SR_D_SIZE 1
|
||||
#define SYSREG_DM_OFFSET 27
|
||||
#define SYSREG_DM_SIZE 1
|
||||
#define SYSREG_SR_J_OFFSET 28
|
||||
#define SYSREG_SR_J_SIZE 1
|
||||
#define SYSREG_H_OFFSET 29
|
||||
#define SYSREG_H_SIZE 1
|
||||
|
||||
/* Bitfields in CPUCR */
|
||||
#define SYSREG_BI_OFFSET 0
|
||||
#define SYSREG_BI_SIZE 1
|
||||
#define SYSREG_BE_OFFSET 1
|
||||
#define SYSREG_BE_SIZE 1
|
||||
#define SYSREG_FE_OFFSET 2
|
||||
#define SYSREG_FE_SIZE 1
|
||||
#define SYSREG_RE_OFFSET 3
|
||||
#define SYSREG_RE_SIZE 1
|
||||
#define SYSREG_IBE_OFFSET 4
|
||||
#define SYSREG_IBE_SIZE 1
|
||||
#define SYSREG_IEE_OFFSET 5
|
||||
#define SYSREG_IEE_SIZE 1
|
||||
|
||||
/* Bitfields in ECR */
|
||||
#define SYSREG_ECR_OFFSET 0
|
||||
#define SYSREG_ECR_SIZE 32
|
||||
|
||||
/* Bitfields in CONFIG0 */
|
||||
#define SYSREG_CONFIG0_R_OFFSET 0
|
||||
#define SYSREG_CONFIG0_R_SIZE 1
|
||||
#define SYSREG_CONFIG0_D_OFFSET 1
|
||||
#define SYSREG_CONFIG0_D_SIZE 1
|
||||
#define SYSREG_CONFIG0_S_OFFSET 2
|
||||
#define SYSREG_CONFIG0_S_SIZE 1
|
||||
#define SYSREG_O_OFFSET 3
|
||||
#define SYSREG_O_SIZE 1
|
||||
#define SYSREG_P_OFFSET 4
|
||||
#define SYSREG_P_SIZE 1
|
||||
#define SYSREG_CONFIG0_J_OFFSET 5
|
||||
#define SYSREG_CONFIG0_J_SIZE 1
|
||||
#define SYSREG_F_OFFSET 6
|
||||
#define SYSREG_F_SIZE 1
|
||||
#define SYSREG_MMUT_OFFSET 7
|
||||
#define SYSREG_MMUT_SIZE 3
|
||||
#define SYSREG_AR_OFFSET 10
|
||||
#define SYSREG_AR_SIZE 3
|
||||
#define SYSREG_AT_OFFSET 13
|
||||
#define SYSREG_AT_SIZE 3
|
||||
#define SYSREG_PROCESSORREVISION_OFFSET 16
|
||||
#define SYSREG_PROCESSORREVISION_SIZE 8
|
||||
#define SYSREG_PROCESSORID_OFFSET 24
|
||||
#define SYSREG_PROCESSORID_SIZE 8
|
||||
|
||||
/* Bitfields in CONFIG1 */
|
||||
#define SYSREG_DASS_OFFSET 0
|
||||
#define SYSREG_DASS_SIZE 3
|
||||
#define SYSREG_DLSZ_OFFSET 3
|
||||
#define SYSREG_DLSZ_SIZE 3
|
||||
#define SYSREG_DSET_OFFSET 6
|
||||
#define SYSREG_DSET_SIZE 4
|
||||
#define SYSREG_IASS_OFFSET 10
|
||||
#define SYSREG_IASS_SIZE 3
|
||||
#define SYSREG_ILSZ_OFFSET 13
|
||||
#define SYSREG_ILSZ_SIZE 3
|
||||
#define SYSREG_ISET_OFFSET 16
|
||||
#define SYSREG_ISET_SIZE 4
|
||||
#define SYSREG_DMMUSZ_OFFSET 20
|
||||
#define SYSREG_DMMUSZ_SIZE 6
|
||||
#define SYSREG_IMMUSZ_OFFSET 26
|
||||
#define SYSREG_IMMUSZ_SIZE 6
|
||||
|
||||
/* Bitfields in TLBEHI */
|
||||
#define SYSREG_ASID_OFFSET 0
|
||||
#define SYSREG_ASID_SIZE 8
|
||||
#define SYSREG_TLBEHI_I_OFFSET 8
|
||||
#define SYSREG_TLBEHI_I_SIZE 1
|
||||
#define SYSREG_TLBEHI_V_OFFSET 9
|
||||
#define SYSREG_TLBEHI_V_SIZE 1
|
||||
#define SYSREG_VPN_OFFSET 10
|
||||
#define SYSREG_VPN_SIZE 22
|
||||
|
||||
/* Bitfields in TLBELO */
|
||||
#define SYSREG_W_OFFSET 0
|
||||
#define SYSREG_W_SIZE 1
|
||||
#define SYSREG_TLBELO_D_OFFSET 1
|
||||
#define SYSREG_TLBELO_D_SIZE 1
|
||||
#define SYSREG_SZ_OFFSET 2
|
||||
#define SYSREG_SZ_SIZE 2
|
||||
#define SYSREG_AP_OFFSET 4
|
||||
#define SYSREG_AP_SIZE 3
|
||||
#define SYSREG_B_OFFSET 7
|
||||
#define SYSREG_B_SIZE 1
|
||||
#define SYSREG_G_OFFSET 8
|
||||
#define SYSREG_G_SIZE 1
|
||||
#define SYSREG_TLBELO_C_OFFSET 9
|
||||
#define SYSREG_TLBELO_C_SIZE 1
|
||||
#define SYSREG_PFN_OFFSET 10
|
||||
#define SYSREG_PFN_SIZE 22
|
||||
|
||||
/* Bitfields in MMUCR */
|
||||
#define SYSREG_E_OFFSET 0
|
||||
#define SYSREG_E_SIZE 1
|
||||
#define SYSREG_M_OFFSET 1
|
||||
#define SYSREG_M_SIZE 1
|
||||
#define SYSREG_MMUCR_I_OFFSET 2
|
||||
#define SYSREG_MMUCR_I_SIZE 1
|
||||
#define SYSREG_MMUCR_N_OFFSET 3
|
||||
#define SYSREG_MMUCR_N_SIZE 1
|
||||
#define SYSREG_MMUCR_S_OFFSET 4
|
||||
#define SYSREG_MMUCR_S_SIZE 1
|
||||
#define SYSREG_DLA_OFFSET 8
|
||||
#define SYSREG_DLA_SIZE 6
|
||||
#define SYSREG_DRP_OFFSET 14
|
||||
#define SYSREG_DRP_SIZE 6
|
||||
#define SYSREG_ILA_OFFSET 20
|
||||
#define SYSREG_ILA_SIZE 6
|
||||
#define SYSREG_IRP_OFFSET 26
|
||||
#define SYSREG_IRP_SIZE 6
|
||||
|
||||
/* Bitfields in PCCR */
|
||||
#define SYSREG_PCCR_R_OFFSET 1
|
||||
#define SYSREG_PCCR_R_SIZE 1
|
||||
#define SYSREG_PCCR_C_OFFSET 2
|
||||
#define SYSREG_PCCR_C_SIZE 1
|
||||
#define SYSREG_PCCR_S_OFFSET 3
|
||||
#define SYSREG_PCCR_S_SIZE 1
|
||||
#define SYSREG_IEC_OFFSET 4
|
||||
#define SYSREG_IEC_SIZE 1
|
||||
#define SYSREG_IE0_OFFSET 5
|
||||
#define SYSREG_IE0_SIZE 1
|
||||
#define SYSREG_IE1_OFFSET 6
|
||||
#define SYSREG_IE1_SIZE 1
|
||||
#define SYSREG_FC_OFFSET 8
|
||||
#define SYSREG_FC_SIZE 1
|
||||
#define SYSREG_F0_OFFSET 9
|
||||
#define SYSREG_F0_SIZE 1
|
||||
#define SYSREG_F1_OFFSET 10
|
||||
#define SYSREG_F1_SIZE 1
|
||||
#define SYSREG_CONF0_OFFSET 12
|
||||
#define SYSREG_CONF0_SIZE 6
|
||||
#define SYSREG_CONF1_OFFSET 18
|
||||
#define SYSREG_CONF1_SIZE 6
|
||||
|
||||
/* Constants for ECR */
|
||||
#define ECR_UNRECOVERABLE 0
|
||||
#define ECR_TLB_MULTIPLE 1
|
||||
#define ECR_BUS_ERROR_WRITE 2
|
||||
#define ECR_BUS_ERROR_READ 3
|
||||
#define ECR_NMI 4
|
||||
#define ECR_ADDR_ALIGN_X 5
|
||||
#define ECR_PROTECTION_X 6
|
||||
#define ECR_DEBUG 7
|
||||
#define ECR_ILLEGAL_OPCODE 8
|
||||
#define ECR_UNIMPL_INSTRUCTION 9
|
||||
#define ECR_PRIVILEGE_VIOLATION 10
|
||||
#define ECR_FPE 11
|
||||
#define ECR_COPROC_ABSENT 12
|
||||
#define ECR_ADDR_ALIGN_R 13
|
||||
#define ECR_ADDR_ALIGN_W 14
|
||||
#define ECR_PROTECTION_R 15
|
||||
#define ECR_PROTECTION_W 16
|
||||
#define ECR_DTLB_MODIFIED 17
|
||||
#define ECR_TLB_MISS_X 20
|
||||
#define ECR_TLB_MISS_R 24
|
||||
#define ECR_TLB_MISS_W 28
|
||||
|
||||
/* Bit manipulation macros */
|
||||
#define SYSREG_BIT(name) (1 << SYSREG_##name##_OFFSET)
|
||||
#define SYSREG_BF(name,value) \
|
||||
(((value) & ((1 << SYSREG_##name##_SIZE) - 1)) \
|
||||
<< SYSREG_##name##_OFFSET)
|
||||
#define SYSREG_BFEXT(name,value) \
|
||||
(((value) >> SYSREG_##name##_OFFSET) \
|
||||
& ((1 << SYSREG_##name##_SIZE) - 1))
|
||||
#define SYSREG_BFINS(name,value,old) \
|
||||
(((old) & ~(((1 << SYSREG_##name##_SIZE) - 1) \
|
||||
<< SYSREG_##name##_OFFSET)) \
|
||||
| SYSREG_BF(name,value))
|
||||
|
||||
/* Register access macros */
|
||||
#define sysreg_read(reg) __builtin_mfsr(SYSREG_##reg)
|
||||
#define sysreg_write(reg, value) __builtin_mtsr(SYSREG_##reg, value)
|
||||
|
||||
#endif /* __ASM_AVR32_SYSREG_H__ */
|
||||
84
include/asm-avr32/types.h
Normal file
84
include/asm-avr32/types.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_AVR32_TYPES_H
|
||||
#define __ASM_AVR32_TYPES_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
typedef unsigned short umode_t;
|
||||
|
||||
/*
|
||||
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
|
||||
* header files exported to user space
|
||||
*/
|
||||
typedef __signed__ char __s8;
|
||||
typedef unsigned char __u8;
|
||||
|
||||
typedef __signed__ short __s16;
|
||||
typedef unsigned short __u16;
|
||||
|
||||
typedef __signed__ int __s32;
|
||||
typedef unsigned int __u32;
|
||||
|
||||
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
|
||||
typedef __signed__ long long __s64;
|
||||
typedef unsigned long long __u64;
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
/*
|
||||
* These aren't exported outside the kernel to avoid name space clashes
|
||||
*/
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define BITS_PER_LONG 32
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
typedef __signed__ char s8;
|
||||
typedef unsigned char u8;
|
||||
|
||||
typedef __signed__ short s16;
|
||||
typedef unsigned short u16;
|
||||
|
||||
typedef __signed__ int s32;
|
||||
typedef unsigned int u32;
|
||||
|
||||
typedef __signed__ long long s64;
|
||||
typedef unsigned long long u64;
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#ifdef CONFIG_LBD
|
||||
typedef u64 sector_t;
|
||||
#define HAVE_SECTOR_T
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
||||
#endif /* __ASM_AVR32_TYPES_H */
|
||||
56
include/asm-avr32/u-boot.h
Normal file
56
include/asm-avr32/u-boot.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Atmel Corporation
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __ASM_U_BOOT_H__
|
||||
#define __ASM_U_BOOT_H__ 1
|
||||
|
||||
typedef struct bd_info {
|
||||
unsigned long bi_baudrate;
|
||||
unsigned long bi_ip_addr;
|
||||
unsigned char bi_enetaddr[6];
|
||||
unsigned char bi_phy_id[4];
|
||||
struct environment_s *bi_env;
|
||||
unsigned long bi_board_number;
|
||||
void *bi_boot_params;
|
||||
struct {
|
||||
unsigned long start;
|
||||
unsigned long size;
|
||||
} bi_dram[CONFIG_NR_DRAM_BANKS];
|
||||
unsigned long bi_flashstart;
|
||||
unsigned long bi_flashsize;
|
||||
unsigned long bi_flashoffset;
|
||||
} bd_t;
|
||||
|
||||
#define bi_memstart bi_dram[0].start
|
||||
#define bi_memsize bi_dram[0].size
|
||||
|
||||
/**
|
||||
* container_of - cast a member of a structure out to the containing structure
|
||||
*
|
||||
* @ptr: the pointer to the member.
|
||||
* @type: the type of the container struct this is embedded in.
|
||||
* @member: the name of the member within the struct.
|
||||
*/
|
||||
#define container_of(ptr, type, member) ({ \
|
||||
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
|
||||
(type *)( (char *)__mptr - offsetof(type,member) );})
|
||||
|
||||
#endif /* __ASM_U_BOOT_H__ */
|
||||
90
include/asm-ppc/fsl_i2c.h
Normal file
90
include/asm-ppc/fsl_i2c.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Freescale I2C Controller
|
||||
*
|
||||
* Copyright 2006 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* Based on earlier versions by Gleb Natapov <gnatapov@mrv.com>,
|
||||
* Xianghua Xiao <x.xiao@motorola.com>, Eran Liberty (liberty@freescale.com),
|
||||
* and Jeff Brown.
|
||||
* Some bits are taken from linux driver writen by adrian@humboldt.co.uk.
|
||||
*
|
||||
* This software may be used and distributed according to the
|
||||
* terms of the GNU Public License, Version 2, incorporated
|
||||
* herein by reference.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* Version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef _ASM_FSL_I2C_H_
|
||||
#define _ASM_FSL_I2C_H_
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
typedef struct fsl_i2c {
|
||||
|
||||
u8 adr; /* I2C slave address */
|
||||
u8 res0[3];
|
||||
#define I2C_ADR 0xFE
|
||||
#define I2C_ADR_SHIFT 1
|
||||
#define I2C_ADR_RES ~(I2C_ADR)
|
||||
|
||||
u8 fdr; /* I2C frequency divider register */
|
||||
u8 res1[3];
|
||||
#define IC2_FDR 0x3F
|
||||
#define IC2_FDR_SHIFT 0
|
||||
#define IC2_FDR_RES ~(IC2_FDR)
|
||||
|
||||
u8 cr; /* I2C control redister */
|
||||
u8 res2[3];
|
||||
#define I2C_CR_MEN 0x80
|
||||
#define I2C_CR_MIEN 0x40
|
||||
#define I2C_CR_MSTA 0x20
|
||||
#define I2C_CR_MTX 0x10
|
||||
#define I2C_CR_TXAK 0x08
|
||||
#define I2C_CR_RSTA 0x04
|
||||
#define I2C_CR_BCST 0x01
|
||||
|
||||
u8 sr; /* I2C status register */
|
||||
u8 res3[3];
|
||||
#define I2C_SR_MCF 0x80
|
||||
#define I2C_SR_MAAS 0x40
|
||||
#define I2C_SR_MBB 0x20
|
||||
#define I2C_SR_MAL 0x10
|
||||
#define I2C_SR_BCSTM 0x08
|
||||
#define I2C_SR_SRW 0x04
|
||||
#define I2C_SR_MIF 0x02
|
||||
#define I2C_SR_RXAK 0x01
|
||||
|
||||
u8 dr; /* I2C data register */
|
||||
u8 res4[3];
|
||||
#define I2C_DR 0xFF
|
||||
#define I2C_DR_SHIFT 0
|
||||
#define I2C_DR_RES ~(I2C_DR)
|
||||
|
||||
u8 dfsrr; /* I2C digital filter sampling rate register */
|
||||
u8 res5[3];
|
||||
#define I2C_DFSRR 0x3F
|
||||
#define I2C_DFSRR_SHIFT 0
|
||||
#define I2C_DFSRR_RES ~(I2C_DR)
|
||||
|
||||
/* Fill out the reserved block */
|
||||
u8 res6[0xE8];
|
||||
} fsl_i2c_t;
|
||||
|
||||
|
||||
#define I2C_READ 1
|
||||
#define I2C_WRITE 0
|
||||
|
||||
#endif /* _ASM_I2C_H_ */
|
||||
@@ -9,6 +9,9 @@
|
||||
#ifndef __IMMAP_85xx__
|
||||
#define __IMMAP_85xx__
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <asm/fsl_i2c.h>
|
||||
|
||||
/*
|
||||
* Local-Access Registers and ECM Registers(0x0000-0x2000)
|
||||
*/
|
||||
@@ -129,37 +132,8 @@ typedef struct ccsr_ddr {
|
||||
* I2C Registers(0x3000-0x4000)
|
||||
*/
|
||||
typedef struct ccsr_i2c {
|
||||
u_char i2cadr; /* 0x3000 - I2C Address Register */
|
||||
#define MPC85xx_I2CADR_MASK 0xFE
|
||||
char res1[3];
|
||||
u_char i2cfdr; /* 0x3004 - I2C Frequency Divider Register */
|
||||
#define MPC85xx_I2CFDR_MASK 0x3F
|
||||
char res2[3];
|
||||
u_char i2ccr; /* 0x3008 - I2C Control Register */
|
||||
#define MPC85xx_I2CCR_MEN 0x80
|
||||
#define MPC85xx_I2CCR_MIEN 0x40
|
||||
#define MPC85xx_I2CCR_MSTA 0x20
|
||||
#define MPC85xx_I2CCR_MTX 0x10
|
||||
#define MPC85xx_I2CCR_TXAK 0x08
|
||||
#define MPC85xx_I2CCR_RSTA 0x04
|
||||
#define MPC85xx_I2CCR_BCST 0x01
|
||||
char res3[3];
|
||||
u_char i2csr; /* 0x300c - I2C Status Register */
|
||||
#define MPC85xx_I2CSR_MCF 0x80
|
||||
#define MPC85xx_I2CSR_MAAS 0x40
|
||||
#define MPC85xx_I2CSR_MBB 0x20
|
||||
#define MPC85xx_I2CSR_MAL 0x10
|
||||
#define MPC85xx_I2CSR_BCSTM 0x08
|
||||
#define MPC85xx_I2CSR_SRW 0x04
|
||||
#define MPC85xx_I2CSR_MIF 0x02
|
||||
#define MPC85xx_I2CSR_RXAK 0x01
|
||||
char res4[3];
|
||||
u_char i2cdr; /* 0x3010 - I2C Data Register */
|
||||
#define MPC85xx_I2CDR_DATA 0xFF
|
||||
char res5[3];
|
||||
u_char i2cdfsrr; /* 0x3014 - I2C Digital Filtering Sampling Rate Register */
|
||||
#define MPC85xx_I2CDFSRR 0x3F
|
||||
char res6[4075];
|
||||
struct fsl_i2c i2c[1];
|
||||
u8 res[4096 - 1 * sizeof(struct fsl_i2c)];
|
||||
} ccsr_i2c_t;
|
||||
|
||||
#if defined(CONFIG_MPC8540) \
|
||||
@@ -246,7 +220,6 @@ typedef struct ccsr_lbc {
|
||||
|
||||
/*
|
||||
* PCI Registers(0x8000-0x9000)
|
||||
* Omitting Reserved(0x9000-0x2_0000)
|
||||
*/
|
||||
typedef struct ccsr_pcix {
|
||||
uint cfg_addr; /* 0x8000 - PCIX Configuration Address Register */
|
||||
@@ -309,9 +282,27 @@ typedef struct ccsr_pcix {
|
||||
uint peextaddrcr; /* 0x8e14 - PCIX Error Extended Address Capture Register */
|
||||
uint pedlcr; /* 0x8e18 - PCIX Error Data Low Capture Register */
|
||||
uint pedhcr; /* 0x8e1c - PCIX Error Error Data High Capture Register */
|
||||
char res11[94688];
|
||||
uint gas_timr; /* 0x8e20 - PCIX Gasket Timer Register */
|
||||
char res11[476];
|
||||
} ccsr_pcix_t;
|
||||
|
||||
#define PCIX_COMMAND 0x62
|
||||
#define POWAR_EN 0x80000000
|
||||
#define POWAR_IO_READ 0x00080000
|
||||
#define POWAR_MEM_READ 0x00040000
|
||||
#define POWAR_IO_WRITE 0x00008000
|
||||
#define POWAR_MEM_WRITE 0x00004000
|
||||
#define POWAR_MEM_512M 0x0000001c
|
||||
#define POWAR_IO_1M 0x00000013
|
||||
|
||||
#define PIWAR_EN 0x80000000
|
||||
#define PIWAR_PF 0x20000000
|
||||
#define PIWAR_LOCAL 0x00f00000
|
||||
#define PIWAR_READ_SNOOP 0x00050000
|
||||
#define PIWAR_WRITE_SNOOP 0x00005000
|
||||
#define PIWAR_MEM_2G 0x0000001e
|
||||
|
||||
|
||||
/*
|
||||
* L2 Cache Registers(0x2_0000-0x2_1000)
|
||||
*/
|
||||
@@ -1572,6 +1563,8 @@ typedef struct ccsr_gur {
|
||||
char res15[61651];
|
||||
} ccsr_gur_t;
|
||||
|
||||
#define PORDEVSR_PCI (0x00800000) /* PCI Mode */
|
||||
|
||||
typedef struct immap {
|
||||
ccsr_local_ecm_t im_local_ecm;
|
||||
ccsr_ddr_t im_ddr;
|
||||
@@ -1579,6 +1572,8 @@ typedef struct immap {
|
||||
ccsr_duart_t im_duart;
|
||||
ccsr_lbc_t im_lbc;
|
||||
ccsr_pcix_t im_pcix;
|
||||
ccsr_pcix_t im_pcix2;
|
||||
char reserved[90112];
|
||||
ccsr_l2cache_t im_l2cache;
|
||||
ccsr_dma_t im_dma;
|
||||
ccsr_tsec_t im_tsec1;
|
||||
|
||||
1323
include/asm-ppc/immap_86xx.h
Normal file
1323
include/asm-ppc/immap_86xx.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -117,8 +117,8 @@ typedef struct _P601_BAT {
|
||||
*/
|
||||
|
||||
typedef struct _pte {
|
||||
unsigned long page_num:20;
|
||||
unsigned long flags:12; /* Page flags (some unused bits) */
|
||||
unsigned long page_num:20;
|
||||
unsigned long flags:12; /* Page flags (some unused bits) */
|
||||
} pte;
|
||||
|
||||
#define PD_SHIFT (10+12) /* Page directory */
|
||||
@@ -434,9 +434,14 @@ extern int write_bat(ppc_bat_t bat, unsigned long upper, unsigned long lower);
|
||||
#define BOOKE_PAGESZ_1GB 10
|
||||
#define BOOKE_PAGESZ_4GB 11
|
||||
|
||||
#if defined(CONFIG_MPC86xx)
|
||||
#define LAWBAR_BASE_ADDR 0x00FFFFFF
|
||||
#define LAWAR_TRGT_IF 0x01F00000
|
||||
#else
|
||||
#define LAWBAR_BASE_ADDR 0x000FFFFF
|
||||
#define LAWAR_EN 0x80000000
|
||||
#define LAWAR_TRGT_IF 0x00F00000
|
||||
#endif
|
||||
#define LAWAR_EN 0x80000000
|
||||
#define LAWAR_SIZE 0x0000003F
|
||||
|
||||
#define LAWAR_TRGT_IF_PCI 0x00000000
|
||||
@@ -445,8 +450,11 @@ extern int write_bat(ppc_bat_t bat, unsigned long upper, unsigned long lower);
|
||||
#define LAWAR_TRGT_IF_PCI2 0x00100000
|
||||
#define LAWAR_TRGT_IF_LBC 0x00400000
|
||||
#define LAWAR_TRGT_IF_CCSR 0x00800000
|
||||
#define LAWAR_TRGT_IF_DDR_INTERLEAVED 0x00B00000
|
||||
#define LAWAR_TRGT_IF_RIO 0x00c00000
|
||||
#define LAWAR_TRGT_IF_DDR 0x00f00000
|
||||
#define LAWAR_TRGT_IF_DDR1 0x00f00000
|
||||
#define LAWAR_TRGT_IF_DDR2 0x01600000
|
||||
|
||||
#define LAWAR_SIZE_BASE 0xa
|
||||
#define LAWAR_SIZE_4K (LAWAR_SIZE_BASE+1)
|
||||
@@ -469,6 +477,10 @@ extern int write_bat(ppc_bat_t bat, unsigned long upper, unsigned long lower);
|
||||
#define LAWAR_SIZE_512M (LAWAR_SIZE_BASE+18)
|
||||
#define LAWAR_SIZE_1G (LAWAR_SIZE_BASE+19)
|
||||
#define LAWAR_SIZE_2G (LAWAR_SIZE_BASE+20)
|
||||
#define LAWAR_SIZE_4G (LAWAR_SIZE_BASE+21)
|
||||
#define LAWAR_SIZE_8G (LAWAR_SIZE_BASE+22)
|
||||
#define LAWAR_SIZE_16G (LAWAR_SIZE_BASE+23)
|
||||
#define LAWAR_SIZE_32G (LAWAR_SIZE_BASE+24)
|
||||
|
||||
#ifdef CONFIG_440SPE
|
||||
/*----------------------------------------------------------------------------+
|
||||
|
||||
@@ -264,6 +264,7 @@
|
||||
#define SPRN_ICTC 0x3FB /* Instruction Cache Throttling Control Reg */
|
||||
#define SPRN_IMISS 0x3D4 /* Instruction TLB Miss Register */
|
||||
#define SPRN_IMMR 0x27E /* Internal Memory Map Register */
|
||||
#define SPRN_LDSTCR 0x3F8 /* Load/Store Control Register */
|
||||
#define SPRN_L2CR 0x3F9 /* Level 2 Cache Control Regsiter */
|
||||
#define SPRN_LR 0x008 /* Link Register */
|
||||
#define SPRN_MBAR 0x137 /* System memory base address */
|
||||
@@ -443,6 +444,11 @@
|
||||
#define SPRN_MCSR 0x23c /* Machine Check Syndrome register */
|
||||
#define ESR_ST 0x00800000 /* Store Operation */
|
||||
|
||||
#if defined(CONFIG_MPC86xx)
|
||||
#define SPRN_MSSCRO 0x3f6
|
||||
#endif
|
||||
|
||||
|
||||
/* Short-hand versions for a number of the above SPRNs */
|
||||
|
||||
#define CTR SPRN_CTR /* Counter Register */
|
||||
@@ -501,10 +507,14 @@
|
||||
#define ICMP SPRN_ICMP /* Instruction TLB Compare Register */
|
||||
#define IMISS SPRN_IMISS /* Instruction TLB Miss Register */
|
||||
#define IMMR SPRN_IMMR /* PPC 860/821 Internal Memory Map Register */
|
||||
#define LDSTCR SPRN_LDSTCR /* Load/Store Control Register */
|
||||
#define L2CR SPRN_L2CR /* PPC 750 L2 control register */
|
||||
#define LR SPRN_LR
|
||||
#define MBAR SPRN_MBAR /* System memory base address */
|
||||
#if defined(CONFIG_E500)
|
||||
#if defined(CONFIG_MPC86xx)
|
||||
#define MSSCR0 SPRN_MSSCRO
|
||||
#endif
|
||||
#if defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
|
||||
#define PIR SPRN_PIR
|
||||
#endif
|
||||
#define SVR SPRN_SVR /* System-On-Chip Version Register */
|
||||
@@ -538,7 +548,7 @@
|
||||
#define CSRR0 SPRN_CSRR0
|
||||
#define CSRR1 SPRN_CSRR1
|
||||
#define IVPR SPRN_IVPR
|
||||
#define USPRG0 SPRN_USPRG0
|
||||
#define USPRG0 SPRN_USPRG
|
||||
#define SPRG4R SPRN_SPRG4R
|
||||
#define SPRG5R SPRN_SPRG5R
|
||||
#define SPRG6R SPRN_SPRG6R
|
||||
@@ -763,6 +773,8 @@
|
||||
#define PVR_85xx_REV1 (PVR_85xx | 0x0010)
|
||||
#define PVR_85xx_REV2 (PVR_85xx | 0x0020)
|
||||
|
||||
#define PVR_86xx 0x80040000
|
||||
#define PVR_86xx_REV1 (PVR_86xx | 0x0010)
|
||||
|
||||
/*
|
||||
* For the 8xx processors, all of them report the same PVR family for
|
||||
@@ -798,6 +810,8 @@
|
||||
#define SVR_VER(svr) (((svr) >> 16) & 0xFFFF) /* Version field */
|
||||
#define SVR_REV(svr) (((svr) >> 0) & 0xFFFF) /* Revison field */
|
||||
|
||||
#define SVR_SUBVER(svr) (((svr) >> 8) & 0xFF) /* Process/MFG sub-version */
|
||||
|
||||
#define SVR_FAM(svr) (((svr) >> 20) & 0xFFF) /* Family field */
|
||||
#define SVR_MEM(svr) (((svr) >> 16) & 0xF) /* Member field */
|
||||
|
||||
@@ -815,6 +829,7 @@
|
||||
#define SVR_8541 0x807A
|
||||
#define SVR_8548 0x8031
|
||||
#define SVR_8548_E 0x8039
|
||||
#define SVR_8641 0x8090
|
||||
|
||||
|
||||
/* I am just adding a single entry for 8260 boards. I think we may be
|
||||
|
||||
@@ -45,7 +45,7 @@ typedef struct bd_info {
|
||||
unsigned long bi_sramstart; /* start of SRAM memory */
|
||||
unsigned long bi_sramsize; /* size of SRAM memory */
|
||||
#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || defined(CONFIG_8260) \
|
||||
|| defined(CONFIG_E500)
|
||||
|| defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
|
||||
unsigned long bi_immr_base; /* base of IMMR register */
|
||||
#endif
|
||||
#if defined(CONFIG_MPC5xxx)
|
||||
|
||||
@@ -79,6 +79,10 @@ typedef volatile unsigned char vu_char;
|
||||
#endif
|
||||
#include <asm/immap_8260.h>
|
||||
#endif
|
||||
#ifdef CONFIG_MPC86xx
|
||||
#include <mpc86xx.h>
|
||||
#include <asm/immap_86xx.h>
|
||||
#endif
|
||||
#ifdef CONFIG_MPC85xx
|
||||
#include <mpc85xx.h>
|
||||
#include <asm/immap_85xx.h>
|
||||
@@ -110,7 +114,7 @@ typedef volatile unsigned char vu_char;
|
||||
#endif /* DEBUG */
|
||||
|
||||
#define BUG() do { \
|
||||
printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
|
||||
printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
|
||||
panic("BUG!"); \
|
||||
} while (0)
|
||||
#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
|
||||
@@ -200,6 +204,9 @@ int checkdram (void);
|
||||
char * strmhz(char *buf, long hz);
|
||||
int last_stage_init(void);
|
||||
extern ulong monitor_flash_len;
|
||||
#ifdef CFG_ID_EEPROM
|
||||
int mac_read_from_eeprom(void);
|
||||
#endif
|
||||
|
||||
/* common/flash.c */
|
||||
void flash_perror (int);
|
||||
@@ -263,7 +270,7 @@ int misc_init_r (void);
|
||||
void jumptable_init(void);
|
||||
|
||||
/* common/memsize.c */
|
||||
int get_ram_size (volatile long *, long);
|
||||
long get_ram_size (volatile long *, long);
|
||||
|
||||
/* $(BOARD)/$(BOARD).c */
|
||||
void reset_phy (void);
|
||||
@@ -313,7 +320,8 @@ void board_ether_init (void);
|
||||
|
||||
#if defined(CONFIG_RPXCLASSIC) || defined(CONFIG_MBX) || \
|
||||
defined(CONFIG_IAD210) || defined(CONFIG_XPEDITE1K) || \
|
||||
defined(CONFIG_METROBOX) || defined(CONFIG_KAREF)
|
||||
defined(CONFIG_METROBOX) || defined(CONFIG_KAREF) || \
|
||||
defined(CONFIG_V38B)
|
||||
void board_get_enetaddr (uchar *addr);
|
||||
#endif
|
||||
|
||||
@@ -376,6 +384,7 @@ void trap_init (ulong);
|
||||
defined (CONFIG_74xx) || \
|
||||
defined (CONFIG_MPC8220) || \
|
||||
defined (CONFIG_MPC85xx) || \
|
||||
defined (CONFIG_MPC86xx) || \
|
||||
defined (CONFIG_MPC83XX)
|
||||
unsigned char in8(unsigned int);
|
||||
void out8(unsigned int, unsigned char);
|
||||
@@ -464,6 +473,10 @@ ulong get_bus_freq (ulong);
|
||||
typedef MPC85xx_SYS_INFO sys_info_t;
|
||||
void get_sys_info ( sys_info_t * );
|
||||
#endif
|
||||
#if defined(CONFIG_MPC86xx)
|
||||
typedef MPC86xx_SYS_INFO sys_info_t;
|
||||
void get_sys_info ( sys_info_t * );
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_4xx) || defined(CONFIG_IOP480)
|
||||
# if defined(CONFIG_440)
|
||||
@@ -483,7 +496,7 @@ void get_sys_info ( sys_info_t * );
|
||||
#if defined(CONFIG_8xx) || defined(CONFIG_8260)
|
||||
void cpu_init_f (volatile immap_t *immr);
|
||||
#endif
|
||||
#if defined(CONFIG_4xx) || defined(CONFIG_MPC85xx) || defined(CONFIG_MCF52x2)
|
||||
#if defined(CONFIG_4xx) || defined(CONFIG_MPC85xx) || defined(CONFIG_MCF52x2) ||defined(CONFIG_MPC86xx)
|
||||
void cpu_init_f (void);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
|
||||
#define CFG_AUTO_COMPLETE 1
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
|
||||
/* Define which ETH port will be used for connecting the network */
|
||||
#define CFG_ETH_PORT ETH_0
|
||||
|
||||
@@ -200,7 +200,6 @@
|
||||
|
||||
/* Include auto complete with tabs */
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
#define CFG_AUTO_COMPLETE 1
|
||||
#define CFG_ALT_MEMTEST 1 /* use real memory test */
|
||||
|
||||
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
|
||||
/* Include auto complete with tabs */
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
#define CFG_AUTO_COMPLETE 1
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
#define CFG_ALT_MEMTEST 1 /* use real memory test */
|
||||
|
||||
|
||||
|
||||
@@ -68,6 +68,10 @@
|
||||
* The board, however, can run at 66MHz. In any event, this value
|
||||
* must match the settings of some switches. Details can be found
|
||||
* in the README.mpc85xxads.
|
||||
*
|
||||
* XXX -- Can't we run at 66 MHz, anyway? PCI should drop to
|
||||
* 33MHz to accommodate, based on a PCI pin.
|
||||
* Note that PCI-X won't work at 33MHz.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_SYS_CLK_FREQ
|
||||
@@ -293,12 +297,31 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/* pass open firmware flat tree */
|
||||
#define CONFIG_OF_FLAT_TREE 1
|
||||
#define CONFIG_OF_BOARD_SETUP 1
|
||||
|
||||
/* maximum size of the flat tree (8K) */
|
||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||
|
||||
#define OF_CPU "PowerPC,8540@0"
|
||||
#define OF_SOC "soc8540@e0000000"
|
||||
#define OF_TBCLK (bd->bi_busfreq / 8)
|
||||
#define OF_STDOUT_PATH "/soc8540@e0000000/serial@4500"
|
||||
|
||||
#define CFG_64BIT_VSPRINTF 1
|
||||
#define CFG_64BIT_STRTOUL 1
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/* RapidIO MMU */
|
||||
#define CFG_RIO_MEM_BASE 0xc0000000 /* base address */
|
||||
@@ -312,9 +335,10 @@
|
||||
#define CFG_PCI1_MEM_BASE 0x80000000
|
||||
#define CFG_PCI1_MEM_PHYS CFG_PCI1_MEM_BASE
|
||||
#define CFG_PCI1_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI1_IO_BASE 0xe2000000
|
||||
#define CFG_PCI1_IO_PHYS CFG_PCI1_IO_BASE
|
||||
#define CFG_PCI1_IO_SIZE 0x1000000 /* 16M */
|
||||
|
||||
#define CFG_PCI1_IO_BASE 0x0
|
||||
#define CFG_PCI1_IO_PHYS 0xe2000000
|
||||
#define CFG_PCI1_IO_SIZE 0x100000 /* 1M */
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
|
||||
@@ -497,8 +521,10 @@
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"consoledev=ttyS0\0" \
|
||||
"ramdiskaddr=400000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0"
|
||||
"ramdiskaddr=600000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0" \
|
||||
"fdtaddr=400000\0" \
|
||||
"fdtfile=your.fdt.dtb\0"
|
||||
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/nfs rw " \
|
||||
@@ -506,13 +532,15 @@
|
||||
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"bootm $loadaddr"
|
||||
"tftp $fdtaddr $fdtfile;" \
|
||||
"bootm $loadaddr - $fdtaddr"
|
||||
|
||||
#define CONFIG_RAMBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/ram rw " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $ramdiskaddr $ramdiskfile;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"tftp $fdtaddr $fdtfile;" \
|
||||
"bootm $loadaddr $ramdiskaddr"
|
||||
|
||||
#define CONFIG_BOOTCOMMAND CONFIG_NFSBOOTCOMMAND
|
||||
|
||||
@@ -179,12 +179,16 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/* General PCI */
|
||||
#define CFG_PCI_MEM_BASE 0x80000000
|
||||
|
||||
@@ -308,13 +308,29 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
/* pass open firmware flat tree */
|
||||
#define CONFIG_OF_FLAT_TREE 1
|
||||
#define CONFIG_OF_BOARD_SETUP 1
|
||||
|
||||
/* maximum size of the flat tree (8K) */
|
||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||
|
||||
#define OF_CPU "PowerPC,8541@0"
|
||||
#define OF_SOC "soc8541@e0000000"
|
||||
#define OF_TBCLK (bd->bi_busfreq / 8)
|
||||
#define OF_STDOUT_PATH "/soc8541@e0000000/serial@4600"
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_EEPROM_ADDR 0x57
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/*
|
||||
* General PCI
|
||||
@@ -323,32 +339,27 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CFG_PCI1_MEM_BASE 0x80000000
|
||||
#define CFG_PCI1_MEM_PHYS CFG_PCI1_MEM_BASE
|
||||
#define CFG_PCI1_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI1_IO_BASE 0xe2000000
|
||||
#define CFG_PCI1_IO_PHYS CFG_PCI1_IO_BASE
|
||||
#define CFG_PCI1_IO_SIZE 0x1000000 /* 16M */
|
||||
#define CFG_PCI1_IO_BASE 0x00000000
|
||||
#define CFG_PCI1_IO_PHYS 0xe2000000
|
||||
#define CFG_PCI1_IO_SIZE 0x100000 /* 1M */
|
||||
|
||||
#define CFG_PCI2_MEM_BASE 0xa0000000
|
||||
#define CFG_PCI2_MEM_PHYS CFG_PCI2_MEM_BASE
|
||||
#define CFG_PCI2_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI2_IO_BASE 0xe3000000
|
||||
#define CFG_PCI2_IO_PHYS CFG_PCI2_IO_BASE
|
||||
#define CFG_PCI2_IO_SIZE 0x1000000 /* 16M */
|
||||
#define CFG_PCI2_IO_BASE 0x00000000
|
||||
#define CFG_PCI2_IO_PHYS 0xe2100000
|
||||
#define CFG_PCI2_IO_SIZE 0x100000 /* 1M */
|
||||
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
|
||||
#define CONFIG_MPC85XX_PCI2
|
||||
#define CONFIG_NET_MULTI
|
||||
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
||||
|
||||
#undef CONFIG_EEPRO100
|
||||
#undef CONFIG_TULIP
|
||||
|
||||
#if !defined(CONFIG_PCI_PNP)
|
||||
#define PCI_ENET0_IOADDR 0xe0000000
|
||||
#define PCI_ENET0_MEMADDR 0xe0000000
|
||||
#define PCI_IDSEL_NUMBER 0x0c /*slot0->3(IDSEL)=12->15*/
|
||||
#endif
|
||||
|
||||
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
#define CFG_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
|
||||
|
||||
@@ -482,8 +493,10 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"consoledev=ttyS1\0" \
|
||||
"ramdiskaddr=400000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0"
|
||||
"ramdiskaddr=600000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0" \
|
||||
"fdtaddr=400000\0" \
|
||||
"fdtfile=your.fdt.dtb\0"
|
||||
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/nfs rw " \
|
||||
@@ -491,7 +504,8 @@ extern unsigned long get_clock_freq(void);
|
||||
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"bootm $loadaddr"
|
||||
"tftp $fdtaddr $fdtfile;" \
|
||||
"bootm $loadaddr - $fdtaddr"
|
||||
|
||||
#define CONFIG_RAMBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/ram rw " \
|
||||
|
||||
@@ -314,13 +314,29 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
/* pass open firmware flat tree */
|
||||
#define CONFIG_OF_FLAT_TREE 1
|
||||
#define CONFIG_OF_BOARD_SETUP 1
|
||||
|
||||
/* maximum size of the flat tree (8K) */
|
||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||
|
||||
#define OF_CPU "PowerPC,8548@0"
|
||||
#define OF_SOC "soc8548@e0000000"
|
||||
#define OF_TBCLK (bd->bi_busfreq / 8)
|
||||
#define OF_STDOUT_PATH "/soc8548@e0000000/serial@4600"
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_EEPROM_ADDR 0x57
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/*
|
||||
* General PCI
|
||||
@@ -329,32 +345,27 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CFG_PCI1_MEM_BASE 0x80000000
|
||||
#define CFG_PCI1_MEM_PHYS CFG_PCI1_MEM_BASE
|
||||
#define CFG_PCI1_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI1_IO_BASE 0xe2000000
|
||||
#define CFG_PCI1_IO_PHYS CFG_PCI1_IO_BASE
|
||||
#define CFG_PCI1_IO_SIZE 0x1000000 /* 16M */
|
||||
#define CFG_PCI1_IO_BASE 0x00000000
|
||||
#define CFG_PCI1_IO_PHYS 0xe2000000
|
||||
#define CFG_PCI1_IO_SIZE 0x00100000 /* 1M */
|
||||
|
||||
#define CFG_PCI2_MEM_BASE 0xa0000000
|
||||
#define CFG_PCI2_MEM_PHYS CFG_PCI2_MEM_BASE
|
||||
#define CFG_PCI2_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI2_IO_BASE 0xe3000000
|
||||
#define CFG_PCI2_IO_PHYS CFG_PCI2_IO_BASE
|
||||
#define CFG_PCI2_IO_SIZE 0x1000000 /* 16M */
|
||||
#define CFG_PCI2_IO_BASE 0x00000000
|
||||
#define CFG_PCI2_IO_PHYS 0xe2100000
|
||||
#define CFG_PCI2_IO_SIZE 0x00100000 /* 1M */
|
||||
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
|
||||
#define CONFIG_NET_MULTI
|
||||
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
||||
#define CONFIG_85XX_PCI2
|
||||
|
||||
#undef CONFIG_EEPRO100
|
||||
#undef CONFIG_TULIP
|
||||
|
||||
#if !defined(CONFIG_PCI_PNP)
|
||||
#define PCI_ENET0_IOADDR 0xe0000000
|
||||
#define PCI_ENET0_MEMADDR 0xe0000000
|
||||
#define PCI_IDSEL_NUMBER 0x0c /*slot0->3(IDSEL)=12->15*/
|
||||
#endif
|
||||
|
||||
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
#define CFG_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
|
||||
|
||||
@@ -374,7 +385,7 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CONFIG_MPC85XX_TSEC2_NAME "eTSEC1"
|
||||
#define CONFIG_MPC85XX_TSEC3 1
|
||||
#define CONFIG_MPC85XX_TSEC3_NAME "eTSEC2"
|
||||
#define CONFIG_MPC85XX_TSEC4 1
|
||||
#undef CONFIG_MPC85XX_TSEC4
|
||||
#define CONFIG_MPC85XX_TSEC4_NAME "eTSEC3"
|
||||
#undef CONFIG_MPC85XX_FEC
|
||||
|
||||
@@ -382,13 +393,11 @@ extern unsigned long get_clock_freq(void);
|
||||
#define TSEC2_PHY_ADDR 1
|
||||
#define TSEC3_PHY_ADDR 2
|
||||
#define TSEC4_PHY_ADDR 3
|
||||
#define FEC_PHY_ADDR 3
|
||||
|
||||
#define TSEC1_PHYIDX 0
|
||||
#define TSEC2_PHYIDX 0
|
||||
#define TSEC3_PHYIDX 0
|
||||
#define TSEC4_PHYIDX 0
|
||||
#define FEC_PHYIDX 0
|
||||
|
||||
/* Options are: eTSEC[0-3] */
|
||||
#define CONFIG_ETHPRIME "eTSEC0"
|
||||
@@ -476,6 +485,8 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CONFIG_ETH1ADDR 00:E0:0C:00:01:FD
|
||||
#define CONFIG_HAS_ETH2
|
||||
#define CONFIG_ETH2ADDR 00:E0:0C:00:02:FD
|
||||
#define CONFIG_HAS_ETH3
|
||||
#define CONFIG_ETH3ADDR 00:E0:0C:00:03:FD
|
||||
#endif
|
||||
|
||||
#define CONFIG_IPADDR 192.168.1.253
|
||||
@@ -498,8 +509,11 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"consoledev=ttyS1\0" \
|
||||
"ramdiskaddr=400000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0"
|
||||
"ramdiskaddr=600000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0" \
|
||||
"fdtaddr=400000\0" \
|
||||
"fdtfile=your.fdt.dtb\0"
|
||||
|
||||
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/nfs rw " \
|
||||
@@ -507,7 +521,9 @@ extern unsigned long get_clock_freq(void);
|
||||
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"bootm $loadaddr"
|
||||
"tftp $fdtaddr $fdtfile;" \
|
||||
"bootm $loadaddr - $fdtaddr"
|
||||
|
||||
|
||||
#define CONFIG_RAMBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/ram rw " \
|
||||
|
||||
@@ -308,13 +308,29 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
/* pass open firmware flat tree */
|
||||
#define CONFIG_OF_FLAT_TREE 1
|
||||
#define CONFIG_OF_BOARD_SETUP 1
|
||||
|
||||
/* maximum size of the flat tree (8K) */
|
||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||
|
||||
#define OF_CPU "PowerPC,8555@0"
|
||||
#define OF_SOC "soc8555@e0000000"
|
||||
#define OF_TBCLK (bd->bi_busfreq / 8)
|
||||
#define OF_STDOUT_PATH "/soc8555@e0000000/serial@4600"
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_EEPROM_ADDR 0x57
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/*
|
||||
* General PCI
|
||||
@@ -323,33 +339,28 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CFG_PCI1_MEM_BASE 0x80000000
|
||||
#define CFG_PCI1_MEM_PHYS CFG_PCI1_MEM_BASE
|
||||
#define CFG_PCI1_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI1_IO_BASE 0xe2000000
|
||||
#define CFG_PCI1_IO_PHYS CFG_PCI1_IO_BASE
|
||||
#define CFG_PCI1_IO_SIZE 0x1000000 /* 16M */
|
||||
#define CFG_PCI1_IO_BASE 0x00000000
|
||||
#define CFG_PCI1_IO_PHYS 0xe2000000
|
||||
#define CFG_PCI1_IO_SIZE 0x00100000 /* 1M */
|
||||
|
||||
#define CFG_PCI2_MEM_BASE 0xa0000000
|
||||
#define CFG_PCI2_MEM_PHYS CFG_PCI2_MEM_BASE
|
||||
#define CFG_PCI2_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI2_IO_BASE 0xe3000000
|
||||
#define CFG_PCI2_IO_PHYS CFG_PCI2_IO_BASE
|
||||
#define CFG_PCI2_IO_SIZE 0x1000000 /* 16M */
|
||||
#define CFG_PCI2_IO_BASE 0x00000000
|
||||
#define CFG_PCI2_IO_PHYS 0xe2100000
|
||||
#define CFG_PCI2_IO_SIZE 0x00100000 /* 1M */
|
||||
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
|
||||
#define CONFIG_NET_MULTI
|
||||
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
||||
#define CONFIG_MPC85XX_PCI2
|
||||
|
||||
#undef CONFIG_EEPRO100
|
||||
#undef CONFIG_TULIP
|
||||
|
||||
#if !defined(CONFIG_PCI_PNP)
|
||||
#define PCI_ENET0_IOADDR 0xe0000000
|
||||
#define PCI_ENET0_MEMADDR 0xe0000000
|
||||
#define PCI_IDSEL_NUMBER 0x0c /*slot0->3(IDSEL)=12->15*/
|
||||
#endif
|
||||
|
||||
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
#define CFG_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
@@ -482,8 +493,10 @@ extern unsigned long get_clock_freq(void);
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"consoledev=ttyS1\0" \
|
||||
"ramdiskaddr=400000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0"
|
||||
"ramdiskaddr=600000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0" \
|
||||
"fdtaddr=400000\0" \
|
||||
"fdtfile=your.fdt.dtb\0"
|
||||
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/nfs rw " \
|
||||
@@ -491,7 +504,8 @@ extern unsigned long get_clock_freq(void);
|
||||
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"bootm $loadaddr"
|
||||
"tftp $fdtaddr $fdtfile;" \
|
||||
"bootm $loadaddr - $fdtaddr"
|
||||
|
||||
#define CONFIG_RAMBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/ram rw " \
|
||||
|
||||
@@ -290,12 +290,28 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/* pass open firmware flat tree */
|
||||
#define CONFIG_OF_FLAT_TREE 1
|
||||
#define CONFIG_OF_BOARD_SETUP 1
|
||||
|
||||
/* maximum size of the flat tree (8K) */
|
||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||
|
||||
#define OF_CPU "PowerPC,8560@0"
|
||||
#define OF_SOC "soc8560@e0000000"
|
||||
#define OF_TBCLK (bd->bi_busfreq / 8)
|
||||
#define OF_STDOUT_PATH "/soc8560@e0000000/serial@4500"
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/* RapidIO MMU */
|
||||
#define CFG_RIO_MEM_BASE 0xc0000000 /* base address */
|
||||
|
||||
634
include/configs/MPC8641HPCN.h
Normal file
634
include/configs/MPC8641HPCN.h
Normal file
@@ -0,0 +1,634 @@
|
||||
/*
|
||||
* Copyright 2006 Freescale Semiconductor.
|
||||
*
|
||||
* Srikanth Srinivasan (srikanth.srinivasan@freescale.com)
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* MPC8641HPCN board configuration file
|
||||
*
|
||||
* Make sure you change the MAC address and other network params first,
|
||||
* search for CONFIG_ETHADDR, CONFIG_SERVERIP, etc in this file.
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/* High Level Configuration Options */
|
||||
#define CONFIG_MPC86xx 1 /* MPC86xx */
|
||||
#define CONFIG_MPC8641 1 /* MPC8641 specific */
|
||||
#define CONFIG_MPC8641HPCN 1 /* MPC8641HPCN board specific */
|
||||
#define CONFIG_NUM_CPUS 2 /* Number of CPUs in the system */
|
||||
#define CONFIG_LINUX_RESET_VEC 0x100 /* Reset vector used by Linux */
|
||||
#undef DEBUG
|
||||
|
||||
#ifdef RUN_DIAG
|
||||
#define CFG_DIAG_ADDR 0xff800000
|
||||
#endif
|
||||
|
||||
#define CFG_RESET_ADDRESS 0xfff00100
|
||||
|
||||
/*#undef CONFIG_PCI*/
|
||||
#define CONFIG_PCI
|
||||
|
||||
#define CONFIG_TSEC_ENET /* tsec ethernet support */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
#define CONFIG_SPD_EEPROM /* Use SPD EEPROM for DDR setup*/
|
||||
#undef CONFIG_DDR_DLL /* possible DLL fix needed */
|
||||
#define CONFIG_DDR_2T_TIMING /* Sets the 2T timing bit */
|
||||
#define CONFIG_DDR_ECC /* only for ECC DDR module */
|
||||
#define CONFIG_ECC_INIT_VIA_DDRCONTROLLER /* DDR controller or DMA? */
|
||||
#define CONFIG_MEM_INIT_VALUE 0xDeadBeef
|
||||
#define CONFIG_NUM_DDR_CONTROLLERS 2
|
||||
/* #define CONFIG_DDR_INTERLEAVE 1 */
|
||||
#define CACHE_LINE_INTERLEAVING 0x20000000
|
||||
#define PAGE_INTERLEAVING 0x21000000
|
||||
#define BANK_INTERLEAVING 0x22000000
|
||||
#define SUPER_BANK_INTERLEAVING 0x23000000
|
||||
|
||||
|
||||
#define CONFIG_ALTIVEC 1
|
||||
|
||||
/*
|
||||
* L2CR setup -- make sure this is right for your board!
|
||||
*/
|
||||
#define CFG_L2
|
||||
#define L2_INIT 0
|
||||
#define L2_ENABLE (L2CR_L2E)
|
||||
|
||||
#ifndef CONFIG_SYS_CLK_FREQ
|
||||
#define CONFIG_SYS_CLK_FREQ get_board_sys_clk(0)
|
||||
#endif
|
||||
|
||||
#define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_pre_init */
|
||||
|
||||
#undef CFG_DRAM_TEST /* memory test, takes time */
|
||||
#define CFG_MEMTEST_START 0x00200000 /* memtest region */
|
||||
#define CFG_MEMTEST_END 0x00400000
|
||||
|
||||
/*
|
||||
* Base addresses -- Note these are effective addresses where the
|
||||
* actual resources get mapped (not physical addresses)
|
||||
*/
|
||||
#define CFG_CCSRBAR_DEFAULT 0xff700000 /* CCSRBAR Default */
|
||||
#define CFG_CCSRBAR 0xf8000000 /* relocated CCSRBAR */
|
||||
#define CFG_IMMR CFG_CCSRBAR /* PQII uses CFG_IMMR */
|
||||
|
||||
/*
|
||||
* DDR Setup
|
||||
*/
|
||||
#define CFG_DDR_SDRAM_BASE 0x00000000 /* DDR is system memory*/
|
||||
#define CFG_SDRAM_BASE CFG_DDR_SDRAM_BASE
|
||||
#define CONFIG_VERY_BIG_RAM
|
||||
|
||||
#define MPC86xx_DDR_SDRAM_CLK_CNTL
|
||||
|
||||
#if defined(CONFIG_SPD_EEPROM)
|
||||
/*
|
||||
* Determine DDR configuration from I2C interface.
|
||||
*/
|
||||
#define SPD_EEPROM_ADDRESS1 0x51 /* DDR DIMM */
|
||||
#define SPD_EEPROM_ADDRESS2 0x52 /* DDR DIMM */
|
||||
#define SPD_EEPROM_ADDRESS3 0x53 /* DDR DIMM */
|
||||
#define SPD_EEPROM_ADDRESS4 0x54 /* DDR DIMM */
|
||||
|
||||
#else
|
||||
/*
|
||||
* Manually set up DDR1 parameters
|
||||
*/
|
||||
|
||||
#define CFG_SDRAM_SIZE 256 /* DDR is 256MB */
|
||||
|
||||
#define CFG_DDR_CS0_BNDS 0x0000000F
|
||||
#define CFG_DDR_CS0_CONFIG 0x80010102 /* Enable, no interleaving */
|
||||
#define CFG_DDR_EXT_REFRESH 0x00000000
|
||||
#define CFG_DDR_TIMING_0 0x00260802
|
||||
#define CFG_DDR_TIMING_1 0x39357322
|
||||
#define CFG_DDR_TIMING_2 0x14904cc8
|
||||
#define CFG_DDR_MODE_1 0x00480432
|
||||
#define CFG_DDR_MODE_2 0x00000000
|
||||
#define CFG_DDR_INTERVAL 0x06090100
|
||||
#define CFG_DDR_DATA_INIT 0xdeadbeef
|
||||
#define CFG_DDR_CLK_CTRL 0x03800000
|
||||
#define CFG_DDR_OCD_CTRL 0x00000000
|
||||
#define CFG_DDR_OCD_STATUS 0x00000000
|
||||
#define CFG_DDR_CONTROL 0xe3008000 /* Type = DDR2 */
|
||||
#define CFG_DDR_CONTROL2 0x04400000
|
||||
|
||||
/* Not used in fixed_sdram function */
|
||||
|
||||
#define CFG_DDR_MODE 0x00000022
|
||||
#define CFG_DDR_CS1_BNDS 0x00000000
|
||||
#define CFG_DDR_CS2_BNDS 0x00000FFF /* Not done */
|
||||
#define CFG_DDR_CS3_BNDS 0x00000FFF /* Not done */
|
||||
#define CFG_DDR_CS4_BNDS 0x00000FFF /* Not done */
|
||||
#define CFG_DDR_CS5_BNDS 0x00000FFF /* Not done */
|
||||
#endif
|
||||
|
||||
#define CFG_ID_EEPROM 1
|
||||
#define ID_EEPROM_ADDR 0x57
|
||||
|
||||
/*
|
||||
* In MPC8641HPCN, allocate 16MB flash spaces at fe000000 and ff000000.
|
||||
* There is an 8MB flash. In effect, the addresses from fe000000 to fe7fffff
|
||||
* map to fe800000 to ffffffff, and ff000000 to ff7fffff map to ffffffff.
|
||||
* However, when u-boot comes up, the flash_init needs hard start addresses
|
||||
* to build its info table. For user convenience, the flash addresses is
|
||||
* fe800000 and ff800000. That way, u-boot knows where the flash is
|
||||
* and the user can download u-boot code from promjet to fef00000, a
|
||||
* more intuitive location than fe700000.
|
||||
*
|
||||
* Note that, on switching the boot location, fef00000 becomes fff00000.
|
||||
*/
|
||||
#define CFG_FLASH_BASE 0xfe800000 /* start of FLASH 32M */
|
||||
#define CFG_FLASH_BASE2 0xff800000
|
||||
|
||||
#define CFG_FLASH_BANKS_LIST {CFG_FLASH_BASE, CFG_FLASH_BASE2}
|
||||
|
||||
#define CFG_BR0_PRELIM 0xff001001 /* port size 16bit */
|
||||
#define CFG_OR0_PRELIM 0xff006ff7 /* 16MB Boot Flash area*/
|
||||
|
||||
#define CFG_BR1_PRELIM 0xfe001001 /* port size 16bit */
|
||||
#define CFG_OR1_PRELIM 0xff006ff7 /* 16MB Alternate Boot Flash area*/
|
||||
|
||||
#define CFG_BR2_PRELIM 0xf8201001 /* port size 16bit */
|
||||
#define CFG_OR2_PRELIM 0xfff06ff7 /* 1MB Compact Flash area*/
|
||||
|
||||
#define CFG_BR3_PRELIM 0xf8100801 /* port size 8bit */
|
||||
#define CFG_OR3_PRELIM 0xfff06ff7 /* 1MB PIXIS area*/
|
||||
|
||||
|
||||
#define PIXIS_BASE 0xf8100000 /* PIXIS registers */
|
||||
#define PIXIS_ID 0x0 /* Board ID at offset 0 */
|
||||
#define PIXIS_VER 0x1 /* Board version at offset 1 */
|
||||
#define PIXIS_PVER 0x2 /* PIXIS FPGA version at offset 2 */
|
||||
#define PIXIS_RST 0x4 /* PIXIS Reset Control register */
|
||||
#define PIXIS_AUX 0x6 /* PIXIS Auxiliary register; Scratch register */
|
||||
#define PIXIS_SPD 0x7 /* Register for SYSCLK speed */
|
||||
#define PIXIS_VCTL 0x10 /* VELA Control Register */
|
||||
#define PIXIS_VCFGEN0 0x12 /* VELA Config Enable 0 */
|
||||
#define PIXIS_VCFGEN1 0x13 /* VELA Config Enable 1 */
|
||||
#define PIXIS_VBOOT 0x16 /* VELA VBOOT Register */
|
||||
#define PIXIS_VSPEED0 0x17 /* VELA VSpeed 0 */
|
||||
#define PIXIS_VSPEED1 0x18 /* VELA VSpeed 1 */
|
||||
#define PIXIS_VCLKH 0x19 /* VELA VCLKH register */
|
||||
#define PIXIS_VCLKL 0x1A /* VELA VCLKL register */
|
||||
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* number of banks */
|
||||
#define CFG_MAX_FLASH_SECT 128 /* sectors per device */
|
||||
|
||||
#undef CFG_FLASH_CHECKSUM
|
||||
#define CFG_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */
|
||||
#define CFG_MONITOR_BASE TEXT_BASE /* start of monitor */
|
||||
|
||||
#define CFG_FLASH_CFI_DRIVER
|
||||
#define CFG_FLASH_CFI
|
||||
#define CFG_FLASH_EMPTY_INFO
|
||||
|
||||
#if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
|
||||
#define CFG_RAMBOOT
|
||||
#else
|
||||
#undef CFG_RAMBOOT
|
||||
#endif
|
||||
|
||||
#if defined(CFG_RAMBOOT)
|
||||
#undef CFG_FLASH_CFI_DRIVER
|
||||
#undef CONFIG_SPD_EEPROM
|
||||
#define CFG_SDRAM_SIZE 256
|
||||
#endif
|
||||
|
||||
#undef CONFIG_CLOCKS_IN_MHZ
|
||||
|
||||
#define CONFIG_L1_INIT_RAM
|
||||
#define CFG_INIT_RAM_LOCK 1
|
||||
#ifndef CFG_INIT_RAM_LOCK
|
||||
#define CFG_INIT_RAM_ADDR 0x0fd00000 /* Initial RAM address */
|
||||
#else
|
||||
#define CFG_INIT_RAM_ADDR 0xf8400000 /* Initial RAM address */
|
||||
#endif
|
||||
#define CFG_INIT_RAM_END 0x4000 /* End of used area in RAM */
|
||||
|
||||
#define CFG_GBL_DATA_SIZE 128 /* num bytes initial data */
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
#define CFG_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Mon */
|
||||
#define CFG_MALLOC_LEN (128 * 1024) /* Reserved for malloc */
|
||||
|
||||
/* Serial Port */
|
||||
#define CONFIG_CONS_INDEX 1
|
||||
#undef CONFIG_SERIAL_SOFTWARE_FIFO
|
||||
#define CFG_NS16550
|
||||
#define CFG_NS16550_SERIAL
|
||||
#define CFG_NS16550_REG_SIZE 1
|
||||
#define CFG_NS16550_CLK get_bus_freq(0)
|
||||
|
||||
#define CFG_BAUDRATE_TABLE \
|
||||
{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200}
|
||||
|
||||
#define CFG_NS16550_COM1 (CFG_CCSRBAR+0x4500)
|
||||
#define CFG_NS16550_COM2 (CFG_CCSRBAR+0x4600)
|
||||
|
||||
/* Use the HUSH parser */
|
||||
#define CFG_HUSH_PARSER
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Pass open firmware flat tree to kernel
|
||||
*/
|
||||
#define CONFIG_OF_FLAT_TREE 1
|
||||
#define CONFIG_OF_BOARD_SETUP 1
|
||||
|
||||
/* maximum size of the flat tree (8K) */
|
||||
#define OF_FLAT_TREE_MAX_SIZE 8192
|
||||
|
||||
#define OF_CPU "PowerPC,8641@0"
|
||||
#define OF_SOC "soc8641@f8000000"
|
||||
#define OF_TBCLK (bd->bi_busfreq / 4)
|
||||
#define OF_STDOUT_PATH "/soc8641@f8000000/serial@4500"
|
||||
|
||||
#define CFG_64BIT_VSPRINTF 1
|
||||
#define CFG_64BIT_STRTOUL 1
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3100
|
||||
|
||||
/*
|
||||
* RapidIO MMU
|
||||
*/
|
||||
#define CFG_RIO_MEM_BASE 0xc0000000 /* base address */
|
||||
#define CFG_RIO_MEM_PHYS CFG_RIO_MEM_BASE
|
||||
#define CFG_RIO_MEM_SIZE 0x20000000 /* 128M */
|
||||
|
||||
/*
|
||||
* General PCI
|
||||
* Addresses are mapped 1-1.
|
||||
*/
|
||||
#define CFG_PCI1_MEM_BASE 0x80000000
|
||||
#define CFG_PCI1_MEM_PHYS CFG_PCI1_MEM_BASE
|
||||
#define CFG_PCI1_MEM_SIZE 0x20000000 /* 512M */
|
||||
#define CFG_PCI1_IO_BASE 0xe2000000
|
||||
#define CFG_PCI1_IO_PHYS CFG_PCI1_IO_BASE
|
||||
#define CFG_PCI1_IO_SIZE 0x1000000 /* 16M */
|
||||
|
||||
/* PCI view of System Memory */
|
||||
#define CFG_PCI_MEMORY_BUS 0x00000000
|
||||
#define CFG_PCI_MEMORY_PHYS 0x00000000
|
||||
#define CFG_PCI_MEMORY_SIZE 0x80000000
|
||||
|
||||
/* For RTL8139 */
|
||||
#define KSEG1ADDR(x) ({u32 _x=le32_to_cpu(*(u32 *)(x)); (&_x);})
|
||||
#define _IO_BASE 0x00000000
|
||||
|
||||
#define CFG_PCI2_MEM_BASE 0xa0000000
|
||||
#define CFG_PCI2_MEM_PHYS CFG_PCI2_MEM_BASE
|
||||
#define CFG_PCI2_MEM_SIZE 0x10000000 /* 256M */
|
||||
#define CFG_PCI2_IO_BASE 0xe3000000
|
||||
#define CFG_PCI2_IO_PHYS CFG_PCI2_IO_BASE
|
||||
#define CFG_PCI2_IO_SIZE 0x1000000 /* 16M */
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
|
||||
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
|
||||
#undef CFG_SCSI_SCAN_BUS_REVERSE
|
||||
|
||||
#define CONFIG_NET_MULTI
|
||||
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
||||
|
||||
#define CONFIG_RTL8139
|
||||
|
||||
#undef CONFIG_EEPRO100
|
||||
#undef CONFIG_TULIP
|
||||
|
||||
#if !defined(CONFIG_PCI_PNP)
|
||||
#define PCI_ENET0_IOADDR 0xe0000000
|
||||
#define PCI_ENET0_MEMADDR 0xe0000000
|
||||
#define PCI_IDSEL_NUMBER 0x0c /* slot0->3(IDSEL)=12->15 */
|
||||
#endif
|
||||
|
||||
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
|
||||
#define CONFIG_DOS_PARTITION
|
||||
#define CONFIG_SCSI_AHCI
|
||||
|
||||
#ifdef CONFIG_SCSI_AHCI
|
||||
#define CONFIG_SATA_ULI5288
|
||||
#define CFG_SCSI_MAX_SCSI_ID 4
|
||||
#define CFG_SCSI_MAX_LUN 1
|
||||
#define CFG_SCSI_MAX_DEVICE (CFG_SCSI_MAX_SCSI_ID * CFG_SCSI_MAX_LUN)
|
||||
#define CFG_SCSI_MAXDEVICE CFG_SCSI_MAX_DEVICE
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
#if defined(CONFIG_TSEC_ENET)
|
||||
|
||||
#ifndef CONFIG_NET_MULTI
|
||||
#define CONFIG_NET_MULTI 1
|
||||
#endif
|
||||
|
||||
#define CONFIG_MII 1 /* MII PHY management */
|
||||
|
||||
#define CONFIG_MPC86XX_TSEC1 1
|
||||
#define CONFIG_MPC86XX_TSEC1_NAME "eTSEC1"
|
||||
#define CONFIG_MPC86XX_TSEC2 1
|
||||
#define CONFIG_MPC86XX_TSEC2_NAME "eTSEC2"
|
||||
#define CONFIG_MPC86XX_TSEC3 1
|
||||
#define CONFIG_MPC86XX_TSEC3_NAME "eTSEC3"
|
||||
#define CONFIG_MPC86XX_TSEC4 1
|
||||
#define CONFIG_MPC86XX_TSEC4_NAME "eTSEC4"
|
||||
|
||||
#define TSEC1_PHY_ADDR 0
|
||||
#define TSEC2_PHY_ADDR 1
|
||||
#define TSEC3_PHY_ADDR 2
|
||||
#define TSEC4_PHY_ADDR 3
|
||||
#define TSEC1_PHYIDX 0
|
||||
#define TSEC2_PHYIDX 0
|
||||
#define TSEC3_PHYIDX 0
|
||||
#define TSEC4_PHYIDX 0
|
||||
|
||||
#define CONFIG_ETHPRIME "eTSEC1"
|
||||
|
||||
#endif /* CONFIG_TSEC_ENET */
|
||||
|
||||
/*
|
||||
* BAT0 2G Cacheable, non-guarded
|
||||
* 0x0000_0000 2G DDR
|
||||
*/
|
||||
#define CFG_DBAT0L (BATL_PP_RW | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT0U (BATU_BL_2G | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT0L (BATL_PP_RW | BATL_MEMCOHERENCE )
|
||||
#define CFG_IBAT0U CFG_DBAT0U
|
||||
|
||||
/*
|
||||
* BAT1 1G Cache-inhibited, guarded
|
||||
* 0x8000_0000 512M PCI-Express 1 Memory
|
||||
* 0xa000_0000 512M PCI-Express 2 Memory
|
||||
* Changed it for operating from 0xd0000000
|
||||
*/
|
||||
#define CFG_DBAT1L ( CFG_PCI1_MEM_BASE | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CFG_DBAT1U (CFG_PCI1_MEM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT1L (CFG_PCI1_MEM_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT1U CFG_DBAT1U
|
||||
|
||||
/*
|
||||
* BAT2 512M Cache-inhibited, guarded
|
||||
* 0xc000_0000 512M RapidIO Memory
|
||||
*/
|
||||
#define CFG_DBAT2L (CFG_RIO_MEM_BASE | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CFG_DBAT2U (CFG_RIO_MEM_BASE | BATU_BL_512M | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT2L (CFG_RIO_MEM_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT2U CFG_DBAT2U
|
||||
|
||||
/*
|
||||
* BAT3 4M Cache-inhibited, guarded
|
||||
* 0xf800_0000 4M CCSR
|
||||
*/
|
||||
#define CFG_DBAT3L ( CFG_CCSRBAR | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CFG_DBAT3U (CFG_CCSRBAR | BATU_BL_4M | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT3L (CFG_CCSRBAR | BATL_PP_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT3U CFG_DBAT3U
|
||||
|
||||
/*
|
||||
* BAT4 32M Cache-inhibited, guarded
|
||||
* 0xe200_0000 16M PCI-Express 1 I/O
|
||||
* 0xe300_0000 16M PCI-Express 2 I/0
|
||||
* Note that this is at 0xe0000000
|
||||
*/
|
||||
#define CFG_DBAT4L ( CFG_PCI1_IO_BASE | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CFG_DBAT4U (CFG_PCI1_IO_BASE | BATU_BL_32M | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT4L (CFG_PCI1_IO_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
|
||||
#define CFG_IBAT4U CFG_DBAT4U
|
||||
|
||||
/*
|
||||
* BAT5 128K Cacheable, non-guarded
|
||||
* 0xe401_0000 128K Init RAM for stack in the CPU DCache (no backing memory)
|
||||
*/
|
||||
#define CFG_DBAT5L (CFG_INIT_RAM_ADDR | BATL_PP_RW | BATL_MEMCOHERENCE)
|
||||
#define CFG_DBAT5U (CFG_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT5L CFG_DBAT5L
|
||||
#define CFG_IBAT5U CFG_DBAT5U
|
||||
|
||||
/*
|
||||
* BAT6 32M Cache-inhibited, guarded
|
||||
* 0xfe00_0000 32M FLASH
|
||||
*/
|
||||
#define CFG_DBAT6L ((CFG_FLASH_BASE & 0xfe000000) | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CFG_DBAT6U ((CFG_FLASH_BASE & 0xfe000000) | BATU_BL_32M | BATU_VS | BATU_VP)
|
||||
#define CFG_IBAT6L ((CFG_FLASH_BASE & 0xfe000000) | BATL_PP_RW | BATL_MEMCOHERENCE)
|
||||
#define CFG_IBAT6U CFG_DBAT6U
|
||||
|
||||
#define CFG_DBAT7L 0x00000000
|
||||
#define CFG_DBAT7U 0x00000000
|
||||
#define CFG_IBAT7L 0x00000000
|
||||
#define CFG_IBAT7U 0x00000000
|
||||
|
||||
/*
|
||||
* Environment
|
||||
*/
|
||||
#ifndef CFG_RAMBOOT
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_ADDR (CFG_MONITOR_BASE + 0x40000)
|
||||
#define CFG_ENV_SECT_SIZE 0x40000 /* 256K(one sector) for env */
|
||||
#define CFG_ENV_SIZE 0x2000
|
||||
#else
|
||||
#define CFG_NO_FLASH 1 /* Flash is not usable now */
|
||||
#define CFG_ENV_IS_NOWHERE 1 /* Store ENV in memory only */
|
||||
#define CFG_ENV_ADDR (CFG_MONITOR_BASE - 0x1000)
|
||||
#define CFG_ENV_SIZE 0x2000
|
||||
#endif
|
||||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
#define CFG_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
|
||||
|
||||
#if defined(CFG_RAMBOOT)
|
||||
#if defined(CONFIG_PCI)
|
||||
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL \
|
||||
| CFG_CMD_PING \
|
||||
| CFG_CMD_PCI \
|
||||
| CFG_CMD_I2C \
|
||||
| CFG_CMD_SCSI \
|
||||
| CFG_CMD_EXT2) \
|
||||
& \
|
||||
~(CFG_CMD_ENV \
|
||||
| CFG_CMD_IMLS \
|
||||
| CFG_CMD_FLASH \
|
||||
| CFG_CMD_LOADS))
|
||||
#else
|
||||
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL \
|
||||
| CFG_CMD_PING \
|
||||
| CFG_CMD_I2C \
|
||||
| CFG_CMD_SCSI \
|
||||
| CGF_CMD_EXT2) \
|
||||
& \
|
||||
~(CFG_CMD_ENV \
|
||||
| CFG_CMD_IMLS \
|
||||
| CFG_CMD_FLASH \
|
||||
| CFG_CMD_LOADS))
|
||||
#endif
|
||||
#else
|
||||
#if defined(CONFIG_PCI)
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL \
|
||||
| CFG_CMD_PCI \
|
||||
| CFG_CMD_PING \
|
||||
| CFG_CMD_I2C \
|
||||
| CFG_CMD_SCSI \
|
||||
| CFG_CMD_EXT2)
|
||||
#else
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL \
|
||||
| CFG_CMD_PING \
|
||||
| CFG_CMD_I2C)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#undef CONFIG_WATCHDOG /* watchdog disabled */
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_LOAD_ADDR 0x2000000 /* default load address */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1ms ticks */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux*/
|
||||
|
||||
/* Cache Configuration */
|
||||
#define CFG_DCACHE_SIZE 32768
|
||||
#define CFG_CACHELINE_SIZE 32
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /*log base 2 of the above value*/
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Internal Definitions
|
||||
*
|
||||
* Boot Flags
|
||||
*/
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */
|
||||
#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Environment Configuration
|
||||
*/
|
||||
|
||||
/* The mac addresses for all ethernet interface */
|
||||
#if defined(CONFIG_TSEC_ENET)
|
||||
#define CONFIG_ETHADDR 00:E0:0C:00:00:01
|
||||
#define CONFIG_ETH1ADDR 00:E0:0C:00:01:FD
|
||||
#define CONFIG_ETH2ADDR 00:E0:0C:00:02:FD
|
||||
#define CONFIG_ETH3ADDR 00:E0:0C:00:03:FD
|
||||
#endif
|
||||
|
||||
#define CONFIG_HAS_ETH1 1
|
||||
#define CONFIG_HAS_ETH2 1
|
||||
#define CONFIG_HAS_ETH3 1
|
||||
|
||||
#define CONFIG_IPADDR 192.168.1.100
|
||||
|
||||
#define CONFIG_HOSTNAME unknown
|
||||
#define CONFIG_ROOTPATH /opt/nfsroot
|
||||
#define CONFIG_BOOTFILE uImage
|
||||
|
||||
#define CONFIG_SERVERIP 192.168.1.1
|
||||
#define CONFIG_GATEWAYIP 192.168.1.1
|
||||
#define CONFIG_NETMASK 255.255.255.0
|
||||
|
||||
/* default location for tftp and bootm */
|
||||
#define CONFIG_LOADADDR 1000000
|
||||
|
||||
#define CONFIG_BOOTDELAY 10 /* -1 disables auto-boot */
|
||||
#undef CONFIG_BOOTARGS /* the boot command will set bootargs */
|
||||
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"consoledev=ttyS0\0" \
|
||||
"ramdiskaddr=2000000\0" \
|
||||
"ramdiskfile=your.ramdisk.u-boot\0" \
|
||||
"dtbaddr=400000\0" \
|
||||
"dtbfile=mpc8641_hpcn.dtb\0" \
|
||||
"en-wd=mw.b f8100010 0x08; echo -expect:- 08; md.b f8100010 1\0" \
|
||||
"dis-wd=mw.b f8100010 0x00; echo -expect:- 00; md.b f8100010 1\0" \
|
||||
"maxcpus=2"
|
||||
|
||||
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/nfs rw " \
|
||||
"nfsroot=$serverip:$rootpath " \
|
||||
"ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"tftp $dtbaddr $dtbfile;" \
|
||||
"bootm $loadaddr - $dtbaddr"
|
||||
|
||||
#define CONFIG_RAMBOOTCOMMAND \
|
||||
"setenv bootargs root=/dev/ram rw " \
|
||||
"console=$consoledev,$baudrate $othbootargs;" \
|
||||
"tftp $ramdiskaddr $ramdiskfile;" \
|
||||
"tftp $loadaddr $bootfile;" \
|
||||
"tftp $dtbaddr $dtbfile;" \
|
||||
"bootm $loadaddr $ramdiskaddr $dtbaddr"
|
||||
|
||||
#define CONFIG_BOOTCOMMAND CONFIG_NFSBOOTCOMMAND
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
@@ -193,12 +193,16 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/*
|
||||
* EEPROM configuration
|
||||
|
||||
@@ -190,12 +190,16 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/*
|
||||
* EEPROM configuration
|
||||
|
||||
@@ -214,12 +214,16 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
#define CFG_PCI_MEM_BASE 0xC0000000
|
||||
#define CFG_PCI_MEM_PHYS 0xC0000000
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
*/
|
||||
#define CFG_IPBSPEED_133 /* define for 133MHz speed */
|
||||
|
||||
#if defined(CFG_IPBSPEED_133)
|
||||
#if defined(CFG_IPBSPEED_133) && !defined(CONFIG_CAM5200)
|
||||
/*
|
||||
* PCI Bus clocking configuration
|
||||
*
|
||||
@@ -349,13 +349,29 @@
|
||||
*/
|
||||
#define CFG_FLASH_BASE 0xFC000000
|
||||
|
||||
#ifndef CONFIG_CAM5200
|
||||
/* use CFI flash driver */
|
||||
#define CFG_FLASH_CFI 1 /* Flash is CFI conformant */
|
||||
#define CFG_FLASH_CFI_DRIVER 1 /* Use the common driver */
|
||||
#define CFG_FLASH_BANKS_LIST { CFG_BOOTCS_START }
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks
|
||||
(= chip selects) */
|
||||
#define CFG_MAX_FLASH_SECT 512 /* max num of sects on one chip */
|
||||
#else /* CONFIG_CAM5200 */
|
||||
#define CFG_MAX_FLASH_BANKS 2 /* max num of flash banks
|
||||
(= chip selects) */
|
||||
#define CFG_FLASH_WORD_SIZE unsigned int /* main flash device with */
|
||||
#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
|
||||
#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
|
||||
|
||||
#define CFG_FLASH_ADDR0 0x555
|
||||
#define CFG_FLASH_ADDR1 0x2AA
|
||||
#define CFG_FLASH_2ND_16BIT_DEV 1 /* NIOS flash is a 16bit device */
|
||||
#define CFG_MAX_FLASH_SECT 128
|
||||
#endif /* ifndef CONFIG_CAM5200 */
|
||||
|
||||
#define CFG_FLASH_EMPTY_INFO
|
||||
#define CFG_FLASH_SIZE 0x04000000 /* 64 MByte */
|
||||
#define CFG_MAX_FLASH_SECT 512 /* max num of sects on one chip */
|
||||
#define CFG_FLASH_USE_BUFFER_WRITE 1
|
||||
|
||||
#if defined (CONFIG_CAM5200)
|
||||
@@ -366,9 +382,6 @@
|
||||
# define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00060000)
|
||||
#endif
|
||||
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks
|
||||
(= chip selects) */
|
||||
|
||||
/* Dynamic MTD partition support */
|
||||
#define CONFIG_JFFS2_CMDLINE
|
||||
#define MTDIDS_DEFAULT "nor0=TQM5200-0"
|
||||
@@ -401,10 +414,8 @@
|
||||
#elif defined (CONFIG_CAM5200)
|
||||
# define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:768k(firmware)," \
|
||||
"1792k(kernel)," \
|
||||
"3584k(small-fs)," \
|
||||
"2m(initrd)," \
|
||||
"8m(misc)," \
|
||||
"16m(big-fs)"
|
||||
"5632k(rootfs)," \
|
||||
"24m(home)"
|
||||
#elif defined (CONFIG_FO300)
|
||||
# define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:640k(firmware)," \
|
||||
"1408k(kernel)," \
|
||||
@@ -479,31 +490,43 @@
|
||||
/*
|
||||
* GPIO configuration
|
||||
*
|
||||
* use pin gpio_wkup_6 as second SDRAM chip select (mem_cs1):
|
||||
* Bit 0 (mask: 0x80000000): 1
|
||||
* use CS1: Bit 0 (mask: 0x80000000):
|
||||
* 1 -> Pin gpio_wkup_6 as second SDRAM chip select (mem_cs1).
|
||||
* use ALT CAN position: Bits 2-3 (mask: 0x30000000):
|
||||
* 00 -> No Alternatives, CAN1/2 on PSC2 according to PSC2 setting.
|
||||
* 01 -> CAN1 on I2C1, CAN2 on Tmr0/1.
|
||||
* Use for REV200 STK52XX boards and FO300 boards. Do not use
|
||||
* with REV100 modules (because, there I2C1 is used as I2C bus)
|
||||
* use PSC1 as UART: Bits 28-31 (mask: 0x00000007): 0100
|
||||
* use PSC2 as CAN: Bits 25:27 (mask: 0x00000030)
|
||||
* 000 -> All PSC2 pins are GIOPs
|
||||
* 001 -> CAN1/2 on PSC2 pins
|
||||
* Use for REV100 STK52xx boards
|
||||
* 01x -> Use AC97
|
||||
* use PSC3: Bits 20-23 (mask: 0x00000f00)
|
||||
* 1100 -> UART/SPI (on FO300 board)
|
||||
* use PSC6:
|
||||
* on STK52xx and FO300:
|
||||
* use as UART. Pins PSC6_0 to PSC6_3 are used.
|
||||
* Bits 9:11 (mask: 0x00700000):
|
||||
* 101 -> PSC6 : Extended POST test is not available
|
||||
* on MINI-FAP and TQM5200_IB:
|
||||
* use PSC6_0 to PSC6_3 as GPIO: Bits 9:11 (mask: 0x00700000):
|
||||
* 000 -> PSC6 could not be used as UART, CODEC or IrDA
|
||||
* GPIO on PSC6_3 is used in post_hotkeys_pressed() to enable extended POST
|
||||
* tests.
|
||||
* 00 -> No Alternatives, CAN1/2 on PSC2 according to PSC2 setting.
|
||||
* SPI on PSC3 according to PSC3 setting. Use for CAM5200.
|
||||
* 01 -> CAN1 on I2C1, CAN2 on Tmr0/1.
|
||||
* Use for REV200 STK52XX boards and FO300 boards. Do not use
|
||||
* with REV100 modules (because, there I2C1 is used as I2C bus).
|
||||
* use ATA: Bits 6-7 (mask 0x03000000):
|
||||
* 00 -> No ATA chip selects, csb_4/5 used as normal chip selects.
|
||||
* Use for CAM5200 board.
|
||||
* 01 -> ATA cs0/1 on csb_4/5. Use for the remaining boards.
|
||||
* use PSC6: Bits 9-11 (mask 0x00700000):
|
||||
* 000 -> use PSC6_0 to PSC6_3 as GPIO, PSC6 could not be used as
|
||||
* UART, CODEC or IrDA.
|
||||
* GPIO on PSC6_3 is used in post_hotkeys_pressed() to
|
||||
* enable extended POST tests.
|
||||
* Use for MINI-FAP and TQM5200_IB boards.
|
||||
* 101 -> use PSC6 as UART. Pins PSC6_0 to PSC6_3 are used.
|
||||
* Extended POST test is not available.
|
||||
* Use for STK52xx, FO300 and CAM5200 boards.
|
||||
* use PCI_DIS: Bit 16 (mask 0x00008000):
|
||||
* 1 -> disable PCI controller (on CAM5200 board).
|
||||
* use USB: Bits 18-19 (mask 0x00003000):
|
||||
* 10 -> two UARTs (on FO300 and CAM5200).
|
||||
* use PSC3: Bits 20-23 (mask: 0x00000f00):
|
||||
* 0000 -> All PSC3 pins are GPIOs.
|
||||
* 1100 -> UART/SPI (on FO300 board).
|
||||
* 0100 -> UART (on CAM5200 board).
|
||||
* use PSC2: Bits 25:27 (mask: 0x00000030):
|
||||
* 000 -> All PSC2 pins are GPIOs.
|
||||
* 100 -> UART (on CAM5200 board).
|
||||
* 001 -> CAN1/2 on PSC2 pins.
|
||||
* Use for REV100 STK52xx boards
|
||||
* 01x -> Use AC97 (on FO300 board).
|
||||
* use PSC1: Bits 29-31 (mask: 0x00000007):
|
||||
* 100 -> UART (on all boards).
|
||||
*/
|
||||
#if defined (CONFIG_MINIFAP)
|
||||
# define CFG_GPS_PORT_CONFIG 0x91000004
|
||||
@@ -519,6 +542,8 @@
|
||||
# endif
|
||||
#elif defined (CONFIG_FO300)
|
||||
# define CFG_GPS_PORT_CONFIG 0x91502c24
|
||||
#elif defined (CONFIG_CAM5200)
|
||||
# define CFG_GPS_PORT_CONFIG 0x8050A444
|
||||
#else /* TMQ5200 Inbetriebnahme-Board */
|
||||
# define CFG_GPS_PORT_CONFIG 0x81000004
|
||||
#endif
|
||||
@@ -541,6 +566,7 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
|
||||
@@ -613,6 +639,16 @@
|
||||
#define CFG_CS_BURST 0x00000000
|
||||
#define CFG_CS_DEADCYCLE 0x33333311 /* 1 dead cycle for flash and SM501 */
|
||||
|
||||
#if defined(CONFIG_CAM5200)
|
||||
#define CFG_CS4_START 0xB0000000
|
||||
#define CFG_CS4_SIZE 0x00010000
|
||||
#define CFG_CS4_CFG 0x01019C10
|
||||
|
||||
#define CFG_CS5_START 0xD0000000
|
||||
#define CFG_CS5_SIZE 0x01208000
|
||||
#define CFG_CS5_CFG 0x1414BF10
|
||||
#endif
|
||||
|
||||
#define CFG_RESET_ADDRESS 0xff000000
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
|
||||
@@ -123,9 +123,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -112,9 +112,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -237,6 +237,13 @@
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
|
||||
@@ -353,6 +353,12 @@ extern int tqm834x_num_flash_banks;
|
||||
#define CFG_LOAD_ADDR 0x2000000 /* default load address */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
|
||||
@@ -104,9 +104,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -102,9 +102,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -141,9 +141,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -186,18 +186,23 @@
|
||||
#define CFG_BAUDRATE_TABLE \
|
||||
{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200}
|
||||
|
||||
/* Use the HUSH parser */
|
||||
#define CFG_HUSH_PARSER
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support */
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x48} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/* I2C RTC */
|
||||
#define CONFIG_RTC_DS1337 /* Use ds1337 rtc via i2c */
|
||||
|
||||
@@ -110,9 +110,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -108,9 +108,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -110,9 +110,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -110,9 +110,8 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
@@ -151,11 +151,10 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
|
||||
@@ -160,11 +160,10 @@
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
|
||||
#if 0
|
||||
#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
||||
#endif
|
||||
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
|
||||
#define CFG_HUSH_PARSER 1 /* Use the HUSH parser */
|
||||
#ifdef CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
|
||||
183
include/configs/atstk1002.h
Normal file
183
include/configs/atstk1002.h
Normal file
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2006 Atmel Corporation
|
||||
*
|
||||
* Configuration settings for the ATSTK1002 CPU daughterboard
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#define CONFIG_AVR32 1
|
||||
#define CONFIG_AT32AP 1
|
||||
#define CONFIG_AT32AP7000 1
|
||||
#define CONFIG_ATSTK1002 1
|
||||
#define CONFIG_ATSTK1000 1
|
||||
|
||||
#define CONFIG_ATSTK1000_EXT_FLASH 1
|
||||
|
||||
/*
|
||||
* Timer clock frequency. We're using the CPU-internal COUNT register
|
||||
* for this, so this is equivalent to the CPU core clock frequency
|
||||
*/
|
||||
#define CFG_HZ 1000
|
||||
|
||||
/*
|
||||
* Set up the PLL to run at 199.5 MHz, the CPU to run at 1/2 the PLL
|
||||
* frequency and the peripherals to run at 1/4 the PLL frequency.
|
||||
*/
|
||||
#define CONFIG_PLL 1
|
||||
#define CFG_POWER_MANAGER 1
|
||||
#define CFG_OSC0_HZ 20000000
|
||||
#define CFG_PLL0_DIV 1
|
||||
#define CFG_PLL0_MUL 7
|
||||
#define CFG_PLL0_SUPPRESS_CYCLES 16
|
||||
#define CFG_CLKDIV_CPU 0
|
||||
#define CFG_CLKDIV_HSB 1
|
||||
#define CFG_CLKDIV_PBA 2
|
||||
#define CFG_CLKDIV_PBB 1
|
||||
|
||||
/*
|
||||
* The PLLOPT register controls the PLL like this:
|
||||
* icp = PLLOPT<2>
|
||||
* ivco = PLLOPT<1:0>
|
||||
*
|
||||
* We want icp=1 (default) and ivco=0 (80-160 MHz) or ivco=2 (150-240MHz).
|
||||
*/
|
||||
#define CFG_PLL0_OPT 0x04
|
||||
|
||||
#define CFG_USART1 1
|
||||
|
||||
#define CFG_CONSOLE_UART_DEV DEVICE_USART1
|
||||
|
||||
/* User serviceable stuff */
|
||||
#define CONFIG_CMDLINE_TAG 1
|
||||
#define CONFIG_SETUP_MEMORY_TAGS 1
|
||||
#define CONFIG_INITRD_TAG 1
|
||||
|
||||
#define CONFIG_STACKSIZE (2048)
|
||||
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
#define CONFIG_BOOTARGS \
|
||||
"console=ttyUS0 root=/dev/mtdblock1 fbmem=600k"
|
||||
|
||||
#define CONFIG_COMMANDS (CFG_CMD_BDI \
|
||||
| CFG_CMD_LOADS \
|
||||
| CFG_CMD_LOADB \
|
||||
/* | CFG_CMD_IMI */ \
|
||||
/* | CFG_CMD_CACHE */ \
|
||||
| CFG_CMD_FLASH \
|
||||
| CFG_CMD_MEMORY \
|
||||
/* | CFG_CMD_NET */ \
|
||||
| CFG_CMD_ENV \
|
||||
/* | CFG_CMD_IRQ */ \
|
||||
| CFG_CMD_BOOTD \
|
||||
| CFG_CMD_CONSOLE \
|
||||
/* | CFG_CMD_EEPROM */ \
|
||||
| CFG_CMD_ASKENV \
|
||||
| CFG_CMD_RUN \
|
||||
| CFG_CMD_ECHO \
|
||||
/* | CFG_CMD_I2C */ \
|
||||
| CFG_CMD_REGINFO \
|
||||
/* | CFG_CMD_DATE */ \
|
||||
/* | CFG_CMD_DHCP */ \
|
||||
/* | CFG_CMD_AUTOSCRIPT */ \
|
||||
/* | CFG_CMD_MII */ \
|
||||
| CFG_CMD_MISC \
|
||||
/* | CFG_CMD_SDRAM */ \
|
||||
/* | CFG_CMD_DIAG */ \
|
||||
/* | CFG_CMD_HWFLOW */ \
|
||||
/* | CFG_CMD_SAVES */ \
|
||||
/* | CFG_CMD_SPI */ \
|
||||
/* | CFG_CMD_PING */ \
|
||||
/* | CFG_CMD_MMC */ \
|
||||
/* | CFG_CMD_FAT */ \
|
||||
/* | CFG_CMD_IMLS */ \
|
||||
/* | CFG_CMD_ITEST */ \
|
||||
/* | CFG_CMD_EXT2 */ \
|
||||
)
|
||||
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#define CONFIG_ATMEL_USART 1
|
||||
#define CONFIG_PIO2 1
|
||||
#define CFG_NR_PIOS 5
|
||||
#define CFG_HSDRAMC 1
|
||||
|
||||
#define CFG_DCACHE_LINESZ 32
|
||||
#define CFG_ICACHE_LINESZ 32
|
||||
|
||||
#define CONFIG_NR_DRAM_BANKS 1
|
||||
|
||||
/* External flash on STK1000 */
|
||||
#if 0
|
||||
#define CFG_FLASH_CFI 1
|
||||
#define CFG_FLASH_CFI_DRIVER 1
|
||||
#endif
|
||||
|
||||
#define CFG_FLASH_BASE 0x00000000
|
||||
#define CFG_FLASH_SIZE 0x800000
|
||||
#define CFG_MAX_FLASH_BANKS 1
|
||||
#define CFG_MAX_FLASH_SECT 135
|
||||
|
||||
#define CFG_MONITOR_BASE CFG_FLASH_BASE
|
||||
|
||||
#define CFG_INTRAM_BASE 0x24000000
|
||||
#define CFG_INTRAM_SIZE 0x8000
|
||||
|
||||
#define CFG_SDRAM_BASE 0x10000000
|
||||
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_SIZE 65536
|
||||
#define CFG_ENV_ADDR (CFG_FLASH_BASE + CFG_FLASH_SIZE - CFG_ENV_SIZE)
|
||||
|
||||
#define CFG_INIT_SP_ADDR (CFG_INTRAM_BASE + CFG_INTRAM_SIZE)
|
||||
|
||||
#define CFG_MALLOC_LEN (256*1024)
|
||||
#define CFG_MALLOC_END \
|
||||
({ \
|
||||
DECLARE_GLOBAL_DATA_PTR; \
|
||||
CFG_SDRAM_BASE + gd->sdram_size; \
|
||||
})
|
||||
#define CFG_MALLOC_START (CFG_MALLOC_END - CFG_MALLOC_LEN)
|
||||
|
||||
#define CFG_DMA_ALLOC_LEN (16384)
|
||||
#define CFG_DMA_ALLOC_END (CFG_MALLOC_START)
|
||||
#define CFG_DMA_ALLOC_START (CFG_DMA_ALLOC_END - CFG_DMA_ALLOC_LEN)
|
||||
/* Allow 2MB for the kernel run-time image */
|
||||
#define CFG_LOAD_ADDR (CFG_SDRAM_BASE + 0x00200000)
|
||||
#define CFG_BOOTPARAMS_LEN (16 * 1024)
|
||||
|
||||
/* Other configuration settings that shouldn't have to change all that often */
|
||||
#define CFG_PROMPT "Uboot> "
|
||||
#define CFG_CBSIZE 256
|
||||
#define CFG_MAXARGS 8
|
||||
#define CFG_PBSIZE (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
|
||||
#define CFG_LONGHELP 1
|
||||
|
||||
#define CFG_MEMTEST_START \
|
||||
({ DECLARE_GLOBAL_DATA_PTR; gd->bd->bi_dram[0].start; })
|
||||
#define CFG_MEMTEST_END \
|
||||
({ \
|
||||
DECLARE_GLOBAL_DATA_PTR; \
|
||||
gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size; \
|
||||
})
|
||||
#define CFG_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 }
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
395
include/configs/ep82xxm.h
Normal file
395
include/configs/ep82xxm.h
Normal file
@@ -0,0 +1,395 @@
|
||||
/*
|
||||
* Copyright (C) 2006 Embedded Planet, LLC.
|
||||
*
|
||||
* U-Boot configuration for Embedded Planet EP82xxM boards.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#define CONFIG_MPC8260
|
||||
#define CPU_ID_STR "MPC8270"
|
||||
|
||||
#define CONFIG_EP82XXM /* Embedded Planet EP82xxM H 1.0 board */
|
||||
/* 256MB SDRAM / 64MB FLASH */
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
#define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */
|
||||
|
||||
/* Allow serial number (serial#) and MAC address (ethaddr) to be overwritten */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
/*
|
||||
* Select serial console configuration
|
||||
*
|
||||
* If either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
|
||||
* CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
|
||||
* for SCC).
|
||||
*/
|
||||
#define CONFIG_CONS_ON_SMC /* Console is on SMC */
|
||||
#undef CONFIG_CONS_ON_SCC /* It's not on SCC */
|
||||
#undef CONFIG_CONS_NONE /* It's not on external UART */
|
||||
#define CONFIG_CONS_INDEX 1 /* SMC1 is used for console */
|
||||
|
||||
#define CFG_BCSR 0xFA000000
|
||||
|
||||
/*
|
||||
* Select ethernet configuration
|
||||
*
|
||||
* If either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected,
|
||||
* then CONFIG_ETHER_INDEX must be set to the channel number (1-4 for
|
||||
* SCC, 1-3 for FCC)
|
||||
*
|
||||
* If CONFIG_ETHER_NONE is defined, then either the ethernet routines
|
||||
* must be defined elsewhere (as for the console), or CFG_CMD_NET must
|
||||
* be removed from CONFIG_COMMANDS to remove support for networking.
|
||||
*/
|
||||
#undef CONFIG_ETHER_ON_SCC /* Ethernet is not on SCC */
|
||||
#define CONFIG_ETHER_ON_FCC /* Ethernet is on FCC */
|
||||
#undef CONFIG_ETHER_NONE /* No external Ethernet */
|
||||
|
||||
#define CONFIG_NET_MULTI
|
||||
|
||||
#define CONFIG_ETHER_ON_FCC2
|
||||
#define CONFIG_ETHER_ON_FCC3
|
||||
|
||||
#define CFG_CMXFCR_MASK3 (CMXFCR_FC3 | CMXFCR_RF3CS_MSK | CMXFCR_TF3CS_MSK)
|
||||
#define CFG_CMXFCR_VALUE3 (CMXFCR_RF3CS_CLK15 | CMXFCR_TF3CS_CLK16)
|
||||
#define CFG_CMXFCR_MASK2 (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
|
||||
#define CFG_CMXFCR_VALUE2 (CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
|
||||
|
||||
#define CFG_CPMFCR_RAMTYPE 0
|
||||
#define CFG_FCC_PSMR (FCC_PSMR_FDE | FCC_PSMR_LPB)
|
||||
|
||||
#define CONFIG_MII /* MII PHY management */
|
||||
#define CONFIG_BITBANGMII /* Bit-banged MDIO interface */
|
||||
|
||||
/*
|
||||
* GPIO pins used for bit-banged MII communications
|
||||
*/
|
||||
#define MDIO_PORT 0 /* Not used - implemented in BCSR */
|
||||
#define MDIO_ACTIVE (*(vu_char *)(CFG_BCSR + 8) &= 0xFB)
|
||||
#define MDIO_TRISTATE (*(vu_char *)(CFG_BCSR + 8) |= 0x04)
|
||||
#define MDIO_READ (*(vu_char *)(CFG_BCSR + 8) & 1)
|
||||
|
||||
#define MDIO(bit) if(bit) *(vu_char *)(CFG_BCSR + 8) |= 0x01; \
|
||||
else *(vu_char *)(CFG_BCSR + 8) &= 0xFE
|
||||
|
||||
#define MDC(bit) if(bit) *(vu_char *)(CFG_BCSR + 8) |= 0x02; \
|
||||
else *(vu_char *)(CFG_BCSR + 8) &= 0xFD
|
||||
|
||||
#define MIIDELAY udelay(1)
|
||||
|
||||
|
||||
#ifndef CONFIG_8260_CLKIN
|
||||
#define CONFIG_8260_CLKIN 66000000 /* in Hz */
|
||||
#endif
|
||||
|
||||
#define CONFIG_BAUDRATE 115200
|
||||
|
||||
#define CFG_VXWORKS_MAC_PTR 0x4300 /* Pass Ethernet MAC to VxWorks */
|
||||
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL \
|
||||
| CFG_CMD_DHCP \
|
||||
| CFG_CMD_ECHO \
|
||||
| CFG_CMD_I2C \
|
||||
| CFG_CMD_IMMAP \
|
||||
| CFG_CMD_MII \
|
||||
| CFG_CMD_PING \
|
||||
| CFG_CMD_DATE \
|
||||
| CFG_CMD_DTT \
|
||||
| CFG_CMD_EEPROM \
|
||||
| CFG_CMD_PCI \
|
||||
| CFG_CMD_DIAG \
|
||||
)
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
#define CONFIG_ETHADDR 00:10:EC:00:88:65
|
||||
#define CONFIG_HAS_ETH1
|
||||
#define CONFIG_ETH1ADDR 00:10:EC:80:88:65
|
||||
#define CONFIG_IPADDR 10.0.0.245
|
||||
#define CONFIG_HOSTNAME EP82xxM
|
||||
#define CONFIG_SERVERIP 10.0.0.26
|
||||
#define CONFIG_GATEWAYIP 10.0.0.1
|
||||
#define CONFIG_NETMASK 255.255.255.0
|
||||
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
|
||||
#define CFG_ENV_IN_OWN_SECT 1
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS "ethprime=FCC3 ETHERNET"
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#undef CONFIG_KGDB_ON_SMC /* define if kgdb on SMC */
|
||||
#define CONFIG_KGDB_ON_SCC /* define if kgdb on SCC */
|
||||
#undef CONFIG_KGDB_NONE /* define if kgdb on something else */
|
||||
#define CONFIG_KGDB_INDEX 1 /* which serial channel for kgdb */
|
||||
#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port at */
|
||||
#endif
|
||||
|
||||
#define CONFIG_BZIP2 /* include support for bzip2 compressed images */
|
||||
#undef CONFIG_WATCHDOG /* disable platform specific watchdog */
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_HUSH_PARSER
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "ep82xxm=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Environment
|
||||
*----------------------------------------------------------------------*/
|
||||
/*
|
||||
* Define here the location of the environment variables (FLASH or EEPROM).
|
||||
* Note: DENX encourages to use redundant environment in FLASH.
|
||||
*/
|
||||
#if 1
|
||||
#define CFG_ENV_IS_IN_FLASH 1 /* use FLASH for environment vars */
|
||||
#else
|
||||
#define CFG_ENV_IS_IN_EEPROM 1 /* use EEPROM for environment vars */
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FLASH related
|
||||
*----------------------------------------------------------------------*/
|
||||
#define CFG_FLASH_BASE 0xFC000000
|
||||
#define CFG_FLASH_CFI
|
||||
#define CFG_FLASH_CFI_DRIVER
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks */
|
||||
#define CFG_MAX_FLASH_SECT 512 /* max num of sects on one chip */
|
||||
#define CFG_FLASH_EMPTY_INFO /* print 'E' for empty sector in flinfo */
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_FLASH
|
||||
#define CFG_ENV_SECT_SIZE 0x20000
|
||||
#define CFG_ENV_ADDR (CFG_MONITOR_BASE + CFG_MONITOR_LEN)
|
||||
#endif /* CFG_ENV_IS_IN_FLASH */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* I2C
|
||||
*----------------------------------------------------------------------*/
|
||||
/* EEPROM Configuration */
|
||||
#define CFG_EEPROM_SIZE 0x1000
|
||||
#define CFG_I2C_EEPROM_ADDR 0x54
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 1
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 3
|
||||
#define CFG_EEPROM_PAGE_WRITE_ENABLE
|
||||
#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_EEPROM
|
||||
#define CFG_ENV_SIZE 0x200 /* Size of Environment vars */
|
||||
#define CFG_ENV_OFFSET 0x0
|
||||
#endif /* CFG_ENV_IS_IN_EEPROM */
|
||||
|
||||
/* RTC Configuration */
|
||||
#define CONFIG_RTC_M41T11 1 /* uses a M41T81 */
|
||||
#define CFG_I2C_RTC_ADDR 0x68
|
||||
#define CONFIG_M41T11_BASE_YEAR 1900
|
||||
|
||||
/* I2C SYSMON (LM75) */
|
||||
#define CONFIG_DTT_LM75 1
|
||||
#define CONFIG_DTT_SENSORS {0}
|
||||
#define CFG_DTT_MAX_TEMP 70
|
||||
#define CFG_DTT_LOW_TEMP -30
|
||||
#define CFG_DTT_HYSTERESIS 3
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* NVRAM Configuration
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
#define CFG_NVRAM_BASE_ADDR 0xFA080000
|
||||
#define CFG_NVRAM_SIZE (128*1024)-16
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* PCI stuff
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
/* General PCI */
|
||||
#define CONFIG_PCI /* include pci support */
|
||||
#define CONFIG_PCI_PNP /* do pci plug-and-play */
|
||||
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
|
||||
#define CONFIG_PCI_BOOTDELAY 0
|
||||
|
||||
/* PCI Memory map (if different from default map */
|
||||
#define CFG_PCI_SLV_MEM_LOCAL CFG_SDRAM_BASE /* Local base */
|
||||
#define CFG_PCI_SLV_MEM_BUS 0x00000000 /* PCI base */
|
||||
#define CFG_PICMR0_MASK_ATTRIB (PICMR_MASK_512MB | PICMR_ENABLE | \
|
||||
PICMR_PREFETCH_EN)
|
||||
|
||||
/*
|
||||
* These are the windows that allow the CPU to access PCI address space.
|
||||
* All three PCI master windows, which allow the CPU to access PCI
|
||||
* prefetch, non prefetch, and IO space (see below), must all fit within
|
||||
* these windows.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Master window that allows the CPU to access PCI Memory (prefetch).
|
||||
* This window will be setup with the second set of Outbound ATU registers
|
||||
* in the bridge.
|
||||
*/
|
||||
|
||||
#define CFG_PCI_MSTR_MEM_LOCAL 0x80000000 /* Local base */
|
||||
#define CFG_PCI_MSTR_MEM_BUS 0x80000000 /* PCI base */
|
||||
#define CFG_CPU_PCI_MEM_START PCI_MSTR_MEM_LOCAL
|
||||
#define CFG_PCI_MSTR_MEM_SIZE 0x20000000 /* 512MB */
|
||||
#define CFG_POCMR0_MASK_ATTRIB (POCMR_MASK_512MB | POCMR_ENABLE | POCMR_PREFETCH_EN)
|
||||
|
||||
/*
|
||||
* Master window that allows the CPU to access PCI Memory (non-prefetch).
|
||||
* This window will be setup with the second set of Outbound ATU registers
|
||||
* in the bridge.
|
||||
*/
|
||||
|
||||
#define CFG_PCI_MSTR_MEMIO_LOCAL 0xA0000000 /* Local base */
|
||||
#define CFG_PCI_MSTR_MEMIO_BUS 0xA0000000 /* PCI base */
|
||||
#define CFG_CPU_PCI_MEMIO_START PCI_MSTR_MEMIO_LOCAL
|
||||
#define CFG_PCI_MSTR_MEMIO_SIZE 0x20000000 /* 512MB */
|
||||
#define CFG_POCMR1_MASK_ATTRIB (POCMR_MASK_512MB | POCMR_ENABLE)
|
||||
|
||||
/*
|
||||
* Master window that allows the CPU to access PCI IO space.
|
||||
* This window will be setup with the first set of Outbound ATU registers
|
||||
* in the bridge.
|
||||
*/
|
||||
|
||||
#define CFG_PCI_MSTR_IO_LOCAL 0xF6000000 /* Local base */
|
||||
#define CFG_PCI_MSTR_IO_BUS 0x00000000 /* PCI base */
|
||||
#define CFG_CPU_PCI_IO_START PCI_MSTR_IO_LOCAL
|
||||
#define CFG_PCI_MSTR_IO_SIZE 0x02000000 /* 64MB */
|
||||
#define CFG_POCMR2_MASK_ATTRIB (POCMR_MASK_32MB | POCMR_ENABLE | POCMR_PCI_IO)
|
||||
|
||||
|
||||
/* PCIBR0 - for PCI IO*/
|
||||
#define CFG_PCI_MSTR0_LOCAL CFG_PCI_MSTR_IO_LOCAL /* Local base */
|
||||
#define CFG_PCIMSK0_MASK ~(CFG_PCI_MSTR_IO_SIZE - 1U) /* Size of window */
|
||||
/* PCIBR1 - prefetch and non-prefetch regions joined together */
|
||||
#define CFG_PCI_MSTR1_LOCAL CFG_PCI_MSTR_MEM_LOCAL
|
||||
#define CFG_PCIMSK1_MASK ~(CFG_PCI_MSTR_MEM_SIZE + CFG_PCI_MSTR_MEMIO_SIZE - 1U)
|
||||
|
||||
|
||||
#define CFG_DIRECT_FLASH_TFTP
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_JFFS2)
|
||||
#define CFG_JFFS2_FIRST_BANK 0
|
||||
#define CFG_JFFS2_NUM_BANKS CFG_MAX_FLASH_BANKS
|
||||
#define CFG_JFFS2_FIRST_SECTOR 0
|
||||
#define CFG_JFFS2_LAST_SECTOR 62
|
||||
#define CFG_JFFS2_SORT_FRAGMENTS
|
||||
#define CFG_JFFS_CUSTOM_PART
|
||||
#endif /* CFG_CMD_JFFS2 */
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_I2C)
|
||||
#define CONFIG_HARD_I2C 1 /* To enable I2C support */
|
||||
#define CFG_I2C_SPEED 100000 /* I2C speed */
|
||||
#define CFG_I2C_SLAVE 0x7F /* I2C slave address */
|
||||
#endif /* CFG_CMD_I2C */
|
||||
|
||||
#define CFG_MONITOR_BASE TEXT_BASE
|
||||
#if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
|
||||
#define CFG_RAMBOOT
|
||||
#endif
|
||||
|
||||
#define CFG_MONITOR_LEN (512 << 10) /* Reserve 256KB for Monitor */
|
||||
|
||||
#define CFG_DEFAULT_IMMR 0x00010000
|
||||
#define CFG_IMMR 0xF0000000
|
||||
|
||||
#define CFG_INIT_RAM_ADDR CFG_IMMR
|
||||
#define CFG_INIT_RAM_END 0x2000 /* End of used area in DPRAM */
|
||||
#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
|
||||
/* Hard reset configuration word */
|
||||
#define CFG_HRCW_MASTER 0 /*0x1C800641*/ /* Not used - provided by CPLD */
|
||||
/* No slaves */
|
||||
#define CFG_HRCW_SLAVE1 0
|
||||
#define CFG_HRCW_SLAVE2 0
|
||||
#define CFG_HRCW_SLAVE3 0
|
||||
#define CFG_HRCW_SLAVE4 0
|
||||
#define CFG_HRCW_SLAVE5 0
|
||||
#define CFG_HRCW_SLAVE6 0
|
||||
#define CFG_HRCW_SLAVE7 0
|
||||
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#define CFG_MALLOC_LEN (4096 << 10) /* Reserve 4 MB for malloc() */
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
||||
|
||||
#define CFG_CACHELINE_SIZE 32 /* For MPC8260 CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
#define CFG_HID0_INIT 0
|
||||
#define CFG_HID0_FINAL 0
|
||||
|
||||
#define CFG_HID2 0
|
||||
|
||||
#define CFG_SIUMCR 0x02610000
|
||||
#define CFG_SYPCR 0xFFFF0689
|
||||
#define CFG_BCR 0x8080E000
|
||||
#define CFG_SCCR 0x00000001
|
||||
|
||||
#define CFG_RMR 0
|
||||
#define CFG_TMCNTSC 0x000000C3
|
||||
#define CFG_PISCR 0x00000083
|
||||
#define CFG_RCCR 0
|
||||
|
||||
#define CFG_MPTPR 0x0A00
|
||||
#define CFG_PSDMR 0xC432246E
|
||||
#define CFG_PSRT 0x32
|
||||
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_SDRAM_BR (CFG_SDRAM_BASE | 0x00000041)
|
||||
#define CFG_SDRAM_OR 0xF0002900
|
||||
|
||||
#define CFG_BR0_PRELIM (CFG_FLASH_BASE | 0x00001801)
|
||||
#define CFG_OR0_PRELIM 0xFC000882
|
||||
#define CFG_BR4_PRELIM (CFG_BCSR | 0x00001001)
|
||||
#define CFG_OR4_PRELIM 0xFFF00050
|
||||
|
||||
#define CFG_RESET_ADDRESS 0xFFF00100
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
@@ -197,12 +197,16 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
#define CFG_I2C_NOPROBES {0x69} /* Don't probe these addrs */
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
#define CFG_PCI_MEM_BASE 0xC0000000
|
||||
#define CFG_PCI_MEM_PHYS 0xC0000000
|
||||
|
||||
@@ -134,13 +134,6 @@
|
||||
#define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE)
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* NAND FLASH
|
||||
*----------------------------------------------------------------------*/
|
||||
#define CFG_MAX_NAND_DEVICE 1
|
||||
#define NAND_MAX_CHIPS 1
|
||||
#define CFG_NAND_BASE CFG_NAND_ADDR
|
||||
|
||||
/*
|
||||
* IPL (Initial Program Loader, integrated inside CPU)
|
||||
* Will load first 4k from NAND (SPL) into cache and execute it from there.
|
||||
@@ -405,6 +398,14 @@
|
||||
#define CFG_EBC_PB2AP 0x24814580
|
||||
#define CFG_EBC_PB2CR (CFG_CPLD | 0x38000)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* NAND FLASH
|
||||
*----------------------------------------------------------------------*/
|
||||
#define CFG_MAX_NAND_DEVICE 1
|
||||
#define NAND_MAX_CHIPS 1
|
||||
#define CFG_NAND_BASE (CFG_NAND_ADDR + CFG_NAND_CS)
|
||||
#define CFG_NAND_SELECT_DEVICE 1 /* nand driver supports mutipl. chips */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Cache Configuration
|
||||
*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -172,8 +172,11 @@
|
||||
#define CFG_PROMPT_HUSH_PS2 "> "
|
||||
#endif
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
/*
|
||||
* I2C
|
||||
*/
|
||||
#define CONFIG_FSL_I2C /* Use FSL common I2C driver */
|
||||
#define CONFIG_HARD_I2C /* I2C with hardware support*/
|
||||
#undef CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
@@ -183,6 +186,7 @@
|
||||
/* I did the 'if 0' so we could keep the syntax above if ever needed. */
|
||||
#undef CFG_I2C_NOPROBES
|
||||
#endif
|
||||
#define CFG_I2C_OFFSET 0x3000
|
||||
|
||||
/* RapdIO Map configuration, mapped 1:1.
|
||||
*/
|
||||
|
||||
343
include/configs/v38b.h
Normal file
343
include/configs/v38b.h
Normal file
@@ -0,0 +1,343 @@
|
||||
/*
|
||||
* (C) Copyright 2003-2006 Wolfgang Denk, DENX Software Engineering,
|
||||
* wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc., 59
|
||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
* (easy to change)
|
||||
*/
|
||||
#define CONFIG_MPC5xxx 1 /* This is an MPC5xxx CPU */
|
||||
#define CONFIG_MPC5200 1 /* This is an MPC5200 CPU */
|
||||
#define CONFIG_V38B 1 /* ...on V38B board */
|
||||
#define CFG_MPC5XXX_CLKIN 33000000 /* ...running at 33.000000MHz */
|
||||
|
||||
#define CONFIG_RTC_PCF8563 1 /* has PCF8563 RTC */
|
||||
#define CONFIG_MPC5200_DDR 1 /* has DDR SDRAM */
|
||||
|
||||
#define CONFIG_HW_WATCHDOG 1 /* has watchdog */
|
||||
|
||||
#define CONFIG_NETCONSOLE 1
|
||||
|
||||
#define CONFIG_BOARD_EARLY_INIT_R 1 /* do board-specific init */
|
||||
|
||||
#define CFG_XLB_PIPELINING 1 /* gives better performance */
|
||||
|
||||
#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
||||
#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
||||
|
||||
#define CFG_CACHELINE_SIZE 32 /* For MPC5xxx CPUs */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Serial console configuration
|
||||
*/
|
||||
#define CONFIG_PSC_CONSOLE 1 /* console is on PSC1 */
|
||||
#define CONFIG_BAUDRATE 115200 /* ... at 115200 bps */
|
||||
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
||||
|
||||
/*
|
||||
* DDR
|
||||
*/
|
||||
#define SDRAM_DDR 1 /* is DDR */
|
||||
/* Settings for XLB = 132 MHz */
|
||||
#define SDRAM_MODE 0x018D0000
|
||||
#define SDRAM_EMODE 0x40090000
|
||||
#define SDRAM_CONTROL 0x704f0f00
|
||||
#define SDRAM_CONFIG1 0x73722930
|
||||
#define SDRAM_CONFIG2 0x47770000
|
||||
#define SDRAM_TAPDELAY 0x10000000
|
||||
|
||||
/*
|
||||
* PCI - no suport
|
||||
*/
|
||||
#undef CONFIG_PCI
|
||||
|
||||
/*
|
||||
* Partitions
|
||||
*/
|
||||
#define CONFIG_MAC_PARTITION 1
|
||||
#define CONFIG_DOS_PARTITION 1
|
||||
|
||||
/*
|
||||
* USB
|
||||
*/
|
||||
#define CONFIG_USB_OHCI
|
||||
#define CONFIG_USB_STORAGE
|
||||
#define CONFIG_USB_CLOCK 0x0001BBBB
|
||||
#define CONFIG_USB_CONFIG 0x00001000
|
||||
|
||||
/*
|
||||
* Supported commands
|
||||
*/
|
||||
#define CONFIG_COMMANDS (CONFIG_CMD_DFL | \
|
||||
CFG_CMD_FAT | \
|
||||
CFG_CMD_I2C | \
|
||||
CFG_CMD_IDE | \
|
||||
CFG_CMD_PING | \
|
||||
CFG_CMD_DHCP | \
|
||||
CFG_CMD_DIAG | \
|
||||
CFG_CMD_IRQ | \
|
||||
CFG_CMD_JFFS2 | \
|
||||
CFG_CMD_MII | \
|
||||
CFG_CMD_SDRAMi | \
|
||||
CFG_CMD_DATE | \
|
||||
CFG_CMD_USB | \
|
||||
CFG_CMD_FAT)
|
||||
|
||||
#define CONFIG_TIMESTAMP /* Print image info with timestamp */
|
||||
|
||||
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
|
||||
#include <cmd_confdefs.h>
|
||||
|
||||
/*
|
||||
* Boot low with 16 MB Flash
|
||||
*/
|
||||
#define CFG_LOWBOOT 1
|
||||
#define CFG_LOWBOOT16 1
|
||||
|
||||
/*
|
||||
* Autobooting
|
||||
*/
|
||||
#define CONFIG_BOOTDELAY 3 /* autoboot after 3 seconds */
|
||||
|
||||
#define CONFIG_PREBOOT "echo;" \
|
||||
"echo Type \"run flash_nfs\" to mount root filesystem over NFS;" \
|
||||
"echo"
|
||||
|
||||
#undef CONFIG_BOOTARGS
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"bootcmd=run net_nfs\0" \
|
||||
"bootdelay=3\0" \
|
||||
"baudrate=115200\0" \
|
||||
"preboot=echo;echo Type \"run flash_nfs\" to mount root " \
|
||||
"filesystem over NFS; echo\0" \
|
||||
"netdev=eth0\0" \
|
||||
"ramargs=setenv bootargs root=/dev/ram rw\0" \
|
||||
"addip=setenv bootargs $(bootargs) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):" \
|
||||
"$(netmask):$(hostname):$(netdev):off panic=1\0" \
|
||||
"flash_nfs=run nfsargs addip;bootm $(kernel_addr)\0" \
|
||||
"flash_self=run ramargs addip;bootm $(kernel_addr) " \
|
||||
"$(ramdisk_addr)\0" \
|
||||
"net_nfs=tftp 200000 $(bootfile);run nfsargs addip;bootm\0" \
|
||||
"nfsargs=setenv bootargs root=/dev/nfs rw " \
|
||||
"nfsroot=$(serverip):$(rootpath)\0" \
|
||||
"hostname=v38b\0" \
|
||||
"ethact=FEC ETHERNET\0" \
|
||||
"rootpath=/opt/eldk-3.1.1/ppc_6xx\0" \
|
||||
"update=prot off ff000000 ff03ffff; era ff000000 ff03ffff; " \
|
||||
"cp.b 200000 ff000000 $(filesize);" \
|
||||
"prot on ff000000 ff03ffff\0" \
|
||||
"load=tftp 200000 $(u-boot)\0" \
|
||||
"netmask=255.255.0.0\0" \
|
||||
"ipaddr=192.168.160.18\0" \
|
||||
"serverip=192.168.1.1\0" \
|
||||
"ethaddr=00:e0:ee:00:05:2e\0" \
|
||||
"bootfile=/tftpboot/v38b/uImage\0" \
|
||||
"u-boot=/tftpboot/v38b/u-boot.bin\0" \
|
||||
""
|
||||
|
||||
#define CONFIG_BOOTCOMMAND "run net_nfs"
|
||||
|
||||
#if defined(CONFIG_MPC5200)
|
||||
/*
|
||||
* IPB Bus clocking configuration.
|
||||
*/
|
||||
#undef CFG_IPBSPEED_133 /* define for 133MHz speed */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* I2C configuration
|
||||
*/
|
||||
#define CONFIG_HARD_I2C 1 /* I2C with hardware support */
|
||||
#define CFG_I2C_MODULE 2 /* Select I2C module #1 or #2 */
|
||||
#define CFG_I2C_SPEED 100000 /* 100 kHz */
|
||||
#define CFG_I2C_SLAVE 0x7F
|
||||
|
||||
/*
|
||||
* EEPROM configuration
|
||||
*/
|
||||
#define CFG_I2C_EEPROM_ADDR 0x50 /* 1010000x */
|
||||
#define CFG_I2C_EEPROM_ADDR_LEN 1
|
||||
#define CFG_EEPROM_PAGE_WRITE_BITS 3
|
||||
#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 70
|
||||
|
||||
/*
|
||||
* RTC configuration
|
||||
*/
|
||||
#define CFG_I2C_RTC_ADDR 0x51
|
||||
|
||||
/*
|
||||
* Flash configuration - use CFI driver
|
||||
*/
|
||||
#define CFG_FLASH_CFI 1 /* Flash is CFI conformant */
|
||||
#define CFG_FLASH_CFI_DRIVER 1 /* Use the common driver */
|
||||
#define CFG_FLASH_CFI_AMD_RESET 1
|
||||
#define CFG_FLASH_BASE 0xFF000000
|
||||
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks */
|
||||
#define CFG_FLASH_BANKS_LIST { CFG_FLASH_BASE }
|
||||
#define CFG_FLASH_SIZE 0x01000000 /* 16 MiB */
|
||||
#define CFG_MAX_FLASH_SECT 256 /* max num of sects on one chip */
|
||||
#define CFG_FLASH_USE_BUFFER_WRITE 1 /* flash write speed-up */
|
||||
|
||||
/*
|
||||
* Environment settings
|
||||
*/
|
||||
#define CFG_ENV_IS_IN_FLASH 1
|
||||
#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00040000)
|
||||
#define CFG_ENV_SIZE 0x10000
|
||||
#define CFG_ENV_SECT_SIZE 0x10000
|
||||
#define CONFIG_ENV_OVERWRITE 1
|
||||
|
||||
/*
|
||||
* Memory map
|
||||
*/
|
||||
#define CFG_MBAR 0xF0000000
|
||||
#define CFG_SDRAM_BASE 0x00000000
|
||||
#define CFG_DEFAULT_MBAR 0x80000000
|
||||
|
||||
/* Use SRAM until RAM will be available */
|
||||
#define CFG_INIT_RAM_ADDR MPC5XXX_SRAM
|
||||
#define CFG_INIT_RAM_END MPC5XXX_SRAM_SIZE /* End of used area in DPRAM */
|
||||
|
||||
#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */
|
||||
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
|
||||
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
|
||||
|
||||
#define CFG_MONITOR_BASE TEXT_BASE
|
||||
#if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
|
||||
# define CFG_RAMBOOT 1
|
||||
#endif
|
||||
|
||||
#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256kB for Monitor */
|
||||
#define CFG_MALLOC_LEN (128 << 10) /* Reserve 128kB for malloc() */
|
||||
#define CFG_BOOTMAPSZ (8 << 20) /* Linux initial memory map */
|
||||
|
||||
/*
|
||||
* Ethernet configuration
|
||||
*/
|
||||
#define CONFIG_MPC5xxx_FEC 1
|
||||
#define CONFIG_PHY_ADDR 0x00
|
||||
#define CONFIG_MII 1
|
||||
|
||||
/*
|
||||
* GPIO configuration
|
||||
*/
|
||||
#define CFG_GPS_PORT_CONFIG 0x90000404
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
*/
|
||||
#define CFG_LONGHELP /* undef to save memory */
|
||||
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
||||
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
||||
#else
|
||||
#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
#endif
|
||||
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
|
||||
#define CFG_MAXARGS 16 /* max number of command args */
|
||||
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
|
||||
|
||||
#define CFG_MEMTEST_START 0x00100000 /* memtest works on */
|
||||
#define CFG_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
|
||||
|
||||
#define CFG_LOAD_ADDR 0x100000 /* default load address */
|
||||
|
||||
#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
|
||||
|
||||
/*
|
||||
* Various low-level settings
|
||||
*/
|
||||
#define CFG_HID0_INIT HID0_ICE | HID0_ICFI
|
||||
#define CFG_HID0_FINAL HID0_ICE
|
||||
|
||||
#define CFG_BOOTCS_START CFG_FLASH_BASE
|
||||
#define CFG_BOOTCS_SIZE CFG_FLASH_SIZE
|
||||
#define CFG_BOOTCS_CFG 0x00047801
|
||||
#define CFG_CS0_START CFG_FLASH_BASE
|
||||
#define CFG_CS0_SIZE CFG_FLASH_SIZE
|
||||
|
||||
#define CFG_CS_BURST 0x00000000
|
||||
#define CFG_CS_DEADCYCLE 0x33333333
|
||||
|
||||
#define CFG_RESET_ADDRESS 0xff000000
|
||||
|
||||
/*
|
||||
* IDE/ATA (supports IDE harddisk)
|
||||
*/
|
||||
#undef CONFIG_IDE_8xx_PCCARD /* Don't use IDE with PC Card Adapter */
|
||||
#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
|
||||
#undef CONFIG_IDE_LED /* LED for ide not supported */
|
||||
|
||||
#define CONFIG_IDE_RESET /* reset for ide supported */
|
||||
#define CONFIG_IDE_PREINIT
|
||||
|
||||
#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */
|
||||
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */
|
||||
|
||||
#define CFG_ATA_IDE0_OFFSET 0x0000
|
||||
|
||||
#define CFG_ATA_BASE_ADDR MPC5XXX_ATA
|
||||
|
||||
#define CFG_ATA_DATA_OFFSET (0x0060) /* data I/O offset */
|
||||
|
||||
#define CFG_ATA_REG_OFFSET (CFG_ATA_DATA_OFFSET) /* normal register accesses offset */
|
||||
|
||||
#define CFG_ATA_ALT_OFFSET (0x005C) /* alternate registers offset */
|
||||
|
||||
#define CFG_ATA_STRIDE 4 /* Interval between registers */
|
||||
|
||||
/*
|
||||
* Status LED
|
||||
*/
|
||||
#define CONFIG_STATUS_LED /* Status LED enabled */
|
||||
#define CONFIG_BOARD_SPECIFIC_LED /* version has board specific leds */
|
||||
|
||||
#define CFG_LED_BASE MPC5XXX_GPT7_ENABLE /* Timer 7 GPIO */
|
||||
#ifndef __ASSEMBLY__
|
||||
typedef unsigned int led_id_t;
|
||||
|
||||
#define __led_toggle(_msk) \
|
||||
do { \
|
||||
*((volatile long *) (CFG_LED_BASE)) ^= (_msk); \
|
||||
} while(0)
|
||||
|
||||
#define __led_set(_msk, _st) \
|
||||
do { \
|
||||
if ((_st)) \
|
||||
*((volatile long *) (CFG_LED_BASE)) &= ~(_msk); \
|
||||
else \
|
||||
*((volatile long *) (CFG_LED_BASE)) |= (_msk); \
|
||||
} while(0)
|
||||
|
||||
#define __led_init(_msk, st) \
|
||||
do { \
|
||||
*((volatile long *) (CFG_LED_BASE)) |= 0x34; \
|
||||
} while(0)
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __CONFIG_H */
|
||||
@@ -209,6 +209,9 @@ extern void flash_read_factory_serial(flash_info_t * info, void * buffer, int of
|
||||
#define AMD_ID_GL064M_3 0x22012201 /* 3rd ID word for S29GL064M-R6 */
|
||||
#define AMD_ID_GL064MT_2 0x22102210 /* 2nd ID word for S29GL064M-R3 (top boot sector) */
|
||||
#define AMD_ID_GL064MT_3 0x22012201 /* 3rd ID word for S29GL064M-R3 (top boot sector) */
|
||||
#define AMD_ID_GL128N_2 0x22212221 /* 2nd ID word for S29GL128N */
|
||||
#define AMD_ID_GL128N_3 0x22012201 /* 3rd ID word for S29GL128N */
|
||||
|
||||
|
||||
#define AMD_ID_LV320B_2 0x221A221A /* 2d ID word for AM29LV320MB at 0x38 */
|
||||
#define AMD_ID_LV320B_3 0x22002200 /* 3d ID word for AM29LV320MB at 0x3c */
|
||||
@@ -417,6 +420,7 @@ extern void flash_read_factory_serial(flash_info_t * info, void * buffer, int of
|
||||
#define FLASH_FUJLV650 0x00D0 /* Fujitsu MBM 29LV650UE/651UE */
|
||||
#define FLASH_MT28S4M16LC 0x00E1 /* Micron MT28S4M16LC */
|
||||
#define FLASH_S29GL064M 0x00F0 /* Spansion S29GL064M-R6 */
|
||||
#define FLASH_S29GL128N 0x00F1 /* Spansion S29GL128N */
|
||||
|
||||
#define FLASH_UNKNOWN 0xFFFF /* unknown flash type */
|
||||
|
||||
|
||||
@@ -36,19 +36,18 @@ struct boot_param_header {
|
||||
|
||||
struct ft_cxt {
|
||||
struct boot_param_header *bph;
|
||||
int max_size; /* maximum size of tree */
|
||||
int overflow; /* set when this happens */
|
||||
u8 *p, *pstr, *pres; /* running pointers */
|
||||
u8 *p_begin, *pstr_begin, *pres_begin; /* starting pointers */
|
||||
u8 *p_anchor; /* start of constructed area */
|
||||
int struct_size, strings_size, res_size;
|
||||
u8 *p_rsvmap;
|
||||
u8 *p_start; /* pointer to beginning of dt_struct */
|
||||
u8 *p_end; /* pointer to end of dt_strings */
|
||||
u8 *p; /* pointer to end of dt_struct and beginning of dt_strings */
|
||||
};
|
||||
|
||||
void ft_begin_node(struct ft_cxt *cxt, const char *name);
|
||||
void ft_init_cxt(struct ft_cxt *cxt, void *blob);
|
||||
void ft_end_node(struct ft_cxt *cxt);
|
||||
|
||||
void ft_begin_tree(struct ft_cxt *cxt);
|
||||
int ft_end_tree(struct ft_cxt *cxt);
|
||||
void ft_end_tree(struct ft_cxt *cxt);
|
||||
void ft_finalize_tree(struct ft_cxt *cxt);
|
||||
|
||||
void ft_nop(struct ft_cxt *cxt);
|
||||
void ft_prop(struct ft_cxt *cxt, const char *name, const void *data, int sz);
|
||||
@@ -57,12 +56,16 @@ void ft_prop_int(struct ft_cxt *cxt, const char *name, int val);
|
||||
void ft_begin(struct ft_cxt *cxt, void *blob, int max_size);
|
||||
void ft_add_rsvmap(struct ft_cxt *cxt, u64 physaddr, u64 size);
|
||||
|
||||
void ft_setup(void *blob, int size, bd_t * bd, ulong initrd_start, ulong initrd_end);
|
||||
void ft_setup(void *blob, bd_t * bd, ulong initrd_start, ulong initrd_end);
|
||||
|
||||
void ft_dump_blob(const void *bphp);
|
||||
void ft_merge_blob(struct ft_cxt *cxt, void *blob);
|
||||
void *ft_get_prop(void *bphp, const char *propname, int *szp);
|
||||
|
||||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
void ft_board_setup(void *blob, bd_t *bd);
|
||||
void ft_cpu_setup(void *blob, bd_t *bd);
|
||||
void ft_pci_setup(void *blob, bd_t *bd);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
#define IH_CPU_MICROBLAZE 14 /* MicroBlaze */
|
||||
#define IH_CPU_NIOS2 15 /* Nios-II */
|
||||
#define IH_CPU_BLACKFIN 16 /* Blackfin */
|
||||
#define IH_CPU_AVR32 17 /* AVR32 */
|
||||
|
||||
/*
|
||||
* Image Types
|
||||
@@ -124,6 +125,7 @@
|
||||
#define IH_TYPE_FIRMWARE 5 /* Firmware Image */
|
||||
#define IH_TYPE_SCRIPT 6 /* Script file */
|
||||
#define IH_TYPE_FILESYSTEM 7 /* Filesystem Image (any type) */
|
||||
#define IH_TYPE_FLATDT 8 /* Binary Flat Device Tree Blob */
|
||||
|
||||
/*
|
||||
* Compression Types
|
||||
|
||||
@@ -188,7 +188,14 @@
|
||||
#define MPC5XXX_WU_GPIO_ENABLE (MPC5XXX_WU_GPIO + 0x0000)
|
||||
#define MPC5XXX_WU_GPIO_ODE (MPC5XXX_WU_GPIO + 0x0004)
|
||||
#define MPC5XXX_WU_GPIO_DIR (MPC5XXX_WU_GPIO + 0x0008)
|
||||
#define MPC5XXX_WU_GPIO_DATA (MPC5XXX_WU_GPIO + 0x000c)
|
||||
#define MPC5XXX_WU_GPIO_DATA_O (MPC5XXX_WU_GPIO + 0x000c)
|
||||
#define MPC5XXX_WU_GPIO_DATA_I (MPC5XXX_WU_GPIO + 0x0020)
|
||||
|
||||
/* GPIO pins */
|
||||
#define GPIO_WKUP_7 0x80000000UL
|
||||
#define GPIO_PSC6_0 0x10000000UL
|
||||
#define GPIO_PSC3_9 0x04000000UL
|
||||
#define GPIO_PSC1_4 0x01000000UL
|
||||
|
||||
/* PCI registers */
|
||||
#define MPC5XXX_PCI_CMD (MPC5XXX_PCI + 0x04)
|
||||
|
||||
116
include/mpc86xx.h
Normal file
116
include/mpc86xx.h
Normal file
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Copyright 2006 Freescale Semiconductor.
|
||||
* Jeffrey Brown
|
||||
* Srikanth Srinivasan (srikanth.srinivasan@freescale.com)
|
||||
*/
|
||||
|
||||
#ifndef __MPC86xx_H__
|
||||
#define __MPC86xx_H__
|
||||
|
||||
#define EXC_OFF_SYS_RESET 0x0100 /* System reset offset */
|
||||
|
||||
/*
|
||||
* l2cr values. Look in config_<BOARD>.h for the actual setup
|
||||
*/
|
||||
#define l2cr 1017
|
||||
|
||||
#define L2CR_L2E 0x80000000 /* bit 0 - enable */
|
||||
#define L2CR_L2PE 0x40000000 /* bit 1 - data parity */
|
||||
#define L2CR_L2I 0x00200000 /* bit 10 - global invalidate bit */
|
||||
#define L2CR_L2CTL 0x00100000 /* bit 11 - l2 ram control */
|
||||
#define L2CR_L2DO 0x00010000 /* bit 15 - data-only mode */
|
||||
#define L2CR_REP 0x00001000 /* bit 19 - l2 replacement alg */
|
||||
#define L2CR_HWF 0x00000800 /* bit 20 - hardware flush */
|
||||
#define L2CR_L2IP 0x00000001 /* global invalidate in progress */
|
||||
|
||||
/*
|
||||
* BAT settings. Look in config_<BOARD>.h for the actual setup
|
||||
*/
|
||||
|
||||
#define BATU_BL_128K 0x00000000
|
||||
#define BATU_BL_256K 0x00000004
|
||||
#define BATU_BL_512K 0x0000000c
|
||||
#define BATU_BL_1M 0x0000001c
|
||||
#define BATU_BL_2M 0x0000003c
|
||||
#define BATU_BL_4M 0x0000007c
|
||||
#define BATU_BL_8M 0x000000fc
|
||||
#define BATU_BL_16M 0x000001fc
|
||||
#define BATU_BL_32M 0x000003fc
|
||||
#define BATU_BL_64M 0x000007fc
|
||||
#define BATU_BL_128M 0x00000ffc
|
||||
#define BATU_BL_256M 0x00001ffc
|
||||
#define BATU_BL_512M 0x00003ffc
|
||||
#define BATU_BL_1G 0x00007ffc
|
||||
#define BATU_BL_2G 0x0000fffc
|
||||
#define BATU_BL_4G 0x0001fffc
|
||||
|
||||
#define BATU_VS 0x00000002
|
||||
#define BATU_VP 0x00000001
|
||||
#define BATU_INVALID 0x00000000
|
||||
|
||||
#define BATL_WRITETHROUGH 0x00000040
|
||||
#define BATL_CACHEINHIBIT 0x00000020
|
||||
#define BATL_MEMCOHERENCE 0x00000010
|
||||
#define BATL_GUARDEDSTORAGE 0x00000008
|
||||
#define BATL_NO_ACCESS 0x00000000
|
||||
|
||||
#define BATL_PP_MSK 0x00000003
|
||||
#define BATL_PP_00 0x00000000 /* No access */
|
||||
#define BATL_PP_01 0x00000001 /* Read-only */
|
||||
#define BATL_PP_10 0x00000002 /* Read-write */
|
||||
#define BATL_PP_11 0x00000003
|
||||
|
||||
#define BATL_PP_NO_ACCESS BATL_PP_00
|
||||
#define BATL_PP_RO BATL_PP_01
|
||||
#define BATL_PP_RW BATL_PP_10
|
||||
|
||||
#define HID0_XBSEN 0x00000100
|
||||
#define HID0_HIGH_BAT_EN 0x00800000
|
||||
#define HID0_XAEN 0x00020000
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
typedef struct {
|
||||
unsigned long freqProcessor;
|
||||
unsigned long freqSystemBus;
|
||||
} MPC86xx_SYS_INFO;
|
||||
|
||||
#define l1icache_enable icache_enable
|
||||
|
||||
void l2cache_enable(void);
|
||||
void l1dcache_enable(void);
|
||||
|
||||
static __inline__ unsigned long get_hid0 (void)
|
||||
{
|
||||
unsigned long hid0;
|
||||
asm volatile("mfspr %0, 1008" : "=r" (hid0) :);
|
||||
return hid0;
|
||||
}
|
||||
|
||||
static __inline__ unsigned long get_hid1 (void)
|
||||
{
|
||||
unsigned long hid1;
|
||||
asm volatile("mfspr %0, 1009" : "=r" (hid1) :);
|
||||
return hid1;
|
||||
}
|
||||
|
||||
static __inline__ void set_hid0 (unsigned long hid0)
|
||||
{
|
||||
asm volatile("mtspr 1008, %0" : : "r" (hid0));
|
||||
}
|
||||
|
||||
static __inline__ void set_hid1 (unsigned long hid1)
|
||||
{
|
||||
asm volatile("mtspr 1009, %0" : : "r" (hid1));
|
||||
}
|
||||
|
||||
|
||||
static __inline__ unsigned long get_l2cr (void)
|
||||
{
|
||||
unsigned long l2cr_val;
|
||||
asm volatile("mfspr %0, 1017" : "=r" (l2cr_val) :);
|
||||
return l2cr_val;
|
||||
}
|
||||
|
||||
#endif /* _ASMLANGUAGE */
|
||||
#endif /* __MPC86xx_H__ */
|
||||
@@ -60,4 +60,65 @@ static inline int nand_erase(nand_info_t *info, ulong off, ulong size)
|
||||
return info->erase(info, &instr);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* declarations from nand_util.c
|
||||
****************************************************************************/
|
||||
|
||||
struct nand_write_options {
|
||||
u_char *buffer; /* memory block containing image to write */
|
||||
ulong length; /* number of bytes to write */
|
||||
ulong offset; /* start address in NAND */
|
||||
int quiet; /* don't display progress messages */
|
||||
int autoplace; /* if true use auto oob layout */
|
||||
int forcejffs2; /* force jffs2 oob layout */
|
||||
int forceyaffs; /* force yaffs oob layout */
|
||||
int noecc; /* write without ecc */
|
||||
int writeoob; /* image contains oob data */
|
||||
int pad; /* pad to page size */
|
||||
int blockalign; /* 1|2|4 set multiple of eraseblocks
|
||||
* to align to */
|
||||
};
|
||||
|
||||
typedef struct nand_write_options nand_write_options_t;
|
||||
|
||||
struct nand_read_options {
|
||||
u_char *buffer; /* memory block in which read image is written*/
|
||||
ulong length; /* number of bytes to read */
|
||||
ulong offset; /* start address in NAND */
|
||||
int quiet; /* don't display progress messages */
|
||||
int readoob; /* put oob data in image */
|
||||
};
|
||||
|
||||
typedef struct nand_read_options nand_read_options_t;
|
||||
|
||||
struct nand_erase_options {
|
||||
ulong length; /* number of bytes to erase */
|
||||
ulong offset; /* first address in NAND to erase */
|
||||
int quiet; /* don't display progress messages */
|
||||
int jffs2; /* if true: format for jffs2 usage
|
||||
* (write appropriate cleanmarker blocks) */
|
||||
int scrub; /* if true, really clean NAND by erasing
|
||||
* bad blocks (UNSAFE) */
|
||||
};
|
||||
|
||||
typedef struct nand_erase_options nand_erase_options_t;
|
||||
|
||||
int nand_write_opts(nand_info_t *meminfo, const nand_write_options_t *opts);
|
||||
|
||||
int nand_read_opts(nand_info_t *meminfo, const nand_read_options_t *opts);
|
||||
int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts);
|
||||
|
||||
#define NAND_LOCK_STATUS_TIGHT 0x01
|
||||
#define NAND_LOCK_STATUS_LOCK 0x02
|
||||
#define NAND_LOCK_STATUS_UNLOCK 0x04
|
||||
|
||||
int nand_lock( nand_info_t *meminfo, int tight );
|
||||
int nand_unlock( nand_info_t *meminfo, ulong start, ulong length );
|
||||
int nand_get_lock_status(nand_info_t *meminfo, ulong offset);
|
||||
|
||||
#ifdef CFG_NAND_SELECT_DEVICE
|
||||
void board_nand_select_device(struct nand_chip *nand, int chip);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -270,6 +270,15 @@
|
||||
#define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 4x rate */
|
||||
#define PCI_AGP_SIZEOF 12
|
||||
|
||||
/* PCI-X registers */
|
||||
|
||||
#define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */
|
||||
#define PCI_X_CMD_ERO 0x0002 /* Enable Relaxed Ordering */
|
||||
#define PCI_X_CMD_MAX_READ 0x0000 /* Max Memory Read Byte Count */
|
||||
#define PCI_X_CMD_MAX_SPLIT 0x0030 /* Max Outstanding Split Transactions */
|
||||
#define PCI_X_CMD_VERSION(x) (((x) >> 12) & 3) /* Version */
|
||||
|
||||
|
||||
/* Slot Identification */
|
||||
|
||||
#define PCI_SID_ESR 2 /* Expansion Slot Register */
|
||||
@@ -492,4 +501,7 @@ extern int pci_hose_config_device(struct pci_controller *hose,
|
||||
extern void pci_mpc824x_init (struct pci_controller *hose);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MPC85xx
|
||||
extern void pci_mpc85xx_init (struct pci_controller *hose);
|
||||
#endif
|
||||
#endif /* _PCI_H */
|
||||
|
||||
@@ -1045,6 +1045,9 @@
|
||||
#define PCI_DEVICE_ID_REALTEK_8139 0x8139
|
||||
#define PCI_DEVICE_ID_REALTEK_8169 0x8169
|
||||
|
||||
#define PCI_VENDOR_ID_DLINK 0x1186
|
||||
#define PCI_DEVICE_ID_DLINK_8139 0x1300
|
||||
|
||||
#define PCI_VENDOR_ID_XILINX 0x10ee
|
||||
#define PCI_DEVICE_ID_TURBOPAM 0x4020
|
||||
|
||||
|
||||
@@ -1570,8 +1570,8 @@
|
||||
#define malrxctp0r (MAL_DCR_BASE+0x40) /* RX 0 Channel table pointer reg */
|
||||
#define malrxctp1r (MAL_DCR_BASE+0x41) /* RX 1 Channel table pointer reg */
|
||||
#if defined(CONFIG_440GX)
|
||||
#define malrxctp2r (MAL_DCR_BASE+0x42) /* RX 0 Channel table pointer reg */
|
||||
#define malrxctp3r (MAL_DCR_BASE+0x43) /* RX 1 Channel table pointer reg */
|
||||
#define malrxctp2r (MAL_DCR_BASE+0x42) /* RX 2 Channel table pointer reg */
|
||||
#define malrxctp3r (MAL_DCR_BASE+0x43) /* RX 3 Channel table pointer reg */
|
||||
#endif /* CONFIG_440GX */
|
||||
#define malrcbs0 (MAL_DCR_BASE+0x60) /* RX 0 Channel buffer size reg */
|
||||
#define malrcbs1 (MAL_DCR_BASE+0x61) /* RX 1 Channel buffer size reg */
|
||||
|
||||
@@ -346,6 +346,15 @@ void status_led_set (int led, int state);
|
||||
#elif defined(CONFIG_NIOS2)
|
||||
/* XXX empty just to avoid the error */
|
||||
/************************************************************************/
|
||||
#elif defined(CONFIG_V38B)
|
||||
|
||||
# define STATUS_LED_BIT 0x0010 /* Timer7 GPIO */
|
||||
# define STATUS_LED_PERIOD (CFG_HZ / 2)
|
||||
# define STATUS_LED_STATE STATUS_LED_BLINKING
|
||||
|
||||
# define STATUS_LED_ACTIVE 0 /* LED on for bit == 0 */
|
||||
# define STATUS_LED_BOOT 0 /* LED 0 used for boot status */
|
||||
|
||||
#else
|
||||
# error Status LED configuration missing
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user