📄 netvia.h
字号:
#elif CONFIG_8xx_GCLK_FREQ == 80000000#define CFG_PLPRCR ( ((8 - 1) << PLPRCR_MF_SHIFT) | PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST)#define CFG_SCCR (SCCR_TBS | \ SCCR_COM00 | SCCR_DFSYNC00 | SCCR_DFBRG00 | \ SCCR_DFNL000 | SCCR_DFNH000 | SCCR_DFLCD000 | \ SCCR_DFALCD00 | SCCR_EBDF01)#endif/*----------------------------------------------------------------------- * *----------------------------------------------------------------------- * *//*#define CFG_DER 0x2002000F*/#define CFG_DER 0/* * Init Memory Controller: * * BR0/1 and OR0/1 (FLASH) */#define FLASH_BASE0_PRELIM 0x40000000 /* FLASH bank #0 *//* used to re-map FLASH both when starting from SRAM or FLASH: * restrict access enough to keep SRAM working (if any) * but not too much to meddle with FLASH accesses */#define CFG_REMAP_OR_AM 0x80000000 /* OR addr mask */#define CFG_PRELIM_OR_AM 0xE0000000 /* OR addr mask *//* FLASH timing: ACS = 11, TRLX = 0, CSNT = 1, SCY = 5, EHTR = 1 */#define CFG_OR_TIMING_FLASH (OR_CSNT_SAM | OR_BI | OR_SCY_5_CLK | OR_TRLX)#define CFG_OR0_REMAP (CFG_REMAP_OR_AM | CFG_OR_TIMING_FLASH)#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_FLASH)#define CFG_BR0_PRELIM ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_PS_8 | BR_V )/* * BR3 and OR3 (SDRAM) * */#define SDRAM_BASE3_PRELIM 0x00000000 /* SDRAM bank #0 */#define SDRAM_MAX_SIZE 0x04000000 /* max 64 MB per bank *//* SDRAM timing: Multiplexed addresses, GPL5 output to GPL5_A (don't care) */#define CFG_OR_TIMING_SDRAM (OR_CSNT_SAM | OR_G5LS)#define CFG_OR3_PRELIM ((0xFFFFFFFFLU & ~(SDRAM_MAX_SIZE - 1)) | CFG_OR_TIMING_SDRAM)#define CFG_BR3_PRELIM ((SDRAM_BASE3_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_PS_32 | BR_V)/* * Memory Periodic Timer Prescaler *//* periodic timer for refresh */#define CFG_MAMR_PTA 208/* refresh rate 7.8 us (= 64 ms / 8K = 31.2 / quad bursts) for 256 MBit */#define CFG_MPTPR_1BK_8K MPTPR_PTP_DIV16 /* setting for 1 bank *//* * MAMR settings for SDRAM *//* 9 column SDRAM */#define CFG_MAMR_9COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \ MAMR_AMA_TYPE_1 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A10 | \ MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_4X)/* * Internal Definitions * * Boot Flags */#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */#define BOOTFLAG_WARM 0x02 /* Software reboot *//* Ethernet at SCC2 */#define CONFIG_SCC2_ENET#define CONFIG_ARTOS /* include ARTOS support *//****************************************************************/#define DSP_SIZE 0x00010000 /* 64K */#define FPGA_SIZE 0x00010000 /* 64K */#define DSP0_BASE 0xF1000000#define DSP1_BASE (DSP0_BASE + DSP_SIZE)#define FPGA_BASE (DSP1_BASE + DSP_SIZE)#if defined(CONFIG_NETVIA_VERSION) && CONFIG_NETVIA_VERSION >= 2#define ER_SIZE 0x00010000 /* 64K */#define ER_BASE (FPGA_BASE + FPGA_SIZE)#define NAND_SIZE 0x00010000 /* 64K */#define NAND_BASE (ER_BASE + ER_SIZE)#endif/****************************************************************/#if defined(CONFIG_NETVIA_VERSION) && CONFIG_NETVIA_VERSION >= 2#define STATUS_LED_BIT 0x00000001 /* bit 31 */#define STATUS_LED_PERIOD (CFG_HZ / 2)#define STATUS_LED_STATE STATUS_LED_BLINKING#define STATUS_LED_BIT1 0x00000002 /* bit 30 */#define STATUS_LED_PERIOD1 (CFG_HZ / 2)#define STATUS_LED_STATE1 STATUS_LED_OFF#define STATUS_LED_ACTIVE 0 /* LED on for bit == 0 */#define STATUS_LED_BOOT 0 /* LED 0 used for boot status */#endif/*****************************************************************************/#if defined(CONFIG_NETVIA_VERSION) && CONFIG_NETVIA_VERSION >= 2/* NAND */#define CFG_NAND_BASE NAND_BASE#define CONFIG_MTD_NAND_ECC_JFFS2#define CFG_MAX_NAND_DEVICE 1#define SECTORSIZE 512#define ADDR_COLUMN 1#define ADDR_PAGE 2#define ADDR_COLUMN_PAGE 3#define NAND_ChipID_UNKNOWN 0x00#define NAND_MAX_FLOORS 1#define NAND_MAX_CHIPS 1#define NAND_DISABLE_CE(nand) \ do { \ (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat) |= 0x0040; \ } while(0)#define NAND_ENABLE_CE(nand) \ do { \ (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat) &= ~0x0040; \ } while(0)#define NAND_CTL_CLRALE(nandptr) \ do { \ (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat) &= ~0x0100; \ } while(0)#define NAND_CTL_SETALE(nandptr) \ do { \ (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat) |= 0x0100; \ } while(0)#define NAND_CTL_CLRCLE(nandptr) \ do { \ (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat) &= ~0x0080; \ } while(0)#define NAND_CTL_SETCLE(nandptr) \ do { \ (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat) |= 0x0080; \ } while(0)#define NAND_WAIT_READY(nand) \ do { \ while ((((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pcdat & 0x100) == 0) \ ; \ } while (0)#define WRITE_NAND_COMMAND(d, adr) \ do { \ *(volatile unsigned char *)((unsigned long)(adr)) = (unsigned char)(d); \ } while(0)#define WRITE_NAND_ADDRESS(d, adr) \ do { \ *(volatile unsigned char *)((unsigned long)(adr)) = (unsigned char)(d); \ } while(0)#define WRITE_NAND(d, adr) \ do { \ *(volatile unsigned char *)((unsigned long)(adr)) = (unsigned char)(d); \ } while(0)#define READ_NAND(adr) \ ((unsigned char)(*(volatile unsigned char *)(unsigned long)(adr)))#endif/*****************************************************************************/#ifndef __ASSEMBLY__#if defined(CONFIG_NETVIA_VERSION) && CONFIG_NETVIA_VERSION >= 2/* LEDs *//* last value written to the external register; we cannot read back */extern unsigned int last_er_val;/* led_id_t is unsigned long mask */typedef unsigned int led_id_t;static inline void __led_init(led_id_t mask, int state){ unsigned int new_er_val; if (state) new_er_val = last_er_val & ~mask; else new_er_val = last_er_val | mask; *(volatile unsigned int *)ER_BASE = new_er_val; last_er_val = new_er_val;}static inline void __led_toggle(led_id_t mask){ unsigned int new_er_val; new_er_val = last_er_val ^ mask; *(volatile unsigned int *)ER_BASE = new_er_val; last_er_val = new_er_val;}static inline void __led_set(led_id_t mask, int state){ unsigned int new_er_val; if (state) new_er_val = last_er_val & ~mask; else new_er_val = last_er_val | mask; *(volatile unsigned int *)ER_BASE = new_er_val; last_er_val = new_er_val;}/* MAX3100 console */#define MAX3100_SPI_RXD_PORT (((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdat)#define MAX3100_SPI_RXD_BIT 0x00000008#define MAX3100_SPI_TXD_PORT (((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdat)#define MAX3100_SPI_TXD_BIT 0x00000004#define MAX3100_SPI_CLK_PORT (((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdat)#define MAX3100_SPI_CLK_BIT 0x00000002#define MAX3100_CS_PORT (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pddat)#define MAX3100_CS_BIT 0x0010#endif#endif/*************************************************************************************************/#endif /* __CONFIG_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -