# ==================================================================== # # hal_arm_xscale_ixp425.cdl # # Intel XScale architectural HAL package configuration data # # ==================================================================== #####ECOSGPLCOPYRIGHTBEGIN#### ## ------------------------------------------- ## This file is part of eCos, the Embedded Configurable Operating System. ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. ## ## eCos 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 or (at your option) any later version. ## ## eCos 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 eCos; if not, write to the Free Software Foundation, Inc., ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ## ## As a special exception, if other files instantiate templates or use macros ## or inline functions from this file, or you compile this file and link it ## with other works to produce a work based on this file, this file does not ## by itself cause the resulting work to be covered by the GNU General Public ## License. However the source code for this file must still be made available ## in accordance with section (3) of the GNU General Public License. ## ## This exception does not invalidate any other reasons why a work based on ## this file might be covered by the GNU General Public License. ## ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. ## at http://sources.redhat.com/ecos/ecos-license/ ## ------------------------------------------- #####ECOSGPLCOPYRIGHTEND#### # ==================================================================== ######DESCRIPTIONBEGIN#### # # Author(s): msalter # Original data: msalter # Contributors: # Date: 2002-12-06 # #####DESCRIPTIONEND#### # # ==================================================================== cdl_package CYGPKG_HAL_ARM_XSCALE_IXP425 { display "Intel XScale IXP4xx Network Processor" parent CYGPKG_HAL_ARM implements CYGINT_HAL_DEBUG_GDB_STUBS implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT hardware include_dir cyg/hal define_header hal_arm_xscale_ixp425.h description " This HAL variant package provides generic support for the Intel IXP425 network processors. It is also necessary to select a specific target platform HAL package." # Let the architectural HAL see this variant's interrupts file define_proc { puts $::cdl_header \ "#define CYGBLD_HAL_VAR_INTS_H " puts $::cdl_header \ "#define CYGBLD_HAL_VAR_H " puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H" } compile ixp425_misc.c ixp425_pci.c ixp425_diag.c cdl_option CYGHWR_HAL_ARM_XSCALE_CPU { display "Intel XScale processor" flavor data default_value {"IXP42x"} legal_values {"IXP42x" "IXP43x" "IXP46x" } description " The XScale network processors come in several flavors. The main differences being in the on-chip peripherals" } cdl_option CYGHWR_HAL_ARM_XSCALE_EXP32 { display "Intel XScale processor" active_if { CYGHWR_HAL_ARM_XSCALE_CPU == "IXP46x" } flavor bool default_value 0 description " Some XScale network processors support 32MiB devices on the expansion bus. Define this if any of the attached devices are configured as 32MiB." } cdl_option CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK { display "Processor clock rate" flavor data default_value { CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK_DEFAULT ? CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK_DEFAULT : 533333} description " The XScale processor can run at various frequencies. These values are expressed in KHz." } cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND { display "Enable IXP425 PCI NP read problem workaround" flavor bool default_value 0 } # Real-time clock/counter specifics cdl_component CYGNUM_HAL_RTC_CONSTANTS { display "Real-time clock constants" flavor none no_define cdl_option CYGNUM_HAL_RTC_NUMERATOR { display "Real-time clock numerator" flavor data default_value 1000000000 } cdl_option CYGNUM_HAL_RTC_DENOMINATOR { display "Real-time clock denominator" flavor data default_value 100 description " This option selects the heartbeat rate for the real-time clock. The rate is specified in ticks per second. Change this value with caution - too high and your system will become saturated just handling clock interrupts, too low and some operations such as thread scheduling may become sluggish." } cdl_option CYGNUM_HAL_RTC_PERIOD { display "Real-time clock period" flavor data default_value 1000000/CYGNUM_HAL_RTC_DENOMINATOR description " This value gives the RTC period in microseconds. It is translated into the actual clock period value in the clock init and read functions." } } cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT { display "Default console channel." flavor data legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 calculated 0 } cdl_option CYGNUM_HAL_ARM_IXP425_SERIAL_CHANNELS { display "Number of IXP425 serial ports used on the board" flavor data calculated { (CYGSEM_HAL_IXP425_PLF_USES_UART1 && CYGSEM_HAL_IXP425_PLF_USES_UART2) ? 2 : \ (CYGSEM_HAL_IXP425_PLF_USES_UART1 || CYGSEM_HAL_IXP425_PLF_USES_UART2) ? 1 : \ 0 } } cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS { display "Number of communication channels on the board" flavor data calculated { CYGNUM_HAL_ARM_IXP425_SERIAL_CHANNELS + \ CYGNUM_HAL_IXP425_PLF_SERIAL_CHANNELS } } cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL { display "Debug serial port" active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE flavor data legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 default_value 0 description " This option chooses which port will be used to connect to a host running GDB." } cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL { display "Diagnostic serial port" active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE flavor data legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT description " IXP425 boards may use two or more serial ports. This option chooses which port will be used for diagnostic output." } cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD { display "Diagnostic serial port baud rate" flavor data legal_values 9600 19200 38400 57600 115200 default_value 115200 description " This option selects the baud rate used for the diagnostic port. Note: this should match the value chosen for the GDB port if the diagnostic and GDB port are the same." } cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD { display "Debug serial port baud rate" flavor data legal_values 9600 19200 38400 57600 115200 default_value 115200 description " This option selects the baud rate used for the GDB port." } cdl_component CYGSEM_HAL_IDE_SUPPORT { display "HAL support for IDE disks" flavor bool active_if CYGPKG_IO_PCI default_value 1 implements CYGINT_HAL_PLF_IF_IDE compile ixp_ide.c description " Enable this option to get support for IDE devices. This is useful to allow RedBoot to load files directly from disk." } cdl_component CYGPKG_REDBOOT_XSCALE_OPTIONS { display "Redboot for XScale options" flavor none no_define parent CYGPKG_REDBOOT active_if CYGPKG_REDBOOT description " This option lists the target's requirements for a valid Redboot configuration." compile -library=libextras.a ixp425_redboot.c define_proc { puts $::cdl_header "#define HAL_FLASH_READ(a,b,c,d) hal_flash_read((a),(b),(c),(d))" puts $::cdl_header "#define HAL_FLASH_PROGRAM(a,b,c,d) hal_flash_program((a),(b),(c),(d))" } cdl_option CYGBLD_REDBOOT_IXP4XX_LINUX_EXEC { flavor none no_define active_if { CYGBLD_BUILD_REDBOOT_WITH_EXEC } requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT != 0 } define_proc { puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00" } } } }