blob: 84ac50bf72f55967892f6c61b5ddc052de667c52 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
subdir('lib')
# Dictionary for SCA programs.
sca_programs = {
# 'program_name': {
# 'dependency': dependency_name,
# },
}
aes_serial = declare_dependency(
sources: ['aes_serial.c'],
dependencies: [
sw_lib_dif_aes,
],
)
sca_programs += {
'aes_serial': {
'dependency': aes_serial,
},
}
sha3_serial = declare_dependency(
sources: [
'sha3_serial.c',
hw_ip_kmac_reg_h,
],
dependencies: [
sw_lib_dif_kmac,
],
)
sca_programs += {
'sha3_serial': {
'dependency': sha3_serial,
},
}
foreach sca_program_name, sca_program_info: sca_programs
foreach device_name, device_lib : sw_lib_arch_core_devices
sca_program_elf = executable(
'@0@_@1@'.format(sca_program_name, device_name),
name_suffix: 'elf',
dependencies: [
device_lib,
riscv_crt,
sw_lib_mmio,
sw_lib_runtime_hart,
sw_lib_runtime_log,
sw_sca_lib_prng,
sw_sca_lib_sca,
sw_sca_lib_simple_serial,
sca_program_info['dependency'],
]
)
target_name = sca_program_name + '_@0@_' + device_name
sca_program_dis = custom_target(
target_name.format('dis'),
input: sca_program_elf,
kwargs: elf_to_dis_custom_target_args,
)
sca_program_bin = custom_target(
target_name.format('bin'),
input: sca_program_elf,
kwargs: elf_to_bin_custom_target_args,
)
sca_program_vmem32 = custom_target(
target_name.format('vmem32'),
input: sca_program_bin,
kwargs: bin_to_vmem32_custom_target_args,
)
sca_program_vmem64 = custom_target(
target_name.format('vmem64'),
input: sca_program_bin,
kwargs: bin_to_vmem64_custom_target_args,
)
custom_target(
target_name.format('export'),
command: export_target_command,
depend_files: [export_target_depend_files,],
input: [
sca_program_elf,
sca_program_dis,
sca_program_bin,
sca_program_vmem32,
sca_program_vmem64,
],
output: target_name.format('export'),
build_always_stale: true,
build_by_default: true,
)
endforeach
endforeach