757 Commits

Author SHA1 Message Date
Jacob Dahl
8017135965 Update platforms/nuttx/src/bootloader/stm/stm32_common/main.c 2024-11-19 12:19:19 -05:00
alexklimaj
eb76cc6001 stm32 bootloader: use STM32_CPUCLK_FREQUENCY for systick_mhz 2024-11-19 12:19:19 -05:00
Julian Oes
fe26cdebc0
stm32h7: Reset USART clock selection (#23498) (#23516)
This resets the USARTs' clock source selection to the default, in case
it has been changed by the bootloader.

This is required if booting from the ArduPilot bootloader which happens
to reset the clock selection to PLL.

Without this fix, UARTs (including the console) is garbled, so
presumably at an invalid baudrate.
2024-08-09 10:25:19 +12:00
Peter van der Perk
50dd011c5e Update NuttX
Backports:
stm32h755II backport
stm32h7: allow Ethernet MAC without PHY
imxrt: imxrt11xx set core clock to 1p15v regardless of ocotp
imxrt: Correctly update PLL, bit has to toggled instead of being set
2024-07-10 22:00:47 -04:00
Peter van der Perk
e00101b771 [BACKPORT] imxrt: Change PLL settings for more accurate dshot timing 2024-07-10 22:00:47 -04:00
David Sidrane
ec2c91fa90 nxp/imxrt_common/main:Fix Breakage from a9962dc 2024-06-07 09:24:40 +12:00
Julian Oes
9dc3f6ea12 bootloader: remove unused/duplicate defines 2024-06-07 09:24:40 +12:00
Julian Oes
0d957e9e87 bootloader: track ArduPilot protocol
Just so we don't conflict on these commands in the future.
2024-06-07 09:24:40 +12:00
Julian Oes
cc83186dcc bootloader: add bootloader version
This adds a new protocol extension which allows to get the bootloader
version.

The bootloader version is different from the bootloader protocol
revision which has stabilized at 5 and is not easy to update unless a
bootloader is actually breaking the protocol. The reason being that both
the Python script as well as the uploader used in QGC will not attempt
to load firmware if they don't know the bootloader version, so it could
basically be considered a "breaking" protocol revision.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-06-07 09:24:40 +12:00
Julian Oes
eb9fd7ec76 tools/bootloader: add force-erase option
If the STM32H7 fails to program or erase a full chunk of 256 bytes, the
ECC check will trigger a busfault when trying to read from it.

To speed up erasing and optimize wear, we read before erasing to check
if it actually needs erasing. That's when a busfault happens and the
erase time outs.

The workaround is to add an option to do a full erase without check.

Credit goes to:
https://github.com/ArduPilot/ardupilot/pull/22090

And the protocol option added to the bootloader is the same as for
ArduPilot, so compatible.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-06-07 09:24:40 +12:00
David Sidrane
f10650e114 [BACKPORT] px4_fmu-v6xrt & bootloader:Bootloader enusres that ITCM memory is writable before jump to APP 2024-06-05 11:15:45 -04:00
David Sidrane
82a259cebe [BACKPORT] bootloader/common/bl.c:Fixed Wrong vec_base caculation - only effects imxrt 2024-06-05 11:15:45 -04:00
David Sidrane
5903a815b7 NuttX with imxrt:lpuart & 1170 MPU Backports
[BACKPORT] imxrt: lpuart singlewire transfer support

   These correctly enables mpu_rest on MPU init if CONFIG_ARM_MPU_RESET
   is defined.
   [BACKPORT] imxrt: 1170 MPU config ensure no lockups can occur
   [BACKPORT] armv{7|8}-{m|r}:MPU fix CONFIG naming to include ARM
2024-06-05 11:15:45 -04:00
David Sidrane
0ca57a5547 NuttX with imxrt_sd-preflight backport 2024-06-05 11:15:45 -04:00
Jacob Dahl
b8e43e1649 [mavlink] Parameter to always start on USB (#22234)
* usb: Added parameter to enable always starting mavlink on USB.

    Refactored cdcacm_init into a module and added a paramter to allow always starting mavlink on
    USB, also added a paramter to choose the mode. The current default behavior is to wait and listen
    for data on USB and auto-detect the protocol (mavlink, nsh, ublox). This results in the mavlink
    stream not starting until something else on the mavlink network sends a packet first. The new
    default behavior is to always start mavlink.

    Added parameters
    MAV_USB_ENABLE -- default 1 (always start mavlink on USB)
    MAV_USE_MODE -- default 3 (onboard)

* added 3 retries for opening serial port in mavlink, removed sleep before sercon

* added DRIVERS_CDCACM_AUTOSTART to ark-v6x default.px4board

* added CONFIG_DRIVERS_CDCACM_AUTOSTART=y to default.px4board for boards with CONFIG_CDCACM in their nsh/defconfig

* format

* remove PGA460 from COMMON_DISTANCE_SENSOR to save flash

* remove LIS2MDL from COMMON_MAGNETOMETER to save flash

* disable CONFIG_DRIVERS_CDCACM_AUTOSTART for fmu-v5 protected.px4board

* moved and renamed parameters, removed mode logic in mavlink

* changed parameter names, added mode none

* remove parameters from mavlink
2024-05-29 11:23:16 -04:00
Eric Katzfey
2dccd6cacb
Voxl ESC driver update (#23022)
* Made Serial API open the UART in NON BLOCKING mode
* Updated voxl_esc driver to latest from ModalAI fork
* Ported voxl_esc driver over to new Serial UART API
* Removed voxl_esc serial abstraction since new Serial API is already a serial abstraction
2024-04-17 15:09:35 -04:00
alexklimaj
528ad1e87d boards: ARK Pi6X Initial Commit 2024-04-12 14:44:01 -04:00
Peter van der Perk
7bfad2502b Update NuttX 2024-04-10 11:04:07 -04:00
Eric Katzfey
0a867b5d1d
Serial: removed the validateBaudrate function from nuttx and posix platforms and just send out a warning it baudrate is non-standard (#22969)
- Fix some Qurt platform build issues uncovered when changing the posix version of SerialImpl
2024-04-04 12:07:46 -04:00
Eric Katzfey
8e61026511
Port CRSF RC driver to new Serial UART API (#22917)
* Added implementations of Rx Tx swap and single wire for new UART API needed by CRSF driver
* Added inverted mode to Serial interface API
2024-04-01 22:09:13 -04:00
Peter van der Perk
8817f59108 v6x-rt: Split ITCM static and auto-generated functions 2024-04-01 22:05:20 -04:00
Eric Katzfey
ccdf060393
Additions to the Serial UART API (#22953)
- Added an empty constructor, setPort, and validatePort functions for Serial API
- Changed GPS to not allocate Serial object dynamically
- Moved access check on serial port name into the Serial API
- Improved the Qurt platform validatePort Serial function to implement a more rigorous check. Added safety check
to the setPort Serial function to make sure it isn't called after the port has been already opened.
2024-04-01 12:27:59 -04:00
David Sidrane
3099eac2ba NuttX with pr-h7-serial-logic-error backport 2024-03-27 14:43:08 -04:00
Eric Katzfey
69028f37a9
New platform independent Serial interface (#21723) 2024-03-21 21:00:23 -04:00
Peter van der Perk
d28653b605 nuttx: update apps 2024-03-04 13:32:36 -05:00
David Sidrane
76a2acb222 stm32h7:adc Dynamically set clock prescaler & BOOST
The ADC peripheral can only support up to
   50MHz on rev V silicon and 36MHz on Y silicon.
   The existing driver always used no prescaler
   and kept boost setting at 0.
2024-01-30 18:07:57 -05:00
David Sidrane
85bfba4497 NuttX with h7 adc clock Backports 2024-01-30 18:07:57 -05:00
David Sidrane
150a161efb nxp Support BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane
46a8eb6335 PX4:Extend manifest types & add CLI query 2024-01-30 11:15:03 -05:00
David Sidrane
dc01c3a08e stm Support BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane
136e08652f PX4:comon Support BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane
0df611b115 NuttX with stm32h7:serial make TX DMA busy backport 2024-01-23 11:23:00 -05:00
David Sidrane
9849abcb63 rt1170:spi_hw_description:Support Validation and HW selection 2024-01-16 17:09:26 -05:00
David Sidrane
d33bb59225 NuttX with multi-PHY backports 2024-01-16 17:09:26 -05:00
Peter van der Perk
cf840ff373 Update NuttX 2024-01-06 04:41:00 -05:00
Peter van der Perk
e79f6b2ac1 v6x-rt: Add reboot to isp support 2024-01-05 08:41:41 -05:00
Peter van der Perk
84093a07a2 reboot: Add reboot to ISP option 2024-01-04 11:17:16 -05:00
Peter van der Perk
8ba18a78af v6x-rt: move romapi to platform 2024-01-04 05:12:34 -05:00
Peter van der Perk
fe4333f4a0 Update NuttX 2023-12-15 10:15:02 -05:00
Peter van der Perk
e2c027405e px4_fmu-v6xrt: Add dshot support 2023-12-15 10:15:02 -05:00
David Sidrane
936c18733b NuttX with NXP Backports 2023-12-07 21:13:40 -05:00
David Sidrane
2af21ee0b6 NuttX with No TXDMA semaphore in serial backports 2023-12-06 11:46:47 -05:00
Beat Küng
a9c4e5a33f cmake: allow extra nuttx config options via PX4_EXTRA_NUTTX_CONFIG env var 2023-11-22 21:41:53 -05:00
David Sidrane
e90e8ae0ea Intial Commit PX4 FMUV6RT
nxp/rt117x:Fix Pin IRQ

nxp/rt117x:Support 4 i2c busses

nxp/rt117x:Add px4io_serial support

nxp/imxrt:Expand ToneAlarmInterface to GPT 3 & 4

px4_fmu-6xrt:Using imxrt_flexspi_nor_octal

px4_fmu-6xrt:Entry is start

px4_fmu-6xrt:Add Proper MTD

px4_fmu-6xrt:Set I2C Buses

px4_fmu-6xrt:Proper SPI usage

px4_fmu-6xrt:Adjust memory Map to use the 2 MB

px4_fmu-6xrt:Bring in ROMAPI

px4_fmu-6xrt:Push FLASH to 200Mhz

px4_fmu-6xrt:Use BOARD_I2C_LATEINIT

px4_fmu-6xrt:Clock Config remove unused devices

px4_fmu-6xrt:Remove EVK SDRAM IO

px4_fmu-6xrt:Enable SE550 using HW_VER_REV_DRIVE

px4_fmu-6xrt:Use MTD to mount FRAM on Flex SPI

px4_fmu-6xrt:Manifest

px4_fmu-6xrt:Restore board_peripheral_reset

px4_fmu-6xrt:Set I2C buss Interna/Externa and startup

nxp/rt117x:Set 6 I2C busses

px4_fmu-6xrt:Correct Clock Sources and Freqency Settings

px4_fmu-6xrt:Correct ADC Settings

px4_fmu-6xrt:Tune FlexSPI config and sync header with debug variant Linker prep for rodata ahb partitioning

px4_fmu-6xrt:FlexSPI prefetch partition split .text and .rodata

   Current config
     1KB Prefetch .rodata
     3KB Prefetch .text

px4_fmu-6xrt:Run imxrt_flash_setup_prefetch_partition from ram with barriers

px4_fmu-6xrt:Use All OCTL setting from FLASH g_flash_config SANS lookupTable

px4_fmu-6xrt:Octal spi boot/debug problem bypass

px4_fmu-6xrt:Add PWM test

px4_fmu-6xrt:Fix clockconfig and USB vbus sense

px4_fmu-6xrt: Use TCM

px4_fmu-6xrt: Ethernet bringup

imxrt: use unique_id register for board_identity

px4_fmu-6xrt: update ITCM mapping, todo proper trap on pc hitting 0x0

px4_fmu-6xrt:correct rotation icm42688p onboard imu

rt117x: Add SSARC HP RAM driver for memory dumps

px4_fmu-6xrt: Enable hardfault_log

px4_fmu-6xrt: Enable DMA pool

px4_fmu-6xrt: fix uart mapping

px4_fmu-6xrt: enable SocketCAN & DroneCAN

px4_fmu-6xrt:Command line history TAB completion

px4_fmu-6xrt:Fix pinning duplication

px4_fmu-6xrt:Support conditional PHY address based on selected PHY

px4_fmu-6xrt:Add Pull Downs on CTS, use GPIO for RTS

px4_fmu-6xrt:Set TelemN TX Slew rate and Drive Strenth to max

px4_fmu-6xrt::Set TELEM Buffers add HW HS

px4_fmu-6xrt:Turn off DMA poll

px4_fmu-6xrt:RC_SERIAL_PORT needed to be px4io to disable rc_input using TELEM2!

px4_fmu-6xrt: bootloader (#22228)

* imxrt:Add bootloader support
* bootloader:imxrt clear BOOT_RTC_SIGNATURE
* px4_fmu-6xrt:Add bootloader
* px4_fmu-6xrt:bootloader removed ADC
* px4_fmu-6xrt:bootloader base bootloader script off of script.ld
* px4_fmu-6xrt:add _bootdelay_signature & change entry from 0x30000000 to 0x30040000
* px4_fmu-6xrt:hw_config Bootloader has to have 12 bytes

px4_fmu-6xrt:Default to use LAN8742A PHY

px4_fmu-v6xrt:VID Set to Drone Code

board_reset:Enable ability to write RTC GP regs

px4_fmu-6xrt:Fix CMP0079 error

rt117x:micro_hal Add a PX4_MAKE_GPIO_PULLED_INPUT

px4_fmu-v6xrt:Set CTS High before VDD_5V applided to ports to avoid radios fro entering bootloaders

fmu-v6xrt: increase 5v down time

fmu-v6xrt:Ready for Release DEBUGASSERTS off and Console 57600,
Bootloder updated.

imxrt:board_hw_rev_ver Rework for 3.893V Ref

px4_fmu-v6xrt:Move ADC to Port3
2023-11-15 11:10:47 -05:00
David Sidrane
e3f8d53718 nxp:imxrt 1060/1170 bifurcation and restructuring
imxrt:117x Reuse all but io_timer_hw_description and imxrt_pinirq.c

   imxrt:ADC & LPADC bifurcation and restructuring

   imxrt:hrt support Up to GPT6

   nxp/rt117x:adc Corrected
2023-11-15 11:10:47 -05:00
Peter van der Perk
d2915743cb px4 hardfault_log: Add SSARC dump backend support 2023-11-15 11:10:47 -05:00
David Sidrane
51cda9edb0 px4 mtd:Support FlexSPI attached Devices 2023-11-15 11:10:47 -05:00
David Sidrane
35b9205b25 px4_platform_common: Break out I2C init if BOARD_I2C_LATEINIT is used 2023-11-15 11:10:47 -05:00
David Sidrane
fa1a858537 px4/nxp/imxrt:Support VER & REV from EEPROM 2023-11-15 11:10:47 -05:00
David Sidrane
222b95233a NuttX with NXP TX DMA Sem fix & IOMUXC GPR fix 2023-11-15 11:10:47 -05:00