diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mvme3100')
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/Makefile.am | 30 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/configure.ac | 3 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/i2c/mpc8540_i2c_busdrv.h | 72 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h | 343 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/include/tm27.h | 1 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/irq/irq.h | 137 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h | 475 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/preinstall.am | 136 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/startup/bsp_specs (renamed from c/src/lib/libbsp/powerpc/mvme3100/bsp_specs) | 0 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme3100/vme/VMEConfig.h | 132 |
10 files changed, 6 insertions, 1323 deletions
diff --git a/c/src/lib/libbsp/powerpc/mvme3100/Makefile.am b/c/src/lib/libbsp/powerpc/mvme3100/Makefile.am index 83b63c2374..a9c1cea0f1 100644 --- a/c/src/lib/libbsp/powerpc/mvme3100/Makefile.am +++ b/c/src/lib/libbsp/powerpc/mvme3100/Makefile.am @@ -4,15 +4,8 @@ EXTRA_DIST = include $(top_srcdir)/../../../../automake/compile.am include $(top_srcdir)/../../bsp.am -include_bspdir = $(includedir)/bsp +dist_project_lib_DATA = startup/bsp_specs -dist_project_lib_DATA = bsp_specs - -include_HEADERS = include/bsp.h -include_HEADERS += include/tm27.h - -nodist_include_HEADERS = include/bspopts.h -nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h DISTCLEANFILES = include/bspopts.h noinst_PROGRAMS = @@ -43,8 +36,8 @@ rtems_crti.$(OBJEXT): ../../powerpc/shared/start/rtems_crti.S $(CPPASCOMPILE) -o $@ -c $< project_lib_DATA += rtems_crti.$(OBJEXT) +project_lib_DATA += linkcmds dist_project_lib_DATA += ../shared/startup/linkcmds.share -dist_project_lib_DATA += startup/linkcmds noinst_LIBRARIES = libbsp.a libbsp_a_SOURCES = @@ -64,39 +57,27 @@ libbsp_a_SOURCES += ../../shared/tod.c tod/todcfg.c # pclock libbsp_a_SOURCES += ../../powerpc/shared/clock/p_clock.c -include_bsp_HEADERS = ../../powerpc/shared/console/uart.h # console libbsp_a_SOURCES += ../../powerpc/shared/console/uart.c \ ../../powerpc/shared/console/console.c \ ../../powerpc/shared/console/consoleIo.h \ ../../powerpc/shared/console/uart.h -include_bsp_HEADERS += irq/irq.h # irq libbsp_a_SOURCES += irq/irq_init.c \ ../../powerpc/shared/irq/openpic_i8259_irq.c -include_bsp_HEADERS += ../../powerpc/shared/openpic/openpic.h # openpic libbsp_a_SOURCES += ../../powerpc/shared/openpic/openpic.h \ ../../powerpc/shared/openpic/openpic.c \ ../../powerpc/shared/openpic/openpic.h -include_bsp_HEADERS += ../../powerpc/shared/pci/pci.h # pci libbsp_a_SOURCES += ../../powerpc/shared/pci/pci.c \ pci/detect_host_bridge.c \ ../../powerpc/shared/pci/generic_clear_hberrs.c \ ../../powerpc/shared/pci/pcifinddevice.c ../../powerpc/shared/pci/pci.h -include_bsp_HEADERS += vme/VMEConfig.h \ - ../../shared/vmeUniverse/vmeTsi148.h \ - ../../shared/vmeUniverse/vme_am_defs.h \ - ../../shared/vmeUniverse/VME.h \ - ../../shared/vmeUniverse/vmeTsi148DMA.h\ - ../../shared/vmeUniverse/bspVmeDmaList.h\ - ../../shared/vmeUniverse/VMEDMA.h - # vme libbsp_a_SOURCES += ../../shared/vmeUniverse/vmeTsi148.c \ ../../shared/vmeUniverse/bspVmeDmaList.c \ @@ -106,23 +87,18 @@ libbsp_a_SOURCES += ../../shared/vmeUniverse/vmeTsi148.c \ ../../powerpc/shared/vme/vmeconfig.c \ ../../powerpc/shared/vme/vme_universe.c -include_bsp_HEADERS += ../shared/flash/flashPgm.h \ - ../shared/flash/flashPgmPvt.h # flash libbsp_a_SOURCES += ../shared/flash/flash.c \ ../shared/flash/spansionFlash.c \ flash/flashcfg.c -include_bsp_HEADERS += i2c/mpc8540_i2c_busdrv.h # i2c libbsp_a_SOURCES += i2c/mpc8540_i2c.c i2c/i2c_init.c -include_bsp_HEADERS += ../shared/motorola/vpd.h # vpd libbsp_a_SOURCES += ../shared/motorola/vpd.c if HAS_NETWORKING -include_bsp_HEADERS += network/if_tsec_pub.h noinst_PROGRAMS += network.rel network_rel_SOURCES = network/tsec.c network_rel_CPPFLAGS = $(AM_CPPFLAGS) @@ -145,5 +121,5 @@ endif EXTRA_DIST += LICENSE README KNOWN_PROBLEMS -include $(srcdir)/preinstall.am include $(top_srcdir)/../../../../automake/local.am +include $(srcdir)/../../../../../../bsps/powerpc/mvme3100/headers.am diff --git a/c/src/lib/libbsp/powerpc/mvme3100/configure.ac b/c/src/lib/libbsp/powerpc/mvme3100/configure.ac index f19e6c6164..ec58a87c88 100644 --- a/c/src/lib/libbsp/powerpc/mvme3100/configure.ac +++ b/c/src/lib/libbsp/powerpc/mvme3100/configure.ac @@ -4,6 +4,9 @@ AC_PREREQ([2.69]) AC_INIT([rtems-c-src-lib-libbsp-powerpc-mvme3100],[_RTEMS_VERSION],[https://devel.rtems.org/newticket]) AC_CONFIG_SRCDIR([make/custom/mvme3100.cfg]) RTEMS_TOP(../../../../../..) +RTEMS_SOURCE_TOP +RTEMS_BUILD_TOP +RTEMS_BSP_LINKCMDS RTEMS_CANONICAL_TARGET_CPU AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2]) diff --git a/c/src/lib/libbsp/powerpc/mvme3100/i2c/mpc8540_i2c_busdrv.h b/c/src/lib/libbsp/powerpc/mvme3100/i2c/mpc8540_i2c_busdrv.h deleted file mode 100644 index 181b45f468..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/i2c/mpc8540_i2c_busdrv.h +++ /dev/null @@ -1,72 +0,0 @@ -/** - * @file - * - * @ingroup powerpc_mpc8540i2cbusdrv - * - * @brief I2C bus driver for mpc8540-based boards - */ - -#ifndef MPC8540_I2C_BUS_DRIVER_H -#define MPC8540_I2C_BUS_DRIVER_H - -/* - * Authorship - * ---------- - * This software ('mvme3100' RTEMS BSP) was created by - * - * Till Straumann <strauman@slac.stanford.edu>, 2005-2007, - * Stanford Linear Accelerator Center, Stanford University. - * - * Acknowledgement of sponsorship - * ------------------------------ - * The 'mvme3100' BSP was produced by - * the Stanford Linear Accelerator Center, Stanford University, - * under Contract DE-AC03-76SFO0515 with the Department of Energy. - * - * Government disclaimer of liability - * ---------------------------------- - * Neither the United States nor the United States Department of Energy, - * nor any of their employees, makes any warranty, express or implied, or - * assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness of any data, apparatus, product, or process - * disclosed, or represents that its use would not infringe privately owned - * rights. - * - * Stanford disclaimer of liability - * -------------------------------- - * Stanford University makes no representations or warranties, express or - * implied, nor assumes any liability for the use of this software. - * - * Stanford disclaimer of copyright - * -------------------------------- - * Stanford University, owner of the copyright, hereby disclaims its - * copyright and all other rights in this software. Hence, anyone may - * freely use it for any purpose without restriction. - * - * Maintenance of notices - * ---------------------- - * In the interest of clarity regarding the origin and status of this - * SLAC software, this and all the preceding Stanford University notices - * are to remain affixed to any copy or derivative of this software made - * or distributed by the recipient and are to be affixed to any copy of - * software made or distributed by the recipient that contains a copy or - * derivative of this software. - * - * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03 - */ - -#ifdef __cplusplus - extern "C" { -#endif - -#include <rtems.h> -#include <rtems/libi2c.h> - -/* for registration with libi2c */ -extern rtems_libi2c_bus_t *mpc8540_i2c_bus_descriptor; - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h b/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h deleted file mode 100644 index 3fbfcb3120..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/include/bsp.h +++ /dev/null @@ -1,343 +0,0 @@ -/** - * @file - * - * @ingroup mvme3100_bsp - * - * @brief This file contains BSP API definition. - */ - -/* - * Copyright (C) 1999 Eric Valette. valette@crf.canon.fr - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - * - * Adapted for the mvme3100 BSP by T. Straumann, 2007. - */ -#ifndef LIBBSP_POWERPC_MVME3100_BSP_H -#define LIBBSP_POWERPC_MVME3100_BSP_H - -#ifndef ASM - -#include <bspopts.h> -#include <bsp/default-initial-extension.h> - -#include <rtems.h> -#include <libcpu/io.h> -#include <bsp/vectors.h> - -/** - * @defgroup mvme3100_bsp confdefs.h overrides - * - * @ingroup powerpc_mvme3100 - * - * @brief confdefs.h overrides for this BSP: - */ - -#define BSP_INTERRUPT_STACK_SIZE (16 * 1024) - -/* - * diagram illustrating the role of the configuration - * constants - * PCI_MEM_WIN0: CPU starting addr where PCI memory space is visible - * PCI_MEM_BASE: CPU address of PCI mem addr. zero. (regardless of this - * address being 'visible' or not!). - * _VME_A32_WIN0_ON_PCI: PCI starting addr of the 1st window to VME - * _VME_A32_WIN0_ON_VME: VME address of that same window - * - * AFAIK, only PreP boards have a non-zero PCI_MEM_BASE (i.e., an offset between - * CPU and PCI addresses). The mvme2300 'ppcbug' firmware configures the PCI - * bus using PCI base addresses! I.e., drivers need to add PCI_MEM_BASE to - * the base address read from PCI config.space in order to translate that - * into a CPU address. - * - * NOTE: VME addresses should NEVER be translated using these constants! - * they are strictly for BSP internal use. Drivers etc. should use - * the translation routines int VME.h (BSP_vme2local_adrs/BSP_local2vme_adrs). - * - * CPU ADDR PCI_ADDR VME ADDR - * - * 00000000 XXXXXXXX XXXXXXXX - * ^ ^ ........ - * | | - * | | e.g., RAM XXXXXXXX - * | | 00000000 - * | | ......... ^ - * | | (possible offset | - * | | between pci and XXXXXXXX | ...... - * | | cpu addresses) | - * | v | - * | PCI_MEM_BASE -------------> 00000000 --------------- | - * | ........ ........ ^ | - * | invisible | | - * | ........ from CPU | | - * v | | - * PCI_MEM_WIN0 ============= first visible PCI addr | | - * | | - * pci devices pci window | | - * visible here v v - * mapped by ========== _VME_A32_WIN0_ON_PCI ======= _VME_A32_WIN0_ON_VME - * vme window - * VME devices hostbridge mapped by - * visible here universe - * ===================================================== - * - */ - -/* fundamental addresses for BSP (CHRPxxx and PREPxxx are from libcpu/io.h) */ -#define _IO_BASE 0xe0000000 /* Motload's PCI IO base */ -#define _ISA_MEM_BASE CHRP_ISA_MEM_BASE -/* address of our ram on the PCI bus */ -#define PCI_DRAM_OFFSET CHRP_PCI_DRAM_OFFSET -/* offset of pci memory as seen from the CPU */ -#define PCI_MEM_BASE 0 -/* where (in CPU addr. space) does the PCI window start */ -#define PCI_MEM_WIN0 0x80000000 - -/* - * Base address definitions for several devices - */ - -#define BSP_OPEN_PIC_BASE_OFFSET 0x40000 -#define BSP_OPEN_PIC_BIG_ENDIAN - -#define BSP_8540_CCSR_BASE (0xe1000000) - -#define BSP_UART_IOBASE_COM1 (BSP_8540_CCSR_BASE+0x4500) -#define BSP_UART_IOBASE_COM2 (BSP_8540_CCSR_BASE+0x4600) -#define PCI_CONFIG_ADDR (BSP_8540_CCSR_BASE+0x8000) -#define PCI_CONFIG_DATA (BSP_8540_CCSR_BASE+0x8004) -#define PCI_CONFIG_WR_ADDR( addr, val ) out_be32((uint32_t*)(addr), (val)) - -#define BSP_CONSOLE_PORT BSP_UART_COM1 -#define BSP_UART_BAUD_BASE (-9600) /* use existing divisor to determine clock rate */ -#define BSP_UART_USE_SHARED_IRQS - -#define BSP_MVME3100_IRQ_DETECT_REG ((volatile uint8_t *)0xe2000007) - -/* I2C Devices */ -/* Note that the i2c addresses stated in the manual are - * left-shifted by one bit. - */ -#define BSP_VPD_I2C_ADDR (0xA8>>1) /* the VPD EEPROM */ -#define BSP_USR0_I2C_ADDR (0xA4>>1) /* the 1st user EEPROM */ -#define BSP_USR1_I2C_ADDR (0xA6>>1) /* the 2nd user EEPROM */ -#define BSP_THM_I2C_ADDR (0x90>>1) /* the DS1621 temperature sensor & thermostat */ -#define BSP_RTC_I2C_ADDR (0xD0>>1) /* the DS1375 wall-clock */ - -#define BSP_I2C_BUS_DESCRIPTOR mpc8540_i2c_bus_descriptor - -#define BSP_I2C_BUS0_NAME "/dev/i2c0" - -#define BSP_I2C_VPD_EEPROM_NAME "vpd-eeprom" -#define BSP_I2C_USR_EEPROM_NAME "usr-eeprom" -#define BSP_I2C_USR1_EEPROM_NAME "usr1-eeprom" -#define BSP_I2C_DS1621_NAME "ds1621" -#define BSP_I2C_THM_NAME BSP_I2C_DS1621_NAME -#define BSP_I2C_DS1621_RAW_NAME "ds1621-raw" -#define BSP_I2C_DS1375_RAW_NAME "ds1375-raw" -#define BSP_I2C_RTC_RAW_NAME BSP_I2C_DS1375_RAW_NAME - -#define BSP_I2C_VPD_EEPROM_DEV_NAME (BSP_I2C_BUS0_NAME"."BSP_I2C_VPD_EEPROM_NAME) -#define BSP_I2C_USR_EEPROM_DEV_NAME (BSP_I2C_BUS0_NAME"."BSP_I2C_USR_EEPROM_NAME) -#define BSP_I2C_USR1_EEPROM_DEV_NAME (BSP_I2C_BUS0_NAME"."BSP_I2C_USR1_EEPROM_NAME) -#define BSP_I2C_DS1621_DEV_NAME (BSP_I2C_BUS0_NAME"."BSP_I2C_DS1621_NAME) -#define BSP_I2C_THM_DEV_NAME BSP_I2C_DS1621_DEV_NAME -#define BSP_I2C_DS1621_RAW_DEV_NAME (BSP_I2C_BUS0_NAME"."BSP_I2C_DS1621_RAW_NAME) -#define BSP_I2C_DS1375_RAW_DEV_NAME (BSP_I2C_BUS0_NAME"."BSP_I2C_DS1375_RAW_NAME) - -/* Definitions useful for bootloader (netboot); where to find - * boot/'environment' parameters. - */ -#define BSP_EEPROM_BOOTPARMS_NAME BSP_I2C_USR1_EEPROM_DEV_NAME -#define BSP_EEPROM_BOOTPARMS_SIZE 1024 -#define BSP_EEPROM_BOOTPARMS_OFFSET 0 -#define BSP_BOOTPARMS_WRITE_ENABLE() do { BSP_eeprom_write_enable(); } while (0) -#define BSP_BOOTPARMS_WRITE_DISABLE() do { BSP_eeprom_write_protect();} while (0) - - -#ifdef __cplusplus -extern "C" { -#endif -/* Initialize the I2C driver and register all devices - * RETURNS 0 on success, -1 on error. - * - * Access to the VPD and user EEPROMS as well - * as the ds1621 temperature sensor is possible - * by means of file nodes - * - * /dev/i2c0.vpd-eeprom (read-only) - * /dev/i2c0.usr-eeprom (read-write) - * /dev/i2c0.usr1-eeprom (read-write) - * /dev/i2c0.ds1621 (read-only; one byte: board-temp in degC) - * /dev/i2c0.ds1621-raw (read-write; transfer bytes to/from the ds1621) - * /dev/i2c0.ds1375-raw (read-write; transfer bytes to/from the ds1375) - * - */ -int BSP_i2c_initialize(void); -#define BSP_PREDRIVER_I2C_INIT - -/* System Control Register */ -#define BSP_MVME3100_SYS_CR ((volatile uint8_t *)0xe2000001) -#define BSP_MVME3100_SYS_CR_RESET_MSK (7<<5) -#define BSP_MVME3100_SYS_CR_RESET (5<<5) -#define BSP_MVME3100_SYS_CR_EEPROM_WP (1<<1) -#define BSP_MVME3100_SYS_CR_TSTAT_MSK (1<<0) - -/* LED support */ -#define BSP_MVME3100_SYS_IND_REG ((volatile uint8_t *)0xe2000002) -#define BSP_LED_BRD_FAIL (1<<0) -#define BSP_LED_USR1 (1<<1) -#define BSP_LED_USR2 (1<<2) -#define BSP_LED_USR3 (1<<3) - -/* Flash CSR */ -#define BSP_MVME3100_FLASH_CSR ((volatile uint8_t *)0xe2000003) -#define BSP_MVME3100_FLASH_CSR_FLASH_RDY (1<<0) -#define BSP_MVME3100_FLASH_CSR_FBT_BLK_SEL (1<<1) -#define BSP_MVME3100_FLASH_CSR_F_WP_HW (1<<2) -#define BSP_MVME3100_FLASH_CSR_F_WP_SW (1<<3) -#define BSP_MVME3100_FLASH_CSR_MAP_SEL (1<<4) - -/* Phy interrupt detect */ -#define BSP_MVME3100_IRQ_DETECT_REG ((volatile uint8_t *)0xe2000007) - -/* Atomically set bits in a sys-register; The bits set in 'mask' - * are set in the register others; are left unmodified. - * - * RETURNS: old state. - * - * NOTE : since BSP_setSysReg( reg, 0 ) does not make - * any changes this call may be used - * to read the current status w/o modifying it. - */ -uint8_t BSP_setSysReg(volatile uint8_t *r, uint8_t mask); - -/* Atomically clear bits in a sys-register; The bits set in 'mask' - * are cleared in the register; others are left unmodified. - * - * RETURNS: old state. - * - * NOTE : since BSP_clrSysReg( reg, 0 ) does not make - * any changes this call may be used - * to read the current status w/o modifying it. - */ - -uint8_t BSP_clrSysReg(volatile uint8_t *r, uint8_t mask); - -/* Convenience wrappers around BSP_setSysReg()/BSP_clrSysReg() */ - -/* Set write-protection for all EEPROM devices - * RETURNS: old status - */ -uint8_t BSP_eeprom_write_protect(void); - -/* Disengage write-protection for all EEPROM devices - * RETURNS: old status - */ -uint8_t BSP_eeprom_write_enable(void); - -/* Set LEDs that have their bit set in the mask - * - * RETURNS: old status. - * - * NOTE : since BSP_setLEDs( 0 ) does not make - * any changes this call may be used - * to read the current status w/o modifying it. - */ -uint8_t BSP_setLEDs(uint8_t mask); - -/* Clear LEDs that have their bit set in the mask - * - * RETURNS: old status - * - * NOTE: : see above (BSP_setLEDs) - */ -uint8_t BSP_clrLEDs(uint8_t mask); - -#if 0 -#define outport_byte(port,value) outb(value,port) -#define outport_word(port,value) outw(value,port) -#define outport_long(port,value) outl(value,port) - -#define inport_byte(port,value) (value = inb(port)) -#define inport_word(port,value) (value = inw(port)) -#define inport_long(port,value) (value = inl(port)) -#endif - -/* - * Total memory using RESIDUAL DATA - */ -extern unsigned int BSP_mem_size; -/* - * PCI Bus Frequency - */ -extern unsigned int BSP_bus_frequency; -/* - * processor clock frequency - */ -extern unsigned int BSP_processor_frequency; -/* - * Time base divisior (how many tick for 1 second). - */ -extern unsigned int BSP_time_base_divisor; -/* - * The commandline as passed from the bootloader. - */ -extern char *BSP_commandline_string; - -#define BSP_Convert_decrementer( _value ) \ - ((unsigned long long) ((((unsigned long long)BSP_time_base_divisor) * 1000000ULL) /((unsigned long long) BSP_bus_frequency)) * ((unsigned long long) (_value))) - -extern rtems_configuration_table BSP_Configuration; -/* extern int printk(const char *, ...) __attribute__((format(printf, 1, 2))); */ -extern int BSP_disconnect_clock_handler (void); -extern int BSP_connect_clock_handler (void); - -/* clear hostbridge errors - * - * NOTE: The routine returns always (-1) if 'enableMCP==1' - * [semantics needed by libbspExt] if the MCP input is not wired. - * It returns and clears the error bits of the PCI status register. - * MCP support is disabled because: - * a) the 2100 has no raven chip - * b) the raven (2300) would raise machine check interrupts - * on PCI config space access to empty slots. - */ -extern unsigned long _BSP_clear_hostbridge_errors(int enableMCP, int quiet); -extern void BSP_motload_pci_fixup(void); - -struct rtems_bsdnet_ifconfig; - -int -rtems_tsec_attach(struct rtems_bsdnet_ifconfig *ifcfg, int attaching); - -#define RTEMS_BSP_NETWORK_DRIVER_NAME "tse1" -#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_tsec_attach - -/* - * Prototypes for methods called only from .S for dependency tracking - */ -char *save_boot_params( - void *r3, - void *r4, - void *r5, - char *cmdline_start, - char *cmdline_end -); -void zero_bss(void); - -/* - * Prototypes for methods in the BSP that cross file boundaries - */ -extern void BSP_vme_config(void); -extern void BSP_pciConfigDump_early( void ); - -#ifdef __cplusplus -} -#endif - -#endif /* !ASM */ - -#endif diff --git a/c/src/lib/libbsp/powerpc/mvme3100/include/tm27.h b/c/src/lib/libbsp/powerpc/mvme3100/include/tm27.h deleted file mode 100644 index 0dfa7bf628..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/include/tm27.h +++ /dev/null @@ -1 +0,0 @@ -#include <rtems/tm27-default.h> diff --git a/c/src/lib/libbsp/powerpc/mvme3100/irq/irq.h b/c/src/lib/libbsp/powerpc/mvme3100/irq/irq.h deleted file mode 100644 index 0158e05149..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/irq/irq.h +++ /dev/null @@ -1,137 +0,0 @@ -/** - * @file - * - * @ingroup powerpc_irq - * - * @brief This include file describe the data structure and the functions - * implemented by RTEMS to write interrupt handlers. - */ - -/* irq.h - * - * This include file describe the data structure and the functions implemented - * by RTEMS to write interrupt handlers. - * - * Copyright (C) 1999 valette@crf.canon.fr - * - * This code is heavilly inspired by the public specification of STREAM V2 - * that can be found at : - * - * <http://www.chorus.com/Documentation/index.html> by following - * the STREAM API Specification Document link. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - * - * Adapted for the mvme3100 BSP by T. Straumann, 2007. - */ - -#ifndef BSP_POWERPC_IRQ_H -#define BSP_POWERPC_IRQ_H - -#define BSP_SHARED_HANDLER_SUPPORT 1 -#include <rtems/irq.h> - -#ifndef ASM - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup powerpc_irq Definitions - * - * @ingroup powerpc_mvme3100 - * - * @brief rtems_irq_number Definitions - */ - -/* Must pad number of external sources to 16 because - * of the layout of vector/priority registers in the - * 8540's openpic where there is a gap between - * registers corresponding to external and core sources. - */ -#define BSP_EXT_IRQ_NUMBER (16) -#define BSP_CORE_IRQ_NUMBER (32) - -/* openpic glue code from shared/irq assigns priorities and configures - * initial ISRs for BSP_PCI_IRQ_NUMBER entries (plus ISA stuff on legacy - * boards). Hence PCI_IRQ_NUMBER must also cover the internal sources - * even though they have nothing to do with PCI. - */ -#define BSP_PCI_IRQ_NUMBER (BSP_EXT_IRQ_NUMBER + BSP_CORE_IRQ_NUMBER) -#define BSP_PCI_IRQ_LOWEST_OFFSET (0) -#define BSP_PCI_IRQ_MAX_OFFSET (BSP_PCI_IRQ_LOWEST_OFFSET + BSP_PCI_IRQ_NUMBER - 1) - -#define BSP_CORE_IRQ_LOWEST_OFFSET (BSP_PCI_IRQ_LOWEST_OFFSET + BSP_EXT_IRQ_NUMBER) -#define BSP_CORE_IRQ_MAX_OFFSET (BSP_CORE_IRQ_LOWEST_OFFSET + BSP_CORE_IRQ_NUMBER - 1) - -/* - * PowerPC exceptions handled as interrupt where an RTEMS managed interrupt - * handler might be connected - */ -#define BSP_PROCESSOR_IRQ_NUMBER (1) -#define BSP_PROCESSOR_IRQ_LOWEST_OFFSET (BSP_CORE_IRQ_MAX_OFFSET + 1) -#define BSP_PROCESSOR_IRQ_MAX_OFFSET (BSP_PROCESSOR_IRQ_LOWEST_OFFSET + BSP_PROCESSOR_IRQ_NUMBER - 1) -/* Misc vectors for OPENPIC irqs (IPI, timers) - */ -#define BSP_MISC_IRQ_NUMBER (8) -#define BSP_MISC_IRQ_LOWEST_OFFSET (BSP_PROCESSOR_IRQ_MAX_OFFSET + 1) -#define BSP_MISC_IRQ_MAX_OFFSET (BSP_MISC_IRQ_LOWEST_OFFSET + BSP_MISC_IRQ_NUMBER - 1) -/* - * Summary - */ -#define BSP_IRQ_NUMBER (BSP_MISC_IRQ_MAX_OFFSET + 1) -#define BSP_LOWEST_OFFSET (BSP_PCI_IRQ_LOWEST_OFFSET) -#define BSP_MAX_OFFSET (BSP_MISC_IRQ_MAX_OFFSET) - -/* - * Some PCI IRQ symbolic name definition - */ -#define BSP_PCI_IRQ0 (BSP_PCI_IRQ_LOWEST_OFFSET) - -#define BSP_VME0_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 0) -#define BSP_VME1_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 1) -#define BSP_VME2_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 2) -#define BSP_VME3_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 3) - -#define BSP_ABORT_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 8) -#define BSP_TEMP_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 9) -#define BSP_PHY_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 10) -#define BSP_RTC_IRQ (BSP_PCI_IRQ_LOWEST_OFFSET + 11) - -/* Weird - they provide 3 different IRQ lines per ethernet controller - * but only one shared line for 2 UARTs ??? - */ -#define BSP_UART_COM1_IRQ (BSP_CORE_IRQ_LOWEST_OFFSET + 26) -#define BSP_UART_COM2_IRQ (BSP_CORE_IRQ_LOWEST_OFFSET + 26) -#define BSP_I2C_IRQ (BSP_CORE_IRQ_LOWEST_OFFSET + 27) - -/* - * Some internal (CORE) name definitions - */ -/* Ethernet (FEC) */ -#define BSP_CORE_IRQ_FEC (BSP_CORE_IRQ_LOWEST_OFFSET + 25) -/* i2c controller */ -#define BSP_CORE_IRQ_I2C (BSP_CORE_IRQ_LOWEST_OFFSET + 27) - -/* - * Some Processor execption handled as RTEMS IRQ symbolic name definition - */ -#define BSP_DECREMENTER (BSP_PROCESSOR_IRQ_LOWEST_OFFSET) - -/*-------------------------------------------------------------------------+ -| Function Prototypes. -+--------------------------------------------------------------------------*/ - -extern void BSP_rtems_irq_mng_init(unsigned cpuId); - -#include <bsp/irq_supp.h> - -#ifdef __cplusplus -}; -#endif - -#endif -#endif diff --git a/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h b/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h deleted file mode 100644 index 7eb0358eae..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/network/if_tsec_pub.h +++ /dev/null @@ -1,475 +0,0 @@ -/** - * @file - * - * @ingroup powerpc_iftsecpub - * - * @brief IF_TSEC_PUB Support - */ - -#ifndef IF_TSEC_PUBLIC_INTERFACE_H -#define IF_TSEC_PUBLIC_INTERFACE_H - -/* - * Authorship - * ---------- - * This software ('mvme3100' RTEMS BSP) was created by - * - * Till Straumann <strauman@slac.stanford.edu>, 2005-2007, - * Stanford Linear Accelerator Center, Stanford University. - * - * Acknowledgement of sponsorship - * ------------------------------ - * The 'mvme3100' BSP was produced by - * the Stanford Linear Accelerator Center, Stanford University, - * under Contract DE-AC03-76SFO0515 with the Department of Energy. - * - * Government disclaimer of liability - * ---------------------------------- - * Neither the United States nor the United States Department of Energy, - * nor any of their employees, makes any warranty, express or implied, or - * assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness of any data, apparatus, product, or process - * disclosed, or represents that its use would not infringe privately owned - * rights. - * - * Stanford disclaimer of liability - * -------------------------------- - * Stanford University makes no representations or warranties, express or - * implied, nor assumes any liability for the use of this software. - * - * Stanford disclaimer of copyright - * -------------------------------- - * Stanford University, owner of the copyright, hereby disclaims its - * copyright and all other rights in this software. Hence, anyone may - * freely use it for any purpose without restriction. - * - * Maintenance of notices - * ---------------------- - * In the interest of clarity regarding the origin and status of this - * SLAC software, this and all the preceding Stanford University notices - * are to remain affixed to any copy or derivative of this software made - * or distributed by the recipient and are to be affixed to any copy of - * software made or distributed by the recipient that contains a copy or - * derivative of this software. - * - * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03 - */ - -#include <rtems.h> -#include <stdio.h> -#include <stdint.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* Opaque driver handle */ -struct tsec_private; - -/********** Low-level Driver API ****************/ - -/** - * @defgroup powerpc_iftsecpub Low-level Driver API - * - * @ingroup powerpc_mvme3100 - * - * @brief This API provides driver access to applications that - * want to use e.g., the second ethernet interface - * independently from the BSD TCP/IP stack. E.g., for - * raw ethernet packet communication... - */ - -#define TSEC_TXIRQ ( (1<<(31-9)) | (1<<(31-11)) ) -#define TSEC_RXIRQ ( (1<<(31-0)) | (1<<(31- 3)) | (1<<(31-24)) ) -#define TSEC_LKIRQ ( 1<<(31- 4) ) -/* - * Setup an interface. - * Allocates resources for descriptor rings and sets up the driver software structure. - * - * Arguments: - * unit: - * interface # (1..2). The interface must not be attached to BSD already. - * - * driver_tid: - * ISR posts RTEMS event # ('unit' - 1) to task with ID 'driver_tid' and disables interrupts - * from this interface. - * - * void (*cleanup_txbuf)(void *user_buf, void *cleanup_txbuf_arg, int error_on_tx_occurred): - * Pointer to user-supplied callback to release a buffer that had been sent - * by BSP_tsec_send_buf() earlier. The callback is passed 'cleanup_txbuf_arg' - * and a flag indicating whether the send had been successful. - * The driver no longer accesses 'user_buf' after invoking this callback. - * CONTEXT: This callback is executed either by BSP_tsec_swipe_tx() or - * BSP_tsec_send_buf(), BSP_tsec_init_hw(), BSP_tsec_stop_hw() (the latter - * ones calling BSP_tsec_swipe_tx()). - * void *cleanup_txbuf_arg: - * Closure argument that is passed on to 'cleanup_txbuf()' callback; - * - * void *(*alloc_rxbuf)(int *p_size, uintptr_t *p_data_addr), - * Pointer to user-supplied callback to allocate a buffer for subsequent - * insertion into the RX ring by the driver. - * RETURNS: opaque handle to the buffer (which may be a more complex object - * such as an 'mbuf'). The handle is not used by the driver directly - * but passed back to the 'consume_rxbuf()' callback. - * Size of the available data area and pointer to buffer's data area - * in '*psize' and '*p_data_area', respectively. - * If no buffer is available, this routine should return NULL in which - * case the driver drops the last packet and re-uses the last buffer - * instead of handing it out to 'consume_rxbuf()'. - * CONTEXT: Called when initializing the RX ring (BSP_tsec_init_hw()) or when - * swiping it (BSP_tsec_swipe_rx()). - * - * - * void (*consume_rxbuf)(void *user_buf, void *consume_rxbuf_arg, int len); - * Pointer to user-supplied callback to pass a received buffer back to - * the user. The driver no longer accesses the buffer after invoking this - * callback (with 'len'>0, see below). 'user_buf' is the buffer handle - * previously generated by 'alloc_rxbuf()'. - * The callback is passed 'cleanup_rxbuf_arg' and a 'len' - * argument giving the number of bytes that were received. - * 'len' may be <=0 in which case the 'user_buf' argument is NULL. - * 'len' == 0 means that the last 'alloc_rxbuf()' had failed, - * 'len' < 0 indicates a receiver error. In both cases, the last packet - * was dropped/missed and the last buffer will be re-used by the driver. - * NOTE: the data are 'prefixed' with two bytes, i.e., the ethernet packet header - * is stored at offset 2 in the buffer's data area. Also, the FCS (4 bytes) - * is appended. 'len' accounts for both. - * CONTEXT: Called from BSP_tsec_swipe_rx(). - * void *cleanup_rxbuf_arg: - * Closure argument that is passed on to 'consume_rxbuf()' callback; - * - * rx_ring_size, tx_ring_size: - * How many big to make the RX and TX descriptor rings. Note that the sizes - * may be 0 in which case a reasonable default will be used. - * If either ring size is < 0 then the RX or TX will be disabled. - * Note that it is illegal in this case to use BSP_tsec_swipe_rx() or - * BSP_tsec_swipe_tx(), respectively. - * - * irq_mask: - * Interrupts to enable. OR of flags from above. - * - */ -struct tsec_private * -BSP_tsec_setup( - int unit, - rtems_id driver_tid, - void (*cleanup_txbuf)(void *user_buf, void *cleanup_txbuf_arg, int error_on_tx_occurred), - void * cleanup_txbuf_arg, - void * (*alloc_rxbuf)(int *p_size, uintptr_t *p_data_addr), - void (*consume_rxbuf)(void *user_buf, void *consume_rxbuf_arg, int len), - void * consume_rxbuf_arg, - int rx_ring_size, - int tx_ring_size, - int irq_mask -); - -/* - * Alternate 'setup' routine allowing the user to install an ISR rather - * than a task ID. - * All parameters (other than 'isr' / 'isr_arg') and the return value - * are identical to the BSP_tsec_setup() entry point. - */ -struct tsec_private * -BSP_tsec_setup_1( - int unit, - void (*isr)(void *isr_arg), - void * isr_arg, - void (*cleanup_txbuf)(void *user_buf, void *cleanup_txbuf_arg, int error_on_tx_occurred), - void * cleanup_txbuf_arg, - void * (*alloc_rxbuf)(int *p_size, uintptr_t *p_data_addr), - void (*consume_rxbuf)(void *user_buf, void *consume_rxbuf_arg, int len), - void * consume_rxbuf_arg, - int rx_ring_size, - int tx_ring_size, - int irq_mask -); - - -/* - * Descriptor scavenger; cleanup the TX ring, passing all buffers - * that have been sent to the cleanup_tx() callback. - * This routine is called from BSP_tsec_send_buf(), BSP_tsec_init_hw(), - * BSP_tsec_stop_hw(). - * - * RETURNS: number of buffers processed. - */ - -int -BSP_tsec_swipe_tx(struct tsec_private *mp); - - -/* - * Reset statistics counters. - */ -void -BSP_tsec_reset_stats(struct tsec_private *mp); - -/* - * Initialize interface hardware - * - * 'mp' handle obtained by from BSP_tsec_setup(). - * 'promisc' whether to set promiscuous flag. - * 'enaddr' pointer to six bytes with MAC address. Read - * from the device if NULL. - * NOTE: multicast filter is cleared by this routine. - */ -void -BSP_tsec_init_hw(struct tsec_private *mp, int promisc, unsigned char *enaddr); - -/* - * Clear multicast hash filter. No multicast frames are accepted - * after executing this routine (unless the hardware was initialized - * in 'promiscuous' mode). - * - * Reset reference count for all hash-table entries - * to zero (see BSP_tsec_mcast_filter_accept_del()). - */ -void -BSP_tsec_mcast_filter_clear(struct tsec_private *mp); - -/* - * Program multicast filter to accept all multicast frames. - * - * Increment reference count for all hash-table entries - * by one (see BSP_tsec_mcast_filter_accept_del()). - */ -void -BSP_tsec_mcast_filter_accept_all(struct tsec_private *mp); - -/* - * Add a MAC address to the multicast filter and increment - * the reference count for the matching hash-table entry - * (see BSP_tsec_mcast_filter_accept_del()). - * - * Existing entries are not changed but note that - * the filter is imperfect, i.e., multiple MAC addresses - * may alias to a single filter entry. Hence software - * filtering must still be performed. - * - */ -void -BSP_tsec_mcast_filter_accept_add(struct tsec_private *mp, unsigned char *enaddr); - -/* - * Remove a MAC address from the (imperfec) multicast - * filter. - * Note that the driver maintains an internal reference - * counter for each multicast hash. The hash-table - * entry is only cleared when the reference count - * reaches zero ('del' has been called the same - * amount of times as 'add' for an address (or - * any alias) that matches a given table entry. - * BSP_tsec_mcast_filter_clear() resets all reference - * counters to zero. - */ -void -BSP_tsec_mcast_filter_accept_del(struct tsec_private *mp, unsigned char *enaddr); - -/* - * Dump statistics to FILE 'f'. If NULL, stdout is used. - */ -void -BSP_tsec_dump_stats(struct tsec_private *mp, FILE *f); - -/* - * Shutdown hardware and clean out the rings - */ -void -BSP_tsec_stop_hw(struct tsec_private *mp); - -/* - * calls BSP_tsec_stop_hw(), releases all resources and marks the interface - * as unused. - * RETURNS 0 on success, nonzero on failure. - * NOTE: the handle MUST NOT be used after successful execution of this - * routine. - */ -int -BSP_tsec_detach(struct tsec_private *mp); - -/* - * Enqueue a mbuf chain or a raw data buffer for transmission; - * RETURN: #bytes sent or -1 if there are not enough free descriptors - * - * If 'len' is <=0 then 'm_head' is assumed to point to a mbuf chain. - * OTOH, a raw data packet (or a different type of buffer) - * may be sent (non-BSD driver) by pointing data_p to the start of - * the data and passing 'len' > 0. - * 'm_head' is passed back to the 'cleanup_txbuf()' callback. - * - * Comments: software cache-flushing incurs a penalty if the - * packet cannot be queued since it is flushed anyways. - * The algorithm is slightly more efficient in the normal - * case, though. - * - * RETURNS: # bytes enqueued to device for transmission or -1 if no - * space in the TX ring was available. - */ - -int -BSP_tsec_send_buf(struct tsec_private *mp, void *m_head, void *data_p, int len); - -/* - * Retrieve all received buffers from the RX ring, replacing them - * by fresh ones (obtained from the alloc_rxbuf() callback). The - * received buffers are passed to consume_rxbuf(). - * - * RETURNS: number of buffers processed. - */ -int -BSP_tsec_swipe_rx(struct tsec_private *mp); - -/* read ethernet address from hw to buffer */ -void -BSP_tsec_read_eaddr(struct tsec_private *mp, unsigned char *eaddr); - -/* Read MII register */ -uint32_t -BSP_tsec_mdio_rd(struct tsec_private *mp, unsigned reg); - -/* Write MII register */ -int -BSP_tsec_mdio_wr(struct tsec_private *mp, unsigned reg, uint32_t val); - -/* - * read/write media word. - * 'cmd': can be SIOCGIFMEDIA, SIOCSIFMEDIA, 0 or 1. The latter - * are aliased to the former for convenience. - * 'parg': pointer to media word. - * - * RETURNS: 0 on success, nonzero on error - */ -int -BSP_tsec_media_ioctl(struct tsec_private *mp, int cmd, int *parg); - -/* Interrupt related routines */ - -/* - * When it comes to interrupts the chip has two rather - * annoying features: - * 1 once an IRQ is pending, clearing the IMASK does not - * de-assert the interrupt line. - * 2 the chip has three physical interrupt lines even though - * all events are reported in a single register. Rather - * useless; we must hook 3 ISRs w/o any real benefit. - * In fact, it makes our life a bit more difficult: - * - * Hence, for (1) we would have to mask interrupts at the PIC - * but to re-enable them we would have to do that three times - * because of (2). - * - * Therefore, we take the following approach: - * - * ISR masks all interrupts on the TSEC, acks/clears them - * and stores the acked irqs in the device struct where - * it is picked up by BSP_tsec_ack_irqs(). - * Since all interrupts are disabled until the daemon - * re-enables them after calling BSP_tsec_ack_irqs() - * no interrupts are lost. - * - * BUT: NO isr (including PHY isrs) MUST INTERRUPT ANY - * OTHER ONE, i.e., they all must have the same - * priority. Otherwise, integrity of the cached - * irq_pending variable may be compromised. - */ - -/* Note: the BSP_tsec_enable/disable/ack_irqs() entry points - * are deprecated. - * The newer API where the user passes a mask allows - * for more selective control. - */ - -/* Enable interrupts at device */ -void -BSP_tsec_enable_irqs(struct tsec_private *mp); - -/* Disable interrupts at device */ -void -BSP_tsec_disable_irqs(struct tsec_private *mp); - -/* - * Acknowledge (and clear) interrupts. - * RETURNS: interrupts that were raised. - */ -uint32_t -BSP_tsec_ack_irqs(struct tsec_private *mp); - -/* Enable interrupts included in 'mask' (leaving - * already enabled interrupts on). If the mask includes - * bits that were not passed to the 'setup' routine then - * the behavior is undefined. - */ -void -BSP_tsec_enable_irq_mask(struct tsec_private *mp, uint32_t irq_mask); - -/* Disable interrupts included in 'mask' (leaving - * other ones that are currently enabled on). If the mask - * includes bits that were not passed to the 'setup' routine - * then the behavior is undefined. - - * RETURNS: Bitmask of interrupts that were enabled upon entry - * into this routine. This can be used to restore the previous - * state. - */ -uint32_t -BSP_tsec_disable_irq_mask(struct tsec_private *mp, uint32_t irq_mask); - -/* Acknowledge and clear selected interrupts. - * - * RETURNS: All pending interrupts. - * - * NOTE: Only pending interrupts contained in 'mask' - * are cleared. Others are left pending. - * - * This routine can be used to check for pending - * interrupts (pass mask == 0) or to clear all - * interrupts (pass mask == -1). - */ -uint32_t -BSP_tsec_ack_irq_mask(struct tsec_private *mp, uint32_t mask); - - -/* Retrieve the driver daemon TID that was passed to - * BSP_tsec_setup(). - */ - -rtems_id -BSP_tsec_get_tid(struct tsec_private *mp); - -struct tsec_private * -BSP_tsec_getp(unsigned index); - -/* - * - * Example driver task loop (note: no synchronization of - * buffer access shown!). - * RTEMS_EVENTx = 0,1 or 2 depending on IF unit. - * - * / * setup (obtain handle) and initialize hw here * / - * - * do { - * / * ISR disables IRQs and posts event * / - * rtems_event_receive( RTEMS_EVENTx, RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &evs ); - * irqs = BSP_tsec_ack_irqs(handle); - * if ( irqs & BSP_TSEC_IRQ_TX ) { - * BSP_tsec_swipe_tx(handle); / * cleanup_txbuf() callback executed * / - * } - * if ( irqs & BSP_TSEC_IRQ_RX ) { - * BSP_tsec_swipe_rx(handle); / * alloc_rxbuf() and consume_rxbuf() executed * / - * } - * BSP_tsec_enable_irqs(handle); - * } while (1); - * - */ - -/* PUBLIC RTEMS BSDNET ATTACH FUNCTION */ -struct rtems_bsdnet_ifconfig; - -int -rtems_tsec_attach(struct rtems_bsdnet_ifconfig *ifcfg, int attaching); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/c/src/lib/libbsp/powerpc/mvme3100/preinstall.am b/c/src/lib/libbsp/powerpc/mvme3100/preinstall.am deleted file mode 100644 index b9c491762d..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/preinstall.am +++ /dev/null @@ -1,136 +0,0 @@ -## Automatically generated by ampolish3 - Do not edit - -if AMPOLISH3 -$(srcdir)/preinstall.am: Makefile.am - $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am -endif - -PREINSTALL_DIRS = -DISTCLEANFILES += $(PREINSTALL_DIRS) - -all-am: $(PREINSTALL_FILES) - -PREINSTALL_FILES = -CLEANFILES = $(PREINSTALL_FILES) - -all-local: $(TMPINSTALL_FILES) - -TMPINSTALL_FILES = -CLEANFILES += $(TMPINSTALL_FILES) - -$(PROJECT_LIB)/$(dirstamp): - @$(MKDIR_P) $(PROJECT_LIB) - @: > $(PROJECT_LIB)/$(dirstamp) -PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp) - -$(PROJECT_INCLUDE)/$(dirstamp): - @$(MKDIR_P) $(PROJECT_INCLUDE) - @: > $(PROJECT_INCLUDE)/$(dirstamp) -PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp) - -$(PROJECT_INCLUDE)/bsp/$(dirstamp): - @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp - @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp) -PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp) - -$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs -PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs - -$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h - -$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h - -$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h - -$(PROJECT_INCLUDE)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h - -$(PROJECT_LIB)/motld_start.$(OBJEXT): motld_start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/motld_start.$(OBJEXT) -TMPINSTALL_FILES += $(PROJECT_LIB)/motld_start.$(OBJEXT) - -$(PROJECT_LIB)/rtems_crti.$(OBJEXT): rtems_crti.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/rtems_crti.$(OBJEXT) -TMPINSTALL_FILES += $(PROJECT_LIB)/rtems_crti.$(OBJEXT) - -$(PROJECT_LIB)/linkcmds.share: ../shared/startup/linkcmds.share $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.share -PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.share - -$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds -PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds - -$(PROJECT_INCLUDE)/bsp/uart.h: ../../powerpc/shared/console/uart.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/uart.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/uart.h - -$(PROJECT_INCLUDE)/bsp/irq.h: irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h - -$(PROJECT_INCLUDE)/bsp/openpic.h: ../../powerpc/shared/openpic/openpic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/openpic.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/openpic.h - -$(PROJECT_INCLUDE)/bsp/pci.h: ../../powerpc/shared/pci/pci.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/pci.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/pci.h - -$(PROJECT_INCLUDE)/bsp/VMEConfig.h: vme/VMEConfig.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VMEConfig.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VMEConfig.h - -$(PROJECT_INCLUDE)/bsp/vmeTsi148.h: ../../shared/vmeUniverse/vmeTsi148.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vmeTsi148.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vmeTsi148.h - -$(PROJECT_INCLUDE)/bsp/vme_am_defs.h: ../../shared/vmeUniverse/vme_am_defs.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vme_am_defs.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vme_am_defs.h - -$(PROJECT_INCLUDE)/bsp/VME.h: ../../shared/vmeUniverse/VME.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VME.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VME.h - -$(PROJECT_INCLUDE)/bsp/vmeTsi148DMA.h: ../../shared/vmeUniverse/vmeTsi148DMA.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vmeTsi148DMA.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vmeTsi148DMA.h - -$(PROJECT_INCLUDE)/bsp/bspVmeDmaList.h: ../../shared/vmeUniverse/bspVmeDmaList.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bspVmeDmaList.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bspVmeDmaList.h - -$(PROJECT_INCLUDE)/bsp/VMEDMA.h: ../../shared/vmeUniverse/VMEDMA.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VMEDMA.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VMEDMA.h - -$(PROJECT_INCLUDE)/bsp/flashPgm.h: ../shared/flash/flashPgm.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/flashPgm.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/flashPgm.h - -$(PROJECT_INCLUDE)/bsp/flashPgmPvt.h: ../shared/flash/flashPgmPvt.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/flashPgmPvt.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/flashPgmPvt.h - -$(PROJECT_INCLUDE)/bsp/mpc8540_i2c_busdrv.h: i2c/mpc8540_i2c_busdrv.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mpc8540_i2c_busdrv.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mpc8540_i2c_busdrv.h - -$(PROJECT_INCLUDE)/bsp/vpd.h: ../shared/motorola/vpd.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vpd.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vpd.h - -if HAS_NETWORKING -$(PROJECT_INCLUDE)/bsp/if_tsec_pub.h: network/if_tsec_pub.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/if_tsec_pub.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/if_tsec_pub.h -endif diff --git a/c/src/lib/libbsp/powerpc/mvme3100/bsp_specs b/c/src/lib/libbsp/powerpc/mvme3100/startup/bsp_specs index 2625609327..2625609327 100644 --- a/c/src/lib/libbsp/powerpc/mvme3100/bsp_specs +++ b/c/src/lib/libbsp/powerpc/mvme3100/startup/bsp_specs diff --git a/c/src/lib/libbsp/powerpc/mvme3100/vme/VMEConfig.h b/c/src/lib/libbsp/powerpc/mvme3100/vme/VMEConfig.h deleted file mode 100644 index 10b424c2a8..0000000000 --- a/c/src/lib/libbsp/powerpc/mvme3100/vme/VMEConfig.h +++ /dev/null @@ -1,132 +0,0 @@ -/** - * @file - * - * @ingroup powerpc_vmeconfig - * - * @brief mvme3100 BSP specific address space configuration parameters - */ - -#ifndef RTEMS_BSP_VME_CONFIG_H -#define RTEMS_BSP_VME_CONFIG_H - -/* - * Authorship - * ---------- - * This software was created by - * Till Straumann <strauman@slac.stanford.edu>, 2002..2007, - * Stanford Linear Accelerator Center, Stanford University. - * - * Acknowledgement of sponsorship - * ------------------------------ - * This software was produced by - * the Stanford Linear Accelerator Center, Stanford University, - * under Contract DE-AC03-76SFO0515 with the Department of Energy. - * - * Government disclaimer of liability - * ---------------------------------- - * Neither the United States nor the United States Department of Energy, - * nor any of their employees, makes any warranty, express or implied, or - * assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness of any data, apparatus, product, or process - * disclosed, or represents that its use would not infringe privately owned - * rights. - * - * Stanford disclaimer of liability - * -------------------------------- - * Stanford University makes no representations or warranties, express or - * implied, nor assumes any liability for the use of this software. - * - * Stanford disclaimer of copyright - * -------------------------------- - * Stanford University, owner of the copyright, hereby disclaims its - * copyright and all other rights in this software. Hence, anyone may - * freely use it for any purpose without restriction. - * - * Maintenance of notices - * ---------------------- - * In the interest of clarity regarding the origin and status of this - * SLAC software, this and all the preceding Stanford University notices - * are to remain affixed to any copy or derivative of this software made - * or distributed by the recipient and are to be affixed to any copy of - * software made or distributed by the recipient that contains a copy or - * derivative of this software. - * - * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03 - */ - -/* - * NOTE: the BSP (startup/bspstart.c) uses - * hardcoded window lengths that match this - * layout: - */ - -#define _VME_A32_WIN0_ON_PCI 0xc0000000 -#define _VME_CSR_ON_PCI 0xce000000 -#define _VME_A24_ON_PCI 0xcf000000 -#define _VME_A16_ON_PCI 0xcfff0000 - -/* start of the A32 window on the VME bus - * TODO: this should perhaps be a run-time configuration option - */ -#define _VME_A32_WIN0_ON_VME 0x20000000 - -/* if _VME_DRAM_OFFSET is defined, the BSP - * will map the board RAM onto the VME bus, starting - * at _VME_DRAM_OFFSET - */ -#define _VME_DRAM_OFFSET 0xc0000000 - -/* If your BSP requires a non-standard way to configure - * the VME interrupt manager then define the symbol - * - * BSP_VME_INSTALL_IRQ_MGR - * - * to a proper instruction sequence that installs the - * universe interrupt manager. This requires knowledge - * of the wiring between the universe and the PIC (main - * interrupt controller), i.e., which IRQ 'pins' of the - * universe are wired to which 'lines'/inputs at the PIC. - * (consult vmeUniverse.h for more information). - * - * When installing the universe IRQ manager it is also - * possible to specify whether it should try to share - * PIC interrupts with other sources. This might not - * be supported by all BSPs (but the unverse driver - * recognizes that). - * - * If BSP_VME_INSTALL_IRQ_MGR is undefined then - * the default algorithm is used (vme_universe.c): - * - * This default setup uses only a single wire. It reads - * the PIC 'line' from PCI configuration space and assumes - * this to be wired to the first (LIRQ0) IRQ input at the - * universe. The default setup tries to use interrupt - * sharing. - */ - -extern int BSP_VMEInit(void); -extern int BSP_VMEIrqMgrInstall(void); - -/** - * @defgroup powerpc_vme BSP_VME_INSTALL_IRQ_MGR Support - * - * @ingroup powerpc_mvme3100 - * - * @brief BSP_VME_INSTALL_IRQ_MGR Support Package - */ -#define BSP_VME_INSTALL_IRQ_MGR(err) \ - do { \ - err = vmeTsi148InstallIrqMgrAlt(\ - VMETSI148_IRQ_MGR_FLAG_SHARED, /* use shared IRQs */ \ - 0, BSP_VME0_IRQ, \ - 1, BSP_VME1_IRQ, \ - 2, BSP_VME2_IRQ, \ - 3, BSP_VME3_IRQ, \ - -1 /* terminate list */ \ - ); \ - } while (0) - -/* This BSP uses the Tsi148 Driver */ -#define _VME_DRIVER_TSI148 - -#endif |