|  | /* | 
|  | * ap1000.h: AP1000 (e.g. AP1070, AP1100) board specific definitions and functions that are needed globally | 
|  | * | 
|  | * Author : James MacAulay | 
|  | * | 
|  | * This software may be used and distributed according to the terms of | 
|  | * the GNU General Public License (GPL) version 2, incorporated herein by | 
|  | * reference. Drivers based on or derived from this code fall under the GPL | 
|  | * and must retain the authorship, copyright and this license notice. This | 
|  | * file is not a complete program and may only be used when the entire | 
|  | * program is licensed under the GPL. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef __AP1000_H | 
|  | #define __AP1000_H | 
|  |  | 
|  | /* | 
|  | *  Revision Register stuff | 
|  | */ | 
|  | #define AP1xx_FPGA_REV_ADDR 0x29000000 | 
|  |  | 
|  | #define AP1xx_PLATFORM_MASK	 0xFF000000 | 
|  | #define AP100_BASELINE_PLATFORM	 0x01000000 | 
|  | #define AP1xx_QUADGE_PLATFORM	 0x02000000 | 
|  | #define AP1xx_MGT_REF_PLATFORM	 0x03000000 | 
|  | #define AP1xx_STANDARD_PLATFORM	 0x04000000 | 
|  | #define AP1xx_DUAL_PLATFORM	 0x05000000 | 
|  | #define AP1xx_BASE_SRAM_PLATFORM 0x06000000 | 
|  |  | 
|  | #define AP1000_BASELINE_PLATFORM 0x21000000 | 
|  |  | 
|  | #define AP1xx_TESTPLATFORM_MASK		0xC0000000 | 
|  | #define AP1xx_PCI_PCB_TESTPLATFORM	0xC0000000 | 
|  | #define AP1xx_DUAL_GE_MEZZ_TESTPLATFORM 0xC1000000 | 
|  | #define AP1xx_SFP_MEZZ_TESTPLATFORM	0xC2000000 | 
|  |  | 
|  | #define AP1000_PCI_PCB_TESTPLATFORM	 0xC3000000 | 
|  |  | 
|  | #define AP1xx_TARGET_MASK  0x00FF0000 | 
|  | #define AP1xx_AP107_TARGET 0x00010000 | 
|  | #define AP1xx_AP120_TARGET 0x00020000 | 
|  | #define AP1xx_AP130_TARGET 0x00030000 | 
|  | #define AP1xx_AP1070_TARGET 0x00040000 | 
|  | #define AP1xx_AP1100_TARGET 0x00050000 | 
|  |  | 
|  | #define AP1xx_UNKNOWN_STR "Unknown" | 
|  |  | 
|  | #define AP1xx_PLATFORM_STR	     " Platform" | 
|  | #define AP1xx_BASELINE_PLATFORM_STR  "Baseline" | 
|  | #define AP1xx_QUADGE_PLATFORM_STR    "Quad GE" | 
|  | #define AP1xx_MGT_REF_PLATFORM_STR   "MGT Reference" | 
|  | #define AP1xx_STANDARD_PLATFORM_STR  "Standard" | 
|  | #define AP1xx_DUAL_PLATFORM_STR	     "Dual" | 
|  | #define AP1xx_BASE_SRAM_PLATFORM_STR "Baseline with SRAM" | 
|  |  | 
|  | #define AP1xx_TESTPLATFORM_STR		    " Test Platform" | 
|  | #define AP1xx_PCI_PCB_TESTPLATFORM_STR	    "Base" | 
|  | #define AP1xx_DUAL_GE_MEZZ_TESTPLATFORM_STR "Dual GE Mezzanine" | 
|  | #define AP1xx_SFP_MEZZ_TESTPLATFORM_STR	    "SFP Mezzanine" | 
|  |  | 
|  | #define AP1xx_TARGET_STR       " Board" | 
|  | #define AP1xx_AP107_TARGET_STR "AP107" | 
|  | #define AP1xx_AP120_TARGET_STR "AP120" | 
|  | #define AP1xx_AP130_TARGET_STR "AP130" | 
|  |  | 
|  | #define AP1xx_AP1070_TARGET_STR "AP1070" | 
|  | #define AP1xx_AP1100_TARGET_STR "AP1100" | 
|  |  | 
|  | /* | 
|  | *  Flash Stuff | 
|  | */ | 
|  | #define AP1xx_PROGRAM_FLASH_INDEX   0 | 
|  | #define AP1xx_CONFIG_FLASH_INDEX    1 | 
|  |  | 
|  | /* | 
|  | *  System Ace Stuff | 
|  | */ | 
|  | #define AP1000_SYSACE_REGBASE  0x28000000 | 
|  |  | 
|  | #define SYSACE_STATREG0 0x04 /* 7:0 */ | 
|  | #define SYSACE_STATREG1 0x05 /* 15:8 */ | 
|  | #define SYSACE_STATREG2 0x06 /* 23:16 */ | 
|  | #define SYSACE_STATREG3 0x07 /* 31:24 */ | 
|  |  | 
|  | #define SYSACE_ERRREG0 0x08 /* 7:0 */ | 
|  | #define SYSACE_ERRREG1 0x09 /* 15:8 */ | 
|  | #define SYSACE_ERRREG2 0x0a /* 23:16 */ | 
|  | #define SYSACE_ERRREG3 0x0b /* 31:24 */ | 
|  |  | 
|  | #define SYSACE_CTRLREG0 0x18 /* 7:0 */ | 
|  | #define SYSACE_CTRLREG1 0x19 /* 15:8 */ | 
|  | #define SYSACE_CTRLREG2 0x1A /* 23:16 */ | 
|  | #define SYSACE_CTRLREG3 0x1B /* 31:24 */ | 
|  |  | 
|  | /* | 
|  | *  Software reconfig thing | 
|  | */ | 
|  | #define SW_BYTE_SECTOR_ADDR	0x24FE0000 | 
|  | #define SW_BYTE_SECTOR_OFFSET	0x0001FFFF | 
|  | #define SW_BYTE_SECTOR_SIZE	0x00020000 | 
|  | #define SW_BYTE_MASK		0x00000003 | 
|  |  | 
|  | #define DEFAULT_TEMP_ADDR	0x00100000 | 
|  |  | 
|  | #define AP1000_CPLD_BASE	0x26000000 | 
|  |  | 
|  | /* PowerSpan II Stuff */ | 
|  | #define PSII_SYNC() asm("eieio") | 
|  | #define PSPAN_BASEADDR 0x30000000 | 
|  | #define EEPROM_DEFAULT { 0x01,	     /* Byte 0 - Long Load = 0x02, short = 01, use 0xff for try no load */  \ | 
|  | 0x0,0x0,0x0, /* Bytes 1 - 3 Power span reserved */ \ | 
|  | 0x0,	     /* Byte 4 - Powerspan reserved  - start of short load */ \ | 
|  | 0x0F,	     /* Byte 5 - Enable PCI 1 & 2 as Bus masters and Memory targets. */ \ | 
|  | 0x0E,	     /* Byte 6 - PCI 1 Target image prefetch - on for image 0,1,2, off for i20 & 3. */ \ | 
|  | 0x00, 0x00,  /* Byte 7,8 - PCI-1 Subsystem ID - */ \ | 
|  | 0x00, 0x00,  /* Byte 9,10 - PCI-1 Subsystem Vendor Id -	 */ \ | 
|  | 0x00,	     /* Byte 11 - No PCI interrupt generation on PCI-1 PCI-2 int A */ \ | 
|  | 0x1F,	     /* Byte 12 - PCI-1 enable bridge registers, all target images */ \ | 
|  | 0xBA,	     /* Byte 13 - Target 0 image 128 Meg(Ram), Target 1 image 64 Meg. (config Flash/CPLD )*/ \ | 
|  | 0xA0,	     /* Byte 14 - Target 2 image 64 Meg(program Flash), target 3 64k. */ \ | 
|  | 0x00,	     /* Byte 15 - Vital Product Data Disabled. */ \ | 
|  | 0x88,	     /* Byte 16 - PCI arbiter config complete, all requests routed through PCI-1, Unlock PCI-1	*/ \ | 
|  | 0x40,	     /* Byte 17 - Interrupt direction control - PCI-1 Int A out, everything else in. */ \ | 
|  | 0x00,	     /* Byte 18 - I2O disabled */ \ | 
|  | 0x00,	     /* Byte 19 - PCI-2 Target image prefetch - off for all images. */ \ | 
|  | 0x00,0x00,   /* Bytes 20,21 - PCI 2 Subsystem Id */ \ | 
|  | 0x00,0x00,   /* Bytes 22,23 - PCI 2 Subsystem Vendor id */ \ | 
|  | 0x0C,	     /* Byte 24 - PCI-2 BAR enables, target image 0, & 1 */ \ | 
|  | 0xBB,	     /* Byte 25 - PCI-2 target 0 - 128 Meg(Ram), target 1  - 128 Meg (program/config flash) */ \ | 
|  | 0x00,	     /* Byte 26 - PCI-2 target 2 & 3 unused. */ \ | 
|  | 0x00,0x00,0x00,0x00,0x00, /* Bytes 27,28,29,30, 31 - Reserved */ \ | 
|  | /* Long Load Information */ \ | 
|  | 0x82,0x60,   /* Bytes 32,33 - PCI-1 Device ID - Powerspan II */ \ | 
|  | 0x10,0xE3,   /* Bytes 24,35 - PCI-1 Vendor ID - Tundra */ \ | 
|  | 0x06,	     /* Byte 36 - PCI-1 Class Base - Bridge device. */ \ | 
|  | 0x80,	     /* Byte 37 - PCI-1 Class sub class - Other bridge. */ \ | 
|  | 0x00,	     /* Byte 38 - PCI-1 Class programing interface - Other bridge */ \ | 
|  | 0x01,	     /* Byte 39 - Power span revision 1. */ \ | 
|  | 0x6E,	     /* Byte 40 - PB SI0 enabled, translation enabled, decode enabled, 64 Meg */ \ | 
|  | 0x40,	     /* Byte 41 - PB SI0 memory command mode, PCI-1 dest */ \ | 
|  | 0x22,	     /* Byte 42 - Prefetch discard after read, PCI-little endian conversion, 32 byte prefetch */ \ | 
|  | 0x00,0x00,   /* Bytes 43, 44 - Translation address for SI0, set to zero for now. */ \ | 
|  | 0x0E,	     /* Byte 45 - Translation address (0) and PB bus master enables - all. */ \ | 
|  | 0x2c,00,00,  /* Bytes 46,47,48 - PB SI0 processor base address - 0x2C000000 */ \ | 
|  | 0x30,00,00,  /* Bytes 49,50,51 - PB Address for Powerspan registers - 0x30000000, big Endian */ \ | 
|  | 0x82,0x60,   /* Bytes 52, 53 - PCI-2 Device ID - Powerspan II */ \ | 
|  | 0x10,0xE3,   /* Bytes 54,55 - PCI 2 Vendor Id - Tundra */ \ | 
|  | 0x06,	     /* Byte 56 - PCI-2 Class Base - Bridge device */ \ | 
|  | 0x80,	     /* Byte 57 - PCI-2 Class sub class - Other Bridge. */ \ | 
|  | 0x00,	     /* Byte 58 - PCI-2 class programming interface - Other bridge */ \ | 
|  | 0x01,	     /* Byte 59 - PCI-2 class revision	1 */ \ | 
|  | 0x00,0x00,0x00,0x00 }; /* Bytes 60,61, 62, 63 - Powerspan reserved */ | 
|  |  | 
|  |  | 
|  | #define EEPROM_LENGTH	64  /* Long Load */ | 
|  |  | 
|  | #define I2C_SENSOR_DEV	    0x9 | 
|  | #define I2C_SENSOR_CHIP_SEL 0x4 | 
|  |  | 
|  | /* | 
|  | *  Board Functions | 
|  | */ | 
|  | void set_eat_machine_checks(int a_flag); | 
|  | int get_eat_machine_checks(void); | 
|  | unsigned int get_platform(void); | 
|  | unsigned int get_device(void); | 
|  | void* memcpyb(void * dest,const void *src,size_t count); | 
|  | int process_bootflag(ulong bootflag); | 
|  | void user_led_on(void); | 
|  | void user_led_off(void); | 
|  |  | 
|  | #endif	/* __COMMON_H_ */ |