pw_software_update: Add user_manifest bundle arg

This change adds a user-defined "user_manifest" option to the GN
template for creating update bundles. The user manifest is treated like
any other target payload for the purpose of bundle creation, but has a
unique API on the GN side because it will be treated differently in the
update client on the firmware side.

Tested: Built downtream with and without user_manifest
Change-Id: Id15d8138e17e4a85808ae04b3c014be5f6e3ea18
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/65360
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Joe Ethier <jethier@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
1 file changed
tree: 4403cd7dc0d51ed33e2c4804f8a0c776cc3fd5dc
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_android_toolchain/
  7. pw_arduino_build/
  8. pw_assert/
  9. pw_assert_basic/
  10. pw_assert_log/
  11. pw_base64/
  12. pw_bloat/
  13. pw_blob_store/
  14. pw_bluetooth_hci/
  15. pw_boot/
  16. pw_boot_cortex_m/
  17. pw_build/
  18. pw_build_info/
  19. pw_build_mcuxpresso/
  20. pw_bytes/
  21. pw_checksum/
  22. pw_chrono/
  23. pw_chrono_embos/
  24. pw_chrono_freertos/
  25. pw_chrono_stl/
  26. pw_chrono_threadx/
  27. pw_cli/
  28. pw_console/
  29. pw_containers/
  30. pw_cpu_exception/
  31. pw_cpu_exception_cortex_m/
  32. pw_crypto/
  33. pw_docgen/
  34. pw_doctor/
  35. pw_env_setup/
  36. pw_file/
  37. pw_function/
  38. pw_fuzzer/
  39. pw_hdlc/
  40. pw_hex_dump/
  41. pw_i2c/
  42. pw_interrupt/
  43. pw_interrupt_cortex_m/
  44. pw_kvs/
  45. pw_libc/
  46. pw_log/
  47. pw_log_basic/
  48. pw_log_null/
  49. pw_log_rpc/
  50. pw_log_tokenized/
  51. pw_malloc/
  52. pw_malloc_freelist/
  53. pw_metric/
  54. pw_minimal_cpp_stdlib/
  55. pw_module/
  56. pw_multisink/
  57. pw_package/
  58. pw_persistent_ram/
  59. pw_polyfill/
  60. pw_preprocessor/
  61. pw_presubmit/
  62. pw_protobuf/
  63. pw_protobuf_compiler/
  64. pw_random/
  65. pw_result/
  66. pw_ring_buffer/
  67. pw_router/
  68. pw_rpc/
  69. pw_snapshot/
  70. pw_software_update/
  71. pw_span/
  72. pw_status/
  73. pw_stm32cube_build/
  74. pw_stream/
  75. pw_string/
  76. pw_symbolizer/
  77. pw_sync/
  78. pw_sync_baremetal/
  79. pw_sync_embos/
  80. pw_sync_freertos/
  81. pw_sync_stl/
  82. pw_sync_threadx/
  83. pw_sys_io/
  84. pw_sys_io_arduino/
  85. pw_sys_io_baremetal_lm3s6965evb/
  86. pw_sys_io_baremetal_stm32f429/
  87. pw_sys_io_stdio/
  88. pw_target_runner/
  89. pw_thread/
  90. pw_thread_embos/
  91. pw_thread_freertos/
  92. pw_thread_stl/
  93. pw_thread_threadx/
  94. pw_tls_client/
  95. pw_tls_client_boringssl/
  96. pw_tls_client_mbedtls/
  97. pw_tokenizer/
  98. pw_tool/
  99. pw_toolchain/
  100. pw_trace/
  101. pw_trace_tokenized/
  102. pw_transfer/
  103. pw_unit_test/
  104. pw_varint/
  105. pw_watch/
  106. pw_web_ui/
  107. pw_work_queue/
  108. targets/
  109. third_party/
  110. .bazelignore
  111. .bazelrc
  112. .clang-format
  113. .clang-tidy
  114. .eslintrc.json
  115. .gitattributes
  116. .gitignore
  117. .gn
  118. .prettierrc.js
  119. .pylintrc
  120. activate.bat
  121. AUTHORS
  122. bootstrap.bat
  123. bootstrap.sh
  124. BUILD.bazel
  125. BUILD.gn
  126. BUILDCONFIG.gn
  127. CMakeLists.txt
  128. LICENSE
  129. modules.gni
  130. OWNERS
  131. package.json
  132. PW_PLUGINS
  133. README.md
  134. tsconfig.json
  135. WORKSPACE
  136. yarn.lock
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/

Links