| # Copyright Google LLC 2023 |
| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| load( |
| "//rules:matcha.bzl", |
| "ASIC_CORE_TARGETS", |
| "NEXUS_CORE_TARGETS", |
| "sec_flash_binary", |
| "smc_flash_binary", |
| ) |
| |
| # At the moment, this is only set up to run on the fpga_nexus target. |
| sec_flash_binary( |
| name = "hps_demo", |
| srcs = [ |
| "hps_demo_sc.c", |
| ], |
| copts = [ |
| "-nostdlib", |
| "-ffreestanding", |
| ], |
| per_device_deps = { |
| "fpga_nexus": [NEXUS_CORE_TARGETS.get("secure_core")], |
| "asic": [ASIC_CORE_TARGETS.get("secure_core")], |
| }, |
| deps = [ |
| ":hps_demo_smc_h", |
| "//hw/top_matcha/ip/ml_top/data:ml_top_regs", |
| "//sw/device/lib/dif:rv_plic_sec", |
| "//sw/device/lib/dif:smc_ctrl", |
| "//sw/device/lib/dif:tlul_mailbox", |
| "//sw/device/lib/spi_to_host", |
| "//sw/device/tests:test_lib", |
| ], |
| ) |
| |
| smc_flash_binary( |
| name = "hps_demo_smc", |
| srcs = [ |
| "hps_demo_smc.c", |
| "//sw/device/examples/testdata:kelvin_model_ml_bin.h", |
| ], |
| copts = [ |
| "-nostdlib", |
| "-ffreestanding", |
| ], |
| per_device_deps = { |
| "fpga_nexus": [NEXUS_CORE_TARGETS.get("smc")], |
| "asic": [ASIC_CORE_TARGETS.get("smc")], |
| }, |
| deps = [ |
| "//hw/top_matcha/ip/ml_top/data:ml_top_regs", |
| "//sw/device/lib:camera_hm01b0", |
| "//sw/device/lib/dif:isp_wrapper", |
| "//sw/device/lib/dif:ml_top", |
| "//sw/device/lib/dif:rv_plic_smc", |
| "//sw/device/lib/spi_display", |
| "//sw/device/tests:test_lib_smc", |
| "@lowrisc_opentitan//sw/device/lib/dif:rv_timer", |
| ], |
| ) |
| |
| cc_library( |
| name = "hps_demo_smc_h", |
| hdrs = select({ |
| "//rules:sparrow_platform": [ |
| "hps_demo_smc_asic_bin_c.h", |
| ], |
| "//conditions:default": [ |
| "hps_demo_smc_fpga_nexus_bin_c.h", |
| ], |
| }), |
| ) |