From c70a3cd8f0be58f526d2c5f85d62362273b9a87f Mon Sep 17 00:00:00 2001 From: jzlv Date: Sat, 5 Nov 2022 10:44:08 +0800 Subject: [PATCH] [update] update lhal, soc and demos --- bsp/board/bl602dk/board.c | 1 - bsp/board/bl616dk/bl616_flash.ld | 8 +- bsp/board/bl616dk/board.c | 2 +- bsp/board/bl702dk/board.c | 1 - bsp/board/bl808dk/bl808_flash.ld | 8 +- bsp/board/bl808dk/board.c | 2 +- drivers/lhal/CMakeLists.txt | 1 + drivers/lhal/config/bl602/device_table.c | 2 +- drivers/lhal/config/bl616/device_table.c | 14 + drivers/lhal/config/bl702/device_table.c | 2 +- drivers/lhal/config/bl808/device_table.c | 14 + drivers/lhal/include/bflb_adc.h | 43 +- drivers/lhal/include/bflb_core.h | 2 + drivers/lhal/include/bflb_dma.h | 20 +- drivers/lhal/include/bflb_irq.h | 2 +- drivers/lhal/include/bflb_mjpeg.h | 85 ++++ drivers/lhal/include/bflb_sec_aes.h | 7 +- drivers/lhal/include/bflb_sec_dsa.h | 39 ++ drivers/lhal/include/bflb_sec_sha.h | 49 +- drivers/lhal/include/bflb_uart.h | 11 + drivers/lhal/include/hardware/dma_reg.h | 17 + drivers/lhal/include/hardware/mjpeg_reg.h | 319 ++++++++++++ drivers/lhal/include/hardware/pwm_v1_reg.h | 7 +- drivers/lhal/src/bflb_dma.c | 50 +- drivers/lhal/src/bflb_irq.c | 1 + drivers/lhal/src/bflb_mjpeg.c | 452 ++++++++++++++++++ drivers/lhal/src/bflb_mtimer.c | 1 - drivers/lhal/src/bflb_sec_sha.c | 136 +++--- drivers/lhal/src/bflb_timer.c | 22 +- drivers/lhal/src/bflb_uart.c | 36 +- drivers/lhal/src/bflb_usb_v1.c | 1 - drivers/lhal/src/bflb_usb_v2.c | 1 - drivers/lhal/src/pka/libpka.a | Bin 586636 -> 771852 bytes drivers/soc/bl602/startup/interrupt.c | 2 +- drivers/soc/bl616/startup/interrupt.c | 2 +- drivers/soc/bl616/startup/start_load.c | 11 + drivers/soc/bl616/startup/system_bl616.c | 1 + drivers/soc/bl616/startup/vector.S | 60 ++- drivers/soc/bl702/startup/interrupt.c | 2 +- drivers/soc/bl808/startup/m0/interrupt.c | 26 +- drivers/soc/bl808/startup/m0/start_load.c | 11 + drivers/soc/bl808/startup/m0/system_bl808.c | 1 + drivers/soc/bl808/startup/m0/vector.S | 60 ++- .../adc/adc_oneshot_1ch_dma/main.c | 2 +- examples/peripherals/adc/adc_tsen/main.c | 2 +- examples/peripherals/adc/adc_vbat/main.c | 2 +- .../dma/{ => dma_normal}/CMakeLists.txt | 2 +- .../peripherals/dma/{ => dma_normal}/Makefile | 2 +- examples/peripherals/dma/dma_normal/main.c | 103 ++++ .../dma/{ => dma_normal}/proj.conf | 0 .../dma/dma_reduce_or_add/CMakeLists.txt | 9 + .../dma/dma_reduce_or_add/Makefile | 13 + .../peripherals/dma/dma_reduce_or_add/main.c | 188 ++++++++ .../dma/dma_reduce_or_add/proj.conf | 1 + examples/peripherals/dma/main.c | 84 ---- examples/peripherals/emac/emac_basic/main.c | 2 +- .../peripherals/i2c/i2c_eeprom_dma/main.c | 26 +- .../pwm_v1/pwm_all_channels/main.c | 8 +- examples/peripherals/pwm_v1/pwm_basic/main.c | 8 +- examples/peripherals/pwm_v1/pwm_int/main.c | 10 +- examples/peripherals/pwm_v2/pwm_int/main.c | 2 +- .../sec_eng/sec_eng_aes_link_sw_key/main.c | 32 +- .../sec_eng/sec_eng_aes_sw_key/main.c | 4 +- .../CMakeLists.txt | 9 + .../sec_eng_aes_sw_key_costtime/Makefile | 13 + .../sec_eng_aes_sw_key_costtime/main.c | 131 +++++ .../sec_eng_aes_sw_key_costtime/proj.conf | 1 + .../sec_eng/sec_eng_dsa/CMakeLists.txt | 9 + .../peripherals/sec_eng/sec_eng_dsa/Makefile | 13 + .../peripherals/sec_eng/sec_eng_dsa/main.c | 145 ++++++ .../peripherals/sec_eng/sec_eng_dsa/proj.conf | 1 + .../peripherals/sec_eng/sec_eng_sha/main.c | 16 +- .../sec_eng_sha_costtime/CMakeLists.txt | 9 + .../sec_eng/sec_eng_sha_costtime/Makefile | 13 + .../sec_eng/sec_eng_sha_costtime/main.c | 81 ++++ .../sec_eng/sec_eng_sha_costtime/proj.conf | 1 + .../sec_eng/sec_eng_sha_link/main.c | 27 +- examples/peripherals/spi/spi_dma/main.c | 4 +- examples/peripherals/timer/timer_int/main.c | 16 +- examples/peripherals/uart/uart_dma/main.c | 8 +- 80 files changed, 2206 insertions(+), 323 deletions(-) create mode 100644 drivers/lhal/include/bflb_mjpeg.h create mode 100644 drivers/lhal/include/bflb_sec_dsa.h create mode 100644 drivers/lhal/include/hardware/mjpeg_reg.h create mode 100644 drivers/lhal/src/bflb_mjpeg.c rename examples/peripherals/dma/{ => dma_normal}/CMakeLists.txt (87%) rename examples/peripherals/dma/{ => dma_normal}/Makefile (82%) create mode 100644 examples/peripherals/dma/dma_normal/main.c rename examples/peripherals/dma/{ => dma_normal}/proj.conf (100%) create mode 100644 examples/peripherals/dma/dma_reduce_or_add/CMakeLists.txt create mode 100644 examples/peripherals/dma/dma_reduce_or_add/Makefile create mode 100644 examples/peripherals/dma/dma_reduce_or_add/main.c create mode 100644 examples/peripherals/dma/dma_reduce_or_add/proj.conf delete mode 100644 examples/peripherals/dma/main.c create mode 100644 examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/CMakeLists.txt create mode 100644 examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/Makefile create mode 100644 examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/main.c create mode 100644 examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/proj.conf create mode 100644 examples/peripherals/sec_eng/sec_eng_dsa/CMakeLists.txt create mode 100644 examples/peripherals/sec_eng/sec_eng_dsa/Makefile create mode 100644 examples/peripherals/sec_eng/sec_eng_dsa/main.c create mode 100644 examples/peripherals/sec_eng/sec_eng_dsa/proj.conf create mode 100644 examples/peripherals/sec_eng/sec_eng_sha_costtime/CMakeLists.txt create mode 100644 examples/peripherals/sec_eng/sec_eng_sha_costtime/Makefile create mode 100644 examples/peripherals/sec_eng/sec_eng_sha_costtime/main.c create mode 100644 examples/peripherals/sec_eng/sec_eng_sha_costtime/proj.conf diff --git a/bsp/board/bl602dk/board.c b/bsp/board/bl602dk/board.c index 2ff843ed..3e9abc65 100644 --- a/bsp/board/bl602dk/board.c +++ b/bsp/board/bl602dk/board.c @@ -1,5 +1,4 @@ #include "bflb_uart.h" -#include "bflb_irq.h" #include "bflb_gpio.h" #include "bflb_clock.h" #include "bflb_rtc.h" diff --git a/bsp/board/bl616dk/bl616_flash.ld b/bsp/board/bl616dk/bl616_flash.ld index 682cfe8d..af802179 100644 --- a/bsp/board/bl616dk/bl616_flash.ld +++ b/bsp/board/bl616dk/bl616_flash.ld @@ -141,13 +141,12 @@ SECTIONS /*************************************************************************/ __nocache_ram_load_addr = __dtcm_load_addr + SIZEOF(.dtcm_region); - .nocache_ram_region (NOLOAD) : AT (__nocache_ram_load_addr) + .nocache_ram_region : AT (__nocache_ram_load_addr) { . = ALIGN(4); __nocache_ram_data_start__ = .; *(.nocache_ram) - *(.noncacheable) . = ALIGN(4); __nocache_ram_data_end__ = .; @@ -225,12 +224,13 @@ SECTIONS .nocache_noinit_ram_region (NOLOAD) : { . = ALIGN(4); - __nocache_ram_data_start__ = .; + __nocache_noinit_ram_data_start__ = .; *(.nocache_noinit_ram) + *(.noncacheable) . = ALIGN(4); - __nocache_ram_data_end__ = .; + __nocache_noinit_ram_data_end__ = .; } > nocache_ram_memory .heap (NOLOAD): diff --git a/bsp/board/bl616dk/board.c b/bsp/board/bl616dk/board.c index fc64af92..0fa599cb 100644 --- a/bsp/board/bl616dk/board.c +++ b/bsp/board/bl616dk/board.c @@ -1,5 +1,4 @@ #include "bflb_uart.h" -#include "bflb_irq.h" #include "bflb_gpio.h" #include "bflb_clock.h" #include "bflb_rtc.h" @@ -62,6 +61,7 @@ static void peripheral_clock_init(void) GLB_Set_DIG_512K_CLK(ENABLE, ENABLE, 0x4E); GLB_Set_PWM1_IO_Sel(GLB_PWM1_IO_DIFF_END); + GLB_Set_PKA_CLK_Sel(GLB_PKA_CLK_MCU_MUXPLL_160M); #ifdef CONFIG_BSP_SDH_SDCARD PERIPHERAL_CLOCK_SDH_ENABLE(); GLB_Set_SDH_CLK(ENABLE, GLB_SDH_CLK_WIFIPLL_96M, 0); diff --git a/bsp/board/bl702dk/board.c b/bsp/board/bl702dk/board.c index 1f3f550e..c63b47d9 100644 --- a/bsp/board/bl702dk/board.c +++ b/bsp/board/bl702dk/board.c @@ -1,5 +1,4 @@ #include "bflb_uart.h" -#include "bflb_irq.h" #include "bflb_gpio.h" #include "bflb_clock.h" #include "bflb_rtc.h" diff --git a/bsp/board/bl808dk/bl808_flash.ld b/bsp/board/bl808dk/bl808_flash.ld index ea237e8d..2f5539eb 100644 --- a/bsp/board/bl808dk/bl808_flash.ld +++ b/bsp/board/bl808dk/bl808_flash.ld @@ -151,13 +151,12 @@ SECTIONS /*************************************************************************/ __nocache_ram_load_addr = __dtcm_load_addr + SIZEOF(.dtcm_region); - .nocache_ram_region (NOLOAD) : AT (__nocache_ram_load_addr) + .nocache_ram_region : AT (__nocache_ram_load_addr) { . = ALIGN(4); __nocache_ram_data_start__ = .; *(.nocache_ram) - *(.noncacheable) . = ALIGN(4); __nocache_ram_data_end__ = .; @@ -235,12 +234,13 @@ SECTIONS .nocache_noinit_ram_region (NOLOAD) : { . = ALIGN(4); - __nocache_ram_data_start__ = .; + __nocache_noinit_ram_data_start__ = .; *(.nocache_noinit_ram) + *(.noncacheable) . = ALIGN(4); - __nocache_ram_data_end__ = .; + __nocache_noinit_ram_data_end__ = .; } > nocache_ram_memory .heap (NOLOAD): diff --git a/bsp/board/bl808dk/board.c b/bsp/board/bl808dk/board.c index f25b7360..d98d1165 100644 --- a/bsp/board/bl808dk/board.c +++ b/bsp/board/bl808dk/board.c @@ -1,5 +1,4 @@ #include "bflb_uart.h" -#include "bflb_irq.h" #include "bflb_gpio.h" #include "bflb_clock.h" #include "bflb_rtc.h" @@ -73,6 +72,7 @@ static void peripheral_clock_init(void) GLB_Set_DIG_512K_CLK(ENABLE, ENABLE, 0x4E); GLB_Set_PWM1_IO_Sel(GLB_PWM1_IO_DIFF_END); + GLB_Set_PKA_CLK_Sel(GLB_PKA_CLK_MCU_MUXPLL_160M); #ifdef CONFIG_BSP_SDH_SDCARD PERIPHERAL_CLOCK_SDH_ENABLE(); uint32_t tmp_val; diff --git a/drivers/lhal/CMakeLists.txt b/drivers/lhal/CMakeLists.txt index 0f050968..a7c31e14 100644 --- a/drivers/lhal/CMakeLists.txt +++ b/drivers/lhal/CMakeLists.txt @@ -22,6 +22,7 @@ sdk_library_add_sources(src/bflb_sec_trng.c) sdk_library_add_sources(src/bflb_timer.c) sdk_library_add_sources(src/bflb_wdg.c) sdk_library_add_sources(src/bflb_cks.c) +sdk_library_add_sources(src/bflb_mjpeg.c) # sdk_library_add_sources(src/bflb_clock.c) if(("${CHIP}" STREQUAL "bl702") OR ("${CHIP}" STREQUAL "bl602")) diff --git a/drivers/lhal/config/bl602/device_table.c b/drivers/lhal/config/bl602/device_table.c index 7c410f5f..0ea734eb 100644 --- a/drivers/lhal/config/bl602/device_table.c +++ b/drivers/lhal/config/bl602/device_table.c @@ -44,7 +44,7 @@ struct bflb_device_s bl602_device_table[] = { .idx = 0, .dev_type = BFLB_DEVICE_TYPE_SPI, .user_data = NULL }, - { .name = "pwm", + { .name = "pwm0", .reg_base = PWM_BASE, .irq_num = BL602_IRQ_PWM, .idx = 0, diff --git a/drivers/lhal/config/bl616/device_table.c b/drivers/lhal/config/bl616/device_table.c index 35d5a080..e5841042 100644 --- a/drivers/lhal/config/bl616/device_table.c +++ b/drivers/lhal/config/bl616/device_table.c @@ -177,6 +177,20 @@ struct bflb_device_s bl616_device_table[] = { .sub_idx = 0, .dev_type = BFLB_DEVICE_TYPE_TIMER, .user_data = NULL }, + { .name = "cks", + .reg_base = CKS_BASE, + .irq_num = 0, + .idx = 0, + .sub_idx = 0, + .dev_type = BFLB_DEVICE_TYPE_CKS, + .user_data = NULL }, + { .name = "mjpeg", + .reg_base = MJPEG_BASE, + .irq_num = BL616_IRQ_MJPEG, + .idx = 0, + .sub_idx = 0, + .dev_type = BFLB_DEVICE_TYPE_MJPEG, + .user_data = NULL }, }; struct bflb_device_s *bflb_device_get_by_name(const char *name) diff --git a/drivers/lhal/config/bl702/device_table.c b/drivers/lhal/config/bl702/device_table.c index 4df8a243..4e6bb7c7 100644 --- a/drivers/lhal/config/bl702/device_table.c +++ b/drivers/lhal/config/bl702/device_table.c @@ -44,7 +44,7 @@ struct bflb_device_s bl702_device_table[] = { .idx = 0, .dev_type = BFLB_DEVICE_TYPE_SPI, .user_data = NULL }, - { .name = "pwm", + { .name = "pwm0", .reg_base = PWM_BASE, .irq_num = BL702_IRQ_PWM, .idx = 0, diff --git a/drivers/lhal/config/bl808/device_table.c b/drivers/lhal/config/bl808/device_table.c index 4f57e6e0..532b5960 100644 --- a/drivers/lhal/config/bl808/device_table.c +++ b/drivers/lhal/config/bl808/device_table.c @@ -184,6 +184,20 @@ struct bflb_device_s bl808_device_table[] = { .sub_idx = 0, .dev_type = BFLB_DEVICE_TYPE_IR, .user_data = NULL }, + { .name = "cks", + .reg_base = CKS_BASE, + .irq_num = 0, + .idx = 0, + .sub_idx = 0, + .dev_type = BFLB_DEVICE_TYPE_CKS, + .user_data = NULL }, + { .name = "mjpeg", + .reg_base = MJPEG_BASE, + .irq_num = BL808_IRQ_MJPEG, + .idx = 0, + .sub_idx = 0, + .dev_type = BFLB_DEVICE_TYPE_MJPEG, + .user_data = NULL }, }; struct bflb_device_s *bflb_device_get_by_name(const char *name) diff --git a/drivers/lhal/include/bflb_adc.h b/drivers/lhal/include/bflb_adc.h index 0da23490..d09f968a 100644 --- a/drivers/lhal/include/bflb_adc.h +++ b/drivers/lhal/include/bflb_adc.h @@ -6,22 +6,33 @@ /** @defgroup ADC_CHANNEL adc channel definition * @{ */ -#define ADC_CHANNEL_0 0 -#define ADC_CHANNEL_1 1 -#define ADC_CHANNEL_2 2 -#define ADC_CHANNEL_3 3 -#define ADC_CHANNEL_4 4 -#define ADC_CHANNEL_5 5 -#define ADC_CHANNEL_6 6 -#define ADC_CHANNEL_7 7 -#define ADC_CHANNEL_8 8 -#define ADC_CHANNEL_9 9 -#define ADC_CHANNEL_10 10 -#define ADC_CHANNEL_11 11 -#define ADC_CHAN_TSEN_P 14 -#define ADC_CHAN_TSEN_N 15 -#define ADC_CHAN_VABT_HALF 18 -#define ADC_CHANNEL_GND 23 +#define ADC_CHANNEL_0 0 +#define ADC_CHANNEL_1 1 +#define ADC_CHANNEL_2 2 +#define ADC_CHANNEL_3 3 +#define ADC_CHANNEL_4 4 +#define ADC_CHANNEL_5 5 +#define ADC_CHANNEL_6 6 +#define ADC_CHANNEL_7 7 +#if !defined(BL702L) +#define ADC_CHANNEL_8 8 +#define ADC_CHANNEL_9 9 +#define ADC_CHANNEL_10 10 +#define ADC_CHANNEL_11 11 +#define ADC_CHANNEL_DACA 12 +#define ADC_CHANNEL_DACB 13 +#define ADC_CHANNEL_TSEN_P 14 +#define ADC_CHANNEL_TSEN_N 15 +#define ADC_CHANNEL_VABT_HALF 18 +#define ADC_CHANNEL_GND 23 +#else +#define ADC_CHANNEL_DACA 8 +#define ADC_CHANNEL_DACB 9 +#define ADC_CHANNEL_VBAT 10 +#define ADC_CHANNEL_TSEN 11 +#define ADC_CHANNEL_VREF 12 +#define ADC_CHANNEL_GND 13 +#endif /** * @} */ diff --git a/drivers/lhal/include/bflb_core.h b/drivers/lhal/include/bflb_core.h index 3a081f97..d4f152a4 100644 --- a/drivers/lhal/include/bflb_core.h +++ b/drivers/lhal/include/bflb_core.h @@ -13,6 +13,7 @@ #include #include "bflb_list.h" #include "bflb_mtimer.h" +#include "bflb_irq.h" #include "bflb_common.h" #if !defined(BL602) && !defined(BL702) && !defined(BL702L) && \ @@ -61,6 +62,7 @@ void assert_func(uint8_t *file, uint32_t line, uint8_t *function, uint8_t *strin #define BFLB_DEVICE_TYPE_TRNG 31 #define BFLB_DEVICE_TYPE_PKA 32 #define BFLB_DEVICE_TYPE_CKS 33 +#define BFLB_DEVICE_TYPE_MJPEG 34 struct bflb_device_s { const char *name; diff --git a/drivers/lhal/include/bflb_dma.h b/drivers/lhal/include/bflb_dma.h index 19c038bd..e83d3401 100644 --- a/drivers/lhal/include/bflb_dma.h +++ b/drivers/lhal/include/bflb_dma.h @@ -44,22 +44,28 @@ * @} */ -#if defined(BL702) +#if defined(BL702) || defined(BL602) || defined(BL702L) /** @defgroup DMA_PERIPHERAL_REGBASE dma peripheral data register address definition * @{ */ #define DMA_ADDR_UART0_TDR (0x4000A000 + 0x88) #define DMA_ADDR_UART0_RDR (0x4000A000 + 0x8C) +#if !defined(BL702L) #define DMA_ADDR_UART1_TDR (0x4000A100 + 0x88) #define DMA_ADDR_UART1_RDR (0x4000A100 + 0x8C) +#endif #define DMA_ADDR_I2C0_TDR (0x4000A300 + 0x88) #define DMA_ADDR_I2C0_RDR (0x4000A300 + 0x8C) #define DMA_ADDR_SPI0_TDR (0x4000A200 + 0x88) #define DMA_ADDR_SPI0_RDR (0x4000A200 + 0x8C) +#if !defined(BL702L) #define DMA_ADDR_I2S_TDR (0x4000AA00 + 0x88) #define DMA_ADDR_I2S_RDR (0x4000AA00 + 0x8C) +#endif #define DMA_ADDR_ADC_RDR (0x40002000 + 0x04) -#define DMA_ADDR_DAC_TDR (0x40002000 + 0X48) +#if !defined(BL702L) +#define DMA_ADDR_DAC_TDR (0x40002000 + 0x48) +#endif /** * @} */ @@ -70,16 +76,22 @@ #define DMA_REQUEST_NONE 0x00000000 #define DMA_REQUEST_UART0_RX 0x00000000 #define DMA_REQUEST_UART0_TX 0x00000001 +#if !defined(BL702L) #define DMA_REQUEST_UART1_RX 0x00000002 #define DMA_REQUEST_UART1_TX 0x00000003 +#endif #define DMA_REQUEST_I2C0_RX 0x00000006 #define DMA_REQUEST_I2C0_TX 0x00000007 #define DMA_REQUEST_SPI0_RX 0x0000000A #define DMA_REQUEST_SPI0_TX 0x0000000B +#if !defined(BL702L) #define DMA_REQUEST_I2S_RX 0x00000014 #define DMA_REQUEST_I2S_TX 0x00000015 +#endif #define DMA_REQUEST_ADC 0x00000016 +#if !defined(BL702L) #define DMA_REQUEST_DAC 0x00000017 +#endif /** * @} */ @@ -249,6 +261,10 @@ */ #define DMA_CMD_SET_SRCADDR_INCREMENT (0x01) #define DMA_CMD_SET_DSTADDR_INCREMENT (0x02) +#if !defined(BL602) +#define DMA_CMD_SET_ADD_MODE (0x03) +#define DMA_CMD_SET_REDUCE_MODE (0x04) +#endif /** * @} */ diff --git a/drivers/lhal/include/bflb_irq.h b/drivers/lhal/include/bflb_irq.h index 44e6d76f..56c4a140 100644 --- a/drivers/lhal/include/bflb_irq.h +++ b/drivers/lhal/include/bflb_irq.h @@ -1,7 +1,7 @@ #ifndef _BFLB_IRQ_H #define _BFLB_IRQ_H -#include "bflb_core.h" +#include "stdint.h" typedef void (*irq_callback)(int irq, void *arg); diff --git a/drivers/lhal/include/bflb_mjpeg.h b/drivers/lhal/include/bflb_mjpeg.h new file mode 100644 index 00000000..d8c7e465 --- /dev/null +++ b/drivers/lhal/include/bflb_mjpeg.h @@ -0,0 +1,85 @@ +#ifndef _BFLB_MJPEG_H +#define _BFLB_MJPEG_H + +#include "bflb_core.h" + +/** @defgroup MJPEG_FORMAT mjpeg format definition + * @{ + */ +#define MJPEG_FORMAT_YUV422_YUYV 0 +#define MJPEG_FORMAT_YUV422_YVYU 1 +#define MJPEG_FORMAT_YUV422_UYVY 2 +#define MJPEG_FORMAT_YUV422_VYUY 3 +#define MJPEG_FORMAT_YUV422SP_NV16 4 +#define MJPEG_FORMAT_YUV422SP_NV61 5 +#define MJPEG_FORMAT_YUV420SP_NV12 6 +#define MJPEG_FORMAT_YUV420SP_NV21 7 +#define MJPEG_FORMAT_GRAY 8 +/** + * @} + */ + +/** @defgroup MJPEG_INTSTS mjpeg interrupt status definition + * @{ + */ +#define MJPEG_INTSTS_ONE_FRAME (1 << 4) +/** + * @} + */ + +/** @defgroup MJPEG_INTCLR mjpeg interrupt clear definition + * @{ + */ +#define MJPEG_INTCLR_ONE_FRAME (1 << 8) +/** + * @} + */ + +#define MJPEG_MAX_FRAME_COUNT 4 + +/** + * @brief MJPEG configuration structure + * + * @param format MJPEG format, use @ref MJPEG_FORMAT + * @param resolution_x MJPEG width, must be a multiple of 8 or a multiple of 16 + * @param resolution_y MJPEG higth, must be a multiple of 8 or a multiple of 16 + * @param input_bufaddr0 MJPEG input buffer address 0 for yy , must be align 16 + * @param input_bufaddr1 MJPEG input buffer address 0 for yy , must be align 16 + * @param output_bufaddr MJPEG output buffer address , must be align 16 + * @param output_bufsize MJPEG output buffer size, must be larger than resolution_x*resolution_y*2*MJPEG_MAX_FRAME_COUNT + */ +struct bflb_mjpeg_config_s { + uint8_t format; + uint16_t resolution_x; + uint16_t resolution_y; + uint32_t input_bufaddr0; + uint32_t input_bufaddr1; + uint32_t output_bufaddr; + uint32_t output_bufsize; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +void bflb_mjpeg_init(struct bflb_device_s *dev, const struct bflb_mjpeg_config_s *config); +void bflb_mjpeg_start(struct bflb_device_s *dev); +void bflb_mjpeg_stop(struct bflb_device_s *dev); +void bflb_mjpeg_sw_run(struct bflb_device_s *dev, uint8_t frame_count); +void bflb_mjpeg_tcint_mask(struct bflb_device_s *dev, bool mask); +void bflb_mjpeg_errint_mask(struct bflb_device_s *dev, bool mask); +uint32_t bflb_mjpeg_get_intstatus(struct bflb_device_s *dev); +void bflb_mjpeg_int_clear(struct bflb_device_s *dev, uint32_t int_clear); +uint8_t bflb_mjpeg_get_frame_count(struct bflb_device_s *dev); +void bflb_mjpeg_pop_one_frame(struct bflb_device_s *dev); +uint32_t bflb_mjpeg_get_frame_info(struct bflb_device_s *dev, uint8_t **pic); +void bflb_mjpeg_calculate_quantize_table(uint8_t quality, uint16_t *input_table, uint16_t *output_table); +void bflb_mjpeg_fill_quantize_table(struct bflb_device_s *dev, uint16_t *input_yy, uint16_t *input_uv); +void bflb_mjpeg_fill_jpeg_header_tail(struct bflb_device_s *dev, uint8_t *header, uint32_t header_len); +void bflb_mjpeg_set_yuv420sp_cam_input(struct bflb_device_s *dev, uint8_t yy, uint8_t uv); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/drivers/lhal/include/bflb_sec_aes.h b/drivers/lhal/include/bflb_sec_aes.h index 5d018116..515e8b6a 100644 --- a/drivers/lhal/include/bflb_sec_aes.h +++ b/drivers/lhal/include/bflb_sec_aes.h @@ -9,10 +9,13 @@ #define AES_MODE_XTS 3 #define AES_LINK_KEY_128BITS 0 -#define AES_LINK_KEY_192BITS 1 -#define AES_LINK_KEY_256BITS 2 +#define AES_LINK_KEY_192BITS 2 +#define AES_LINK_KEY_256BITS 1 #define AES_LINK_KEY_DOUBLE_128BITS 3 +#define AES_LINK_XTS_MODE1 0 +#define AES_LINK_XTS_MODE2 1 + struct bflb_aes_link_s { uint32_t : 3; /*!< [2:0]Reserved */ uint32_t aes_key : 2; /*!< [4:3]128-bit/256-bit/192-bit/128-bit-double key mode select */ diff --git a/drivers/lhal/include/bflb_sec_dsa.h b/drivers/lhal/include/bflb_sec_dsa.h new file mode 100644 index 00000000..f0086133 --- /dev/null +++ b/drivers/lhal/include/bflb_sec_dsa.h @@ -0,0 +1,39 @@ +#ifndef _BFLB_SEC_DSA_H +#define _BFLB_SEC_DSA_H + +#include "bflb_core.h" + +struct bflb_dsa_crt_s { + uint32_t *dP; + uint32_t *dQ; + uint32_t *qInv; + uint32_t *p; + uint32_t *invR_p; + uint32_t *primeN_p; + uint32_t *q; + uint32_t *invR_q; + uint32_t *primeN_q; +}; + +struct bflb_dsa_s { + uint32_t size; + uint32_t crtSize; + uint32_t *n; + uint32_t *e; + uint32_t *d; + struct bflb_dsa_crt_s crtCfg; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +int bflb_sec_dsa_init(struct bflb_dsa_s *handle, uint32_t size); +int bflb_sec_dsa_sign(struct bflb_dsa_s *handle, const uint32_t *hash, uint32_t hashLenInWord, uint32_t *s); +int bflb_sec_dsa_verify(struct bflb_dsa_s *handle, const uint32_t *hash, uint32_t hashLenInWord, const uint32_t *s); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/drivers/lhal/include/bflb_sec_sha.h b/drivers/lhal/include/bflb_sec_sha.h index a1a96540..c8c8e76f 100644 --- a/drivers/lhal/include/bflb_sec_sha.h +++ b/drivers/lhal/include/bflb_sec_sha.h @@ -32,6 +32,27 @@ struct bflb_sha512_ctx_s { uint8_t sha_feed; /*!< Sha has feed data */ }; +struct bflb_sha1_link_ctx_s { + uint32_t total[2]; /*!< Number of bytes processed */ + __attribute__((aligned(32))) uint8_t sha_buf[64]; /*!< Data not processed but in this temp buffer */ + __attribute__((aligned(32))) uint8_t sha_padding[64]; /*!< Padding data */ + uint32_t link_addr; /*!< Link configure address */ +}; + +struct bflb_sha256_link_ctx_s { + uint32_t total[2]; /*!< Number of bytes processed */ + __attribute__((aligned(32))) uint8_t sha_buf[64]; /*!< Data not processed but in this temp buffer */ + __attribute__((aligned(32))) uint8_t sha_padding[64]; /*!< Padding data */ + uint32_t link_addr; /*!< Link configure address */ +}; + +struct bflb_sha512_link_ctx_s { + uint64_t total[2]; /*!< Number of bytes processed */ + __attribute__((aligned(32))) uint8_t sha_buf[128]; /*!< Data not processed but in this temp buffer */ + __attribute__((aligned(32))) uint8_t sha_padding[128]; /*!< Padding data */ + uint32_t link_addr; /*!< Link configure address */ +}; + struct bflb_sha_link_s { uint32_t : 2; /*!< [1:0]Reserved */ uint32_t sha_mode : 3; /*!< [4:2]Sha-256/sha-224/sha-1/sha-1/sha-512/sha-384/sha-512T224/sha-512T256 */ @@ -58,42 +79,36 @@ void bflb_sha256_start(struct bflb_device_s *dev, struct bflb_sha256_ctx_s *ctx) void bflb_sha512_start(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx); int bflb_sha1_update(struct bflb_device_s *dev, struct bflb_sha1_ctx_s *ctx, const uint8_t *input, uint32_t len); int bflb_sha256_update(struct bflb_device_s *dev, struct bflb_sha256_ctx_s *ctx, const uint8_t *input, uint32_t len); -int bflb_sha512_update(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx, const uint8_t *input, uint32_t len); +int bflb_sha512_update(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx, const uint8_t *input, uint64_t len); void bflb_sha1_finish(struct bflb_device_s *dev, struct bflb_sha1_ctx_s *ctx, uint8_t *output); void bflb_sha256_finish(struct bflb_device_s *dev, struct bflb_sha256_ctx_s *ctx, uint8_t *output); void bflb_sha512_finish(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx, uint8_t *output); void bflb_sha_link_init(struct bflb_device_s *dev); void bflb_sha_link_deinit(struct bflb_device_s *dev); -void bflb_sha1_link_start(struct bflb_device_s *dev, struct bflb_sha1_ctx_s *ctx); -void bflb_sha256_link_start(struct bflb_device_s *dev, struct bflb_sha256_ctx_s *ctx); -void bflb_sha512_link_start(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx); +void bflb_sha1_link_start(struct bflb_device_s *dev, struct bflb_sha1_link_ctx_s *ctx, struct bflb_sha_link_s *link); +void bflb_sha256_link_start(struct bflb_device_s *dev, struct bflb_sha256_link_ctx_s *ctx, struct bflb_sha_link_s *link); +void bflb_sha512_link_start(struct bflb_device_s *dev, struct bflb_sha512_link_ctx_s *ctx, struct bflb_sha_link_s *link); int bflb_sha1_link_update(struct bflb_device_s *dev, - struct bflb_sha1_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha1_link_ctx_s *ctx, const uint8_t *input, uint32_t len); int bflb_sha256_link_update(struct bflb_device_s *dev, - struct bflb_sha256_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha256_link_ctx_s *ctx, const uint8_t *input, uint32_t len); int bflb_sha512_link_update(struct bflb_device_s *dev, - struct bflb_sha512_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha512_link_ctx_s *ctx, const uint8_t *input, - uint32_t len); + uint64_t len); void bflb_sha1_link_finish(struct bflb_device_s *dev, - struct bflb_sha1_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha1_link_ctx_s *ctx, uint8_t *output); void bflb_sha256_link_finish(struct bflb_device_s *dev, - struct bflb_sha256_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha256_link_ctx_s *ctx, uint8_t *output); void bflb_sha512_link_finish(struct bflb_device_s *dev, - struct bflb_sha512_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha512_link_ctx_s *ctx, uint8_t *output); void bflb_group0_request_sha_access(struct bflb_device_s *dev); diff --git a/drivers/lhal/include/bflb_uart.h b/drivers/lhal/include/bflb_uart.h index 996361b3..e4aa6016 100644 --- a/drivers/lhal/include/bflb_uart.h +++ b/drivers/lhal/include/bflb_uart.h @@ -133,6 +133,7 @@ #define UART_CMD_SET_TX_RS485_POLARITY (0x12) #define UART_CMD_SET_ABR_ALLOWABLE_ERROR (0x13) #define UART_CMD_SET_SW_RTS_CONTROL (0x14) +#define UART_CMD_IR_CONFIG (0x15) /** * @} */ @@ -140,6 +141,16 @@ #define UART_AUTO_BAUD_START 0 #define UART_AUTO_BAUD_0X55 1 +struct bflb_uart_ir_config_s { + bool tx_en; + bool rx_en; + bool tx_inverse; + bool rx_inverse; + uint16_t tx_pluse_start; + uint16_t tx_pluse_stop; + uint16_t rx_pluse_start; +}; + /** * @brief UART configuration structure * diff --git a/drivers/lhal/include/hardware/dma_reg.h b/drivers/lhal/include/hardware/dma_reg.h index 52efc370..83b0d5c1 100644 --- a/drivers/lhal/include/hardware/dma_reg.h +++ b/drivers/lhal/include/hardware/dma_reg.h @@ -137,17 +137,34 @@ #define DMA_TRANSFERSIZE_SHIFT (0U) #define DMA_TRANSFERSIZE_MASK (0xfff << DMA_TRANSFERSIZE_SHIFT) #define DMA_SBSIZE_SHIFT (12U) +#if defined(BL602) +#define DMA_SBSIZE_MASK (0x7 << DMA_SBSIZE_SHIFT) +#else #define DMA_SBSIZE_MASK (0x3 << DMA_SBSIZE_SHIFT) #define DMA_DST_MIN_MODE (1 << 14U) +#endif #define DMA_DBSIZE_SHIFT (15U) +#if defined(BL602) +#define DMA_DBSIZE_MASK (0x7 << DMA_DBSIZE_SHIFT) +#else #define DMA_DBSIZE_MASK (0x3 << DMA_DBSIZE_SHIFT) #define DMA_DST_ADD_MODE (1 << 17U) +#endif #define DMA_SWIDTH_SHIFT (18U) +#if defined(BL602) +#define DMA_SWIDTH_MASK (0x7 << DMA_SWIDTH_SHIFT) +#else #define DMA_SWIDTH_MASK (0x3 << DMA_SWIDTH_SHIFT) +#endif #define DMA_DWIDTH_SHIFT (21U) +#if defined(BL602) +#define DMA_DWIDTH_MASK (0x7 << DMA_DWIDTH_SHIFT) +#define DMA_SLARGERD (1 << 24U) +#else #define DMA_DWIDTH_MASK (0x3 << DMA_DWIDTH_SHIFT) #define DMA_FIX_CNT_SHIFT (23U) #define DMA_FIX_CNT_MASK (0x7 << DMA_FIX_CNT_SHIFT) +#endif #define DMA_SI (1 << 26U) #define DMA_DI (1 << 27U) #define DMA_PROT_SHIFT (28U) diff --git a/drivers/lhal/include/hardware/mjpeg_reg.h b/drivers/lhal/include/hardware/mjpeg_reg.h new file mode 100644 index 00000000..1fbd4f69 --- /dev/null +++ b/drivers/lhal/include/hardware/mjpeg_reg.h @@ -0,0 +1,319 @@ +/** + ****************************************************************************** + * @file mjpeg_reg.h + * @version V1.0 + * @date 2022-11-01 + * @brief This file is the description of.IP register + ****************************************************************************** + * @attention + * + *

