# Change Log

## [1.5.0] - 2024-03-29:

Main changes since 1.4.0

Tested Segger Embedded Studio Version: 7.32a
Tested IAR Embedded Workbench for RISC-V Version: 3.20.1

### Known Issue:
  - some IAR projects does not work properly when optimization level is increased

### Changed:
  - soc: iomux: update macro prefix in pmic_iomux and batt_iomux.
  - soc: feature: change usb endpoint max number from 8 to 16
  - soc: correct svd files and add subpart module list
  - drivers: usb: change usb_phy_get_line_state() to external function
  - drivers: qeiv2: update filter length setting
  - drivers: adc12/adc16: add sanity check for sample cycle
  - drivers: femc: add delay_cell_disable config option
  - drivers: i2s: change fifo threshold parameter.
  - drivers: i2c: replace and use the macro definition of hpm_soc_ip_feature.
  - drivers: uart: supplementary description of uart_check_status API.
  - components: enet_phy: lan8720/rtl8201/rtl8211: unify the default config with type bool
  - components: enet_phy: remove unused included header file
  - components: enet_phy: rtl8201/rtl8211: update register description
  - components: dma_mgr: change isr handler from static to public
  - middleware: tinyusb: host: use echi drivers
  - middleware: tinyusb: rename CFG_TUSB_HOST_DEVICE_MAX to CFG_TUH_DEVICE_MAX
  - middleware: tinyusb: update to v0.16
  - middleware: rtthread-nano: use soc reset_handler and define MAIN_ENTRY as entry
  - middleware: fatfs: tinyusb: adapter to tinyusb update
  - middleware: threadx: use TX_TIMER_TICKS_PER_SECOND to config work ticks
  - middleware: threadx: use samples tx_user.h
  - middleware: uC/OS-III: enable sw interrupt in OSCtxSw/OSIntCtxSw
  - middleware: ucos: ports: Added IAR portable layer for ucos.
  - middleware: cherryusb/azure_rtos: add defined __ICCRISCV__ for iar
  - middleware: hpm_math: simplify libdsp path.
  - middleware: cherryusb: update to v1.1.0
  - middleware: rtthread-nano:halt cpu when exception occur.
  - middleware: hpm_math: simplify libnn path.
  - middleware: threadx: move frequently called function to ram.
  - middleware: tinyusb: change endpoint number from 8 to 16
  - middleware: usbx: change endpoint number from 8 to 16
  - middleware: cherryusb: msc device: update to support multi lun and deinit
  - middleware: eclipse_threadx: update license
  - middleware: fatfs: tinyusb: add osal_task_delay() when use rtos wait
  - middleware: tinyusb: update CMakeLists.txt and delete custom osal_task_delay()
  - middleware: tinyusb: add debounce in port change isr
  - samples: erpc: add middleware src use middleware CMakeLists.txt
  - samples: multicore: core1: use board_init_core1() API
  - samples: multicore: coremark: delete custom reset_handler and use app_main as MAIN_ENTRY
  - samples: tinyusb: update samples to adapter tinyusb v0.16
  - samples: usbx: host: delete unused hpm_usb_host.h
  - samples: usb: delete CONFIG_USB_HOST set
  - samples: lvgl_coremark: disable freqswitch_btn when coremark running
  - samples: mono: move to driver directory.
  - samples: freertos: change configMAX_PRIORITIES from 7 to 32
  - samples: rtthread: delete unused macro RT_THREAD_PRIORITY_32
  - samples: cherryusb: usbnet: decrease rtos stack config size
  - samples: lwip: all: unify logs about IP information
  - samples: lwip: lwip_https_server: remove an unused file
  - samples: lwip: all: update DHCP progress logic
  - samples: lwip: common: remove s_pxNetIf
  - samples: lwip: adjust the directories of netconf.c/netcof.h
  - samples: lwip: common: optimize speed for getting IP from DHCP server
  - samples: lwip: rename common_lwip.c to common.c
  - samples: lwip: common: adjust the call logic of netif_set_up/netif_set_down
  - samples: lwip: common: change the time of invoking netif_user_notification
  - samples: lwip: common: rename user_notification to netif_user_notification
  - samples: lwip: adjust directory structures to be compatible with single and multiple network ports
  - samples: use generate_ide_projects for new samples
  - samples: cherryusb: device: cdc acm: reorganize directory structure
  - samplse: gptmr: t_shape_accel_decel: modify the source address mode of DMA.
  - samples: cherryusb: device: change readbuf size from 2048 to CDC_MAX_MPS
  - samples: drivers: femc: update sdram dqs config
  - samples: update app.yaml to use ip_feature
  - samples: drivers: uart: change to app uart
  - samples: audio_codec: update wm8960 I2S protocol.
  - samples: drivers: cam: change cam sample to cam_dvp sample.
  - samples: usbx: device: msc: decrease ram disk size to 16KB
  - samples: cherryusb: msc device: update to support multi lun
  - samples: driver: uart_lin: support LIN transceiver on board.
  - samples: adc: temp: rename temp to adc16_temperature
  - samples: bldc block: Compatible with both hall and qeiv2 peripherals.
  - samples: motor_ctrl: Modify the value of pwm reload.
  - samples: lwip: common: single/multiple: update the size passed into sys_mbox_new()
  - samples: lwip: common: single/multiple: replace enet_get_link_status with netif_is_link_up
  - samples: lwip: lwip_https_server: remove unused header file
  - samples: lwip: rename macro TCP_XXX_PORT
  - samples: lwip: add cmake flag for netconn/socket api
  - samples: decode_wav: sd_fafts: update sd_choose_music.
  - samples: power_mode_switch: maintain xpi0 clock on switching preset
  - samples: dhrystone Change the optmization level to O3.
  - samples: tinyusb: hid_generic_inout: delete redundant image
  - samples: power_mode_switch: hpm67/hpm63: preserve femc clock at wait/stop mode
  - samples: erpc: core1: use optimization -os
  - samples: update uart_tamagawa to use software trig if TRGM not exist.
  - samples: eeprom_emulation: reduce management area
  - samples: sdxc: use block_size instead of 512
  - samples: erpc: add -fno-exceptions compile option
  - samples: tinyusb: disable debug log print
  - boards: hpm5300evk and hpm6800evk: add delay after USB_PWR Pin init for power stable
  - boards: hpm6750evkmini: modify gptmr pins.
  - boards: hpm6200evk: modify gptmr pins.
  - boards: hpm6200evk: modify the i2c pins.
  - boards: hpm6750xxx: update sdram dqs config
  - boards: hpm6800evk:pinmux Increase drive strength for sdxc pins
  - boards: iomux: update macro prefix for pmic_iomux and batt_iomux.
  - boards: rename board feature
  - boards: update BOARD_APP_UART definition
  - boards: rename console definitions
  - boards: hpm5301evklite: update uart clock in board.c.
  - boards: hpm6750evkmini: change BOARD_GPTMR_PWM_DMA_SRC definition.
  - docs: samples: use glob in high level readme.
  - docs: update top level readme.
  - docs: netxduo: update sntp readme.
  - docs: threadx: update threadx hello readme.
  - docs: lwip: align pictures to the left
  - docs: pip: add cmake doc dependency
  - docs: add changelog to sphnix-doc.
  - scripts: ses: generate asm after build by default.
  - scripts: update linked project path logic.
  - scripts: check_board_cap.py: check ip feature's availability
  - cmake: remove CMP0116 setting.
  - cmake&scripts: clarify the error caused by core1 compiling failure.
  - scripts: ses/iar: use relpath in project file

