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 $< $@
+            }
+        }
+
+
     }
 }