mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00

This is a SPI hardware interface with a display (https://spidriver.com/), connected as an FT230X USB serial device at a fixed baud rate of 460800. Firmware: https://github.com/jamesbowman/spidriver Protocol: https://github.com/jamesbowman/spidriver/blob/master/protocol.md Most of the implementation is copied from the Bus Pirate programmer. Tested with a SPIDriver v2 by reading FM25Q128A flash memory on Linux. Change-Id: I07b23c1146d4ad3606b54a1e8dc8030cf4ebf57b Signed-off-by: Simon Arlott <flashrom@octiron.net> Reviewed-on: https://review.coreboot.org/c/flashrom/+/86411 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Peter Marheine <pmarheine@chromium.org> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
142 lines
3.8 KiB
Meson
142 lines
3.8 KiB
Meson
# This file is part of the flashrom project.
|
|
#
|
|
# Copyright 2020 Google LLC
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; version 2 of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
test_srcs = files(
|
|
'io_mock.c',
|
|
'tests.c',
|
|
'libusb_wraps.c',
|
|
'helpers.c',
|
|
'flashrom.c',
|
|
'spi25.c',
|
|
'lifecycle.c',
|
|
'layout.c',
|
|
'chip.c',
|
|
'chip_wp.c',
|
|
'selfcheck.c',
|
|
'io_real.c',
|
|
'erase_func_algo.c',
|
|
'udelay.c',
|
|
)
|
|
|
|
if not programmer.get('dummy').get('active')
|
|
test_srcs += programmer.get('dummy').get('srcs')
|
|
endif
|
|
|
|
foreach p_name, p_data : programmer
|
|
test_srcs += p_data.get('test_srcs')
|
|
endforeach
|
|
|
|
mocks = [
|
|
'-Wl,--wrap=strdup',
|
|
'-Wl,--wrap=physunmap',
|
|
'-Wl,--wrap=physmap',
|
|
'-Wl,--wrap=pcidev_init',
|
|
'-Wl,--wrap=pcidev_readbar',
|
|
'-Wl,--wrap=spi_send_command',
|
|
'-Wl,--wrap=sio_write',
|
|
'-Wl,--wrap=sio_read',
|
|
'-Wl,--wrap=open',
|
|
'-Wl,--wrap=open64',
|
|
'-Wl,--wrap=__open64_2',
|
|
'-Wl,--wrap=fcntl',
|
|
'-Wl,--wrap=fcntl64',
|
|
'-Wl,--wrap=ioctl',
|
|
'-Wl,--wrap=read',
|
|
'-Wl,--wrap=write',
|
|
'-Wl,--wrap=fopen',
|
|
'-Wl,--wrap=fopen64',
|
|
'-Wl,--wrap=fdopen',
|
|
'-Wl,--wrap=fwrite',
|
|
'-Wl,--wrap=fflush',
|
|
'-Wl,--wrap=stat',
|
|
'-Wl,--wrap=stat64',
|
|
'-Wl,--wrap=__xstat',
|
|
'-Wl,--wrap=__xstat64',
|
|
'-Wl,--wrap=fstat',
|
|
'-Wl,--wrap=fstat64',
|
|
'-Wl,--wrap=__fstat50',
|
|
'-Wl,--wrap=__fxstat',
|
|
'-Wl,--wrap=__fxstat64',
|
|
'-Wl,--wrap=fileno',
|
|
'-Wl,--wrap=fsync',
|
|
'-Wl,--wrap=fread',
|
|
'-Wl,--wrap=fgets',
|
|
'-Wl,--wrap=fprintf',
|
|
'-Wl,--wrap=fclose',
|
|
'-Wl,--wrap=feof',
|
|
'-Wl,--wrap=ferror',
|
|
'-Wl,--wrap=clearerr',
|
|
'-Wl,--wrap=setvbuf',
|
|
'-Wl,--wrap=rget_io_perms',
|
|
'-Wl,--wrap=OUTB',
|
|
'-Wl,--wrap=INB',
|
|
'-Wl,--wrap=OUTW',
|
|
'-Wl,--wrap=INW',
|
|
'-Wl,--wrap=OUTL',
|
|
'-Wl,--wrap=INL',
|
|
'-Wl,--wrap=tcgetattr',
|
|
'-Wl,--wrap=tcsetattr',
|
|
'-Wl,--wrap=usb_dev_get_by_vid_pid_number',
|
|
'-Wl,--wrap=libusb_init',
|
|
'-Wl,--wrap=libusb_set_debug',
|
|
'-Wl,--wrap=libusb_set_option',
|
|
'-Wl,--wrap=libusb_open',
|
|
'-Wl,--wrap=libusb_set_auto_detach_kernel_driver',
|
|
'-Wl,--wrap=libusb_detach_kernel_driver',
|
|
'-Wl,--wrap=libusb_attach_kernel_driver',
|
|
'-Wl,--wrap=libusb_open_device_with_vid_pid',
|
|
'-Wl,--wrap=libusb_get_device',
|
|
'-Wl,--wrap=libusb_get_device_list',
|
|
'-Wl,--wrap=libusb_free_device_list',
|
|
'-Wl,--wrap=libusb_get_bus_number',
|
|
'-Wl,--wrap=libusb_get_device_address',
|
|
'-Wl,--wrap=libusb_get_device_descriptor',
|
|
'-Wl,--wrap=libusb_get_config_descriptor',
|
|
'-Wl,--wrap=libusb_free_config_descriptor',
|
|
'-Wl,--wrap=libusb_get_configuration',
|
|
'-Wl,--wrap=libusb_set_configuration',
|
|
'-Wl,--wrap=libusb_claim_interface',
|
|
'-Wl,--wrap=libusb_control_transfer',
|
|
'-Wl,--wrap=libusb_release_interface',
|
|
'-Wl,--wrap=libusb_ref_device',
|
|
'-Wl,--wrap=libusb_unref_device',
|
|
'-Wl,--wrap=libusb_close',
|
|
'-Wl,--wrap=libusb_alloc_transfer',
|
|
'-Wl,--wrap=libusb_submit_transfer',
|
|
'-Wl,--wrap=libusb_free_transfer',
|
|
'-Wl,--wrap=libusb_handle_events_timeout',
|
|
'-Wl,--wrap=libusb_exit',
|
|
'-Wl,--gc-sections',
|
|
]
|
|
|
|
threads_dep = dependency('threads')
|
|
|
|
flashrom_tests = executable('flashrom_unit_tests',
|
|
test_srcs,
|
|
c_args : [
|
|
cargs,
|
|
'-ffunction-sections',
|
|
'-fdata-sections',
|
|
'-U_FORTIFY_SOURCE',
|
|
'-DFLASHROM_TEST',
|
|
],
|
|
export_dynamic : true,
|
|
link_args : mocks + link_args,
|
|
dependencies : [cmocka_dep, flashrom_test_dep, threads_dep],
|
|
)
|
|
test('cmocka test flashrom', flashrom_tests)
|
|
|
|
if get_option('llvm_cov').enabled()
|
|
run_target('llvm-cov-tests', command : ['../scripts/llvm-cov', flashrom_tests])
|
|
endif
|