* emulparams/m68hc12elfb.sh (EEPROM_MEMORY): Define.
authorStephane Carrez <stcarrez@nerim.fr>
Sat, 29 Jun 2002 10:33:45 +0000 (10:33 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Sat, 29 Jun 2002 10:33:45 +0000 (10:33 +0000)
* emulparams/m68hc11elfb.sh (EEPROM_MEMORY): Define.
* emulparams/m68hc11elf.sh (EEPROM_SIZE): Define.
(EEPROM_START_ADDR): Define.
(EEPROM_MEMORY): Define.
* emulparams/m68hc12elf.sh: Likewise.
* scripttempl/elfm68hc11.sc: Handle .eeprom section; handle .softregs
section to put soft registers in .page0.
* scripttempl/elfm68hc12.sc: Likewise but put soft registers in bss.

ld/ChangeLog
ld/emulparams/m68hc11elf.sh
ld/emulparams/m68hc11elfb.sh
ld/emulparams/m68hc12elf.sh
ld/emulparams/m68hc12elfb.sh
ld/scripttempl/elfm68hc11.sc
ld/scripttempl/elfm68hc12.sc

index 1866c2deb01dd0305166d6ababf4a3d3ac088c2c..b7a99c41e5854a4f8a86942ea1ffd84e81b12c05 100644 (file)
@@ -1,3 +1,15 @@
+2002-06-29  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * emulparams/m68hc12elfb.sh (EEPROM_MEMORY): Define.
+       * emulparams/m68hc11elfb.sh (EEPROM_MEMORY): Define.
+       * emulparams/m68hc11elf.sh (EEPROM_SIZE): Define.
+       (EEPROM_START_ADDR): Define.
+       (EEPROM_MEMORY): Define.
+       * emulparams/m68hc12elf.sh: Likewise.
+       * scripttempl/elfm68hc11.sc: Handle .eeprom section; handle .softregs
+       section to put soft registers in .page0.
+       * scripttempl/elfm68hc12.sc: Likewise but put soft registers in bss.
+
 2002-06-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * emulparams/hppa64linux.sh (OTHER_GOT_RELOC_SECTIONS): Add rela.opd
index 2f6713e9dacd29248d5be9566eec8038e3b37a9c..2a731794111b3e957eeab139c84e9db5b7c6905c 100644 (file)
@@ -5,8 +5,11 @@ ROM_START_ADDR=0x08000
 ROM_SIZE=0x8000
 RAM_START_ADDR=0x01100
 RAM_SIZE=0x6F00
+EEPROM_START_ADDR=0xb600
+EEPROM_SIZE=512
 TEXT_MEMORY=text
 DATA_MEMORY=data
+EEPROM_MEMORY=eeprom
 ARCH=m68hc11
 MAXPAGESIZE=32
 EMBEDDED=yes
index 0f3016e29745e735a0047cecf4d4c777bcc623bd..666f6dcb5df8b18451a1a0eaa98c6360317841fc 100644 (file)
@@ -3,6 +3,7 @@ SCRIPT_NAME=elfm68hc11
 OUTPUT_FORMAT="elf32-m68hc11"
 TEXT_MEMORY=text
 DATA_MEMORY=data
+EEPROM_MEMORY=eeprom
 ARCH=m68hc11
 MAXPAGESIZE=32
 GENERIC_BOARD=yes
index 1d9134c17f248081e0968622375cb6840fe13a1b..133eb1402884fad32febb70c2cf5dec1a47b8386 100644 (file)
@@ -5,8 +5,11 @@ ROM_START_ADDR=0x08000
 ROM_SIZE=0x8000
 RAM_START_ADDR=0x01100
 RAM_SIZE=0x6F00
+EEPROM_START_ADDR=0x0800
+EEPROM_SIZE=2048
 TEXT_MEMORY=text
 DATA_MEMORY=data
+EEPROM_MEMORY=eeprom
 ARCH=m68hc12
 MAXPAGESIZE=32
 EMBEDDED=yes
index 211978a32692817687ba715be7a61694e753a09b..11a17b66109465ab35e7887ac535b5fdf96b2c84 100644 (file)
@@ -3,6 +3,7 @@ SCRIPT_NAME=elfm68hc12
 OUTPUT_FORMAT="elf32-m68hc12"
 TEXT_MEMORY=text
 DATA_MEMORY=data
+EEPROM_MEMORY=eeprom
 ARCH=m68hc12
 MAXPAGESIZE=32
 GENERIC_BOARD=yes
index dc0956e4dada3b8f2966c646a5a6e1041a7c8ad2..eaee371c9a5c0483b9c0461c182b5b20e140870e 100644 (file)
@@ -100,6 +100,7 @@ MEMORY
   page0 (rwx) : ORIGIN = 0x0, LENGTH = 256
   text  (rx)  : ORIGIN = ${ROM_START_ADDR}, LENGTH = ${ROM_SIZE}
   data        : ORIGIN = ${RAM_START_ADDR}, LENGTH = ${RAM_SIZE}
+  eeprom      : ORIGIN = ${EEPROM_START_ADDR}, LENGTH = ${EEPROM_SIZE}
 }
 
 /* Setup the stack on the top of the data memory bank.  */
