Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update github worklows from upstream #911

Draft
wants to merge 288 commits into
base: v1.15.3_rebase
Choose a base branch
from

Conversation

TimoSairiala
Copy link

deleted workflows which has also been disabled on our env

  • .github/workflows/compile_linux.yml
  • .github/workflows/compile_linux_arm64.yml
  • .github/workflows/compile_nuttx.yml
  • .github/workflows/deploy_all.yml
  • .github/workflows/metadata.yml

workflows which are disabled on our env

  • .github/workflows/compile_macos.yml
  • .github/workflows/checks.yml
  • .github/workflows/mavros_mission_tests.yml
  • .github/workflows/mavros_offboard_tests.yml
  • .github/workflows/python_checks.yml

reformatted in upstream

  • .github/workflows/clang-tidy.yml
  • .github/workflows/sitl_tests.yml
  • .github/workflows/ekf_functional_change_indicator.yml
  • .github/workflows/ekf_update_change_indicator.yml
  • .github/workflows/failsafe_sim.yml
  • .github/workflows/nuttx_env_config.yml

running in AWS so we should setup executor for these (not ported)

  • flash_analysis.yml
  • .github/workflows/ros_translation_node.yml

not ported

  • compile_ubuntu.yml
  • dev_container.yml
  • cflite_batch.yml

Solved Problem

When ... I found that ...

Fixes #{Github issue ID}

Solution

  • Add ... for ...
  • Refactor ...

Changelog Entry

For release notes:

Feature/Bugfix XYZ
New parameter: XYZ_Z
Documentation: Need to clarify page ... / done, read docs.px4.io/...

Alternatives

We could also ...

Test coverage

Context

Related links, screenshot before/after, video

Jukka Laitinen and others added 30 commits March 12, 2025 12:45
This board specific rc file is executed very early in rcS, and can
be used to set rcS variables only.

This allows:
- Redefining $FRC to replace rest of rcS with an own script from any mountpoint
OR
- Redefining params file location, can be stored as a file in other mountpoints

Signed-off-by: Jukka Laitinen <[email protected]>
If ToneAlarmInterface has been implemented by using PWM device node,
file descriptor need to be opened in the same thread we are going to
use start_note() and stop_note() functions. Therefore init() and
all file descriptor related calls are moved into Run().
These give warnings, which we want to remove

Signed-off-by: Jukka Laitinen <[email protected]>
…ecific file

The current macro, which parses the FLASH_START_ADDRESS from APP_LOAD_ADDRESS
assumes that the FLASH_START_ADDRESS is aligned to the BOARD_FLASH_SIZE. This
not necessarily true, and it is better to allow just defining
FLASH_START_ADDRES in board spcific hw_conf.h

Signed-off-by: Jukka Laitinen <[email protected]>
These are just broken in all toolchains, and cause random linking errors.

Remove them for now, this solves the problems but increases the code size
by 5-10%

Signed-off-by: Jukka Laitinen <[email protected]>
…irement

Using multicast address works without these

Signed-off-by: Jukka Laitinen <[email protected]>
Rename script ssrc-test-simulation.sh -> ssrc-sim-tester.sh
Support multiple drones in one simulation
Cleanup containers to stop simulation
Simulator generates new device_id value for each new gps id detected
from received hil_gps message. Generated device_id is not stored
but latter sensor_gps messages for the same gps device has device_id
value zero. This patch stores the generated device_id and use the
value in next messages.
- Allocate a separate wait semaphore for each process (one in PROTECTED_BUILD). Allocate the semaphore
  in "REGISTER" ioctl, free it in "UNREGISTER" if process exits
- Duplicate the user side call events to kernel memory to make them accessible by kernel
  at all times. Keep track of the allocated items in "freelist" queue
- Replace fixed size callout queue with an "inflight" queue

Co-authored-by: Jukka Laitinen <[email protected]>
if ssrc_config dir exists and SSRC_CONFIG env variable found
the related config.txt file is sourced.
example env variable set:
 SSRC_CONFIG=indoor
=> /ssrc_config/config_indoor.txt is used
Do not poke the tcb directly from userspace
Either exit or politely ask a process to kill itself, instead of calling
the kernel private procedure 'task_delete()'.
This allows signinig the protected mode binary, by encapsulating the
firmware between a header (the ToC) and the signature, instead of placing
the ToC inside of the firmware itself.

The problem was that the ToC went to the kernel binary, while the
signature is appended to the user binary. The ToC needs the location of
the signature which cannot be known at the time when the kernel is linked.

For ToC integrity protection, the ToC itself is also signed and verified.
Also simplify the previous implementation. The first TOC
entry must contain the TOC; but it doesn't matter whether
it contains only the TOC or also something else

Signed-off-by: Jukka Laitinen <[email protected]>
Re-build did not re-create the ToC, which results in a bad ToC for the
px4 firmware.
The syscall lookup table contains poisoned xxenv() procedures and causes
a build error. The file is included via a massive header that includes
almost everything in /arch/risc-v/ etc (riscv_internal.h). This was
already fixed once, and, tbh, suppressing the poison error is the only
way to get this to work reliably.
All data should come already by HIL_SENSORS messages, so HIL_STATE_QUATERNION
should not be needed.
Add time_remaining_s field to HIL_SENSORS battery_status filling
Mavlink start supports '-i <x>' flag to read IP address
from MAV_<x>_REMOTE_IPn params.
jnippula and others added 25 commits March 12, 2025 12:45
move init_logfile_encryption() call after the buffer start_log() call
to have log file already open while storing the header and key data to
the beginning of the file.
Fix issues related to unspecified delays in the ADIS sensor:

