mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-21 02:06:14 +08:00
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
doc_doxygen / doxygen_doc generate (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :components/sal.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
Weekly CI Scheduler / Trigger and Monitor CIs (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
doc_doxygen / deploy (push) Has been cancelled
Weekly CI Scheduler / Create Discussion Report (push) Has been cancelled
manual_trigger_update_all / update and create pull request (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / Infineon/psoc6-pioneerkit_modus (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / airm2m/air105 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / allwinner/d1 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / allwinner/d1s (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / amebaz (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / avr32uc3b0 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / bf533 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / bouffalo_lab/bl61x (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / bouffalo_lab/bl808/d0 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / bouffalo_lab/bl808/lp (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / bouffalo_lab/bl808/m0 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / ck802 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / core-v-mcu/core-v-cv32e40p (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / essemi/es32f0654 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / essemi/es32f365x (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / fm33lc026 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / ft2004 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / hc32l136 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / hk32/hk32f030c8-mini (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / imx/imx6ull-smart (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / imxrt/imxrt1170-nxp-evk/m7 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / juicevm (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / lpc43xx/M0 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / lpc43xx/M4 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / lpc54608-LPCXpresso (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / lpc824 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / m16c62p (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / microblaze (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / mini4020 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / mm32f327x (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / mm32l07x (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / nios_ii (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / nuclei/nuclei_fpga_eval (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / nv32f100x (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / phytium/aarch32 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / pic32ethernet (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / raspberry-pi/raspi2 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / rockchip/rk2108 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / rv32m1_vega/ri5cy (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / rx (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / samd21 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / sep6200 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / synopsys/boards (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / tae32f5300 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / taihu (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / thead-smart (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / ti/c28x/tms320f28379d (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / tkm32F499 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / tms320c6678 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / upd70f3454 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / w60x (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / wch/arm/ch579m (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / wch/risc-v/ch32v103r-evt (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / wch/risc-v/ch569w-evt (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / wh44b0 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / x86 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / xplorer4330/M0 (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / yichip/yc3121-pos (push) Has been cancelled
manual_trigger_scons_fail_bsp_all.yml / yichip/yc3122-pos (push) Has been cancelled
manual_scons_dist_except_STM32_all / CME_M7 (push) Has been cancelled
manual_scons_dist_except_STM32_all / ESP32_C3 (push) Has been cancelled
manual_scons_dist_except_STM32_all / Infineon/psoc6-cy8ckit-062-BLE (push) Has been cancelled
manual_scons_dist_except_STM32_all / Infineon/psoc6-cy8ckit-062-WIFI-BT (push) Has been cancelled
manual_scons_dist_except_STM32_all / Infineon/psoc6-cy8ckit-062S2-43012 (push) Has been cancelled
manual_scons_dist_except_STM32_all / Infineon/psoc6-cy8ckit-062s4 (push) Has been cancelled
manual_scons_dist_except_STM32_all / Infineon/psoc6-cy8cproto-062S3-4343W (push) Has been cancelled
manual_scons_dist_except_STM32_all / Infineon/psoc6-evaluationkit-062S2 (push) Has been cancelled
manual_scons_dist_except_STM32_all / Vango/v85xx (push) Has been cancelled
manual_scons_dist_except_STM32_all / Vango/v85xxp (push) Has been cancelled
manual_scons_dist_except_STM32_all / acm32/acm32f0x0-nucleo (push) Has been cancelled
manual_scons_dist_except_STM32_all / acm32/acm32f4xx-nucleo (push) Has been cancelled
manual_scons_dist_except_STM32_all / airm2m/air32f103 (push) Has been cancelled
manual_scons_dist_except_STM32_all / allwinner_tina (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32e103ze-evalboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32e103ze-tinyboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f030r8-miniboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f051r8-evalboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f072vb-miniboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f091vc-miniboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f103vb-miniboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f103xe-minibroard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f107vc-evalboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f407ig-minibroard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32f407zg-evalboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apm32/apm32s103vb-miniboard (push) Has been cancelled
manual_scons_dist_except_STM32_all / apollo2 (push) Has been cancelled
manual_scons_dist_except_STM32_all / asm9260t (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f403a-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f407-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f413-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f415-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f421-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f423-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f425-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f435-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at32/at32f437-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / at91/at91sam9260 (push) Has been cancelled
manual_scons_dist_except_STM32_all / at91/at91sam9g45 (push) Has been cancelled
manual_scons_dist_except_STM32_all / beaglebone (push) Has been cancelled
manual_scons_dist_except_STM32_all / bluetrum/ab32vg1-ab-prougen (push) Has been cancelled
manual_scons_dist_except_STM32_all / bm3803 (push) Has been cancelled
manual_scons_dist_except_STM32_all / bouffalo_lab/bl60x (push) Has been cancelled
manual_scons_dist_except_STM32_all / bouffalo_lab/bl70x (push) Has been cancelled
manual_scons_dist_except_STM32_all / dm365 (push) Has been cancelled
manual_scons_dist_except_STM32_all / efm32 (push) Has been cancelled
manual_scons_dist_except_STM32_all / essemi/es32f0654 (push) Has been cancelled
manual_scons_dist_except_STM32_all / essemi/es32f365x (push) Has been cancelled
manual_scons_dist_except_STM32_all / essemi/es32f369x (push) Has been cancelled
manual_scons_dist_except_STM32_all / essemi/es32vf2264 (push) Has been cancelled
manual_scons_dist_except_STM32_all / fm33lc026 (push) Has been cancelled
manual_scons_dist_except_STM32_all / frdm-k64f (push) Has been cancelled
manual_scons_dist_except_STM32_all / ft32/ft32f072xb-starter (push) Has been cancelled
manual_scons_dist_except_STM32_all / fujitsu/mb9x/mb9bf500r (push) Has been cancelled
manual_scons_dist_except_STM32_all / fujitsu/mb9x/mb9bf506r (push) Has been cancelled
manual_scons_dist_except_STM32_all / fujitsu/mb9x/mb9bf568r (push) Has been cancelled
manual_scons_dist_except_STM32_all / fujitsu/mb9x/mb9bf618s (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32103c-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32105c-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32105r-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32107c-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32205r-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32207i-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32303c-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32303e-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32305r-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32307e-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32407v-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32450z-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/arm/gd32470z-lckfb (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/risc-v/gd32vf103r-start (push) Has been cancelled
manual_scons_dist_except_STM32_all / gd32/risc-v/gd32vf103v-eval (push) Has been cancelled
manual_scons_dist_except_STM32_all / hc32/ev_hc32f460_lqfp100_v2 (push) Has been cancelled
manual_scons_dist_except_STM32_all / hc32/ev_hc32f4a0_lqfp176 (push) Has been cancelled
manual_scons_dist_except_STM32_all / hc32l136 (push) Has been cancelled
manual_scons_dist_except_STM32_all / hc32l196 (push) Has been cancelled
manual_scons_dist_except_STM32_all / hifive1 (push) Has been cancelled
manual_scons_dist_except_STM32_all / hpmicro/hpm6750evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / hpmicro/hpm6750evkmini (push) Has been cancelled
manual_scons_dist_except_STM32_all / ht32/ht32f12366 (push) Has been cancelled
manual_scons_dist_except_STM32_all / ht32/ht32f52352 (push) Has been cancelled
manual_scons_dist_except_STM32_all / imx6sx/cortex-a9 (push) Has been cancelled
manual_scons_dist_except_STM32_all / imx6ul (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1021-nxp-evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1052-atk-commander (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1052-fire-pro (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1052-nxp-evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1052-seeed-ArchMix (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1060-nxp-evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1061-forlinx-OK1061-S (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1064-nxp-evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / imxrt/imxrt1170-nxp-evk/m7 (push) Has been cancelled
manual_scons_dist_except_STM32_all / k210 (push) Has been cancelled
manual_scons_dist_except_STM32_all / lm3s8962 (push) Has been cancelled
manual_scons_dist_except_STM32_all / lm3s9b9x (push) Has been cancelled
manual_scons_dist_except_STM32_all / lm4f232 (push) Has been cancelled
manual_scons_dist_except_STM32_all / loongson/ls1bdev (push) Has been cancelled
manual_scons_dist_except_STM32_all / loongson/ls1cdev (push) Has been cancelled
manual_scons_dist_except_STM32_all / loongson/ls2kdev (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc1114 (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc176x (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc178x (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc2148 (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc2478 (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc408x (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc5410x (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc54114-lite (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc54608-LPCXpresso (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc55sxx/lpc55s06_nxp_evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc55sxx/lpc55s16_nxp_evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc55sxx/lpc55s28_nxp_evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc55sxx/lpc55s36_nxp_evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc55sxx/lpc55s69_nxp_evk (push) Has been cancelled
manual_scons_dist_except_STM32_all / lpc824 (push) Has been cancelled
manual_scons_dist_except_STM32_all / maxim/max32660-evsys (push) Has been cancelled
manual_scons_dist_except_STM32_all / mcx/mcxa/frdm-mcxa153 (push) Has been cancelled
manual_scons_dist_except_STM32_all / mcx/mcxa/frdm-mcxn947 (push) Has been cancelled
manual_scons_dist_except_STM32_all / mcx/mcxc/frdm-mcxc444 (push) Has been cancelled
manual_scons_dist_except_STM32_all / mcx/mcxn/frdm-mcxn236 (push) Has been cancelled
manual_scons_dist_except_STM32_all / microchip/samc21 (push) Has been cancelled
manual_scons_dist_except_STM32_all / microchip/same54 (push) Has been cancelled
manual_scons_dist_except_STM32_all / microchip/same70 (push) Has been cancelled
manual_scons_dist_except_STM32_all / microchip/saml10 (push) Has been cancelled
manual_scons_dist_except_STM32_all / mini2440 (push) Has been cancelled
manual_scons_dist_except_STM32_all / mipssim (push) Has been cancelled
manual_scons_dist_except_STM32_all / mm32/mm32f3270-100ask-pitaya (push) Has been cancelled
manual_scons_dist_except_STM32_all / mm32f103x (push) Has been cancelled
manual_scons_dist_except_STM32_all / mm32l07x (push) Has been cancelled
manual_scons_dist_except_STM32_all / mm32l3xx (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g43xcl-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g457qel-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g45xcl-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g45xml-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g45xrl-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g45xvl-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32g4frml-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32l40xcl-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32l436-evb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32l43xml-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32l43xrl-stb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32/n32wb45xl-evb (push) Has been cancelled
manual_scons_dist_except_STM32_all / n32g452xx/n32g452xx-mini-system (push) Has been cancelled
manual_scons_dist_except_STM32_all / nrf5x/nrf51822 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nrf5x/nrf52832 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nrf5x/nrf52833 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nrf5x/nrf52840 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nrf5x/nrf5340 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuclei/gd32vf103_rvstar (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/ma35-rtp (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/nk-980iot (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/nk-n9h30 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/nk-rtu980 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-hmi-ma35d1 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-iot-m467 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-iot-m487 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-iot-ma35d1 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-m032ki (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-m2354 (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-m467hj (push) Has been cancelled
manual_scons_dist_except_STM32_all / nuvoton/numaker-pfm-m487 (push) Has been cancelled
manual_scons_dist_except_STM32_all / phytium/aarch64 (push) Has been cancelled
manual_scons_dist_except_STM32_all / qemu-vexpress-a9 (push) Has been cancelled
manual_scons_dist_except_STM32_all / qemu-virt64-aarch64 (push) Has been cancelled
manual_scons_dist_except_STM32_all / qemu-virt64-riscv (push) Has been cancelled
manual_scons_dist_except_STM32_all / raspberry-pi/raspi3-32 (push) Has been cancelled
manual_scons_dist_except_STM32_all / raspberry-pi/raspi3-64 (push) Has been cancelled
manual_scons_dist_except_STM32_all / raspberry-pi/raspi4-32 (push) Has been cancelled
manual_scons_dist_except_STM32_all / raspberry-pi/raspi4-64 (push) Has been cancelled
manual_scons_dist_except_STM32_all / raspberry-pico (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ebf_qi_min_6m5 (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra2l1-cpk (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra4m2-eco (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra6m3-ek (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra6m3-hmi-board (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra6m4-cpk (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra6m4-iot (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra8d1-ek (push) Has been cancelled
manual_scons_dist_except_STM32_all / renesas/ra8m1-ek (push) Has been cancelled
manual_scons_dist_except_STM32_all / rm48x50 (push) Has been cancelled
manual_scons_dist_except_STM32_all / rockchip/rk3568 (push) Has been cancelled
manual_scons_dist_except_STM32_all / sam7x (push) Has been cancelled
manual_scons_dist_except_STM32_all / simulator (push) Has been cancelled
manual_scons_dist_except_STM32_all / smartfusion2 (push) Has been cancelled
manual_scons_dist_except_STM32_all / sparkfun-redv (push) Has been cancelled
manual_scons_dist_except_STM32_all / synwit/swm320-mini (push) Has been cancelled
manual_scons_dist_except_STM32_all / synwit/swm341-mini (push) Has been cancelled
manual_scons_dist_except_STM32_all / tm4c123bsp (push) Has been cancelled
manual_scons_dist_except_STM32_all / tm4c129x (push) Has been cancelled
manual_scons_dist_except_STM32_all / w60x (push) Has been cancelled
manual_scons_dist_except_STM32_all / wch/arm/ch32f103c8-core (push) Has been cancelled
manual_scons_dist_except_STM32_all / wch/arm/ch32f203r-evt (push) Has been cancelled
manual_scons_dist_except_STM32_all / wch/risc-v/ch32v208w-r0 (push) Has been cancelled
manual_scons_dist_except_STM32_all / wch/risc-v/ch32v307v-r1 (push) Has been cancelled
manual_scons_dist_except_STM32_all / xplorer4330/M4 (push) Has been cancelled
manual_scons_dist_except_STM32_all / yichip/yc3121-pos (push) Has been cancelled
manual_scons_dist_except_STM32_all / yichip/yc3122-pos (push) Has been cancelled
manual_scons_dist_except_STM32_all / zynqmp-r5-axu4ev (push) Has been cancelled
manual_trigger_scons_build_all / ${{ github.event.inputs.bsp_options }} (push) Has been cancelled
ToolsCI / Tools (push) Has been cancelled
Signed-off-by: GuEe-GUI <2991707448@qq.com>
439 lines
11 KiB
C
Executable File
439 lines
11 KiB
C
Executable File
/*
|
|
* Copyright (c) 2006-2022, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2022-11-26 GuEe-GUI first version
|
|
*/
|
|
|
|
#include <rtthread.h>
|
|
#include <rtdevice.h>
|
|
|
|
#define DBG_TAG "clk.scmi"
|
|
#define DBG_LVL DBG_INFO
|
|
#include <rtdbg.h>
|
|
|
|
struct scmi_clk
|
|
{
|
|
struct rt_clk_node parent;
|
|
|
|
struct rt_scmi_device *sdev;
|
|
};
|
|
|
|
#define raw_to_scmi_clk(raw) rt_container_of(raw, struct scmi_clk, parent)
|
|
|
|
struct scmi_clk_data
|
|
{
|
|
struct rt_clk_cell cell;
|
|
|
|
int id;
|
|
rt_bool_t rate_discrete;
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
int rates_nr;
|
|
rt_uint64_t rates[];
|
|
} list;
|
|
struct
|
|
{
|
|
rt_uint64_t min_rate;
|
|
rt_uint64_t max_rate;
|
|
rt_uint64_t step_size;
|
|
} range;
|
|
} info;
|
|
};
|
|
|
|
#define cell_to_scmi_clk_data(cell_ptr) rt_container_of(cell_ptr, struct scmi_clk_data, cell)
|
|
|
|
static rt_err_t scmi_clk_op_gate(struct scmi_clk *sclk, int clk_id, rt_bool_t enable)
|
|
{
|
|
struct scmi_clk_state_in in =
|
|
{
|
|
.clock_id = rt_cpu_to_le32(clk_id),
|
|
.attributes = rt_cpu_to_le32(enable),
|
|
};
|
|
struct scmi_clk_state_out out;
|
|
struct rt_scmi_msg msg = RT_SCMI_MSG_IN_OUT(SCMI_CLOCK_CONFIG_SET, &in, &out);
|
|
|
|
return rt_scmi_process_msg(sclk->sdev, &msg);
|
|
}
|
|
|
|
static rt_base_t scmi_clk_op_get_rate(struct scmi_clk *sclk, int clk_id)
|
|
{
|
|
rt_ubase_t res;
|
|
struct scmi_clk_rate_get_in in =
|
|
{
|
|
.clock_id = rt_cpu_to_le32(clk_id),
|
|
};
|
|
struct scmi_clk_rate_get_out out;
|
|
struct rt_scmi_msg msg = RT_SCMI_MSG_IN_OUT(SCMI_CLOCK_RATE_GET, &in, &out);
|
|
|
|
res = rt_scmi_process_msg(sclk->sdev, &msg);
|
|
|
|
if ((rt_base_t)res >= 0)
|
|
{
|
|
res = (rt_ubase_t)(((rt_uint64_t)out.rate_msb << 32) | out.rate_lsb);
|
|
}
|
|
|
|
return res;
|
|
}
|
|
|
|
static rt_base_t scmi_clk_op_set_rate(struct scmi_clk *sclk, int clk_id, rt_ubase_t rate)
|
|
{
|
|
struct scmi_clk_rate_set_in in =
|
|
{
|
|
.clock_id = rt_cpu_to_le32(clk_id),
|
|
.flags = rt_cpu_to_le32(SCMI_CLK_RATE_ROUND_CLOSEST),
|
|
.rate_lsb = rt_cpu_to_le32((rt_uint32_t)rate),
|
|
.rate_msb = rt_cpu_to_le32((rt_uint32_t)((rt_uint64_t)rate >> 32)),
|
|
};
|
|
struct scmi_clk_rate_set_out out;
|
|
struct rt_scmi_msg msg = RT_SCMI_MSG_IN_OUT(SCMI_CLOCK_RATE_SET, &in, &out);
|
|
|
|
return rt_scmi_process_msg(sclk->sdev, &msg);
|
|
}
|
|
|
|
static rt_err_t scmi_clk_enable(struct rt_clk_cell *cell)
|
|
{
|
|
struct scmi_clk *sclk = raw_to_scmi_clk(cell->clk_np);
|
|
struct scmi_clk_data *clk_data = cell_to_scmi_clk_data(cell);
|
|
|
|
return scmi_clk_op_gate(sclk, clk_data->id, RT_TRUE);
|
|
}
|
|
|
|
static void scmi_clk_disable(struct rt_clk_cell *cell)
|
|
{
|
|
struct scmi_clk *sclk = raw_to_scmi_clk(cell->clk_np);
|
|
struct scmi_clk_data *clk_data = cell_to_scmi_clk_data(cell);
|
|
|
|
scmi_clk_op_gate(sclk, clk_data->id, RT_FALSE);
|
|
}
|
|
|
|
static rt_ubase_t scmi_clk_recalc_rate(struct rt_clk_cell *cell, rt_ubase_t parent_rate)
|
|
{
|
|
struct scmi_clk *sclk = raw_to_scmi_clk(cell->clk_np);
|
|
struct scmi_clk_data *clk_data = cell_to_scmi_clk_data(cell);
|
|
|
|
return scmi_clk_op_get_rate(sclk, clk_data->id);
|
|
}
|
|
|
|
static rt_base_t scmi_clk_round_rate(struct rt_clk_cell *cell, rt_ubase_t drate, rt_ubase_t *prate)
|
|
{
|
|
rt_uint64_t fmin, fmax, ftmp;
|
|
struct scmi_clk_data *clk_data = cell_to_scmi_clk_data(cell);
|
|
|
|
if (clk_data->rate_discrete)
|
|
{
|
|
return drate;
|
|
}
|
|
|
|
fmin = clk_data->info.range.min_rate;
|
|
fmax = clk_data->info.range.max_rate;
|
|
|
|
if (drate <= fmin)
|
|
{
|
|
return fmin;
|
|
}
|
|
|
|
if (drate >= fmax)
|
|
{
|
|
return fmax;
|
|
}
|
|
|
|
ftmp = drate - fmin;
|
|
ftmp += clk_data->info.range.step_size - 1;
|
|
rt_do_div(ftmp, clk_data->info.range.step_size);
|
|
|
|
return ftmp * clk_data->info.range.step_size + fmin;
|
|
}
|
|
|
|
static rt_err_t scmi_clk_set_rate(struct rt_clk_cell *cell, rt_ubase_t rate, rt_ubase_t parent_rate)
|
|
{
|
|
rt_err_t err;
|
|
rt_ubase_t res_rate;
|
|
struct scmi_clk *sclk = raw_to_scmi_clk(cell->clk_np);
|
|
struct scmi_clk_data *clk_data = cell_to_scmi_clk_data(cell);
|
|
|
|
if (!(err = scmi_clk_op_set_rate(sclk, clk_data->id, rate)))
|
|
{
|
|
res_rate = scmi_clk_op_get_rate(sclk, clk_data->id);
|
|
|
|
if ((rt_err_t)res_rate < 0)
|
|
{
|
|
err = (rt_err_t)res_rate;
|
|
}
|
|
}
|
|
|
|
return err;
|
|
}
|
|
|
|
static const struct rt_clk_ops scmi_clk_ops =
|
|
{
|
|
.enable = scmi_clk_enable,
|
|
.disable = scmi_clk_disable,
|
|
.recalc_rate = scmi_clk_recalc_rate,
|
|
.round_rate = scmi_clk_round_rate,
|
|
.set_rate = scmi_clk_set_rate,
|
|
};
|
|
|
|
static rt_err_t scmi_clk_probe(struct rt_scmi_device *sdev)
|
|
{
|
|
rt_err_t err;
|
|
rt_size_t cell_count, out_size;
|
|
struct rt_scmi_msg msg;
|
|
struct rt_device *dev = &sdev->parent;
|
|
struct rt_clk_cell **cells_list = RT_NULL, *cell;
|
|
struct scmi_clk_data *clk_data;
|
|
struct scmi_clk_describe_rates_out *out = RT_NULL;
|
|
struct scmi_clk_describe_rates_in in;
|
|
struct scmi_clk_attributes attr;
|
|
struct scmi_clk_name_in name_in;
|
|
struct scmi_clk_name_out name_out;
|
|
struct scmi_clk_describe_attributes_in clk_attr_in;
|
|
struct scmi_clk_describe_attributes_out clk_attr_out;
|
|
struct scmi_clk *sclk = rt_calloc(1, sizeof(*sclk));
|
|
|
|
if (!sclk)
|
|
{
|
|
return -RT_ENOMEM;
|
|
}
|
|
|
|
sclk->sdev = sdev;
|
|
|
|
msg = RT_SCMI_MSG_OUT(SCMI_COM_MSG_ATTRIBUTES, &attr);
|
|
|
|
if ((err = rt_scmi_process_msg(sclk->sdev, &msg)))
|
|
{
|
|
goto _fail;
|
|
}
|
|
|
|
cell_count = rt_le16_to_cpu(attr.num_clocks);
|
|
|
|
if (!(cells_list = rt_calloc(cell_count, sizeof(*cells_list))))
|
|
{
|
|
err = -RT_ENOMEM;
|
|
goto _fail;
|
|
}
|
|
|
|
out_size = rt_offsetof(struct scmi_clk_describe_rates_out, rate[SCMI_MAX_NUM_RATES]);
|
|
|
|
if (!(out = rt_malloc(out_size)))
|
|
{
|
|
err = -RT_ENOMEM;
|
|
goto _fail;
|
|
}
|
|
|
|
for (int id = 0; id < cell_count; ++id)
|
|
{
|
|
const char *clk_name;
|
|
rt_uint32_t flags, rate_discrete;
|
|
|
|
in.id = rt_cpu_to_le32(id);
|
|
in.rate_index = rt_cpu_to_le32(0);
|
|
msg = RT_SCMI_MSG_RAW(SCMI_CLOCK_DESCRIBE_RATES, &in, sizeof(in), out, out_size);
|
|
|
|
if ((err = rt_scmi_process_msg(sclk->sdev, &msg)))
|
|
{
|
|
goto _fail;
|
|
}
|
|
|
|
flags = rt_le32_to_cpu(out->num_rates_flags);
|
|
rate_discrete = SCMI_RATE_DISCRETE(flags);
|
|
|
|
if (rate_discrete)
|
|
{
|
|
clk_data = rt_malloc(rt_offsetof(struct scmi_clk_data,
|
|
info.list.rates[SCMI_MAX_NUM_RATES]));
|
|
}
|
|
else
|
|
{
|
|
clk_data = rt_malloc(sizeof(*clk_data));
|
|
}
|
|
|
|
if (!clk_data)
|
|
{
|
|
err = -RT_ENOMEM;
|
|
break;
|
|
}
|
|
|
|
if (rate_discrete)
|
|
{
|
|
/*
|
|
* SCMI: [11:0] = rates in this message, [31:16] = remaining to query.
|
|
* Using REMAINING as the copy count overflows rates[] and corrupts heap.
|
|
*/
|
|
int idx = 0;
|
|
|
|
for (;;)
|
|
{
|
|
rt_uint32_t nr = SCMI_NUM_RETURNED(flags);
|
|
rt_uint32_t remaining = SCMI_NUM_REMAINING(flags);
|
|
|
|
for (rt_uint32_t i = 0; i < nr && idx < SCMI_MAX_NUM_RATES; ++i, ++idx)
|
|
{
|
|
clk_data->info.list.rates[idx] = SCMI_RATE_TO_U64(out->rate[i]);
|
|
}
|
|
|
|
if (remaining == 0 || idx >= SCMI_MAX_NUM_RATES)
|
|
{
|
|
break;
|
|
}
|
|
|
|
in.rate_index = rt_cpu_to_le32(idx);
|
|
msg = RT_SCMI_MSG_RAW(SCMI_CLOCK_DESCRIBE_RATES, &in, sizeof(in), out, out_size);
|
|
|
|
if ((err = rt_scmi_process_msg(sclk->sdev, &msg)))
|
|
{
|
|
rt_free(clk_data);
|
|
goto _fail;
|
|
}
|
|
|
|
flags = rt_le32_to_cpu(out->num_rates_flags);
|
|
}
|
|
|
|
clk_data->info.list.rates_nr = idx;
|
|
}
|
|
else
|
|
{
|
|
clk_data->info.range.min_rate = SCMI_RATE_TO_U64(out->rate[0]);
|
|
clk_data->info.range.max_rate = SCMI_RATE_TO_U64(out->rate[1]);
|
|
clk_data->info.range.step_size = SCMI_RATE_TO_U64(out->rate[2]);
|
|
}
|
|
|
|
clk_data->rate_discrete = rate_discrete;
|
|
clk_data->id = id;
|
|
|
|
cell = &clk_data->cell;
|
|
rt_memset(cell, 0, sizeof(*cell));
|
|
|
|
clk_attr_in.clock_id = rt_cpu_to_le32(id);
|
|
msg = RT_SCMI_MSG_IN_OUT(SCMI_CLOCK_ATTRIBUTES, &clk_attr_in, &clk_attr_out);
|
|
|
|
if ((err = rt_scmi_process_msg(sclk->sdev, &msg)))
|
|
{
|
|
rt_free(clk_data);
|
|
goto _fail;
|
|
}
|
|
|
|
if (SUPPORTS_EXTENDED_NAMES(clk_attr_out.attributes))
|
|
{
|
|
name_in.clock_id = rt_cpu_to_le32(id);
|
|
msg = RT_SCMI_MSG_IN_OUT(SCMI_CLOCK_NAME_GET, &name_in, &name_out);
|
|
|
|
if ((err = rt_scmi_process_msg(sclk->sdev, &msg)))
|
|
{
|
|
rt_free(clk_data);
|
|
goto _fail;
|
|
}
|
|
|
|
clk_name = (const char *)name_out.name;
|
|
}
|
|
else
|
|
{
|
|
clk_name = (const char *)clk_attr_out.name;
|
|
}
|
|
|
|
if (!(cell->name = rt_strdup(clk_name)))
|
|
{
|
|
rt_free(clk_data);
|
|
err = -RT_ENOMEM;
|
|
goto _fail;
|
|
}
|
|
|
|
cell->ops = &scmi_clk_ops;
|
|
cell->flags = RT_CLK_F_GET_RATE_NOCACHE;
|
|
|
|
cells_list[id] = cell;
|
|
}
|
|
|
|
sclk->parent.dev = dev;
|
|
sclk->parent.cells = cells_list;
|
|
sclk->parent.cells_nr = cell_count;
|
|
|
|
if ((err = rt_clk_register(&sclk->parent)))
|
|
{
|
|
goto _fail;
|
|
}
|
|
|
|
for (int id = 0; id < cell_count; ++id)
|
|
{
|
|
struct rt_clk *clk = rt_clk_cell_get_clk(cells_list[id], RT_NULL);
|
|
|
|
if (clk)
|
|
{
|
|
rt_ubase_t min_rate, max_rate;
|
|
|
|
clk_data = cell_to_scmi_clk_data(cells_list[id]);
|
|
|
|
if (clk_data->rate_discrete)
|
|
{
|
|
min_rate = clk_data->info.list.rates[0];
|
|
max_rate = clk_data->info.list.rates[clk_data->info.list.rates_nr - 1];
|
|
}
|
|
else
|
|
{
|
|
min_rate = clk_data->info.range.min_rate;
|
|
max_rate = clk_data->info.range.max_rate;
|
|
}
|
|
|
|
rt_clk_set_rate_range(clk, min_rate, max_rate);
|
|
}
|
|
}
|
|
|
|
return RT_EOK;
|
|
|
|
_fail:
|
|
if (out)
|
|
{
|
|
rt_free(out);
|
|
}
|
|
|
|
if (cells_list)
|
|
{
|
|
for (int id = 0; id < cell_count; ++id)
|
|
{
|
|
if (!cells_list[id])
|
|
{
|
|
break;
|
|
}
|
|
|
|
cell = cells_list[id];
|
|
clk_data = cell_to_scmi_clk_data(cell);
|
|
|
|
rt_free(clk_data);
|
|
}
|
|
|
|
rt_free(cells_list);
|
|
}
|
|
|
|
rt_free(sclk);
|
|
|
|
return err;
|
|
}
|
|
|
|
static const struct rt_scmi_device_id scmi_clk_ids[] =
|
|
{
|
|
{ SCMI_PROTOCOL_ID_CLOCK, "clocks" },
|
|
{ /* sentinel */ },
|
|
};
|
|
|
|
static struct rt_scmi_driver scmi_clk_driver =
|
|
{
|
|
.name = "clk-scmi",
|
|
.ids = scmi_clk_ids,
|
|
|
|
.probe = scmi_clk_probe,
|
|
};
|
|
|
|
static int scmi_clk_drv_register(void)
|
|
{
|
|
rt_scmi_driver_register(&scmi_clk_driver);
|
|
|
|
return 0;
|
|
}
|
|
INIT_SUBSYS_EXPORT(scmi_clk_drv_register);
|