### Added:
  - soc: hpm6360/hpm6750/hpm6800: add MAC-related definitions in OTP section
  - soc: reset: add MAIN_ENTRY macro to custom define main entry
  - soc: add hpm6850 and hpm6830 part.
  - soc: soc_modules.list: add tamper drivers
  - soc: Add IAR toolchain support.
  - soc: add ip feature to soc_modules.list
  - soc: add hpm_soc_ip_feature.h
  - soc: driver: ppor: add reset hold operation APIs
  - soc: clock_driver add the clock_get_divider API.
  - soc: sysctl: add apis to control clock preservation
  - soc: toolchains: gcc: ram linker: add ILM last address overflow check
  - drivers: mcan Add timeout counter support.
  - drivers: tamper: add tamper driver
  - drivers: cam: add cam_update_buffer2 API
  - drivers: opamp: Add user configuration code.
  - drivers: lcdc: add stride for layer config.
  - drivers: pdma: add pdma_blit_ex.
  - drivers:pllctl add out-of-bound check in pllctl driver.
  - components:uart_lin: add hpm_uart_lin_send_wakeup() API
  - components: enet_phy: add LAN8720 driver
  - components: enet_phy: add definition of enet_phy_link_status_t
  - middleware: cherryusb: host: add dual port support
  - middleware: cmsis_os2: adapter to rtthread wrapper
  - middleware: cmsis_os2: update freertos files
  - middleware: cmsis_os2: adapter to threadx wrapper
  - middleware: cmsis_os2: adapter to ucOS-III wrapper
  - middleware: hpm_sdmmc Add eMMC config partition API.
  - middleware: cherryusb Add IAR toolchain support
  - middleware: erpc Fix IAR RISC-V support issue
  - middleware: tflm: add IAR riscv support in flatbuffer
  - middleware: FreeRTOS: portable:Added IAR portable layer.
  - middleware: segger_rtt Added EWRISCV support
  - middleware: hpm_math Add nds_dsp library for IAR.
  - middleware: lwip: cc: add PACK_STRUCT_XXX definitions for IAR platform
  - middleware: uC/OS-III: enable plicsw in IAR asm code
  - middleware: add tinyengine
  - middleware: threadx: add support for gptmr.
  - middleware: threadx: add profile support.
  - middleware: add agile_modbus.
  - middleware: add cherryrb.
  - middleware: cherryusb Add missing swap32/swap16 implementation.
  - middleware: hpm_mclv2: add block type drive motors
  - middleware: cherryusb: fix usbh_core ep0 buffer index
  - boards: hpm6200xxx and hpm6750xxx: add board_init_core1() API
  - boards: add tamper feature and pins init
  - boards: hpm5300evk: add board_init_console() declaration in board.h
  - boards: hpm6750evk/hpm6750evk2: add board_dual_usb feature
  - boards: openocd: add windows guide to *_all_in_one.cfg
  - boards: openocd: soc: add reset_soc proc
  - board:add pgpio configuration on hpm5301evklite
  - samples: drivers: add mono sample.
  - samples: drivers:mcan Add timeout counter sample.
  - samples: drivers: tamper: add tamper sample
  - samples: cmsis_os2: blinky: add rtthread samples
  - samples: cmsis_os2: add msg_queue sample
  - samples: cmsis_os2: add mem_pool samples
  - samples: cmsis_os2: msg_queue: add ucOS-III support
  - samples: cmsis_os2: blinky: add ucOS-III support
  - samples: lwip: common: add a task netif_update_link_status
  - samples: lwip: add MAC address load from OPT MAC area
  - samples: cherryusb: device: cdc acm: add cdc_acm_uart_com sample
  - samples: cherryusb: device: add msc sdcard sample
  - samples: tinyengine: add person detection.
  - samples: rtos: add threadx gptmr sample.
  - samples: modbus: tcp: add tcp samples.
  - samples: modbus: rtu: add rtu sample.
  - samples: add cherryrb sample.
  - samples: cherryusb: host: add dual port sample
  - samples: cherryusb: device: add dual port sample
  - samples: cherryusb: device: add dual lun msc sample
  - samples: lwip: ports: rtthread-nano: multiple: add arch-related files
  - samples: lwip: ports: freertos: multiple: add arch-related files
  - samples: lwip: common: multiple: osal: add osTaskFunction definition
  - samples: lwip: add a lwip_tcpecho_multi_ports_rtthread-nano sample
  - samples: lwip: add a lwip_tcpecho_multi_ports_freertos
  - samples: lwip: lwip_tcpecho_xxx: add definitions for task priorities
  - samples: lwip: lwip_tcpecho_freertos_socket: newly add
  - samples: lwip: lwip_tcpclient: newly add
  - samples: lwip: add lwip_tcpclient_freertos_socket
  - samples: vglite: add sample of rotate tiger.
  - samples: lwip: lwip_tcpclient_freertos_socket: fix failure to run
  - samples: lwip: lwip_tcpclient: fix failure to run with some release-related type
  - samples: jpeg: jpeg_encode: add debounce for button.
  - docs: add cmake doc
  - docs: hpm5300evk: add qeiv2 sin/cos pins
  - scripts: support sdk project localization.
  - cmake: add nds-gcc options to sdk_lib for nds-gcc.
  - cmake/scripts: add IAR project generation support
  - cmake: add symbols to specify linker for tools.
  - cmake: add sdk_*_src_glob.
  - cmake: add custom targets for localization.

### Fixed:
  - soc: hpm6750: fix segger linker vectors order
  - soc: hpm_interrupt.h Fix compiling warning for DSP related macros
  - soc: hpm6750: otp Fix OTP program and read logic
  - soc: hpm6880: clock Fix wrong enum value for TSNS clock.
  - soc: clock driver: correct the clock name value for pll clocks.
  - soc: HPM6280: fix adc/dac clock setting
  - soc: ppor: fix ppor clear reset flag and set reset type API error
  - soc: HPM6880: fix i2s clock config driver
  - drivers: adc12: fix calibration setting error
  - drivers: cam: DMASA_FB2 need to be assigned whether FB2 buffer is enable or not.
  - drivers:can correct the logic of disabling re-transmission for ptb & stb.
  - drivers: qeo: fix driver error
  - drivers: i2s: ensure valid BCLK before call software reset.
  - drivers: pdma: fixed OUT_PS[] config.
  - components: wm8960: invert LRCLK to align with soc I2S.
  - middleware: uC/OS-III: fix register t0 unsafe.
  - middleware: ptpd: fix netShutdown error in ptpd initialization
  - middleware: cmsis_os2: task should call exit interface before exit
  - middleware: threadx: fix threadx profile RA register save and restore bug.
  - middleware: hpm_mcl: fix divide-by-zero error. refs: hpm_sdk-#1091
  - middleware: cherryusb/tinyusb/usbx: device: fix transfer_len not reset
  - middleware: cherryusb/usbx: fix dtd return problem
  - middleware: cherryusb/tinyusb/usbx: fix usb device interrupt should be check active status
  - middleware: tinyusb: fix ehci cap_reg address error
  - middleware: tinyusb: fix hid report id
  - middleware: cherryusb: fix usbd_ep_close not reset ep_enable flag
  - middleware: cherryusb: fix rndis message length check
  - middleware: freertos: fix implementation error in xPortIsInsideInterrupt.
  - boards: hpm6200evk: fix tamper pin config
  - board: openocd: all_in_one: hpm6800 config file is missed.
  - boards: openocd: all_in_one: hpm5300: correct soc config name.
  - samples: threadx hello: fix printing errors.
  - samples: drivers: ad12/adc16: fix initialization sequence for trigger source, trigger mux and trigger target config
  - samples: lwip: lwip_ptp: fix netSend error before link-up
  - samples: dma: fix dma uart init position
  - samples: drivers:spi:master_trans_large_amound_of_data Fix logic error if SPI support 4GB transfer size
  - samples: sdxc: add boundary protection for last 1024 blocks test
  - samples: lwip: common: multiple: fix typo of enet_update_dhcp_state()
  - samples: lwip: common: single/multiple: fix timeout passed into sys_arch_mbox_fetch()
  - samples: e2prom: bugfix: base read fail if run perf firstly .refs:hpm_sdk-#1499
  - samples: modbus: tcp:  use volatile to prevent the compiler from optimizing out key variables
  - samples: modbus: rtu: fixed failed to run after turning on optimization issue.
  - samples: power_mode_switch: hpm68xx: fix ddr access issue for wait/stop mode
  - samples: cherryrb: fixed stack overflow issue
  - samples: lwip: lwip_tcpecho_multi_ports_ports_rtthread-nano: fix failure to run
  - sample: jpeg: jpeg_encode: fix that udisk can't be mounted when first capture.
  - cmake: correct board search path symbol for core1.
  - cmake: gcc: fix system include path.
  - cmake: fix sdk_link_libraries failed to link std lib.
  - cmake: EXTAR_LD_FLAGS to be added as ld options.
  - docs: lwip_ptp: v1: salve: fix format error
  - docs: samples: ppor: change title from sysctl to ppor
  - docs: hpm6750evk2: fix table display error

