diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2023-05-01 20:32:19 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2023-05-02 23:13:23 +0300 |
commit | 3f0e7fe608d732627279de0f7ad503a1cf43f701 (patch) | |
tree | 225b4c7889fa920dff3f12bc70948a00b690e294 /meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch | |
parent | 59d1e4b3d5bdba3f4432efe41e3665e154da6804 (diff) | |
download | openbmc-3f0e7fe608d732627279de0f7ad503a1cf43f701.tar.xz |
subtree updates2.14.0-rc1
meta-arm: 9b6c8c95e4..c60d7865dd:
Adam Johnston (3):
arm-bsp/optee: Update OP-TEE TA devkit to 3.20 for N1SDP
CI: Remove ts-smm-gateway from N1SDP
arm-bsp/trusted-firmware-a: Update N1SDP to v2.8.0
Denys Dmytriyenko (4):
optee-os-tadevkit: remove old unused patches
optee-client: add 3.20.0 version
optee-test: add 3.20.0 version
optee-examples: add 3.20.0 version
Emekcan Aras (4):
arm-bsp/trusted-firmware-m: apply patches correctly from external repos
arm-bsp/trusted-firmware-m: Switch to TF-M BL1 in Corstone1000
arm-bsp/corstone1000: add OTP config for fvp
arm-bsp/trusted-firmware-m: Increase assets number for corstone1000
Jon Mason (8):
CI: dev kernel allow failure
arm/linux-yocto: remove IP_VS config fragment
CI: update to the latest kas version
CI: track mickledore branch
arm-bsp/tc1: Fix signed u-boot
arm-bsp/tc1: Add FVP support
arm/trusted-firmware-m-scripts: relocate to tfm directory
arm-bsp/tc1: disable signed kernel image
Peter Hoyes (1):
arm/scp-firmware: Add support for components other than SCP, MCP
Ross Burton (8):
arm/scp-firmware: add recipe for 2.11
arm-bsp/scp-firmware: move all machines to SCP 2.11
arm/scp-firmware: remove 2.10 recipe
arm/trusted-firmware-m: add the tf-m-extras repository that some machines need
arm/trusted-firmware-m: clean up environment flags
arm/trusted-firmware-m: package .elf files in PN-dbg
arm-bsp/trusted-firmware-m: enable for Total Compute on RSS
CI: add TF-M to TC build
Rui Miguel Silva (1):
arm-bsp/corstone1000: tf-m set/get fwu, private metadata using gpt
Xueliang Zhong (3):
arm-bsp/n1sdp-board-firmware: update to newer SHA
arm-bsp/optee-os: N1SDP support for optee-os 3.20
arm-bsp/n1sdp: use edk2-firmware 202211 version
meta-raspberrypi: 3afdbbf782..bf948e0aa8:
Jesse Visser (2):
recipe-bsp: Add support for Raspberry Pi Camera Module v3
docs: Update extra build config Raspberry Pi Camera Module section
Rodrigo M. Duarte (1):
python3-adafruit-blinka: Fix the correct python recipes path in dynamic-layer sub-dir
poky: 0907793d5e..878271e1a1:
Alex Kiernan (1):
cargo_common.bbclass: Support local github repos
Alexander Kanavin (3):
rust: do not run separate build/install steps
rust: install llvm item only once
rust: update 1.67.1 -> 1.68.1
Bruce Ashfield (6):
linux-yocto/6.1: update to v6.1.23
linux-yocto/5.15: update to v5.15.106
linux-yocto/6.1: update to v6.1.24
linux-yocto/5.15: update to v5.15.107
linux-yocto/6.1: update to v6.1.25
linux-yocto/5.15: update to v5.15.108
Chen Qi (1):
bitbake: runqueue: fix PSI check calculation
Chris Elledge (1):
busybox: move hwclock init earlier in startup
Denys Dmytriyenko (2):
xz: upgrade 5.4.1 -> 5.4.2
grep: upgrade 3.9 -> 3.10
Enrico Jörns (10):
oeqa/selftest/cases/runqemu: update imports
oeqa/targetcontrol: fix misspelled RuntimeError
oeqa/targetcontrol: do not set dump_host_cmds redundantly
oeqa/targetcontrol: remove unused imports
oeqa/utils/commands: fix usage of undefined EPIPE
oeqa/utils/commands: remove unused imports
oeqa/utils/qemurunner: replace hard-coded user 'root' in debug output
oeqa/utils/qemurunner: limit precision of timing debugging output
oeqa/utils/qemurunner: fix undefined TimeoutExpired
oeqa: whitespace and indentation cleanups
Enrico Scholz (2):
bitbake: fetch2/crate: create versioned 'name' entries
bitbake: cooker: do not abort on single ctrl-c
Frederic Martinsons (6):
cargo_common.bbclass: add support of user in url for patch
devtool: add support for multiple git url inside a cargo based recipe
patch: support of git patches when the source uri contained subpath parameter
meta-selftest: provide a recipe for zvariant
cargo-update-recipe-crates: force name overrides
bitbake: fetch2: Display all missing checksum at once
Geoffrey GIRY (1):
cve-extra-exclusions: ignore inapplicable linux-yocto CVEs
Kai Kang (1):
bitbake: bitbake: ConfHandler: Allow variable flag name with a single character
Lee Chee Yang (2):
migration-guides: add release-notes for 4.0.9
release-notes-4.2: update RC3 changes
Luca Ceresoli (1):
devicetree.bbclass: fix typo
Marek Vasut (1):
cpio: Fix wrong CRC with ASCII CRC for large files
Mark Asselstine (1):
oeqa/selftest/bblogging: uncomment python stdout checks
Mark Hatle (1):
sanity.bbclass: Update minimum gcc version to 8.0
Marta Rybczynska (1):
cve-update-nvd2-native: new CVE database fetcher
Martin Jansa (7):
selftest: imagefeatures.py: don't mix tabs and spaces for indentation
selftest: runqemu: better check for ROOTFS: in the log
selftest: runqemu: use better error message when asserts fail
runqemu: respect IMAGE_LINK_NAME
python3-cryptography-crates.inc: regenerate with updated bbclass
python3-bcrypt-crates.inc: regenerate with updated bbclass
selftest: efibootpartition.py: fix QEMU_USE_KVM usage
Michael Opdenacker (8):
manuals: update disk space requirements
manuals: add rm_work disk space data
manuals: add minimum RAM requirements
ref-manual: release-process.rst: update testing section
ref-manual: release-process.rst: major updates
manuals: add "LTS" term
manuals: improve and fix target for supported distros
migration-guides: update 4.2 migration and release notes
Mikko Rapeli (2):
oeqa ping.py: avoid busylooping failing ping command
oeqa ping.py: fail test if target IP address has not been set
Mingli Yu (2):
report-error: catch Nothing PROVIDES error
bitbake: event: add bb.event.ParseError
Paul Eggleton (20):
bitbake: bitbake-user-manual: document BB_CACHEDIR
bitbake: bitbake-user-manual: add addpylib and BB_GLOBAL_PYMODULES
bitbake: bitbake-user-manual: add BB_HASH_CODEPARSER_VALS
ref-manual: add new SDK_ZIP_OPTIONS variable
ref-manual: Add new RUST_CHANNEL variable
ref-manual: update for IMAGE_MACHINE_SUFFIX addition
dev/ref-manual: Remove references to INC_PR
ref-manual: add BB_CACHEDIR
migration-guides: Add coverage of addpylib directive
ref-manual: Remove references to package_tar class
ref-manual: add missing QA checks from previous releases
ref-manual: document new patch-status-* QA checks
ref-manual: add FIT_CONF_DEFAULT_DTB
ref-manual: add section link also to buildtools-extended entry
ref-manual: add SDK_ARCHIVE_TYPE
ref-manual: move Initramfs entry from variables to terms
dev/ref-manual: Document INIT_MANAGER
migration-guides: extend migration guide for 4.2
release-notes-4.1: fix some CVE links
release-notes-4.2: add release notes
Peter Kjellerstedt (1):
cargo-update-recipe-crates.bbclass: Do not add name= to crate:// URIs
Petr Kubizňák (11):
harfbuzz: depend on glib-2.0-native
json-glib: depend on glib-2.0-native
libgudev: depend on glib-2.0-native
at-spi2-core: depend on glib-2.0-native
avahi: add missing dependencies
graphene: add gobject-types PACKAGECONFIG
python3-pygobject: depend on gobject-introspection
gconf: add missing dependencies
webkitgtk: add missing dependencies
libnotify: depend on glib-2.0-native
vte: depend on glib-2.0-native
Richard Purdie (14):
oeqa/loader: Ensure module names don't contain uppercase characters
zvariant: Exclude from world for now to avoid reproducibility issues
xdg-utils: Add a patch for CVE-2020-27748
cve-extra-exclusions.inc: Exclude some issues not present in linux-yocto
xdg-utils: Fix CVE number
bitbake: bitbake: Bump to version 2.4.0
build-appliance-image: Update to master head revision
poky.conf: Bump version for 4.2 mickledore release
build-appliance-image: Update to master head revision
build-appliance-image: Update to master head revision
cve-exclusions: Document some further linux-yocto CVE statuses
build-appliance-image: Update to mickledore head revision
build-appliance-image: Update to mickledore head revision
build-appliance-image: Update to mickledore head revision
Ross Burton (11):
llvm: remove redundant CMake variables
libgit2: clean up CMake variables
webkitgtk: clean up Python variables
oeqa/runtime: clean up deprecated backslash expansion
classes-recipe/setuptools3-base: clean up FILES assignments
bind: don't package non-existant .la files into -staticdev
gstreamer1.0-plugins: package the internal libraries explicitly
Increase minimum GCC version to 8.0
xserver-xorg: backport fix for CVE-2023-1393
screen: backport fix for CVE-2023-24626
go: backport fix for CVE-2023-24537
Soumya (1):
shadow: Fix can not print full login timeout message
Svend Meyland Nicolaisen (1):
bitbake: npmsw fetcher: Avoid instantiating Fetch class if url list is empty
Thomas De Schampheleire (3):
qemu: make tracetool-generated output reproducible
qemu: retain default trace backend if 'ust' is not enabled
qemu: rename deprecated --enable-trace-backend configure option
Tobias Hagelborn (1):
lib/oe/gpg_sign.py: Avoid race when creating .sig files in detach_sign
Ulrich Ölmann (2):
kernel-dev: fix typos
ref-manual: classes.rst: fix typo
Wentao Zhang (1):
python3: Fix failing sysconfig.py test on x86(64 bit) using lib64 as baselib by updating test_sysconfig for posix_user purelib
Xiangyu Chen (1):
shadow: backport patch to fix CVE-2023-29383
Yoann Congal (3):
cve-extra-exclusions: ignore inapplicable linux-yocto CVEs
cve-exclusions_6.1: ignore patched CVE-2022-38457 & CVE-2022-40133
cve-extra-exclusion: ignore disputed CVE-2023-23005
meta-openembedded: 17243e70c8..2d89a469e5:
Armin Kuster (1):
meta-openemnedded: Add myself as mickledore maintainer
Bartosz Golaszewski (1):
reboot-mode: put the build artifacts in ${B}
Chen Qi (1):
android-tools: fix systemd service setting
Enrico Scholz (1):
sox: remove ffmpeg dependency
Etienne Cordonnier (4):
uutils-coreutils: Add crates checksum
uutils-coreutils: remove obsolete comment
uutils-coreutils: upgrade 0.0.17 -> 0.0.18
uutils-coreutils: disable musl support
Ever ATILANO (4):
meta-python: python3-path: Add ptest
meta-python: python3-lorem: Add ptest
meta-oe: recipes-support: dc: Add ptest
meta-oe: recipes-extended: bitwise: Add ptest
Johannes Kirchmair (1):
redirect unwanted error message in nginx install
Kai Kang (5):
xfce4-taskmanager: 1.5.2 -> 1.5.5
xfce4-terminal: 1.0.0 -> 1.0.4
syslog-ng: not deliver syslog-ng-update-virtualenv
xfce4-notifyd: 0.6.3 -> 0.8.2
xfce4-screenshooter: 1.9.10 -> 1.10.3
Khem Raj (28):
krb5: Fix build with autoconf 2.72
cyrus-sasl: Fix autoconf patch to work with new autoconf 2.72
gmime: Update to 3.2.13
imagemagick: Update to 7.1.1
mpv: Upgrade to 0.35.1
fwknop: Use pkg-config instead of gpgme-config
fwknop: Fix AS_IF configure syntax
libstemmer: Update to 2.2.0
libidn: Update largefile m4 macros
emacs: Fix build with autconf 2.72+
ptest-packagelists-meta-oe: Remove minicoredumper from PTESTS_FAST_META_OE on musl
poco: Remove pushd/popd from run-ptest
surf: Fix build with gtkwebkit 2.40
libio-pty-perl: Fix build with musl/clang
meta-gnome: Update patch status for several recipes
libnet-ssleay-perl: Fix patch upstream status
meta-xfce: Fix missing upstream status in patches
meta-multimedia: Fix missing upstream status in several patches
meta-webserver: Fix missing upstream status on patches
babl: Drop clang10 workaround for mips/rv64
babl: Package /usr/lib/babl-0.1/ directory
libtinyxml2: Add ptest support
ptest-packagelists-meta-oe: Add libtinyxml2
minifi-cpp: Always use stat on 64bit linux
libdnet: Upgrade to 1.16.3
python3-pyruvate: regenerate with updated bbclass
monkey,webmin: Fix upstream patch status
python3-pyruvate: Upgrade to 1.2.1
Leon Anavi (2):
libpcsc-perl: Add recipe
pcsc-tools: Add runtime dependencies
Markus Volk (29):
nv-codec-headers: add clean target to Makefile
flatpak: update 1.15.3 -> 1.15.4
libcamera: re-introduce fix for gcc-13
polkit-gnome: add recipe
eog: update 43.2 -> 44.0
evince: update 43.1 -> 44.0
gdm: update 43.0 -> 44.0
gnome-calculator: update 43.0.1 -> 44.0
gnome-calendar: update 43.1 -> 44.0
gnome-desktop: update 43 -> 44.0
gnome-disk-utility: update 43.0 -> 44.0
gnome-font-viewer: update 43.0 -> 44.0
gnome-online-accounts: update 3.46.0 -> 3.48.0
gnome-photos: update 43.0 -> 44.0
gnome-session: update 43.0 -> 44.0
gnome-settings-daemon: update 43.0 -> 44.0
gnome-shell-extensions: update 43.1 -> 44.0
gnome-software: update 43.4 -> 44.0
gnome-terminal: update 3.46.7 -> 3.48.0
gnome-text-editor: update 43.1 -> 44.0
tracker-miners: update 3.4.2 -> 3.5.0
zenity: update 3.43.0 -> 3.44.0
xdg-desktop-portal-gnome: update 43.1 -> 44.0
gedit: update 43.2 -> 44.2
evolution-data-server: build oauth with gtk+3
file-roller: set cpio path manually
libdecor: update 1.1.0 -> 1.1.99
freerdp: set PROXY_PLUGINDIR
libnfs: add recipe
Martin Jansa (5):
zsh: fix installed-vs-shipped with multilib
restinio: fix S variable in multilib builds
mongodb: fix chown user for multilib builds
pahole: respect libdir
lvgl,lv-lib-png,lv-drivers: fix installed-vs-shipped QA issue with multilib
Mingli Yu (1):
mcelog: improve the ptest output
Peter Johennecken (1):
nginx: added packagegroup for webdav module
Peter Kjellerstedt (5):
python3-crc32c: Correct the license information
paho-mqtt-cpp: Improve the license information
autossh: Correct the license information
paho-mqtt-c: Improve the license information
recipes: Remove double protocol= from SRC_URIs
Tim Orling (11):
cli11: do not inherit ptest
span-lite: do not inherit ptest
ptest-packagelists-meta-oe.inc: add ptest recipes
meta-oe-ptest*-image: enable BBCLASSEXTEND parallel execution
ptest-packagelists-meta-python.inc: add ptest recipes
meta-python-ptest*-image: enable BBCLASSEXTEND parallel execution
python3-aspectlib: fix ptest
ptest-packagelists-meta-perl.inc: add ptest recipes
recipes-perl/packagegroups: move to recipes-core/
recipes-perl/images: move to recipes-core
meta-perl-ptest*-image: enable BBCLASSEXTEND parallel execution
Ulrich Ölmann (1):
jwt-cpp: enable usage in an SDK
Wang Mingyu (40):
abseil-cpp: upgrade 20230125.1 -> 20230125.2
libbytesize: upgrade 2.7 -> 2.8
gegl: upgrade 0.4.42 -> 0.4.44
ctags: upgrade 6.0.20230319.0 -> 6.0.20230402.0
libdeflate: upgrade 1.17 -> 1.18
libldb: upgrade 2.7.1 -> 2.7.2
ndisc6: upgrade 1.0.6 -> 1.0.7
libpfm4: upgrade 4.12.0 -> 4.13.0
libtraceevent: upgrade 1.7.1 -> 1.7.2
nginx: upgrade 1.23.3 -> 1.23.4
links: upgrade 2.28 -> 2.29
python3-pyproj: upgrade 3.4.1 -> 3.5.0
ostree: upgrade 2023.1 -> 2023.2
openvpn: upgrade 2.6.1 -> 2.6.2
python3-aenum: upgrade 3.1.11 -> 3.1.12
python3-argcomplete: upgrade 3.0.0 -> 3.0.5
python3-cassandra-driver: upgrade 3.25.0 -> 3.26.0
python3-astroid: upgrade 2.15.0 -> 2.15.1
python3-cmake: upgrade 3.26.0 -> 3.26.1
python3-dateparser: upgrade 1.1.7 -> 1.1.8
python3-google-api-python-client: upgrade 2.81.0 -> 2.83.0
python3-elementpath: upgrade 4.0.1 -> 4.1.0
python3-googleapis-common-protos: upgrade 1.58.0 -> 1.59.0
python3-httplib2: upgrade 0.21.0 -> 0.22.0
python3-google-auth: upgrade 2.16.2 -> 2.17.1
python3-ipython: upgrade 8.11.0 -> 8.12.0
python3-imageio: upgrade 2.26.0 -> 2.27.0
python3-pychromecast: upgrade 13.0.4 -> 13.0.6
python3-jdatetime: upgrade 4.1.0 -> 4.1.1
python3-luma-oled: upgrade 3.11.0 -> 3.12.0
python3-pydantic: upgrade 1.10.6 -> 1.10.7
python3-pymodbus: upgrade 3.2.1 -> 3.2.2
python3-pymisp: upgrade 2.4.169.2 -> 2.4.169.3
python3-pywbemtools: upgrade 1.1.1 -> 1.2.0
python3-redis: upgrade 4.5.1 -> 4.5.4
python3-regex: upgrade 2022.10.31 -> 2023.3.23
python3-typeguard: upgrade 3.0.1 -> 3.0.2
python3-sentry-sdk: upgrade 1.17.0 -> 1.18.0
python3-rich: upgrade 13.3.2 -> 13.3.3
python3-watchdog: upgrade 2.3.1 -> 3.0.0
Wentao Zhang (1):
jemalloc: include the missing shell scripts and source the corresponds shell scripts for some test cases.
Yi Zhao (1):
samba: upgrade 4.18.0 -> 4.18.1
Zoltán Böszörményi (2):
hplip: Fix installation and QA
libgusb: Allow building in native mode
meta-security: a397a38ed9..53c5cc794f:
Anton Antonov (2):
Fix PACKAGECONFIG check in Parsec OEQA tests
Flush caches after OEQA tests
Armin Kuster (6):
checksecurity: update to 2.0.16
krill: forced to inclued fetch hashes.
suricata: Fixup to work within the recent crate changes.
suricata: Missed on crate depends
parsec-tool: update SRC_URI hash
parsec-service: fix SRC_URI hash
Gowtham Suresh Kumar (2):
meta-parsec: Disable RSA-OAEP OEQA tests for Parsec PKCS11 backend
parsec-service: Update parsec recipes to 1.2.0 and parsec-tool to 0.6.0
Patrick Williams (1):
libwhisker2-perl: adjust perl-version variable
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ifa3e92c95982d5d6c51f02a02237ad5820694569
Diffstat (limited to 'meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch')
-rw-r--r-- | meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch | 646 |
1 files changed, 0 insertions, 646 deletions
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch deleted file mode 100644 index a4da13ecfc..0000000000 --- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch +++ /dev/null @@ -1,646 +0,0 @@ -From 3bca7e6bae9a5017fff83b0a7d2d0d78b422a741 Mon Sep 17 00:00:00 2001 -From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> -Date: Mon, 7 Nov 2022 12:51:58 +0000 -Subject: [PATCH 02/10] Platform: corstone1000: Add IO test in ci_regressions - -The test is simply writing data on the edge of a block -then reading back again. -this test is preformed on two flash devices: -- Nor Flash -- Flash emu in the SRAM for testing - -Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> -Change-Id: I4950086e9e3dcbde29ab5b4ed5fe61fec7ebec86 -Upstream-Status: Accepted [TF-Mv1.8.0] ---- - .../ci_regression_tests/CMakeLists.txt | 10 + - .../Driver_Flash_SRAM_Emu.c | 327 ++++++++++++++++++ - .../ci_regression_tests/s_io_storage_test.c | 147 ++++++++ - .../ci_regression_tests/s_io_storage_test.h | 15 + - .../corstone1000/ci_regression_tests/s_test.c | 5 + - .../ci_regression_tests/s_test_config.cmake | 5 + - .../ci_regression_tests/test_flash.h | 25 ++ - 7 files changed, 534 insertions(+) - create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c - create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c - create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h - create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h - -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt b/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt -index 9543e29e55..405b2b3702 100644 ---- a/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt -@@ -17,12 +17,18 @@ target_sources(tfm_test_suite_extra_s - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/s_test.c - ../Native_Driver/firewall.c -+ ../io/io_storage.c -+ ../io/io_block.c -+ ../io/io_flash.c -+ Driver_Flash_SRAM_Emu.c -+ s_io_storage_test.c - ) - - target_include_directories(tfm_test_suite_extra_s - PRIVATE - ../Device/Include - ../Native_Driver -+ ../io - ) - - target_link_libraries(tfm_test_suite_extra_s -@@ -33,4 +39,8 @@ target_link_libraries(tfm_test_suite_extra_s - target_compile_definitions(tfm_test_suite_extra_s - PRIVATE - $<$<BOOL:${PLATFORM_IS_FVP}>:PLATFORM_IS_FVP> -+ TEST_FLASH_SIZE_IN_BYTES=${TEST_FLASH_SIZE_IN_BYTES} -+ TEST_FLASH_SECTOR_SIZE_IN_BYTES=${TEST_FLASH_SECTOR_SIZE_IN_BYTES} -+ TEST_FLASH_PAGE_SIZE=${TEST_FLASH_PAGE_SIZE} -+ TEST_FLASH_PROGRAM_UNIT=${TEST_FLASH_PROGRAM_UNIT} - ) -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c b/platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c -new file mode 100644 -index 0000000000..06b6b51c09 ---- /dev/null -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c -@@ -0,0 +1,327 @@ -+/* -+ * Copyright (c) 2013-2022 ARM Limited. All rights reserved. -+ * -+ * SPDX-License-Identifier: Apache-2.0 -+ * -+ * 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 -+ * -+ * 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. -+ */ -+ -+#include <string.h> -+#include <stdint.h> -+#include "Driver_Flash.h" -+#include "test_flash.h" -+#include "tfm_sp_log.h" -+ -+#ifndef ARG_UNUSED -+#define ARG_UNUSED(arg) ((void)arg) -+#endif -+ -+/* Driver version */ -+#define ARM_FLASH_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 1) -+#define ARM_FLASH_DRV_ERASE_VALUE 0xFF -+ -+ -+/** -+ * There is no real flash memory. This driver just emulates a flash -+ * interface and behaviour on top of the SRAM memory. -+ */ -+ -+/** -+ * Data width values for ARM_FLASH_CAPABILITIES::data_width -+ * \ref ARM_FLASH_CAPABILITIES -+ */ -+ enum { -+ DATA_WIDTH_8BIT = 0u, -+ DATA_WIDTH_16BIT, -+ DATA_WIDTH_32BIT, -+ DATA_WIDTH_ENUM_SIZE -+}; -+ -+static const uint32_t data_width_byte[DATA_WIDTH_ENUM_SIZE] = { -+ sizeof(uint8_t), -+ sizeof(uint16_t), -+ sizeof(uint32_t), -+}; -+ -+ -+/* -+ * ARM FLASH device structure -+ * -+ */ -+struct arm_flash_dev_t { -+ const uint8_t* memory_base; /*!< FLASH memory base address */ -+ ARM_FLASH_INFO *data; /*!< FLASH data */ -+}; -+ -+/* Flash emulated memory */ -+static uint8_t flash_memory[TEST_FLASH_SIZE_IN_BYTES] -+ __attribute__((aligned(TEST_FLASH_SECTOR_SIZE_IN_BYTES))); -+ -+/* Flash Status */ -+static ARM_FLASH_STATUS FlashStatus = {0, 0, 0}; -+ -+/* Driver Version */ -+static const ARM_DRIVER_VERSION DriverVersion = { -+ ARM_FLASH_API_VERSION, -+ ARM_FLASH_DRV_VERSION -+}; -+ -+/* Driver Capabilities */ -+static const ARM_FLASH_CAPABILITIES DriverCapabilities = { -+ 0, /* event_ready */ -+ 0, /* data_width = 0:8-bit, 1:16-bit, 2:32-bit */ -+ 1 /* erase_chip */ -+}; -+ -+static int32_t is_range_valid(struct arm_flash_dev_t *flash_dev, -+ uint32_t offset) -+{ -+ uint32_t flash_limit = 0; -+ int32_t rc = 0; -+ -+ flash_limit = (flash_dev->data->sector_count * flash_dev->data->sector_size); -+ if (offset > flash_limit) { -+ rc = -1; -+ } -+ return rc; -+} -+ -+static int32_t is_write_aligned(struct arm_flash_dev_t *flash_dev, -+ uint32_t param) -+{ -+ int32_t rc = 0; -+ -+ if ((param % flash_dev->data->program_unit) != 0) { -+ rc = -1; -+ } -+ return rc; -+} -+ -+static int32_t is_sector_aligned(struct arm_flash_dev_t *flash_dev, -+ uint32_t offset) -+{ -+ int32_t rc = 0; -+ -+ if ((offset % flash_dev->data->sector_size) != 0) { -+ rc = -1; -+ } -+ return rc; -+} -+ -+static int32_t is_flash_ready_to_write(const uint8_t *start_addr, uint32_t cnt) -+{ -+ int32_t rc = 0; -+ uint32_t i; -+ -+ for (i = 0; i < cnt; i++) { -+ if(start_addr[i] != ARM_FLASH_DRV_ERASE_VALUE) { -+ rc = -1; -+ break; -+ } -+ } -+ -+ return rc; -+} -+ -+static ARM_FLASH_INFO ARM_TEST_FLASH_DEV_DATA = { -+ .sector_info = NULL,/* Uniform sector layout */ -+ .sector_count = TEST_FLASH_SIZE_IN_BYTES / TEST_FLASH_SECTOR_SIZE_IN_BYTES, -+ .sector_size = TEST_FLASH_SECTOR_SIZE_IN_BYTES, -+ .page_size = TEST_FLASH_PAGE_SIZE, -+ .program_unit = TEST_FLASH_PROGRAM_UNIT, -+ .erased_value = ARM_FLASH_DRV_ERASE_VALUE}; -+ -+static struct arm_flash_dev_t ARM_TEST_FLASH_DEV = { -+ .memory_base = flash_memory, -+ .data = &(ARM_TEST_FLASH_DEV_DATA)}; -+ -+static struct arm_flash_dev_t *TEST_FLASH_DEV = &ARM_TEST_FLASH_DEV; -+ -+/* -+ * Functions -+ */ -+ -+static ARM_DRIVER_VERSION ARM_Flash_GetVersion(void) -+{ -+ return DriverVersion; -+} -+ -+static ARM_FLASH_CAPABILITIES ARM_Flash_GetCapabilities(void) -+{ -+ return DriverCapabilities; -+} -+ -+static int32_t ARM_Flash_Initialize(ARM_Flash_SignalEvent_t cb_event) -+{ -+ ARG_UNUSED(cb_event); -+ -+ if (DriverCapabilities.data_width >= DATA_WIDTH_ENUM_SIZE) { -+ return ARM_DRIVER_ERROR; -+ } -+ -+ /* Nothing to be done */ -+ return ARM_DRIVER_OK; -+} -+ -+static int32_t ARM_Flash_Uninitialize(void) -+{ -+ /* Nothing to be done */ -+ return ARM_DRIVER_OK; -+} -+ -+static int32_t ARM_Flash_PowerControl(ARM_POWER_STATE state) -+{ -+ switch (state) { -+ case ARM_POWER_FULL: -+ /* Nothing to be done */ -+ return ARM_DRIVER_OK; -+ break; -+ -+ case ARM_POWER_OFF: -+ case ARM_POWER_LOW: -+ default: -+ return ARM_DRIVER_ERROR_UNSUPPORTED; -+ } -+} -+ -+static int32_t ARM_Flash_ReadData(uint32_t addr, void *data, uint32_t cnt) -+{ -+ int32_t rc = 0; -+ -+ /* The addr given is a relative address*/ -+ uint32_t offset = addr; -+ addr += (uint32_t)(TEST_FLASH_DEV->memory_base); -+ -+ /* Conversion between data items and bytes */ -+ cnt *= data_width_byte[DriverCapabilities.data_width]; -+ -+ /* Check flash memory boundaries */ -+ rc = is_range_valid(TEST_FLASH_DEV, offset + cnt); -+ if (rc != 0) { -+ return ARM_DRIVER_ERROR_PARAMETER; -+ } -+ -+ /* Flash interface just emulated over SRAM, use memcpy */ -+ memcpy(data, (void *)addr, cnt); -+ -+ /* Conversion between bytes and data items */ -+ cnt /= data_width_byte[DriverCapabilities.data_width]; -+ -+ return cnt; -+} -+ -+static int32_t ARM_Flash_ProgramData(uint32_t addr, const void *data, -+ uint32_t cnt) -+{ -+ int32_t rc = 0; -+ -+ /* The addr given is a relative address*/ -+ uint32_t offset = addr; -+ addr += (uint32_t)(TEST_FLASH_DEV->memory_base); -+ -+ /* Conversion between data items and bytes */ -+ cnt *= data_width_byte[DriverCapabilities.data_width]; -+ -+ /* Check flash memory boundaries and alignment with minimal write size */ -+ rc = is_range_valid(TEST_FLASH_DEV, offset + cnt); -+ rc |= is_write_aligned(TEST_FLASH_DEV, offset); -+ rc |= is_write_aligned(TEST_FLASH_DEV, cnt); -+ if (rc != 0) { -+ return ARM_DRIVER_ERROR_PARAMETER; -+ } -+ -+ /* Check if the flash area to write the data was erased previously */ -+ rc = is_flash_ready_to_write((const uint8_t*)addr, cnt); -+ if (rc != 0) { -+ return ARM_DRIVER_ERROR; -+ } -+ -+ /* Flash interface just emulated over SRAM, use memcpy */ -+ memcpy((void *)addr, data, cnt); -+ -+ /* Conversion between bytes and data items */ -+ cnt /= data_width_byte[DriverCapabilities.data_width]; -+ -+ return cnt; -+} -+ -+static int32_t ARM_Flash_EraseSector(uint32_t addr) -+{ -+ uint32_t rc = 0; -+ -+ /* The addr given is a relative address*/ -+ uint32_t offset = addr; -+ addr += (uint32_t)(TEST_FLASH_DEV->memory_base); -+ -+ rc = is_range_valid(TEST_FLASH_DEV, offset); -+ rc |= is_sector_aligned(TEST_FLASH_DEV, offset); -+ if (rc != 0) { -+ return ARM_DRIVER_ERROR_PARAMETER; -+ } -+ -+ /* Flash interface just emulated over SRAM, use memset */ -+ memset((void *)addr, -+ TEST_FLASH_DEV->data->erased_value, -+ TEST_FLASH_DEV->data->sector_size); -+ return ARM_DRIVER_OK; -+} -+ -+static int32_t ARM_Flash_EraseChip(void) -+{ -+ uint32_t i; -+ uint32_t addr = TEST_FLASH_DEV->memory_base; -+ int32_t rc = ARM_DRIVER_ERROR_UNSUPPORTED; -+ -+ /* Check driver capability erase_chip bit */ -+ if (DriverCapabilities.erase_chip == 1) { -+ for (i = 0; i < TEST_FLASH_DEV->data->sector_count; i++) { -+ /* Flash interface just emulated over SRAM, use memset */ -+ memset((void *)addr, -+ TEST_FLASH_DEV->data->erased_value, -+ TEST_FLASH_DEV->data->sector_size); -+ -+ addr += TEST_FLASH_DEV->data->sector_size; -+ rc = ARM_DRIVER_OK; -+ } -+ } -+ return rc; -+} -+ -+static ARM_FLASH_STATUS ARM_Flash_GetStatus(void) -+{ -+ return FlashStatus; -+} -+ -+static ARM_FLASH_INFO * ARM_Flash_GetInfo(void) -+{ -+ return TEST_FLASH_DEV->data; -+} -+ -+ -+/* Global Variables */ -+ -+ARM_DRIVER_FLASH Driver_TEST_FLASH = { -+ ARM_Flash_GetVersion, -+ ARM_Flash_GetCapabilities, -+ ARM_Flash_Initialize, -+ ARM_Flash_Uninitialize, -+ ARM_Flash_PowerControl, -+ ARM_Flash_ReadData, -+ ARM_Flash_ProgramData, -+ ARM_Flash_EraseSector, -+ ARM_Flash_EraseChip, -+ ARM_Flash_GetStatus, -+ ARM_Flash_GetInfo -+}; -+ -+uintptr_t flash_base_address = flash_memory; -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c -new file mode 100644 -index 0000000000..f8be384a74 ---- /dev/null -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c -@@ -0,0 +1,147 @@ -+/* -+ * Copyright (c) 2022, Arm Limited. All rights reserved. -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ * -+ */ -+ -+#include "s_io_storage_test.h" -+ -+#include "Driver_Flash.h" -+#include "flash_layout.h" -+#include "io_block.h" -+#include "io_driver.h" -+#include "io_flash.h" -+#include "tfm_sp_log.h" -+ -+#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(*(array))) -+ -+extern ARM_DRIVER_FLASH Driver_FLASH0; -+extern ARM_DRIVER_FLASH Driver_TEST_FLASH; -+extern uintptr_t flash_base_address; -+ -+void s_test_io_storage_multiple_flash_simultaneous(struct test_result_t *ret) { -+ /* FLASH0 */ -+ static io_dev_connector_t* flash0_dev_con; -+ static uint8_t local_block_flash0[FLASH_SECTOR_SIZE]; -+ ARM_FLASH_INFO* flash0_info = Driver_FLASH0.GetInfo(); -+ size_t flash0_block_size = flash0_info->sector_size; -+ io_flash_dev_spec_t flash0_dev_spec = { -+ .buffer = local_block_flash0, -+ .bufferlen = flash0_block_size, -+ .base_addr = FLASH_BASE_ADDRESS, -+ .flash_driver = &Driver_FLASH0, -+ }; -+ io_block_spec_t flash0_spec = { -+ .offset = FLASH_BASE_ADDRESS, -+ .length = flash0_info->sector_count * flash0_info->sector_size}; -+ uintptr_t flash0_dev_handle = NULL; -+ uintptr_t flash0_handle = NULL; -+ -+ /* EMU TEST FLASH */ -+ static io_dev_connector_t* flash_emu_dev_con; -+ static uint8_t local_block_flash_emu[TEST_FLASH_SECTOR_SIZE_IN_BYTES] -+ __attribute__((aligned(TEST_FLASH_SECTOR_SIZE_IN_BYTES))); -+ ARM_FLASH_INFO* flash_emu_info = Driver_TEST_FLASH.GetInfo(); -+ size_t flash_emu_block_size = flash_emu_info->sector_size; -+ io_flash_dev_spec_t flash_emu_dev_spec = { -+ .buffer = local_block_flash_emu, -+ .bufferlen = flash_emu_block_size, -+ .base_addr = flash_base_address, -+ .flash_driver = &Driver_TEST_FLASH, -+ }; -+ io_block_spec_t flash_emu_spec = { -+ .offset = flash_base_address, -+ .length = flash_emu_info->sector_count * flash_emu_info->sector_size}; -+ uintptr_t flash_emu_dev_handle = NULL; -+ uintptr_t flash_emu_handle = NULL; -+ -+ /* Common */ -+ int rc = -1; -+ static uint8_t test_data[] = {0xEE, 0xDD, 0xCC, 0xBB, 0xAA, -+ 0x10, 0x50, 0xA0, 0xD0, 0x51, -+ 0x55, 0x44, 0x33, 0x22, 0x11}; -+ static uint8_t actual_data[15]; -+ size_t bytes_written_count = 0; -+ size_t bytes_read_count = 0; -+ -+ memset(local_block_flash0, -1, sizeof(local_block_flash0)); -+ memset(local_block_flash_emu, -1, sizeof(local_block_flash_emu)); -+ -+ /* Register */ -+ register_io_dev_flash(&flash0_dev_con); -+ register_io_dev_flash(&flash_emu_dev_con); -+ -+ io_dev_open(flash0_dev_con, &flash0_dev_spec, &flash0_dev_handle); -+ io_dev_open(flash_emu_dev_con, &flash_emu_dev_spec, &flash_emu_dev_handle); -+ -+ /* Write Data */ -+ io_open(flash0_dev_handle, &flash0_spec, &flash0_handle); -+ io_open(flash_emu_dev_handle, &flash_emu_spec, &flash_emu_handle); -+ -+ io_seek(flash0_handle, IO_SEEK_SET, -+ BANK_1_PARTITION_OFFSET + flash0_info->sector_size - 7); -+ io_seek(flash_emu_handle, IO_SEEK_SET, flash_emu_info->sector_size - 7); -+ -+ io_write(flash0_handle, test_data, ARRAY_LENGTH(test_data), -+ &bytes_written_count); -+ if (bytes_written_count != ARRAY_LENGTH(test_data)) { -+ LOG_ERRFMT("io_write failed to write %d bytes for flash0", -+ ARRAY_LENGTH(test_data)); -+ LOG_ERRFMT("bytes_written_count %d for flash0", bytes_written_count); -+ ret->val = TEST_FAILED; -+ } -+ io_write(flash_emu_handle, test_data, ARRAY_LENGTH(test_data), -+ &bytes_written_count); -+ if (bytes_written_count != ARRAY_LENGTH(test_data)) { -+ LOG_ERRFMT("io_write failed to write %d bytes for flash emu", -+ ARRAY_LENGTH(test_data)); -+ LOG_ERRFMT("bytes_written_count %d for flash emu", bytes_written_count); -+ ret->val = TEST_FAILED; -+ } -+ io_close(flash0_handle); -+ io_close(flash_emu_handle); -+ -+ /* Read Data */ -+ io_open(flash0_dev_handle, &flash0_spec, &flash0_handle); -+ io_open(flash_emu_dev_handle, &flash_emu_spec, &flash_emu_handle); -+ -+ io_seek(flash0_handle, IO_SEEK_SET, -+ BANK_1_PARTITION_OFFSET + flash0_info->sector_size - 7); -+ io_seek(flash_emu_handle, IO_SEEK_SET, flash_emu_info->sector_size - 7); -+ -+ /* Flash0 */ -+ io_read(flash0_handle, actual_data, ARRAY_LENGTH(actual_data), -+ &bytes_read_count); -+ if (bytes_read_count != ARRAY_LENGTH(test_data)) { -+ LOG_ERRFMT("io_read failed to read %d bytes for flash0", -+ ARRAY_LENGTH(test_data)); -+ LOG_ERRFMT("bytes_read_count %d for flash0", bytes_read_count); -+ ret->val = TEST_FAILED; -+ } -+ if (memcmp((uint8_t*)test_data, actual_data, ARRAY_LENGTH(actual_data)) != -+ 0) { -+ LOG_ERRFMT("Data written != Data read\r\n"); -+ ret->val = TEST_FAILED; -+ } -+ -+ memset(actual_data, -1, sizeof(actual_data)); -+ -+ /* Flash Emu */ -+ io_read(flash_emu_handle, actual_data, ARRAY_LENGTH(actual_data), -+ &bytes_read_count); -+ if (bytes_read_count != ARRAY_LENGTH(test_data)) { -+ LOG_ERRFMT("io_read failed to read %d bytes for flash emu", -+ ARRAY_LENGTH(test_data)); -+ LOG_ERRFMT("bytes_read_count %d for flash emu", bytes_read_count); -+ ret->val = TEST_FAILED; -+ } -+ if (memcmp((uint8_t*)test_data, actual_data, ARRAY_LENGTH(actual_data)) != -+ 0) { -+ LOG_ERRFMT("Data written != Data read\r\n"); -+ ret->val = TEST_FAILED; -+ } -+ -+ LOG_INFFMT("PASS: %s\n\r", __func__); -+ ret->val = TEST_PASSED; -+} -\ No newline at end of file -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h -new file mode 100644 -index 0000000000..fa9012776f ---- /dev/null -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h -@@ -0,0 +1,15 @@ -+/* -+ * Copyright (c) 2022, Arm Limited. All rights reserved. -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ * -+ */ -+ -+#ifndef __S_IO_STORAGE_TEST_H__ -+#define __S_IO_STORAGE_TEST_H__ -+ -+#include "extra_s_tests.h" -+ -+void s_test_io_storage_multiple_flash_simultaneous(struct test_result_t *ret); -+ -+#endif /* __S_IO_STORAGE_TEST_H__ */ -\ No newline at end of file -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c -index a0bf47a04b..9a8453ff57 100644 ---- a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c -@@ -11,6 +11,7 @@ - #include "platform_base_address.h" - #include "firewall.h" - #include "tfm_sp_log.h" -+#include "s_io_storage_test.h" - - /* TODO: if needed each test function can be made as a separate test case, in - * such case EXTRA_TEST_XX definitions can be removed */ -@@ -19,6 +20,8 @@ - - #define DISABLED_TEST 0 - -+int test_io_storage_multiple_flash_simultaneous(void); -+ - enum host_firewall_host_comp_id_t { - HOST_FCTRL = (0x00u), - COMP_SYSPERIPH, -@@ -184,6 +187,8 @@ void s_test(struct test_result_t *ret) - static struct test_t plat_s_t[] = { - {&s_test, "TFM_S_EXTRA_TEST_1001", - "Extra Secure test"}, -+ {&s_test_io_storage_multiple_flash_simultaneous, "TFM_S_EXTRA_TEST_1002", -+ "Extra Secure test: io storage access multiple flash simultaneous"}, - }; - - void register_testsuite_extra_s_interface(struct test_suite_t *p_test_suite) -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake -index bb8d26bf1c..05b7cd7852 100644 ---- a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake -@@ -6,3 +6,8 @@ - #------------------------------------------------------------------------------- - - ############ Define secure test specific cmake configurations here ############# -+ -+set (TEST_FLASH_SIZE_IN_BYTES 48U CACHE STRING "The size of the emulated flash used in io tests") -+set (TEST_FLASH_SECTOR_SIZE_IN_BYTES 16U CACHE STRING "The sector size of the emulated flash used in io tests") -+set (TEST_FLASH_PAGE_SIZE 8U CACHE STRING "The page size of the emulated flash used in io tests") -+set (TEST_FLASH_PROGRAM_UNIT 1U CACHE STRING "The program unit of the emulated flash used in io tests") -diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h b/platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h -new file mode 100644 -index 0000000000..4d073a1d71 ---- /dev/null -+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h -@@ -0,0 +1,25 @@ -+/* -+ * Copyright (c) 2017-2022 Arm Limited. All rights reserved. -+ * -+ * 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 -+ * -+ * http://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. -+ */ -+ -+#ifndef __TEST_FLASH_H__ -+#define __TEST_FLASH_H__ -+ -+#define TEST_FLASH_SIZE_IN_BYTES (48) // 48 bytes -+#define TEST_FLASH_SECTOR_SIZE_IN_BYTES (16) // 16 bytes -+#define TEST_FLASH_PAGE_SIZE (8U) // 8 bytes -+#define TEST_FLASH_PROGRAM_UNIT (1U) /* 1 B */ -+ -+#endif /* __TEST_FLASH_H__ */ --- -2.25.1 - |