Andrew Tridgell
e983738c38
HAL_ChibiOS: fixed a cache corruption issue on H7
...
This fixes a bug introduced in this PR:
https://github.com/ArduPilot/ardupilot/pull/25900
the bug is that when we don't go via the bouncebuffer on H7 we were
also skipping the cache invalidate/flush ops. This caused data
corruption for filesystem operations, particularly noticible as lua
scripts failing to load with parse errors or log corruption
2024-03-16 21:57:33 +11:00
Andrew Tridgell
1e4f597e02
HAL_ChibiOS: fixed support for STM32H7A3
...
need to tell ChibiOS this is a newer H7
2024-02-03 08:36:18 +11:00
Andrew Tridgell
054fb94e9a
HAL_ChibiOS: added support for STM32H7A3
...
interesting MCU as it is the first H7 we support that doesn't have a
128k flash sector size
2024-02-01 11:43:24 +11:00
Andrew Tridgell
07d0418cf9
HAL_ChibiOS: fixed flash support on H7 with 8k page size
...
the STM32H7A3xx has 8k pages
2024-02-01 11:43:24 +11:00
Andrew Tridgell
0a6057f2b3
HAL_ChibiOS: adjust clocks for H723 and H730
...
FDCAN clock must be 80MHz, and also align no-crystal clocks with
clocks for boards with crystals
2024-01-30 12:32:23 +11:00
Andrew Tridgell
967af533b9
HAL_ChibiOS: fixed flash page count on H723
...
single bank H7 has 8 pages
2024-01-30 12:32:23 +11:00
Andrew Tridgell
4eaf5ef247
HAL_ChibiOS: support STM32H723 boards
2024-01-30 12:32:23 +11:00
Andrew Tridgell
e772012e01
HAL_ChibiOS: raise SDMMC clock limit on H7
...
this allows for faster log download on ethernet
2024-01-29 06:51:11 +11:00
Andrew Tridgell
a2707b48c5
HAL_ChibiOS: enable clock management on G4
...
this allows for a different clock tree in the main fw from the
bootloader
2024-01-25 11:44:02 +11:00
Andrew Tridgell
2d031a4d20
HAL_ChibiOS: switched G4 FDCAN clock to 80MHz
...
this requires main CPU clock at 160 MHz instead of 168 MHz
2024-01-25 11:44:02 +11:00
Andrew Tridgell
f7c7ee00e9
HAL_ChibiOS: added a delete_next thread field for cleanup
...
allows for cleanup of web server threads in bootloader
2024-01-21 12:30:08 +11:00
Thomas Watson
5f5673b58f
AP_HAL_ChibiOS: match thread stack pointer types to ChibiOS
...
`__main_thread_stack_base__` and `__main_thread_stack_end__` are
variables whose address is defined to be the corresponding part of the
stack. These are declared as `extern stkalign_t` in ChibiOS code, and
being declared as `extern uint32_t` in ArduPilot code creates a warning
at link time when using LTO. Correct the declaration to eliminate this
warning.
Also update `__main_stack_base__` and `__main_stack_end__` which don't
currently trigger this warning but serve similar purposes and so might
in the future.
The hardware expects an alignment of `stkalign_t` (which is 8 bytes) and
the linker script defines the variable values with this alignment as
well, so this is safe.
No code size or functional change.
2024-01-16 09:24:34 +11:00
Andrew Tridgell
6ea2c28a4d
HAL_ChibiOS: fixed DMA on SPI on H743
...
this fixes DMA failures affecting IMUs on H743. The reason for the
failure is not yet clear, but this reverts back to our old stragegy of
always using the bouncebuffer on H7 as a quick workaround
2024-01-07 19:10:25 +11:00
Andrew Tridgell
c54aa0241a
HAL_ChibiOS: added mem_is_dma_safe() function
...
used for bouncebuffer code and in FATFS code
2024-01-05 06:52:11 -08:00
Andrew Tridgell
cc8c671cb7
HAL_ChibiOS: don't link evtimer in chibios_board.mk
2024-01-03 12:14:47 +11:00
Andrew Tridgell
418897c443
HAL_ChibiOS: removed old lwip options
2024-01-03 12:14:47 +11:00
Andrew Tridgell
9456b585fa
HAL_ChibiOS: don't link lwip bindings from ChibiOS
2024-01-03 12:14:47 +11:00
Andrew Tridgell
d2d2067f1c
HAL_ChibiOS: fixed micros and millis on boards without 1MHz clock
2023-12-24 10:10:14 +11:00
Andrew Tridgell
4a59097b5e
HAL_ChibiOS: use C implemention of div1000
2023-12-21 09:09:11 +11:00
Andrew Tridgell
6dbc3b6a70
HAL_ChibiOS: speed up millis(), micros64() etc
...
these use faster primitives and an assembly division by 1000 to get
between 2x and 3x speedup on these critical calls
2023-12-19 11:47:24 +11:00
Andrew Tridgell
a4fb05de95
HAL_ChibiOS: increase LWIP windows
...
now getting 6.8MByte/s with NET_TESTS=4
2023-12-11 18:00:38 +11:00
Andrew Tridgell
28885dca4c
HAL_ChibiOS: adjust buffer sizes
...
this fixes issues with TCP accepts being lost in web server
2023-12-11 18:00:38 +11:00
Andrew Tridgell
f603f045b5
HAL_ChibiOS: make lwip debugging easier
...
use ap_networking_printf wrapper
2023-12-11 18:00:38 +11:00
Andrew Tridgell
436c60c7de
HAL_ChibiOS: defaults to 50 socket limit
...
makes for more useful web server
2023-12-11 18:00:38 +11:00
Andrew Tridgell
f471732aad
HAL_ChibiOS: enable SO_REUSEADDR
2023-11-28 12:18:55 +11:00
Andrew Tridgell
0659ab8ef4
HAL_ChibiOS: increase max TCP resources
2023-11-28 12:18:55 +11:00
thu5cob
49d7d0b1c4
HAL_ChibiOS: Fix stm32l4+ flash issue
...
stm32l4+ flash reset register has been reset properly
2023-10-06 14:52:34 +11:00
Andrew Tridgell
999919424b
hwdef: allow for MCO pin to be configured
...
this allows for hwdef.dat lines like this:
PA8 MCO1 RCC
PC9 MCO2 RCC
you can control the scaling by defining the following:
- STM32_MCO1SEL
- STM32_MCO1PRE_VALUE
- STM32_MCO2SEL
- STM32_MCO2PRE_VALUE
2023-08-25 07:37:12 +10:00
Andy Piper
52dbac1de7
AP_HAL_ChibiOS: run STM32F103 core clock at 72Mhz on 24Mhz oscillators
2023-08-15 06:53:48 +10:00
Andy Piper
c057cc5485
AP_HAL_ChibiOS: add get_output_mode() and use it to print correct banner for iomcu
...
add support for undef of STM32 lines and DMA_NOMAP
add support for F103 running at 24Mhz
add f103 variants of iofirmware
reduce memory usage in iomcu for new model
correct pwm output reporting
split iofirmware into config + mcu to allow f103 definition
don't enable non-existant timers on F103
2023-08-15 06:53:48 +10:00
Andy Piper
f233a65580
AP_HAL_ChibiOS: add global interrupt handlers for TIM15 and TIM17 on F1
2023-08-15 06:53:48 +10:00
Tom Pittenger
d59c3d7de0
AP_HAL_ChibiOS: remove common_eth.ld
2023-08-06 09:20:08 +10:00
bugobliterator
cf6fd6717b
AP_HAL_ChibiOS: fix alignment for Ethernet safe memory
2023-08-06 09:20:08 +10:00
Tom Pittenger
9698291920
AP_HAL_ChibiOS: fix unused var compile error
2023-08-06 09:20:08 +10:00
bugobliterator
e6b51df7cd
AP_HAL_ChibiOS: dynamically allocate memory for MAC Peripheral
2023-08-06 09:20:08 +10:00
Tom Pittenger
f66327d97d
AP_HAL_ChibiOS: Ethernet related memory allocations
2023-08-06 09:20:08 +10:00
Tom Pittenger
3b79ff0ad3
AP_HAL_ChibiOS: add hooks to compile Networking
2023-08-06 09:20:08 +10:00
Tom Pittenger
d841d250d8
AP_HAL_ChibiOS: allow HW without HW_RNG to SW-based create psuedo-random
2023-08-06 09:20:08 +10:00
Andrew Tridgell
0accc9f897
HAL_ChibiOS: clear EOP bit at end of F4 programming
2023-07-10 06:52:44 +10:00
Andrew Tridgell
0aab2f7974
HAL_ChibiOS: implement newlib alloc functions as malloc wrappers
...
this fixes issue #24106
2023-07-05 07:13:39 +10:00
Andrew Tridgell
54e2e33ee1
HAL_ChibiOS: allow hwdef to specify a NRST_MODE override
...
this allows the boot behaviour of a board to be changes to avoid a
reset issue
2023-06-27 10:32:43 +10:00
Andrew Tridgell
ddb991d9b5
HAL_ChibiOS: fixed 24mhz crystal on H7 with 480MHz clock
...
need to adjust the PLLQ as well as the PLLN
2023-06-20 18:56:13 +10:00
Andrew Tridgell
1055c5f1c6
waf: fixed dependency of ChibiOS build on compiler flags
...
this adds a chibios_flags.h which contains the flags we pass to the
ChibiOS make, which allows us to have a make level dependency on the
flags
this fixes (among other things) the build of copter followed by
bootloader for SPRacingH7
2023-06-20 18:08:31 +10:00
Martin Luessi
b336526765
AP_HAL_ChibiOS: Move scheduler task table to RAM for H750
2023-06-06 19:19:10 +10:00
Martin Luessi
82280b6a8d
AP_HAL_ChibiOS: Rename STM32_FORCE_CLOCK_INIT to HAL_FORCE_CLOCK_INIT
2023-06-06 19:19:10 +10:00
Martin Luessi
350dfc235e
AP_HAL_ChibiOS: Add libgcc comment to H750 linker script
2023-06-06 19:19:10 +10:00
Martin Luessi
f55261c852
AP_HAL_ChibiOS: Use DTCM for vector table for external flash targets
2023-06-06 19:19:10 +10:00
Martin Luessi
ab03c49ea8
AP_HAL_ChibiOS: Move more time critical code to RAM for H750
2023-06-06 19:19:10 +10:00
Martin Luessi
0c93800ec1
AP_HAL_ChibiOS: Copy vector table to RAM if external flash is primary
2023-06-06 19:19:10 +10:00
Martin Luessi
84ccd046c6
AP_HAL_ChibiOS: Change linker script so vector table can be copied to RAM for external flash targets
2023-06-06 19:19:10 +10:00