#!/bin/bash
#
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

source "${ROOTDIR}/build/platforms/sencha/setup.sh"

# The following files are the input to regtool.py
export FLASH_CTRL_HJSON="${ROOTDIR}/hw/opentitan-upstream/hw/ip/flash_ctrl/data/flash_ctrl.hjson"
export OTP_CTRL_HJSON="${ROOTDIR}/hw/opentitan-upstream/hw/ip/otp_ctrl/data/otp_ctrl.hjson"
export SPI_HOST_HJSON="${ROOTDIR}/hw/opentitan-upstream/hw/ip/spi_host/data/spi_host.hjson"

# Firmware image to build & load at boot.
# NB: the pathname to the source directory is formulated in platform.mk
export CHERIOT_FIRMWARE="soundstream"

# Location of opentitantool used to sign firmware images
export OT_TOOL="${ROOTDIR}/out/host/opentitantool"
