| # 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 |