2022-10-21 00:22:39 +00:00
|
|
|
CONFIG_TEXT_BASE=0
|
nand: Add sandbox driver
Add a sandbox NAND flash driver to facilitate testing. This driver supports
any number of devices, each using a single chip-select. The OOB data is
stored in-band, with the separation enforced through the API.
For now, create two devices to test with. The first is a very small device
with basic ECC. The second is an 8G device (chosen to be larger than 32
bits). It uses ONFI, with the values copied from the datasheet. It also
doesn't need too strong ECC, which speeds things up.
Although the nand subsystem determines the parameters of a chip based on
the ID, the driver itself requires devicetree properties for each
parameter. We do not derive parameters from the ID because parsing the ID
is non-trivial. We do not just use the parameters that the nand subsystem
has calculated since that is something we should be testing. An exception
is made for the ECC layout, since that is difficult to encode in the device
tree and is not a property of the device itself.
Despite using file I/O to access the backing data, we do not support using
external files. In my experience, these are unnecessary for testing since
tests can generally be written to write their expected data beforehand.
Additionally, we would need to store the "programmed" information somewhere
(complicating the format and the programming process) or try to detect
whether block are erased at runtime (degrading probe speeds).
Information about whether each page has been programmed is stored in an
in-memory buffer. To simplify the implementation, we only support a single
program per erase. While this is accurate for many larger flashes, some
smaller flashes (512 byte) support multiple programs and/or subpage
programs. Support for this could be added later as I believe some
filesystems expect this.
To test ECC, we support error-injection. Surprisingly, only ECC bytes in
the OOB area are protected, even though all bytes are equally susceptible
to error. Because of this, we take care to only corrupt ECC bytes.
Similarly, because ECC covers "steps" and not the whole page, we must take
care to corrupt data in the same way.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-11-04 20:37:52 +00:00
|
|
|
CONFIG_SYS_MALLOC_LEN=0x6000000
|
2019-04-29 19:54:04 +00:00
|
|
|
CONFIG_NR_DRAM_BANKS=1
|
2020-08-10 19:31:07 +00:00
|
|
|
CONFIG_ENV_SIZE=0x2000
|
2021-06-28 14:17:29 +00:00
|
|
|
CONFIG_DEFAULT_DEVICE_TREE="sandbox"
|
2023-02-17 14:58:06 +00:00
|
|
|
CONFIG_DM_RESET=y
|
2019-09-23 15:47:37 +00:00
|
|
|
CONFIG_PRE_CON_BUF_ADDR=0xf0000
|
2022-04-08 17:36:51 +00:00
|
|
|
CONFIG_SYS_LOAD_ADDR=0x0
|
2023-05-01 15:50:26 +00:00
|
|
|
CONFIG_PCI=y
|
2018-10-01 17:55:15 +00:00
|
|
|
CONFIG_DEBUG_UART=y
|
2022-04-01 14:33:18 +00:00
|
|
|
CONFIG_SYS_MEMTEST_START=0x00100000
|
|
|
|
CONFIG_SYS_MEMTEST_END=0x00101000
|
2015-01-23 10:31:53 +00:00
|
|
|
CONFIG_FIT=y
|
2021-07-14 22:05:31 +00:00
|
|
|
CONFIG_FIT_RSASSA_PSS=y
|
2020-08-10 19:31:07 +00:00
|
|
|
CONFIG_FIT_CIPHER=y
|
2017-01-21 10:48:33 +00:00
|
|
|
CONFIG_FIT_VERBOSE=y
|
2023-01-06 14:52:19 +00:00
|
|
|
CONFIG_LEGACY_IMAGE_FORMAT=y
|
bootX measurements and measurement API moved to u-boot core
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEgWII69YpahbL5iK5gS8AYozs+qIFAmU7j50ACgkQgS8AYozs
+qIh8w/+O4UjT0sG1NLwmyV7U1Ypk+EyYaE6wmSWzpsJLfH/YvtObBJOYRuXxRVh
J9lkgCsw8Ct1ZNCrp8iVO+Dz1DtV8+QvTecrUHZqcOhTYDaqxXnlvEH2/EUhgo5T
9a/ZaDtOP1mKz754C4G6G363+iRCvbcqDECeKg9VYxfWCo1cINOmqyQCqlGxFT+h
PKiB5VzUpN/K/yiie+Hr42/+6XaykAUjUvEWeyKOsRmYY4lNiK22vG/puE42bFTh
catXwTE2a7x+yzPKkdhR0UGvDUlIKET2kF6mi+pYN2h/cSUxWTzbP/OxcU9yJOnm
qJiRZ+Woez1I7ul6ln4ci2kiWc3CTYFXfctwrBJPuJ/EO+2EEb3oHqG2S3Fc9VBZ
N17flHW7XZHEQbNexlUhk9cRpCwRuSA5OJXwW+IZIuydgNeo3xF0iYvipbjkEGgW
BBkt8PH+ivTLjEz6Gcmquvo1fHGJLHRIPg7DNb0phGHviuC0zlDJ7N5DZk0CpkiT
36siV9xK4X6qvWkOTa6Ldw60e4tN9nv3VG30uXtPHi3XdOkKfNkyIuqO/5BkkQPt
6yEc9IYXYoWNKDVUGme5+xszZp1sSvqltajG9VVNupt958dFyOSgS5aNa6B4UsWX
3XfndP1/s2bezUHoQx5zjraapKVrqBFLkGeTlCDUD+mEgP440G8=
=gvDs
-----END PGP SIGNATURE-----
Merge tag 'tpm-next-27102023' of https://source.denx.de/u-boot/custodians/u-boot-tpm
bootX measurements and measurement API moved to u-boot core:
Up to now, U-Boot could perform measurements and EventLog creation as
described by the TCG spec when booting via EFI.
The EFI code was residing in lib/efi_loader/efi_tcg2.c and contained
both EFI specific code + the API needed to access the TPM, extend PCRs
and create an EventLog. The non-EFI part proved modular enough and
moving it around to the TPM subsystem was straightforward.
With that in place we can have a common API for measuring binaries
regardless of the boot command, EFI or boot(m|i|z), and contructing an
EventLog.
I've tested all of the EFI cases -- booting with an empty EventLog and
booting with a previous stage loader providing one and found no
regressions. Eddie tested the bootX part.
Eddie also fixed the sandbox TPM which couldn't be used for the EFI code
and it now supports all the required capabilities. This had a slight
sideeffect in our testing since the EFI subsystem initializes the TPM
early and 'tpm2 init' failed during some python tests. That code only
opens the device though, so we can replace it with 'tpm2 autostart'
which doesn't error out and still allows you to perfom the rest of the
tests but doesn't report an error if the device is already opened.
There's a few minor issues with this PR as well but since testing and
verifying the changes takes a considerable amount of time, I prefer
merging it now.
Heinrich has already sent a PR for -master containing "efi_loader: fix
EFI_ENTRY point on get_active_pcr_banks" and I am not sure if that will
cause any conflicts, but in any case they should be trivial to resolve.
Both the EFI and non-EFI code have a Kconfig for measuring the loaded
Device Tree. The reason this is optional is that we can't reason
when/if devices add random info like kaslr-seed, mac addresses etc in
the DT. In that case measurements are random, board specific and
eventually useless. The reason it was difficult to fix it prior to this
patchset is because the EFI subsystem and thus measurements was brought
up late and DT fixups might have already been applied. With this
patchset we can measure the DT really early in the future.
Heinrich also pointed out that the two Kconfigs for the DTB measurements
can be squashed in a single one and that the documentation only explains
the non-EFI case. I agree on both but as I said this is a sane working
version, so let's pull this first it's aleady big enough and painful to
test.
2023-10-27 23:27:29 +00:00
|
|
|
CONFIG_MEASURED_BOOT=y
|
2016-02-24 16:14:52 +00:00
|
|
|
CONFIG_BOOTSTAGE=y
|
|
|
|
CONFIG_BOOTSTAGE_REPORT=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_BOOTSTAGE_FDT=y
|
|
|
|
CONFIG_BOOTSTAGE_STASH=y
|
|
|
|
CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
|
2021-07-27 01:10:37 +00:00
|
|
|
CONFIG_AUTOBOOT_KEYED=y
|
|
|
|
CONFIG_AUTOBOOT_PROMPT="Enter password \"a\" in %d seconds to stop autoboot\n"
|
|
|
|
CONFIG_AUTOBOOT_ENCRYPTION=y
|
|
|
|
CONFIG_AUTOBOOT_SHA256_FALLBACK=y
|
|
|
|
CONFIG_AUTOBOOT_NEVER_TIMEOUT=y
|
|
|
|
CONFIG_AUTOBOOT_STOP_STR_ENABLE=y
|
|
|
|
CONFIG_AUTOBOOT_STOP_STR_CRYPT="$5$rounds=640000$HrpE65IkB8CM5nCL$BKT3QdF98Bo8fJpTr9tjZLZQyzqPASBY20xuK5Rent9"
|
2022-03-28 20:57:05 +00:00
|
|
|
CONFIG_IMAGE_PRE_LOAD=y
|
|
|
|
CONFIG_IMAGE_PRE_LOAD_SIG=y
|
2023-06-01 16:23:02 +00:00
|
|
|
CONFIG_CEDIT=y
|
2016-02-24 16:14:52 +00:00
|
|
|
CONFIG_CONSOLE_RECORD=y
|
2022-04-25 05:31:24 +00:00
|
|
|
CONFIG_CONSOLE_RECORD_OUT_SIZE=0x6000
|
2017-06-16 03:37:53 +00:00
|
|
|
CONFIG_PRE_CONSOLE_BUFFER=y
|
2021-05-08 19:46:53 +00:00
|
|
|
CONFIG_LOG=y
|
2022-07-11 06:21:32 +00:00
|
|
|
CONFIG_LOG_MAX_LEVEL=9
|
|
|
|
CONFIG_LOG_DEFAULT_LEVEL=6
|
2018-03-28 12:38:17 +00:00
|
|
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
2021-04-11 09:21:58 +00:00
|
|
|
CONFIG_STACKPROTECTOR=y
|
2019-07-05 12:37:34 +00:00
|
|
|
CONFIG_ANDROID_AB=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_CPU=y
|
|
|
|
CONFIG_CMD_LICENSE=y
|
2024-01-25 15:54:37 +00:00
|
|
|
CONFIG_CMD_SMBIOS=y
|
2022-03-28 20:57:05 +00:00
|
|
|
CONFIG_CMD_BOOTM_PRE_LOAD=y
|
2016-04-24 21:29:26 +00:00
|
|
|
CONFIG_CMD_BOOTZ=y
|
2023-12-16 03:14:11 +00:00
|
|
|
CONFIG_BOOTM_OPENRTOS=y
|
|
|
|
CONFIG_BOOTM_OSE=y
|
2020-03-14 11:27:02 +00:00
|
|
|
CONFIG_CMD_BOOTEFI_HELLO=y
|
2022-04-30 05:42:38 +00:00
|
|
|
CONFIG_CMD_BOOTMENU=y
|
2020-01-24 15:53:45 +00:00
|
|
|
CONFIG_CMD_ABOOTIMG=y
|
2016-04-24 21:29:26 +00:00
|
|
|
CONFIG_CMD_ASKENV=y
|
|
|
|
CONFIG_CMD_GREPENV=y
|
2020-07-28 09:51:27 +00:00
|
|
|
CONFIG_CMD_ERASEENV=y
|
2017-05-17 09:25:13 +00:00
|
|
|
CONFIG_CMD_ENV_CALLBACK=y
|
2017-05-17 09:25:14 +00:00
|
|
|
CONFIG_CMD_ENV_FLAGS=y
|
2020-04-14 02:51:52 +00:00
|
|
|
CONFIG_CMD_NVEDIT_EFI=y
|
2020-06-19 12:03:36 +00:00
|
|
|
CONFIG_CMD_NVEDIT_INFO=y
|
2020-07-28 09:51:23 +00:00
|
|
|
CONFIG_CMD_NVEDIT_LOAD=y
|
|
|
|
CONFIG_CMD_NVEDIT_SELECT=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_LOOPW=y
|
2017-08-14 23:58:53 +00:00
|
|
|
CONFIG_CMD_MD5SUM=y
|
|
|
|
CONFIG_CMD_MEMINFO=y
|
2020-07-29 01:41:14 +00:00
|
|
|
CONFIG_CMD_MEM_SEARCH=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_MX_CYCLIC=y
|
2020-02-28 18:28:38 +00:00
|
|
|
CONFIG_CMD_MEMTEST=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_DEMO=y
|
2017-08-14 23:58:53 +00:00
|
|
|
CONFIG_CMD_GPIO=y
|
2022-04-11 10:02:09 +00:00
|
|
|
CONFIG_CMD_GPIO_READ=y
|
2021-01-29 18:56:04 +00:00
|
|
|
CONFIG_CMD_PWM=y
|
2017-01-27 10:00:42 +00:00
|
|
|
CONFIG_CMD_GPT=y
|
2017-09-10 06:54:51 +00:00
|
|
|
CONFIG_CMD_GPT_RENAME=y
|
2017-08-14 23:58:53 +00:00
|
|
|
CONFIG_CMD_IDE=y
|
2016-04-22 20:41:25 +00:00
|
|
|
CONFIG_CMD_I2C=y
|
2022-05-11 09:55:40 +00:00
|
|
|
CONFIG_CMD_LOADM=y
|
2020-07-13 20:22:31 +00:00
|
|
|
CONFIG_CMD_LSBLK=y
|
nand: Add sandbox driver
Add a sandbox NAND flash driver to facilitate testing. This driver supports
any number of devices, each using a single chip-select. The OOB data is
stored in-band, with the separation enforced through the API.
For now, create two devices to test with. The first is a very small device
with basic ECC. The second is an 8G device (chosen to be larger than 32
bits). It uses ONFI, with the values copied from the datasheet. It also
doesn't need too strong ECC, which speeds things up.
Although the nand subsystem determines the parameters of a chip based on
the ID, the driver itself requires devicetree properties for each
parameter. We do not derive parameters from the ID because parsing the ID
is non-trivial. We do not just use the parameters that the nand subsystem
has calculated since that is something we should be testing. An exception
is made for the ECC layout, since that is difficult to encode in the device
tree and is not a property of the device itself.
Despite using file I/O to access the backing data, we do not support using
external files. In my experience, these are unnecessary for testing since
tests can generally be written to write their expected data beforehand.
Additionally, we would need to store the "programmed" information somewhere
(complicating the format and the programming process) or try to detect
whether block are erased at runtime (degrading probe speeds).
Information about whether each page has been programmed is stored in an
in-memory buffer. To simplify the implementation, we only support a single
program per erase. While this is accurate for many larger flashes, some
smaller flashes (512 byte) support multiple programs and/or subpage
programs. Support for this could be added later as I believe some
filesystems expect this.
To test ECC, we support error-injection. Surprisingly, only ECC bytes in
the OOB area are protected, even though all bytes are equally susceptible
to error. Because of this, we take care to only corrupt ECC bytes.
Similarly, because ECC covers "steps" and not the whole page, we must take
care to corrupt data in the same way.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-11-04 20:37:52 +00:00
|
|
|
CONFIG_CMD_MTD=y
|
2020-10-16 10:46:36 +00:00
|
|
|
CONFIG_CMD_MUX=y
|
2018-09-27 07:19:31 +00:00
|
|
|
CONFIG_CMD_OSD=y
|
2017-08-04 22:34:34 +00:00
|
|
|
CONFIG_CMD_PCI=y
|
2023-03-10 19:07:15 +00:00
|
|
|
CONFIG_CMD_PCI_MPS=y
|
2017-08-04 22:34:46 +00:00
|
|
|
CONFIG_CMD_READ=y
|
2017-08-14 23:58:53 +00:00
|
|
|
CONFIG_CMD_REMOTEPROC=y
|
|
|
|
CONFIG_CMD_SPI=y
|
2022-09-06 11:30:35 +00:00
|
|
|
CONFIG_CMD_TEMPERATURE=y
|
2017-08-14 23:58:53 +00:00
|
|
|
CONFIG_CMD_USB=y
|
2023-10-18 14:02:32 +00:00
|
|
|
CONFIG_CMD_RKMTD=y
|
sandbox: add SIGALRM-based watchdog device
In order to test that U-Boot actually maintains the watchdog device(s)
during long-running busy-loops, such as those where we wait for the
user to stop autoboot, we need a watchdog device that actually does
something during those loops; we cannot test that behaviour via the DM
test framework.
So introduce a relatively simple watchdog device which is simply based
on calling the host OS' alarm() function; that has the nice property
that a new call to alarm() simply sets a new deadline, and alarm(0)
cancels any existing alarm. These properties are precisely what we
need to implement start/reset/stop. We install our own handler so that
we get a known message printed if and when the watchdog fires, and by
just invoking that handler directly, we get expire_now for free.
The actual calls to the various OS functions (alarm, signal, raise)
need to be done in os.c, and since the driver code cannot get access
to the values of SIGALRM or SIG_DFL (that would require including a
host header, and that's only os.c which can do that), we cannot simply
do trivial wrappers for signal() and raise(), but instead create
specialized functions just for use by this driver.
Apart from enabling this driver for sandbox{,64}_defconfig, also
enable the wdt command which was useful for hand-testing this new
driver (especially with running u-boot under strace).
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2022-09-27 09:54:04 +00:00
|
|
|
CONFIG_CMD_WDT=y
|
2023-03-02 08:12:24 +00:00
|
|
|
CONFIG_CMD_WRITE=y
|
2018-08-09 12:51:19 +00:00
|
|
|
CONFIG_CMD_AXI=y
|
2022-10-21 17:28:36 +00:00
|
|
|
CONFIG_CMD_CAT=y
|
2021-07-23 12:29:23 +00:00
|
|
|
CONFIG_CMD_SETEXPR_FMT=y
|
2023-10-02 17:58:20 +00:00
|
|
|
CONFIG_CMD_XXD=y
|
2019-07-05 12:37:34 +00:00
|
|
|
CONFIG_CMD_AB_SELECT=y
|
2023-04-11 17:48:48 +00:00
|
|
|
CONFIG_CMD_DHCP6=y
|
2020-06-16 23:06:17 +00:00
|
|
|
CONFIG_BOOTP_DNS2=y
|
2019-07-18 18:43:32 +00:00
|
|
|
CONFIG_CMD_PCAP=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_TFTPPUT=y
|
|
|
|
CONFIG_CMD_TFTPSRV=y
|
2016-04-22 20:41:25 +00:00
|
|
|
CONFIG_CMD_RARP=y
|
|
|
|
CONFIG_CMD_CDP=y
|
|
|
|
CONFIG_CMD_SNTP=y
|
|
|
|
CONFIG_CMD_DNS=y
|
|
|
|
CONFIG_CMD_LINK_LOCAL=y
|
2023-04-22 00:08:22 +00:00
|
|
|
CONFIG_IPV6_ROUTER_DISCOVERY=y
|
2017-05-17 09:25:22 +00:00
|
|
|
CONFIG_CMD_ETHSW=y
|
2023-05-01 15:50:26 +00:00
|
|
|
CONFIG_CMD_2048=y
|
2017-04-27 04:27:55 +00:00
|
|
|
CONFIG_CMD_BMP=y
|
2018-12-14 20:14:29 +00:00
|
|
|
CONFIG_CMD_BOOTCOUNT=y
|
2020-04-14 02:51:52 +00:00
|
|
|
CONFIG_CMD_EFIDEBUG=y
|
2020-07-06 20:01:19 +00:00
|
|
|
CONFIG_CMD_RTC=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_TIME=y
|
2022-08-18 19:44:04 +00:00
|
|
|
CONFIG_CMD_PAUSE=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_TIMER=y
|
2015-05-12 19:46:24 +00:00
|
|
|
CONFIG_CMD_SOUND=y
|
2016-05-23 02:37:22 +00:00
|
|
|
CONFIG_CMD_QFW=y
|
2020-10-29 14:48:01 +00:00
|
|
|
CONFIG_CMD_PSTORE=y
|
|
|
|
CONFIG_CMD_PSTORE_MEM_ADDR=0x3000000
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CMD_BOOTSTAGE=y
|
2015-05-20 19:27:14 +00:00
|
|
|
CONFIG_CMD_PMIC=y
|
|
|
|
CONFIG_CMD_REGULATOR=y
|
2019-09-24 09:32:27 +00:00
|
|
|
CONFIG_CMD_AES=y
|
2015-08-23 00:31:20 +00:00
|
|
|
CONFIG_CMD_TPM=y
|
2015-08-23 00:31:43 +00:00
|
|
|
CONFIG_CMD_TPM_TEST=y
|
2023-11-14 02:14:28 +00:00
|
|
|
CONFIG_CMD_SCMI=y
|
2017-10-03 12:44:55 +00:00
|
|
|
CONFIG_CMD_BTRFS=y
|
2017-04-27 04:27:58 +00:00
|
|
|
CONFIG_CMD_CBFS=y
|
2017-04-27 04:28:03 +00:00
|
|
|
CONFIG_CMD_CRAMFS=y
|
2022-02-26 07:05:51 +00:00
|
|
|
CONFIG_CMD_EROFS=y
|
2016-04-24 21:29:26 +00:00
|
|
|
CONFIG_CMD_EXT4_WRITE=y
|
2020-08-10 19:31:07 +00:00
|
|
|
CONFIG_CMD_SQUASHFS=y
|
2017-08-04 22:34:30 +00:00
|
|
|
CONFIG_CMD_MTDPARTS=y
|
2021-04-11 09:21:58 +00:00
|
|
|
CONFIG_CMD_STACKPROTECTOR_TEST=y
|
2017-01-27 10:00:36 +00:00
|
|
|
CONFIG_MAC_PARTITION=y
|
2017-01-27 10:00:39 +00:00
|
|
|
CONFIG_AMIGA_PARTITION=y
|
2015-05-12 19:46:24 +00:00
|
|
|
CONFIG_OF_CONTROL=y
|
2017-05-19 02:10:02 +00:00
|
|
|
CONFIG_OF_LIVE=y
|
2020-07-28 09:51:22 +00:00
|
|
|
CONFIG_ENV_IS_NOWHERE=y
|
|
|
|
CONFIG_ENV_IS_IN_EXT4=y
|
|
|
|
CONFIG_ENV_EXT4_INTERFACE="host"
|
|
|
|
CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0"
|
2021-04-21 09:06:55 +00:00
|
|
|
CONFIG_ENV_IMPORT_FDT=y
|
2020-08-10 19:31:07 +00:00
|
|
|
CONFIG_BOOTP_SEND_HOSTNAME=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_NETCONSOLE=y
|
2019-06-11 02:51:14 +00:00
|
|
|
CONFIG_IP_DEFRAG=y
|
2021-12-18 18:27:51 +00:00
|
|
|
CONFIG_BOOTP_SERVERIP=y
|
2022-12-29 18:44:21 +00:00
|
|
|
CONFIG_IPV6=y
|
2021-01-12 12:55:25 +00:00
|
|
|
CONFIG_DM_DMA=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_DEBUG_DEVRES=y
|
2020-06-24 10:41:12 +00:00
|
|
|
CONFIG_SIMPLE_PM_BUS=y
|
2015-11-11 13:39:33 +00:00
|
|
|
CONFIG_ADC=y
|
|
|
|
CONFIG_ADC_SANDBOX=y
|
2018-08-09 12:51:19 +00:00
|
|
|
CONFIG_AXI=y
|
|
|
|
CONFIG_AXI_SANDBOX=y
|
2023-02-16 15:33:53 +00:00
|
|
|
CONFIG_BLKMAP=y
|
2022-01-22 12:53:24 +00:00
|
|
|
CONFIG_SYS_IDE_MAXBUS=1
|
|
|
|
CONFIG_SYS_ATA_BASE_ADDR=0x100
|
|
|
|
CONFIG_SYS_ATA_STRIDE=4
|
|
|
|
CONFIG_SYS_ATA_DATA_OFFSET=0
|
|
|
|
CONFIG_SYS_ATA_REG_OFFSET=1
|
|
|
|
CONFIG_SYS_ATA_ALT_OFFSET=2
|
|
|
|
CONFIG_SYS_ATA_IDE0_OFFSET=0
|
2018-12-14 20:14:29 +00:00
|
|
|
CONFIG_BOOTCOUNT_LIMIT=y
|
|
|
|
CONFIG_DM_BOOTCOUNT=y
|
|
|
|
CONFIG_DM_BOOTCOUNT_RTC=y
|
2020-08-26 21:26:24 +00:00
|
|
|
CONFIG_DM_BOOTCOUNT_I2C_EEPROM=y
|
2021-08-30 16:40:24 +00:00
|
|
|
CONFIG_DM_BOOTCOUNT_SYSCON=y
|
2020-07-24 16:19:50 +00:00
|
|
|
CONFIG_BUTTON=y
|
2021-02-18 10:33:18 +00:00
|
|
|
CONFIG_BUTTON_ADC=y
|
2020-07-24 16:19:50 +00:00
|
|
|
CONFIG_BUTTON_GPIO=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_CLK=y
|
2019-07-31 07:02:00 +00:00
|
|
|
CONFIG_CLK_COMPOSITE_CCF=y
|
2021-06-11 04:16:17 +00:00
|
|
|
CONFIG_CLK_K210=y
|
|
|
|
CONFIG_CLK_K210_SET_RATE=y
|
2019-06-24 13:50:51 +00:00
|
|
|
CONFIG_SANDBOX_CLK_CCF=y
|
2022-03-18 12:47:42 +00:00
|
|
|
CONFIG_CLK_SCMI=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CPU=y
|
|
|
|
CONFIG_DM_DEMO=y
|
|
|
|
CONFIG_DM_DEMO_SIMPLE=y
|
|
|
|
CONFIG_DM_DEMO_SHAPE=y
|
2021-01-29 18:56:04 +00:00
|
|
|
CONFIG_DFU_SF=y
|
2019-01-07 22:46:19 +00:00
|
|
|
CONFIG_DMA=y
|
|
|
|
CONFIG_DMA_CHANNELS=y
|
|
|
|
CONFIG_SANDBOX_DMA=y
|
2021-02-05 14:38:54 +00:00
|
|
|
CONFIG_FASTBOOT_FLASH=y
|
|
|
|
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
|
2023-10-02 14:35:27 +00:00
|
|
|
CONFIG_ARM_FFA_TRANSPORT=y
|
2020-05-22 09:08:58 +00:00
|
|
|
CONFIG_GPIO_HOG=y
|
2020-07-08 08:24:00 +00:00
|
|
|
CONFIG_DM_GPIO_LOOKUP_LABEL=y
|
2022-08-04 14:27:17 +00:00
|
|
|
CONFIG_QCOM_PMIC_GPIO=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_SANDBOX_GPIO=y
|
2018-11-27 12:49:50 +00:00
|
|
|
CONFIG_DM_HWSPINLOCK=y
|
|
|
|
CONFIG_HWSPINLOCK_SANDBOX=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_I2C_CROS_EC_TUNNEL=y
|
|
|
|
CONFIG_I2C_CROS_EC_LDO=y
|
|
|
|
CONFIG_DM_I2C_GPIO=y
|
|
|
|
CONFIG_I2C_MUX=y
|
|
|
|
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_CROS_EC_KEYB=y
|
2016-10-18 02:12:37 +00:00
|
|
|
CONFIG_I8042_KEYB=y
|
2021-10-23 14:58:02 +00:00
|
|
|
CONFIG_IOMMU=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_LED=y
|
2017-04-10 17:34:57 +00:00
|
|
|
CONFIG_LED_BLINK=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_LED_GPIO=y
|
2016-06-17 15:43:59 +00:00
|
|
|
CONFIG_DM_MAILBOX=y
|
|
|
|
CONFIG_SANDBOX_MBOX=y
|
|
|
|
CONFIG_MISC=y
|
2022-05-05 17:11:40 +00:00
|
|
|
CONFIG_NVMEM=y
|
2015-02-13 19:20:47 +00:00
|
|
|
CONFIG_CROS_EC=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CROS_EC_I2C=y
|
|
|
|
CONFIG_CROS_EC_LPC=y
|
2015-02-13 19:20:47 +00:00
|
|
|
CONFIG_CROS_EC_SANDBOX=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_CROS_EC_SPI=y
|
2019-12-07 04:41:57 +00:00
|
|
|
CONFIG_P2SB=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_PWRSEQ=y
|
2016-07-25 22:18:15 +00:00
|
|
|
CONFIG_I2C_EEPROM=y
|
2020-07-08 03:32:12 +00:00
|
|
|
CONFIG_MMC_PCI=y
|
2017-01-30 10:46:50 +00:00
|
|
|
CONFIG_MMC_SANDBOX=y
|
2020-07-08 03:32:12 +00:00
|
|
|
CONFIG_MMC_SDHCI=y
|
nand: Add sandbox driver
Add a sandbox NAND flash driver to facilitate testing. This driver supports
any number of devices, each using a single chip-select. The OOB data is
stored in-band, with the separation enforced through the API.
For now, create two devices to test with. The first is a very small device
with basic ECC. The second is an 8G device (chosen to be larger than 32
bits). It uses ONFI, with the values copied from the datasheet. It also
doesn't need too strong ECC, which speeds things up.
Although the nand subsystem determines the parameters of a chip based on
the ID, the driver itself requires devicetree properties for each
parameter. We do not derive parameters from the ID because parsing the ID
is non-trivial. We do not just use the parameters that the nand subsystem
has calculated since that is something we should be testing. An exception
is made for the ECC layout, since that is difficult to encode in the device
tree and is not a property of the device itself.
Despite using file I/O to access the backing data, we do not support using
external files. In my experience, these are unnecessary for testing since
tests can generally be written to write their expected data beforehand.
Additionally, we would need to store the "programmed" information somewhere
(complicating the format and the programming process) or try to detect
whether block are erased at runtime (degrading probe speeds).
Information about whether each page has been programmed is stored in an
in-memory buffer. To simplify the implementation, we only support a single
program per erase. While this is accurate for many larger flashes, some
smaller flashes (512 byte) support multiple programs and/or subpage
programs. Support for this could be added later as I believe some
filesystems expect this.
To test ECC, we support error-injection. Surprisingly, only ECC bytes in
the OOB area are protected, even though all bytes are equally susceptible
to error. Because of this, we take care to only corrupt ECC bytes.
Similarly, because ECC covers "steps" and not the whole page, we must take
care to corrupt data in the same way.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-11-04 20:37:52 +00:00
|
|
|
CONFIG_DM_MTD=y
|
|
|
|
CONFIG_MTD_RAW_NAND=y
|
|
|
|
CONFIG_SYS_MAX_NAND_DEVICE=8
|
|
|
|
CONFIG_SYS_NAND_USE_FLASH_BBT=y
|
|
|
|
CONFIG_NAND_SANDBOX=y
|
|
|
|
CONFIG_SYS_NAND_ONFI_DETECTION=y
|
|
|
|
CONFIG_SYS_NAND_PAGE_SIZE=0x200
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_SPI_FLASH_SANDBOX=y
|
2023-01-17 17:48:03 +00:00
|
|
|
CONFIG_BOOTDEV_SPI_FLASH=y
|
2015-11-25 13:34:54 +00:00
|
|
|
CONFIG_SPI_FLASH_ATMEL=y
|
|
|
|
CONFIG_SPI_FLASH_EON=y
|
|
|
|
CONFIG_SPI_FLASH_GIGADEVICE=y
|
|
|
|
CONFIG_SPI_FLASH_MACRONIX=y
|
|
|
|
CONFIG_SPI_FLASH_SPANSION=y
|
|
|
|
CONFIG_SPI_FLASH_STMICRO=y
|
|
|
|
CONFIG_SPI_FLASH_SST=y
|
|
|
|
CONFIG_SPI_FLASH_WINBOND=y
|
2023-08-23 00:18:21 +00:00
|
|
|
CONFIG_NVMXIP_QSPI=y
|
2020-10-16 10:46:34 +00:00
|
|
|
CONFIG_MULTIPLEXER=y
|
|
|
|
CONFIG_MUX_MMIO=y
|
2022-01-22 19:38:11 +00:00
|
|
|
CONFIG_NVME_PCI=y
|
2019-10-20 00:10:20 +00:00
|
|
|
CONFIG_PCI_REGION_MULTI_ENTRY=y
|
2023-07-30 18:17:09 +00:00
|
|
|
CONFIG_PCI_FTPCI100=y
|
2023-10-02 17:58:20 +00:00
|
|
|
CONFIG_PCI_SANDBOX=y
|
2017-06-19 13:47:40 +00:00
|
|
|
CONFIG_PHY=y
|
|
|
|
CONFIG_PHY_SANDBOX=y
|
2015-08-27 03:44:30 +00:00
|
|
|
CONFIG_PINCTRL=y
|
|
|
|
CONFIG_PINCONF=y
|
|
|
|
CONFIG_PINCTRL_SANDBOX=y
|
2021-04-11 07:39:50 +00:00
|
|
|
CONFIG_PINCTRL_SINGLE=y
|
2016-09-08 20:11:59 +00:00
|
|
|
CONFIG_POWER_DOMAIN=y
|
|
|
|
CONFIG_SANDBOX_POWER_DOMAIN=y
|
2023-10-16 05:39:45 +00:00
|
|
|
CONFIG_SCMI_POWER_DOMAIN=y
|
2015-05-20 19:27:14 +00:00
|
|
|
CONFIG_DM_PMIC=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_PMIC_ACT8846=y
|
|
|
|
CONFIG_DM_PMIC_PFUZE100=y
|
|
|
|
CONFIG_DM_PMIC_MAX77686=y
|
2018-05-15 14:26:41 +00:00
|
|
|
CONFIG_DM_PMIC_MC34708=y
|
2022-08-04 14:27:17 +00:00
|
|
|
CONFIG_PMIC_QCOM=y
|
2017-05-02 06:54:52 +00:00
|
|
|
CONFIG_PMIC_RK8XX=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_PMIC_S2MPS11=y
|
|
|
|
CONFIG_DM_PMIC_SANDBOX=y
|
|
|
|
CONFIG_PMIC_S5M8767=y
|
|
|
|
CONFIG_PMIC_TPS65090=y
|
2015-05-20 19:27:14 +00:00
|
|
|
CONFIG_DM_REGULATOR=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_REGULATOR_ACT8846=y
|
|
|
|
CONFIG_DM_REGULATOR_PFUZE100=y
|
|
|
|
CONFIG_DM_REGULATOR_MAX77686=y
|
|
|
|
CONFIG_DM_REGULATOR_FIXED=y
|
2017-05-02 06:54:52 +00:00
|
|
|
CONFIG_REGULATOR_RK8XX=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_REGULATOR_S5M8767=y
|
2015-05-20 19:27:14 +00:00
|
|
|
CONFIG_DM_REGULATOR_SANDBOX=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_REGULATOR_TPS65090=y
|
2021-04-27 12:28:38 +00:00
|
|
|
CONFIG_DM_REGULATOR_SCMI=y
|
2017-05-01 15:41:11 +00:00
|
|
|
CONFIG_DM_PWM=y
|
2021-05-19 16:33:31 +00:00
|
|
|
CONFIG_PWM_CROS_EC=y
|
2017-05-01 15:41:11 +00:00
|
|
|
CONFIG_PWM_SANDBOX=y
|
2015-08-19 15:33:42 +00:00
|
|
|
CONFIG_RAM=y
|
2021-07-27 01:10:37 +00:00
|
|
|
CONFIG_DM_REBOOT_MODE=y
|
|
|
|
CONFIG_DM_REBOOT_MODE_GPIO=y
|
|
|
|
CONFIG_DM_REBOOT_MODE_RTC=y
|
2015-11-11 13:39:33 +00:00
|
|
|
CONFIG_REMOTEPROC_SANDBOX=y
|
2016-06-17 15:43:59 +00:00
|
|
|
CONFIG_SANDBOX_RESET=y
|
2020-06-24 10:41:14 +00:00
|
|
|
CONFIG_RESET_SYSCON=y
|
2020-09-09 16:44:07 +00:00
|
|
|
CONFIG_RESET_SCMI=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_DM_RTC=y
|
2023-03-19 21:23:44 +00:00
|
|
|
CONFIG_RTC_MAX313XX=y
|
2019-05-28 23:29:58 +00:00
|
|
|
CONFIG_RTC_RV8803=y
|
2023-01-09 16:30:08 +00:00
|
|
|
CONFIG_RTC_HT1380=y
|
2022-02-08 23:50:55 +00:00
|
|
|
CONFIG_SCSI=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_SANDBOX_SERIAL=y
|
2023-09-21 08:13:38 +00:00
|
|
|
CONFIG_SM=y
|
2018-08-08 01:40:14 +00:00
|
|
|
CONFIG_SMEM=y
|
|
|
|
CONFIG_SANDBOX_SMEM=y
|
2015-03-06 20:19:08 +00:00
|
|
|
CONFIG_SOUND=y
|
2020-07-08 03:32:17 +00:00
|
|
|
CONFIG_SOUND_DA7219=y
|
2020-07-08 03:32:18 +00:00
|
|
|
CONFIG_SOUND_MAX98357A=y
|
2015-03-06 20:19:14 +00:00
|
|
|
CONFIG_SOUND_SANDBOX=y
|
2020-07-28 12:46:52 +00:00
|
|
|
CONFIG_SOC_DEVICE=y
|
2015-09-28 12:14:15 +00:00
|
|
|
CONFIG_SANDBOX_SPI=y
|
2016-03-15 17:20:23 +00:00
|
|
|
CONFIG_SPMI=y
|
|
|
|
CONFIG_SPMI_SANDBOX=y
|
2020-11-05 13:32:05 +00:00
|
|
|
CONFIG_SYSINFO=y
|
|
|
|
CONFIG_SYSINFO_SANDBOX=y
|
2021-04-20 14:50:58 +00:00
|
|
|
CONFIG_SYSINFO_GPIO=y
|
2016-09-08 20:11:59 +00:00
|
|
|
CONFIG_SYSRESET=y
|
2022-09-06 11:30:35 +00:00
|
|
|
CONFIG_DM_THERMAL=y
|
2015-10-30 07:35:52 +00:00
|
|
|
CONFIG_TIMER=y
|
2016-02-24 16:14:53 +00:00
|
|
|
CONFIG_TIMER_EARLY=y
|
2015-10-30 07:35:52 +00:00
|
|
|
CONFIG_SANDBOX_TIMER=y
|
2015-05-12 19:46:24 +00:00
|
|
|
CONFIG_USB=y
|
2023-09-01 09:49:49 +00:00
|
|
|
CONFIG_DM_USB_GADGET=y
|
2015-05-12 19:46:24 +00:00
|
|
|
CONFIG_USB_EMUL=y
|
2015-11-09 06:48:07 +00:00
|
|
|
CONFIG_USB_KEYBOARD=y
|
2021-09-10 14:16:23 +00:00
|
|
|
CONFIG_USB_GADGET=y
|
|
|
|
CONFIG_USB_GADGET_DOWNLOAD=y
|
|
|
|
CONFIG_USB_ETHER=y
|
|
|
|
CONFIG_USB_ETH_CDC=y
|
2022-10-18 13:46:31 +00:00
|
|
|
CONFIG_VIDEO=y
|
2023-03-07 10:21:19 +00:00
|
|
|
CONFIG_VIDEO_FONT_SUN12X22=y
|
2020-07-03 03:12:29 +00:00
|
|
|
CONFIG_VIDEO_COPY=y
|
2016-01-22 20:53:37 +00:00
|
|
|
CONFIG_CONSOLE_ROTATION=y
|
2016-01-15 01:10:50 +00:00
|
|
|
CONFIG_CONSOLE_TRUETYPE=y
|
|
|
|
CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
|
2021-11-08 03:59:43 +00:00
|
|
|
CONFIG_I2C_EDID=y
|
2016-01-19 02:52:24 +00:00
|
|
|
CONFIG_VIDEO_SANDBOX_SDL=y
|
2019-10-07 13:29:05 +00:00
|
|
|
CONFIG_VIDEO_DSI_HOST_SANDBOX=y
|
2018-11-14 00:44:53 +00:00
|
|
|
CONFIG_OSD=y
|
|
|
|
CONFIG_SANDBOX_OSD=y
|
2021-11-19 20:23:58 +00:00
|
|
|
CONFIG_BMP_16BPP=y
|
2021-11-19 20:23:59 +00:00
|
|
|
CONFIG_BMP_24BPP=y
|
2018-09-18 07:35:36 +00:00
|
|
|
CONFIG_W1=y
|
|
|
|
CONFIG_W1_GPIO=y
|
|
|
|
CONFIG_W1_EEPROM=y
|
|
|
|
CONFIG_W1_EEPROM_SANDBOX=y
|
2021-08-19 09:57:00 +00:00
|
|
|
# CONFIG_WATCHDOG_AUTOSTART is not set
|
2017-06-19 13:47:40 +00:00
|
|
|
CONFIG_WDT=y
|
2021-08-19 09:57:05 +00:00
|
|
|
CONFIG_WDT_GPIO=y
|
2017-06-19 13:47:40 +00:00
|
|
|
CONFIG_WDT_SANDBOX=y
|
sandbox: add SIGALRM-based watchdog device
In order to test that U-Boot actually maintains the watchdog device(s)
during long-running busy-loops, such as those where we wait for the
user to stop autoboot, we need a watchdog device that actually does
something during those loops; we cannot test that behaviour via the DM
test framework.
So introduce a relatively simple watchdog device which is simply based
on calling the host OS' alarm() function; that has the nice property
that a new call to alarm() simply sets a new deadline, and alarm(0)
cancels any existing alarm. These properties are precisely what we
need to implement start/reset/stop. We install our own handler so that
we get a known message printed if and when the watchdog fires, and by
just invoking that handler directly, we get expire_now for free.
The actual calls to the various OS functions (alarm, signal, raise)
need to be done in os.c, and since the driver code cannot get access
to the values of SIGALRM or SIG_DFL (that would require including a
host header, and that's only os.c which can do that), we cannot simply
do trivial wrappers for signal() and raise(), but instead create
specialized functions just for use by this driver.
Apart from enabling this driver for sandbox{,64}_defconfig, also
enable the wdt command which was useful for hand-testing this new
driver (especially with running u-boot under strace).
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2022-09-27 09:54:04 +00:00
|
|
|
CONFIG_WDT_ALARM_SANDBOX=y
|
2023-04-12 11:01:58 +00:00
|
|
|
CONFIG_WDT_FTWDT010=y
|
2017-04-27 04:27:59 +00:00
|
|
|
CONFIG_FS_CBFS=y
|
2017-04-27 04:28:04 +00:00
|
|
|
CONFIG_FS_CRAMFS=y
|
2022-07-13 12:06:58 +00:00
|
|
|
CONFIG_ADDR_MAP=y
|
2015-08-19 15:33:42 +00:00
|
|
|
CONFIG_CMD_DHRYSTONE=y
|
2021-08-16 13:35:24 +00:00
|
|
|
CONFIG_ECDSA=y
|
|
|
|
CONFIG_ECDSA_VERIFY=y
|
2015-08-23 00:31:20 +00:00
|
|
|
CONFIG_TPM=y
|
2015-05-13 11:38:36 +00:00
|
|
|
CONFIG_ERRNO_STR=y
|
2023-10-07 21:41:01 +00:00
|
|
|
CONFIG_GETOPT=y
|
2021-01-29 18:56:04 +00:00
|
|
|
CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
|
|
|
CONFIG_EFI_CAPSULE_ON_DISK=y
|
|
|
|
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
2023-04-14 08:39:18 +00:00
|
|
|
CONFIG_EFI_CAPSULE_AUTHENTICATE=y
|
2023-08-22 17:40:06 +00:00
|
|
|
CONFIG_EFI_CAPSULE_ESL_FILE="board/sandbox/capsule_pub_esl_good.esl"
|
2020-04-14 02:51:52 +00:00
|
|
|
CONFIG_EFI_SECURE_BOOT=y
|
2019-03-21 18:10:08 +00:00
|
|
|
CONFIG_TEST_FDTDEC=y
|
2015-05-20 19:27:31 +00:00
|
|
|
CONFIG_UNIT_TEST=y
|
2015-05-20 19:27:30 +00:00
|
|
|
CONFIG_UT_TIME=y
|
2015-05-20 19:27:29 +00:00
|
|
|
CONFIG_UT_DM=y
|