# 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: hal_atmel
      revision: 5690f5b84495c8b657ff204c5c827df1ab9e12e3
      path: modules/hal/atmel
    - name: ci-tools
      revision: 081d80d6e25366a311015f00418898a94bff6b64
      path: tools/ci-tools
    - name: civetweb
      revision: 99129c5efc907ea613c4b73ccff07581feb58a7a
      path: modules/lib/civetweb
    - name: esp-idf
      revision: 6835bfc741bf15e98fb7971293913f770df6081f
      path: modules/hal/esp-idf
    - name: fatfs
      revision: 0c1288bb817c1976388e0f55e8483f671ae437ab
      path: modules/fs/fatfs
    - name: hal_cypress
      revision: a12d92816a53a521d79cefcf5c38b9dc8a4fed6e
      path: modules/hal/cypress
    - name: hal_nordic
      revision: 8506c348b6da91a9f53bcbb181ecd82b752b9eed
      path: modules/hal/nordic
    - name: hal_openisa
      revision: 6416140c00f7e663752bd420ba89e3caefc1d70e
      path: modules/hal/openisa
    - name: hal_microchip
      revision: 85302959c0c659311cf90ac51d133e5ce19c9288
      path: modules/hal/microchip
    - name: hal_silabs
      revision: 9151e614c23997074acd1096a3e8a9e5c255d5b9
      path: modules/hal/silabs
    - name: hal_st
      revision: fa481784b3c49780f18d50bafe00390ccb62b2ec
      path: modules/hal/st
    - name: hal_stm32
      revision: 92bdc131f915e53c19c03c65ae275fb0c9c7ee91
      path: modules/hal/stm32
    - name: hal_ti
      revision: 879c7d08ffc6cd18737847030b906cffe3b0a8fb
      path: modules/hal/ti
    - name: libmetal
      revision: 45e630d6152824f807d3f919958605c4626cbdff
      path: modules/hal/libmetal
    - name: lvgl
      revision: 74fc2e753a997bd71cefa34dd9c56dcb954b42e2
      path: modules/lib/gui/lvgl
    - name: mbedtls
      revision: 3776c158fe138a72c97c187e4d31c81c37884be9
      path: modules/crypto/mbedtls
    - name: mcuboot
      revision: c2bd757332bfde11c27019f937b0c61d5e9b9fd9
      path: bootloader/mcuboot
    - name: mcumgr
      revision: b18b3d16441f40cf983aa034258e8f7c97bfe9bf
      path: modules/lib/mcumgr
    - name: net-tools
      revision: 30b7efa827b04d2e47840716b0372737fe7d6c92
      path: tools/net-tools
    - name: nffs
      revision: 00dd4fab1a00f2f6e995ef3f2e7c3814689f8885
      path: modules/fs/nffs
    - name: hal_nxp
      revision: ef000ff5d902c938e3d4763155b0511b043017c8
      path: modules/hal/nxp
    - name: open-amp
      revision: 9b591b289e1f37339bd038b5a1f0e6c8ad39c63a
      path: modules/lib/open-amp
    - name: openthread
      revision: 05aaccc6e0db0fe17ac4beed2a2aacc9a9af167c
      path: modules/lib/openthread
    - name: segger
      revision: 6fcf61606d6012d2c44129edc033f59331e268bc
      path: modules/debug/segger
    - name: tinycbor
      path: modules/lib/tinycbor
      revision: 0fc68fceacd1efc1ce809c5880c380f3d98b7b6e
    - name: littlefs
      path: modules/fs/littlefs
      revision: fe9572dd5a9fcf93a249daa4233012692bd2881d
    - name: mipi-sys-t
      path: modules/debug/mipi-sys-t
      revision: baf51863f19f009b92e762115ba5572a5b996b92
    - name: nrf_hw_models
      path: modules/bsim_hw_models/nrf_hw_models
      revision: fec69703cb1ca06fcdab6d5fde01274f0fc5c759
    - name: hal_xtensa
      revision: 382b309b481adc85dd517d50b8a458bcb86f15d4
      path: modules/hal/xtensa

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