## [1.4.0] - 2023-12-29:

Main changes since 1.3.0

Tested Segger Embedded Studio Version: 7.32

### Changed:
  - soc: hpm5301: add hpm5301
  - soc: hpm6880: add hpm6880
  - soc: HPM6750: pcfg: update dcdc dcm mode config
  - soc: clock driver: update clock_set_source_divider() and clock_get_source()
  - boards: add hpm5301evklite
  - boards: add hpm6800evk
  - boards: update clock_set_source_divider() to use clk_src_t type param
  - boards: hpm6750evkmini: use the same uart port as core1 for some samples.
  - drivers: dao: update driver support new feature on hpm6800
  - drivers: adc16: update comment about cal_avg_cfg in calibration
  - drivers: qeiv2: change adc trigmux name x to 0 and y to 1
  - drivers: femc: add overflow protect to time config
  - drivers: mcan Enlarge the range of CAN_EVENT_ERROR.
  - components: serial_nor: add subdirectory in cmakelists
  - middleware: cherryusb: update to v0.10.2
  - middleware: cherryusb: rename host and device isr
  - middleware: FreeRTOS: xPortIsInsideInterrupt() using CSR_MSCRATCH
  - middleware:hpm_sdmmc Enhanced all speed modes support for SD and eMMC.
  - middleware: usbx: device: support chain transfer
  - samples: cherryusb: host: rndis: integrate dhcp thread into ping thread for host rndis ping and iperf sample
  - samples: adc: temp: add isr for temp out of thresholds
  - samples: drivers: acmp: optimization for comparing input voltage
  - samples: lwip: add DHCP macro definition in CMakeLists.txt
  - samples: lwip_ptp: enable DHCP feature in PTP samples
  - samples: drivers: qeiv2: update API for adc-qeiv2 pin initialization
  - samples: bldc_foc: change adc buffer size from 40 words to 48 words
  - samples: remove explicitly c++ standard setting.
  - samples: driver: cam: set default cmake build type
  - samples: lwip: update to Class C static IP adress
  - samples: tinyuf2: remove unnecessary cache ops.
  - samples: lwip: lwip_tcpecho_freertos: optimization for API call in a thread-safe way
  - samples: lwip: lwip_ptp: v1: slave: update static ip
  - samples: lwip: optimize DHCP enable logic
  - samples: lwip: opts: adjust the allocation strategy of memory pool
  - samples: lwip: lwip_iperf: adjust MEM_SIZE for saving memory consumption
  - samples: lwip: lwip_tcpecho_multi_ports: update the second IP with C class
  - samples: enet: optimization for PHY selections
  - samples: dma: update uart rx circle transfer buffer size
  - samples: drivers: sdxc/emmc Correct doc for emmc sample.
  - cmake: sdk_link_libraries link libraries for supported tools.
  - cmake: add project name for hpm_sdk sub directory.
  - cmake: decouple CMAKE_BUILD_TYPE and linker script.
  - cmake: ses: remove -Ox from gcc option list.
  - cmake: set default c++ standard to c++11.
  - Update CONFIG_HAS_xxx to HPMSOC_HAS_xxx.
  - segger: enable all warnings.
  - segger: release: release optimization level use cmakelist config
  - scripts: ses: set intermediate dir in project file.
  - docs: remove quick start guide from top level readme
  - docs: change doc structure.

### Added:
  - soc: HPM5361: add trgm filter shift length feature
  - soc & drivers: hpm5300: add DMAMUX_SOC_WRITEONLY and TRGM_SOC_HAS_DMAMUX_EN features
  - drivers: lcb: add lcb driver.
  - drivers: sdxc add more APIs for timing and power control.
  - drivers: mipi_csi: add mipi csi.
  - drivers: cam: add cam_stop_safely API
  - components: usb: device: add dtd chain transfer
  - components: panel: enable panel component.
  - components: camera: ov5640: add mipi interface.
  - middleware: rtthread-nano: add v3.1.5
  - middleware: rtthread-nano: add FPU support.
  - middleware: tinyusb: device: update to support chain transfer
  - middleware: cherryusb: device: update to support chain transfer
  - middleware: vglite: add 4.0.49.
  - middleware: cherryusb: add USB_OSAL_WAITING_FOREVER for sem and mq use
  - middleware: add hpm_mcl_v2
  - middleware: lwip: add ptpd v1 & v2
  - middleware: cmsis_os2: add source files.
  - samples: mcl: add step motor.
  - samples: lwip: lwip_ptp: v2: support IEEE1588 V2
  - samples: cherryusb: add audio_v2_mic_speaker_rtthread sample
  - samples: cherryusb: host: add hid and msc rtthread samples
  - samples: cherryusb: host: usbnet: add support ec20 module sample.
  - samples: cmsis_os2: add blinky sample.
  - samples: driver: mipi_csi: add mipi_csi.
  - samples: mcan Support MCAN4-7 loopback testing.
  - cmake: support custom output file name.

### Fixed:
  - soc: fix cache maintenance at startup
  - soc: hpm53xx Correct exip API tree offset.
  - soc: toolchain: missing .fast.* in gnu ld linker script.
  - soc: fix tbss and tdata section not initialized.
  - soc: sysctl: sysctl_enable_group_resource() should be check LOC_BUSY
  - soc: hpm5300 Correct Cache size and Cacheline size.
  - boards: hpm6750evkmini Fix the issue that eMMC is still 3.3V even 1.8V is selected.
  - boards: hpm5301evklite correct jlink script device number.
  - components: camera: power_up is enable by default for ov5640/ov7725.
  - docs: samples: drivers: add numberic index.
  - drivers/soc: fix build warning
  - drivers: i2c: add slave device response judgment for master read/write APIs
  - drivers: opamp: fix opamp vssa connect error.
  - drivers: pllv2: fix pllctlv2_pll_is_stable() API
  - drivers: qeiv2: fix invalid argument check
  - drivers: dac: fix the upper limit value setting for DAC_OUTPUT
  - drivers: jpeg: fix pixel format index for out buffer.
  - drivers: uart: fix not support oversample 32 for rx idle detection on hpm5300
  - middleware:ftafs Fix SD card init crash.
  - middleware: mcl: fix path plan error.
  - middleware: hpm_sdmmc Fix the issue that IO initialization work unstable on HPM6300.
  - middleware: hpm_sdmmc Fix voltage switch setting issue for SD and eMMC.
  - middleware: hpm_sdmmc Fix the PWR and VSEL IO initiaization issue. refs:hpm-sdk-#863
  - samples: sei: fix nikon sample crc calc error.
  - samples: cherryusb: msc device: add pre-format fat12 file system in u disk
  - samples: adcx: replace const with a macro for ADC sample cycle
  - samples: tinyusb:fix the usb host pin init.
  - samples: motor_ctrl: bldc_littlevgl_foc: program crash.
  - samples: qeiv2: uvw: fix uninitialized pointer usage
  - samples: cherryusb: fix semaphore give in isr
  - samples: drivers: Fix the issue that can error example may block.
  - samples: uart_irq: fix unable to limit receive large than buffer size.
  - samples: drivers:sdxc:emmc remove infinite loop for emmc initialization.
  - samples: drivers: i2s: fix tx underflow during tx start
  - samples: lwip: lwip_tcpecho_multiple_ports: fix no echo data when receiving large amounts of data
  - samples: mcl: pwm duty set error.
  - samples: cherryusb: host: usbnet: fixed when performing a stress test with a large amount of iperf data, will send fai.
  - samples: cherryusb: audio_v2_mic_speaker_rtthread: fix mic no voice problem
  - samples: jpeg_decode: add delay after usb pins init for waiting power stable
  - samples: hfi: hpm6750evk2: fix the motor shake.
  - cmake: segger: remove workstation specific path info.
  - cmake/soc: fix heap/stack size setting for andes toolchain.
  - cmake: ses: correct device name for core1.

## [1.3.0] - 2023-09-28:

Main changes since 1.2.0

Tested Segger Embedded Studio Version: 7.32

