| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| filegroup( |
| name = "config", |
| srcs = glob(["src/app/config/*.json"]), |
| ) |
| |
| rust_library( |
| name = "opentitanlib", |
| srcs = [ |
| "src/app/command.rs", |
| "src/app/config/mod.rs", |
| "src/app/config/structs.rs", |
| "src/app/mod.rs", |
| "src/backend/cw310.rs", |
| "src/backend/hyperdebug.rs", |
| "src/backend/mod.rs", |
| "src/backend/proxy.rs", |
| "src/backend/ti50emulator.rs", |
| "src/backend/ultradebug.rs", |
| "src/backend/verilator.rs", |
| "src/bootstrap/eeprom.rs", |
| "src/bootstrap/legacy.rs", |
| "src/bootstrap/mod.rs", |
| "src/bootstrap/primitive.rs", |
| "src/bootstrap/rescue.rs", |
| "src/crypto/mod.rs", |
| "src/crypto/rsa.rs", |
| "src/crypto/sha256.rs", |
| "src/image/image.rs", |
| "src/image/manifest.rs", |
| "src/image/manifest_def.rs", |
| "src/image/mod.rs", |
| "src/io/emu.rs", |
| "src/io/gpio.rs", |
| "src/io/i2c.rs", |
| "src/io/mod.rs", |
| "src/io/spi.rs", |
| "src/io/uart.rs", |
| "src/lib.rs", |
| "src/otp/lc_state.rs", |
| "src/otp/mod.rs", |
| "src/otp/otp.rs", |
| "src/otp/otp_img.rs", |
| "src/otp/otp_mmap.rs", |
| "src/otp/vmem_serialize.rs", |
| "src/proxy/errors.rs", |
| "src/proxy/handler.rs", |
| "src/proxy/mod.rs", |
| "src/proxy/protocol.rs", |
| "src/proxy/socket_server.rs", |
| "src/spiflash/flash.rs", |
| "src/spiflash/mod.rs", |
| "src/spiflash/sfdp.rs", |
| "src/test_utils/bootstrap.rs", |
| "src/test_utils/init.rs", |
| "src/test_utils/load_bitstream.rs", |
| "src/test_utils/mod.rs", |
| "src/test_utils/status.rs", |
| "src/transport/common/mod.rs", |
| "src/transport/common/uart.rs", |
| "src/transport/cw310/gpio.rs", |
| "src/transport/cw310/mod.rs", |
| "src/transport/cw310/spi.rs", |
| "src/transport/cw310/usb.rs", |
| "src/transport/errors.rs", |
| "src/transport/hyperdebug/c2d2.rs", |
| "src/transport/hyperdebug/gpio.rs", |
| "src/transport/hyperdebug/i2c.rs", |
| "src/transport/hyperdebug/mod.rs", |
| "src/transport/hyperdebug/spi.rs", |
| "src/transport/mod.rs", |
| "src/transport/proxy/emu.rs", |
| "src/transport/proxy/gpio.rs", |
| "src/transport/proxy/i2c.rs", |
| "src/transport/proxy/mod.rs", |
| "src/transport/proxy/spi.rs", |
| "src/transport/proxy/uart.rs", |
| "src/transport/ti50emulator/emu.rs", |
| "src/transport/ti50emulator/gpio.rs", |
| "src/transport/ti50emulator/i2c.rs", |
| "src/transport/ti50emulator/mod.rs", |
| "src/transport/ti50emulator/spi.rs", |
| "src/transport/ti50emulator/uart.rs", |
| "src/transport/ultradebug/gpio.rs", |
| "src/transport/ultradebug/mod.rs", |
| "src/transport/ultradebug/mpsse.rs", |
| "src/transport/ultradebug/spi.rs", |
| "src/transport/ultradebug/uart.rs", |
| "src/transport/verilator/mod.rs", |
| "src/transport/verilator/stdout.rs", |
| "src/transport/verilator/subprocess.rs", |
| "src/transport/verilator/transport.rs", |
| "src/transport/verilator/uart.rs", |
| "src/uart/console.rs", |
| "src/uart/mod.rs", |
| "src/util/bigint.rs", |
| "src/util/bitfield.rs", |
| "src/util/file.rs", |
| "src/util/mod.rs", |
| "src/util/num_de.rs", |
| "src/util/parse_int.rs", |
| "src/util/present.rs", |
| "src/util/rom_detect.rs", |
| "src/util/usb.rs", |
| "src/util/voltage.rs", |
| ], |
| compile_data = [ |
| ":config", |
| ], |
| proc_macro_deps = [ |
| "//sw/host/opentitanlib/opentitantool_derive", |
| ], |
| deps = [ |
| "//third_party/rust/crates:anyhow", |
| "//third_party/rust/crates:bitflags", |
| "//third_party/rust/crates:byteorder", |
| "//third_party/rust/crates:deser_hjson", |
| "//third_party/rust/crates:directories", |
| "//third_party/rust/crates:env_logger", |
| "//third_party/rust/crates:erased_serde", |
| "//third_party/rust/crates:hex", |
| "//third_party/rust/crates:humantime", |
| "//third_party/rust/crates:indicatif", |
| "//third_party/rust/crates:lazy_static", |
| "//third_party/rust/crates:log", |
| "//third_party/rust/crates:memoffset", |
| "//third_party/rust/crates:mio", |
| "//third_party/rust/crates:mio_signals", |
| "//third_party/rust/crates:nix", |
| "//third_party/rust/crates:num_bigint_dig", |
| "//third_party/rust/crates:num_enum", |
| "//third_party/rust/crates:num_traits", |
| "//third_party/rust/crates:rand", |
| "//third_party/rust/crates:raw_tty", |
| "//third_party/rust/crates:regex", |
| "//third_party/rust/crates:rsa", |
| "//third_party/rust/crates:rusb", |
| "//third_party/rust/crates:serde", |
| "//third_party/rust/crates:serde_json", |
| "//third_party/rust/crates:serialport", |
| "//third_party/rust/crates:sha2", |
| "//third_party/rust/crates:shellwords", |
| "//third_party/rust/crates:structopt", |
| "//third_party/rust/crates:thiserror", |
| "//third_party/rust/crates:typetag", |
| "//third_party/rust/crates:zerocopy", |
| "@safe_ftdi", |
| ], |
| ) |
| |
| rust_test( |
| name = "opentitanlib_test", |
| compile_data = [ |
| "src/bootstrap/simple.bin", |
| "src/spiflash/SFDP_MX66L1G.bin", |
| ], |
| crate = ":opentitanlib", |
| data = [ |
| "src/image/testdata/hello.txt", |
| "src/image/testdata/manifest.hjson", |
| "src/image/testdata/manifest_missing.hjson", |
| "src/image/testdata/test_image.bin", |
| "src/image/testdata/world.txt", |
| "src/otp/testdata/lc_ctrl_state.hjson", |
| "src/otp/testdata/otp_ctrl_img_dev.hjson", |
| "src/otp/testdata/otp_ctrl_mmap.hjson", |
| "src/otp/testdata/output.vmem", |
| ], |
| ) |