changeset 1720:202432a1c50d

* cdl/hal_i386_pc.cdl: Added capability to build redboot with GRUB startup type. Also added capability to load applications into a higher RAM address (2MB) so they work with new GRUB based redboot. * include/pkgconf/mlt_i386_pc_ram_hi.mlt: * include/pkgconf/mlt_i386_pc_ram_hi.h: * include/pkgconf/mlt_i386_pc_ram_hi.ldi: New files for loading applications at 2MB. * misc/redboot_GRUB.ecm: New file for creating GRUB loadable redboot
author asl
date Wed, 18 Aug 2004 09:57:47 +0000
parents 6edb211aff56
children 2c111aea4d06
files packages/hal/i386/pc/current/ChangeLog packages/hal/i386/pc/current/cdl/hal_i386_pc.cdl packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_ram_hi.h packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_ram_hi.ldi packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_ram_hi.mlt packages/hal/i386/pc/current/misc/redboot_GRUB.ecm
diffstat 6 files changed, 154 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/i386/pc/current/ChangeLog
+++ b/packages/hal/i386/pc/current/ChangeLog
@@ -1,3 +1,15 @@
+2004-08-14  David Brennan <eCos@brennanhome.com>
+
+	 * cdl/hal_i386_pc.cdl: Added capability to build redboot with GRUB
+	 startup type. Also added capability to load applications into a 
+	 higher RAM address (2MB) so they work with new GRUB based redboot.
+	 * include/pkgconf/mlt_i386_pc_ram_hi.mlt: 
+	 * include/pkgconf/mlt_i386_pc_ram_hi.h: 
+	 * include/pkgconf/mlt_i386_pc_ram_hi.ldi: New files for loading
+	 applications at 2MB.
+	 * misc/redboot_GRUB.ecm: New file for creating GRUB loadable
+	 redboot
+
 2004-04-22  Jani Monoses <jani@iv.ro>
 
 	 * cdl/hal_i386_pc.cdl :
--- a/packages/hal/i386/pc/current/cdl/hal_i386_pc.cdl
+++ b/packages/hal/i386/pc/current/cdl/hal_i386_pc.cdl
@@ -242,7 +242,7 @@ cdl_package CYGPKG_HAL_I386_PC {
         cdl_option CYGBLD_BUILD_GDB_STUBS {
             display "Build GDB stub loader image"
             default_value 0
-            requires { CYG_HAL_STARTUP == "FLOPPY" }
+            requires { CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" }
             requires CYGSEM_HAL_ROM_MONITOR
             requires CYGBLD_BUILD_COMMON_GDB_STUBS
             requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
@@ -266,11 +266,25 @@ cdl_package CYGPKG_HAL_I386_PC {
         }
     }
 
+     cdl_option CYGHWR_HAL_I386_PC_LOAD_HIGH {
+	 display       "Load into higher memory (2MB)"
+	 flavor        bool
+	 default_value 0
+         requires { CYG_HAL_STARTUP == "RAM" }
+	 no_define
+	 description "This option enables building RAM applications
+	              which have a start address outside of the area
+		      used by redboot_GRUB."
+     }
+     
     cdl_component CYGHWR_MEMORY_LAYOUT {
         display "Memory layout"
         flavor data
         no_define
-        calculated { CYG_HAL_STARTUP == "RAM"  ? "i386_pc_ram" : \
+        calculated { CYG_HAL_STARTUP == "RAM"  ?  \
+		         (CYGHWR_HAL_I386_PC_LOAD_HIGH ? \
+			                         "i386_pc_ram_hi" : \
+						 "i386_pc_ram") : \
 		     CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" : \
 		     CYG_HAL_STARTUP == "GRUB" ? "i386_pc_grub" : \
 	                                         "i386_pc_floppy" }
@@ -280,7 +294,10 @@ cdl_package CYGPKG_HAL_I386_PC {
             flavor data
             no_define
             define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
-            calculated { CYG_HAL_STARTUP == "RAM"  ? "<pkgconf/mlt_i386_pc_ram.ldi>" : \
+            calculated { CYG_HAL_STARTUP == "RAM"  ? \
+		             (CYGHWR_HAL_I386_PC_LOAD_HIGH ? \
+			                             "<pkgconf/mlt_i386_pc_ram_hi.ldi>" : \
+						     "<pkgconf/mlt_i386_pc_ram.ldi>") : \
 		         CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" : \
 		         CYG_HAL_STARTUP == "GRUB" ? "<pkgconf/mlt_i386_pc_grub.ldi>" : \
                                                      "<pkgconf/mlt_i386_pc_floppy.ldi>" }
@@ -291,10 +308,13 @@ cdl_package CYGPKG_HAL_I386_PC {
             flavor data
             no_define
             define -file system.h CYGHWR_MEMORY_LAYOUT_H
-            calculated { CYG_HAL_STARTUP == "RAM"  ? "<pkgconf/mlt_i386_pc_ram.h>" : \
+            calculated { CYG_HAL_STARTUP == "RAM"  ? \
+		             (CYGHWR_HAL_I386_PC_LOAD_HIGH ? \
+			                             "<pkgconf/mlt_i386_pc_ram_hi.h>" : \
+						     "<pkgconf/mlt_i386_pc_ram.h>") : \
 		         CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" : \
 		         CYG_HAL_STARTUP == "GRUB" ? "<pkgconf/mlt_i386_pc_grub.h>" : \
-                                                     "<pkgconf/mlt_i386_pc_floppy.h>" }
+                                                       "<pkgconf/mlt_i386_pc_floppy.h>" }
         }
     }
 
@@ -304,7 +324,7 @@ cdl_package CYGPKG_HAL_I386_PC {
         default_value 0
 	
         parent        CYGPKG_HAL_ROM_MONITOR
-        requires      { CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" }
+        requires      { CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" }
 	requires      { !CYGHWR_HAL_I386_FPU_SWITCH_LAZY }
         description   "
             Enable this option if this program is to be used as a ROM monitor,
new file mode 100644
--- /dev/null
+++ b/packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_ram_hi.h
@@ -0,0 +1,22 @@
+// eCos memory layout - Fri Oct 20 08:15:20 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x01000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x01000000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x64000)
new file mode 100644
--- /dev/null
+++ b/packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_ram_hi.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 08:15:20 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x0, LENGTH = 0x1000000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_vectors (ram, 0x208000, LMA_EQ_VMA)
+    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_rel__got (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_sbss (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__pci_window) = ALIGN(0x10); . = CYG_LABEL_DEFN(__pci_window) + 0x64000;
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_ram_hi.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 1000000 0 !
+section vectors 0 1 0 1 1 1 1 1 208000 10000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 1 0 1 0 1 0 1 rel.got rel.got !
+section rel.got 0 1 0 1 0 1 0 1 data data !
+section data 0 8 0 1 0 1 0 1 sbss sbss !
+section sbss 0 4 0 1 0 1 0 1 bss bss !
+section bss 0 10 0 1 0 1 0 1 pci_window pci_window !
+section pci_window 64000 10 0 0 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
new file mode 100644
--- /dev/null
+++ b/packages/hal/i386/pc/current/misc/redboot_GRUB.ecm
@@ -0,0 +1,50 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+#    package CYGPKG_IO_FLASH current ;
+    package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+    user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+    user_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+    user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+    user_value GRUB
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+    user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
+    user_value 0
+};
+
+#cdl_option CYGSEM_REDBOOT_FLASH_CONFIG {
+#    user_value 1
+#};
+#
+#cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+#  inferred_value 0x1C00000
+#};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+  user_value 1
+};
+