### Changed:
  - boards: hpm6200evk/hpm6300evk: delete unwanted clock_ahb div set
  - boards: hpm6750xxx: switch dcdc work mode to dcm mode
  - docs: sdk: boards: hpm6750evk2: add pps pin information
  - component: wm8960: support sysclk pre-divider
  - components: serial_nor: add serial nor flash.
  - openocd: probes: ft2232: remove trst and srst config.
  - ip: cam：remove 0x5c MAX_WN_CYCLE register in regs.h
  - driver: cam: remove invalid register
  - drivers: i2s: update API
  - drivers: adc: adc12/adc16: rename adc16_get_busywait to adc16_is_nonblocking_mode
  - drivers: adc: adc12/adc16: update adcx_init API
  - drivers: pllctrl: update pllctrl drivers
  - drivers: spi : add spi enable and disable datamerge
  - drivers: spi : add spi_set_address_len API
  - drivers: pdgo Add missing APIs
  - drivers: uart: update uart rx idle flag process and fifo control
  - soc: delete_unnecessary_ppor_reset_bit_field
  - soc: hpm_gpiom_soc_drv.h: delete gpiom_gpio_t soc name
  - soc: delete DMA_SOC_BUS_NUM Macro
  - soc: pcfg: update pcfg SCG_CTRL related drivers
  - soc: hpm6750:startup Enable LMM1 clock before access to LMM1
  - soc: gcc ld: add memory used size check
  - middleware: cherryusb: update to v0.10.1
  - middleware: guix: demo adapts to 800 * 480 resolution
  - middleware: guix: improve demo display performance
  - middleware: cherryusb: update for midi descriptor define
  - middleware: cherryusb: update for midi
  - samples: drivers: adc: adc12/adc16: speed optimization for oneshot reading
  - samples: drivers: adc: adc12/adc16： update API call used for nonblocking judgement
  - samples: drivers: adc: adc12/adc16: update API call related to blocking setting in oneshot mode
  - samples: drivers: adc: adc12/adc16: reduce the input parameters of init_trigger_target function
  - samples: drivers: adc: adc12/adc16: update init_oneshot_config
  - samples: drivers: adc: adc12/adc16: optimization for clearing interrupt status
  - samples: drivers: pwm: Add pwm clock jitter demo
  - samples: cherryusb: hid host: separate mouse and keyboard urb
  - samples: hrpwm: Add demo for updating hrpwm frequency
  - samples: drivers:mcan Add CAN error handling and refined logic.
  - samples: mbx: move dualcore mbx sample to multicore folder
  - samples: cherryusb: update for v0.10.1
  - samples: motor_ctrl: bldc smc: gcc toolcahin enable fpu.
  - samples: lwip: lwip_tcpecho_freertos: optimization in a thread-safety way
  - samples: qeo: update qeo abz frequency configuration
  - samples: gptmr: add sent_signal sample.
  - samples: lwip: lwip_ptp: remove the dependency on pps0 pinout
  - samples: dma_manager: update for use dma_mgr_setup_channel()
  - samples: drivers: gptmr: pwm_measure: support use dma
  - samples: lwip: lwip_httpsrv/lwip_https_server: rename project names for uniform naming
  - samples: multicore: lvgl_coremark: delete custom linker files and using andes toolchain
  - samples: flash_algo: update device size.
  - samples: cherryusb: host: hid: use ep_mps to fill urb

### Added:
  - cmake: ses: support specify custom openocd board cfg file.
  - cmake: support specifying minimum sdk version in app.yaml.
  - boards: add hpm5300evk
  - components: eeprom_emulation: add hpm nor-flash support
  - components: eeprom_emulation: add eeprom emulation component
  - soc: add APIs for get or set sysctl resource status
  - drivers: common: add HPM_ALIGN_DOWN and HPM_ALIGN_UP define
  - drivers: adc: ad12/adc16: add adcx_set_blocking_read/adcx_set_nonblocking_read
  - drivers: add encoder position driver
  - drivers: lcdc: add enable/disable background in alpha blender.
  - drivers: usb: add api to set dp/dm pin pulldown resistance
  - drivers: spi: add spi_get_rx_fifo_valid_data_size and  spi_get_tx_fifo_valid_data_size APIs
  - drivers: spi: add directIO function APIs
  - drivers: enet: add rx resume API
  - drivers: adc16: add resolution setting in adc16_get_default_config API
  - drivers:rtc Add rtc_get_timeval API.
  - drivers:mcan Add mcan_transmit_via_txfifo_nonblocking API.
  - drivers: usb: add usb_hcd_set_power_ctrl_polarity() API
  - drivers: plb: add plb drivers
  - drivers: linv2: add linv2 driver
  - drivers: sei: add sei driver
  - drivers: dmav2: add dmav2 driver
  - drivers: qeo: add qeo driver
  - drivers: qeiv2: add qeiv2 driver
  - drivers: mmc: add mmc driver
  - drivers: rdc: add rdc driver
  - drivers: add opamp driver
  - drivers: bgpr: add related APIs for bgpr
  - middleware: FreeRTOS: add xPortIsInsideInterrupt() API
  - middleware: threadx: add definition automatically when enable traceX
  - middleware: freeRTOS: add use gptmr to generate interrupt
  - middleware: hpm_mcl: add hfi
  - samples: drivers: adc: adc12/adc16: add wdog feature
  - samples: add opamp demo
  - samples: cherryusb: rndis: host: add iperf sample.
  - samples: cherryusb: rndis: host: add ping sample.
  - samples: drivers: adc: adc12/adc16: add hw trigger configuration in sequence mode
  - samples: eeprom_emulation: add eeprom emulation perf test sample
  - samples: eeprom_emulation: add base api demo
  - samples: tracex: add demo for traceX usage
  - samples: cherryusb: add audio_v1_mic_speaker_midi sample
  - samples: cherryusb: add midi device sample
  - samples: drivers: sei: add sei samples
  - samples: drivers: plb: add plb demo
  - samples: drivers: mmc: add mmc demo
  - samples: drivers: qeiv2: add qeiv2 demo
  - samples: drivers: qeo: add qeo demo
  - samples: drivers: dmav2: add dmav2 demo
  - samples: drivers: linv2: add linv2 demo
  - samples: drivers: rdc: add rdc demo
  - samples: drivers: pdgo Add PDGO samples
  - samples: drivers: ewdg Add EWDG sample
  - samples: lwip: add a lwip_tcpecho_multi_ports sample
  - samples: motor_ctrl: add hfi