@@ -165,6 +166,10 @@ BSS_DATA_RELOC="
   .scommon 0 : { *(.scommon) }
 "
 
+SOFT_REGS_RELOC="
+  .softregs 0 : { *(.softregs) }
+"
+
 cat <<EOF
 ${RELOCATING+/* Linker script for 68HC11 executable (PROM).  */}
 ${RELOCATING-/* Linker script for 68HC11 object file (ld -r).  */}
@@ -294,6 +299,7 @@ SECTIONS
   .page0 :
   {
     *(.page0)
+    ${RELOCATING+*(.softregs)}
   } ${RELOCATING+ > page0}
 
   /* Start of text section.  */
@@ -393,6 +399,7 @@ SECTIONS
 
   /* Relocation for some bss and data sections.  */
   ${RELOCATING-${BSS_DATA_RELOC}}
+  ${RELOCATING-${SOFT_REGS_RELOC}}
 
   .bss ${RELOCATING-0} :
   {
@@ -410,6 +417,12 @@ SECTIONS
   ${RELOCATING+__bss_size = SIZEOF(.bss);}
   ${RELOCATING+PROVIDE (__bss_size = SIZEOF(.bss));}
 
+  .eeprom ${RELOCATING-0} :
+  {
+    *(.eeprom)
+    *(.eeprom.*)
+  } ${RELOCATING+ > ${EEPROM_MEMORY}}
+
   ${RELOCATING+${VECTORS}}
 
   /* Stabs debugging sections.  */
index a0bc4e0d0b63edd2aaa96da024c65a848b36cdd0..2b25e775bb10900dfdb47111bbac35fc3fffe504 100644 (file)
@@ -165,6 +165,10 @@ BSS_DATA_RELOC="
   .scommon 0 : { *(.scommon) }
 "
 
+SOFT_REGS_RELOC="
+  .softregs 0 : { *(.softregs) }
+"
+
 cat <<EOF
 ${RELOCATING+/* Linker script for 68HC12 executable (PROM).  */}
 ${RELOCATING-/* Linker script for 68HC12 object file (ld -r).  */}
@@ -393,10 +397,12 @@ SECTIONS
 
   /* Relocation for some bss and data sections.  */
   ${RELOCATING-${BSS_DATA_RELOC}}
+  ${RELOCATING-${SOFT_REGS_RELOC}}
 
   .bss ${RELOCATING-0} :
   {
     ${RELOCATING+__bss_start = .;}
+    ${RELOCATING+*(.softregs)}
     ${RELOCATING+*(.sbss)}
     ${RELOCATING+*(.scommon)}
 
@@ -410,6 +416,12 @@ SECTIONS
   ${RELOCATING+__bss_size = SIZEOF(.bss);}
   ${RELOCATING+PROVIDE (__bss_size = SIZEOF(.bss));}
 
+  .eeprom ${RELOCATING-0} :
+  {
+    *(.eeprom)
+    *(.eeprom.*)
+  } ${RELOCATING+ > ${EEPROM_MEMORY}}
+
   ${RELOCATING+${VECTORS}}
 
   /* Stabs debugging sections.  */