© COPYRIGHT(c) 2020 Bouffalo Lab

+ * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Bouffalo Lab nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ +#ifndef __HARDWARE_MJPEG_REG_H__ +#define __HARDWARE_MJPEG_REG_H__ + +/**************************************************************************** + * Pre-processor Definitions +****************************************************************************/ + +/* Register offsets *********************************************************/ + +#define MJPEG_CONTROL_1_OFFSET (0x0)/* mjpeg_control_1 */ +#define MJPEG_CONTROL_2_OFFSET (0x4)/* mjpeg_control_2 */ +#define MJPEG_YY_FRAME_ADDR_OFFSET (0x08)/* mjpeg_yy_frame_addr */ +#define MJPEG_UV_FRAME_ADDR_OFFSET (0x0C)/* mjpeg_uv_frame_addr */ +#define MJPEG_YUV_MEM_OFFSET (0x10)/* mjpeg_yuv_mem */ +#define MJPEG_JPEG_FRAME_ADDR_OFFSET (0x14)/* jpeg_frame_addr */ +#define MJPEG_JPEG_STORE_MEMORY_OFFSET (0x18)/* jpeg_store_memory */ +#define MJPEG_CONTROL_3_OFFSET (0x1C)/* mjpeg_control_3 */ +#define MJPEG_FRAME_FIFO_POP_OFFSET (0x20)/* mjpeg_frame_fifo_pop */ +#define MJPEG_FRAME_SIZE_OFFSET (0x24)/* mjpeg_frame_size */ +#define MJPEG_HEADER_BYTE_OFFSET (0x28)/* mjpeg_header_byte */ +#define MJPEG_SWAP_MODE_OFFSET (0x30)/* mjpeg_swap_mode */ +#define MJPEG_SWAP_BIT_CNT_OFFSET (0x34)/* mjpeg_swap_bit_cnt */ +#define MJPEG_YUV_MEM_SW_OFFSET (0x38)/* mjpeg_yuv_mem_sw */ +#define MJPEG_Y_FRAME_READ_STATUS_1_OFFSET (0x40)/* mjpeg_Y_frame_read_status_1 */ +#define MJPEG_Y_FRAME_READ_STATUS_2_OFFSET (0x44)/* mjpeg_Y_frame_read_status_2 */ +#define MJPEG_Y_FRAME_WRITE_STATUS_OFFSET (0x48)/* mjpeg_Y_frame_write_status */ +#define MJPEG_UV_FRAME_READ_STATUS_1_OFFSET (0x4C)/* mjpeg_UV_frame_read_status_1 */ +#define MJPEG_UV_FRAME_READ_STATUS_2_OFFSET (0x50)/* mjpeg_UV_frame_read_status_2 */ +#define MJPEG_UV_FRAME_WRITE_STATUS_OFFSET (0x54)/* mjpeg_UV_frame_write_status */ +#define MJPEG_FRAME_W_HBLK_STATUS_OFFSET (0x58)/* mjpeg_frame_w_hblk_status */ +#define MJPEG_START_ADDR0_OFFSET (0x80)/* mjpeg_start_addr0 */ +#define MJPEG_BIT_CNT0_OFFSET (0x84)/* mjpeg_bit_cnt0 */ +#define MJPEG_START_ADDR1_OFFSET (0x88)/* mjpeg_start_addr1 */ +#define MJPEG_BIT_CNT1_OFFSET (0x8C)/* mjpeg_bit_cnt1 */ +#define MJPEG_START_ADDR2_OFFSET (0x90)/* mjpeg_start_addr2 */ +#define MJPEG_BIT_CNT2_OFFSET (0x94)/* mjpeg_bit_cnt2 */ +#define MJPEG_START_ADDR3_OFFSET (0x98)/* mjpeg_start_addr3 */ +#define MJPEG_BIT_CNT3_OFFSET (0x9C)/* mjpeg_bit_cnt3 */ +#define MJPEG_Q_ENC_OFFSET (0x100)/* mjpeg_q_enc */ +#define MJPEG_FRAME_ID_10_OFFSET (0x110)/* mjpeg_frame_id_10 */ +#define MJPEG_FRAME_ID_32_OFFSET (0x114)/* mjpeg_frame_id_32 */ +#define MJPEG_DEBUG_OFFSET (0x1F0)/* mjpeg_debug */ +#define MJPEG_DUMMY_REG_OFFSET (0x1FC)/* mjpeg_dummy_reg */ + +/* Register Bitfield definitions *****************************************************/ + +/* 0x0 : mjpeg_control_1 */ +#define MJPEG_REG_MJPEG_ENABLE (1<<0U) +#define MJPEG_REG_MJPEG_BIT_ORDER (1<<1U) +#define MJPEG_REG_ORDER_U_EVEN (1<<2U) +#define MJPEG_REG_HW_MODE_SWEN (1<<3U) +#define MJPEG_REG_LAST_HF_WBLK_DMY (1<<4U) +#define MJPEG_REG_LAST_HF_HBLK_DMY (1<<5U) +#define MJPEG_REG_REFLECT_DMY (1<<6U) +#define MJPEG_REG_READ_FWRAP (1<<7U) +#define MJPEG_REG_W_XLEN_SHIFT (8U) +#define MJPEG_REG_W_XLEN_MASK (0x7<reg_base; - /* dma global disable */ + /* dma global enable */ regval = getreg32(dma_base[dev->idx] + DMA_TOP_CONFIG_OFFSET); - regval &= ~DMA_E; + regval |= DMA_E; putreg32(regval, dma_base[dev->idx] + DMA_TOP_CONFIG_OFFSET); /* dma channel disable */ @@ -83,7 +82,12 @@ void bflb_dma_channel_init(struct bflb_device_s *dev, const struct bflb_dma_chan regval &= ~DMA_E; putreg32(regval, channel_base + DMA_CxCONFIG_OFFSET); +#if defined(BL602) regval = 0; +#else + regval = getreg32(channel_base + DMA_CxCONTROL_OFFSET); + regval &= DMA_DST_ADD_MODE | DMA_DST_MIN_MODE | DMA_FIX_CNT_MASK; +#endif if (config->src_addr_inc) { regval |= DMA_SI; @@ -108,10 +112,18 @@ void bflb_dma_channel_init(struct bflb_device_s *dev, const struct bflb_dma_chan regval |= (config->direction << DMA_FLOWCNTRL_SHIFT); putreg32(regval, channel_base + DMA_CxCONFIG_OFFSET); - /* dma global enable */ - regval = getreg32(dma_base[dev->idx] + DMA_TOP_CONFIG_OFFSET); - regval |= DMA_E; - putreg32(regval, dma_base[dev->idx] + DMA_TOP_CONFIG_OFFSET); + /* disable dma error and tc interrupt */ + regval = getreg32(channel_base + DMA_CxCONFIG_OFFSET); + regval |= (DMA_ITC | DMA_IE); + putreg32(regval, channel_base + DMA_CxCONFIG_OFFSET); + + regval = getreg32(channel_base + DMA_CxCONTROL_OFFSET); + regval &= ~DMA_I; + putreg32(regval, channel_base + DMA_CxCONTROL_OFFSET); + + /* clear irq status */ + putreg32(1 << dev->sub_idx, dma_base[dev->idx] + DMA_INTTCCLEAR_OFFSET); + putreg32(1 << dev->sub_idx, dma_base[dev->idx] + DMA_INTERRCLR_OFFSET); #if (defined(BL606P) || defined(BL808)) && (defined(CPU_M0) || defined(CPU_LP)) bflb_irq_attach(31, dma0_isr, NULL); @@ -394,6 +406,30 @@ int bflb_dma_feature_control(struct bflb_device_s *dev, int cmd, size_t arg) putreg32(regval, channel_base + DMA_CxCONTROL_OFFSET); break; +#if !defined(BL602) + case DMA_CMD_SET_ADD_MODE: + regval = getreg32(channel_base + DMA_CxCONTROL_OFFSET); + if (arg) { + regval |= DMA_DST_ADD_MODE; + } else { + regval &= ~DMA_DST_ADD_MODE; + } + putreg32(regval, channel_base + DMA_CxCONTROL_OFFSET); + break; + + case DMA_CMD_SET_REDUCE_MODE: + regval = getreg32(channel_base + DMA_CxCONTROL_OFFSET); + if (arg) { + regval |= DMA_DST_MIN_MODE; + regval &= ~DMA_FIX_CNT_MASK; + regval |= (arg & 0x7) << DMA_FIX_CNT_SHIFT; + } else { + regval &= ~DMA_DST_MIN_MODE; + } + putreg32(regval, channel_base + DMA_CxCONTROL_OFFSET); + break; +#endif + default: ret = -EPERM; break; diff --git a/drivers/lhal/src/bflb_irq.c b/drivers/lhal/src/bflb_irq.c index f4b7d7c8..eab33fed 100644 --- a/drivers/lhal/src/bflb_irq.c +++ b/drivers/lhal/src/bflb_irq.c @@ -1,4 +1,5 @@ #include "bflb_irq.h" +#include "bflb_core.h" #if defined(BL602) || defined(BL702) || defined(BL702L) #include #else diff --git a/drivers/lhal/src/bflb_mjpeg.c b/drivers/lhal/src/bflb_mjpeg.c new file mode 100644 index 00000000..bf5c27ce --- /dev/null +++ b/drivers/lhal/src/bflb_mjpeg.c @@ -0,0 +1,452 @@ +#include "bflb_mjpeg.h" +#include "hardware/mjpeg_reg.h" + +static void bflb_mjpeg_set_yuv422_interleave_order(struct bflb_device_s *dev, uint8_t y0, uint8_t u0, uint8_t y1, uint8_t v0) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_HEADER_BYTE_OFFSET); + regval &= ~MJPEG_REG_Y0_ORDER_MASK; + regval &= ~MJPEG_REG_U0_ORDER_MASK; + regval &= ~MJPEG_REG_Y1_ORDER_MASK; + regval &= ~MJPEG_REG_V0_ORDER_MASK; + + regval |= (y0 << MJPEG_REG_Y0_ORDER_SHIFT); + regval |= (u0 << MJPEG_REG_U0_ORDER_SHIFT); + regval |= (y1 << MJPEG_REG_Y1_ORDER_SHIFT); + regval |= (v0 << MJPEG_REG_V0_ORDER_SHIFT); + + putreg32(regval, reg_base + MJPEG_HEADER_BYTE_OFFSET); +} + +static void bflb_mjpeg_set_framesize(struct bflb_device_s *dev, uint16_t x, uint16_t y) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = 0; + regval |= (x << MJPEG_REG_FRAME_WBLK_SHIFT); + regval |= (y << MJPEG_REG_FRAME_HBLK_SHIFT); + putreg32(regval, reg_base + MJPEG_FRAME_SIZE_OFFSET); +} + +void bflb_mjpeg_init(struct bflb_device_s *dev, const struct bflb_mjpeg_config_s *config) +{ + uint32_t regval; + uint32_t reg_base; + uint32_t rows; + uint32_t min_framesize = 0; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_1_OFFSET); + regval &= ~MJPEG_REG_MJPEG_ENABLE; + putreg32(regval, reg_base + MJPEG_CONTROL_1_OFFSET); + + regval = 0; + regval |= (3 << MJPEG_REG_W_XLEN_SHIFT); /* burst count 16 increment */ + regval |= MJPEG_REG_READ_FWRAP; + regval |= MJPEG_REG_MJPEG_BIT_ORDER; + + switch (config->format) { + case MJPEG_FORMAT_YUV422_YUYV: + regval |= (3 << MJPEG_REG_YUV_MODE_SHIFT); + bflb_mjpeg_set_yuv422_interleave_order(dev, 0, 1, 2, 3); + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 7) >> 3); + break; + case MJPEG_FORMAT_YUV422_YVYU: + regval |= (3 << MJPEG_REG_YUV_MODE_SHIFT); + bflb_mjpeg_set_yuv422_interleave_order(dev, 0, 3, 2, 1); + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 7) >> 3); + break; + case MJPEG_FORMAT_YUV422_UYVY: + regval |= (3 << MJPEG_REG_YUV_MODE_SHIFT); + bflb_mjpeg_set_yuv422_interleave_order(dev, 1, 0, 3, 2); + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 7) >> 3); + break; + case MJPEG_FORMAT_YUV422_VYUY: + regval |= (3 << MJPEG_REG_YUV_MODE_SHIFT); + bflb_mjpeg_set_yuv422_interleave_order(dev, 1, 2, 3, 0); + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 7) >> 3); + break; + case MJPEG_FORMAT_YUV422SP_NV16: + regval |= (2 << MJPEG_REG_YUV_MODE_SHIFT); + regval |= MJPEG_REG_ORDER_U_EVEN; + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 7) >> 3); + break; + case MJPEG_FORMAT_YUV422SP_NV61: + regval |= (2 << MJPEG_REG_YUV_MODE_SHIFT); + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 7) >> 3); + break; + case MJPEG_FORMAT_YUV420SP_NV12: + regval |= (0 << MJPEG_REG_YUV_MODE_SHIFT); + regval |= MJPEG_REG_ORDER_U_EVEN; + + if (config->resolution_x % 16) { + regval |= MJPEG_REG_LAST_HF_WBLK_DMY; + } + + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 15) >> 4); + break; + case MJPEG_FORMAT_YUV420SP_NV21: + regval |= (0 << MJPEG_REG_YUV_MODE_SHIFT); + + if (config->resolution_x % 16) { + regval |= MJPEG_REG_LAST_HF_WBLK_DMY; + } + + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 15) >> 4, (config->resolution_y + 15) >> 3); + break; + case MJPEG_FORMAT_GRAY: + regval |= (1 << MJPEG_REG_YUV_MODE_SHIFT); + + if (config->resolution_x % 16) { + regval |= MJPEG_REG_LAST_HF_WBLK_DMY; + } + + if (config->resolution_y % 16) { + regval |= MJPEG_REG_LAST_HF_HBLK_DMY; + } + + bflb_mjpeg_set_framesize(dev, (config->resolution_x + 7) >> 3, (config->resolution_y + 7) >> 3); + break; + + default: + break; + } + + putreg32(regval, reg_base + MJPEG_CONTROL_1_OFFSET); + + regval = getreg32(reg_base + MJPEG_CONTROL_2_OFFSET); + regval &= ~MJPEG_REG_MJPEG_WAIT_CYCLE_MASK; + regval |= (0x100 << MJPEG_REG_MJPEG_WAIT_CYCLE_SHIFT); + regval &= ~MJPEG_REG_MJPEG_SW_MODE; + putreg32(regval, reg_base + MJPEG_CONTROL_2_OFFSET); + + regval = getreg32(reg_base + MJPEG_SWAP_MODE_OFFSET); + regval &= ~MJPEG_REG_W_SWAP_MODE; + putreg32(regval, reg_base + MJPEG_SWAP_MODE_OFFSET); + + putreg32(config->input_bufaddr0, reg_base + MJPEG_YY_FRAME_ADDR_OFFSET); + putreg32(config->input_bufaddr1, reg_base + MJPEG_UV_FRAME_ADDR_OFFSET); + + rows = MJPEG_MAX_FRAME_COUNT * config->resolution_y / 8; /* with 4 frames default */ + + switch (config->format) { + case MJPEG_FORMAT_YUV422_YUYV: + case MJPEG_FORMAT_YUV422_YVYU: + case MJPEG_FORMAT_YUV422_UYVY: + case MJPEG_FORMAT_YUV422_VYUY: + putreg32((0 << 16) + rows, reg_base + MJPEG_YUV_MEM_OFFSET); /* uv << 16 + yy */ + min_framesize = config->resolution_x * config->resolution_y * 2 * MJPEG_MAX_FRAME_COUNT; + break; + case MJPEG_FORMAT_YUV422SP_NV16: + case MJPEG_FORMAT_YUV422SP_NV61: + putreg32((rows << 16) + rows, reg_base + MJPEG_YUV_MEM_OFFSET); + min_framesize = config->resolution_x * config->resolution_y * 2 * MJPEG_MAX_FRAME_COUNT; + break; + case MJPEG_FORMAT_YUV420SP_NV12: + case MJPEG_FORMAT_YUV420SP_NV21: + putreg32((rows << 16) + rows, reg_base + MJPEG_YUV_MEM_OFFSET); + min_framesize = config->resolution_x * config->resolution_y * 3 / 2 * MJPEG_MAX_FRAME_COUNT; + break; + case MJPEG_FORMAT_GRAY: + putreg32((0 << 16) + rows, reg_base + MJPEG_YUV_MEM_OFFSET); + min_framesize = config->resolution_x * config->resolution_y * 1 * MJPEG_MAX_FRAME_COUNT; + break; + + default: + break; + } + + if (min_framesize > config->output_bufsize) { + printf("mjpeg output size is too small\r\n"); + while (1) { + } + } + + putreg32(config->output_bufaddr, reg_base + MJPEG_JPEG_FRAME_ADDR_OFFSET); + putreg32(config->output_bufsize / 128, reg_base + MJPEG_JPEG_STORE_MEMORY_OFFSET); + + regval = getreg32(reg_base + MJPEG_CONTROL_3_OFFSET); + regval &= ~MJPEG_REG_INT_NORMAL_EN; + regval &= ~MJPEG_REG_INT_CAM_EN; + regval &= ~MJPEG_REG_INT_MEM_EN; + regval &= ~MJPEG_REG_INT_FRAME_EN; + regval &= ~MJPEG_REG_INT_IDLE_EN; + regval &= ~MJPEG_REG_INT_SWAP_EN; + regval &= ~MJPEG_REG_FRAME_CNT_TRGR_INT_MASK; + regval |= (1 << MJPEG_REG_FRAME_CNT_TRGR_INT_SHIFT); /* trigger int with one frame */ + putreg32(regval, reg_base + MJPEG_CONTROL_3_OFFSET); + + regval = getreg32(reg_base + MJPEG_HEADER_BYTE_OFFSET); + regval &= ~MJPEG_REG_HEAD_BYTE_MASK; + regval &= ~MJPEG_REG_TAIL_EXP; + putreg32(regval, reg_base + MJPEG_HEADER_BYTE_OFFSET); + + /* Clear interrupt */ + putreg32(0x3F00, reg_base + MJPEG_FRAME_FIFO_POP_OFFSET); +} + +void bflb_mjpeg_start(struct bflb_device_s *dev) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_1_OFFSET); + regval |= MJPEG_REG_MJPEG_ENABLE; + putreg32(regval, reg_base + MJPEG_CONTROL_1_OFFSET); +} + +void bflb_mjpeg_stop(struct bflb_device_s *dev) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_1_OFFSET); + regval &= ~MJPEG_REG_MJPEG_ENABLE; + putreg32(regval, reg_base + MJPEG_CONTROL_1_OFFSET); +} + +void bflb_mjpeg_sw_run(struct bflb_device_s *dev, uint8_t frame_count) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_2_OFFSET); + regval &= ~MJPEG_REG_SW_KICK_MODE; + regval &= ~MJPEG_REG_SW_FRAME_MASK; + regval |= (frame_count << MJPEG_REG_SW_FRAME_SHIFT); + regval |= MJPEG_REG_MJPEG_SW_MODE; + putreg32(regval, reg_base + MJPEG_CONTROL_2_OFFSET); + + regval = getreg32(reg_base + MJPEG_CONTROL_2_OFFSET); + regval &= ~MJPEG_REG_MJPEG_SW_MODE; + putreg32(regval, reg_base + MJPEG_CONTROL_2_OFFSET); + + regval = getreg32(reg_base + MJPEG_CONTROL_2_OFFSET); + regval |= MJPEG_REG_MJPEG_SW_RUN; + putreg32(regval, reg_base + MJPEG_CONTROL_2_OFFSET); + + regval = getreg32(reg_base + MJPEG_CONTROL_2_OFFSET); + regval &= ~MJPEG_REG_MJPEG_SW_RUN; + putreg32(regval, reg_base + MJPEG_CONTROL_2_OFFSET); +} + +void bflb_mjpeg_tcint_mask(struct bflb_device_s *dev, bool mask) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_3_OFFSET); + + if (mask) { + regval &= ~MJPEG_REG_INT_NORMAL_EN; + } else { + regval |= MJPEG_REG_INT_NORMAL_EN; + } + + putreg32(regval, reg_base + MJPEG_CONTROL_3_OFFSET); +} + +void bflb_mjpeg_errint_mask(struct bflb_device_s *dev, bool mask) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_3_OFFSET); + + if (mask) { + regval &= ~MJPEG_REG_INT_CAM_EN; + regval &= ~MJPEG_REG_INT_MEM_EN; + regval &= ~MJPEG_REG_INT_FRAME_EN; + regval &= ~MJPEG_REG_INT_IDLE_EN; + regval &= ~MJPEG_REG_INT_SWAP_EN; + } else { + regval |= MJPEG_REG_INT_CAM_EN; + regval |= MJPEG_REG_INT_MEM_EN; + regval |= MJPEG_REG_INT_FRAME_EN; + regval |= MJPEG_REG_INT_IDLE_EN; + regval |= MJPEG_REG_INT_SWAP_EN; + } + + putreg32(regval, reg_base + MJPEG_CONTROL_3_OFFSET); +} + +uint32_t bflb_mjpeg_get_intstatus(struct bflb_device_s *dev) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_3_OFFSET); + regval &= 0xf0; + + return regval; +} + +void bflb_mjpeg_int_clear(struct bflb_device_s *dev, uint32_t int_clear) +{ + uint32_t reg_base; + + reg_base = dev->reg_base; + + putreg32(int_clear, reg_base + MJPEG_FRAME_FIFO_POP_OFFSET); +} + +uint8_t bflb_mjpeg_get_frame_count(struct bflb_device_s *dev) +{ + uint32_t reg_base; + + reg_base = dev->reg_base; + + return ((getreg32(reg_base + MJPEG_CONTROL_3_OFFSET) & MJPEG_FRAME_VALID_CNT_MASK) >> MJPEG_FRAME_VALID_CNT_SHIFT); +} + +void bflb_mjpeg_pop_one_frame(struct bflb_device_s *dev) +{ + uint32_t reg_base; + + reg_base = dev->reg_base; + + putreg32(1, reg_base + MJPEG_FRAME_FIFO_POP_OFFSET); +} + +uint32_t bflb_mjpeg_get_frame_info(struct bflb_device_s *dev, uint8_t **pic) +{ + uint32_t bytes; + uint32_t reg_base; + + reg_base = dev->reg_base; + + *pic = (uint8_t *)getreg32(reg_base + MJPEG_START_ADDR0_OFFSET); + bytes = (getreg32(reg_base + MJPEG_BIT_CNT0_OFFSET) + 7) >> 3; + + return bytes; +} + +void bflb_mjpeg_calculate_quantize_table(uint8_t quality, uint16_t *input_table, uint16_t *output_table) +{ + uint32_t scale_factor, i; + + if (quality == 0) { + quality = 1; + } else if (quality > 100) { + quality = 100; + } + + if (quality < 50) { + scale_factor = 5000000 / quality; + } else { + scale_factor = 200000 - quality * 2000; + } + + for (i = 0; i < 64; i++) { + output_table[i] = (input_table[i] * scale_factor + 50000) / 100000; + + if (output_table[i] == 0) { + output_table[i] = 1; + } else if (output_table[i] > 0xff) { + output_table[i] = 0xff; + } + } +} + +void bflb_mjpeg_fill_quantize_table(struct bflb_device_s *dev, uint16_t *input_yy, uint16_t *input_uv) +{ +#define MJPEG_Q_PARAM_00_OFFSET (0x400) +#define MJPEG_Q_PARAM_40_OFFSET (0x480) + + uint8_t i, j; + uint16_t tmp1; + uint16_t tmp2; + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + for (i = 0; i < 8; i++) { + for (j = 0; j < 4; j++) { + tmp1 = 2048 / input_yy[16 * j + i]; + tmp2 = 2048 / input_yy[16 * j + i + 8]; + + if (20480 / input_yy[16 * j + i] % 10 > 4) { + tmp1++; + } + + if (20480 / input_yy[16 * j + i + 8] % 10 > 4) { + tmp2++; + } + + putreg32(tmp1 | tmp2 << 16, reg_base + MJPEG_Q_PARAM_00_OFFSET + (i * 4 + j) * 4); + } + } + + for (i = 0; i < 8; i++) { + for (j = 0; j < 4; j++) { + tmp1 = 2048 / input_uv[16 * j + i]; + tmp2 = 2048 / input_uv[16 * j + i + 8]; + + if (20480 / input_uv[16 * j + i] % 10 > 4) { + tmp1++; + } + + if (20480 / input_uv[16 * j + i + 8] % 10 > 4) { + tmp2++; + } + + putreg32(tmp1 | tmp2 << 16, reg_base + MJPEG_Q_PARAM_40_OFFSET + (i * 4 + j) * 4); + } + } + + regval = getreg32(reg_base + MJPEG_Q_ENC_OFFSET); + regval |= MJPEG_REG_Q_SRAM_SW; + putreg32(regval, reg_base + MJPEG_Q_ENC_OFFSET); +} + +void bflb_mjpeg_fill_jpeg_header_tail(struct bflb_device_s *dev, uint8_t *header, uint32_t header_len) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + arch_memcpy_fast((void *)(reg_base + 0x800), header, header_len); + + regval = getreg32(reg_base + MJPEG_HEADER_BYTE_OFFSET); + regval &= ~MJPEG_REG_HEAD_BYTE_MASK; + regval |= (header_len << MJPEG_REG_HEAD_BYTE_SHIFT); + regval |= MJPEG_REG_TAIL_EXP; + putreg32(regval, reg_base + MJPEG_HEADER_BYTE_OFFSET); +} + +void bflb_mjpeg_set_yuv420sp_cam_input(struct bflb_device_s *dev, uint8_t yy, uint8_t uv) +{ + uint32_t regval; + uint32_t reg_base; + + reg_base = dev->reg_base; + + regval = getreg32(reg_base + MJPEG_CONTROL_2_OFFSET); + regval &= ~MJPEG_REG_YY_DVP2AXI_SEL_MASK; + regval &= ~MJPEG_REG_UV_DVP2AXI_SEL_MASK; + regval |= (yy << MJPEG_REG_YY_DVP2AXI_SEL_SHIFT); + regval |= (uv << MJPEG_REG_UV_DVP2AXI_SEL_SHIFT); + putreg32(regval, reg_base + MJPEG_CONTROL_2_OFFSET); +} \ No newline at end of file diff --git a/drivers/lhal/src/bflb_mtimer.c b/drivers/lhal/src/bflb_mtimer.c index 351d960d..5ef4f570 100644 --- a/drivers/lhal/src/bflb_mtimer.c +++ b/drivers/lhal/src/bflb_mtimer.c @@ -1,6 +1,5 @@ #include "bflb_mtimer.h" #include "bflb_core.h" -#include "bflb_irq.h" #if defined(BL602) || defined(BL702) || defined(BL702L) #include #else diff --git a/drivers/lhal/src/bflb_sec_sha.c b/drivers/lhal/src/bflb_sec_sha.c index 53b303d2..1c66473d 100644 --- a/drivers/lhal/src/bflb_sec_sha.c +++ b/drivers/lhal/src/bflb_sec_sha.c @@ -172,7 +172,7 @@ int bflb_sha256_update(struct bflb_device_s *dev, struct bflb_sha256_ctx_s *ctx, return bflb_sha1_update(dev, (struct bflb_sha1_ctx_s *)ctx, input, len); } -int bflb_sha512_update(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx, const uint8_t *input, uint32_t len) +int bflb_sha512_update(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx, const uint8_t *input, uint64_t len) { uint32_t regval; uint32_t reg_base; @@ -267,6 +267,7 @@ void bflb_sha1_finish(struct bflb_device_s *dev, struct bflb_sha1_ctx_s *ctx, ui uint8_t msgLen[8]; uint32_t regval; uint32_t reg_base; + uint8_t mode; uint8_t *p = (uint8_t *)output; reg_base = dev->reg_base; @@ -311,6 +312,29 @@ void bflb_sha1_finish(struct bflb_device_s *dev, struct bflb_sha1_ctx_s *ctx, ui *p++ = ((regval >> 16) & 0xff); *p++ = ((regval >> 24) & 0xff); + mode = (getreg32(reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET) & SEC_ENG_SE_SHA_0_MODE_MASK) >> SEC_ENG_SE_SHA_0_MODE_SHIFT; + + if ((mode == SHA_MODE_SHA224) || (mode == SHA_MODE_SHA256)) { + regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_HASH_L_5_OFFSET); + *p++ = (regval & 0xff); + *p++ = ((regval >> 8) & 0xff); + *p++ = ((regval >> 16) & 0xff); + *p++ = ((regval >> 24) & 0xff); + regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_HASH_L_6_OFFSET); + *p++ = (regval & 0xff); + *p++ = ((regval >> 8) & 0xff); + *p++ = ((regval >> 16) & 0xff); + *p++ = ((regval >> 24) & 0xff); + + if (mode == SHA_MODE_SHA256) { + regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_HASH_L_7_OFFSET); + *p++ = (regval & 0xff); + *p++ = ((regval >> 8) & 0xff); + *p++ = ((regval >> 16) & 0xff); + *p++ = ((regval >> 24) & 0xff); + } + } + /* Disable SHA engine*/ regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); regval &= ~SEC_ENG_SE_SHA_0_HASH_SEL; @@ -474,26 +498,27 @@ void bflb_sha_link_deinit(struct bflb_device_s *dev) putreg32(regval, reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); } -void bflb_sha1_link_start(struct bflb_device_s *dev, struct bflb_sha1_ctx_s *ctx) +void bflb_sha1_link_start(struct bflb_device_s *dev, struct bflb_sha1_link_ctx_s *ctx, struct bflb_sha_link_s *link) { - memset(ctx, 0, sizeof(struct bflb_sha1_ctx_s)); + memset(ctx, 0, sizeof(struct bflb_sha1_link_ctx_s)); ctx->sha_padding[0] = 0x80; + ctx->link_addr = (uint32_t)(uintptr_t)link; } -void bflb_sha256_link_start(struct bflb_device_s *dev, struct bflb_sha256_ctx_s *ctx) +void bflb_sha256_link_start(struct bflb_device_s *dev, struct bflb_sha256_link_ctx_s *ctx, struct bflb_sha_link_s *link) { - return bflb_sha1_link_start(dev, (struct bflb_sha1_ctx_s *)ctx); + return bflb_sha1_link_start(dev, (struct bflb_sha1_link_ctx_s *)ctx, link); } -void bflb_sha512_link_start(struct bflb_device_s *dev, struct bflb_sha512_ctx_s *ctx) +void bflb_sha512_link_start(struct bflb_device_s *dev, struct bflb_sha512_link_ctx_s *ctx, struct bflb_sha_link_s *link) { - memset(ctx, 0, sizeof(struct bflb_sha512_ctx_s)); + memset(ctx, 0, sizeof(struct bflb_sha512_link_ctx_s)); ctx->sha_padding[0] = 0x80; + ctx->link_addr = (uint32_t)(uintptr_t)link; } int bflb_sha1_link_update(struct bflb_device_s *dev, - struct bflb_sha1_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha1_link_ctx_s *ctx, const uint8_t *input, uint32_t len) { @@ -509,7 +534,7 @@ int bflb_sha1_link_update(struct bflb_device_s *dev, reg_base = dev->reg_base; /* Set link address */ - putreg32(link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); + putreg32(ctx->link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); left = ctx->total[0] & 0x3F; fill = 64 - left; @@ -524,17 +549,17 @@ int bflb_sha1_link_update(struct bflb_device_s *dev, if (left && len >= fill) { arch_memcpy_fast((void *)((uint8_t *)ctx->sha_buf + left), input, fill); /* Set data source address */ - *(uint32_t *)(uintptr_t)(link_addr + 4) = (uint32_t)(uintptr_t)ctx->sha_buf; + *(uint32_t *)(uintptr_t)(ctx->link_addr + 4) = (uint32_t)(uintptr_t)ctx->sha_buf; /* Set data length */ - *((uint16_t *)(uintptr_t)link_addr + 1) = 1; + *((uint16_t *)(uintptr_t)ctx->link_addr + 1) = 1; regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); regval |= SEC_ENG_SE_SHA_0_TRIG_1T; putreg32(regval, reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); /* Choose accumulating last hash in the next time */ - *((uint32_t *)(uintptr_t)link_addr) |= 0x40; + *((uint32_t *)(uintptr_t)ctx->link_addr) |= 0x40; input += fill; len -= fill; left = 0; @@ -548,8 +573,8 @@ int bflb_sha1_link_update(struct bflb_device_s *dev, } /* Fill data */ - *(uint32_t *)(uintptr_t)(link_addr + 4) = (uint32_t)(uintptr_t)input; - *((uint16_t *)(uintptr_t)link_addr + 1) = fill; + *(uint32_t *)(uintptr_t)(ctx->link_addr + 4) = (uint32_t)(uintptr_t)input; + *((uint16_t *)(uintptr_t)ctx->link_addr + 1) = fill; regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); regval |= SEC_ENG_SE_SHA_0_TRIG_1T; @@ -557,7 +582,7 @@ int bflb_sha1_link_update(struct bflb_device_s *dev, input += (fill * 64); /* Choose accumulating last hash in the next time */ - *((uint32_t *)(uintptr_t)link_addr) |= 0x40; + *((uint32_t *)(uintptr_t)ctx->link_addr) |= 0x40; } if (len > 0) { @@ -574,19 +599,17 @@ int bflb_sha1_link_update(struct bflb_device_s *dev, } int bflb_sha256_link_update(struct bflb_device_s *dev, - struct bflb_sha256_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha256_link_ctx_s *ctx, const uint8_t *input, uint32_t len) { - return bflb_sha1_link_update(dev, (struct bflb_sha1_ctx_s *)ctx, link_addr, input, len); + return bflb_sha1_link_update(dev, (struct bflb_sha1_link_ctx_s *)ctx, input, len); } int bflb_sha512_link_update(struct bflb_device_s *dev, - struct bflb_sha512_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha512_link_ctx_s *ctx, const uint8_t *input, - uint32_t len) + uint64_t len) { uint32_t regval; uint32_t reg_base; @@ -600,7 +623,7 @@ int bflb_sha512_link_update(struct bflb_device_s *dev, reg_base = dev->reg_base; /* Set link address */ - putreg32(link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); + putreg32(ctx->link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); left = ctx->total[0] & 0x7F; fill = 128 - left; @@ -614,17 +637,17 @@ int bflb_sha512_link_update(struct bflb_device_s *dev, if (left && len >= fill) { arch_memcpy_fast((void *)((uint8_t *)ctx->sha_buf + left), input, fill); /* Set data source address */ - *(uint32_t *)(uintptr_t)(link_addr + 4) = (uint32_t)(uintptr_t)ctx->sha_buf; + *(uint32_t *)(uintptr_t)(ctx->link_addr + 4) = (uint32_t)(uintptr_t)ctx->sha_buf; /* Set data length */ - *((uint16_t *)(uintptr_t)link_addr + 1) = 1; + *((uint16_t *)(uintptr_t)ctx->link_addr + 1) = 1; regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); regval |= SEC_ENG_SE_SHA_0_TRIG_1T; putreg32(regval, reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); /* Choose accumulating last hash in the next time */ - *((uint32_t *)(uintptr_t)link_addr) |= 0x40; + *((uint32_t *)(uintptr_t)ctx->link_addr) |= 0x40; input += fill; len -= fill; left = 0; @@ -638,8 +661,8 @@ int bflb_sha512_link_update(struct bflb_device_s *dev, } /* Fill data */ - *(uint32_t *)(uintptr_t)(link_addr + 4) = (uint32_t)(uintptr_t)input; - *((uint16_t *)(uintptr_t)link_addr + 1) = fill; + *(uint32_t *)(uintptr_t)(ctx->link_addr + 4) = (uint32_t)(uintptr_t)input; + *((uint16_t *)(uintptr_t)ctx->link_addr + 1) = fill; regval = getreg32(reg_base + SEC_ENG_SE_SHA_0_CTRL_OFFSET); regval |= SEC_ENG_SE_SHA_0_TRIG_1T; @@ -647,7 +670,7 @@ int bflb_sha512_link_update(struct bflb_device_s *dev, input += (fill * 128); /* Choose accumulating last hash in the next time */ - *((uint32_t *)(uintptr_t)link_addr) |= 0x40; + *((uint32_t *)(uintptr_t)ctx->link_addr) |= 0x40; } if (len > 0) { @@ -664,8 +687,7 @@ int bflb_sha512_link_update(struct bflb_device_s *dev, } void bflb_sha1_link_finish(struct bflb_device_s *dev, - struct bflb_sha1_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha1_link_ctx_s *ctx, uint8_t *output) { uint32_t last, padn; @@ -673,12 +695,12 @@ void bflb_sha1_link_finish(struct bflb_device_s *dev, uint8_t msgLen[8]; uint32_t reg_base; - uint32_t sha_mode = (*(uint32_t *)(uintptr_t)link_addr) >> 2 & 0x7; + uint32_t sha_mode = (*(uint32_t *)(uintptr_t)ctx->link_addr) >> 2 & 0x7; reg_base = dev->reg_base; /* Set link address */ - putreg32(link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); + putreg32(ctx->link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); high = (ctx->total[0] >> 29) | (ctx->total[1] << 3); low = (ctx->total[0] << 3); @@ -689,25 +711,25 @@ void bflb_sha1_link_finish(struct bflb_device_s *dev, last = ctx->total[0] & 0x3F; padn = (last < 56) ? (56 - last) : (120 - last); - bflb_sha1_link_update(dev, ctx, link_addr, (uint8_t *)ctx->sha_padding, padn); - bflb_sha1_link_update(dev, ctx, link_addr, msgLen, 8); + bflb_sha1_link_update(dev, ctx, (uint8_t *)ctx->sha_padding, padn); + bflb_sha1_link_update(dev, ctx, msgLen, 8); /* Get result according to SHA mode,result is placed in (link address + offset:8) */ switch (sha_mode) { case 0: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 32); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 32); break; case 1: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 28); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 28); break; case 2: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 20); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 20); break; case 3: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 20); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 20); break; default: @@ -715,62 +737,60 @@ void bflb_sha1_link_finish(struct bflb_device_s *dev, } /* Choose new hash in the next time */ - *((uint32_t *)(uintptr_t)link_addr) &= ~0x40; + *((uint32_t *)(uintptr_t)ctx->link_addr) &= ~0x40; } void bflb_sha256_link_finish(struct bflb_device_s *dev, - struct bflb_sha256_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha256_link_ctx_s *ctx, uint8_t *output) { - return bflb_sha1_link_finish(dev, (struct bflb_sha1_ctx_s *)ctx, link_addr, output); + return bflb_sha1_link_finish(dev, (struct bflb_sha1_link_ctx_s *)ctx, output); } void bflb_sha512_link_finish(struct bflb_device_s *dev, - struct bflb_sha512_ctx_s *ctx, - uint32_t link_addr, + struct bflb_sha512_link_ctx_s *ctx, uint8_t *output) { - uint32_t last, padn; - uint32_t high, low; + uint64_t last, padn; + uint64_t high, low; uint8_t msgLen[16]; uint32_t reg_base; - uint32_t sha_mode = (*(uint32_t *)(uintptr_t)link_addr) >> 2 & 0x7; + uint32_t sha_mode = (*(uint32_t *)(uintptr_t)ctx->link_addr) >> 2 & 0x7; reg_base = dev->reg_base; /* Set link address */ - putreg32(link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); + putreg32(ctx->link_addr, reg_base + SEC_ENG_SE_SHA_0_LINK_OFFSET); high = (ctx->total[0] >> 61) | (ctx->total[1] << 3); low = (ctx->total[0] << 3); - PUT_UINT32_BE(high, msgLen, 0); - PUT_UINT32_BE(low, msgLen, 8); + PUT_UINT64_BE(high, msgLen, 0); + PUT_UINT64_BE(low, msgLen, 8); last = ctx->total[0] & 0x7F; padn = (last < 112) ? (112 - last) : (240 - last); - bflb_sha512_link_update(dev, ctx, link_addr, (uint8_t *)ctx->sha_padding, padn); - bflb_sha512_link_update(dev, ctx, link_addr, msgLen, 16); + bflb_sha512_link_update(dev, ctx, (uint8_t *)ctx->sha_padding, padn); + bflb_sha512_link_update(dev, ctx, msgLen, 16); /* Get result according to SHA mode,result is placed in (link address + offset:8) */ switch (sha_mode) { case 4: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 64); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 64); break; case 5: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 48); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 48); break; case 6: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 28); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 28); break; case 7: - arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(link_addr + 8), 32); + arch_memcpy_fast(output, (uint8_t *)(uintptr_t)(ctx->link_addr + 8), 32); break; default: @@ -778,7 +798,7 @@ void bflb_sha512_link_finish(struct bflb_device_s *dev, } /* Choose new hash in the next time */ - *((uint32_t *)(uintptr_t)link_addr) &= ~0x40; + *((uint32_t *)(uintptr_t)ctx->link_addr) &= ~0x40; } void bflb_group0_request_sha_access(struct bflb_device_s *dev) diff --git a/drivers/lhal/src/bflb_timer.c b/drivers/lhal/src/bflb_timer.c index c72e0a3b..9ac5af8b 100644 --- a/drivers/lhal/src/bflb_timer.c +++ b/drivers/lhal/src/bflb_timer.c @@ -1,4 +1,5 @@ #include "bflb_timer.h" +#include "bflb_gpio.h" #include "hardware/timer_reg.h" void bflb_timer_init(struct bflb_device_s *dev, const struct bflb_timer_config_s *config) @@ -89,7 +90,6 @@ void bflb_timer_init(struct bflb_device_s *dev, const struct bflb_timer_config_s void bflb_timer_deinit(struct bflb_device_s *dev) { - } void bflb_timer_start(struct bflb_device_s *dev) @@ -191,22 +191,4 @@ void bflb_timer_compint_clear(struct bflb_device_s *dev, uint8_t cmp_no) regval = getreg32(reg_base + TIMER_TICR0_OFFSET + 4 * dev->idx); regval |= (1 << cmp_no); putreg32(regval, reg_base + TIMER_TICR0_OFFSET + 4 * dev->idx); -} - -#if !defined(BL702) || !defined(BL602) -void bflb_timer_capture_init(struct bflb_device_s *dev, const struct bflb_timer_capture_config_s *config) -{ - uint32_t regval; - uint32_t reg_base; - - reg_base = dev->reg_base; - regval = getreg32(reg_base + TIMER_GPIO_OFFSET); - /* polarity: 1->neg, 0->pos */ - if (config->polarity == TIMER_CAPTURE_POLARITY_FALLING) { - regval |= (1 << (5 + dev->idx)); - } else { - regval &= ~(1 << (5 + dev->idx)); - } - putreg32(regval, reg_base + TIMER_GPIO_OFFSET); -} -#endif +} \ No newline at end of file diff --git a/drivers/lhal/src/bflb_uart.c b/drivers/lhal/src/bflb_uart.c index b27ef3e7..bc6cdfe8 100644 --- a/drivers/lhal/src/bflb_uart.c +++ b/drivers/lhal/src/bflb_uart.c @@ -429,7 +429,7 @@ int bflb_uart_feature_control(struct bflb_device_s *dev, int cmd, size_t arg) case UART_CMD_SET_RTO_VALUE: /* Set rx time-out value */ - putreg32(arg, reg_base + UART_CR_URX_RTO_VALUE_SHIFT); + putreg32(arg, reg_base + UART_URX_RTO_TIMER_OFFSET); break; case UART_CMD_SET_RTS_VALUE: @@ -586,6 +586,40 @@ int bflb_uart_feature_control(struct bflb_device_s *dev, int cmd, size_t arg) } #endif break; +#if !defined(BL702L) + case UART_CMD_IR_CONFIG: { + struct bflb_uart_ir_config_s *ir_config = (struct bflb_uart_ir_config_s *)arg; + tx_tmp = getreg32(reg_base + UART_UTX_CONFIG_OFFSET); + if (ir_config->tx_en) { + tx_tmp |= UART_CR_UTX_IR_EN; + } else { + tx_tmp &= ~UART_CR_UTX_IR_EN; + } + if (ir_config->tx_inverse) { + tx_tmp |= UART_CR_UTX_IR_INV; + } else { + tx_tmp &= ~UART_CR_UTX_IR_INV; + } + putreg32(tx_tmp, reg_base + UART_UTX_CONFIG_OFFSET); + + rx_tmp = getreg32(reg_base + UART_URX_CONFIG_OFFSET); + if (ir_config->rx_en) { + rx_tmp |= UART_CR_URX_IR_EN; + } else { + rx_tmp &= ~UART_CR_URX_IR_EN; + } + if (ir_config->rx_inverse) { + rx_tmp |= UART_CR_URX_IR_INV; + } else { + rx_tmp &= ~UART_CR_URX_IR_INV; + } + putreg32(rx_tmp, reg_base + UART_URX_CONFIG_OFFSET); + /* Configure tx ir pulse start and stop position */ + putreg32((ir_config->tx_pluse_stop << 16) | ir_config->tx_pluse_start, reg_base + UART_UTX_IR_POSITION_OFFSET); + /* Configure rx ir pulse start position */ + putreg32(ir_config->rx_pluse_start, reg_base + UART_URX_IR_POSITION_OFFSET); + } break; +#endif default: ret = -EPERM; break; diff --git a/drivers/lhal/src/bflb_usb_v1.c b/drivers/lhal/src/bflb_usb_v1.c index 0180f79c..e0ee6cd9 100644 --- a/drivers/lhal/src/bflb_usb_v1.c +++ b/drivers/lhal/src/bflb_usb_v1.c @@ -1,5 +1,4 @@ #include "bflb_core.h" -#include "bflb_irq.h" #include "bflb_gpio.h" #include "usbd_core.h" #include "hardware/usb_v1_reg.h" diff --git a/drivers/lhal/src/bflb_usb_v2.c b/drivers/lhal/src/bflb_usb_v2.c index 7b2e4824..b376c00b 100644 --- a/drivers/lhal/src/bflb_usb_v2.c +++ b/drivers/lhal/src/bflb_usb_v2.c @@ -1,5 +1,4 @@ #include "bflb_core.h" -#include "bflb_irq.h" #include "usbd_core.h" #include "usbh_core.h" #include "hardware/usb_v2_reg.h" diff --git a/drivers/lhal/src/pka/libpka.a b/drivers/lhal/src/pka/libpka.a index 82fee0e8fe9db614da802d5a50dd34482f2cfa78..32ba36961f3c57129717ff047b9d9bf4b268759e 100644 GIT binary patch literal 771852 zcmeEv34mNh(f`a&W;Y=a0to@+a7Z{d<+#Pw*BG)c+@5_=)%Z0e&j{e^u4}UiX`~M?wHUJ{I!obx*&3 z-Bs1qRn^t~jybt7-nZ?g`>l!De~G%f`r1^yA=wy<#rY@m8jB_BYLfEA=KVsUP(Bo@ zs(#k~MPGDm==t<-Ug%pP&)dfZ5%tdS~BZZT4Y{(d9XH$3L0h6hKCI){rp&EKpy3|ns)9xo0XwOH>P zw%#{h+*%qut7sG+-QHg?&@wVKXmq4xrTVPYj`6_>qoVO*!RXi4f#mS$h*2-4l3NGl z#ie4OQ|#+6nKbe8Ov-q<+l%9a1H1gsZ!JzZW0PBk2K$^di}tVE41%j_wmAWHZ*!=U z;z-~4uCa-LTBd$QA3r%>80jA!cD5IWCKWooMwbS+Dwgu{xW4hh?S+XVzYV{PC2Q-> zOgL+Ig^a{bBk{`O_^A0KrOn?H?FplFqRUJ*rMnx9ACauFlPNoyG?GR=xsmPNPM7yv z*ZAOYvBS*a5*=kFj2z?E?CV;iD^14p`gYtz4JF+2NLZ**Y4djjHTcy)4N@j*B7oWn7d7Jv8#UtzKWbD7xA$%dBgeS)P&1w|yXv9_&xat;ys=O|k|@V!KFU#J zh=d`Mp*8+#%AT~!Qgv#Mip4hX$8waI8kMc?TRpnvKh}78Jhsbn@k*VyMy5aa4etC{ zkGU`&$FJ_Sz8-n0RI;XlpV_?M>#}Vv;cyt!r2K_Le+_x5P-x+w=7b{nsfK^94*fXv zF#kS*^d$aK+3onZL*4HL+@?!N{2pt}Dy;CJxv^z<=n zFC18QV^w_FjgQ77w^YS@-$HlipL=?ma?d|E6zZ;8TDj@6+bTDv+b`?A?9R&2LA{qP zi``$dEcSR!U*+72p7f%NE92qNk(u3(S1tVgPcFEnGQRuKs@Sp{AB*$-g!^ub7Okx+|;%wLd#-RwS5=uS)Wn&HIH-Mm0_#y zLv(wqYA(Hh_E?;#E_d;6nRVW!X?wRXz74}AvfKJ4k&9jVTSmR7c3c4stn zZ9BO0ftu6P-Bq_${_wJ8H-5inwz!QPH#a`N_QJyX=T3=-rMj(q&kvDI8g1>aT6FYZ z!>NHU**vjK>W{1qhkDZ8bC*`7wjLTzZLJF5R&@qO<}WegB6~36rtHVD&u~AEdzSif z{4?B-6ZUOCrlo!LzI_*HA1rqg@*c>tJ(WAb^(FUleW|^xZ}*{(hi{9LBzXAJ-G{b> zAHMX?s!+|>-?A+B1m>zA)Euw}GPb+&^mOlKw?!dQDnp+@dv3&hcVpEa)vRZF5? z{$o#`e{MK?UTg2Ymo!wJJbWk3x4Wy*hQ}X2@V%|!*1q375vrey7R;R+n&0}wyBBS& z4)qQGs*?J8TXfT9EIsdn^i+LqP4B+2s%BATl;-v(ncE}P(fIBi_div4(V}g0W6NUE z#0AKif6Zfa(9@qRiye}<_Wp3_4e9y4EgK&>s`9D6|9KR8>08tDA9}3$!m3BEe-v$` zb}d@e8eUpSv+bgH-XDrA%ZA!7BUyMsZ#q=JAhd|?m&HC`1Knfpve@l4scpXs(fqqH zeOqN}+YdsZ?9G(E0CJM%Tp*-WwR@zfLBAGB`@okXB8J5NEmqk`*L%Xkh z0PVqCvV`W6Z`5=_64QK&)z5+M}Em3KxV?+{RaDYhUT^`m&{%frz()5Fat;L=E!RdhLqE{D)%9$o&0M-HN=4(>wo;L~xzxV_n|C>@S2 z{3YG7zv*c2JbFI1w9eU|fqhtT5 zTzDPQa=DrAZllXRbomNh9-_-5xE%Z^Tn?FAZ9F_bJnx_M{=-$~lH>HRhdsn-m$Kpg z!}AtDqB55JQQ!Q-C{i_ttUO`-PneAV%Sz4opRgJK4v!^;@$d9!+~v>sq(9?sf5xZ0 z4B_KXOGdaL$#wBBw@ynPd#0#eqY8P3& zUIiB23qJSr?Pq7nw+o4H7f#Q!b3ux|Y14szo;?*6O~bQ{k^sit$DDfywc_b>uJG*T zCeL1nnc{F3)|XeDNWz-_gh}64apZ1EtBl=VhOpQb6-U$a;WH$8WyMi9;DPX~UPOLeq zo9*gGsPh?>TJmLe16gf}hWA%Qk3u(G1j}QtdT77|iAKvFD9R#V61 zFZ@Ap_Xd@*c%8m^nYxim`c!JksJg+kRdZ<63gt>B<$i^USSVMjSYcCcqT(o!bWCinK%OWqj*J7Xv~2d6 zUJz68XKWF+C%j0BKCgr@e$ium;q?KPafsF5|EP$5Z@<0e^(EzOZcl(C74!Z@wa+9* zMk}VD00ntj6M6HYE(`LqHu73LOo)hBD;eR_1yijRN8L(z!=Gg2yaxnz>pav+Mw^#m z_wSVz^BzXqX6)Z-v+7^m?B7N-PWl(u{gdt_RCi93)+fEzOGe6{QRC03^)jS?^LU^tYIFO!{Lzb1~_eoFZLw@jP9K^iBF(Lh2^ph{}mu8<{V! zn0F#oKNGX0XNAloOk}nV$Z z%z6Hd{rnm8y$nI-0e)mI2t?+=718U_s%HwBODg7lfvTSgnTO5_nST*;o|r6r{UNcdxugk%T{34d&p@FxnrYCQZ@lGIBX4?pu~{M?`Mh(F^OUWSnHza&GG z@RyQwN%*Kv`$+ifaP;d3KXWAfO*py~SlPEE{C#-dE2z?$Nce{ttm&hP0^zTPE5m<8 zbuVT^sS|86WUx-0IKx zpqC*e{E%dX3$}dzNI3d|CHs^_mWSe_;pp$F`aSZh*{a^{;dzGuaWfL+N-ifW9scX?Hg0?2uDvl zY@ZU$no!>vj((J?-=|~hUEz5@ph{;NQ}3P?3C}f2cr|oCnNZKQNqC+@uOi|3lJv&Z z1^$fJ`!g=|XI$iE2njEi4F8yVV>tRGIBOq@J!?$8DI86s*H33mT^gP@NL9>4kjrKu z$T5V^@NjtEZn{x_;p>;cG8EU(aF|zE=oc9|BVpef%cwtN%%AaUFGHL=r7%10!kcYT zwj&%p2kxG7v@fQm4f=D<&c$SQa?Y$wPiw(rXE=Hvy@nP&xC&bM;2T=}puZ*G*Ef%- z8=r!CRyg`As$wSepB;|6ZoD90zsxbGnd9LWph(8UY4&(HUGb_K4`+D1EQEQLKg027 zZ1!gqybKu+TO`9j9{R)41!z_|VfNY=U=gGkj-E=@KMjIx3(wm{Rm?l35Tl_QZV(JfqR~ve#7vxICQddJrEhDZU4HprTOt#k8~|iEx;Ik!72R;#~Il zglYL&{=(P49MvDsZ~mq7(ei{Iew3dMpT;XT;a_ozo{{vged*u$(!b?~P?*TJ?K;`b81J;DZJR&qtPE@IecM z-5WEBZ!&8dSsbASNU3S0%WKnUlh>v( zesjrY{c z&AMw22-BLkG`MC3MMEqrjrWDZHECL3Up7=6!F}hgs7~Hl$4{>r42A2>dQLnb{5iLt z6IXimoY>^mb7GfQ&q}wRRZ@?%e9mEnzsOJBy5`gp5<_t-Zn4h5?M0sq zpD&MukumQ8qlN|)-47Xab(NGce|7j}hx1#ajq^`9{Gjl`l`lW+>ZZf#>HVWp7{BBe zRlqBH05YgSl7Yr9urg5Mz@x&6Mcv`vLpRRf6x}eNYFQW!B>)bZk6g%*8cr>;%K@KM zssaTLpt zN81>Rai?Bvz6S<@iHA_=82gbN_s2!+QukL7_JqTw!ey#LMeAc#g(`WR{fI@SY}KFbkX!P~cT& zfma0-aLfWuK!MF>fz1I03TA;qS%HdBA|UT_40rplB6K?03A<0_O+p7+(ztALbWWnD)gFATkcq|m?34o{!L5GU_zKf zK1!roRwgKd9}I^!>lX*``xI3LvZaeluRa(5fwIIUyndh}6nF8b^NbN^cVNmNyeHij z(UaZ`xA#)apcYlR2XkT|0$k>z%Dm|@5W6n2sH`_r8e_)(!NY<(p?F#Di*;5o=BIe4 zeh7oEF@Rn!(WgSu6lBrW26UflDi=OS>T&lP8h*{k9`oAJeosC1qGRU%qQw|tN9j_a z*EGeB#w%pJPG8PIxYyv#`c}ieXECn^mu}Siz0j^qk)UgxLUz_ZBV?Sh1McLan|Gk5 z)j2{*w^<8a>iB<|3yC`SyC%VnL8|LDWQEQO!cIW30CEREIU`fM*ocJAz0dUs?Rj9{$bPv%JjEge58gHEb1vAPH7mIs|IHM(0gC|I*ZxoFU(W{Kxn7Bi4A{R`Z7PQDDOnjApZ!R^I-i!a#cU)L&fF8 zU>{3>^}JbkVyceLAV>n{_9da$lH%BK?CZpQJBH11&o(;@{vYdfW@_N(6d=T?q^N z@85%6%jQ)m1IIq+?7CSaX~wBt7YvxpD{+P`CSbQS#^BXY&2mDWWwGb~yt~XrrpDkb zxOkr$xUK|$K}{4A1Tg;pNp=kqWJ{lOcHOMU$@5c?xsEF8Ub#E|-^1r!?supN<;plC zc)eprcb6;N2m{`Nk|uk==&Te+t=j-v0L---%M*d#YL}6`nq5&yuMTpg&FC3*$)_uw zizDFKW_4RP4|ShmXBi@2KQ~K>Gs|MnuX(ggFja(FUG!=M8aO3t2CeP5oaQ}KM!x{o z3C8(mT?xG{$Vudw188M1$L2R_u8{lAE7% z(rngzGUF_u3kD3X7tCxz4q>o-nhav~AVsqx)byM)L)icfYJ33w{}+wZpdJO2BmI0Q zhlz?AC>Zdwp=T1~KPPbjfy-#+(SjABOaLwSQkf2Tr(xrILekN<8V2|t1BQ}G6z|Eh zff+y$^GQP=^eXvZq3&+h?bR@#rvYdyw>$!$bMg;E|K}($3mqVE z=sffI{~f4U!IUhEe%ADT0lt8N7clUD90PMiN>mXVBB5|39F4Nrh~N`9>ZUR>uPTc3 z$WdVbiYUkHM&{0q;xI$x96664l@H;lYvh3aBr~!gV*VOEfF79>iO!GmHnGTl`|Fzn z)C2Pu=(iqdKB<3Q7{wM!y!C+n=R_79q;d~Dm~SG7>5L;5Nh{4pMV2l$D~#-aNOT2P zwdNqJ*g?9I#Y>_rIp;(UJ2ZMU6`d3LNcb?-hdGhT!`17nUL>zSRy`R#f$Ob4LVk~~ z;p8btN~y$As)LnB%kOfHBwwuZ7sRB3Igta8QNJx*8pW|H==Sl;qI`~q*ZpsH-4i-hIUsyUG*CtAsemg5Tr1!P0Ur@?uYj*G;MU;t7HG|j_<9Uq zS=)=A!uNT;4)gWR^0J!+d|JRa7*zg^0awUsc61>Cg~bY@wJApwS2APYdv2Z_}a+Vm++O9!RRaazMHSS^c&sA_pj#bPQIQe z%~crQEvc&oyj#GB1l+-(@-6|N6mYkIPcf+YbeP-!8Oi*dfX_29P=JHy(IuQ6jq4G7 zJ%+EW|B8kjWu!zI1*-GXJ;DCVxO_8TbA0XKD^rEvgp)~7`%!#l1v`pUv5+Ikljr40 zq2#&T$f&}``I5Ruz_kLd6QGcClce4w;KKqwBH*I}1XEGLR8%k({et|4uiR2|z9itg z0=_5UApyS>@Th=a33yC^V)G{?b&)Xd#RA?S;3@%E3%EwW%>r%_@IC=|2)I+gT>`!& z;C=z$6!3ik4-5FQfS(KarGVcGcuc^#5$@)N0^Tg(QUTWpxK_Y>1iV+k#{}Fa;Ijfg z$AHPpHf9vx>i`agop1^a?uDIrbSYAw%=tp_EZ?{Cbsb-sZMa6^(&*3RRlo3FCH(PI z#&o5k$!`Sj|0Cc@0he%>xw02?eZBC362yUw`bH`8CINy){%kAgsU-Jh^4nVkyj8&E0^Y`;Qp9=XcO`X^kns`* zm6uEEDvzj(8Nux4h_a|45>yJtRMS;e(H}~UKb=*@m9OK9-zGS?LeO-(0EJ$KLJphJaG8L&2zaZ2%LTkmz-|Fo2)I(fRRXRSaE*X# z1zacK?E45b>^+YwU-M}tgI9Rdty|A z=6Wfq^syTy^)Ugr2~Z>96?T{}%910q2Vpd4qsA3V5pkC1KQ*_D;!Ev)6Yd^<4q~Dd0x} zej?!40)8XlZvx%~k%U3{W&xK8c#8lz#w+@EN!=*my#n4R;DZ7_EZ{)_-xKgd0S^oK znSlQi@M{6T7w|U$|1ID#0gnrKLcpamrY{qqWWmjndcS~M1$;!n#{_&rz+D3F7I2S% z`viPWz?TGkS-@8q@TfARBc%fcc;!rUfhdW`FtV5Obs1k-+veAZR`FuaHOlcTIbJ;lh3%6P2hx76{qp0CoKDI|z;ZJ4UZ z%lWA^Uz_+U9dG9QPQJ?Mo{Ag$xy*m?Rn(I)z8A$rM!KzrsByoy*3V_abZ-%0YcZmi zN0pc33Mrzv`zlEVYBF0%va=`0ltbT+{X8Vd^K6qoQg*HSFx5%mMs^fqF0MB-N8?ZNEPNj zhjU)b*Vpk?vHR5z&-d63ai6^XvjRRR!1g%E{HlFv_e&9brvHj$ifCeGCwBZ zHUYN___zS&ZT+OA?iQfjG0G34957#&-@YN>I|BZnfd3TmBLTL1R#~>kP7%_`E=TN@NEG7z2jB`ZYk$Fvw5t-4} z@ULQCh~gs3ip*T1l%%Q5p0!${n-L&NPk><#Kn}VHY zMHpeIgSnN9_$thG2;VQ^tB~n1zCWC=!gPYuBRNMH@EO1__wYD=$8&_^C=ZHg6Su+C z&a<4;!q*qnw%Mp{I~iBI_<9y!r&8qh);PIDM!wSPl$AZ5#bVniw%=6=BikIY6*}7- zxmDh-G&$uiQ9|r?`R(HZ?i6sB0I^E+!jQcbWUFGf^7U1DT&Y{i&7u@6Tcxs;?1dB=hY8t{3nQ0cru_21&hJz)b>f7I2Gz z4+ywbz=s8VM1WeqxLs0r2)I+gT>?HS;BEn*67XpOpAm46fO`epC%{_KkA7YTx!z^akrj-kOVt9CZjIdwIw)+bjdSJ$o?A1w84M{;uH%#qO@BUBJ^SA9d1 z{lzuIg}!ZrBgJR-C8b>@dBJquRV{k@Edc`703U(fPQ-zcxbFSaf7djqopq1b6vq3u zacfs?pZ!C9qr+o^L&fpgKe4Sa-cO7Z3T+t}+TxUoeGb@bH9i{|3OW77fx_g_gfp>g ztXNvTEd&|wlqUKS-i8DQDL>LTI$lH)9B$RXIc{O_x_b{(XrNe_m>lOiQH>)E>JXO? zj*g%*6mjsD(&U)Ds5CJ?II>m!P#7r<%B?&n_kE)y1A|lq6%H1Q#Q}O04IVERb#u`I z^a$B#joT-BztO*;(Y`aKl0KBBPE!Ho7KW&oNJv}g7qrrC82`|}Wps21Kd9c0>N5R> zacUW|^_x(z*pkt3{hK(>AsIv8sl@Y2F)l^Ci(f!ME z@Ca9qa**BL+aECAZoD@-Rr&8vQT~X^$h%)hjflKfH-%eT-X)b|c9`$IMjsjBnt&DQ z^!|}^be+DEy2Gl@A2Avt+>hv7je~g_E78bLxN%ZI6AIrx)$83~niP8HduWzd z%!^zv4T?s7Ej3H8OhlHGqAW+Xq%7aVh}$-h*QX=3{Bq@)l5a{dMXuq-Rz@!3{L0AAncqsy7ooquCzXV- z|CIb7`FGR4rtA+iWk2++QT8i=l)c5HY&p3IS>OCOq4kG^NFo7(Xmr`WrqS;;jjnmt zX!Mgn8r>tZ@Sf=@G397cbUly;M^B}oniayO|gsL+4N=*;UqNeDPl}b4{LLP=J zm(ix>V&pc#wn^DmYANK-^FgluIgqm7@4nM%!9PjBYDT;xPF@;9lOUu4x^Hcxu+4L{7B@fDcWdC+i5ft z;a=k!z^jibiVBC#j-swEq&4dOm2`GTz^~<{U)rbCi+n<`@~tVbQr^4r9EIvxjLpa` z!YQsmQF^I=q+U$N#i;%RF(Npk&$*8K25x<2}L(i8l(JEMu(rfQT{o>5;*R6+#bv{?4W+;NBQoldExJ`VF|+p_Q@zeU!3mI$OX?D zFZ?Z#7rp~t0Io&YOgXw|vY3x1^i*nXjHVuHd2lB!tb6m4cNnev8F(QA<4V-ckc-EY1mvi&gKnYUKKCrK8^q{8E$DcJCeLj#z zH_k+(hyG1ybn{F!x^iFB=$D#CH#}=J`avL#J~0!GKKpM%qfgC5qjUE)jsBr&^rmNx zM!yfF(U+&A(Nwx;^iVx1A3nu;>R~>Qfu6iYR!t+ZetGsjHXyFl(K>&Unx6#?<6?fL zU)y|ST1-DSMeE8*5IsyIUm1K*=S3?xT=}8OT&|+Nl{q#e=W;`*p~koOH8tL^sqv#J z`dhBumFK7im-VN-B4pc>A+Lc-M%>2s8kEF}^nio`Cfy2u10if2M|96D!l*gfDd=;-%Jqou44Bhrp*UpS+t zxI)blB2U$OqLE94TKh*H*FF&$iAUNT<34?~;5*VsFv6+I$c;k5&zETu`#O#+awoSg zas@Xw^6%zjniqLqd6s_1WcBmlH)!G!A$3IL!_0}%BO?bhUmOt`W2oi4p2hv#q@<9N zh8$`WJ;I&gb>%E#+S{JRt?9gTYHtqx=}31tPApOW_SOyDfNV#s zIzfG_@3oqkZ%w0#sHfFwbrKH08mK@adP!%x$Jx-?-R$6Bwi_>S)LmPyr>89oj5g=! z#pY|J#(Yn@r#J6(wzTB4J%rl^>$TF|p6=XQCxM^2WeL1gwpfIkTH2bN=Ir`hChPQU z>H^KyB(#wmg*0cjdaWv1DUe1L97uL$|-dz%0=W z%+=PMTOW(>Ow@!j`EIAZt2MhG%#w;DFO|vy#qGI###x`s=bGBGpk6wk&vy4XUFq(0 zdv$T=7&m_V=wSbHp$J~)w50Pri8}DpMzl7*v!0j>_~AtRj-Ot*HmXF7X3da~V#dgM1H64+`rIzaEhE7dK%eE@GBRqw_| ztL4@9yHT26ygYWyDX}VC)-(!v&T|~1$dv9B^18qoH>?;Ex)6?y= zWjz6u@<|`Nl#&ZhrVZ$GdK^#*yP`me*wE<6R`h0DVS5oo4STWPq?TNBRmY?~a<_xMND&#uaavfPTZiu#%IvtZk zLk_5iU2B5_gCHPtZEKg}*<=m)C6lPfgXl(*M{~N_+0dQqA+)vdOh9r`^%iu1{4!9T zq>+_}&_+Eh4m4AOZ-u9F>z$M#ofC-+5v^C)fJLsuTqPHm(FD8AO>MqmjiJmEF5R7J zWg*m(NR~_S-gI{lPha#N7Gy5Z$>b}dOs>6cZBnO9CFn_tr)N24FJh_BGr(JH^!5xWPPGOl}gscYvOf943dU6sv+Cf!W?4IhbJ}&mL4bF z1-8;mpQsa_f)dc#0@VexpA)0;#3YL?9U5AS#7ME&@9Y4ToQYU@?@1F$fO4L;L#Pgv zIZ{+foUO$PY%)yLRTm(lPlSvfDokK^ZH$H>rlN`1iOca5^+!!2m^;_)P>WEM{m z+oV&(AYe6*K~#b!BN|Vbi%6?df&_>)aR(vY2E79Fz$;Zfe3OqatnbQLsG z@G!=jn>st&oYq*#Ns}T`D9NzZTE$M{qkJpWAgD7vtu#F9kkeH?Ha*e((|FW2cyk^xs*U^&e$n|Vu5x~=_tJu}8uC0ZrnEtQ0qNatBg9;PL z2LDW4)0o0Ut_P_}Atelhr!5%;WEVlMK{Zfm);C!-aA$)R@lZC|lv^94nTkdv_o^9# zs=J;0WYA-6dpZMs9g3jV*NGiW-ey`PYs=dSmDJLbrW9Jbpc-<<+m%plCV3J!=@ExK z0Ux=Ok*5y1SzgD{$t-K%v8CHc+K!DE`v?0VYsV*xq^{HKvt@E{Xku{0K@ywSt2uim zDOB9m9t=_%!8MjLs5G6X-ux!R7IGX6=(Qc$W;H%cRoojahCZS+&UP3bNxURUiU$uQ z(^f#9_b}S)Q-suSQ1^GTn(ef7F(RCn_H;`siSa=Fa5a@gBVLrTRa;Sv^H~T>W7IWm zg6_g*WX$pIL(ng^h6;foOe97L%ssG{GBNRtdvCXZxF$o=8-k@R*90pT^|T<7>%w>W*18BfXTHlIs+01Y=8# zSc^fD!XO#cI5JA_KGP|T6oz({220WwN{@_^Mpcaha#({?Dhw1ScDW@nBdkw5G`oRL z=rP$MdeD;M>l?I`x0JNvTrQVcx3J}Me0iv+9qu_`4Bdx?hM5^>j|_opd?HK#0*qN|h)idj}m(>)ndAECW~Z21k{bRUO-sQhYa z_$s?Pdt%k>?6CVlBrEsnX)%*&Y;;8#RcN}M_~Bj7rZPPx80^n2S7U&;mDon)*(}3qBhiD zm?&_s);ehnzg$KOdy@0IbNNgse5PI9otbPtPjg079&<6dk6i&uvn0)_Yst!DJ)<3- zNmAM@QY#7I+F~n?<6E>zk!I&PU% zqJpzv0U}^Yx}NBkKx>8UZMeDGF;{z1(PtW~&KX5j=a?hNF-AuX1rL>4qgvrmU*#gM zXjIjT7+)UZsjJ7By4bVU)t!bijqxdSA>3;{9qD#*9~+Yh#<{5lkVBB2MaD2T^fV7S zDYE5g25EFAJiPwP|gm3CR8v}@R*gOCan)wo?bhzWQl4!?rGI|iv( z8ipFWbTxiKUTkS>8T}qxx{_{@8C&{t+(>bBeZ0u5QG#EMxC8#_)vH%iJxb|NN(QA$ z(9ZdQw|)p)Xcp=2wRx7c$_(7mhtt4d1a4!6aZ?@&4jisziiWb;jbvoQH)mi{ja?XpZ}w>IV_>_K>Yh=H`L;UqZApw@ z?K%Rztm%CwXOY3g8t+>E2R6?$OX!_)OxIasrGZgseT9+!7>)~sQJd>PXV*e`$3&B8 z#L|IYBrsPDJgs@_KoX~Nkq@RH<3H)|15N1TMV#|CB1|Uq(Uc*%Oe&6V(A8nuY>JcS zL(^P?9?h=pO)Tp6VCTd(yqG0Gx@|)m980{2$stI^sID#y?I`RjVHP59^z!BK)4`wD z=X$3VTE+w!^m@#U%6Dd@y#5cv*wrge?Jxpn<4Ls~sXSBq-4`iHJA-|M(#@T4qsw|B z`NjtNaZ(>VjC{PCBPsJC5j^dk&9DKKh^qJTg;B(nOJg{bubhgMtHcBiQRQ%v)s5;^ zw7vl|-<=9}j1OYjYzxU7&?(yntadw7wGC{Q%#>O>>Z9_fca|2Fd%~@ zBe)u3uo*7(6l4(eWYQijx47UM>qs-|ghoksgsshFv;s@3cZ3CD@)k%(5@bAUnTwBT z!de(ztitLANmoBE_f%jdXCvwNBwgXHHK@naFi&Q#E0RPBtxGrOXn2NXRh8-1o9hC( z;x)9=LgW%RkYPn>PSjAW4i?#&>b~W%KEGg3(3(V3yqQKdxlFOVnrlx3a`*wT%_fP{ zjh2|Lc994(Uz>I{Y$C{dWqiuTPU(koQ^nz?5+6dFGci0iQW%br_n#C<4DF3*l*r;T zgj%ef6ee!0p{bHwn#p7c$MlwpWNc6kRF_`&g~iNs8!s$y->DEVWMEN8F=#BZ=|++a zzE${vMC*r&2bWa|hX9xB|BeHO%J+74b$0ham(vp;>BP!T%4bh?GEm)Up-1NZ{=x0w zG;W)U%n&h|Y(f!!dEd}zsW|Oxd4#fOioJ`BJZsfEuGUpNv5*h}Krazo8<7}#5k^*L zQdpf)Y)7_xxe`D!!f__iSeyf@mn^`^*`DUk4IR*3(Aivb`H*F+1acv?BilkEDppU+PBaLJxMkLbtC>)vWb(rtk0&5X#Dg7MwrnT%7tHht}7Qyrb0?=q7~#f^HP|b-9Gq4pXI0^;u5}i#TKiVY#d3- zo4!e*OKu%N><^Z-W2v%H%p;(Q#dve})Lxj-Et{&@1Arg{GEM1zIod~_1%x3vh%Ld< zyrqelyL?KqF0^z?50K2=Rwy~@Kwv^xJfvMe?Ok2%hfdmf~BE#*WU^CEL8(ZcGhR1pmfsm(NZ~4dTEGJ%omGIKs_w0g43GdyX?YBT8`pR@Ji1H80L^L&UHN) zuJ|V`Z0JsRkurt8lZW5vlIS7`yjW-SsTT8|QAWBQV7iH}=A%a#@swzoe$L&)a}u3~naY z6ah|>(~jDc)l~$txvol%?U23Yn z=EYsMIeinw@nN9O_W!Z2H0`Qwk}Zo=Z7AE6Zf=1o0q<&acdi2i8}pAFi$R%UgIF=D z9va0qk`{?xqb5gcF2@eS#7fqBZXb(f$8xg^VSvv%+DLE4AFK%a}8_mW1 zh6!Z_)=5bm>(yN5Xr&HWuB@8XjR=9Nt*fbRs7WMi>S}9h67@(o)Hfy@>Kc;CM5;cC z2&rTZ)|+=S^Ygl<%w^U}nK!*DrPG#`rUOB7OQxqS*PU~^+DNlWSx!77K*2%aoEjTC z0LMizt0$Rw3)>6X_O6~yaFc{eacGHZaZaXu3|7k@t(<>kyMJfQm|I zR>H}!%xE<{&vAutlv#5HVL0yaOqwu;S4wzVvxN~r1Dau7BG+7vm>xG$Y#U;XL#)$5 z+cj3@MTqM5phpmaGCS(u`ccOH)I}MYdvyb`c**h>uQ0GY^d<-`U%p$%eX`yR_hRynEn-R?I2h4xut6n6-@8kbvFUQxPhZ z@U+aKzF~OI*ka0d<#Q1IB=T1$8nFzSY-mIb5Y`~4aQ4=#Szbq#iy&@sdkCSYBtAvG zNT|NyI&+ufdf<~1ZpUIAw}k_D?Xe`WM6PpdXn3?AQee#EdV`6T2!&Y#wb*It1+#lL zt1L$vJjRk10qPXr0Cz=imh4Fm>2yOb%mscOh9Ov%P-TyYu|I)jHb;euZO{PMrE7FO~V~Nq!;JJ-F3&{#nG2{}wO0*^@y9XTb?=+#Y<24PdokD-Vdat&p z$%~yz#r=&*)>EgO8k<6{IiUR6Q%Qt@j1+fHtmHrd zLUrCB(fVluHFuj;tp2jAQb`YiD_lr(8LFJXLH?{?^z%z!I0#@Y$#x5 zI(2h8!$#i-ZILJeyI7(M5Oew$UXSsnB`Bx%@JrN+ctwaW4Ov(RIYiF0ug+C`(9|qe zNwMvzZ1+%7#Ac&d7v`F{Ocoiafg2HN7!)+Y!KO2A{8Q6}Dy-y88CEjz&vvI{aM>8F zXEQ7Z%@KdD9NDLQyD~Ns#PPG_&Y8F#qdTzr5j{|RtUuxnD8ncbccXk9$r&A^uXl}( z^dq!@K859!425fkl4|nTJC|4&YiO)TXjo%ysCNQBPy2N%<`z$@9mBYwk zcuB-M2CD1*6&6;@emwm)skLQ2^khz^^(Xdms|jgZFSp(wh0RlHKNSaPm=VeD9x9Z9 z4y%jVA$iIODl-zWD@Nw+9>{QvMaZB`UDCZ+TTuEqMTnG& z;}eK0#9H`N@g7n}72zIZf-z%0e6ux+i$s`(e&8E8Jv-!&lD?y}o z6oJ!tg&kNaU$WwTY9#FSz9h9dNtS(R9S`Kp#4X&3u^6Own6m_PDo209k)X$<>lNWO z3)u~aMP*E8T5q@gE{%* zh!0{S0vHggd|D;Jw~OT_HB8{C|1Z@hixDmO)mn8 z9>Q7V5p`Y4vdqU01lLC((XYZWr~_7x=&^eJ&6CxvsWdT>5`1?iPpSmMy*`HO`#d-Y@02>5PMe3VUa>+-p2I6-#G#;} zIolZyEFLU+S8+FNwXQtIiCP~t4JTiJ)%gc)PL1hs3og{Eqcd&So$@BNXDqwA zD(NsH_rYhpG1J|xN5hw;r1ll*^=~f(+x6Zk%f@UP$w-{~fH#p3&Xpjn)sjqQKY|(v zC{zz^94nN~PHS#$D;?(mNfM++Vms4zRv_7!5mJe5qRksBA@)j{`NH}j{f?k4?6mhU zxOiLcz0E&ho>`nHA+nZL22&DXGq7d(C`)#BaYA-scdjE=flpcdMOdkhaWKcW(H+Bu zkzLh0SMH*9T};#~s;hS`Uxnij)&P>EL68FJQYx-=YSG}y1oeb7FgemUfq~>xN?tvQ za6Y=w26x&!PW$~auc?jrS&pWP)h7_kF~P2P)I%*8z_#4#0p68Bz&k_%n9jraSsr^? zEFOCaQd8)D>M8n_dq&P57P2BS#k8Y29bP(`m}D~!t#CmZp#^>15qCq>I9#S3t1+Dj zLBQf^LtR}05oB2Z3T3fP96tC2MS>94X&mUWp#7#A5)q8SC=&zkUsp3PNAEOa-KlL| ztj5|uC^Hk=R%QNAZ-ka!JuWSVXt8w%@{dzby3@_PGM)6s_0aI-PzXEDXp?f&E1)-s?09{@(z}hFWA;R8UFMugXPD@|Dw)zQGKKUTHVfMc`*1J;%i{l$ zKwrJMj226D3)&|$AA(m$Mj>4xw&|{#=qgWgKq2VH5eR59ToZ_<#339ANLU$*uT+wm zwtQ2F0%WuAL7o$^L6Lqw37v!B=0h0_YeXq!L|%86eWTtMcCoajG-8FaAc77 zFHIBfV|b9kKh_F`Mxf{6oSjrqrnsrr0ad6S{ws6zskI2TJ2}wnixuQm` z%B^1J7F0sWXuC|sbij=_6_aDmC?aE_z1fPLBy_l|&3e7e&0y82*B2Bdd@RGcn)be^ zO)laXLxc>nFb@+`^RL9xQtTYk3~=_vEcQatIWAM}hB7S~h(aSt?d2_rMz>{Hv*ksT zwufU889q$=O8XG4Mp;)E*>E(Wy7*PUWLkL15Qatz)HArV$pw$?T^s?G*D?^yOR-uT zvgvg(GkgX9O!COHEXCO1ZEUu7?W}F*CLs%br}1KU$*g9V{S&9C-YQlHAk4nc&VmpR~g>q%U>-;@V~ zTyH5p;sl6EB{%wnHtFhtaY=^ApqNu0)f`yOF{kAEu>#|PF})2Bw`DGBBZQuvkQ6@( zZ5~cUZW=}*rV}f)7s$ms&}It1Q{kSp;Hvq;ui1)_R?9E6abX%4Kd--(aQa7}OM7~) zj-1QWX?66wC3ckhRHl<*QwniW84t8)+cRC{*i!pz#8Qy$HCV@@*`hExw3mB;%uPU8 zv!nn}TUxteW2~&OeXVFeDHnwCV2S<)C~j9iI6H{?DE{w(`a>TvV~cw#NWnyvMBrA=UPwQcg^3)m}R)b5s2 zVF;$|^vO+sQ6)HO{Ra}v6_c1{nGwj7z$c{G2kbc5+XRyM0@XOsHWNn-EP3T=_DaJnm1*kovykuLKUJ^0_S^0|puoorLB(}LL{4EVI5vc1TR0Y3 zW;#ZRHiTnaxZV(6w%oC{3u`Jhp>z*yik5U+8=NJby=z;AJf_zfLFYqomyAws-NsYw z*o3onvM>%0nX?5JTlw}se*t2Gk%`f5L)8wK-cs687{e+iQd&zE{kk0o(9mImCYlve z*uJoWb(pJ3_UDPG*`?`uloE9QL{l6K{=6c^4sT|CnxB+6&^zA%)3Ne#X}wNzNH4Nn z*LC6zBJIT8Ej05UA=YIZaGnVcG|6^lvERdDB$fewPLk8jjOOS?zB)@Fnb?_e-;iBc zahAc+>URmt!?>}cM@^q`f}%T8Nj`9b4#QGjDPTp#G^I1ALf2{odzDwul$=qaG~23N zM%MIbDV#I*+*eu;Dwc~R@bg_*-sV$HT$$vCkfT?8_FZoW1p(lo5z<1-yX9hS#>1=p zXjXCaG)j203PmHk(U`K~ZJO7aabU?Bz1q$P2$m+d7(orBIbz!jPVv)D0PqrnAPbX^EJpIbV*=^i~k)wH?@#2E89E zc}S_=JLc%D;kq1G6f4uzP)F6kRxt{ZSk(G38)wYSzks#q;)(K^9 zTH1|K$P@~ea5BnRgfRz40%Jov)p|O4?;8#K>WS?uCt%d|kHYk>#@(uyPHd;eZStv4 zY)2|aKj(gSZ3oHU6smcs-);f@2F$eK5ZwQ=}RMWlTQu) zTO2DrND&gs^F|w8Iw_1Li-<22ftwDVH={6Z=$xi>!Y&Pu;B=*vMrrf#WZEi^C5@f* zs)YA?s|W=Il0kY}{0x2tpFs>X0Eb{j-QwU!5@nCf_?BeZBgtvr0_W(2-7p-}i=*LY zdct)v27AK57Gf^Rt;zz{Qy}?x*d`7sR2vyfW0(__pJ=0b#0o-* z_b7Y?oZWqD%s1h|-~*pbj!p1nr{+;80yr#tHI7ZHP1FXTM**2bf5la`#<3JQ(+M^Q zA$y(AoiSc4fhx|KO8!8sTl)qQh{MG(iw!k(h=i!Y$xMj6X-uZ-lZ~|v@CG$DCh8I? zoYGWFakyHY(3)vO2%F_6M#u1jL|J+P+~@}OS<)jU1o2iio`ZIDcq(LXt{bN|;34c= z>FAWRLD-YycjC}w&F)y#tXqQyGD&qr4y&x}SJZ_enayT!TR;Y}hmHI@fm_^$1!=|+8(!NjHE}?fzs6YzUXb#}RW=yj}IUoVb9EUZr z_X8TWoC;^iOl`nGV(WEJEsJeM#;=Wo6d)-UuFo~8egj`4Zk8EM9|9r#kl{R67fR8-flLAclB8MiS|nS-zFO69-ocQt zhPM}nCX33x<>==WqMyZrg(g8u4{n0YRgD3y(`MRfZ#~XeaWz_vX&92(_WW8>>ETW# z1}2}PJ_OLR!9@`vuaTut(XOr_cec!@&NyL?mU8tBOQngFJgI|0jg~kL`JmEGIYee} z!Y)-leW?p^;CN(`owx4JYey|==^e1GY>*LaVMT+qR2{3Ll7toIK$kD?Z zS|!XQZW9z*ByK&e(vtORJZB8mHrtSg4;`{BR)<9xI+xAq?7=B*2yJA7EUH*lZ?-{Rz5mC`36qC#EayEQv1pY?}AqZLdq5>gNPn` z%y{~jS=5zaywllpflGJku*UqR_NLCZ7_=E|V8i%fJh)RH{16B^;Bg~eDpQF0bc^L! zpi~MpzVUDx=baIP5Q*UsL6CfPa&hQuc0ez>&Cjh>?4bO6XIMN7(~7(z2WTr8CeTZ^l3p2F6NZKt5+1K2Q!lZRJn zFZC*%J&6wq4E59Fe2~nl;>hH12^3{CdJ;;owiYKuz)4Hmi=!Ny)yGrl8QUDDQjUEc zXikx02f$Zl41jnEZ+8<#{PF3EV83eYD}abS+dI&Pl^6tsofN}Dr0c?}UW%oZ@z`;Q zHdq=HwpGu*B)0UF@uk&xf+7$2!E?Z(2;?AxjP}0sq)npKTrhAA$o?WP1n`kv^68K2 zYUogbpZLH>Mf4{=SlWa4jjkF3i*yTbx)!y?H);DyyBx1il~enL-19DIi8Gb5j8(Pt z!s{xg(o^F*Y296-ku@K$VZJ8$%Bd!)9e^8jz$TFE1*7UvBLfZgGLNNWK`yy_b^?_W z?`N$+c>86ACB@C2MQqF3Y)593^0wo9G+2381}{z}L9D8{2oN3VoxcgbwU6kO<2Pvc zijF;$`c}oN-32}3$K}NJ6rPHraVP__IY&!ScXmz6?5Z>s9bcz)1pcNC);OW6kOU=7 z1%6nIgR~+?pAxW+VM@UjQ#NJO26m`L>fVi-Zr7VITNi`*~&@Dc4ii;F+JZ1pKg2XZ&z zfB;uc(wU{|oH{+&Rj)bpg+4f=B43C^#D?N-^{h9-A{Nc@ZmBhBKOJvRf_{bbIE%_u4 zd9TgjQ;Il+z?c}PW1j-TrVxX&JVsjCIDPYsrUU8(=W_HE?vQU7#OyfXpCIY0=`dP8 z(p&BSXQe;h8xnsw`5o|fj2kN=+dzsa3@&-ZYvE4CWMX)`sH|=+C%pov1e7&?O5sJ4#Q5fi?Ec3Z z9vwJW-G}4n*eA15JXmZUmmdg)L-eR1&IFW=5eQB$(3ViyC&655Z10id^~f>BwmE;& z#pjfR6M7x#k;y4}FM3caC8`vev z7x*g4FG_<<>w-MWa2ACfiKHp6on*b{??IkISH)2pg4P?1MKd?cw{n)#`{q;e6diHW zhHos@Af`ZcG>!(Rh(4eFXc`Re+CTuCs5LZ`FX?!Yep*Z9al*!42cm&6d%}+`C!Ws6 z{v82N^ldA$qmx31l^rbM#MAE(l-+|85U;H<=nv)|L191Q3vud+-h+|J+bXa@k#|)< z$f#gFSxmq{-dU`xLr5MXWO0JDFX+}_ETsbA$VC32rdG)59HcVkus7cnqvJ}zHm-h3 ze3LOV&U?r6OrYts7c;00FdrS(% zREcu(wKvzsa3F@V6L97o&V+$UG+bCYj7?8gHf6?;t4E($NEGRTaA9a=+C-v7QL%;4 zzMU&eD>0kF@J248wzY=?+hYF2~u4 zLv|c|_(0*Lgl57)+@AQ(O;k=k zgo#0Ja3GbFPj~ULtyuOZA%=k)YY5mT$H#BYN_XOtt|gB>T^v_LmaaNG8@DE3nFhRR z@72)vrVRd*slWU?xXOR3BgnK|;nmY5$rU;k#HvX&E40&Rmt#65yAK=1;yheLgV26x ztxs50sm7c8An>&g$ReZRu1A5-p0X6sseBJo(nVr-CLehAlL%tt*w>)LULhpVbZ@bS zR6$W9F`s$yJ#?xmmgwLyqPYv2Z*1VZKC*_9PxtUT5bbvtZ>~hU zDZ|{;suHVl_)lZ9v9YEm)qt}Y@QF=?8`U<}*EiNAahhCX5?|}V$#GDt5Q1;?QLiJG zeQrA7$Zh2m(??=)Ks#C@yU#HVs$Cf9IemA?!2v3Lkh!$u4o(W*aks;BQS876rpZOY z^C9FZyB~MLSVj3$PKja1Jh?1r-z!`jyi=BbRLK=9D7b^9KRyz@9(yP( z(L*X`R482H;Ejd#>m|? z;y`#74U8{mXOTS4nq?D5<9AU3v!piARidyUSseON?sk1@S1MrwRoXZ~WG8=NTN{e6f;qi-O&D~Fmc z@EQ7;!;{;IAnjHe{WG3~W!0)at3e!NY}?Z!k~cW$U3(o83u8?ZYQ|Sw=ru4YCz|Jx z14L0&Y`KNjwSiZ1lp?@-5i}R&`O0E0h6aSCp88P9bz3yG)gb^w&4Eg%cD2xyrHhDG z#2>GAI4)Y-AO4u=vVux;E^`R9;L|c#FH(EeF)Mo-6Mc<*R>vmd>?+%%fWQcHDP%(Y z8A;}|Qj+@1OX=RQ#W|qGA?%*&9~#}k2!M)1pSGhz2`JEv@D!VV%OdG+0oulgFo|5lCpA{YM^UqoCpho)Bj|``9k5O%<6r z@r`)e-ZY~-10RW}%}v^$!MpCE^?M@;wg*g7M7fZUQl#HNne=nr`_#D^_mFt1whBEL z-#xw`2P&rMjF2>Th>&)Ta5NUXlqQ>qca|7(%so?%#Fzg_x#d%x2_ma6?hznUY$jD_ zy}8Afhvd9mI?GCh+R^?JwXw-`>58J0HR&o{<`JYOC-yCqsiQ+OgCv3-N+%YHp3EgU zm#k~Zg<6On&uiy%XV`~>k<+{xAKTivk-mz{^W%EhoSoh3?ESJ$%?UaavXSQ?_yK{MUth;bI#jsiYz=dP@k z_(X!?5(0q0Rr)iI5?mTvjWDUzR30CA0NQx*%sic-Q0f~zD|Y(Qr7=_xTZ$WYP3me$ zE)9-Omaq#~887-ndag&*^=_NX5~$YvxCWfw_|9Y>nS}@)S-Go-V>3rhhi>1tQTp}| z{a%e;Xp5M9s3qPuT$mWdsB^|3x|Cy;%EIQEz(1-lh6>?uGJMZ+HaqM)80fF&c=vv@gHxrt+yaT3y6 z96y8*K^^t!i-=9K1_R!e^$S4?9R%(k>?H1e_|N(W2L|jN?FP!*9P1Nr<;YX2g-4d8 zFG@=dH~XlUShalM*Zpj%dp1#?`cpX=xGBr69T6%Pj! z9dF`8n?Yj5S?=(iQBf>^K#fcOY70&D5cW#Ip{I^-#rjx?KIYy%3;U>V_V$t9Z=nMd z)jlH?!ovzr6B!-sxa2QO;mA{%i1^9`K5ftdkc{K3@Kn4po=hd{6ZI+Vw8Fws9h~a% z2C@+yXCv$gPvUY^%>YfTQ+|HXr&qe?1S4?9d)jeU#s-Eba4aYwEtep88wpXOT&%%e zB(|7;4K#4Zr|?Ofqy!f{reXdTWN$`&5S;ii8WhXd zYuLy)`l9A%8ZbEEON~Zy4q;F6xWgZ!H%cq@K42-6*p0*l*>;r9mHSL*~dn z$(1q0hHV|ek<@iH!ooTjGn;F}cPMe3HHA_FFN_rTK!s$j#Y{?A69GicGCt10OAPQd znQIDKYvK>RV?7jW2x=k0^r7Wjv6x|;m&c!4QSL(;l6al#OccY+!wbim*vhGBc;uy+ zN=*`kTh<7ei9XRFkyaEa%hs10SgYN963y4#*^`g0jNzj|l5!cu zE-`xPpe4f5G!`X-iaE;POR9mW53oAyRpPr z^2J1>{$F$E-1Gk2!{!UoFaG22k@K+Z^Uj<;GiT16Idei!8@kjSOh=okewX43&KQ5o z(xYhS%&u%F5`5HOMR!ho+d6Iw%C*u&WBsucG&8O8`LutE z8@+k#-(jn+80;UwM#G#jqz0qBGsKwxu#|rURXuP(U5_xJum2)#=5T)XHN&W@S@f|e zTFZR@l=#KBl|NCoQfi}=%M|7f5+4`eQDq{k5okXP{kKIaYKIMFh|pYZ${!?tjGps{ zNB)DW2UZQ|)AiBC$v-PIk3#6}#QD^N5OyrO8{=+=L8sz(jFOT&>Z(1k$ABcABu{aC zn&a}Wu_^o&ex<$RSY+r57#DlF+y3a01>J#HitgVV;kDgvQ>M=9*4T}9qDCIVPa89H z!Xe!z%;5XYGiG*cnl!Gd+sql`yD=P4wF9Aa!YnYap7HOzG?qMXjkAJ!C-DboHT_@-LLJkG*_9LH}IO-+9vF>7ST{{$&2%JO8W4Nx?hb^a9Dh z5Ul=tzR^8Zu5y@q+t%MC@ES8++wxvn;^v%}xy>C+R794>A6d^0DG|y|eeRI_9@poa zE022l@@S=89QEb&edQ=4{5kQ*IaCm1HG8uheH7Jy#i^&8HG|;+D43$>D0wew@))&@ z=lXon#P5iC)DtyQmKOi(^xey(?_QMnxfGNXXz}Cb{PFmFffA)GO1oSSu8@nPggo&!^(zd7#7AHlIR+g{+@%sA5HB-7?QBp%4vYhbS4_l*0-pn1}^5f?428y zAXnZ-^$p)6o76D#o}&aid4IuDy>HeWXvtGunVQRBjx zR{Lqwny4QiI+1ago2ZD6n=vuz(BNwV(POr#PT;SsQQcwK{?!AiAq=VU#Z&ZI%KiAh zcrPMF4~HsB8I7A45?1p8(WC|*i;QE0Ti)o7Ud(6c=wWuKP}5RH`pkPsT(~II31xUPgj?LE(IdRH zrtFftc#sovl}biXS!p?O?#z4Yl$5CHA-|{*&*K^*Ec zTy?@1vHUeI8fw(MtD(k$ymo=yVTf~I_gwD@Q>^x|BfhE_vm%OYJ?w`4bOO;mPqkg5udEdItt83V?V0=e;9r9GYCpzT0 zw7WCk*9xEIq54rZcp&!=(KsaOfk%22MI(>!-RGzTj~ch4U0(eTx6!w)dBDaX?}h1< z<%cEanKDUWrE4DhnEy!y|DtR7cxiES-!A2vM>#`C>T;c{ zpz>`n-=C+Bqd-E9iZZ^9&gd~?X4-9wZw7e=IDkTGhz95m-@5nd)3>_CmDRi)o7571 zaAQLlk=}n|F!xEZq16l$?q7>d<*dRmUS@P7>c1Dm3GYrd)b2_8&PTT!<;}j_5|#KB zdEdGBgC3+-93_a-;-dVkEGPGWAND49eH~9XwCMV}QgVnkSKG*%`D(%pI%I{8E40zl z7oQgP@GBrm`U*K8vkUcd4pTf5b*RR!=9PbD=z2MW5$*n$9wPp{$Cc^aRUoFn0GOTe z#qdfsrQ{Ot3$W;mfKiSQ*Z5qa7QTmW78PfcRlhc_h^x4}wL_Hjpz09@hmD>mCC93VKn=oq5D-2s`cOYA#T+C?i*=%TGGKDoH%p&!?99R zM${JNL&&h9;g|*=-{>=DOgatr2ty zxJs2qS1HqQM3>2`{C1-;jIzbo!PH#Wfro-!dsBD!RYTKS;7bhkE;dI+mG54;hhEVo zgxUQaxW6#PRWmbFe2nr&ppVOKKl4g=Hv`HTV3=+4_3*)^!zs%6w7_s`>Av9f%?G*6 zWY?EECebLurSz3e{~pR8&O<67O0lKI(W|xo6X^ckM(vF~U*XAQct>*xy@W%{d01Z5 z!-Y3J{RkpG`FP@({rty}82K-0u;TtAXNtK~T_^crxSvLy~MUhX9>8c}nb^N%gjX&_wsGs$Jc`$0WKuMer z1;twt-^%~XSaGrGPfK#69B%cS&qkqesR(aF<(k%ZPj#uvixjURdLWtiJhF4=+#|@` z6G;D}k#Ek6Ix@spI8GF!bCP-dgp;RRjZ_>S)`@}B{(?mLm8zspK*_|^{~w+*9V#-1|UwrWSW zpkX;WHU3$RZ6b?bDc}Px{N)#ydd}K7VY>RFmj3ZFJZ?Qnd9yoS3wKYB!lyV(5OZeNc0YASt4 zlfpCAq!XG#LwV{`Lg?7fz~G$AyhBnLACkN#`?w_F64=f)4rJ&8^=_l3szfqf{b%j@^6^>@7V zJEHo`fcbn>h;!`AY~KMds@)dnZn^DXd#U0i8e6xN0sTV%fU3d!_)lKZMIcVGG#pp+ z1x1ojUYQW;EOCRUeQe>sVLhmv#zsGm%OHBsQtZ+jBz)ABSA*h_N_fu08YfMjFoC{D zE1j&_lV?tDnA|jZ*5MqG4k1=_2i!Pg+VqM3d$QxFO*>@rL_dNa-5nU%CjV!a*vJbx z{*`pzK;N0Kg7OY4Uw@s(;J4-n6HKDWy+GuTUff$Zj123Kt9=4D(|?GTZ;f(qP2Um! zcDw%}?IXLPXVKp-#m#kb^Cw$HON{?mZl=hO zp%k?&<@d1aUg+PnCPgH-HF1jz`{`TEqn=N?la8pyO!INlfBiZ~T<{DD1&{B5Qq4%+ z(W^VTZ3=zi{;jdjq7EaCzsf&{|LWA{pVat7|L>m0y;zXE^z=4A)}+HLv}A{^OZToY*;+aX}MZ<;)sQt8uz(3}f!{wTtvv-u#rV zx2Qbc$99Kro!a^}Uf^QuA8dvZ@oj@T@+Hqsn(fpW1^|zm;G>sv^HX{GaGo#vnq2NZzVXp}9CU#DmmfR! z$0;-p_}2fP1M;pi$*x8{o&4jNXm3e`QSB^z^O-!7-;a+bQ2%yP+~XiA!&7IZ&<}fC zO0S{l_dyyOF8+Rn3g}RKDfL%fU$~N7!q`0a>vF7wBukxxRz`S+IZWAv{zYLYv))=<+g{Td0wY z?C<-PhA|zd9Lg9JWBBegcXaXOFVw?^#KRc*!GZkg@+C=LkKWb3oAYm+=85pb5$>KiT8>1BBE^IH2*~4&xbT6&>IQ@#eC>q{S_*W_DBc_Px|h z%C=c9+!pyq5TT}+-!9oBHw>pLfu?Iivaz}9o^Ls#Q+M88#23bu^OxDwa8DFR$!jx> zhTx48y?MuqX0JYl^ed)QF%4eDysAZOReGA(W%uwIr1+~L{-M?IA!J~7HuSj8*m8_d zN#uTyo;p)yY?^r3xEV7td?d?F;J(=n;^xWU|3){uxsD2P(82gK>jIEmLX-sE- z%gz`ddFd(>|H{m9;T<}R{2Onb`EolNcyd=R0Y3Gy1$ob48hs0*zrEz{)!%OV|M?rv zrf~<&%yeRV{DbVB88f~+gRT9`T30-mUsitYR@Ii3yA=AXk-x_0_Ylp$HMS=yzIw05 zi_<1%lK9zoZVb$zhgEL+3@Yc1nQ&c;{^m$4i~2)F*C6VfE9cJeO0GX0`L%KeEIDjC zO<+9R$vc(4h{$hrh(Ft&d~n8e;|x!FOQR+=-(xHN^`zm$qDP!QFVMQ8zG}Yp%;bz* zITId7M7`B)0UkZD?MZ{RuIoHY&Z|wvkHx}cRa=?#>DkuI%l4-&kU=~K)YcBzKf0_? zSlSYdG5zVpkb7HQw;n4!xJYW`=H4Q&#t^bx&z$;u|?OK6*#1d~msMKwIhRO$qAXjWg>^4neq2i#Mz=*YPwd+X};-d8u!= z8OB#Tqn@Vrtk6lkIy9_B_Z1`$o1T*nO}{BPKU8H1ovC(Nk}Ks}kQ)q)Hn;VVoQ5 zlO7VeN+<8Q_?Azaa*oU}=3RFNhVviS$b0*o!g}T3Xs@E8%C&)O3NM-s9>`d8@elD} zxAsiOB0T!&@DO9QpUL>X zO3gpJ@Xgeu_VE4=t(!yYI`a}V*Hr&sQ^@&`XPcuGpM#40JCGj9Gk2~6D_^8m%Ebd~ z$$!3ns1MBz8o+1Ge8nSrw3v6>wc4K*tqO0fD63Mp@k38l@liVe2BTm6z@at!Gd62Q z-O7DhsPfY_CFJJN4>u|SGGk`O4_^E;ra^qvbMPRB%?wRt@%^svAJMb4Pk8scoM8=k zLKVlzjkjMI#p#*%@^>gw<8HvF3e<~N(+2sE0GH7xiMJy1#!)esYt7Qz4>q^*dEzqe z-}2KNS3RP8n@~ZrH@B<*>Jz1}zb+2kpFstp`e|w`l&DwVK)!+_W(c17PH4@>ihGI`y@{^UF0p$>=lrmrirY!fm)|R`X}ygxf~|tGs>9kDOeG*h8*1=7r(a z|D-Xy5S76{pqF&sOBi7{8F5)ThnEWT_B2FkrgoZYW6z5h@1r?jHZ5yqRAIuynPJh; zg#JZ4pCFS8VblsYu)BX$9o;vF@l`UZ?nd#bD|vJJv^+5S=qJrMsjvS;??C4UAj<2| z=3j9eR>KUuBJBUJA5hhK*6iK#EIkmlMe!N4T{lYsi{%M7Ioyb2!vMJctjs}#jQfUQWasR$a9ZsfM%U4{Ov*JA5?5t}&!zf5&br zw^1*gP+1FK-OhB(dlSK)Q~PaP`lPMYSt%N6wUm)ob48%9tHs4ccuo{o{qvhAqtAu= zbFotNq{q^b0d*A&tv;ABv8p+djA%%&Q`&LEi)_PIYuMpQGyUspD|N5;nLl}niuOnb zSIk}Qa-T-!wE;i5=u0g;Z;Jcb8#0T}lnnYrxfne!>)q2$o;q7Y&W;&Cb2X#%)%ovi z%s6!XEV5*s{iF%^XXLPz&sUU?lsd?XsV*_m;9Z4z@5B2u9WsbI$@)4p1JKebXmTTM zp#C-fq5ck(yq#D7%S)H`jQb%RegDtsiB5Ud&;j9lf#D&E89E^hYr+}^vv8_&VIHzH zPau=ljp&1i@uQhsgwVW`*X}xIfFFIve+wpRjZ45n^KVGQr}HxTKQjIj-;woO9S_Zu zoE`tU2iv-o^qoo89=%kb*TXRyw{u*>c(XtfqZtOM7oR8aD?4;5-yvjvZV@~C&CU(D znD={fqJ8?KcNbmG{Nrot`FU+Md1qslZ;qy7$Ct9WKag*9jBm^Q;Ut@LQ|+7KY!jrf zX{qC^ZxG1;C8`WY)ggYT$3y7fKajWJsSL&q8qK|*9`_O~UCnWa?Xbh9%nT)1G}6W@ z8h=d8q|y@F0N5elA`mwKFu;)S1IC~n@lo=dNK&Yjc)UZ2)ng z?|?RF-~d`Ms{Ck}JgW75qlVg)aaOd((iAMsJ>4)bjp;&!}HDD2flmq4oc`K(X+7mjuO6kJintv zRIEogT>nm&W%h%#!uysTc!$~?+W5+n^tG^^O&P1r=cMSxqsbFYGkvrZ!{g6^GqiD7 zc(`3jGO_IdXI23R~6ltm<|Pg^v+V>Z8Le<)n}BrhiTq0J-)Cc0s14KRAYQP;7)zunBjHh zW5{IwLP{d>nU8CKGta=I7SDM<~VWZv}E4y zH1mZzens9pO#YJS=NgvF6#m65Gf!BT8Q?zNr09+D)LHJ?BaEC-9xXB6jviq{{Kvuc zBqOg!LDUR0oWVMH51N*kyl1ZQ^Ym0bH@SpTaLtGpOo9n_o93}@6=CLGDPKhAy(?wg zMf6oC{{TAw`_m>~_%cNFjJiwz&^{7cgX3?{#)F`TR)jDhy1x^dpuxr5ETl6}oVk4`oT1@r6=gYY1qN0` z{lk6x1q+Bj*vu8r9|HdCFWoDD#hD+chg9QlvZ9v&i=$yh!a0bqn7I?;w=8Y}pFTCy z$5$d9CxtI1jW~4N)LD}!cHy_o#HPj!!;v*jZpa)oetf2m)^w^56f*VE+iRK9E`{Cs z`a#dao;y=p^M#XhZUg@Po~gjCb<|oLwusD6$>hWB^k3Vf5sshz<)=PA1BSEqC~dg4 z_TkT#8?QZMcF)4eh10u_nd1L5&i|*;|7X1a&-Cuo`;0ka`qc2hnT_Pc>rrav!)+x7Hh1;gW({7gv z-y-ELjgvq5qrmk}9iRUjYk$M?)=gI0JNe81QQ(SF>t8e0`3cL{`T5VVj#t(QsF<=om0zOm3K+S@0zm8k+A)1+PzZiPrEo3-ftBy zNrk6fmI|*(xzafKlRpYvaVmeU87qH<)C+u<}>1@>la#ehT4fD}RM> z<*(+QNlsb_|FKqn3d>uSmA^uK<*#7nr=P~kPhov&D}RM><*(*lk~+R=D}ROgmA`_O zzqDq*$O6|lmA_Wc$}b_l@=LJNYp~L5u+nR=(rd8NU zC~*B!`Rj*S`7O+^{1vSH6|8%!pNEzI!}e~R9K~SWF9a*U1ZPt5)9#Q8U(?v|fNSDlKl{Hitk zCU{iIE5C≫(vehWI6^?J50^8XLB%7ZY!%7b8)2f@0Y{yePmD{QaIui&=HK@C><6`V
*=O;;(5d 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 Z`!e$aIPLG?|J1Em7@yD6KgPeM{C|G544MD{ literal 586636 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

S0OAgkBNb{t>rKEWBjVPbE^&<0?W%CkL{Y*1Y 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

dr1k8g-;%`CjD@?p4-@^Ls*E&miO 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 b274E{zJt727vU}DI_bAEAGypw-e>p=YK^qY diff --git a/drivers/soc/bl602/startup/interrupt.c b/drivers/soc/bl602/startup/interrupt.c index 5ef58d0a..505d942c 100644 --- a/drivers/soc/bl602/startup/interrupt.c +++ b/drivers/soc/bl602/startup/interrupt.c @@ -20,7 +20,7 @@ * under the License. * */ -#include "bflb_irq.h" +#include "bflb_core.h" typedef void (*pFunc)(void); diff --git a/drivers/soc/bl616/startup/interrupt.c b/drivers/soc/bl616/startup/interrupt.c index a915e07d..12f59a9e 100644 --- a/drivers/soc/bl616/startup/interrupt.c +++ b/drivers/soc/bl616/startup/interrupt.c @@ -20,7 +20,7 @@ * under the License. * */ -#include "bflb_irq.h" +#include "bflb_core.h" #include #include "irq_ctx.h" diff --git a/drivers/soc/bl616/startup/start_load.c b/drivers/soc/bl616/startup/start_load.c index cf7b9ed5..52505951 100644 --- a/drivers/soc/bl616/startup/start_load.c +++ b/drivers/soc/bl616/startup/start_load.c @@ -9,6 +9,7 @@ extern uint32_t __itcm_load_addr; extern uint32_t __dtcm_load_addr; extern uint32_t __system_ram_load_addr; extern uint32_t __ram_load_addr; +extern uint32_t __nocache_ram_load_addr; extern uint32_t __text_code_start__; extern uint32_t __text_code_end__; @@ -24,6 +25,8 @@ extern uint32_t __bss_start__; extern uint32_t __bss_end__; extern uint32_t __noinit_data_start__; extern uint32_t __noinit_data_end__; +extern uint32_t __nocache_ram_data_start__; +extern uint32_t __nocache_ram_data_end__; extern uint32_t __StackTop; extern uint32_t __StackLimit; @@ -72,6 +75,14 @@ void start_load(void) *pDest++ = *pSrc++; } + /* BF Add no cache ram data copy */ + pSrc = &__nocache_ram_load_addr; + pDest = &__nocache_ram_data_start__; + + for (; pDest < &__nocache_ram_data_end__;) { + *pDest++ = *pSrc++; + } + #ifdef __STARTUP_CLEAR_BSS /* Single BSS section scheme. * diff --git a/drivers/soc/bl616/startup/system_bl616.c b/drivers/soc/bl616/startup/system_bl616.c index 1a8be3d6..94d56285 100644 --- a/drivers/soc/bl616/startup/system_bl616.c +++ b/drivers/soc/bl616/startup/system_bl616.c @@ -79,6 +79,7 @@ void SystemInit(void) /* Every interrupt should be clear by software*/ for (i = 0; i < IRQn_LAST; i++) { + CLIC->CLICINT[i].IE = 0; CLIC->CLICINT[i].IP = 0; CLIC->CLICINT[i].ATTR = 1; /* use vector interrupt */ } diff --git a/drivers/soc/bl616/startup/vector.S b/drivers/soc/bl616/startup/vector.S index 549b31bc..36001c2f 100644 --- a/drivers/soc/bl616/startup/vector.S +++ b/drivers/soc/bl616/startup/vector.S @@ -48,7 +48,34 @@ g_irq_sp: /* FreeRTOS will define tspend_handler for context switch */ .type default_interrupt_handler, %function default_interrupt_handler: - ipush + /* ipush */ + addi sp, sp, -76 + + /* save x5 x6 then save mepc mcause */ + sw x5, 4(sp) + sw x6, 8(sp) + csrr t0, mepc + csrr t1, mcause + sw t1, 64(sp) + sw t0, 68(sp) + csrr t0, mscratch + sw t0, 72(sp) + /* save regs */ + sw x1, 0(sp) + sw x7, 12(sp) + sw x10, 16(sp) + sw x11, 20(sp) + sw x12, 24(sp) + sw x13, 28(sp) + sw x14, 32(sp) + sw x15, 36(sp) + sw x16, 40(sp) + sw x17, 44(sp) + sw x28, 48(sp) + sw x29, 52(sp) + sw x30, 56(sp) + sw x31, 60(sp) + /* * IRQ stack contents after ipush: * ~mem addr high: @@ -144,7 +171,36 @@ default_interrupt_handler: .F_RegNotLoad: addi sp, sp, 88 /* mret included, and IRQ tail-chain may happen */ - ipop + /* ipop */ + + csrc mstatus, 8 + /* restore mepc mcause mscrath */ + lw t0, 68(sp) + csrw mepc, t0 + lw t0, 64(sp) + csrw mcause, t0 + lw t0, 72(sp) + csrw mscratch, t0 + /* restore regs */ + lw x1, 0(sp) + lw x5, 4(sp) + lw x6, 8(sp) + lw x7, 12(sp) + lw x10, 16(sp) + lw x11, 20(sp) + lw x12, 24(sp) + lw x13, 28(sp) + lw x14, 32(sp) + lw x15, 36(sp) + lw x16, 40(sp) + lw x17, 44(sp) + lw x28, 48(sp) + lw x29, 52(sp) + lw x30, 56(sp) + lw x31, 60(sp) + + addi sp, sp, 76 + mret .size default_interrupt_handler, . - default_interrupt_handler diff --git a/drivers/soc/bl702/startup/interrupt.c b/drivers/soc/bl702/startup/interrupt.c index 5ef58d0a..505d942c 100644 --- a/drivers/soc/bl702/startup/interrupt.c +++ b/drivers/soc/bl702/startup/interrupt.c @@ -20,7 +20,7 @@ * under the License. * */ -#include "bflb_irq.h" +#include "bflb_core.h" typedef void (*pFunc)(void); diff --git a/drivers/soc/bl808/startup/m0/interrupt.c b/drivers/soc/bl808/startup/m0/interrupt.c index 2a0f8f0e..12f59a9e 100644 --- a/drivers/soc/bl808/startup/m0/interrupt.c +++ b/drivers/soc/bl808/startup/m0/interrupt.c @@ -20,7 +20,7 @@ * under the License. * */ -#include "bflb_irq.h" +#include "bflb_core.h" #include #include "irq_ctx.h" @@ -115,7 +115,7 @@ const pFunc __Vectors[] __attribute__((section(".init"), aligned(64))) = { default_interrupt_handler, //WIFI_IPC_PUBLIC_IRQHandler_Wrapper, /* 16 + 63 */ }; -void exception_entry(void) +void exception_entry(uintptr_t *regs) { unsigned long cause; unsigned long epc; @@ -152,7 +152,29 @@ void exception_entry(void) }; printf("%s\r\n", mcause_str[cause & 0xf]); +// clang-format off +#ifndef CONFIG_ERR_NOT_DUMP_ALL_REGS + printf("ra = 0x%08x ", regs[REG_RA]); printf("sp = 0x%08x ", regs[REG_SP]); printf("gp = 0x%08x ", regs[REG_GP]); + printf("tp = 0x%08x ", regs[REG_TP]); printf("\n\r"); + printf("t0 = 0x%08x ", regs[REG_T0]); printf("t1 = 0x%08x ", regs[REG_T1]); printf("t2 = 0x%08x ", regs[REG_T2]); + printf("t3 = 0x%08x ", regs[REG_T3]); printf("\n\r"); + printf("t4 = 0x%08x ", regs[REG_T4]); printf("t5 = 0x%08x ", regs[REG_T5]); printf("t6 = 0x%08x ", regs[REG_T6]); + printf("\n\r"); + + printf("a0 = 0x%08x ", regs[REG_A0]); printf("a1 = 0x%08x ", regs[REG_A1]); printf("a2 = 0x%08x ", regs[REG_A2]); + printf("a3 = 0x%08x ", regs[REG_A3]); printf("\n\r"); + printf("a4 = 0x%08x ", regs[REG_A4]); printf("a5 = 0x%08x ", regs[REG_A5]); printf("a6 = 0x%08x ", regs[REG_A6]); + printf("a7 = 0x%08x ", regs[REG_A7]); printf("\n\r"); + + printf("s0 = 0x%08x ", regs[REG_S0]); printf("s1 = 0x%08x ", regs[REG_S1]); printf("s2 = 0x%08x ", regs[REG_S2]); + printf("s3 = 0x%08x ", regs[REG_S3]); printf("\n\r"); + printf("s4 = 0x%08x ", regs[REG_S4]); printf("s5 = 0x%08x ", regs[REG_S5]); printf("s6 = 0x%08x ", regs[REG_S6]); + printf("s7 = 0x%08x ", regs[REG_S7]); printf("\n\r"); + printf("s8 = 0x%08x ", regs[REG_S8]); printf("s9 = 0x%08x ", regs[REG_S9]); printf("s10 = 0x%08x ", regs[REG_S10]); + printf("s11 = 0x%08x ", regs[REG_S11]); printf("\n\r"); +#endif + // clang-format on if ((cause == 8) || (cause == 11)) { epc += 4; WRITE_CSR(CSR_MEPC, epc); diff --git a/drivers/soc/bl808/startup/m0/start_load.c b/drivers/soc/bl808/startup/m0/start_load.c index cf7b9ed5..52505951 100644 --- a/drivers/soc/bl808/startup/m0/start_load.c +++ b/drivers/soc/bl808/startup/m0/start_load.c @@ -9,6 +9,7 @@ extern uint32_t __itcm_load_addr; extern uint32_t __dtcm_load_addr; extern uint32_t __system_ram_load_addr; extern uint32_t __ram_load_addr; +extern uint32_t __nocache_ram_load_addr; extern uint32_t __text_code_start__; extern uint32_t __text_code_end__; @@ -24,6 +25,8 @@ extern uint32_t __bss_start__; extern uint32_t __bss_end__; extern uint32_t __noinit_data_start__; extern uint32_t __noinit_data_end__; +extern uint32_t __nocache_ram_data_start__; +extern uint32_t __nocache_ram_data_end__; extern uint32_t __StackTop; extern uint32_t __StackLimit; @@ -72,6 +75,14 @@ void start_load(void) *pDest++ = *pSrc++; } + /* BF Add no cache ram data copy */ + pSrc = &__nocache_ram_load_addr; + pDest = &__nocache_ram_data_start__; + + for (; pDest < &__nocache_ram_data_end__;) { + *pDest++ = *pSrc++; + } + #ifdef __STARTUP_CLEAR_BSS /* Single BSS section scheme. * diff --git a/drivers/soc/bl808/startup/m0/system_bl808.c b/drivers/soc/bl808/startup/m0/system_bl808.c index 381b7519..1b20e626 100644 --- a/drivers/soc/bl808/startup/m0/system_bl808.c +++ b/drivers/soc/bl808/startup/m0/system_bl808.c @@ -79,6 +79,7 @@ void SystemInit(void) /* Every interrupt should be clear by software*/ for (i = 0; i < IRQn_LAST; i++) { + CLIC->CLICINT[i].IE = 0; CLIC->CLICINT[i].IP = 0; CLIC->CLICINT[i].ATTR = 1; /* use vector interrupt */ } diff --git a/drivers/soc/bl808/startup/m0/vector.S b/drivers/soc/bl808/startup/m0/vector.S index 549b31bc..36001c2f 100644 --- a/drivers/soc/bl808/startup/m0/vector.S +++ b/drivers/soc/bl808/startup/m0/vector.S @@ -48,7 +48,34 @@ g_irq_sp: /* FreeRTOS will define tspend_handler for context switch */ .type default_interrupt_handler, %function default_interrupt_handler: - ipush + /* ipush */ + addi sp, sp, -76 + + /* save x5 x6 then save mepc mcause */ + sw x5, 4(sp) + sw x6, 8(sp) + csrr t0, mepc + csrr t1, mcause + sw t1, 64(sp) + sw t0, 68(sp) + csrr t0, mscratch + sw t0, 72(sp) + /* save regs */ + sw x1, 0(sp) + sw x7, 12(sp) + sw x10, 16(sp) + sw x11, 20(sp) + sw x12, 24(sp) + sw x13, 28(sp) + sw x14, 32(sp) + sw x15, 36(sp) + sw x16, 40(sp) + sw x17, 44(sp) + sw x28, 48(sp) + sw x29, 52(sp) + sw x30, 56(sp) + sw x31, 60(sp) + /* * IRQ stack contents after ipush: * ~mem addr high: @@ -144,7 +171,36 @@ default_interrupt_handler: .F_RegNotLoad: addi sp, sp, 88 /* mret included, and IRQ tail-chain may happen */ - ipop + /* ipop */ + + csrc mstatus, 8 + /* restore mepc mcause mscrath */ + lw t0, 68(sp) + csrw mepc, t0 + lw t0, 64(sp) + csrw mcause, t0 + lw t0, 72(sp) + csrw mscratch, t0 + /* restore regs */ + lw x1, 0(sp) + lw x5, 4(sp) + lw x6, 8(sp) + lw x7, 12(sp) + lw x10, 16(sp) + lw x11, 20(sp) + lw x12, 24(sp) + lw x13, 28(sp) + lw x14, 32(sp) + lw x15, 36(sp) + lw x16, 40(sp) + lw x17, 44(sp) + lw x28, 48(sp) + lw x29, 52(sp) + lw x30, 56(sp) + lw x31, 60(sp) + + addi sp, sp, 76 + mret .size default_interrupt_handler, . - default_interrupt_handler diff --git a/examples/peripherals/adc/adc_oneshot_1ch_dma/main.c b/examples/peripherals/adc/adc_oneshot_1ch_dma/main.c index cdf71099..93a90363 100644 --- a/examples/peripherals/adc/adc_oneshot_1ch_dma/main.c +++ b/examples/peripherals/adc/adc_oneshot_1ch_dma/main.c @@ -12,7 +12,7 @@ static uint8_t dma_tc_flag0 = 0; #define ADC_CONVERT_COUNT 16 -ATTR_NOCACHE_RAM_SECTION uint32_t raw_data[ADC_CONVERT_COUNT]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint32_t raw_data[ADC_CONVERT_COUNT]; void dma0_ch0_isr(void *arg) { diff --git a/examples/peripherals/adc/adc_tsen/main.c b/examples/peripherals/adc/adc_tsen/main.c index 75ce487d..cf7689a8 100644 --- a/examples/peripherals/adc/adc_tsen/main.c +++ b/examples/peripherals/adc/adc_tsen/main.c @@ -24,7 +24,7 @@ int main(void) struct bflb_adc_channel_s chan; - chan.pos_chan = ADC_CHAN_TSEN_P; + chan.pos_chan = ADC_CHANNEL_TSEN_P; chan.neg_chan = ADC_CHANNEL_GND; bflb_adc_init(adc, &cfg); diff --git a/examples/peripherals/adc/adc_vbat/main.c b/examples/peripherals/adc/adc_vbat/main.c index 698746cb..7dfd3c6b 100644 --- a/examples/peripherals/adc/adc_vbat/main.c +++ b/examples/peripherals/adc/adc_vbat/main.c @@ -21,7 +21,7 @@ int main(void) struct bflb_adc_channel_s chan; - chan.pos_chan = ADC_CHAN_VABT_HALF; + chan.pos_chan = ADC_CHANNEL_VABT_HALF; chan.neg_chan = ADC_CHANNEL_GND; bflb_adc_init(adc, &cfg); diff --git a/examples/peripherals/dma/CMakeLists.txt b/examples/peripherals/dma/dma_normal/CMakeLists.txt similarity index 87% rename from examples/peripherals/dma/CMakeLists.txt rename to examples/peripherals/dma/dma_normal/CMakeLists.txt index bc90659b..86352c26 100644 --- a/examples/peripherals/dma/CMakeLists.txt +++ b/examples/peripherals/dma/dma_normal/CMakeLists.txt @@ -6,4 +6,4 @@ find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE}) sdk_set_main_file(main.c) -project(dma) +project(dma_normal) diff --git a/examples/peripherals/dma/Makefile b/examples/peripherals/dma/dma_normal/Makefile similarity index 82% rename from examples/peripherals/dma/Makefile rename to examples/peripherals/dma/dma_normal/Makefile index 9b01b7fe..44367c02 100644 --- a/examples/peripherals/dma/Makefile +++ b/examples/peripherals/dma/dma_normal/Makefile @@ -1,5 +1,5 @@ SDK_DEMO_PATH ?= . -BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../.. +BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../../.. export BL_SDK_BASE diff --git a/examples/peripherals/dma/dma_normal/main.c b/examples/peripherals/dma/dma_normal/main.c new file mode 100644 index 00000000..ba9f7404 --- /dev/null +++ b/examples/peripherals/dma/dma_normal/main.c @@ -0,0 +1,103 @@ +#include "bflb_mtimer.h" +#include "bflb_dma.h" + +#define DMA_BUFFER_LENGTH 4100 + +extern void board_init(void); + +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src1_buffer[DMA_BUFFER_LENGTH]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src2_buffer[DMA_BUFFER_LENGTH]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src3_buffer[DMA_BUFFER_LENGTH]; + +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t dst1_buffer[DMA_BUFFER_LENGTH]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t dst2_buffer[DMA_BUFFER_LENGTH]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t dst3_buffer[DMA_BUFFER_LENGTH]; +static uint8_t dma_tc_flag0 = 0; + +struct bflb_device_s *dma0_ch0; + +void dma0_ch0_isr(void *arg) +{ + dma_tc_flag0++; + printf("tc done\r\n"); +} + +void sram_init() +{ + uint32_t i; + + for (i = 0; i < DMA_BUFFER_LENGTH; i++) { + src1_buffer[i] = i & 0xff; + src2_buffer[i] = (i * 0x07) & 0xff; + src3_buffer[i] = (i * 0x0b) & 0xff; + } + + memset(dst1_buffer, 0, DMA_BUFFER_LENGTH); + memset(dst2_buffer, 0, DMA_BUFFER_LENGTH); + memset(dst3_buffer, 0, DMA_BUFFER_LENGTH); +} + +int main(void) +{ + uint32_t i; + + board_init(); + + sram_init(); + + printf("dma memory case:\r\n"); + dma0_ch0 = bflb_device_get_by_name("dma0_ch0"); + + struct bflb_dma_channel_config_s config; + + config.direction = DMA_MEMORY_TO_MEMORY; + config.src_req = 0; + config.dst_req = 0; + config.src_addr_inc = DMA_ADDR_INCREMENT_ENABLE; + config.dst_addr_inc = DMA_ADDR_INCREMENT_ENABLE; + config.src_burst_count = DMA_BURST_INCR1; + config.dst_burst_count = DMA_BURST_INCR1; + config.src_width = DMA_DATA_WIDTH_32BIT; + config.dst_width = DMA_DATA_WIDTH_32BIT; + bflb_dma_channel_init(dma0_ch0, &config); + + bflb_dma_channel_irq_attach(dma0_ch0, dma0_ch0_isr, NULL); + + struct bflb_dma_channel_lli_pool_s lli[20]; /* max trasnfer size 4064 * 20 */ + struct bflb_dma_channel_lli_transfer_s transfers[3]; + + transfers[0].src_addr = (uint32_t)src1_buffer; + transfers[0].dst_addr = (uint32_t)dst1_buffer; + transfers[0].nbytes = DMA_BUFFER_LENGTH; + + transfers[1].src_addr = (uint32_t)src2_buffer; + transfers[1].dst_addr = (uint32_t)dst2_buffer; + transfers[1].nbytes = DMA_BUFFER_LENGTH; + + transfers[2].src_addr = (uint32_t)src3_buffer; + transfers[2].dst_addr = (uint32_t)dst3_buffer; + transfers[2].nbytes = DMA_BUFFER_LENGTH; + + bflb_dma_channel_lli_reload(dma0_ch0, lli, 20, transfers, 3); + bflb_dma_channel_start(dma0_ch0); + while (dma_tc_flag0 != 3) { + bflb_mtimer_delay_ms(1); + } + + /* Check data */ + for (i = 0; i < DMA_BUFFER_LENGTH; i++) { + if (src1_buffer[i] != dst1_buffer[i]) { + printf("Error! index: %ld, src1: 0x%02x, dst1: 0x%02x\r\n", i, src1_buffer[i], dst1_buffer[i]); + } + if (src2_buffer[i] != dst2_buffer[i]) { + printf("Error! index: %ld, src2: 0x%02x, dst2: 0x%02x\r\n", i, src2_buffer[i], dst2_buffer[i]); + } + if (src3_buffer[i] != dst3_buffer[i]) { + printf("Error! index: %ld, src3: 0x%02x, dst3: 0x%02x\r\n", i, src3_buffer[i], dst3_buffer[i]); + } + } + + printf("end\r\n"); + while (1) { + } +} diff --git a/examples/peripherals/dma/proj.conf b/examples/peripherals/dma/dma_normal/proj.conf similarity index 100% rename from examples/peripherals/dma/proj.conf rename to examples/peripherals/dma/dma_normal/proj.conf diff --git a/examples/peripherals/dma/dma_reduce_or_add/CMakeLists.txt b/examples/peripherals/dma/dma_reduce_or_add/CMakeLists.txt new file mode 100644 index 00000000..25410a8c --- /dev/null +++ b/examples/peripherals/dma/dma_reduce_or_add/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.15) + +include(proj.conf) + +find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE}) + +sdk_set_main_file(main.c) + +project(dma_reduce_or_add) diff --git a/examples/peripherals/dma/dma_reduce_or_add/Makefile b/examples/peripherals/dma/dma_reduce_or_add/Makefile new file mode 100644 index 00000000..44367c02 --- /dev/null +++ b/examples/peripherals/dma/dma_reduce_or_add/Makefile @@ -0,0 +1,13 @@ +SDK_DEMO_PATH ?= . +BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../../.. + +export BL_SDK_BASE + +CHIP ?= bl616 +BOARD ?= bl616dk +CROSS_COMPILE ?= riscv64-unknown-elf- + +# add custom cmake definition +#cmake_definition+=-Dxxx=sss + +include $(BL_SDK_BASE)/project.build diff --git a/examples/peripherals/dma/dma_reduce_or_add/main.c b/examples/peripherals/dma/dma_reduce_or_add/main.c new file mode 100644 index 00000000..7efe3add --- /dev/null +++ b/examples/peripherals/dma/dma_reduce_or_add/main.c @@ -0,0 +1,188 @@ +#include "bflb_mtimer.h" +#include "bflb_dma.h" + +#define DMA_BUFFER_MAX_LENGTH 128 +#define DMA_TRANSFER_LENGTH 64 + +extern void board_init(void); + +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src_buffer[DMA_BUFFER_MAX_LENGTH]; + +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t dst_buffer[DMA_BUFFER_MAX_LENGTH]; +static uint8_t dma_tc_flag0 = 0; + +struct bflb_device_s *dma0_ch0; + +void dma0_ch0_isr(void *arg) +{ + dma_tc_flag0++; + printf("tc done\r\n"); +} + +void sram_init() +{ + uint32_t i; + + for (i = 0; i < DMA_BUFFER_MAX_LENGTH; i++) { + src_buffer[i] = i & 0xff; + } + + memset(dst_buffer, 0, DMA_BUFFER_MAX_LENGTH); +} + +int main(void) +{ + uint32_t i; + struct bflb_dma_channel_lli_pool_s lli[20]; + struct bflb_dma_channel_lli_transfer_s transfers[3]; + + board_init(); + + sram_init(); + + printf("dma memory case:\r\n"); + dma0_ch0 = bflb_device_get_by_name("dma0_ch0"); + + struct bflb_dma_channel_config_s config; + + config.direction = DMA_MEMORY_TO_MEMORY; + config.src_req = 0; + config.dst_req = 0; + config.src_addr_inc = DMA_ADDR_INCREMENT_ENABLE; + config.dst_addr_inc = DMA_ADDR_INCREMENT_ENABLE; + config.src_burst_count = DMA_BURST_INCR1; + config.dst_burst_count = DMA_BURST_INCR4; + config.src_width = DMA_DATA_WIDTH_32BIT; + config.dst_width = DMA_DATA_WIDTH_8BIT; + bflb_dma_channel_init(dma0_ch0, &config); + + bflb_dma_channel_irq_attach(dma0_ch0, dma0_ch0_isr, NULL); + + /* Disable reduce mode, transfer length = nbytes = 64 byte */ + transfers[0].src_addr = (uint32_t)src_buffer; + transfers[0].dst_addr = (uint32_t)dst_buffer; + transfers[0].nbytes = DMA_TRANSFER_LENGTH; + bflb_dma_channel_lli_reload(dma0_ch0, lli, 20, transfers, 1); + + bflb_dma_channel_start(dma0_ch0); + + while (dma_tc_flag0 == 0) { + bflb_mtimer_delay_ms(1); + } + + /* Check 0~63 data */ + for (i = 0; i < DMA_TRANSFER_LENGTH; i++) { + if (src_buffer[i] != dst_buffer[i]) { + printf("Error! index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + /* Check 64~127 data, should be 0 */ + for (i = DMA_TRANSFER_LENGTH; i < DMA_BUFFER_MAX_LENGTH; i++) { + if (dst_buffer[i] != 0) { + printf("Error! Dst should be 0. index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + printf("Check over\r\n\r\n"); + + memset(dst_buffer, 0, DMA_BUFFER_MAX_LENGTH); + dma_tc_flag0 = 0; + + /* Enable reduce mode, src_width = 32bit, dst_width = 8bit, nbytes = 64, transfer length = (nbytes - 1 * dst_width) = 63 byte */ + bflb_dma_feature_control(dma0_ch0, DMA_CMD_SET_REDUCE_MODE, 1); + bflb_dma_channel_lli_reload(dma0_ch0, lli, 20, transfers, 1); + + bflb_dma_channel_start(dma0_ch0); + + while (dma_tc_flag0 == 0) { + bflb_mtimer_delay_ms(1); + } + + /* Check 0~62 data */ + for (i = 0; i < DMA_TRANSFER_LENGTH - 1; i++) { + if (src_buffer[i] != dst_buffer[i]) { + printf("Error! index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + /* Check 63~127 data, should be 0 */ + for (i = DMA_TRANSFER_LENGTH - 1; i < DMA_BUFFER_MAX_LENGTH; i++) { + if (dst_buffer[i] != 0) { + printf("Error! Dst should be 0. index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + printf("Check over\r\n\r\n"); + + memset(dst_buffer, 0, DMA_BUFFER_MAX_LENGTH); + dma_tc_flag0 = 0; + + /* Disable reduce mode and enable add mode, src_width = 8bit, dst_width = 32bit, nbytes = 65, transfer length = nbytes + 3 = 68 byte, multiple of dst_width */ + bflb_dma_feature_control(dma0_ch0, DMA_CMD_SET_REDUCE_MODE, 0); + bflb_dma_feature_control(dma0_ch0, DMA_CMD_SET_ADD_MODE, 1); + + config.src_burst_count = DMA_BURST_INCR4; + config.dst_burst_count = DMA_BURST_INCR1; + config.src_width = DMA_DATA_WIDTH_8BIT; + config.dst_width = DMA_DATA_WIDTH_32BIT; + bflb_dma_channel_init(dma0_ch0, &config); + + transfers[0].nbytes = DMA_TRANSFER_LENGTH + 1; + bflb_dma_channel_lli_reload(dma0_ch0, lli, 20, transfers, 1); + + bflb_dma_channel_start(dma0_ch0); + + while (dma_tc_flag0 == 0) { + bflb_mtimer_delay_ms(1); + } + + /* Check 0~64 data */ + for (i = 0; i < DMA_TRANSFER_LENGTH + 1; i++) { + if (src_buffer[i] != dst_buffer[i]) { + printf("Error! index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + /* Check 65~67 data */ + for (i = DMA_TRANSFER_LENGTH + 1; i < DMA_TRANSFER_LENGTH + 4; i++) { + if (dst_buffer[i] == 0) { + printf("Error! Dst should not be 0. index: %ld\r\n", i); + } else { + printf("Correct, meaningless data. index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + /* Check 68~127 data, should be 0 */ + for (i = DMA_TRANSFER_LENGTH + 4; i < DMA_BUFFER_MAX_LENGTH; i++) { + if (dst_buffer[i] != 0) { + printf("Error! Dst should be 0. index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + printf("Check over\r\n\r\n"); + + memset(dst_buffer, 0, DMA_BUFFER_MAX_LENGTH); + dma_tc_flag0 = 0; + + /* Disable add mode, src_width = 8bit, dst_width = 32bit, nbytes = 65, transfer length = nbytes - 1 = 64 byte, multiple of dst_width */ + bflb_dma_feature_control(dma0_ch0, DMA_CMD_SET_ADD_MODE, 0); + bflb_dma_channel_lli_reload(dma0_ch0, lli, 20, transfers, 1); + + bflb_dma_channel_start(dma0_ch0); + + while (dma_tc_flag0 == 0) { + bflb_mtimer_delay_ms(1); + } + + /* Check 0~63 data */ + for (i = 0; i < DMA_TRANSFER_LENGTH; i++) { + if (src_buffer[i] != dst_buffer[i]) { + printf("Error! index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + /* Check 64~127 data, should be 0 */ + for (i = DMA_TRANSFER_LENGTH; i < DMA_BUFFER_MAX_LENGTH; i++) { + if (dst_buffer[i] != 0) { + printf("Error! Dst should be 0. index: %ld, src: 0x%02x, dst: 0x%02x\r\n", i, src_buffer[i], dst_buffer[i]); + } + } + printf("Check over\r\n\r\n"); + + printf("end\r\n"); + while (1) { + } +} diff --git a/examples/peripherals/dma/dma_reduce_or_add/proj.conf b/examples/peripherals/dma/dma_reduce_or_add/proj.conf new file mode 100644 index 00000000..13320d67 --- /dev/null +++ b/examples/peripherals/dma/dma_reduce_or_add/proj.conf @@ -0,0 +1 @@ +#set(CONFIG_XXX 1) \ No newline at end of file diff --git a/examples/peripherals/dma/main.c b/examples/peripherals/dma/main.c deleted file mode 100644 index 5d151ab6..00000000 --- a/examples/peripherals/dma/main.c +++ /dev/null @@ -1,84 +0,0 @@ -#include "bflb_mtimer.h" -#include "bflb_dma.h" - -extern void board_init(void); - -static ATTR_NOCACHE_RAM_SECTION uint8_t src_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t src2_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t src3_buffer[4100]; - -static ATTR_NOCACHE_RAM_SECTION uint8_t dst_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t dst2_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t dst3_buffer[4100]; -static uint8_t dma_tc_flag0 = 0; - -struct bflb_device_s *dma0_ch0; - -void dma0_ch0_isr(void *arg) -{ - dma_tc_flag0++; - printf("tc done\r\n"); -} - -void sram_init() -{ - memset(src_buffer, 'a', 4100); - src_buffer[3999] = 'B'; - src_buffer[4095] = 'A'; - src_buffer[4096] = 'B'; - src_buffer[4097] = 'C'; - src_buffer[4098] = 'D'; - src_buffer[4099] = 'E'; - - memset(src2_buffer, 'c', 512); - memset(src3_buffer, 'd', 256); -} - -int main(void) -{ - board_init(); - - sram_init(); - - printf("dma memory test\r\n"); - dma0_ch0 = bflb_device_get_by_name("dma0_ch0"); - - struct bflb_dma_channel_config_s config; - - config.direction = DMA_MEMORY_TO_MEMORY; - config.src_req = 0; - config.dst_req = 0; - config.src_addr_inc = DMA_ADDR_INCREMENT_ENABLE; - config.dst_addr_inc = DMA_ADDR_INCREMENT_ENABLE; - config.src_burst_count = DMA_BURST_INCR1; - config.dst_burst_count = DMA_BURST_INCR1; - config.src_width = DMA_DATA_WIDTH_32BIT; - config.dst_width = DMA_DATA_WIDTH_32BIT; - bflb_dma_channel_init(dma0_ch0, &config); - - bflb_dma_channel_irq_attach(dma0_ch0, dma0_ch0_isr, NULL); - - struct bflb_dma_channel_lli_pool_s lli[20]; /* max trasnfer size 4064 * 20 */ - struct bflb_dma_channel_lli_transfer_s transfers[3]; - - transfers[0].src_addr = (uint32_t)src_buffer; - transfers[0].dst_addr = (uint32_t)dst_buffer; - transfers[0].nbytes = 4100; - - transfers[1].src_addr = (uint32_t)src2_buffer; - transfers[1].dst_addr = (uint32_t)dst2_buffer; - transfers[1].nbytes = 4100; - - transfers[2].src_addr = (uint32_t)src3_buffer; - transfers[2].dst_addr = (uint32_t)dst3_buffer; - transfers[2].nbytes = 4100; - - bflb_dma_channel_lli_reload(dma0_ch0, lli, 20, transfers, 3); - bflb_dma_channel_start(dma0_ch0); - while (dma_tc_flag0 != 3) { - bflb_mtimer_delay_ms(1); - } - - while (1) { - } -} diff --git a/examples/peripherals/emac/emac_basic/main.c b/examples/peripherals/emac/emac_basic/main.c index 56e6adf6..85fea0b0 100644 --- a/examples/peripherals/emac/emac_basic/main.c +++ b/examples/peripherals/emac/emac_basic/main.c @@ -19,7 +19,7 @@ static const uint8_t test_frame[42] = { 0xc0, 0xa8, 0x7b, 0xb2 // dst ip 192.168.123.178 }; #define TEST_PATTERN_LEN (ETH_MAX_PACKET_SIZE - 32) -ATTR_NOCACHE_RAM_SECTION static uint8_t test_pattern[TEST_PATTERN_LEN] = { 0 }; +ATTR_NOCACHE_NOINIT_RAM_SECTION static uint8_t test_pattern[TEST_PATTERN_LEN] = { 0 }; static volatile uint32_t tx_pkg_cnt = 0; static volatile uint32_t tx_err_cnt = 0; diff --git a/examples/peripherals/i2c/i2c_eeprom_dma/main.c b/examples/peripherals/i2c/i2c_eeprom_dma/main.c index 0a1ee6f0..88ee7b4a 100644 --- a/examples/peripherals/i2c/i2c_eeprom_dma/main.c +++ b/examples/peripherals/i2c/i2c_eeprom_dma/main.c @@ -10,8 +10,8 @@ struct bflb_device_s *i2c0; struct bflb_device_s *dma0_ch0; struct bflb_device_s *dma0_ch1; -static ATTR_NOCACHE_RAM_SECTION uint32_t send_buffer[8]; -static ATTR_NOCACHE_RAM_SECTION uint32_t receive_buffer[8]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint32_t send_buffer[8]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint32_t receive_buffer[8]; static volatile uint32_t dma_tc_flag0 = 0; static volatile uint32_t dma_tc_flag1 = 0; @@ -46,12 +46,12 @@ int main(void) bflb_i2c_init(i2c0, 400000); bflb_i2c_link_txdma(i2c0, true); bflb_i2c_link_rxdma(i2c0, true); - + /* Write page 0 */ dma0_ch0 = bflb_device_get_by_name("dma0_ch0"); struct bflb_dma_channel_config_s tx_config; - + tx_config.direction = DMA_MEMORY_TO_PERIPH; tx_config.src_req = DMA_REQUEST_NONE; tx_config.dst_req = DMA_REQUEST_I2C0_TX; @@ -90,13 +90,13 @@ int main(void) while ((bflb_i2c_get_intstatus(i2c0) & I2C_INT_END) == 0) { } bflb_i2c_deinit(i2c0); - + printf("write over\r\n"); bflb_mtimer_delay_ms(100); /* Read page 0 */ dma0_ch1 = bflb_device_get_by_name("dma0_ch1"); - + struct bflb_dma_channel_config_s rx_config; rx_config.direction = DMA_PERIPH_TO_MEMORY; @@ -109,31 +109,31 @@ int main(void) rx_config.src_width = DMA_DATA_WIDTH_32BIT; rx_config.dst_width = DMA_DATA_WIDTH_32BIT; bflb_dma_channel_init(dma0_ch1, &rx_config); - + bflb_dma_channel_irq_attach(dma0_ch1, dma0_ch1_isr, NULL); - + struct bflb_dma_channel_lli_pool_s rx_llipool[20]; struct bflb_dma_channel_lli_transfer_s rx_transfers[1]; rx_transfers[0].src_addr = (uint32_t)DMA_ADDR_I2C0_RDR; rx_transfers[0].dst_addr = (uint32_t)receive_buffer; rx_transfers[0].nbytes = 32; - + bflb_dma_channel_lli_reload(dma0_ch1, rx_llipool, 20, rx_transfers, 1); - + msgs[1].addr = 0x50; msgs[1].flags = I2C_M_DMA | I2C_M_READ; msgs[1].buffer = NULL; msgs[1].length = 32; bflb_i2c_transfer(i2c0, msgs, 2); - + bflb_dma_channel_start(dma0_ch1); - + while (dma_tc_flag1 == 0) { } while ((bflb_i2c_get_intstatus(i2c0) & I2C_INT_END) == 0) { } bflb_i2c_deinit(i2c0); - + printf("read over\r\n"); /* Check read data */ diff --git a/examples/peripherals/pwm_v1/pwm_all_channels/main.c b/examples/peripherals/pwm_v1/pwm_all_channels/main.c index 8a126347..2dd1db76 100644 --- a/examples/peripherals/pwm_v1/pwm_all_channels/main.c +++ b/examples/peripherals/pwm_v1/pwm_all_channels/main.c @@ -9,12 +9,12 @@ int main(void) board_init(); board_pwm_gpio_init(); - pwm = bflb_device_get_by_name("pwm"); + pwm = bflb_device_get_by_name("pwm0"); - /* period = .PBCLK / .clk_div / .period = 80MHz / 80 / 1000 = 1KHz */ + /* period = .XCLK / .clk_div / .period = 32MHz / 32 / 1000 = 1KHz */ struct bflb_pwm_v1_channel_config_s cfg = { - .clk_source = BFLB_SYSTEM_PBCLK, - .clk_div = 80, + .clk_source = BFLB_SYSTEM_XCLK, + .clk_div = 32, .period = 1000, }; diff --git a/examples/peripherals/pwm_v1/pwm_basic/main.c b/examples/peripherals/pwm_v1/pwm_basic/main.c index a2082b2b..c10c621d 100644 --- a/examples/peripherals/pwm_v1/pwm_basic/main.c +++ b/examples/peripherals/pwm_v1/pwm_basic/main.c @@ -9,12 +9,12 @@ int main(void) board_init(); board_pwm_gpio_init(); - pwm = bflb_device_get_by_name("pwm"); + pwm = bflb_device_get_by_name("pwm0"); - /* period = .PBCLK / .clk_div / .period = 80MHz / 80 / 1000 = 1KHz */ + /* period = .XCLK / .clk_div / .period = 32MHz / 32 / 1000 = 1KHz */ struct bflb_pwm_v1_channel_config_s cfg = { - .clk_source = BFLB_SYSTEM_PBCLK, - .clk_div = 80, + .clk_source = BFLB_SYSTEM_XCLK, + .clk_div = 32, .period = 1000, }; diff --git a/examples/peripherals/pwm_v1/pwm_int/main.c b/examples/peripherals/pwm_v1/pwm_int/main.c index 011e700f..6a385de7 100644 --- a/examples/peripherals/pwm_v1/pwm_int/main.c +++ b/examples/peripherals/pwm_v1/pwm_int/main.c @@ -42,16 +42,16 @@ int main(void) board_init(); board_pwm_gpio_init(); - pwm = bflb_device_get_by_name("pwm"); + pwm = bflb_device_get_by_name("pwm0"); - /* period = .PBCLK / .clk_div / .period = 80MHz / 80 / 1000 = 1kHz */ + /* period = .XCLK / .clk_div / .period = 32MHz / 32 / 1000 = 1KHz */ struct bflb_pwm_v1_channel_config_s cfg = { - .clk_source = BFLB_SYSTEM_PBCLK, - .clk_div = 80, + .clk_source = BFLB_SYSTEM_XCLK, + .clk_div = 32, .period = 1000, }; - for (uint8_t i = 0; i <= PWM_V1_CH_MAX; i++) { + for (uint8_t i = 0; i < PWM_V1_CH_MAX; i++) { bflb_pwm_v1_channel_init(pwm, i, &cfg); bflb_pwm_v1_channel_set_threshold(pwm, i, 100, 500 + i * 100); /* duty = ((500 + i *100)-100)/1000 */ diff --git a/examples/peripherals/pwm_v2/pwm_int/main.c b/examples/peripherals/pwm_v2/pwm_int/main.c index 904becd2..ab964486 100644 --- a/examples/peripherals/pwm_v2/pwm_int/main.c +++ b/examples/peripherals/pwm_v2/pwm_int/main.c @@ -71,7 +71,7 @@ void pwm_isr(int irq, void *arg) int main(void) { board_init(); - // board_pwm0_gpio_init(); + board_pwm0_gpio_init(); pwm0 = bflb_device_get_by_name("pwm0"); diff --git a/examples/peripherals/sec_eng/sec_eng_aes_link_sw_key/main.c b/examples/peripherals/sec_eng/sec_eng_aes_link_sw_key/main.c index dfcc44c3..15acba0a 100644 --- a/examples/peripherals/sec_eng/sec_eng_aes_link_sw_key/main.c +++ b/examples/peripherals/sec_eng/sec_eng_aes_link_sw_key/main.c @@ -84,7 +84,7 @@ const uint8_t aes_xts_256bit_ct[64] = { 0x66, 0xb2, 0x7f, 0x06, 0x46, 0xbb, 0xb2, 0x46, 0x00, 0xf8, 0x6b, 0x0c, 0xc0, 0x5f, 0xb5, 0x20 }; -static struct bflb_aes_link_s aes_ecb_link = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_link_s aes_ecb_link = { .aes_key = AES_LINK_KEY_128BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -111,7 +111,7 @@ static struct bflb_aes_link_s aes_ecb_link = { .aes_key7 = 0 /* Big endian aes key(aes-256 key LSB) */ }; -static struct bflb_aes_link_s aes_cbc_link = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_link_s aes_cbc_link = { .aes_key = AES_LINK_KEY_128BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -138,7 +138,7 @@ static struct bflb_aes_link_s aes_cbc_link = { .aes_key7 = 0 /* Big endian aes key(aes-256 key LSB) */ }; -static struct bflb_aes_link_s aes_cbc_link2 = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_link_s aes_cbc_link2 = { .aes_key = AES_LINK_KEY_128BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -165,7 +165,7 @@ static struct bflb_aes_link_s aes_cbc_link2 = { .aes_key7 = 0 /* Big endian aes key(aes-256 key LSB) */ }; -static struct bflb_aes_link_s aes_ctr_link = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_link_s aes_ctr_link = { .aes_key = AES_LINK_KEY_128BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -192,7 +192,7 @@ static struct bflb_aes_link_s aes_ctr_link = { .aes_key7 = 0 /* Big endian aes key(aes-256 key LSB) */ }; -static struct bflb_aes_xts_link_s aes_xts_link1 = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_xts_link_s aes_xts_link1 = { .aes_key = AES_LINK_KEY_128BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -201,7 +201,7 @@ static struct bflb_aes_xts_link_s aes_xts_link1 = { .aes_intset = 0, /* Not set interrupt */ .aes_mode = AES_MODE_XTS, /* ECB mode select */ .aes_newiv_dis = 0, /* Use new iv */ - .aes_xts = 0, /* XTS mode select */ + .aes_xts = AES_LINK_XTS_MODE1, /* XTS mode select */ .aes_msglen = 1, /* Number of 128-bit block */ .aes_srcaddr = 0, /* Message source address */ .aes_dstaddr = 0, /* Message destination address */ @@ -228,7 +228,7 @@ static struct bflb_aes_xts_link_s aes_xts_link1 = { .aes_key27 = 0x00000000 /* Big endian aes key2(aes-256 key LSB) */ }; -static struct bflb_aes_xts_link_s aes_xts_link2 = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_xts_link_s aes_xts_link2 = { .aes_key = AES_LINK_KEY_192BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -237,7 +237,7 @@ static struct bflb_aes_xts_link_s aes_xts_link2 = { .aes_intset = 0, /* Not set interrupt */ .aes_mode = AES_MODE_XTS, /* ECB mode select */ .aes_newiv_dis = 0, /* Use new iv */ - .aes_xts = 0, /* XTS mode select */ + .aes_xts = AES_LINK_XTS_MODE1, /* XTS mode select */ .aes_msglen = 1, /* Number of 128-bit block */ .aes_srcaddr = 0, /* Message source address */ .aes_dstaddr = 0, /* Message destination address */ @@ -264,7 +264,7 @@ static struct bflb_aes_xts_link_s aes_xts_link2 = { .aes_key27 = 0x00000000 /* Big endian aes key2(aes-256 key LSB) */ }; -static struct bflb_aes_xts_link_s aes_xts_link3 = { +ATTR_NOCACHE_RAM_SECTION struct bflb_aes_xts_link_s aes_xts_link3 = { .aes_key = AES_LINK_KEY_256BITS, /* 128-bit key mode select */ .aes_dec_en = 0, /* Encode */ .aes_newkey_dis = 0, /* Use new key */ @@ -273,7 +273,7 @@ static struct bflb_aes_xts_link_s aes_xts_link3 = { .aes_intset = 0, /* Not set interrupt */ .aes_mode = AES_MODE_XTS, /* ECB mode select */ .aes_newiv_dis = 0, /* Use new iv */ - .aes_xts = 0, /* XTS mode select */ + .aes_xts = AES_LINK_XTS_MODE1, /* XTS mode select */ .aes_msglen = 1, /* Number of 128-bit block */ .aes_srcaddr = 0, /* Message source address */ .aes_dstaddr = 0, /* Message destination address */ @@ -314,8 +314,8 @@ static uint32_t bflb_data_compare(const uint8_t *expected, uint8_t *input, uint3 return 0; } -ATTR_NOCACHE_RAM_SECTION uint8_t aes_enc_buf[512]; -ATTR_NOCACHE_RAM_SECTION uint8_t aes_dec_buf[512]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_enc_buf[512]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_dec_buf[512]; int main(void) { @@ -349,12 +349,12 @@ int main(void) bflb_data_compare(aes_xts_128bit_ct, aes_enc_buf, 16); printf("aes link xts 128 success\r\n"); - bflb_aes_link_update(aes, (uint32_t)&aes_xts_link2, aes_xts_192bit_pt, aes_enc_buf, 16); - bflb_data_compare(aes_xts_192bit_ct, aes_enc_buf, 16); + bflb_aes_link_update(aes, (uint32_t)&aes_xts_link2, aes_xts_192bit_pt, aes_enc_buf, 32); + bflb_data_compare(aes_xts_192bit_ct, aes_enc_buf, 32); printf("aes link xts 192 success\r\n"); - bflb_aes_link_update(aes, (uint32_t)&aes_xts_link3, aes_xts_256bit_pt, aes_enc_buf, 16); - bflb_data_compare(aes_xts_256bit_ct, aes_enc_buf, 16); + bflb_aes_link_update(aes, (uint32_t)&aes_xts_link3, aes_xts_256bit_pt, aes_enc_buf, 32); + bflb_data_compare(aes_xts_256bit_ct, aes_enc_buf, 32); printf("aes link xts 256 success\r\n"); printf("aes link success\r\n"); diff --git a/examples/peripherals/sec_eng/sec_eng_aes_sw_key/main.c b/examples/peripherals/sec_eng/sec_eng_aes_sw_key/main.c index 5e1c4c1e..3c03d8a8 100644 --- a/examples/peripherals/sec_eng/sec_eng_aes_sw_key/main.c +++ b/examples/peripherals/sec_eng/sec_eng_aes_sw_key/main.c @@ -465,8 +465,8 @@ const uint8_t aes_xts_256bit_ct[3][64] = { const uint8_t aes_xts_256bit_len[3] = { 64, 64, 64 }; -ATTR_NOCACHE_RAM_SECTION uint8_t aes_enc_buf[512]; -ATTR_NOCACHE_RAM_SECTION uint8_t aes_dec_buf[512]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_enc_buf[512]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_dec_buf[512]; static uint32_t bflb_data_compare(const uint8_t *expected, uint8_t *input, uint32_t len) { diff --git a/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/CMakeLists.txt b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/CMakeLists.txt new file mode 100644 index 00000000..9e7a9884 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.15) + +include(proj.conf) + +find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE}) + +sdk_set_main_file(main.c) + +project(sec_eng_aes_sw_key_costtime) diff --git a/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/Makefile b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/Makefile new file mode 100644 index 00000000..44367c02 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/Makefile @@ -0,0 +1,13 @@ +SDK_DEMO_PATH ?= . +BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../../.. + +export BL_SDK_BASE + +CHIP ?= bl616 +BOARD ?= bl616dk +CROSS_COMPILE ?= riscv64-unknown-elf- + +# add custom cmake definition +#cmake_definition+=-Dxxx=sss + +include $(BL_SDK_BASE)/project.build diff --git a/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/main.c b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/main.c new file mode 100644 index 00000000..46b5871d --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/main.c @@ -0,0 +1,131 @@ +#include "bflb_mtimer.h" +#include "bflb_sec_aes.h" +#include "board.h" + +const uint8_t aes_256bit_key[32] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f +}; + +uint8_t aes_iv[16] = { 0 }; + +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_input_buf[16 * 1024]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_enc_buf[16 * 1024]; +ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t aes_dec_buf[16 * 1024]; + +int main(void) +{ + uint64_t start_time; + + board_init(); + + struct bflb_device_s *aes; + + aes = bflb_device_get_by_name("aes"); + + bflb_group0_request_aes_access(aes); + + for (uint32_t i = 0; i < 16 * 1024; i++) { + aes_input_buf[i] = i & 0xff; + } + + bflb_aes_init(aes); + + bflb_mtimer_delay_ms(500); + + for (uint32_t i = 1; i <= 1024; i++) { + printf("test aes ecb 128 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_ECB); + bflb_aes_setkey(aes, aes_256bit_key, 128); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes ecb 128 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes ecb 128 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + + printf("test aes ecb 256 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_ECB); + bflb_aes_setkey(aes, aes_256bit_key, 256); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes ecb 256 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes ecb 256 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + for (uint32_t i = 1; i <= 1024; i++) { + printf("test aes cbc 128 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_CBC); + bflb_aes_setkey(aes, aes_256bit_key, 128); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes cbc 128 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes cbc 128 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + + printf("test aes cbc 256 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_CBC); + bflb_aes_setkey(aes, aes_256bit_key, 256); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes cbc 256 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes cbc 256 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + for (uint32_t i = 1; i <= 1024; i++) { + printf("test aes ctr 128 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_CTR); + bflb_aes_setkey(aes, aes_256bit_key, 128); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes ctr 128 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes ctr 128 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + + printf("test aes ctr 256 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_CTR); + bflb_aes_setkey(aes, aes_256bit_key, 256); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes ctr 256 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes ctr 256 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + for (uint32_t i = 1; i <= 1024; i++) { + printf("test aes xts 128 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_XTS); + bflb_aes_setkey(aes, aes_256bit_key, 128); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes xts 128 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes xts 128 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + + printf("test aes xts 256 \r\n"); + bflb_aes_set_mode(aes, AES_MODE_XTS); + bflb_aes_setkey(aes, aes_256bit_key, 256); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_encrypt(aes, aes_input_buf, aes_iv, aes_enc_buf, 16 * i); + printf("aes xts 256 block:%d enc cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + start_time = bflb_mtimer_get_time_us(); + bflb_aes_decrypt(aes, aes_enc_buf, aes_iv, aes_dec_buf, 16 * i); + printf("aes xts 256 block:%d dec cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + printf("aes success\r\n"); + bflb_group0_release_aes_access(aes); + while (1) { + bflb_mtimer_delay_ms(2000); + } +} \ No newline at end of file diff --git a/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/proj.conf b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/proj.conf new file mode 100644 index 00000000..13320d67 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_aes_sw_key_costtime/proj.conf @@ -0,0 +1 @@ +#set(CONFIG_XXX 1) \ No newline at end of file diff --git a/examples/peripherals/sec_eng/sec_eng_dsa/CMakeLists.txt b/examples/peripherals/sec_eng/sec_eng_dsa/CMakeLists.txt new file mode 100644 index 00000000..23e2b4c8 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_dsa/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.15) + +include(proj.conf) + +find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE}) + +sdk_set_main_file(main.c) + +project(sec_eng_dsa) diff --git a/examples/peripherals/sec_eng/sec_eng_dsa/Makefile b/examples/peripherals/sec_eng/sec_eng_dsa/Makefile new file mode 100644 index 00000000..44367c02 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_dsa/Makefile @@ -0,0 +1,13 @@ +SDK_DEMO_PATH ?= . +BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../../.. + +export BL_SDK_BASE + +CHIP ?= bl616 +BOARD ?= bl616dk +CROSS_COMPILE ?= riscv64-unknown-elf- + +# add custom cmake definition +#cmake_definition+=-Dxxx=sss + +include $(BL_SDK_BASE)/project.build diff --git a/examples/peripherals/sec_eng/sec_eng_dsa/main.c b/examples/peripherals/sec_eng/sec_eng_dsa/main.c new file mode 100644 index 00000000..6efffeb4 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_dsa/main.c @@ -0,0 +1,145 @@ +#include "bflb_mtimer.h" +#include "bflb_sec_dsa.h" +#include "board.h" + +int main(void) +{ + board_init(); + +#if 0 + p=int("00c952a3180f7bca497bc5ad1e9b5818b233702ac9ab43f744f451a4a241fcda5b9eff815351c45d046ee4262ac28f7f3df226ac2e949d1fe8d5b6923f33f1a641",16) + q=int("00c225091c9a663843dd18cce92409581c2365d0fcbc956bf1152e11004bde53c99843f1f149a76a33fb46edb957f19e8720003b0345633f2840b35e3b302dec79",16) + n=int("98adbfb43467d4a5df25d388e5605f12840ea66299cbdf3a807bbd99817798eb4a64a6885ba5494dba2fc00005fe87f5ec6585d1ba53dea9d48e48cfe6031843d84057a0c6233a598cb8a7d399eea7bce81e07ea574c26e44b4a925db3a9372d73c97bbe143c747ffc1123c2e0e57681e95462a81b7224e814270363bbe880b9",16) + e=65537 + d=int("2a99a039b9bd96d9c94f969c45d403f2f8a1d5cf01369f4c857901480995c3373384adeab217864287c6b6fdcaae60653fd67be62ee523e5a307284dc9d1e73ce88bbd38e711536e48b181c1b5735d76675700fc2ddd89b7df67a8fb16eb4c1dde354fbc04f7c4c18975f5cba4f36ec7120b00bdd838d488ce37a9452e574401",16) + dP=int("c2a434aed4797890272c6d3e042ede619bbdbc809226f9f01eceb87f6f9109843f6b041c0c17ef5e93dfdccec6a07a02e8155faf015c1037ca37e3995b9d2c81",16) + dQ=int("161295dd9da43f835fb0c1234488976ee38b60de4b2685d62bfd47cb8bd4a41c0866b92c209e9b117be10d8803faa176656a014b96e8f8b63fdce4babff888a9",16) + qInv=int("49727f7416d2e019b5436ffeb01b817cd57bb67aece0e56a7777db1547c197d1b00d088c436721a31eba5387b8d48394e47c806d3d1b546b03fd3e6c3ead5fda",16) +#endif + + uint8_t p[64] = { 0xc9, 0x52, 0xa3, 0x18, 0x0f, 0x7b, 0xca, 0x49, 0x7b, 0xc5, 0xad, 0x1e, 0x9b, 0x58, 0x18, 0xb2, + 0x33, 0x70, 0x2a, 0xc9, 0xab, 0x43, 0xf7, 0x44, 0xf4, 0x51, 0xa4, 0xa2, 0x41, 0xfc, 0xda, 0x5b, + 0x9e, 0xff, 0x81, 0x53, 0x51, 0xc4, 0x5d, 0x04, 0x6e, 0xe4, 0x26, 0x2a, 0xc2, 0x8f, 0x7f, 0x3d, + 0xf2, 0x26, 0xac, 0x2e, 0x94, 0x9d, 0x1f, 0xe8, 0xd5, 0xb6, 0x92, 0x3f, 0x33, 0xf1, 0xa6, 0x41 }; + + uint8_t q[64] = { 0xc2, 0x25, 0x09, 0x1c, 0x9a, 0x66, 0x38, 0x43, 0xdd, 0x18, 0xcc, 0xe9, 0x24, 0x09, 0x58, 0x1c, + 0x23, 0x65, 0xd0, 0xfc, 0xbc, 0x95, 0x6b, 0xf1, 0x15, 0x2e, 0x11, 0x00, 0x4b, 0xde, 0x53, 0xc9, + 0x98, 0x43, 0xf1, 0xf1, 0x49, 0xa7, 0x6a, 0x33, 0xfb, 0x46, 0xed, 0xb9, 0x57, 0xf1, 0x9e, 0x87, + 0x20, 0x00, 0x3b, 0x03, 0x45, 0x63, 0x3f, 0x28, 0x40, 0xb3, 0x5e, 0x3b, 0x30, 0x2d, 0xec, 0x79 }; + uint8_t n[128] = { 0x98, 0xad, 0xbf, 0xb4, 0x34, 0x67, 0xd4, 0xa5, 0xdf, 0x25, 0xd3, 0x88, 0xe5, 0x60, 0x5f, 0x12, + 0x84, 0x0e, 0xa6, 0x62, 0x99, 0xcb, 0xdf, 0x3a, 0x80, 0x7b, 0xbd, 0x99, 0x81, 0x77, 0x98, 0xeb, + 0x4a, 0x64, 0xa6, 0x88, 0x5b, 0xa5, 0x49, 0x4d, 0xba, 0x2f, 0xc0, 0x00, 0x05, 0xfe, 0x87, 0xf5, + 0xec, 0x65, 0x85, 0xd1, 0xba, 0x53, 0xde, 0xa9, 0xd4, 0x8e, 0x48, 0xcf, 0xe6, 0x03, 0x18, 0x43, + 0xd8, 0x40, 0x57, 0xa0, 0xc6, 0x23, 0x3a, 0x59, 0x8c, 0xb8, 0xa7, 0xd3, 0x99, 0xee, 0xa7, 0xbc, + 0xe8, 0x1e, 0x07, 0xea, 0x57, 0x4c, 0x26, 0xe4, 0x4b, 0x4a, 0x92, 0x5d, 0xb3, 0xa9, 0x37, 0x2d, + 0x73, 0xc9, 0x7b, 0xbe, 0x14, 0x3c, 0x74, 0x7f, 0xfc, 0x11, 0x23, 0xc2, 0xe0, 0xe5, 0x76, 0x81, + 0xe9, 0x54, 0x62, 0xa8, 0x1b, 0x72, 0x24, 0xe8, 0x14, 0x27, 0x03, 0x63, 0xbb, 0xe8, 0x80, 0xb9 }; + uint8_t e[128] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01 }; + uint8_t d[128] = { 0x2a, 0x99, 0xa0, 0x39, 0xb9, 0xbd, 0x96, 0xd9, 0xc9, 0x4f, 0x96, 0x9c, 0x45, 0xd4, 0x03, 0xf2, + 0xf8, 0xa1, 0xd5, 0xcf, 0x01, 0x36, 0x9f, 0x4c, 0x85, 0x79, 0x01, 0x48, 0x09, 0x95, 0xc3, 0x37, + 0x33, 0x84, 0xad, 0xea, 0xb2, 0x17, 0x86, 0x42, 0x87, 0xc6, 0xb6, 0xfd, 0xca, 0xae, 0x60, 0x65, + 0x3f, 0xd6, 0x7b, 0xe6, 0x2e, 0xe5, 0x23, 0xe5, 0xa3, 0x07, 0x28, 0x4d, 0xc9, 0xd1, 0xe7, 0x3c, + 0xe8, 0x8b, 0xbd, 0x38, 0xe7, 0x11, 0x53, 0x6e, 0x48, 0xb1, 0x81, 0xc1, 0xb5, 0x73, 0x5d, 0x76, + 0x67, 0x57, 0x00, 0xfc, 0x2d, 0xdd, 0x89, 0xb7, 0xdf, 0x67, 0xa8, 0xfb, 0x16, 0xeb, 0x4c, 0x1d, + 0xde, 0x35, 0x4f, 0xbc, 0x04, 0xf7, 0xc4, 0xc1, 0x89, 0x75, 0xf5, 0xcb, 0xa4, 0xf3, 0x6e, 0xc7, + 0x12, 0x0b, 0x00, 0xbd, 0xd8, 0x38, 0xd4, 0x88, 0xce, 0x37, 0xa9, 0x45, 0x2e, 0x57, 0x44, 0x01 }; + uint8_t dP[64] = { 0xc2, 0xa4, 0x34, 0xae, 0xd4, 0x79, 0x78, 0x90, 0x27, 0x2c, 0x6d, 0x3e, 0x04, 0x2e, 0xde, 0x61, + 0x9b, 0xbd, 0xbc, 0x80, 0x92, 0x26, 0xf9, 0xf0, 0x1e, 0xce, 0xb8, 0x7f, 0x6f, 0x91, 0x09, 0x84, + 0x3f, 0x6b, 0x04, 0x1c, 0x0c, 0x17, 0xef, 0x5e, 0x93, 0xdf, 0xdc, 0xce, 0xc6, 0xa0, 0x7a, 0x02, + 0xe8, 0x15, 0x5f, 0xaf, 0x01, 0x5c, 0x10, 0x37, 0xca, 0x37, 0xe3, 0x99, 0x5b, 0x9d, 0x2c, 0x81 }; + uint8_t dQ[64] = { 0x16, 0x12, 0x95, 0xdd, 0x9d, 0xa4, 0x3f, 0x83, 0x5f, 0xb0, 0xc1, 0x23, 0x44, 0x88, 0x97, 0x6e, + 0xe3, 0x8b, 0x60, 0xde, 0x4b, 0x26, 0x85, 0xd6, 0x2b, 0xfd, 0x47, 0xcb, 0x8b, 0xd4, 0xa4, 0x1c, + 0x08, 0x66, 0xb9, 0x2c, 0x20, 0x9e, 0x9b, 0x11, 0x7b, 0xe1, 0x0d, 0x88, 0x03, 0xfa, 0xa1, 0x76, + 0x65, 0x6a, 0x01, 0x4b, 0x96, 0xe8, 0xf8, 0xb6, 0x3f, 0xdc, 0xe4, 0xba, 0xbf, 0xf8, 0x88, 0xa9 }; + uint8_t qInv[64] = { 0x49, 0x72, 0x7f, 0x74, 0x16, 0xd2, 0xe0, 0x19, 0xb5, 0x43, 0x6f, 0xfe, 0xb0, 0x1b, 0x81, 0x7c, + 0xd5, 0x7b, 0xb6, 0x7a, 0xec, 0xe0, 0xe5, 0x6a, 0x77, 0x77, 0xdb, 0x15, 0x47, 0xc1, 0x97, 0xd1, + 0xb0, 0x0d, 0x08, 0x8c, 0x43, 0x67, 0x21, 0xa3, 0x1e, 0xba, 0x53, 0x87, 0xb8, 0xd4, 0x83, 0x94, + 0xe4, 0x7c, 0x80, 0x6d, 0x3d, 0x1b, 0x54, 0x6b, 0x03, 0xfd, 0x3e, 0x6c, 0x3e, 0xad, 0x5f, 0xda }; + uint8_t invR_p[64] = { 0x74, 0xc9, 0x11, 0x9b, 0x94, 0x7c, 0xc7, 0x0c, 0xd9, 0x39, 0x31, 0x06, 0x2c, 0x89, 0x7f, 0x90, + 0x83, 0xec, 0xdd, 0x9e, 0xd1, 0x53, 0x85, 0xb1, 0x2e, 0x01, 0xc0, 0x7a, 0xce, 0x44, 0x56, 0x77, + 0x4d, 0xbe, 0x96, 0xbe, 0xf2, 0x1d, 0x03, 0x09, 0x97, 0x7a, 0xd5, 0xa5, 0x5f, 0x2e, 0x32, 0xdb, + 0xd9, 0xdd, 0x80, 0x3c, 0x08, 0x52, 0x8e, 0x72, 0x14, 0xfd, 0x09, 0x6c, 0x6a, 0x0a, 0x40, 0x91 }; + uint8_t primeN_p[64] = { 0x94, 0x80, 0xcd, 0xff, 0x86, 0x44, 0x04, 0x7a, 0xa9, 0x62, 0x10, 0x8c, 0x4f, 0x9d, 0xee, 0x0e, + 0x70, 0x56, 0xfc, 0xaf, 0x12, 0xaa, 0x05, 0xb0, 0x3c, 0x0c, 0x8c, 0xc1, 0xef, 0xc5, 0x70, 0xc8, + 0x40, 0x76, 0xa2, 0xca, 0x4e, 0xe0, 0xae, 0x6d, 0x3c, 0xbc, 0x3b, 0xed, 0x85, 0xdf, 0x44, 0x39, + 0xcd, 0x89, 0x45, 0x2a, 0x3b, 0x4b, 0x12, 0x2d, 0x34, 0xef, 0xa5, 0x05, 0x04, 0x9e, 0x96, 0x3f }; + uint8_t invR_q[64] = { 0x07, 0x2d, 0x7c, 0xa1, 0x7d, 0xe7, 0xab, 0x44, 0x8d, 0xf0, 0xe1, 0xf0, 0xd0, 0x54, 0xb1, 0x7b, + 0x74, 0x74, 0xac, 0x42, 0xc2, 0x49, 0x56, 0xab, 0xbd, 0x94, 0xe7, 0x5c, 0x6b, 0x06, 0x39, 0x2e, + 0xc7, 0x75, 0xd3, 0xdc, 0x6c, 0x8b, 0xd8, 0x19, 0x7e, 0x6d, 0x59, 0x58, 0xc7, 0x95, 0x71, 0x9e, + 0x10, 0x1a, 0xab, 0x07, 0x6f, 0xf1, 0x81, 0x37, 0x68, 0x88, 0x6c, 0xdd, 0x9d, 0xd8, 0x74, 0x82 }; + uint8_t primeN_q[64] = { 0x09, 0x76, 0xeb, 0x06, 0xf9, 0x4b, 0xb4, 0xb8, 0xef, 0x02, 0x17, 0xf3, 0xa5, 0xa1, 0x12, 0xbc, + 0x85, 0xda, 0x82, 0x91, 0x31, 0xd4, 0x07, 0x49, 0xdf, 0xef, 0x6a, 0x4a, 0x71, 0x0e, 0xe0, 0x8f, + 0x14, 0xc7, 0x71, 0x3f, 0x92, 0xa8, 0x40, 0xd2, 0x9c, 0xf8, 0x76, 0x51, 0xaf, 0xe0, 0xbd, 0xbc, + 0x09, 0x21, 0x2a, 0x68, 0xab, 0x4a, 0xfa, 0x5a, 0xeb, 0x6f, 0xb6, 0x65, 0x67, 0xc3, 0x42, 0x37 }; + uint8_t c[32] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78 }; + uint8_t m[128] = { 0x94, 0x56, 0x39, 0x91, 0x66, 0x79, 0x4b, 0x55, 0x36, 0x55, 0x13, 0x90, 0x9d, 0x6c, 0x40, 0x02, + 0xf8, 0xd5, 0xb3, 0xae, 0x15, 0x90, 0xcd, 0xcf, 0x7b, 0x18, 0xe2, 0x03, 0x2b, 0xf2, 0x65, 0x08, + 0xfc, 0xc8, 0xbf, 0xc2, 0x47, 0xc4, 0x72, 0x55, 0x8a, 0x50, 0x26, 0x5e, 0x73, 0x7f, 0x18, 0x1e, + 0x6f, 0x64, 0x8f, 0x42, 0xd0, 0x1b, 0x92, 0x0e, 0xe3, 0x1e, 0x39, 0xea, 0x38, 0x76, 0x0b, 0xf8, + 0x0f, 0x25, 0x5d, 0x5d, 0x5d, 0x52, 0xf4, 0x7f, 0x74, 0x27, 0xdf, 0x4a, 0x89, 0xc4, 0xa3, 0xa7, + 0xf8, 0xd3, 0xf9, 0x3a, 0xaa, 0x6a, 0x34, 0x42, 0xb3, 0x5e, 0x5b, 0x68, 0x96, 0xc7, 0xc4, 0xfa, + 0x22, 0x95, 0x8a, 0xbf, 0xa6, 0xf3, 0x54, 0x2e, 0xcf, 0x66, 0x0f, 0x62, 0xef, 0xac, 0x11, 0xc1, + 0x69, 0xb2, 0x64, 0xf9, 0xcc, 0x75, 0x68, 0x50, 0x8f, 0xf1, 0xfe, 0x5c, 0xfa, 0x27, 0x6c, 0x7b }; + uint32_t dsa_tmp[32]; + uint32_t i = 0; + uint8_t *k; + struct bflb_dsa_s dsa_handle; + uint32_t time = 0; + + printf("DSA Case\r\n"); + + bflb_sec_dsa_init(&dsa_handle, 1024); + dsa_handle.n = (uint32_t *)n; + dsa_handle.e = (uint32_t *)e; + dsa_handle.d = (uint32_t *)d; + dsa_handle.crtCfg.dP = (uint32_t *)dP; + dsa_handle.crtCfg.dQ = (uint32_t *)dQ; + dsa_handle.crtCfg.qInv = (uint32_t *)qInv; + dsa_handle.crtCfg.p = (uint32_t *)p; + dsa_handle.crtCfg.invR_p = (uint32_t *)invR_p; + dsa_handle.crtCfg.primeN_p = (uint32_t *)primeN_p; + dsa_handle.crtCfg.q = (uint32_t *)q; + dsa_handle.crtCfg.invR_q = (uint32_t *)invR_q; + dsa_handle.crtCfg.primeN_q = (uint32_t *)primeN_q; + + time = (unsigned int)bflb_mtimer_get_time_ms(); + + if (0 != bflb_sec_dsa_sign(&dsa_handle, (uint32_t *)c, 8, dsa_tmp)) { + printf("Sign Fail\r\n"); + } + + printf("DSA sign time=%dms\r\n", (unsigned int)bflb_mtimer_get_time_ms() - time); + + printf("Check sign\r\n"); + k = (uint8_t *)(dsa_tmp); + + for (i = 0; i < sizeof(m); i++) { + if (k[i] != m[i]) { + printf("DSA sign fail\r\n"); + while(1) + {} + } + } + + time = (unsigned int)bflb_mtimer_get_time_ms(); + + if (0 != bflb_sec_dsa_verify(&dsa_handle, (uint32_t *)c, 8, (uint32_t *)m)) { + printf("DSA verify fail\r\n"); + } + + printf("DSA verify time=%dms\r\n", (unsigned int)bflb_mtimer_get_time_ms()- time); + + printf("Finished\r\n"); + + while (1) { + bflb_mtimer_delay_ms(2000); + } +} \ No newline at end of file diff --git a/examples/peripherals/sec_eng/sec_eng_dsa/proj.conf b/examples/peripherals/sec_eng/sec_eng_dsa/proj.conf new file mode 100644 index 00000000..13320d67 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_dsa/proj.conf @@ -0,0 +1 @@ +#set(CONFIG_XXX 1) \ No newline at end of file diff --git a/examples/peripherals/sec_eng/sec_eng_sha/main.c b/examples/peripherals/sec_eng/sec_eng_sha/main.c index c1d29682..bdd5c94e 100644 --- a/examples/peripherals/sec_eng/sec_eng_sha/main.c +++ b/examples/peripherals/sec_eng/sec_eng_sha/main.c @@ -126,13 +126,13 @@ static const unsigned char sha512_test_sum[6][64] = { 0x4E, 0xAD, 0xB2, 0x17, 0xAD, 0x8C, 0xC0, 0x9B } }; -ATTR_NOCACHE_RAM_SECTION __attribute__((aligned(32))) uint8_t sha_input_buf[1000]; /* input addr must be align 32 */ +ATTR_NOCACHE_NOINIT_RAM_SECTION __attribute__((aligned(32))) uint8_t sha_input_buf[1000]; /* input addr must be align 32 */ uint8_t sha_output_buf[128]; -ATTR_NOCACHE_RAM_SECTION struct bflb_sha1_ctx_s ctx_sha1; -ATTR_NOCACHE_RAM_SECTION struct bflb_sha256_ctx_s ctx_sha256; -ATTR_NOCACHE_RAM_SECTION struct bflb_sha512_ctx_s ctx_sha512; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha1_ctx_s ctx_sha1; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha256_ctx_s ctx_sha256; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha512_ctx_s ctx_sha512; static uint32_t bflb_data_compare(const uint8_t *expected, uint8_t *input, uint32_t len) { @@ -192,7 +192,7 @@ int main(void) } bflb_sha256_finish(sha, &ctx_sha256, sha_output_buf); - bflb_data_compare(sha256_test_sum[i], sha_output_buf, 20); + bflb_data_compare(sha256_test_sum[i], sha_output_buf, 28); } printf("sha224 success\r\n"); @@ -210,7 +210,7 @@ int main(void) } bflb_sha256_finish(sha, &ctx_sha256, sha_output_buf); - bflb_data_compare(sha256_test_sum[i + 3], sha_output_buf, 20); + bflb_data_compare(sha256_test_sum[i + 3], sha_output_buf, 32); } printf("sha256 success\r\n"); @@ -228,7 +228,7 @@ int main(void) } bflb_sha512_finish(sha, &ctx_sha512, sha_output_buf); - bflb_data_compare(sha512_test_sum[i], sha_output_buf, 20); + bflb_data_compare(sha512_test_sum[i], sha_output_buf, 48); } printf("sha384 success\r\n"); @@ -246,7 +246,7 @@ int main(void) } bflb_sha512_finish(sha, &ctx_sha512, sha_output_buf); - bflb_data_compare(sha512_test_sum[i + 3], sha_output_buf, 20); + bflb_data_compare(sha512_test_sum[i + 3], sha_output_buf, 64); } printf("sha512 success\r\n"); bflb_group0_release_sha_access(sha); diff --git a/examples/peripherals/sec_eng/sec_eng_sha_costtime/CMakeLists.txt b/examples/peripherals/sec_eng/sec_eng_sha_costtime/CMakeLists.txt new file mode 100644 index 00000000..99adce11 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_sha_costtime/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.15) + +include(proj.conf) + +find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE}) + +sdk_set_main_file(main.c) + +project(sec_eng_sha_costtime) diff --git a/examples/peripherals/sec_eng/sec_eng_sha_costtime/Makefile b/examples/peripherals/sec_eng/sec_eng_sha_costtime/Makefile new file mode 100644 index 00000000..44367c02 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_sha_costtime/Makefile @@ -0,0 +1,13 @@ +SDK_DEMO_PATH ?= . +BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../../.. + +export BL_SDK_BASE + +CHIP ?= bl616 +BOARD ?= bl616dk +CROSS_COMPILE ?= riscv64-unknown-elf- + +# add custom cmake definition +#cmake_definition+=-Dxxx=sss + +include $(BL_SDK_BASE)/project.build diff --git a/examples/peripherals/sec_eng/sec_eng_sha_costtime/main.c b/examples/peripherals/sec_eng/sec_eng_sha_costtime/main.c new file mode 100644 index 00000000..87966205 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_sha_costtime/main.c @@ -0,0 +1,81 @@ +#include "bflb_mtimer.h" +#include "bflb_sec_sha.h" +#include "board.h" + +ATTR_NOCACHE_NOINIT_RAM_SECTION __attribute__((aligned(32))) uint8_t sha_input_buf[16 * 1024]; /* input addr must be align 32 */ + +uint8_t sha_output_buf[128]; + +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha1_ctx_s ctx_sha1; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha256_ctx_s ctx_sha256; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha512_ctx_s ctx_sha512; + +int main(void) +{ + uint64_t start_time; + + board_init(); + + struct bflb_device_s *sha; + + sha = bflb_device_get_by_name("sha"); + + bflb_group0_request_sha_access(sha); + + for (uint32_t i = 0; i < 16 * 1024; i++) { + sha_input_buf[i] = i & 0xff; + } + + bflb_sha_init(sha, SHA_MODE_SHA1); + + for (uint32_t i = 1; i <= 1024; i++) { + start_time = bflb_mtimer_get_time_us(); + bflb_sha1_start(sha, &ctx_sha1); + bflb_sha1_update(sha, &ctx_sha1, sha_input_buf, 16 * i); + bflb_sha1_finish(sha, &ctx_sha1, sha_output_buf); + printf("sha1 block:%d cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + printf("sha1 success\r\n"); + + bflb_sha_init(sha, SHA_MODE_SHA224); + for (uint32_t i = 1; i <= 1024; i++) { + start_time = bflb_mtimer_get_time_us(); + bflb_sha256_start(sha, &ctx_sha256); + bflb_sha256_update(sha, &ctx_sha256, sha_input_buf, 16 * i); + bflb_sha256_finish(sha, &ctx_sha256, sha_output_buf); + printf("sha224 block:%d cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + bflb_sha_init(sha, SHA_MODE_SHA256); + for (uint32_t i = 1; i <= 1024; i++) { + start_time = bflb_mtimer_get_time_us(); + bflb_sha256_start(sha, &ctx_sha256); + bflb_sha256_update(sha, &ctx_sha256, sha_input_buf, 16 * i); + bflb_sha256_finish(sha, &ctx_sha256, sha_output_buf); + printf("sha256 block:%d cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + bflb_sha_init(sha, SHA_MODE_SHA384); + for (uint32_t i = 1; i <= 1024; i++) { + start_time = bflb_mtimer_get_time_us(); + bflb_sha512_start(sha, &ctx_sha512); + bflb_sha512_update(sha, &ctx_sha512, sha_input_buf, 16 * i); + bflb_sha512_finish(sha, &ctx_sha512, sha_output_buf); + printf("sha384 block:%d cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + bflb_sha_init(sha, SHA_MODE_SHA512); + for (uint32_t i = 1; i <= 1024; i++) { + start_time = bflb_mtimer_get_time_us(); + bflb_sha512_start(sha, &ctx_sha512); + bflb_sha512_update(sha, &ctx_sha512, sha_input_buf, 16 * i); + bflb_sha512_finish(sha, &ctx_sha512, sha_output_buf); + printf("sha512 block:%d cost time:%d us\r\n", i, (uint32_t)(bflb_mtimer_get_time_us() - start_time)); + } + + bflb_group0_release_sha_access(sha); + while (1) { + bflb_mtimer_delay_ms(2000); + } +} \ No newline at end of file diff --git a/examples/peripherals/sec_eng/sec_eng_sha_costtime/proj.conf b/examples/peripherals/sec_eng/sec_eng_sha_costtime/proj.conf new file mode 100644 index 00000000..13320d67 --- /dev/null +++ b/examples/peripherals/sec_eng/sec_eng_sha_costtime/proj.conf @@ -0,0 +1 @@ +#set(CONFIG_XXX 1) \ No newline at end of file diff --git a/examples/peripherals/sec_eng/sec_eng_sha_link/main.c b/examples/peripherals/sec_eng/sec_eng_sha_link/main.c index bf84e318..5c50286d 100644 --- a/examples/peripherals/sec_eng/sec_eng_sha_link/main.c +++ b/examples/peripherals/sec_eng/sec_eng_sha_link/main.c @@ -45,7 +45,7 @@ const uint8_t sha512_testsum[2][128] = { 0x84, 0x21, 0xc5, 0x75, 0x9c, 0x85, 0xc3, 0x37 } }; -static struct bflb_sha_link_s sha256_link = { +ATTR_NOCACHE_RAM_SECTION struct bflb_sha_link_s sha256_link = { .sha_mode = SHA_MODE_SHA256, /* Sha-256 */ .sha_newhash_dis = 0, /* New hash */ .sha_intclr = 0, /* Not clear interrupt */ @@ -56,7 +56,7 @@ static struct bflb_sha_link_s sha256_link = { { 0 } /* Result of SHA */ }; -static struct bflb_sha_link_s sha512_link = { +ATTR_NOCACHE_RAM_SECTION struct bflb_sha_link_s sha512_link = { .sha_mode = SHA_MODE_SHA512, /* Sha-512 */ .sha_newhash_dis = 0, /* New hash */ .sha_intclr = 0, /* Not clear interrupt */ @@ -67,12 +67,12 @@ static struct bflb_sha_link_s sha512_link = { { 0 } /* Result of SHA */ }; -ATTR_NOCACHE_RAM_SECTION __attribute__((aligned(32))) uint8_t sha_input_buf[1000]; +ATTR_NOCACHE_NOINIT_RAM_SECTION __attribute__((aligned(32))) uint8_t sha_input_buf[1000]; uint8_t sha_output_buf[128]; -ATTR_NOCACHE_RAM_SECTION struct bflb_sha256_ctx_s ctx_sha256; -ATTR_NOCACHE_RAM_SECTION struct bflb_sha512_ctx_s ctx_sha512; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha256_link_ctx_s ctx_sha256; +ATTR_NOCACHE_NOINIT_RAM_SECTION struct bflb_sha512_link_ctx_s ctx_sha512; static uint32_t bflb_data_compare(const uint8_t *expected, uint8_t *input, uint32_t len) { @@ -100,22 +100,21 @@ int main(void) bflb_sha_link_init(sha); - bflb_sha256_link_start(sha, &ctx_sha256); + bflb_sha256_link_start(sha, &ctx_sha256, &sha256_link); memcpy(sha_input_buf, sha256_testbuf[0], 104); - bflb_sha256_link_update(sha, &ctx_sha256, (uint32_t)&sha256_link, sha_input_buf, 80); - bflb_sha256_link_update(sha, &ctx_sha256, (uint32_t)&sha256_link, &sha_input_buf[80], 104 - 80); - bflb_sha256_link_finish(sha, &ctx_sha256, (uint32_t)&sha256_link, sha_output_buf); + bflb_sha256_link_update(sha, &ctx_sha256, sha_input_buf, 80); + bflb_sha256_link_update(sha, &ctx_sha256, &sha_input_buf[80], 104 - 80); + bflb_sha256_link_finish(sha, &ctx_sha256, sha_output_buf); bflb_data_compare(sha256_testsum[0], sha_output_buf, 32); printf("sha256 link success\r\n"); - bflb_sha512_link_start(sha, &ctx_sha512); + bflb_sha512_link_start(sha, &ctx_sha512, &sha512_link); memcpy(sha_input_buf, sha512_testbuf[0], 208); - bflb_sha512_link_update(sha, &ctx_sha512, (uint32_t)&sha512_link, sha_input_buf, 160); - bflb_sha512_link_update(sha, &ctx_sha512, (uint32_t)&sha512_link, &sha_input_buf[160], 208 - 80); - bflb_sha512_link_finish(sha, &ctx_sha512, (uint32_t)&sha512_link, sha_output_buf); + bflb_sha512_link_update(sha, &ctx_sha512, sha_input_buf, 160); + bflb_sha512_link_update(sha, &ctx_sha512, &sha_input_buf[160], 208 - 160); + bflb_sha512_link_finish(sha, &ctx_sha512, sha_output_buf); bflb_data_compare(sha512_testsum[0], sha_output_buf, 64); printf("sha512 link success\r\n"); - bflb_group0_release_sha_access(sha); while (1) { bflb_mtimer_delay_ms(2000); diff --git a/examples/peripherals/spi/spi_dma/main.c b/examples/peripherals/spi/spi_dma/main.c index 739b6481..fc3f810d 100644 --- a/examples/peripherals/spi/spi_dma/main.c +++ b/examples/peripherals/spi/spi_dma/main.c @@ -11,8 +11,8 @@ struct bflb_device_s *spi0; struct bflb_device_s *dma0_ch0; struct bflb_device_s *dma0_ch1; -static ATTR_NOCACHE_RAM_SECTION uint32_t tx_buffer[256]; -static ATTR_NOCACHE_RAM_SECTION uint32_t rx_buffer[256]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint32_t tx_buffer[256]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint32_t rx_buffer[256]; static volatile uint8_t dma_tc_flag0 = 0; static volatile uint8_t dma_tc_flag1 = 0; diff --git a/examples/peripherals/timer/timer_int/main.c b/examples/peripherals/timer/timer_int/main.c index 3bc57ef6..b501a713 100644 --- a/examples/peripherals/timer/timer_int/main.c +++ b/examples/peripherals/timer/timer_int/main.c @@ -53,21 +53,21 @@ int main(void) struct bflb_timer_config_s cfg0; cfg0.counter_mode = TIMER_COUNTER_MODE_PROLOAD; /* preload when match occur */ cfg0.clock_source = TIMER_CLKSRC_XTAL; - cfg0.clock_div = 0; /* for bl616/bl808/bl606p is 39, for bl702 is 31 */ + cfg0.clock_div = 39; /* for bl616/bl808/bl606p is 39, for bl702 is 31 */ cfg0.trigger_comp_id = TEST_TIMER_COMP_ID; - cfg0.comp0_val = 230000; /* match value 0 */ - cfg0.comp1_val = 260000; /* match value 1 */ - cfg0.comp2_val = 290000; /* match value 2 */ + cfg0.comp0_val = 1000000; /* match value 0 */ + cfg0.comp1_val = 1500000; /* match value 1 */ + cfg0.comp2_val = 2500000; /* match value 2 */ cfg0.preload_val = 0; /* preload value */ struct bflb_timer_config_s cfg1; cfg1.counter_mode = TIMER_COUNTER_MODE_PROLOAD; cfg1.clock_source = TIMER_CLKSRC_XTAL; - cfg1.clock_div = 0; /* for bl616/bl808/bl606p is 39, for bl702 is 31 */ + cfg1.clock_div = 39; /* for bl616/bl808/bl606p is 39, for bl702 is 31 */ cfg1.trigger_comp_id = TEST_TIMER_COMP_ID; - cfg1.comp0_val = 330000; /* match value 0 */ - cfg1.comp1_val = 360000; /* match value 1 */ - cfg1.comp2_val = 390000; /* match value 2 */ + cfg1.comp0_val = 1000000; /* match value 0 */ + cfg1.comp1_val = 1500000; /* match value 1 */ + cfg1.comp2_val = 2500000; /* match value 2 */ cfg1.preload_val = 0; /* preload value */ timer0 = bflb_device_get_by_name("timer0"); diff --git a/examples/peripherals/uart/uart_dma/main.c b/examples/peripherals/uart/uart_dma/main.c index 0f5c2fda..6dbffde0 100644 --- a/examples/peripherals/uart/uart_dma/main.c +++ b/examples/peripherals/uart/uart_dma/main.c @@ -8,10 +8,10 @@ struct bflb_device_s *uart1; struct bflb_device_s *dma0_ch0; struct bflb_device_s *dma0_ch1; -static ATTR_NOCACHE_RAM_SECTION uint8_t src_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t src2_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t src3_buffer[4100]; -static ATTR_NOCACHE_RAM_SECTION uint8_t receive_buffer[50] = { 0 }; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src_buffer[4100]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src2_buffer[4100]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t src3_buffer[4100]; +static ATTR_NOCACHE_NOINIT_RAM_SECTION uint8_t receive_buffer[50] = { 0 }; static volatile uint8_t dma_tc_flag0 = 0; static volatile uint8_t dma_tc_flag1 = 0;