### Fixed:
  - cmake: fix segger default heap and stack size config
  - cmake: fix add_subdirectory_ifdef arg processing.
  - doc: boards: hpm6300evk: fix acmp pin info.
  - boards: hpm6750evkmini: fix board_init_rgb_pwm_pins() problem
  - boards: hpm6200evk: fix BOARD_G_GPIO_CTRL defined in wrong position
  - openocd: hpm6750-dual-core: fix expression warning.
  - component: wm8960: fix clock tolerance process
  - soc: toolchains: segger: block tls add with fixed order
  - soc: toolchain: gcc: fix Thread-Local Storage problem
  - soc: segger linker files: fix heap and ctors initialize
  - soc: fix interrupt complete operation
  - soc: pcfg: fix DCDC_PROT[OVERLOAD_LP] bit access
  - soc: ip: adc12: fix ADC12 threshold setting
  - soc: HPM6750: fix clock setting and frequency obatining error
  - soc: HPM6360: fix clock source definitions for ADC16
  - soc: HPM6280: fix clock source definitions for ADC16
  - soc: HPM6360: fix obtaining clock source error for DAC
  - soc: HPM6280: fix obtaining clock source for DAC
  - drivers: adc16: add bus mode enable control APIs
  - drivers: adc16: fix ahb setting
  - drivers: cam: clear the status of CAM should not affect other bits
  - drivers: trgmux: filter function can't work.
  - drivers: src: adc16: fix end count setting
  - drivers: adc/dac: fix interrupt status clearing
  - drivers: adc16: fix DMA access format
  - drivers: sdm: fix over sample rate and signal sync problem
  - drivers: pwm: fix pwm xcmp enable setting
  - drivers: pwm: correct external fault polarity setting.
  - drivers: pwm: add update hrpwm reload shadow api
  - drivers: spi: fix  can't  set change data_bits use  spi_set_data_bits API
  - drivers: ptpc: fix ptpc_clear_irq_status API issue.
  - drivers: i2c: fix i2c_clear_status API issue.
  - drivers: gptmr: fix gptmr_clear_status API issue.
  - middleware: erpc: rpmsg_lite: fix platform_in_isr() error
  - middleware:hpm_sdmmc Fix the issue sdsc cards are not supported.
  - middleware: threadx: fix D extend asm code error
  - samples: usbx: add multi devices and hot plug support
  - samples: motor_ctrl: fix adc trig invalidate.
  - samples: lwip: fix TCP reception error when size over 2KB
  - samples: lwip: DHCP failure in lwip_tcpecho_freertos
  - samples: drivers: adc: adc12: fix the status flag judgement in isr process
  - samples: rgb_led: fix cmp shadow error
  - samples: gptmr: pwm_generate: fix inaccurate duty in high frequency
  - samples: lwip: low_level_input: fix the network storm issue
  - samples: timer_basic: fix inconsistent use of defines
  - samples: drivers: adc: adc16: fix the bit of interrupt status clearing in sequence mode
  - samples: power_mode_switch: trigger system lowpower for standby mode
  - samples: touch_panel: fix error data when 5 fingers touch screen at same time.
  - samples: jpeg: jpeg_decode: fixed lcd display is tore when decoder is running
  - samples: jpeg: jpeg_decode: malloc out of memory on gcc
  - samples: drivers:can Fix abnormal behavior on can error sample.
  - samples: segger_rtt: call board_init_clock.
  - samples: drivers: acmp: fix one toggle value but multi toggle pulses
  - samples: lwip_tcpecho_freerstos: fix code stuck with gcc toolchain
  - samples: jpeg: fix JPEG_USE_UDISK compile error
  - samples: bldc_foc: fix input value range.
  - samples: cherryusb: rndis: udp_echo: fix echo extra char
  - samples: usbx: fix global var placement
  - samples: power_mode_switch: set to preset_1 after exiting wait mode.
  - samples: pla: fix pla first pulse abnormal.
  - samples: plb: fix the first pulse is abnormal.

## [1.2.0] - 2023-06-30:

Main changes since 1.1.0

Tested Segger Embedded Studio Version: 7.22

### Changed:
  - boards: hpm6750evk*: decrease core frequency from 816MHz to 648MHz
  - openocd: soc: hpm6280: simplify dual core release core1 approach.
  - cmake: segger: configure optimization level according to gcc level.
  - soc: dmamux: move it from ip to soc
  - soc: interrupt: adjust irq api. #659
  - soc: improve svd file
  - soc: hpm_soc_feature.h: remove ADC16_SOC_TEMP_CH_EN for some specified Socs
  - components: enet_phy: update the common enet phy header file
  - components: sgtl5000 and wm8960: update clock setting
  - drivers: uart: update uart driver
  - drivers: pdma: improve quality of scale
  - drivers: adc: adjust wait_dis type in adc16_config_t struct
  - drivers: enet: update rmii reference clock setting API for ENET
  - utils: hpm_swap: escape for andes toolchain.
  - middleware: hpm_sdmmc: add spi sdcard
  - middleware: motor_ctrl: change the file organization
  - middleware: motor_ctrl: remove slide control content from foc
  - middleware: lvgl: upgrade to v8.3.5 (with pdma)
  - middleware: lvgl: Add direct mode
  - middleware: cherryusb: update version to v0.8.0
  - samples: I2S_DMA and I2S Interrupt: update sample behavior
  - samples: cherryusb: hid host: separate mouse and keyboard urb
  - samples: cherryusb: increase max interface and endpoint number Configuration
  - samples: cherryusb: uac2: move setting sampling freq to isr
  - samples: cherryusb: audio: update descriptor for identification
  - samples: audio_codec: set codec voice to max and increase irq priority
  - samples: multicore: lvgl_coremark: delete custom linker files and using andes toolchain
  - samples: lvgl_audio_player: update CMakeLists.txt to using noncacheable framebuffer
  - samples: spi: clean the redundant code
  - samples: i2c: improve the processing of FIFO in ISR
  - samples: drivers: uart: update uart_rx_timeout demo
  - samples: drivers: gptmr: split sample into multiple function samples
  - samples: drivers: adc: optimization for all macro definitions in applications
  - samples: drivers: adc: update struct member names
  - samples: update clock divider setting for ADC-related examples
  - samples: cherryusb: move vid/pid etc definition to usb_config.h
  - samples: cherryusb: device: update vid to hpmicro 0x34B7
  - samples: cherryusb: change API update for v0.8
  - samples: cherryusb: device: audiov1: change to full speed mode
  - samples: tinyusb: uac2: update descriptor and sample
  - samples: lwip: disable mmc interrupt settings
  - samples: lwip: lwip_ptp: v1: sync precision improvement

### Added:
  - cmake: toolchains: add isa spec 20191213 support.
  - cmake: ses: support set ses raw option in CMakeLists.txt
  - cmake: add option to specify board search path.
  - cmake: generate compile_commands.json file
  - soc: hpm_soc_feature: add a common macro for ADC12 and ADC16
  - drivers: cam: add new APIs
  - drivers: spi: add new APIs
  - drivers: i2c: add new APIs
  - drivers: I2S: add i2s_check_data_line_status API
  - drivers: dma: add dma_set_transfer_src_width_byte_size() API
  - drivers: gptmr: add output capture APIs
  - drivers: gptmr: add gptmr_channel_get_dma_request_event api
  - drivers: adc: add adc16_trigger_pmt_by_sw API
  - drivers: enet: add some APIs related to interrupt settings
  - drivers: enet: add a new API for transmisstion
  - drivers: usb: add macro CONFIG_USB_DEVICE_FS to set full speed mode
  - components: uart_lin: add uart lin component
  - components: add smbus
  - components: add sccb
  - middleware: lvgl: add macro HPM_LVGL_FRAMEBUFFER_NONCACHEABLE
  - middleware: add AzureRTOS (threadx/usbx/netx/guix)
  - middleware: hpm_mcl: sensorless over-zero
  - middleware: add smc
  - middleware: hpm_sdmmc Add eMMC support
  - middleware: hpm_math: add bit conversion function
  - middleware: add uC/OS-III
  - middleware: cherryusb: audio: add feedback descriptor
  - middleware: cherryusb: audio: add param to set endpoint bmAttributes
  - middleware: microros: add microros foxy sources
  - samples: drivers: spi: add spi_sdcard_fatfs sample
  - samples: drivers: spi: add sd sample
  - samples: add uart_lin
  - samples: motor_ctrl: sensorless: over-zero demo
  - samples: cherryusb: add rndis host dhcp samples
  - samples: drivers: sdxc :emmc Added eMMC sample
  - samples: drivers: adc12: update irq pattern for sequence usage
  - samples: drivers: pla: add pla tamagawa demo
  - samples: drivers: gptmr: add counter_sync sample
  - samples: drivers: gptmr: add timer_basic sample
  - samples: drivers: gptmr: add t_shape_accel_decel sample
  - samples: drivers: dma/gptmr: add trigger dma transfer using gptmr event sample
  - samples: drivers: uart add uart_rx_timeout sample
  - samples: i2c: add smbus samples
  - samples: lwip: lwip_tcpecho_freertos: add self-adaption
  - samples: cherryusb: hid host: move usbh_submit_urb() out of condition
  - samples: cherryusb: add composite freertos sample
  - samples: cherryusb: add rndis freertos sample
  - samples: cherryusb: add msc freertos sample
  - samples: cherryusb: add audio v2 mic speaker freertos sample
  - samples: cherryusb: add hid mouse freertos sample
  - samples: cherryusb: add hid keyboard freertos sample
  - samples: cherryusb: add cdc acm freertos sample
  - samples: cherryusb: add rndis tcp server sample
  - samples: cherryusb: add rndis device udp_echo sample
  - samples: cherryusb: add rndis device http_server sample
  - samples: cherryusb: device: add audio_v2_speaker_sync sample
  - samples: add several uC/OS-III samples
  - samples: smc: add smc demo
  - samples: microros: add subscriber, sevice and publisher
  - samples: uC/OS-III: mutex

