diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 12 | ||||
-rw-r--r-- | ld/emulparams/m68hc11elf.sh | 3 | ||||
-rw-r--r-- | ld/emulparams/m68hc11elfb.sh | 1 | ||||
-rw-r--r-- | ld/emulparams/m68hc12elf.sh | 3 | ||||
-rw-r--r-- | ld/emulparams/m68hc12elfb.sh | 1 | ||||
-rw-r--r-- | ld/scripttempl/elfm68hc11.sc | 13 | ||||
-rw-r--r-- | ld/scripttempl/elfm68hc12.sc | 12 |
7 files changed, 45 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 1866c2d..b7a99c4 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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 diff --git a/ld/emulparams/m68hc11elf.sh b/ld/emulparams/m68hc11elf.sh index 2f6713e..2a73179 100644 --- a/ld/emulparams/m68hc11elf.sh +++ b/ld/emulparams/m68hc11elf.sh @@ -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 diff --git a/ld/emulparams/m68hc11elfb.sh b/ld/emulparams/m68hc11elfb.sh index 0f3016e..666f6dc 100644 --- a/ld/emulparams/m68hc11elfb.sh +++ b/ld/emulparams/m68hc11elfb.sh @@ -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 diff --git a/ld/emulparams/m68hc12elf.sh b/ld/emulparams/m68hc12elf.sh index 1d9134c..133eb14 100644 --- a/ld/emulparams/m68hc12elf.sh +++ b/ld/emulparams/m68hc12elf.sh @@ -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 diff --git a/ld/emulparams/m68hc12elfb.sh b/ld/emulparams/m68hc12elfb.sh index 211978a..11a17b6 100644 --- a/ld/emulparams/m68hc12elfb.sh +++ b/ld/emulparams/m68hc12elfb.sh @@ -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 diff --git a/ld/scripttempl/elfm68hc11.sc b/ld/scripttempl/elfm68hc11.sc index dc0956e..eaee371 100644 --- a/ld/scripttempl/elfm68hc11.sc +++ b/ld/scripttempl/elfm68hc11.sc @@ -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. */ diff --git a/ld/scripttempl/elfm68hc12.sc b/ld/scripttempl/elfm68hc12.sc index a0bc4e0..2b25e77 100644 --- a/ld/scripttempl/elfm68hc12.sc +++ b/ld/scripttempl/elfm68hc12.sc @@ -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. */ |