# The west manifest file for upstream Zephyr.
#
# The per-installation west configuration file, .west/config, sets the
# path to the project containing this file in the [manifest] section's
# "path" variable.
#
# You are free to create your own manifest files and put them in any
# repository you want, to create your own custom Zephyr installations.
# For example, you could create a manifest file in your own out of
# tree application directory, which would pull this zephyr repository
# in as an ordinary project.
#
# You can pass your manifest repositories to west init when creating a
# new Zephyr installation. See the west documentation for more
# information.

manifest:
  defaults:
    remote: upstream

  remotes:
    - name: upstream
      url-base: https://github.com/zephyrproject-rtos

  #
  # Please add items below based on alphabetical order
  projects:
    - name: canopennode
      revision: 53d3415c14d60f8f4bfca54bfbc5d5a667d7e724
      path: modules/lib/canopennode
    - name: chre
      revision: 0edfe2c2ec656afb910cfab8ed59a5ffd59b87c8
      path: modules/lib/chre
    - name: cmsis
      revision: 5f86244bad4ad5a590e084f0e72ba7a1416c2edf
      path: modules/hal/cmsis
      groups:
        - hal
    - name: edtt
      revision: 1ea61a390d2bfcf3b2ecdba8f8b0b98dfdffbd11
      path: tools/edtt
      groups:
        - tools
    - name: fatfs
      revision: a30531af3a95a9a3ea7d771ea8a578ebfed45514
      path: modules/fs/fatfs
      groups:
        - fs
    - name: fff
      revision: 6ce5ba26486e93d5b7696a3e23f0585932c14b16
      path: modules/lib/fff
      groups:
        - ci
    - name: hal_altera
      revision: 0d225ddd314379b32355a00fb669eacf911e750d
      path: modules/hal/altera
      groups:
        - hal
    - name: hal_atmel
      revision: 78c5567c05b6b434dd7d98f49156319df4217bac
      path: modules/hal/atmel
      groups:
        - hal
    - name: hal_espressif
      revision: 0e6ea916fd32a9db21b04c0d913365d736b78d02
      path: modules/hal/espressif
      west-commands: west/west-commands.yml
      groups:
        - hal
    - name: hal_gigadevice
      revision: cc8bc14c612e5ecfcb0435f6da53f3302e25014a
      path: modules/hal/gigadevice
      groups:
        - hal
    - name: hal_infineon
      revision: 4af06965f57ba1e7d170e6a97d24c33785543a8c
      path: modules/hal/infineon
      groups:
        - hal
    - name: hal_microchip
      revision: 5d079f1683a00b801373bbbbf5d181d4e33b30d5
      path: modules/hal/microchip
      groups:
        - hal
    - name: hal_nordic
      revision: d892b442b0c74a33ffbbff0ed2a2c2122b4d3925
      path: modules/hal/nordic
      groups:
        - hal
    - name: hal_nuvoton
      revision: b4d31f33238713a568e23618845702fadd67386f
      path: modules/hal/nuvoton
      groups:
        - hal
    - name: hal_nxp
      revision: 5cefb64458d0c2bac83e940ba520afa6c85832a0
      path: modules/hal/nxp
      groups:
        - hal
    - name: hal_openisa
      revision: 40d049f69c50b58ea20473bee14cf93f518bf262
      path: modules/hal/openisa
      groups:
        - hal
    - name: hal_quicklogic
      revision: b3a66fe6d04d87fd1533a5c8de51d0599fcd08d0
      path: modules/hal/quicklogic
      repo-path: hal_quicklogic
      groups:
        - hal
    - name: hal_rpi_pico
      path: modules/hal/rpi_pico
      revision: 191f5ba46fda49523cdaaef27583d1c875ba2c36
      groups:
        - hal
    - name: hal_silabs
      revision: be39d4eebeddac6e18e9c0c3ba1b31ad1e82eaed
      path: modules/hal/silabs
      groups:
        - hal
    - name: hal_st
      revision: 52a522ca4a8a9ec1e9bb5bb514e1ab6f102863fe
      path: modules/hal/st
      groups:
        - hal
    - name: hal_stm32
      revision: 51b373cd3455b8c2b9babbf6ff41918116a442ac
      path: modules/hal/stm32
      groups:
        - hal
    - name: hal_telink
      revision: d7b72519dc5288487e6eedf39c08c3b12ce307ff
      path: modules/hal/telink
      submodules: true
      groups:
        - hal
    - name: hal_ti
      revision: 905a5d4134899630071f9383aadaaf266e8f8cd2
      path: modules/hal/ti
      groups:
        - hal
    - name: hal_xtensa
      revision: 0e577021bb66e644afd067cd9f7c71ab11b62b3d
      path: modules/hal/xtensa
      groups:
        - hal
    - name: libmetal
      revision: 850a3c3fd5bc655987021dc9106d8e8cd0f7e061
      path: modules/hal/libmetal
      groups:
        - hal
    - name: liblc3codec
      revision: 3951cf1b71ff3be086c9b9b595e473e12301337c
      path: modules/lib/liblc3codec
    - name: littlefs
      path: modules/fs/littlefs
      groups:
        - fs
      revision: 652f2c5646e79b881e6f3099686ad3b7af9e216c
    - name: loramac-node
      revision: 12019623bbad9eb54fe51066847a7cbd4b4eac57
      path: modules/lib/loramac-node
    - name: lvgl
      revision: 07eab463f991f9ea1738a671fa81ad1e54f50ffb
      path: modules/lib/gui/lvgl
    - name: lz4
      revision: 8e303c264fc21c2116dc612658003a22e933124d
      path: modules/lib/lz4
    - name: mbedtls
      revision: 7fed49c9b9f983ad6416986661ef637459723bcb
      path: modules/crypto/mbedtls
      groups:
        - crypto
    - name: mcuboot
      revision: e7415b555134e671ba04f036b02f55cbc087d0e9
      path: bootloader/mcuboot
    - name: mipi-sys-t
      path: modules/debug/mipi-sys-t
      groups:
        - debug
      revision: a5163c1800a5243f8b05d84c942da008df4cb666
    - name: nanopb
      revision: d148bd26718e4c10414f07a7eb1bd24c62e56c5d
      path: modules/lib/nanopb
    - name: net-tools
      revision: f49bd1354616fae4093bf36e5eaee43c51a55127
      path: tools/net-tools
      groups:
        - tools
    - name: nrf_hw_models
      revision: 93406267eca506003bcb86a86927777a32e729d9
      path: modules/bsim_hw_models/nrf_hw_models
    - name: open-amp
      revision: 8d53544871e1f300c478224faca6be8384ab0d04
      path: modules/lib/open-amp
    - name: openthread
      revision: dc5fe8d71b613a036e962c0249e0c9100936fe5a
      path: modules/lib/openthread
    - name: picolibc
      path: modules/lib/picolibc
      revision: e87b2fc37345a62361478f0a6efd140e14180ba5
    - name: segger
      revision: 3a52ab222133193802d3c3b4d21730b9b1f1d2f6
      path: modules/debug/segger
      groups:
        - debug
    - name: sof
      revision: 2efc3ea41c0074c6dab5f376fafaa26f52c25c75
      path: modules/audio/sof
    - name: tflite-micro
      revision: 9156d050927012da87079064db59d07f03b8baf6
      path: modules/lib/tflite-micro
      repo-path: tflite-micro
    - name: tinycbor
      revision: 9e1f34bc08123aaad7666d3652aaa839e8178b3b
      path: modules/lib/tinycbor
    - name: tinycrypt
      revision: 3e9a49d2672ec01435ffbf0d788db6d95ef28de0
      path: modules/crypto/tinycrypt
      groups:
        - crypto
    - name: TraceRecorderSource
      revision: e8ca3b6a83d19b2fc4738a0d9607190436e5e452
      path: modules/debug/TraceRecorder
      groups:
        - debug
    - name: trusted-firmware-m
      revision: 7c53a6e76130a85303f83b15d868a92fdcd5f5be
      path: modules/tee/tf-m/trusted-firmware-m
      groups:
        - tee
    - name: tf-m-tests
      revision: c99a86b295c4887520da9d8402566d7f225c974e
      path: modules/tee/tf-m/tf-m-tests
      groups:
        - tee
    - name: psa-arch-tests
      revision: a81f9da287569f169d60026916952641b233faa8
      path: modules/tee/tf-m/psa-arch-tests
      groups:
        - tee
    - name: zcbor
      revision: 882c489a7d9fdfff31d27666914a78a9eb6976d7
      path: modules/lib/zcbor
    - name: zscilib
      path: modules/lib/zscilib
      revision: fc979a8dcb74169c69b02835927bff8f070d6325

  group-filter:
    - -ci

  self:
    path: zephyr
    west-commands: scripts/west-commands.yml
    import: submanifests