### Fixed:
  - cmake: ses: fix __SEGGER_RTL_vfprintf issue with nds tool in SES 7.20.
  - soc: hpm6280: Modify the number of PWM cmps.
  - soc: reset.c: __dso_handle needs to be declared for nds toolchain.
  - soc: fix max buffer length in sequence mode for ADC
  - soc: HPM6750: enet soc drv: fix set clock delay settings
  - soc:hpm6360:sdxc Correct clock divider settting issue
  - drivers: pla: missing Union Field
  - drivers: spi: fix the problem of CMD and ADDR configuration order
  - drivers: i2c: fix clock frequency error rate problem
  - drivers: i2c: clear CMPL bit in API to avoid blocking the trans
  - drivers: i2c: fix i2c slave device read and write fail
  - drivers: i2c: fix read data unexpected multi transition.
  - drivers: i2c: fix w1c clear status error
  - driver: usb: fix w1c clear flag error
  - drivers: gptmr: fix dma request enum definition
  - drivers: adc: fix logics for judging the validity of arguments
  - component: uart_lin: fix break signal problem
  - middleware: cherryusb: fix buffer size error
  - middleware: lvgl: fix fbbuffer option
  - samples: gptmr: fix pwm_measure sample compile waring
  - samples: jpeg: fix interchange format of exif support
  - samples: jpeg: fix jpeg decode
  - samples: drivers: spi: fix the problem of CMD and ADDR configuration order
  - samples: drivers: mcan: can_fd loopback test setting is incorrect
  - samples: cherryusb: http_server_freertos: fix printf content error
  - samples: cherryusb: audio: change endpoint attributes for support MACBOOK
  - samples: tinyusb: msc: increase block numbers for windows format
  - samples: lwip: lwip_httpsrv: fix reload or refresh error

## [1.1.0] - 2023-03-31:

Main changes since 1.0.0

Tested Segger Embedded Studio Version: 7.10

### Changed:
  - docs: add new docs for rtd project.
  - soc: ip: enet: update the enet register file
  - soc: ip: adc16: update the adc16 header file
  - soc: hpm_romapi - Add APIs for configuring remapping, exip regions
  - drivers: enet: improve APIs related to PPS
  - drivers: adc: change adc bus blocking interface
  - drivers: adc: optimize getting oneshot result
  - drivers: src: update the default config for ADC12&ADC16
  - boards: rename board-level APIs related to enet
  - components: enet_phy: rtl8201: update the register file
  - middleware: hpm_math: update dsp version
  - middleware: erpc: update to v1.10.0
  - samples: uart: rename uart_dma_rx_idle to uart_software_rx_idle
  - samples: uart: add hardware rx idle detection sample
  - samples: multicore: erpc: core1 add sdk_compile_options(-O1)
  - samples: drivers: gptmr: update sample output.
  - samples: lwip: common: arch: ethernetif: update a calling function name
  - samples:drivers: adc: optimize oneshot handler

### Added:
  - arch: add FPU related APIs
  - soc/board: add HPM6280 support
  - soc: HPM6750: acmp: add ACMP section
  - components: add mt9m114 support
  - drivers: add raw8 pixel format support
  - drivers: csr - Implement CSR driver
  - drivers: adc: adc16: support resolution setting
  - drivers/samples: add SDM/PLA/CRC/MCAN
  - drivers: I2C: add new API
  - drivers: adc: adc16: support resolution setting
  - drivers: enet: add enet control config for transmission
  - middleware: cherryusb: audio: update class driver and demo template
  - middleware: add mbedtls lib files with SDP acceleration
  - freeRTOS: add support for static allocation
  - samples: drivers: enet: add a pps demo
  - samples: cherryusb: add audio samples
  - samples: add the resolution parameter in all demos with ADC16
  - samples: add rfft demo
  - sampels: i2c: add interrupt b2b samples
  - samples: drivers: i2s: add an i2s_master demo
  - samples: drivers: i2s: add an i2s_slave demo
  - samples : rom_api : add sw_gm_api filter
  - samples: add the resolution parameter in all demos with ADC16

### Fixed:
  - openocd: hpm6300evk: update sdram initialization.
  - drivers: trgmux: trigmux edge filter setting error
  - drivers: enet: fix register access error
  - drivers: adc16: fix the config error of ADC16_CONFIG1
  - drivers: i2c: fix i2c timing configuration
  - drivers: SPI: fix SPI status API
  - drivers: fix gptmr cmp value don't minus one
  - drivers: mcan: correct the mcan ext_id filter issue
  - drivers: I2C: fix issue in i2c_master_address_read API
  - drivers: Self_ACK cannot be set in CAN driver
  - drivers: rtc rtc_config_alarm always return error code
  - cmake: correct source code compilation
  - soc: toolchain: gcc: initialize heap for SES
  - soc: gcc linker files: add NOLOAD keyword to noncacheable.bss section
  - soc: HPM6360: gcc: ld: correct noncacheable region name.
  - drivers: qei: Fix speed display always zero
  - middleware: freertos: disable global irq before vTaskStartScheduler
  - freeRTOS: fix trap when enable float feature
  - freeRTOS: fix tick lost
  - freeRTOS: fix segger project build warning
  - samples: drivers: i2s: fix CFGR config
  - samples: drivers: fix acmp toggle error
  - samples: lwip: fix the DHCP issue
  - samples: uart: fix irq_id judgment
  - samples: fix the order of uart pin configuration and clock configuration
  - samples: update spi dma sample
  - samples: drivers: sysctl: correct reset enable approach.
  - samples: fix dma_general_transfer sample memory out of bounds
  - samples: drivers: wdog: Fix logic issue on finding the nearest interrupt interval
  - sample: audio_codec: decoder_wav: add '\0' to fatfs path

## [1.00.0] - 2022-12-31:

Main changes since 0.14.0

Tested Segger Embedded Studio Version: 7.10

### Changed:
  - boards: add version info in banner.
  - board: lcdc: move panel para to board
  - components: spi component to support to transfer different width of data in dma handshake mode
  - drivers: rename dram to femc
  - middleware: cherryusb update to v0.7.0
  - middleware: erpc: update for support rtos
  - middleware: hpm_mcl: update api naming
  - samples: erpc: rename erpc_matrix_multiply_rpmsg to erpc_matrix_multiply_rpmsg_bm
  - samples: erpc: reorganize erpc_matrix_multiply_rpmsg samples
  - samples: erpc: move samples folder to erpc_matrix_multiply_rpmsg
  - samples: update i2c/spi dma channel and dmamux channel definition
  - ses: project template: use demo.* as output file naming.
  - soc: HPM6750: toolchains: update linker files
  - soc: HPM6360: toolchains: update linker files

### Added:
  - arch: riscv: add read_clear_csr() API
  - component: add wm8960 support
  - component: add usb device iso transfer support
  - drivers: hpm_common: include hpm_sdk_version.h.
  - drivers: common: add NOP and WFI.
  - drivers: uart: add api to recv/send byte directly.
  - soc: HPM6750 linker files: rename rpmsg_sh_mem to sh_mem
  - cmake: add sdk version header file generation.
  - middleware: tinyusb: add audio class
  - middleware: hpm_math: add NN library
  - samples: erpc: add erpc_two_way_rpc_rpmsg_rtos sample
  - samples: erpc: add erpc_matrix_multiply_rpmsg_rtos sample
  - samples: add power mode switch demo. #282
  - samples: drivers: adc: add a temperature measurement demo
  - samples: drviers: femc: add sram sample
  - samples: lwip demo for FreeRTOS
  - samples: lwip demo of interrupt usage
  - samples: tinyusb: add uac2 demo
  - samples: tflm: add face detection demo
  - samples: tflm: add MLPerf Tiny benchmark demo
  - samples: lwip: common: feature: add a LPI interrupt process

### Fixed:
  - drivers:interrupt: Fix FPU context crashing in nested irq case
  - drivers: src: adc: fix adc result in period mode
  - segger: update app directory structure in SES.
  - soc: disable irq during cache maintenance
  - middleware: lvgl: fps calculation to No.
  - samples: get off level based on board api.
  - samples: multicore: hello: core1 rgb led does not change correctly.

## [0.14.0] - 2022-10-31:

Main changes since 0.13.0

Tested Segger Embedded Studio Version: 6.34a

