uboot/common/spl/spl_sdp.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * (C) Copyright 2016 Toradex
   4 * Author: Stefan Agner <stefan.agner@toradex.com>
   5 */
   6
   7#include <common.h>
   8#include <spl.h>
   9#include <usb.h>
  10#include <g_dnl.h>
  11#include <sdp.h>
  12
  13static int spl_sdp_load_image(struct spl_image_info *spl_image,
  14                              struct spl_boot_device *bootdev)
  15{
  16        int ret;
  17        const int controller_index = 0;
  18
  19        g_dnl_clear_detach();
  20        ret = g_dnl_register("usb_dnl_sdp");
  21        if (ret) {
  22                pr_err("SDP dnl register failed: %d\n", ret);
  23                return ret;
  24        }
  25
  26        ret = sdp_init(controller_index);
  27        if (ret) {
  28                pr_err("SDP init failed: %d\n", ret);
  29                return -ENODEV;
  30        }
  31
  32        /*
  33         * This command either loads a legacy image, jumps and never returns,
  34         * or it loads a FIT image and returns it to be handled by the SPL
  35         * code.
  36         */
  37        ret = spl_sdp_handle(controller_index, spl_image);
  38        debug("SDP ended\n");
  39
  40        return ret;
  41}
  42SPL_LOAD_IMAGE_METHOD("USB SDP", 0, BOOT_DEVICE_BOARD, spl_sdp_load_image);
  43