diff options
Diffstat (limited to 'bsp')
| -rw-r--r-- | bsp/env/coreplexip-arty.h | 2 | ||||
| -rw-r--r-- | bsp/env/coreplexip-e31-arty/link.lds | 16 | ||||
| -rw-r--r-- | bsp/env/freedom-e300-hifive1/link.lds | 16 | ||||
| -rw-r--r-- | bsp/env/hifive1.h | 2 | ||||
| -rw-r--r-- | bsp/env/start.S | 10 | ||||
| -rw-r--r-- | bsp/libwrap/misc/write_hex.c | 4 | 
6 files changed, 21 insertions, 29 deletions
| diff --git a/bsp/env/coreplexip-arty.h b/bsp/env/coreplexip-arty.h index 161da7c..eedcaa5 100644 --- a/bsp/env/coreplexip-arty.h +++ b/bsp/env/coreplexip-arty.h @@ -97,6 +97,6 @@  #define RTC_FREQ 32768 -void write_hex(int fd, long int hex); +void write_hex(int fd, unsigned long int hex);  #endif /* _SIFIVE_COREPLEXIP_ARTY_H */ diff --git a/bsp/env/coreplexip-e31-arty/link.lds b/bsp/env/coreplexip-e31-arty/link.lds index 45a82d7..590c5b6 100644 --- a/bsp/env/coreplexip-e31-arty/link.lds +++ b/bsp/env/coreplexip-e31-arty/link.lds @@ -120,11 +120,11 @@ SECTIONS    {      *(.data .data.*)      *(.gnu.linkonce.d.*) -  } >ram AT>flash :ram_init - -  .srodata        : -  { -    PROVIDE( _gp = . + 0x800 ); +    . = ALIGN(8); +    PROVIDE( __global_pointer$ = . + 0x800 ); +    *(.sdata .sdata.*) +    *(.gnu.linkonce.s.*) +    . = ALIGN(8);      *(.srodata.cst16)      *(.srodata.cst8)      *(.srodata.cst4) @@ -132,12 +132,6 @@ SECTIONS      *(.srodata .srodata.*)    } >ram AT>flash :ram_init -  .sdata          : -  { -    *(.sdata .sdata.*) -    *(.gnu.linkonce.s.*) -  } >ram AT>flash :ram_init -    . = ALIGN(4);    PROVIDE( _edata = . );    PROVIDE( edata = . ); diff --git a/bsp/env/freedom-e300-hifive1/link.lds b/bsp/env/freedom-e300-hifive1/link.lds index 90e5c8f..6b37141 100644 --- a/bsp/env/freedom-e300-hifive1/link.lds +++ b/bsp/env/freedom-e300-hifive1/link.lds @@ -120,11 +120,11 @@ SECTIONS    {      *(.data .data.*)      *(.gnu.linkonce.d.*) -  } >ram AT>flash :ram_init - -  .srodata        : -  { -    PROVIDE( _gp = . + 0x800 ); +    . = ALIGN(8); +    PROVIDE( __global_pointer$ = . + 0x800 ); +    *(.sdata .sdata.*) +    *(.gnu.linkonce.s.*) +    . = ALIGN(8);      *(.srodata.cst16)      *(.srodata.cst8)      *(.srodata.cst4) @@ -132,12 +132,6 @@ SECTIONS      *(.srodata .srodata.*)    } >ram AT>flash :ram_init -  .sdata          : -  { -    *(.sdata .sdata.*) -    *(.gnu.linkonce.s.*) -  } >ram AT>flash :ram_init -    . = ALIGN(4);    PROVIDE( _edata = . );    PROVIDE( edata = . ); diff --git a/bsp/env/hifive1.h b/bsp/env/hifive1.h index b987847..0db2f0f 100644 --- a/bsp/env/hifive1.h +++ b/bsp/env/hifive1.h @@ -76,6 +76,6 @@  #define RTC_FREQ 32768 -void write_hex(int fd, long int hex); +void write_hex(int fd, unsigned long int hex);  #endif /* _SIFIVE_HIFIVE1_H */ diff --git a/bsp/env/start.S b/bsp/env/start.S index 9ec6c1c..e86105b 100644 --- a/bsp/env/start.S +++ b/bsp/env/start.S @@ -7,7 +7,10 @@  	.type _start,@function  _start: -	la gp, _gp +.option push +.option norelax +	la gp, __global_pointer$ +.option pop  	la sp, _sp  	/* Load data section */ @@ -52,7 +55,8 @@ _start:  	/* argc = argv = 0 */  	li a0, 0  	li a1, 0 -	call _init  	call main -	call _fini  	tail exit + +1: +	j 1b diff --git a/bsp/libwrap/misc/write_hex.c b/bsp/libwrap/misc/write_hex.c index 96f832d..a35ad7a 100644 --- a/bsp/libwrap/misc/write_hex.c +++ b/bsp/libwrap/misc/write_hex.c @@ -4,13 +4,13 @@  #include <unistd.h>  #include "platform.h" -void write_hex(int fd, long int hex) +void write_hex(int fd, unsigned long int hex)  {    uint8_t ii;    uint8_t jj;    char towrite;    write(fd , "0x", 2); -  for (ii = sizeof(long int) * 2 ; ii > 0; ii--) { +  for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {      jj = ii - 1;      uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4));      towrite = digit < 0xA ? ('0' + digit) : ('A' +  (digit - 0xA)); | 
