mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-27 18:25:05 +00:00
When a debug accessory is connected to the type-C port while the write protection is enabled, put the case closed debugging in "partial" mode rather than "full". Update the "partial" mode to provide read-only access to the AP and EC consoles. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=smaug BUG=chrome-os-partner:44700 TEST=check the EC console input/output over USB is still working with SuzyQ on a write-protected system, verify that the console input is disabled. Change-Id: I5baa03d6e738d06437c45469f46b286e76a755a4 Reviewed-on: https://chromium-review.googlesource.com/297141 Commit-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Anton Staaf <robotboy@chromium.org> Reviewed-by: Alec Berg <alecaberg@chromium.org>
57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*
|
|
* Case Closed Debug common implementation
|
|
*/
|
|
|
|
#include "case_closed_debug.h"
|
|
|
|
#include "common.h"
|
|
#include "usb_api.h"
|
|
#include "usb_console.h"
|
|
#include "usb_spi.h"
|
|
|
|
#if !defined(CONFIG_USB)
|
|
#error "CONFIG_USB must be defined to use Case Closed Debugging"
|
|
#endif
|
|
|
|
#if !defined(CONFIG_USB_CONSOLE)
|
|
#error "CONFIG_USB_CONSOLE must be defined to use Case Closed Debugging"
|
|
#endif
|
|
|
|
#if !defined(CONFIG_USB_INHIBIT_INIT)
|
|
#error "CONFIG_USB_INHIBIT_INIT must be defined to use Case Closed Debugging"
|
|
#endif
|
|
|
|
#if defined(CONFIG_USB_SPI)
|
|
USB_SPI_CONFIG(ccd_usb_spi, USB_IFACE_SPI, USB_EP_SPI);
|
|
#endif
|
|
|
|
static enum ccd_mode current_mode = CCD_MODE_DISABLED;
|
|
|
|
void ccd_set_mode(enum ccd_mode new_mode)
|
|
{
|
|
if (new_mode == current_mode)
|
|
return;
|
|
|
|
if (current_mode != CCD_MODE_DISABLED)
|
|
usb_release();
|
|
|
|
current_mode = new_mode;
|
|
|
|
/*
|
|
* The forwarding of the local console over USB is read-only
|
|
* if we are not in the fully enabled mode.
|
|
*/
|
|
usb_console_enable(new_mode != CCD_MODE_DISABLED,
|
|
new_mode != CCD_MODE_ENABLED);
|
|
|
|
#if defined(CONFIG_USB_SPI)
|
|
usb_spi_enable(&ccd_usb_spi, new_mode == CCD_MODE_ENABLED);
|
|
#endif
|
|
|
|
if (new_mode != CCD_MODE_DISABLED)
|
|
usb_init();
|
|
}
|