### Changed:
  - drivers: inc: update adc driver
  - drivers: gptmr: update reload value
  - components: enet_phy: optimize APIs
  - components: enet_phy: dp83867: rename functions
  - components: conditionally add debug_console
  - middleware: add cherryusb (0.6.0)
  - middleware: littlevgl: update to v8.3.1
  - middleware: fatfs: file name encoding in utf-8
  - middleware: freertos: support nested irq handling
  - middleware: hpm_mcl: Optimized motor control foc speed
  - samples: drivers: dma src move to dma_general_transfer folder
  - samples: lwip: update all static addresses and all gateway addresses
  - samples: lwip: lwip_iperf: optimize the interactive log
  - samples: tinyusb: device: hid_generic_inout: optimize the python script
  - openocd: HPM6750A1 silicon in hpm6750-dual-core.cfg
  - header file: update the enet/conctl register files
  - header file: Update TRGMUX0 pin input source definition
  - header file: update the ADC12 header files
  - scripts: ses: organize file in ses according to real path.
  - cmake: split gcc and ses source
  - board: bump HPM6750 DCDC voltage to 1200mv

### Fixed:
  - drivers: pdma: fix scale api issue
  - drivers: i2c: update DATACNT processing
  - drivers: i2s: fix i2s interrupt workaround in i2s_init
  - drivers: pwm: fix pwm capture function error
  - drivers: pwm: fix pwm capture configuration error
  - drivers: clock: fix error in clock_set_xxx_source
  - drivers: wdg: timeout calculation error
  - drivers: trgm_drv: bugfix: include error
  - drivers: romapi: call fencei after flash erase/write operation
  - drivers: watchdog: overflow
  - drivers: usb: host controller initialization issue
  - drivers: i2s: i2s_enable() issue fix
  - middleware: tinyusb: src: class: fix the HID report desc macro
  - samples: drivers: adc: optimize all ADC demos
  - samples: drivers: adc: fix all channel initializations  without a default value
  - samples: motor_ctrl: hardware trigger api usage error
  - samples: audio_codec: update clock process for 44100 sample rate
  - samples: lcdc: boundary pixel is incorrenct
  - samples: multicore: BOOT_HEADER was missing in multicore core0 example
  - samples: drivers: i2s: correct audio data if depth < 32bit.
  - samples: hpm_math: fft_perf_test: Fix error printing information
  - samples: fix pdm2dao noise problem
  - samples: lwip: fix the enet throughput degradation
  - soc: correct address overlapping SES XIP linker file
  - soc: correct the interrupt context switch issue
  - soc: fix Lack of interrupt claim for swi
  - boards: fix some rmii reference clock APIs

### Added:
  - boards: add hpm6750evk2 support
  - soc: add initfini.c
  - drivers: lcdc: add y8 support
  - drivers: spi: update data_length processing
  - drivers: spi:  add api to enable/disable spi dma request
  - drivers: pmp: Add pmp_config_entry API
  - components: add ipc_event_mgr
  - component: spi: add cache maintain
  - middleware: add erpc
  - samples: lwip: support self-adaptive port speed and duplex mode
  - samples: jpeg: support grayscale
  - samples: drivers: spi: use api to get data length
  - samples: drivers: spi:  add interrupt b2b sample
  - samples: drivers: mbx: add singlecore samples
  - samples: drivers: add dma circle transfer
  - samples: drivers: pwm: add pwm capture demo
  - samples: provide OTP API demo
  - samples: add cherryusb hid/msc/cdc samples
  - samples: add Guomi API example
  - samples: add erpc sample
  - samples: add segger_rtt

## [0.13.0] - 2022-07-31:

Main changes since 0.12.1

### Changed:
  - drivers: adc: fix sequence and preemption mode
  - drivers: usb: automatically change transceiver type in host mode
  - drivers: pwm: modify the interface for setting the pwm shadow register trigger function
  - drivers: sdxc: driver improvement
  - samples: jpeg demo update
  - samples: motor_ctrl: Optimize motor control performance
  - samples: motor_ctrl: Modify the pwm update method to be hardware triggered
  - samples: audio_codec: wav: Modify the interface
  - samples: audio_codec: add dao support
  - samples: tinyusb: update all USB project names
  - samples: adc: place DMA buffer in noncacheable
  - components: usb: update two struct definitions for the hcd_data_t and the dcd_data_t
  - middleware: littlevgl: update double buffer refresh approach.
  - middleware: fatfs: enable exfat format
  - middleware: fatfs: change 'USB' to lowercase
  - middleware: hpm_math: remove cache operations from the ffa interface
  - scripts: ses: update file path using $(HPM_SDK_BASE)

### Fixed:
  - drivers: gpiom: fix spelling errors in API names
  - drivers: enet: fix ptp time offset update
  - drivers: cam: fix store mode configuration
  - drivers: can: Fix the issue can timestamp cannot be enabled
  - drivers: gpio: incorrect return type gpio_get_port_interrupt_flags.
  - middleware: audio_codec: decoder_wav: fix wav codec problem
  - middleware: tinyusb: fix the alignment of _hcd_data
  - soc: driver: clock: i2s get clock error
  - soc: hpm_misc.h: fix incorrect system address mapping.
  - soc: SVD files: fix SDP peripheral reset value problem
  - soc: disable vector mode explicitly.
  - boards: correct device name in ses project
  - board: correct the printf format for frequency and register base
  - python: fix ses project generation on windows
  - samples: adc: fix not working in sequence mode and preemption mode
  - ses: set obj path for common configuration.
  - cmake: ses: put app source into separate category in ses.

### Added:
  - components: enet_phy: add rtl8211 driver
  - components: hpm_spi: add initial SPI component
  - components: add DMA Manager
  - drivers: cam: add new API
  - drivers: uart: add uart_set_baudrate API
  - drivers: spi: update dma transfer API
  - samples: tinyusb: host: add a hid demo
  - samples: drivers: spi: add master_trans_large_amount_of_data example
  - samples: decoder_wav: Add support for different bit rates and bits
  - samples: drivers: audio: automatic acquisition of i2s clock frequency
  - middleware: tinyusb: update portable file for USB host

## [0.12.1] - 2022-07-01:

Main changes since 0.12.0

### Fixed:
  - update lwipopt.h for updated enet driver

## [0.12.0] - 2022-06-30:

Tested with SES 6.32

Main changes since 0.11.0

### Changed:
  - boards: hpm6360evk has been renamed to hpm6300evk
  - boards: Use CSR_CYCLE in the clock_delay function
  - soc: hpm_soc.h: include hpm_common.h
  - driver: rename hpm_pmu_drv.c to hpm_pcfg_drv.h
  - driver: spi: change to non-blocking interfaces
  - driver: dma: update driver to adapt to different DMA instance constraints
  - components: enet_phy: update dp83867 driver
  - components: enet_phy: remove rtl8211 driver
  - cmake: enable nano newlib by default
  - cmake: move distclean to the beginning
  - middleware: littlevgl enable PDMA by default
  - middleware: tinyusb: upgrade to 0.13.0
  - samples: tinyusb: device: cdc_msc: adjust buffer size
  - samples: drivers: plic: use gpio toggle count as nested irq

### Fixed:
  - drivers: pwm: fix function name inconsistency bug
  - drivers: enet: remove "board.h" in enet driver
  - drivers: clock: Fix bugs in hpm6360 clock driver
  - drivers: clock: returns wrong adc/dac clock in HPM6360
  - drivers: dram: failed to configure 8bit mode.
  - freertos: fix issue about running on core1
  - boards: hpm6300evk pmp_entry set initial value
  - middleware: littlevgl: fix pdma cache op issue
  - middleware: littlevgl: fix doxygen markdown for pdma driver
  - middleware: lvgl: ses: update ram linker.
  - middleware: hpm_math: fix ffa cache size error
  - samples: audio_codec: remove the wrong dependency
  - samples: FATFS demo cannot support write/read if FATFS passes unaligned buffer address

### Added:
  - samples: add memstress and flash stress
  - drivers: clock: add implement common delay function based on mcycle and mcycleh register
  - boards: add hpm6300evk support
  - boards: hpm6750evkmini: motor control support
  - soc: add svd files
  - middleware: lwip: iperf: enable iperf and add udp function
  - samples: lwip: add lwip_iperf

