Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bsp/ls2kdev/SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions bsp/ls2kdev/drivers/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion bsp/ls2kdev/drivers/drv_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 4 additions & 0 deletions bsp/ls2kdev/drivers/drv_rtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -176,3 +178,5 @@ int rt_hw_rtc_init(void)
}

INIT_DEVICE_EXPORT(rt_hw_rtc_init);

#endif /*RT_USING_RTC*/
19 changes: 19 additions & 0 deletions bsp/ls2kdev/ls2k_ram.lds
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,25 @@ 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);
Expand Down
1 change: 1 addition & 0 deletions bsp/ls2kdev/rtconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

PREFIX = 'mips-sde-elf-'
CC = PREFIX + 'gcc'
CXX = PREFIX + 'g++'
AS = PREFIX + 'gcc'
AR = PREFIX + 'ar'
LINK = PREFIX + 'gcc'
Expand Down
4 changes: 0 additions & 4 deletions libcpu/mips/common/asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
10 changes: 7 additions & 3 deletions libcpu/mips/common/stackframe.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down