• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#===============================================================================
2# @brief    cmake file
3# Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
4#===============================================================================
5add_subdirectory_if_exist(porting)
6add_subdirectory_if_exist(dyn_mem)
7add_subdirectory_if_exist(boot)
8add_subdirectory_if_exist(test_rom)
9
10if(USE_WS63_ROM_REPO IN_LIST DEFINES)
11add_subdirectory_if_exist(rom)
12endif()
13
14set(COMPONENT_NAME "chip_ws63")
15
16set(SOURCES
17    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31/interrupt.c
18    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31/interrupt_handler.c
19    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31/vectors.s
20    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31/flash_patch.c
21    ${CMAKE_CURRENT_SOURCE_DIR}/interrupt/interrupt_adapter.c
22    ${CMAKE_CURRENT_SOURCE_DIR}/vectors/vectors.c
23)
24
25if(DEFINED OS AND NOT ${OS} STREQUAL "non-os")
26    list(APPEND SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/interrupt/interrupt_os_adapter.c)
27    list(APPEND SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31/oam_trace.c)
28endif()
29
30set(PUBLIC_HEADER
31    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/include
32    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31
33    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv_common
34    ${CMAKE_CURRENT_SOURCE_DIR}/include
35    ${CMAKE_CURRENT_SOURCE_DIR}/vectors
36)
37
38set(PRIVATE_HEADER
39)
40
41set(PRIVATE_DEFINES
42)
43
44set(PUBLIC_DEFINES
45)
46
47# use this when you want to add ccflags like -include xxx
48set(COMPONENT_PUBLIC_CCFLAGS
49)
50
51set(COMPONENT_CCFLAGS
52)
53
54set(WHOLE_LINK
55    true
56)
57
58set(MAIN_COMPONENT
59    false
60)
61
62build_component()
63
64set(COMPONENT_NAME "arch_header")
65
66set(SOURCES
67)
68
69set(PUBLIC_HEADER
70    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv_common
71    ${CMAKE_CURRENT_SOURCE_DIR}/arch/riscv/riscv31
72)
73
74set(PRIVATE_HEADER
75)
76
77set(WHOLE_LINK
78    true
79)
80
81build_component()
82
83set(COMPONENT_NAME "rom_callback")
84
85set(SOURCES
86    ${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/rom_callback.S
87)
88
89if(DEFINED ROM_SYM_PATH)
90    list(APPEND SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/plat_rom_data.c)
91endif()
92
93set(WHOLE_LINK
94    true
95)
96
97set(MAIN_COMPONENT
98    false
99)
100
101if(${BUILD_ROM_CALLBACK} OR rom_callback IN_LIST TARGET_COMPONENT)
102    install_sdk(${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/acore.sym "*")
103    install_sdk(${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/function.lds "*")
104    install_sdk(${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/data.lds "*")
105    install_sdk(${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/rom_data.lds "*")
106    install_sdk(${ROOT_DIR}/interim_binary/ws63/bin/rom_bin "*.bin")
107    install_sdk(${ROOT_DIR}/interim_binary/ws63/bin/boot_bin "*.bin")
108    execute_process(
109        COMMAND ${CP} ${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/function.lds ${CMAKE_BINARY_DIR}
110        COMMAND ${CP} ${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/data.lds ${CMAKE_BINARY_DIR}
111        COMMAND ${CP} ${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/rom_data.lds ${CMAKE_BINARY_DIR}
112    )
113endif()
114
115if(rom_callback IN_LIST TARGET_COMPONENT)
116    include(${CMAKE_CURRENT_SOURCE_DIR}/rom_config/${CORE}/output/rom_callback_wrap.cmake)
117    file(WRITE ${CMAKE_BINARY_DIR}/rom_cb_flag.srp "${CMAKE_CB_FLGAS}")
118    target_link_options(${TARGET_NAME}
119        PRIVATE
120        @${CMAKE_BINARY_DIR}/rom_cb_flag.srp
121    )
122endif()
123
124set(LIB_OUT_PATH ${BIN_DIR}/${CHIP}/libs/rom_info/${TARGET_COMMAND})
125
126build_component()
127