mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-15 20:19:23 +00:00
refactor(core): remove common.c on all platforms
[no changelog]
This commit is contained in:
parent
12a9dca5e1
commit
bfa3ea4e5e
@ -258,10 +258,6 @@ int main(void) {
|
||||
|
||||
secret_init();
|
||||
|
||||
#ifdef STM32F4
|
||||
clear_otg_hs_memory();
|
||||
#endif
|
||||
|
||||
#ifdef USE_SDRAM
|
||||
sdram_init();
|
||||
#endif
|
||||
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
* This file is part of the Trezor project, https://trezor.io/
|
||||
*
|
||||
* Copyright (c) SatoshiLabs
|
||||
*
|
||||
* 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, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include STM32_HAL_H
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "display.h"
|
||||
#include "error_handling.h"
|
||||
#include "model.h"
|
||||
|
||||
#include "flash_otp.h"
|
||||
#include "platform.h"
|
||||
#include "rand.h"
|
||||
|
||||
#include "stm32f4xx_ll_utils.h"
|
||||
|
||||
#ifdef TREZOR_MODEL_T
|
||||
#include "backlight_pwm.h"
|
||||
#endif
|
||||
|
||||
#ifdef KERNEL_MODE
|
||||
|
||||
// reference RM0090 section 35.12.1 Figure 413
|
||||
#define USB_OTG_HS_DATA_FIFO_RAM (USB_OTG_HS_PERIPH_BASE + 0x20000U)
|
||||
#define USB_OTG_HS_DATA_FIFO_SIZE (4096U)
|
||||
|
||||
void clear_otg_hs_memory(void) {
|
||||
// use the HAL version due to section 2.1.6 of STM32F42xx Errata sheet
|
||||
__HAL_RCC_USB_OTG_HS_CLK_ENABLE(); // enable USB_OTG_HS peripheral clock so
|
||||
// that the peripheral memory is
|
||||
// accessible
|
||||
memset_reg(
|
||||
(volatile void *)USB_OTG_HS_DATA_FIFO_RAM,
|
||||
(volatile void *)(USB_OTG_HS_DATA_FIFO_RAM + USB_OTG_HS_DATA_FIFO_SIZE),
|
||||
0);
|
||||
__HAL_RCC_USB_OTG_HS_CLK_DISABLE(); // disable USB OTG_HS peripheral clock as
|
||||
// the peripheral is not needed right now
|
||||
}
|
||||
|
||||
#endif // KERNEL_MODE
|
@ -207,4 +207,23 @@ void set_core_clock(clock_settings_t settings) {
|
||||
}
|
||||
#endif
|
||||
|
||||
// reference RM0090 section 35.12.1 Figure 413
|
||||
#define USB_OTG_HS_DATA_FIFO_RAM (USB_OTG_HS_PERIPH_BASE + 0x20000U)
|
||||
#define USB_OTG_HS_DATA_FIFO_SIZE (4096U)
|
||||
|
||||
// Clears USB FIFO memory to prevent data leakage of sensitive information
|
||||
__attribute((used)) void clear_otg_hs_memory(void) {
|
||||
// use the HAL version due to section 2.1.6 of STM32F42xx Errata sheet
|
||||
__HAL_RCC_USB_OTG_HS_CLK_ENABLE(); // enable USB_OTG_HS peripheral clock so
|
||||
// that the peripheral memory is
|
||||
// accessible
|
||||
memset_reg(
|
||||
(volatile void *)USB_OTG_HS_DATA_FIFO_RAM,
|
||||
(volatile void *)(USB_OTG_HS_DATA_FIFO_RAM + USB_OTG_HS_DATA_FIFO_SIZE),
|
||||
0);
|
||||
|
||||
__HAL_RCC_USB_OTG_HS_CLK_DISABLE(); // disable USB OTG_HS peripheral clock as
|
||||
// the peripheral is not needed right now
|
||||
}
|
||||
|
||||
#endif // KERNEL_MODE
|
||||
|
@ -35,6 +35,5 @@ void set_core_clock(clock_settings_t settings);
|
||||
void memset_reg(volatile void *start, volatile void *stop, uint32_t val);
|
||||
void jump_to(uint32_t address);
|
||||
void jump_to_with_flag(uint32_t address, uint32_t register_flag);
|
||||
void clear_otg_hs_memory(void);
|
||||
|
||||
#endif // TREZORHAL_STM32_H
|
||||
|
@ -43,11 +43,16 @@ reset_handler:
|
||||
ldr r2, =data_size // size in bytes
|
||||
bl memcpy
|
||||
|
||||
// setup the stack protector (see build script "-fstack-protector-all") with an unpredictable value
|
||||
// setup the stack protector (see build script "-fstack-protector-all")
|
||||
// with an unpredictable value
|
||||
bl rng_get
|
||||
ldr r1, = __stack_chk_guard
|
||||
str r0, [r1]
|
||||
|
||||
// Clear the USB FIFO memory to prevent data leakage of sensitive information.
|
||||
// This peripheral memory is not cleared by a device reset.
|
||||
bl clear_otg_hs_memory
|
||||
|
||||
// enter the application code
|
||||
bl main
|
||||
|
||||
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* This file is part of the Trezor project, https://trezor.io/
|
||||
*
|
||||
* Copyright (c) SatoshiLabs
|
||||
*
|
||||
* 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, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include STM32_HAL_H
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "display.h"
|
||||
#include "error_handling.h"
|
||||
#include "flash_otp.h"
|
||||
#include "model.h"
|
||||
#include "rand.h"
|
||||
#include "secret.h"
|
||||
|
||||
#include "stm32u5xx_ll_utils.h"
|
@ -43,7 +43,6 @@ def stm32f4_common_files(env, defines, sources, paths):
|
||||
"embed/trezorhal/stm32f4/applet.c",
|
||||
"embed/trezorhal/stm32f4/board_capabilities.c",
|
||||
"embed/trezorhal/stm32f4/bootutils.c",
|
||||
"embed/trezorhal/stm32f4/common.c",
|
||||
"embed/trezorhal/stm32f4/entropy.c",
|
||||
"embed/trezorhal/stm32f4/flash.c",
|
||||
"embed/trezorhal/stm32f4/flash_otp.c",
|
||||
|
@ -52,7 +52,6 @@ def stm32u5_common_files(env, defines, sources, paths):
|
||||
"embed/trezorhal/stm32u5/applet.c",
|
||||
"embed/trezorhal/stm32u5/board_capabilities.c",
|
||||
"embed/trezorhal/stm32u5/bootutils.c",
|
||||
"embed/trezorhal/stm32u5/common.c",
|
||||
"embed/trezorhal/stm32u5/entropy.c",
|
||||
"embed/trezorhal/stm32u5/flash.c",
|
||||
"embed/trezorhal/stm32u5/flash_otp.c",
|
||||
|
Loading…
Reference in New Issue
Block a user