tests/boot-serial-test: Add STM32VLDISCOVERY board testcase

New mini-kernel test for STM32VLDISCOVERY USART1.

Signed-off-by: Alexandre Iooss <erdnaxe@crans.org>
Acked-by: Thomas Huth <thuth@redhat.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20210617165647.2575955-5-erdnaxe@crans.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Alexandre Iooss 2021-06-17 18:56:47 +02:00 committed by Peter Maydell
parent 1af060e574
commit 7cb4097f2d

View File

@ -94,6 +94,41 @@ static const uint8_t kernel_nrf51[] = {
0x1c, 0x25, 0x00, 0x40 /* 0x4000251c = UART TXD */ 0x1c, 0x25, 0x00, 0x40 /* 0x4000251c = UART TXD */
}; };
static const uint8_t kernel_stm32vldiscovery[] = {
0x00, 0x00, 0x00, 0x00, /* Stack top address */
0x1d, 0x00, 0x00, 0x00, /* Reset handler address */
0x00, 0x00, 0x00, 0x00, /* NMI */
0x00, 0x00, 0x00, 0x00, /* Hard fault */
0x00, 0x00, 0x00, 0x00, /* Memory management fault */
0x00, 0x00, 0x00, 0x00, /* Bus fault */
0x00, 0x00, 0x00, 0x00, /* Usage fault */
0x0b, 0x4b, /* ldr r3, [pc, #44] Get RCC */
0x44, 0xf2, 0x04, 0x02, /* movw r2, #16388 */
0x1a, 0x60, /* str r2, [r3] */
0x0a, 0x4b, /* ldr r3, [pc, #40] Get GPIOA */
0x1a, 0x68, /* ldr r2, [r3] */
0x22, 0xf0, 0xf0, 0x02, /* bic r2, r2, #240 */
0x1a, 0x60, /* str r2, [r3] */
0x1a, 0x68, /* ldr r2, [r3] */
0x42, 0xf0, 0xb0, 0x02, /* orr r2, r2, #176 */
0x1a, 0x60, /* str r2, [r3] */
0x07, 0x4b, /* ldr r3, [pc, #26] Get BAUD */
0x45, 0x22, /* movs r2, #69 */
0x1a, 0x60, /* str r2, [r3] */
0x06, 0x4b, /* ldr r3, [pc, #24] Get ENABLE */
0x42, 0xf2, 0x08, 0x02, /* movw r2, #8200 */
0x1a, 0x60, /* str r2, [r3] */
0x05, 0x4b, /* ldr r3, [pc, #20] Get TXD */
0x54, 0x22, /* movs r2, 'T' */
0x1a, 0x60, /* str r2, [r3] */
0xfe, 0xe7, /* b . */
0x18, 0x10, 0x02, 0x40, /* 0x40021018 = RCC */
0x04, 0x08, 0x01, 0x40, /* 0x40010804 = GPIOA */
0x08, 0x38, 0x01, 0x40, /* 0x40013808 = USART1 BAUD */
0x0c, 0x38, 0x01, 0x40, /* 0x4001380c = USART1 ENABLE */
0x04, 0x38, 0x01, 0x40 /* 0x40013804 = USART1 TXD */
};
typedef struct testdef { typedef struct testdef {
const char *arch; /* Target architecture */ const char *arch; /* Target architecture */
const char *machine; /* Name of the machine */ const char *machine; /* Name of the machine */
@ -144,6 +179,8 @@ static testdef_t tests[] = {
{ "aarch64", "virt", "-cpu max", "TT", sizeof(kernel_aarch64), { "aarch64", "virt", "-cpu max", "TT", sizeof(kernel_aarch64),
kernel_aarch64 }, kernel_aarch64 },
{ "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 }, { "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 },
{ "arm", "stm32vldiscovery", "", "T",
sizeof(kernel_stm32vldiscovery), kernel_stm32vldiscovery },
{ NULL } { NULL }
}; };