Mercurial > ecos
diff packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl @ 208:e0c0827131d1 ecos
Merge from eCos master repository on 2002-05-20-20:11:54-BST
| author | jlarmour |
|---|---|
| date | Mon, 20 May 2002 22:19:26 +0000 |
| parents | 67850532eebb |
| children | d2c90368aeef |
line wrap: on
line diff
--- a/packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl +++ b/packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl @@ -5,29 +5,38 @@ # INTEGRATOR board HAL package configuration data # # ==================================================================== -#####COPYRIGHTBEGIN#### -# -# ------------------------------------------- -# The contents of this file are subject to the Red Hat eCos Public License -# Version 1.1 (the "License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.redhat.com/ -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the -# License for the specific language governing rights and limitations under -# the License. -# -# The Original Code is eCos - Embedded Configurable Operating System, -# released September 30, 1998. -# -# The Initial Developer of the Original Code is Red Hat. -# Portions created by Red Hat are -# Copyright (C) 1998, 1999, 2000 Red Hat, Inc. -# All Rights Reserved. -# ------------------------------------------- -# -#####COPYRIGHTEND#### +#####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#### # @@ -55,28 +64,45 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { implements CYGINT_HAL_DEBUG_GDB_STUBS implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT - implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED - implements CYGINT_HAL_ARM_THUMB_ARCH - implements CYGINT_HAL_ARM_BIGENDIAN - implements CYGINT_HAL_ARM_ARCH_ARM7 - implements CYGINT_HAL_ARM_ARCH_ARM9 define_proc { puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>" puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_integrator.h>" - puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_IO_H <cyg/hal/plf_io.h>" puts $::cdl_header "" - puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 7TDMI\"" puts $::cdl_header "#define HAL_PLATFORM_BOARD \"INTEGRATOR\"" puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\"" puts $::cdl_header "" } + cdl_component CYGPKG_HAL_ARM_INTEGRATOR_ARM7 { + display "ARM 7 specialization" + active_if !CYGPKG_HAL_ARM_ARM9 + calculated !CYGPKG_HAL_ARM_ARM9 + implements CYGINT_HAL_ARM_ARCH_ARM7 + + define_proc { + puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 7TDMI\"" + } + } + + cdl_component CYGPKG_HAL_ARM_INTEGRATOR_ARM9 { + display "ARM 9 specialization" + active_if CYGPKG_HAL_ARM_ARM9 + calculated CYGPKG_HAL_ARM_ARM9 + + requires CYGPKG_HAL_ARM_ARM9_ARM966E + + define_proc { + puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 9\"" + } + + } + cdl_component CYG_HAL_STARTUP { display "Startup type" flavor data - legal_values {"RAM" "ROM"} + legal_values {"RAM" "ROM" "ROMRAM"} default_value {"RAM"} no_define define -file system.h CYG_HAL_STARTUP @@ -90,30 +116,6 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { } - cdl_option CYGHWR_HAL_ARM_INTEGRATOR_PCI_MEM_MAP_BASE { - display "Base of memory accessible via PCI space" - flavor data - legal_values 0 to 0x80000000 - default_value 0x80000000 - active_if CYGPKG_IO_PCI - description " - This option determines the base of the INTEGRATOR memory - which can be accessed via the PCI bus. Change in 256kB - increments." - } - - cdl_option CYGHWR_HAL_ARM_INTEGRATOR_PCI_MEM_MAP_SIZE { - display "Size of memory accessible via PCI space" - flavor data - legal_values 0 to 0x100000 - default_value 0x100000 - active_if CYGPKG_IO_PCI - description " - This option determines the size of the INTEGRATOR memory - which can be accessed via the PCI bus. Change in 256kB - increments." - } - cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT { display "Default console channel." flavor data @@ -131,17 +133,6 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { diagnostic and GDB port are the same." } - cdl_option CYGHWR_HAL_ARM_INTEGRATOR_GDB_PORT { - display "GDB serial port" - flavor data - legal_values 0 1 - default_value 1 - description " - The INTEGRATOR board has two separate serial ports. This option - chooses which of these ports will be used to connect to a host - running GDB." - } - cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD { display "GDB serial port baud rate" flavor data @@ -174,7 +165,7 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE flavor data legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 - default_value 1 + default_value 0 description " The INTEGRATOR board has two serial ports. This option chooses which port will be used to connect to a host @@ -186,7 +177,7 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE flavor data legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 - default_value 0 + default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT description " The INTEGRATOR board has two serial ports. This option chooses which port will be used for diagnostic output." @@ -237,12 +228,11 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { display "Global compiler flags" flavor data no_define - default_value { (CYGBLD_ARM_ENABLE_THUMB_INTERWORK && CYGHWR_HAL_ARM_BIGENDIAN) ? "-mthumb-interwork -mbig-endian -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : - CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : - (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9") && CYGHWR_HAL_ARM_BIGENDIAN ? "-mcpu=arm9 -mbig-endian -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : - (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9") && ! CYGHWR_HAL_ARM_BIGENDIAN ? "-mcpu=arm9 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : - (CYGHWR_HAL_ARM_CPU_FAMILY != "ARM9") && CYGHWR_HAL_ARM_BIGENDIAN ? "-mcpu=arm7tdmi -mbig-endian -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : - "-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" } + default_value { + CYGPKG_HAL_ARM_INTEGRATOR_ARM9 ? "-mcpu=arm9 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : + "-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -fno-schedule-insns -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" + } + description " This option controls the global compiler flags which are used to compile all packages by default. Individual packages may define @@ -253,12 +243,9 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { display "Global linker flags" flavor data no_define - default_value { ((CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) && CYGHWR_HAL_ARM_BIGENDIAN) ? "-mthumb-interwork -mbig-endian -g -nostdlib -Wl,--gc-sections -Wl,-static" : - (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) ? "-mthumb-interwork -g -nostdlib -Wl,--gc-sections -Wl,-static" : - (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9") && CYGHWR_HAL_ARM_BIGENDIAN ? "-mcpu=arm9 -mbig-endian -g -nostdlib -Wl,--gc-sections -Wl,-static" : - (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9") && ! CYGHWR_HAL_ARM_BIGENDIAN ? "-mcpu=arm9 -g -nostdlib -Wl,--gc-sections -Wl,-static" : - (CYGHWR_HAL_ARM_CPU_FAMILY != "ARM9") && CYGHWR_HAL_ARM_BIGENDIAN ? "-mcpu=arm7tdmi -mbig-endian -g -nostdlib -Wl,--gc-sections -Wl,-static" : - "-mcpu=arm7tdmi -g -nostdlib -Wl,--gc-sections -Wl,-static" } + default_value { + CYGPKG_HAL_ARM_INTEGRATOR_ARM9 ? "-Wl,-Map,map -mcpu=arm9 -g -nostdlib -Wl,--gc-sections -Wl,-static" : + "-Wl,-Map,map -mcpu=arm7tdmi -g -nostdlib -Wl,--gc-sections -Wl,-static" } description " This option controls the global linker flags. Individual packages may define options which override these global flags." @@ -268,7 +255,7 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { display "Build GDB stub ROM image" default_value 0 requires CYGBLD_BUILD_COMMON_GDB_STUBS - requires { CYG_HAL_STARTUP == "ROM" } + requires { CYG_HAL_STARTUP != "RAM" } requires CYGSEM_HAL_ROM_MONITOR requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT @@ -343,16 +330,18 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { display "Memory layout" flavor data no_define - calculated { CYG_HAL_STARTUP == "RAM" ? "arm_integrator_ram" : \ - "arm_integrator_rom" } + calculated { CYG_HAL_STARTUP == "RAM" ? "arm_integrator_ram" : \ + CYG_HAL_STARTUP == "ROMRAM" ? "arm_integrator_romram" : \ + "arm_integrator_rom" } cdl_option CYGHWR_MEMORY_LAYOUT_LDI { display "Memory layout linker script fragment" flavor data no_define define -file system.h CYGHWR_MEMORY_LAYOUT_LDI - calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_integrator_ram.ldi>" : \ - "<pkgconf/mlt_arm_integrator_rom.ldi>" } + calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_integrator_ram.ldi>" : \ + CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_integrator_romram.ldi>" : \ + "<pkgconf/mlt_arm_integrator_rom.ldi>" } } cdl_option CYGHWR_MEMORY_LAYOUT_H { @@ -360,8 +349,9 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { flavor data no_define define -file system.h CYGHWR_MEMORY_LAYOUT_H - calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_integrator_ram.h>" : \ - "<pkgconf/mlt_arm_integrator_rom.h>" } + calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_integrator_ram.h>" : \ + CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_integrator_romram.h>" : \ + "<pkgconf/mlt_arm_integrator_rom.h>" } } } @@ -371,7 +361,7 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { flavor bool default_value 0 parent CYGPKG_HAL_ROM_MONITOR - requires { CYG_HAL_STARTUP == "ROM" } + requires { CYG_HAL_STARTUP != "RAM" } description " Enable this option if this program is to be used as a ROM monitor, i.e. applications will be loaded into RAM on the board, and this @@ -438,20 +428,43 @@ cdl_package CYGPKG_HAL_ARM_INTEGRATOR { This option lists the target's requirements for a valid Redboot configuration." - cdl_option CYGBLD_BUILD_REDBOOT_BIN { - display "Build Redboot ROM binary image" - active_if CYGBLD_BUILD_REDBOOT + requires { !CYGPKG_REDBOOT_FLASH || (CYGBLD_REDBOOT_MIN_IMAGE_SIZE == 0x40000) } + requires { !CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP } + + cdl_option CYGBLD_BUILD_REDBOOT_BIN_ROM { + display "Build Redboot ROM startup ROM binary image" + active_if { CYGBLD_BUILD_REDBOOT && CYG_HAL_STARTUP == "ROM" } default_value 1 no_define description "This option enables the conversion of the Redboot ELF - image to a binary image suitable for ROM programming." + image to S-Record and binary image suitable for ROM + programming." make -priority 325 { <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf $(OBJCOPY) --strip-debug $< $(@:.bin=.img) - $(OBJCOPY) -O srec $< $(@:.bin=.srec) + $(OBJCOPY) -O srec --gap-fill 0 $< $(@:.bin=.srec) $(OBJCOPY) -O binary $< $@ } } + + cdl_option CYGBLD_BUILD_REDBOOT_BIN_ROMRAM { + display "Build Redboot ROMRAM startup ROM binary image" + active_if { CYGBLD_BUILD_REDBOOT && CYG_HAL_STARTUP == "ROMRAM" } + default_value 1 + no_define + description "This option enables the conversion of the Redboot ELF + image to S-Record and binary images suitable for ROM + programming." + + make -priority 325 { + <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf + $(OBJCOPY) --strip-debug $< $(@:.bin=.img) + $(OBJCOPY) -O srec --adjust-vma 0x24000000 --gap-fill 0 $< $(@:.bin=.srec) + $(OBJCOPY) -O binary $< $@ + } + } + + } }
