* Adds check that ensures the Bazel and CMake Pico SDK version strings
stay in sync.
* Adds check that ensures the Bazel pins for external dependencies stays
in sync with the git submodule pins.
* Updates cyw43-driver pin in Bazel.
* Makes the checks for some build configurability options non-blocking.
* Add XIP cache maintenance API (fixes#2005)
Also add a cache clean to hardware_flash implementations, to avoid
losing pending writes on the subsequent invalidate.
* Fix comment typos, add to docs index, remove unnecessary defaulting of XIP_CACHE assertions on FLASH
* Fix sense of unsigned wrapping test
* update bazel build
---------
Co-authored-by: graham sanderson <graham.sanderson@raspberrypi.com>
* add support for machdyne werkzeug rp2040 board
* boards/machdyne_werkzeug: set default flash size for cmake
---------
Co-authored-by: inc <87362+inc@users.noreply.github.com>
It seems to be possible to get stuck in the loop which is checking for
abort. It can take 100s of iterations before an abort happens and on
each iteration we're clearing the abort interrupt even when it's not
required. If we only clear the abort when needed the lockup doesn't seem
to be reproducible.
Fixes#2025
* Add `pico_btstack_mesh` CMake library to link BlueTooth Mesh capabilities hidden in BTstack
* Add pico_btstack_mesh to docs
---------
Co-authored-by: theshteves <stevenkneiser@gmail.com>
The function is setting the callback after enabing the interrupt which
can cause a hang if a receive character is already pending.
Similarly we also have to clear the callback pointer only after the
interrupt is disabled.
Fixes#2009
Add the key files and partition table JSON to the link dependencies, to ensure the postprocessing is run when any of them are updated. Link dependencies seem to be the simplest way, as the elf file needs re-linking anyway given it has been post-processed, so this doesn't add any unecessary extra processing.
Without this fix, if you modify a pt.json file or a private key, the ouptut binary will not have the correct pt/key.
GCC14 doesn't like the 2-character temporary label "00" and throws an error
.../pico-sdk/src/rp2040/boot_stage2/boot2_w25x10cl.S: Assembler messages:
.../pico-sdk/src/rp2040/boot_stage2/boot2_w25x10cl.S:147: Error: junk at end of line, first unrecognized character is `0'
.../pico/rp2040/pico-sdk/src/rp2040/boot_stage2/boot2_w25x10cl.S:150: Error: garbage following instruction -- `beq 00b'
Convert it to a single number, "1", like in other boot2xxx.S files
Fixes#1999
Correct flash size from 8MB to 4MB to avoid wrapped addresses causing
firmware to be overwritten by the user filesystem in MicroPython.
Signed-off-by: Phil Howard <github@gadgetoid.com>
Stop handle_sync_func_call removing the worker. Depending on thread priority
this can occur after the memory has gone out of scope in
async_context_freertos_execute_sync.
Fixes#1962
It was probably not a good idea to put the default pin definitions in
cyw43_configport.h as they're specific to pico_w and Micropython needs
these but it has it's own version of cyw43_configport.h
* [Bazel] Fix bazel build, add presubmit
* Fixes a missing dep in the Bazel build breaking the host build.
* Automagically finds all board headers.
* Improves presubmit script polish for GH Action readiness.
* Adds a GitHub action workflow for the Bazel build.
* Disable failing checks
* Disables Windows, as there's a mix of real build errors and
overly-ambitious checks that don't work on Windows.
* Disables extra checks temporarily since it's currently failing.
* Update pico_configure_ip4_address comments
Update pico_configure_ip4_address CMakeLists.txt function comments to correct compile definition names
* Swap compile definitions in comments
Swap compile definitions order in pico_configure_ip4_address to group more naturally.
* Export linker scripts in the bazel build.
Make the rp2040 and rp2350 linker scripts available in downstream
projects bazel builds.
* Move exports_files below the package declaration.
The comments for the values of `enum gpio_irq_level` mix up zero and
one. This commit replaces "0" with "1" and vice versa where appropriate
in those comments.
* Add board file for pico2_w
This is a copy of pico2 with the definitions from pico_w added.
Set PICO_BOARD=pico2_w
* Simplify CYW43 PIO config
cyw43_spi_init contains code to find a free PIO and state machine. This
can all be replaced with pio_claim_free_sm_and_add_program_for_gpio_range
* Make CYW43 gpio pins configurable at build time
The CYW43 gpio pins are currently hardcoded. Give the defines better
names and make them overrideable at build time.
Note: CYW43_PIN_WL_REG_ON and CYW43_PIN_WL_HOST_WAKE are already used by
the driver via cyw43_hal_* functions
* Fix pio initialisation
Need to make sure the pio can work with all the gpios
* Add missing doxygen for cyw43_set_pio_clock_divisor
* Support dynamic configuration of cyw43 gpio pins
Add CYW43_PIN_WL_DYNAMIC that means cyw43 gpio pins can be changed at
runtime.
Then CYW43_PIN_WL_* calls cyw43_get_pin_wl to get the gpio out of
the array.
cyw43_set_pins_wl can be used to change the cyw43 gpio pins although
care is needed when calling this?
* Some fixes for cyw32 gpio > 32
* Allow CYW43 to be configured with cmake
* Add default config of CYW43_WL_GPIO_COUNT to cyw43_configport.h
* Fix some review comments
Add some PICO_CMAKE_CONFIG
Stop using gpio_*_mask64 functions