Compare commits
4 Commits
develop
...
3389875643
Author | SHA1 | Date | |
---|---|---|---|
3389875643 | |||
4d25972e4d | |||
e051cf180e | |||
ab2b7214fe |
7
env/TGCP/init.c
vendored
7
env/TGCP/init.c
vendored
@ -110,12 +110,13 @@ void _fini()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int is_uart_ready(int uart_id){
|
int is_uart_ready(int uart_id){
|
||||||
return 1;
|
return !UART0_REG(UART_REG_TXFIFO) & 0x80000000;
|
||||||
}
|
}
|
||||||
int try_write_uart_char(int uart_id, char c){
|
int try_write_uart_char(int uart_id, char c){
|
||||||
*((char*)0x10000000) = c;
|
if(UART0_REG(UART_REG_TXFIFO) & 0x80000000) return 0;
|
||||||
|
UART0_REG(UART_REG_TXFIFO) = c;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
void write_uart_char(int uart_id, char c){
|
void write_uart_char(int uart_id, char c){
|
||||||
*((char*)0x10000000) = c;
|
UART0_REG(UART_REG_TXFIFO) = c;
|
||||||
}
|
}
|
||||||
|
13
env/TGCP/platform.h
vendored
13
env/TGCP/platform.h
vendored
@ -7,7 +7,18 @@
|
|||||||
#define MCAUSE_INT 0x80000000
|
#define MCAUSE_INT 0x80000000
|
||||||
#define MCAUSE_CAUSE 0x7FFFFFFF
|
#define MCAUSE_CAUSE 0x7FFFFFFF
|
||||||
|
|
||||||
#include "bits.h"
|
#define UART0_BASE_ADDR 0xffff0000ULL
|
||||||
|
|
||||||
|
#define UART_REG_TXFIFO 0x00
|
||||||
|
#define UART_REG_RXFIFO 0x04
|
||||||
|
#define UART_REG_TXCTRL 0x08
|
||||||
|
#define UART_REG_RXCTRL 0x0c
|
||||||
|
#define UART_REG_IE 0x10
|
||||||
|
#define UART_REG_IP 0x14
|
||||||
|
#define UART_REG_DIV 0x18
|
||||||
|
#define UART_TXEN 0x1
|
||||||
|
|
||||||
|
#define UART0_REG(ADDR) *((volatile uint32_t*) (UART0_BASE_ADDR + ADDR))
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Platform definitions
|
* Platform definitions
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
2
env/common-gcc.mk
vendored
2
env/common-gcc.mk
vendored
@ -2,6 +2,7 @@ ifndef _MK_COMMON
|
|||||||
_MK_COMMON := # defined
|
_MK_COMMON := # defined
|
||||||
|
|
||||||
TL_TARGET?=all
|
TL_TARGET?=all
|
||||||
|
BOARD?=iss
|
||||||
|
|
||||||
.PHONY: $(TL_TARGET)
|
.PHONY: $(TL_TARGET)
|
||||||
$(TL_TARGET): $(TARGET)
|
$(TL_TARGET): $(TARGET)
|
||||||
@ -12,7 +13,6 @@ PLATFORM_DIR = $(ENV_DIR)/$(BOARD)
|
|||||||
|
|
||||||
include $(BSP_BASE)/libwrap/libwrap.mk
|
include $(BSP_BASE)/libwrap/libwrap.mk
|
||||||
|
|
||||||
BOARD?=iss
|
|
||||||
|
|
||||||
ASM_SRCS += $(ENV_DIR)/start.S $(ENV_DIR)/entry.S
|
ASM_SRCS += $(ENV_DIR)/start.S $(ENV_DIR)/entry.S
|
||||||
C_SRCS += $(PLATFORM_DIR)/init.c
|
C_SRCS += $(PLATFORM_DIR)/init.c
|
||||||
|
4
env/entry.S
vendored
4
env/entry.S
vendored
@ -10,7 +10,7 @@
|
|||||||
.align 2
|
.align 2
|
||||||
.global trap_entry
|
.global trap_entry
|
||||||
trap_entry:
|
trap_entry:
|
||||||
#ifndef __riscv_abi_rve
|
#ifdef __riscv_abi_rve
|
||||||
addi sp, sp, -8*REGBYTES
|
addi sp, sp, -8*REGBYTES
|
||||||
STORE x1, 1*REGBYTES(sp) // ra
|
STORE x1, 1*REGBYTES(sp) // ra
|
||||||
STORE x5, 2*REGBYTES(sp) // t0
|
STORE x5, 2*REGBYTES(sp) // t0
|
||||||
@ -43,7 +43,7 @@ trap_entry:
|
|||||||
mv a2, sp
|
mv a2, sp
|
||||||
call handle_trap
|
call handle_trap
|
||||||
csrw mepc, a0
|
csrw mepc, a0
|
||||||
#ifndef __riscv_abi_rve
|
#ifdef __riscv_abi_rve
|
||||||
addi sp, sp, -8*REGBYTES
|
addi sp, sp, -8*REGBYTES
|
||||||
LOAD x1, 1*REGBYTES(sp) // ra
|
LOAD x1, 1*REGBYTES(sp) // ra
|
||||||
LOAD x5, 2*REGBYTES(sp) // t0
|
LOAD x5, 2*REGBYTES(sp) // t0
|
||||||
|
@ -22,8 +22,6 @@ ssize_t __wrap_write(int fd, const void* ptr, size_t len)
|
|||||||
}
|
}
|
||||||
#elif defined(BOARD_iss)
|
#elif defined(BOARD_iss)
|
||||||
*((uint32_t*) 0xFFFF0000) = current[jj];
|
*((uint32_t*) 0xFFFF0000) = current[jj];
|
||||||
#elif defined(BOARD_TGCP)
|
|
||||||
//TODO: implement
|
|
||||||
#else
|
#else
|
||||||
while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
|
while (UART0_REG(UART_REG_TXFIFO) & 0x80000000) ;
|
||||||
UART0_REG(UART_REG_TXFIFO) = current[jj];
|
UART0_REG(UART_REG_TXFIFO) = current[jj];
|
||||||
|
Reference in New Issue
Block a user