| commit | c687530449b7fc3cc597aae33efa09202635edf0 | [log] [tgz] |
|---|---|---|
| author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Thu Feb 01 09:34:18 2024 +0000 |
| committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Feb 01 09:34:18 2024 +0000 |
| tree | 10e2432273813cdce913f853d5b7f9cf2657a87a | |
| parent | ad30eead837005f400532ef47512e683a6e902c7 [diff] |
[third_party/pigweed] Roll 20 commits
b63b498bfa32e6f pw_toolchain_bazel: Create temporary variable
0e8ccae17ac616b pw_async_basic: Test flake fix
494b7f1305cde7c pw_toolchain: Use less generic names for B1-B5
cab494ddb20862d pw_toolchain_bazel: Add a concept of well-known fe
0bb3c2e2e67cefa pw_async_basic: Fix data race in newly added test
07f3883976500d5 pw_grpc: Add new module
b75dbe548abb71d pw_toolchain_bazel: Implement requires_any_of for
d85afb6beb1915f seed: Add authors to SEED document headers
81b4e41ca85045e pw_alignment: Add CMake & Soong support
5d09b50704fedfa pw_cpu_exception_cortex_m: Handle ARM v8.1 case
54df1af04307a7c pw_transfer: Make cancellation a method on handles
e5a3ac35b63b7e8 pw_toolchain: Use LLVM compiler-rt builtins
0f089a31b24f9d4 pw_toolchain_bazel: Migrate to custom PwFeatureInf
2fbb8d04e0ac4b6 docs: Fix module homepage canonical URLs
c692387895636a8 pw_tokenizer: Mention GCC template bug in the docs
88a609196fd8cb5 pw_format: Fix safe buildifier warnings
714f42a5e69e0fa pw_transfer: Allow setting a transfer resource siz
58010f768811359 pw_compilation_testing: Minor improvements
e61c2daa82871ad pw_async_basic: Fix ordering of tasks posted at sa
2f985e8ce1ff67b pw_{build,presubmit}: Support disabling colors
https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 9fcd145216a27e4..b63b498bfa32e6f
Roller-URL: https://ci.chromium.org/b/8757305437486448097
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ib153f7702fd4309ba71a522d0a6ba851e5bc6ac7
Reviewed-on: https://pigweed-review.googlesource.com/c/gonk/+/189945
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Clone the repo
git clone https://pigweed.googlesource.com/pigweed/gonk
Source bootstrap.sh to download all compilers and tooling into the environment directory:
. ./bootstrap.sh
This should init all git submodules for you.
From here on the Pigweed environment is activated. You can activate the environment in a new shell without re-running bootstrap by sourcing activate.sh
. ./activate.sh
Build for the host and device by running:
pw build
This is mostly a shortcut with nice output for running gn gen out/gn and ninja -C out/gn.
The build commands are defined in: //tools/gonk_tools/build_project.py.
The Verilog build requires the following to be installed on Linux:
sudo apt install fpga-icestorm nextpnr-ice40 yosys
Run this to compile the Gonk Verilog:
pw build
The bitstream files will be written with the .bin extenson under ./out/gn/obj/fpga/*/*.bin along with log output files.
For example:
$ ls ./out/gn/obj/fpga/toplevel/ nextpnr-log.txt toplevel.asc toplevel.bin toplevel.json toplevel_timing_report.json toplevel_timing_report.txt yosys-log.txt
fpga_config ExampleFlash the stm32f7 and launch the write_fpga.py script on a bitstream file.
dfu-utilUnplug gonk from USB and replug with MODE button held down.
Run pw flash on the MCU binary.
pw flash ./out/gn/arduino_size_optimized/obj/applications/fpga_config/fpga_config.bin
Write an FPGA bitstream with the write_fpga.py script:
python ./tools/gonk_tools/write_fpga.py ./applications/fpga_config/fpga_blinky.bin
spi_flash_test Exampledfu-utilUnplug gonk from USB and replug with MODE button held down.
Run pw flash on the MCU binary.
pw flash ./out/gn/arduino_size_optimized/obj/applications/spi_flash_test/spi_flash_test.bin
Unplug Gonk from USB and replug to reset the hardware. SPI bus issues have been observed without this step.
Connect over serial.
python -m serial.tools.miniterm --raw /dev/ttyGonk 1000000
You should see output matching:
--- Miniterm on /dev/ttyGonk 1000000,8,N,1 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- INF Device id: 1f 84 1 INF Device id: 1f 84 1 INF Device id: 1f 84 1 INF Device id: 1f 84 1
./scripts/flash-with-blackmagic-probe.sh ./out/gn/arduino_size_optimized/obj/applications/spi_flash_test/bin/spi_flash_test.elf
Run the host app and connect to it via pw-system-console:
./out/gn/host_device_simulator.speed_optimized/obj/applications/system_example/bin/system_example & \ pw-system-console --socket-addr default \ --proto-globs third_party/pigweed/pw_rpc/echo.proto ; \ killall system_example
Flashing
openocd -s $PW_PIGWEED_CIPD_INSTALL_DIR/share/openocd/scripts \ -f $GONK_ROOT/targets/stm32f769i_disc0_stm32cube/openocd_stm32f7xx.cfg \ -c "program out/gn/stm32f769i_disc0_stm32cube.size_optimized/obj/applications/system_example/bin/system_example.elf reset exit"
Checkout the desired commits in each of these submodules:
third_party/stm32cube_f7/cmsis_core third_party/stm32cube_f7/cmsis_device third_party/stm32cube_f7/hal_driver
Then run from Gonk root:
python -m pw_stm32cube_build gen_file_list third_party/stm32cube_f7
| Net | STM32 Pin | STM32 Function | Function |
|---|---|---|---|
| STATUS | PB13 | GPIO_Output | STAT LED |
| Net | FPGA IO# | STM32 Pin | STM32 Function | Flash Pin |
|---|---|---|---|---|
| ICE_SPI_SS | 71 | PD2 | GPIO_Output | S# |
| ICE_SPI_MISO | 68 | PB4 | SPI1_MISO | DQ1 |
| ICE_SPI_MOSI | 67 | PB5 | SPI1_MOSI | DQ0 |
| ICE_SPI_SCK | 70 | PB3 | SPI1_SCK | C |
| FLASH_HOLD | 63 | PC11 | GPIO_Output | HOLD#/DQ3 |
| FLASH_WP | 64 | PC12 | GPIO_Output | W#/VPP/DQ2 |
| Net | Function | FPGA IO# | STM32 Pin | STM32 Function | Notes |
|---|---|---|---|---|---|
| FPGA_IO_SPARE_0_2 | rst_i | 135 | PA0 | GPIO_Output | Active high |
| FPGA_IO_SPARE_0_0 | mode_i | 137 | PB11 | GPIO_Output | FPGA operation mode |
| DSPI_CS | valid_o | 75 | PB6 | GPIO_Output | Data/Transfer Valid |
| FPGA_IO_SPARE_1_1 | miso_i | 101 | PC2 | SPI1_MISO | |
| FPGA_IO_SPARE_1_0 | mosi_i | 99 | PC3 | SPI1_MOSI | |
| I2C_O_SDA | cs_n | 79 | PB9 | SPI1_NSS | |
| FPGA_IO_SPARE_0_1 | sclk_i | 136 | PB10 | SPI1_SCK | |
| FPGA_IO_SPARE_2_0 | 49 | PA7 | |||
| FPGA_IO_SPARE_2_1 | 48 | PA6 | |||
| FPGA_IO_SPARE_2_2 | 47 | PA5 | |||
| FPGA_IO_SPARE_2_3 | 45 | PA4 |