/* * This file is part of the coreboot project. * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include #include #include #include #include #include #include #include #include #include /* Check if it is okay to enable USB Device Controller (UDC). */ int vboot_can_enable_udc(void) { /* Allow UDC in all vboot modes. */ if (!CONFIG(CHROMEOS) && CONFIG(VBOOT_ALWAYS_ALLOW_UDC)) return 1; /* Always disable if not in developer mode */ if (!vboot_developer_mode_enabled()) return 0; /* Enable if GBB flag is set */ if (vboot_is_gbb_flag_set(VB2_GBB_FLAG_ENABLE_UDC)) return 1; /* Enable if VBNV flag is set */ if (vbnv_udc_enable_flag()) return 1; /* Otherwise disable */ return 0; } /* ============================ VBOOT REBOOT ============================== */ void __weak vboot_platform_prepare_reboot(void) { } void vboot_reboot(void) { if (CONFIG(CONSOLE_CBMEM_DUMP_TO_UART)) cbmem_dump_console(); vboot_platform_prepare_reboot(); board_reset(); }