1. The reset occurs only after some delay from writing the SW reset, and the 193ms
mentioned in the datasheet occurs only after that. When the reset sequence really
starts can be determined with logic analyzer by monitoring DR signal and SPI writes.
This delay is measured to be between 10-20ms, so add 20ms to SW reset recovery time.

2. The self test sequence starts only after some delay from writing the command, and the
14ms mentioned in the datasheet starts only after this delay. Again, the behaviour can be
studied with logic analyzer by monitoring the DR signal and the SPI writes - when the self
test is completed, the IMU starts measuring again and the DR starts toggling. This
unspecified delay is measured to be somewhere between 5-10ms, so add 10ms to self test time.

3. After writing the register set in Configure(), there is an unspecified delay before the
register can be read back. This was bisected to be around 50us, so add 100us delay after
setting the registers before trying to read them back.

In addition:
1. Make sure that the IMU has woken up after reset by reading the PROD_ID register
always after the reset, also before starting the self test sequence on the first boot.
2. If self test fails, reset the IMU as a false result may occur due to moving the device
during self test (according to the datasheet).

Signed-off-by: Jukka Laitinen <[email protected]>
…ead and RegisterWrite calls

Add a 1us delay before register read and register write. It is not specified in the datasheet,
but it has been found via testing & oscilloscope measurements that > 1us inactive phase
is required between reads and writes.

Signed-off-by: Jukka Laitinen <[email protected]>
In case of any register read/write errors it is not enough to just check if
one of the bits is 0; the whole register contents needs to be checked. Also,
if initial read of the register fails in any reason, we should not write
back some corrupted value such as 0 or 0xFFFE.

Signed-off-by: Jukka Laitinen <[email protected]>
Added Dockerfile for HITL simulation and MAVSDK testing, along with a helper script for easier container usage.

Changes to be committed:
	new file:   Tools/run_docker_hitl_gzsim_mavsdk_server.sh
	new file:   packaging/entrypoint_hitl_gzsim_mavsdk.sh
	new file:   packaging/Dockerfile.hitl_gzsim_mavsdk
	new file:   packaging/build_px4_hitl_gzsim_mavsdk.sh
Unsubscribe & unadvertise topics which were subscribed/advertised in the constructor

Signed-off-by: Jukka Laitinen <[email protected]>
This fixes the cpuload topic, calculates an average CPU idle time from
all CPUs and uses this to estimate application CPU load (1-idle = load).
Added Xchacha20 decrypt support
Xchacha20 modified to support MAC and non-MAC versions
RSA_SIG signature check support
Logger file encrypt modified to call non-MAC version (mac as nullpointer)
Use PRIu32 for uint32_t to fix compilation error on 64-bit targets

Signed-off-by: Jukka Laitinen <[email protected]>
…mpilation error on nxp93

The stacks are large enough anyhow, so this is safe

Signed-off-by: Jukka Laitinen <[email protected]>
Fix a linking error of not finding "atmosphere::getDensityFromPressureAndTemp(float, float)"

Signed-off-by: Jukka Laitinen <[email protected]>
"message" : "Token failed verification: expired"
px4 files are available thru docker as instructed in github
actions summary page
…nters

Parameter "void *val" passed to the functions in parameters.cpp are not always
4-byte aligned, so on some platforms direct casting to "int32_t *" or "float *"
leads to an unaligned exception. An example of such user is Logger, which directly packs
parameter values to character buffer.

Signed-off-by: Jukka Laitinen <[email protected]>
dds_topics.yaml has support for adding optional rate parameter for
each publication topics
e.g. Limit SensorCombined topic pub rate to 10 Hz:

  - topic: /fmu/out/sensor_combined
    type: px4_msgs::msg::SensorCombined
    rate: 10
- add clang for rust bindings
- use rust toolchain 1.81.0 for riscv: compatibility with old nuttx c/cpp toolchain
deleted workflows which has also been disabled on our env
 - .github/workflows/compile_linux.yml
 - .github/workflows/compile_linux_arm64.yml
 - .github/workflows/compile_nuttx.yml
 - .github/workflows/deploy_all.yml
 - .github/workflows/metadata.yml

workflows which are disabled on our env
 - .github/workflows/compile_macos.yml
 - .github/workflows/checks.yml
 - .github/workflows/mavros_mission_tests.yml
 - .github/workflows/mavros_offboard_tests.yml
 - .github/workflows/python_checks.yml

reformatted in upstream
 - .github/workflows/clang-tidy.yml
 - .github/workflows/sitl_tests.yml
 - .github/workflows/ekf_functional_change_indicator.yml
 - .github/workflows/ekf_update_change_indicator.yml
 - .github/workflows/failsafe_sim.yml
 - .github/workflows/nuttx_env_config.yml

running in AWS so we should setup executor for these (not ported)
 - flash_analysis.yml
 - .github/workflows/ros_translation_node.yml

not ported
 - compile_ubuntu.yml
 - dev_container.yml
 - cflite_batch.yml
 - nuttx_env_config.yml
@jlaitine jlaitine force-pushed the v1.15.3_rebase branch 2 times, most recently from e9c9438 to 3fd16d4 Compare March 13, 2025 13:39
@TimoSairiala TimoSairiala force-pushed the workflows_from_1.15.3_upstream branch from abbee69 to 4c7d01f Compare March 13, 2025 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.