mirror of
https://review.coreboot.org/flashrom.git
synced 2025-10-27 19:32:11 +01:00
Add initial support for System Management Agent (SMA) programmer. SMA is a SOC which is working as a side band management on Nvidia server board. One of its functionality is to flash firmware to other components. Test: 1. Build flashrom with this change. 2. Run operation: erase, write, read 3. All operations completed with expected performance. NV_SMA_SPI has been tested with the following SPI flash models: w25r128jw w25r64jv w25q16v Change-Id: I6b2522788db3dcee2b30faff29f605cede8c0eaf Co-Developed-by: Gilbert Chen <gilbertc@nvidia.com> Co-Developed-by: Willie Thai <wthai@nvidia.com> Signed-off-by: Willie Thai <wthai@nvidia.com> Signed-off-by: Gilbert Chen <gilbertc@nvidia.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/88816 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Peter Marheine <pmarheine@chromium.org> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
54 lines
1.6 KiB
Bash
Executable File
54 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
set -e
|
|
|
|
# This script will only work on Linux with all dependencies installed.
|
|
|
|
is_scan_build_env=0
|
|
|
|
meson_programmer_opts="all auto group_ftdi group_i2c group_jlink group_pci group_serial group_usb \
|
|
atahpt atapromise atavia buspirate_spi ch341a_spi ch347_spi dediprog \
|
|
developerbox_spi digilent_spi dirtyjtag_spi drkaiser dummy ft2232_spi \
|
|
gfxnvidia internal it8212 jlink_spi linux_mtd linux_spi parade_lspcon \
|
|
mediatek_i2c_spi mstarddc_spi nic3com nicintel nicintel_eeprom nicintel_spi \
|
|
nicnatsemi nicrealtek nv_sma_spi ogp_spi pickit2_spi pony_spi raiden_debug_spi rayer_spi \
|
|
realtek_mst_i2c_spi satamv satasii serprog spidriver stlinkv3_spi usbblaster_spi\
|
|
asm106x"
|
|
|
|
|
|
if [ "$(basename "${CC}")" = "ccc-analyzer" ] || [ -n "${COVERITY_OUTPUT}" ]; then
|
|
is_scan_build_env=1
|
|
fi
|
|
|
|
|
|
run_linter() {
|
|
./util/lint/lint-extended-020-signed-off-by
|
|
}
|
|
|
|
|
|
build_meson () {
|
|
build_dir=out
|
|
meson_opts="-Dtests=enabled -Drpmc=enabled -Dman-pages=enabled -Ddocumentation=enabled -Dgenerate_authors_list=enabled"
|
|
ninja_opts="-j $(nproc)"
|
|
|
|
rm -rf ${build_dir}
|
|
|
|
for programmer in ${meson_programmer_opts}; do
|
|
programmer_dir="${build_dir}/${programmer}"
|
|
|
|
# In case of clang analyzer we don't want to run it on
|
|
# each programmer individually. Thus, just return here.
|
|
if [ ${is_scan_build_env} -eq 1 ] && [ "${programmer}" != "all" ]; then
|
|
return
|
|
fi
|
|
|
|
meson setup ${programmer_dir} ${meson_opts} -Dprogrammer=${programmer}
|
|
ninja ${ninja_opts} -C ${programmer_dir}
|
|
ninja ${ninja_opts} -C ${programmer_dir} test
|
|
done
|
|
}
|
|
|
|
|
|
run_linter
|
|
|
|
build_meson
|