Add USB serial download protocol support to SPL. If the SoC started in recovery mode the SPL will immediately switch to SDP and wait for further downloads/commands from the host side. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Reviewed-by: Stefano Babic <sbabic@denx.de> Reviewed-by: Łukasz Majewski <lukma@denx.de>master
parent
2f005695df
commit
a3774c1c3c
@ -0,0 +1,37 @@ |
||||
/*
|
||||
* (C) Copyright 2016 Toradex |
||||
* Author: Stefan Agner <stefan.agner@toradex.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <spl.h> |
||||
#include <usb.h> |
||||
#include <g_dnl.h> |
||||
#include <sdp.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
static int spl_sdp_load_image(struct spl_image_info *spl_image, |
||||
struct spl_boot_device *bootdev) |
||||
{ |
||||
int ret; |
||||
const int controller_index = 0; |
||||
|
||||
g_dnl_clear_detach(); |
||||
g_dnl_register("usb_dnl_sdp"); |
||||
|
||||
ret = sdp_init(controller_index); |
||||
if (ret) { |
||||
error("SDP init failed: %d", ret); |
||||
return -ENODEV; |
||||
} |
||||
|
||||
/* This command typically does not return but jumps to an image */ |
||||
sdp_handle(controller_index); |
||||
error("SDP ended"); |
||||
|
||||
return -EINVAL; |
||||
} |
||||
SPL_LOAD_IMAGE_METHOD("USB SDP", 0, BOOT_DEVICE_BOARD, spl_sdp_load_image); |
Loading…
Reference in new issue