zephyr: selectable serial device for recovery
This commit adds a choice for the device to use for serial recovery. Signed-off-by: Emanuele Di Santo <emdi@nordicsemi.no> Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no> fixup
This commit is contained in:
parent
68b3053694
commit
c4bf78009c
|
@ -127,6 +127,23 @@ menuconfig MCUBOOT_SERIAL
|
||||||
|
|
||||||
if MCUBOOT_SERIAL
|
if MCUBOOT_SERIAL
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Serial device"
|
||||||
|
default BOOT_SERIAL_UART if !BOARD_NRF52840_PCA10059
|
||||||
|
default BOOT_SERIAL_CDC_ACM if BOARD_NRF52840_PCA10059
|
||||||
|
|
||||||
|
config BOOT_SERIAL_UART
|
||||||
|
bool "UART"
|
||||||
|
# SERIAL and UART_INTERRUPT_DRIVEN already selected
|
||||||
|
|
||||||
|
config BOOT_SERIAL_CDC_ACM
|
||||||
|
bool "CDC ACM"
|
||||||
|
select USB
|
||||||
|
select USB_DEVICE_STACK
|
||||||
|
select USB_CDC_ACM
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
config BOOT_MAX_LINE_INPUT_LEN
|
config BOOT_MAX_LINE_INPUT_LEN
|
||||||
int "Maximum command line length"
|
int "Maximum command line length"
|
||||||
default 512
|
default 512
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <misc/__assert.h>
|
#include <misc/__assert.h>
|
||||||
#include <flash.h>
|
#include <flash.h>
|
||||||
#include <drivers/system_timer.h>
|
#include <drivers/system_timer.h>
|
||||||
|
#include <usb/usb_device.h>
|
||||||
#include <soc.h>
|
#include <soc.h>
|
||||||
|
|
||||||
#include "target.h"
|
#include "target.h"
|
||||||
|
@ -66,6 +67,10 @@ static void do_boot(struct boot_rsp *rsp)
|
||||||
rsp->br_hdr->ih_hdr_size);
|
rsp->br_hdr->ih_hdr_size);
|
||||||
irq_lock();
|
irq_lock();
|
||||||
sys_clock_disable();
|
sys_clock_disable();
|
||||||
|
#ifdef CONFIG_BOOT_SERIAL_CDC_ACM
|
||||||
|
/* Disable the USB to prevent it from firing interrupts */
|
||||||
|
usb_disable();
|
||||||
|
#endif
|
||||||
__set_MSP(vt->msp);
|
__set_MSP(vt->msp);
|
||||||
((void (*)(void))vt->reset)();
|
((void (*)(void))vt->reset)();
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,7 +188,11 @@ boot_uart_fifo_getline(char **line)
|
||||||
static int
|
static int
|
||||||
boot_uart_fifo_init(void)
|
boot_uart_fifo_init(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_BOOT_SERIAL_UART
|
||||||
uart_dev = device_get_binding(CONFIG_UART_CONSOLE_ON_DEV_NAME);
|
uart_dev = device_get_binding(CONFIG_UART_CONSOLE_ON_DEV_NAME);
|
||||||
|
#elif CONFIG_BOOT_SERIAL_CDC_ACM
|
||||||
|
uart_dev = device_get_binding(CONFIG_CDC_ACM_PORT_NAME);
|
||||||
|
#endif
|
||||||
u8_t c;
|
u8_t c;
|
||||||
|
|
||||||
if (!uart_dev) {
|
if (!uart_dev) {
|
||||||
|
|
Loading…
Reference in New Issue