summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2020-08-26 17:35:07 +0800
committerGitHub <[email protected]>2020-08-26 17:35:07 +0800
commit5b3ec9490c72eda3fa6b70e3070b635bc78b0150 (patch)
tree4c53e35c6f997ffa1862917e895f85fcf05c9560
parent241a29a13f2c6404d672239d3682ff4b4b85d335 (diff)
parent52a4bace6812e1ddfc4b468ab0781a16774d53c2 (diff)
Merge pull request #3842 from Michael0066/dev
MIPS:remove redundant #ifdef ARCH_MIPS64
-rw-r--r--bsp/ls2kdev/SConstruct1
-rw-r--r--bsp/ls2kdev/drivers/board.c1
-rw-r--r--bsp/ls2kdev/drivers/drv_gpio.c2
-rw-r--r--bsp/ls2kdev/drivers/drv_rtc.c4
-rw-r--r--bsp/ls2kdev/ls2k_ram.lds17
-rw-r--r--bsp/ls2kdev/rtconfig.py1
-rw-r--r--libcpu/mips/common/asm.h4
-rw-r--r--libcpu/mips/common/stackframe.h10
8 files changed, 32 insertions, 8 deletions
diff --git a/bsp/ls2kdev/SConstruct b/bsp/ls2kdev/SConstruct
index 69373ed71f..6fd6fc67f9 100644
--- a/bsp/ls2kdev/SConstruct
+++ b/bsp/ls2kdev/SConstruct
@@ -15,6 +15,7 @@ DefaultEnvironment(tools=[])
env = Environment(tools = ['mingw'],
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
AR = rtconfig.AR, ARFLAGS = '-rc',
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
diff --git a/bsp/ls2kdev/drivers/board.c b/bsp/ls2kdev/drivers/board.c
index 20b7a84516..6a66777121 100644
--- a/bsp/ls2kdev/drivers/board.c
+++ b/bsp/ls2kdev/drivers/board.c
@@ -12,6 +12,7 @@
#include <rthw.h>
#include "mips_regs.h"
+#include "mips_fpu.h"
#include "exception.h"
#include "drv_uart.h"
#include "board.h"
diff --git a/bsp/ls2kdev/drivers/drv_gpio.c b/bsp/ls2kdev/drivers/drv_gpio.c
index e1c5d61331..155807461f 100644
--- a/bsp/ls2kdev/drivers/drv_gpio.c
+++ b/bsp/ls2kdev/drivers/drv_gpio.c
@@ -73,7 +73,7 @@ static int loongson_pin_read(struct rt_device *device, rt_base_t pin)
gpio = (void *)device->user_data;
rt_uint64_t m;
- m = gpio->GPIO1_I;
+ m = gpio->GPIO0_I;
m &= (rt_uint64_t)1 << pin;
rc = !!m;
diff --git a/bsp/ls2kdev/drivers/drv_rtc.c b/bsp/ls2kdev/drivers/drv_rtc.c
index 3a873cc6fc..ee125122e3 100644
--- a/bsp/ls2kdev/drivers/drv_rtc.c
+++ b/bsp/ls2kdev/drivers/drv_rtc.c
@@ -17,6 +17,8 @@
#include <rtthread.h>
#include "ls2k1000.h"
+#ifdef RT_USING_RTC
+
struct loongson_rtc {
rt_uint32_t sys_toytrim;
rt_uint32_t sys_toywrite0;
@@ -176,3 +178,5 @@ int rt_hw_rtc_init(void)
}
INIT_DEVICE_EXPORT(rt_hw_rtc_init);
+
+#endif /*RT_USING_RTC*/
diff --git a/bsp/ls2kdev/ls2k_ram.lds b/bsp/ls2kdev/ls2k_ram.lds
index 8bec1e855b..313a52969c 100644
--- a/bsp/ls2kdev/ls2k_ram.lds
+++ b/bsp/ls2kdev/ls2k_ram.lds
@@ -78,6 +78,23 @@ SECTIONS
*(.sdata.*)
}
+ . = ALIGN(4);
+ .ctors :
+ {
+ PROVIDE(__ctors_start__ = .);
+ KEEP(*(SORT(.ctors.*)))
+ KEEP(*(.ctors))
+ PROVIDE(__ctors_end__ = .);
+ }
+
+ .dtors :
+ {
+ PROVIDE(__dtors_start__ = .);
+ KEEP(*(SORT(.dtors.*)))
+ KEEP(*(.dtors))
+ PROVIDE(__dtors_end__ = .);
+ }
+
.stack :
{
. = ALIGN(8);
diff --git a/bsp/ls2kdev/rtconfig.py b/bsp/ls2kdev/rtconfig.py
index d932bf985b..0988198426 100644
--- a/bsp/ls2kdev/rtconfig.py
+++ b/bsp/ls2kdev/rtconfig.py
@@ -31,6 +31,7 @@ BUILD = 'debug'
PREFIX = 'mips-sde-elf-'
CC = PREFIX + 'gcc'
+CXX = PREFIX + 'g++'
AS = PREFIX + 'gcc'
AR = PREFIX + 'ar'
LINK = PREFIX + 'gcc'
diff --git a/libcpu/mips/common/asm.h b/libcpu/mips/common/asm.h
index 6a5353b803..1b39eea05a 100644
--- a/libcpu/mips/common/asm.h
+++ b/libcpu/mips/common/asm.h
@@ -261,11 +261,7 @@ symbol = value
#define LONG_SRAV srav
#define LONG .word
-#ifdef ARCH_MIPS64
-#define LONGSIZE 8
-#else
#define LONGSIZE 4
-#endif
#define LONGMASK 3
#define LONGLOG 2
diff --git a/libcpu/mips/common/stackframe.h b/libcpu/mips/common/stackframe.h
index 258f9a994f..4f1157aebf 100644
--- a/libcpu/mips/common/stackframe.h
+++ b/libcpu/mips/common/stackframe.h
@@ -22,7 +22,9 @@
#ifdef RT_USING_FPU
/* Ensure CU1 (FPU) is enabled */
MFC0 v1, CP0_STATUS
- ori v1, ST0_CU1
+ lui t1, %hi(ST0_CU1)
+ addiu t1, t1, %lo(ST0_CU1)
+ or v1, v1, t1
MTC0 v1, CP0_STATUS
SSNOP
cfc1 v1, fcr31
@@ -125,11 +127,13 @@
#ifdef RT_USING_FPU
/* Ensure CU1 (FPU) is enabled */
MFC0 v1, CP0_STATUS
- ori v1, ST0_CU1
+ lui t1, %hi(ST0_CU1)
+ addiu t1, t1, %lo(ST0_CU1)
+ or v1, v1, t1
MTC0 v1, CP0_STATUS
SSNOP
LONG_L v1, PT_FPU_FCSR31(sp)
- ctc1 v1, fcsr31
+ ctc1 v1, fcr31
l.d $f0, PT_FPU_R0(sp)
l.d $f2, PT_FPU_R2(sp)
l.d $f4, PT_FPU_R4(sp)