## [0.11.0] - 2022-05-31:
Main changes since 0.10.0-hpm6360-er

### Changed:
  - readme: change the location of the starting document
  - components: change hal_adc_xx to hpm_adc_xx
  - drivers: update the I2C driver
  - cmake: change default rv_arch to rv32imac
  - cmake: modified in a zephyr-compatible way
  - drivers: uart: redefined struct with zephyr
  - cmake: change soc and board name
  - cmake: ses: support enable ext_dsp in project file.
  - samples/tinyusb/host: optimize the toggle rate of the blinking led
  - samples/tinyusb/device: replace mchtimer with board_timer for led_linking_taskk
  - samples/tinyusb/device: optimize the implement of led_blinking_task
  - soc: update IP header and soc header files

### Fixed:
  - samples: motor_ctrl: bldc_block: fix some error
  - middleware: hpm_math: fix andes toolchain compile error
  - middleware: hpm_math: fix libdsp.a error
  - middleware: hpm_math: add ext-dsp for SES
  - samples: openocd_algo: fix func_table placement.
  - boards: hpm6360evk: correct cpu frequency
  - boards: fix warning caused by code irregularities
  - boards: LED status is not the same between hpm6750mini rev-A and rev-B
  - boards: update board_led_write.

### Added:
  - driver: add spi_setup_dma_transfer() API
  - middleware: hpm_math: add software fft function
  - middleware: hpm_math: add ffa to hpm_math
  - samples: i2c: update the sample b2b
  - samples: hpm_math: add fft_performance demo
  - samples: add SPI DMA sample
  - samples: multicore coremark using debug console only
  - samples: 1588: add ptp v1 master/slave

## [0.10.0_hpm6300] - 2022-05-16:
Main changes since 0.10.0

### Changed:
  - ip register header file update
  - ses_proj: using generated complete cpu_regs_xml to replace general cpu registers xml
  - drivers: gpiom: move gpiom_gpio_t into hpm_gpiom_src.h
  - drivers: update the enet driver
  - samples: dram: change sdram test address in dma demo
  - samples: drivers: mbx: exclude flash targets for core0 as well.
  - samples: lwip: update ethernetif.c

### Fixed:
  - drivers: ptpc: update ptpc_init_timer_with_initial.
  - drivers: can: bug fix and update
  - soc: correct vector table inclusion and swi name
  - env.sh: fix HPM_SDK_BASE setting problem with msys.
  - samples: sha256_example: failed to run case 13 and 14 with gcc.

### Added:
  - soc: add HPM6360 support
  - drivers: add ffa, pllctlv2, dac
  - boards: add hpm6360evk support
  - components: add adcx module
  - components/enet_phy: add the RTL8201 driver
  - samples: drivers: dac, ffa
  - samples: rgb_red: add evkmini ver B support

## [0.10.0] - 2022-04-30:
Main changes since 0.9.0

### Changed:
  - drivers: gptmr: split irq enable/disable interface
  - drivers: can: 155 Update SJW setting in CAN driver
  - soc: HPM6750: rename safe stack symbol in link script
  - components: debug_console: wait uart tx flag on writing.

### Added:
  - drivers: enet: add 1588 support
  - drivers: can: Add TDC support
  - drivers: mchtmr: add counter init API.
  - drivers: dma: add dma_disable_channel() API
  - middleware: add wav decoder
  - samples: lwip: add ptp demos
  - samples: tinyusb: add msc, cdc demo
  - samples: audio_codec: add wav player demo
  - samples: add tinyuf2 initial support
  - samples: add initial uart dma rx idle demo

### Fixed:
  - soc: HPM6750: sysctl: fix cpu lp mode API.
  - drivers: uart: correct baudrate calculation.
  - drivers: usb: fix: no response in device mode when a USB cable is pluged out
  - boards: correct the pin setting related to USB

## [0.9.0] - 2022-04-01:
Main changes since 0.8.0

### Changed:
  - drivers: update WDG, UART, DMA, DMAMUX driver
  - drivers: enet remove enet_intf_selection
  - drivers: can: support configure bit timing via low-level bit timing parameters
  - drivers: optimize gpio driver
  - samples: exclude flash targets for mbx core1
  - samples: adjust SES project setting for coremark
  - samples: jpeg: update and integration jpeg decode samples
  - ses: use relpath for linker script in project file
  - ses: add HPM device name in generated project file
  - soc: HPM6750: add an interface selection api

### Added:
  - soc: HPM6750: add ram linker for core1
  - ses: support to use Andes toolchain
  - middleware: add hpm_math (replacing hpm_dsp)
  - samples: add lwip httpd
  - drivers: add section and alignment general instructions in hpm_common.h

### Fixed:
  - boards: hpm6750evk: fix bldc adc pinmux error
  - boards : hpm6750evk : pinmux : fix spi init pins error
  - samples: sdp: fix non-cacheable data initialization issue
  - samples: littlevgl: fix wrong picture patch in README

## [0.8.0] - 2022-03-04:
All changes since 0.7.3

### Changed:
  - rename middleware/sdmmc to middleware/hpm_sdmmc
  - place isr into .isr_vector section for irq non-vector mode
  - change csr functions to support llvm

### Fixed:
  - ses: fix issue in register xml
  - freertor: fix trap handler at non-vector mode
  - sdxc: fix software reset issue

### Added:
  - add sdk doc
  - add more sample doc
  - add multicore demo
  - i2c/uart: add dma support
  - add tensorflow lite for microcontroller

## [0.7.3] - 2022-02-23:
All changes since 0.7.2

### Changed:
  - freertos: change exception handling

## [0.7.2] - 2022-02-21:
All changes since 0.7.1

### Changed:
  - freertos: change freertos irq stack definition, passed in CMakeLists.txt, defined in linker
  - soc: hpm6750: add DISABLE_IRQ_PREEMPTIVE to check if it needs to enable irq preemption

### Fixed:
  - freertos: disable irq preemption

## [0.7.1] - 2022-02-13:

All changes since 0.7.0

### Changed:
  - drivers: adc12: update adc12_prd_config_t
  - samples: can: update case with interrupt and communication between two boards

### Fixed:
  - drivers: can: fix blocking transcation issue
  - samples: mbx: support run this example in SES
  - SES: startup: add fpu enable if abi is set to enable hw fp

### Added:
  - samples: multicore: add flash based multicore example
  - drivers: can: add apis to recvieve message for non-blocking use

## [0.7.0] - 2022-01-30:

All changes since 0.6.2

### Changed:
  - update default CPU frequency to 816MHz from 648MHz
  - update the ip headers
  - drivers: gpio: replace gpio_XXX_pins with gpio_XXX_port
  - drivers: gpio: remove pin level enum definition
  - drivers: i2s: driver update to remove mclk_div
  - drivers: ptpc: update driver
  - drivers: common: update get first set bit API
  - drivers: uart: split one enable with parameter into enable and disable interfaces
  - drivers: pwm: change name of output_channel config API
  - drivers: trgm: split separate API to enable/disable io output
  - soc: HPM6750: initialize noncacheable data in startup
  - soc: HPM6750: l1c: update fence.i call
  - samples: hello_world: add LED flashing
  - samples: littlevgl: remove lvgl example

### Fixed:
  - hpm6750evkmini: correct refresh cycle number of sdram
  - hpm6750evkmini: Fix the SDRAM memory range issue in flash_sdram_xip linker file
  - SES: remove no_relax option for linker, since segger has provide a patch to its ld for ses v6.10.
  - drivers: gpio: fix read pin issue:
  - drivers: usb: fix usb disconnection under linux environment
  - drivers: sdxc: Fixed the compatibility issue on different SD/eMMC cards in the sdcard_fatfs demo
  - drivers: gptmr: incorrect DMAEN configuration condition
  - drivers: gptmr: clear CNTRST bit after set.
  - SDK_DECLARE_EXT_ISR_M cannot work in the c++ file
  - FreeRTOS: fix ISR_STACK setting
  - components: touch: gt911: fix gpio write pin call

### Added:
  - SEG: add register definition file in generated embedded studio project
  - samples: drivers: gpiom: Add example to demonstrate gpiom's function
  - drivers: common: add macro to put data into noncacheable sections
  - middleware: integrate lwip

