Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
8 changes: 8 additions & 0 deletions bsp/qemu-virt64-aarch64/.config
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@ CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
CONFIG_RT_VER_NUM=0x50001
CONFIG_RT_USING_STDC_ATOMIC=y

#
# RT-Thread Architecture
#
CONFIG_ARCH_CPU_64BIT=y
CONFIG_RT_USING_CACHE=y
# CONFIG_RT_USING_HW_ATOMIC is not set
Expand All @@ -104,6 +108,10 @@ CONFIG_ARCH_MM_MMU=y
CONFIG_ARCH_ARM=y
CONFIG_ARCH_ARM_MMU=y
CONFIG_ARCH_ARMV8=y
CONFIG_ARCH_TEXT_OFFSET=0x80000
CONFIG_ARCH_RAM_OFFSET=0x40000000
CONFIG_ARCH_SECONDARY_CPU_STACK_SIZE=4096
CONFIG_ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS=y

#
# RT-Thread Components
Expand Down
4 changes: 0 additions & 4 deletions bsp/qemu-virt64-aarch64/SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,5 @@ Export('rtconfig')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT)

if GetDepend('RT_USING_SMART'):
# use smart link.lds
env['LINKFLAGS'] = env['LINKFLAGS'].replace('link.lds', 'link_smart.lds')

# make a building
DoBuilding(TARGET, objs)
109 changes: 0 additions & 109 deletions bsp/qemu-virt64-aarch64/link.lds

This file was deleted.

109 changes: 0 additions & 109 deletions bsp/qemu-virt64-aarch64/link_smart.lds

This file was deleted.

7 changes: 7 additions & 0 deletions bsp/qemu-virt64-aarch64/rtconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,19 @@
#define RT_CONSOLE_DEVICE_NAME "uart0"
#define RT_VER_NUM 0x50001
#define RT_USING_STDC_ATOMIC

/* RT-Thread Architecture */

#define ARCH_CPU_64BIT
#define RT_USING_CACHE
#define ARCH_MM_MMU
#define ARCH_ARM
#define ARCH_ARM_MMU
#define ARCH_ARMV8
#define ARCH_TEXT_OFFSET 0x80000
#define ARCH_RAM_OFFSET 0x40000000
#define ARCH_SECONDARY_CPU_STACK_SIZE 4096
#define ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS

/* RT-Thread Components */

Expand Down
4 changes: 3 additions & 1 deletion bsp/qemu-virt64-aarch64/rtconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
PREFIX = os.getenv('RTT_CC_PREFIX') or 'aarch64-none-elf-'
CC = PREFIX + 'gcc'
CXX = PREFIX + 'g++'
CPP = PREFIX + 'cpp'
AS = PREFIX + 'gcc'
AR = PREFIX + 'ar'
LINK = PREFIX + 'gcc'
Expand All @@ -25,10 +26,11 @@
AFPFLAGS = ' '
DEVICE = ' -march=armv8-a -mtune=cortex-a53 -ftree-vectorize -ffast-math -funwind-tables -fno-strict-aliasing'

CPPFLAGS= ' -E -P -x assembler-with-cpp'
CXXFLAGS= DEVICE + CFPFLAGS + ' -Wall -fdiagnostics-color=always'
CFLAGS = DEVICE + CFPFLAGS + ' -Wall -Wno-cpp -std=gnu99 -fdiagnostics-color=always'
AFLAGS = ' -c' + AFPFLAGS + ' -x assembler-with-cpp'
LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,system_vectors -T link.lds' + ' -lsupc++ -lgcc -static'
LFLAGS = DEVICE + ' -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,system_vectors -T link.lds' + ' -lsupc++ -lgcc -static'
CPATH = ''
LPATH = ''

Expand Down
6 changes: 6 additions & 0 deletions libcpu/Kconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
menu "RT-Thread Architecture"

config ARCH_CPU_64BIT
bool

Expand Down Expand Up @@ -231,3 +233,7 @@ config ARCH_HOST_SIMULATOR
config ARCH_CPU_STACK_GROWS_UPWARD
bool
default n

source "$RTT_DIR/libcpu/aarch64/Kconfig"

endmenu
1 change: 1 addition & 0 deletions libcpu/aarch64/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
link.lds
19 changes: 19 additions & 0 deletions libcpu/aarch64/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
if ARCH_ARMV8 && ARCH_CPU_64BIT

config ARCH_TEXT_OFFSET
hex "Text offset"
default 0x200000

config ARCH_RAM_OFFSET
hex "RAM offset"
default 0

config ARCH_SECONDARY_CPU_STACK_SIZE
int "Secondary CPU stack size"
default 4096

config ARCH_HAVE_EFFICIENT_UNALIGNED_ACCESS
bool
default y

endif
5 changes: 5 additions & 0 deletions libcpu/aarch64/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ Import('rtconfig')
cwd = GetCurrentDir()
group = []
list = os.listdir(cwd)
bsp_path = Dir('#').abspath

if not os.path.exists(bsp_path + "/link.lds"):
Env['LINKFLAGS'] = Env['LINKFLAGS'].replace('link.lds', cwd + "/link.lds")
Preprocessing("link.lds.S", ".lds", CPPPATH=[bsp_path])

# add common code files
group = group + SConscript(os.path.join('common', 'SConscript'))
Expand Down
4 changes: 2 additions & 2 deletions libcpu/aarch64/common/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,8 +777,8 @@ void rt_hw_mem_setup_early(unsigned long *tbl0, unsigned long *tbl1,
#ifdef RT_USING_SMART
unsigned long va = KERNEL_VADDR_START;
#else
extern unsigned char __start;
unsigned long va = (unsigned long) &__start;
extern unsigned char _start;
unsigned long va = (unsigned long) &_start;
va = RT_ALIGN_DOWN(va, 0x200000);
#endif

Expand Down
Loading