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