1d6aed566Sopenharmony_ci#Copyright (c) 2020-2021 Huawei Device Co., Ltd.
2d6aed566Sopenharmony_ci#Licensed under the Apache License, Version 2.0 (the "License");
3d6aed566Sopenharmony_ci#you may not use this file except in compliance with the License.
4d6aed566Sopenharmony_ci#You may obtain a copy of the License at
5d6aed566Sopenharmony_ci#
6d6aed566Sopenharmony_ci#    http://www.apache.org/licenses/LICENSE-2.0
7d6aed566Sopenharmony_ci#
8d6aed566Sopenharmony_ci#Unless required by applicable law or agreed to in writing, software
9d6aed566Sopenharmony_ci#distributed under the License is distributed on an "AS IS" BASIS,
10d6aed566Sopenharmony_ci#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11d6aed566Sopenharmony_ci#See the License for the specific language governing permissions and
12d6aed566Sopenharmony_ci#limitations under the License.
13d6aed566Sopenharmony_ci
14d6aed566Sopenharmony_ci# Kernel type, e.g. "linux", "liteos_a", "liteos_m".
15d6aed566Sopenharmony_cikernel_type = "liteos_m"
16d6aed566Sopenharmony_ci
17d6aed566Sopenharmony_ci# Kernel version.
18d6aed566Sopenharmony_cikernel_version = "3.0.0"
19d6aed566Sopenharmony_ci
20d6aed566Sopenharmony_ci# Board CPU type, for example: "cortex-a7", "riscv32".
21d6aed566Sopenharmony_ciboard_cpu = ""
22d6aed566Sopenharmony_ci
23d6aed566Sopenharmony_ci# Board arch, for example: "armv7-a", "rv32imc".
24d6aed566Sopenharmony_ciboard_arch = "rv32imac"
25d6aed566Sopenharmony_ci
26d6aed566Sopenharmony_ci# Toolchain used for system compiling.
27d6aed566Sopenharmony_ci# For example: gcc-arm-none-eabi, arm-linux-ohoseabi-gcc, ohos-clang,  riscv32-unknown-elf.
28d6aed566Sopenharmony_ci# Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toolchain.
29d6aed566Sopenharmony_ciboard_toolchain = "riscv32-unknown-elf"
30d6aed566Sopenharmony_ci
31d6aed566Sopenharmony_ci#board_toolchain = "riscv-none-embed"
32d6aed566Sopenharmony_ci
33d6aed566Sopenharmony_ci# The path which toolchain installed, it's not mandatory if toolchain path has been added to your ~/.bashrc.
34d6aed566Sopenharmony_ciboard_toolchain_path = ""
35d6aed566Sopenharmony_ci
36d6aed566Sopenharmony_ci# Compiler prefix.
37d6aed566Sopenharmony_ciboard_toolchain_prefix = "riscv32-unknown-elf-"
38d6aed566Sopenharmony_ci
39d6aed566Sopenharmony_ci#board_toolchain_prefix = "riscv-none-embed-"
40d6aed566Sopenharmony_ci
41d6aed566Sopenharmony_ci# Compiler type, "gcc" or "clang".
42d6aed566Sopenharmony_ciboard_toolchain_type = "gcc"
43d6aed566Sopenharmony_ci
44d6aed566Sopenharmony_ci# config.json parse
45d6aed566Sopenharmony_ciif (product_path != "") {
46d6aed566Sopenharmony_ci  product_conf = read_file("${product_path}/config.json", "json")
47d6aed566Sopenharmony_ci  force_link_libs = product_conf.force_link_libs
48d6aed566Sopenharmony_ci}
49d6aed566Sopenharmony_ci
50d6aed566Sopenharmony_ci#Debug compiler optimization level options
51d6aed566Sopenharmony_ciboard_opt_flags = []
52d6aed566Sopenharmony_ci
53d6aed566Sopenharmony_ci# Board related common compile flags.
54d6aed566Sopenharmony_ciboard_cflags = [
55d6aed566Sopenharmony_ci  "-mabi=ilp32",
56d6aed566Sopenharmony_ci  "-falign-functions=2",
57d6aed566Sopenharmony_ci  "-msave-restore",
58d6aed566Sopenharmony_ci  "-fno-optimize-strlen",
59d6aed566Sopenharmony_ci  "-freorder-blocks-algorithm=simple",
60d6aed566Sopenharmony_ci  "-fno-schedule-insns",
61d6aed566Sopenharmony_ci  "-fno-inline-small-functions",
62d6aed566Sopenharmony_ci  "-fno-inline-functions-called-once",
63d6aed566Sopenharmony_ci  "-mtune=size",
64d6aed566Sopenharmony_ci  "-mno-small-data-limit=0",
65d6aed566Sopenharmony_ci  "-fno-aggressive-loop-optimizations",
66d6aed566Sopenharmony_ci  "-Wpointer-arith",
67d6aed566Sopenharmony_ci  "-ffunction-sections",
68d6aed566Sopenharmony_ci  "-fdata-sections",
69d6aed566Sopenharmony_ci  "-fno-short-enums",
70d6aed566Sopenharmony_ci  "-fno-builtin",
71d6aed566Sopenharmony_ci  "-O2",
72d6aed566Sopenharmony_ci  "-static",
73d6aed566Sopenharmony_ci  "-fno-common",
74d6aed566Sopenharmony_ci  "-fno-stack-protector",
75d6aed566Sopenharmony_ci  "-fno-omit-frame-pointer",
76d6aed566Sopenharmony_ci  "-Wno-format-truncation",
77d6aed566Sopenharmony_ci  "-D__RISC_V__",
78d6aed566Sopenharmony_ci  "-D__LITEOS_M__",
79d6aed566Sopenharmony_ci  "-DLWIP_SUPPORT_CUSTOM_PBUF=1",
80d6aed566Sopenharmony_ci  "-D_BSD_SOURCE",
81d6aed566Sopenharmony_ci  "-Wformat=0",
82d6aed566Sopenharmony_ci  "-DLOSCFG_BASE_CORE_HILOG",
83d6aed566Sopenharmony_ci]
84d6aed566Sopenharmony_ci
85d6aed566Sopenharmony_ciboard_cflags += board_opt_flags
86d6aed566Sopenharmony_ci
87d6aed566Sopenharmony_ciboard_asmflags = [
88d6aed566Sopenharmony_ci  "-march=rv32imac",
89d6aed566Sopenharmony_ci  "-mabi=ilp32",
90d6aed566Sopenharmony_ci  "-static",
91d6aed566Sopenharmony_ci  "-O2",
92d6aed566Sopenharmony_ci]
93d6aed566Sopenharmony_ciboard_asmflags += board_opt_flags
94d6aed566Sopenharmony_ciboard_cxx_flags = board_cflags
95d6aed566Sopenharmony_ciboard_ld_flags = []
96d6aed566Sopenharmony_ciboard_ld_flags += [
97d6aed566Sopenharmony_ci  "-Wl,--wrap=_free_r",
98d6aed566Sopenharmony_ci  "-Wl,--wrap,_malloc_usable_size_r",
99d6aed566Sopenharmony_ci  "-Wl,--wrap,_malloc_r",
100d6aed566Sopenharmony_ci  "-Wl,--wrap,_memalign_r",
101d6aed566Sopenharmony_ci  "-Wl,--wrap,_realloc_r",
102d6aed566Sopenharmony_ci  "-Wl,--wrap,_calloc_r",
103d6aed566Sopenharmony_ci  "-Wl,--wrap=printf",
104d6aed566Sopenharmony_ci]
105d6aed566Sopenharmony_ci
106d6aed566Sopenharmony_ci# Board related headfiles search path.
107d6aed566Sopenharmony_ciboard_include_dirs = [ "//commonlibrary/utils_lite/include" ]
108d6aed566Sopenharmony_ci
109d6aed566Sopenharmony_ci# Board adapter dir for OHOS components.
110d6aed566Sopenharmony_ciboard_adapter_dir = "//device/qemu/riscv32_virt/driver"
111d6aed566Sopenharmony_ci
112d6aed566Sopenharmony_ci# Sysroot path.
113d6aed566Sopenharmony_ciboard_configed_sysroot = ""
114d6aed566Sopenharmony_ci
115d6aed566Sopenharmony_ci# Board storage type, it used for file system generation.
116d6aed566Sopenharmony_cistorage_type = ""
117