Compare commits

..

24 Commits

Author SHA1 Message Date
Pavel Vasilyev
e5e7142b3d bluetooth: mesh: brg_cfg_srv: ignore message with invalid parameters
When a message with invalid parameters is received, we must ignore it.

In this commit we check invalid parameters first.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
955b1f677b tests: bluetooth: mesh: add subnet bridge bsim tests
This commit adds the following tests:
- Simple test for bridging table
- Test bridging table state changes
- Test persistence storage of subnet bridge
- Test IV Index update with subnet bridge
- Test network key removal for subnet bridge

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
dab117c85e tests: bluetooth: mesh_shell: add brg_cfg_srv instance
This commit adds Bridge Configuration Server to the mesh_shell sample.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
aeeb2053c6 bluetooth: mesh: brg_cfg: use IS_ENABLED macro optimally
If use `IS_ENABLED` macro inside if statements but not as preprocessor
directives, we can always compile the code for settings even if settings
are not used. This allows to reduce amount of firmwares we need to build
in CI to ensure that code compiles.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
1b44e607a8 bluetooth: mesh: brg_cfg_srv: check buf tailroom before packing data
We must tcheck if buf has enough tailroom to fit another pair of keys or
pair addresses with direction.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
c1f5ae30c6 bluetooth: mesh: adv_ext: resched main adv set if relay doesn't have own
If relay feature doesn't have own adv set, it should use the main adv
set to send messages.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
bbd0498803 bluetooth: mesh: brg_cfg_cli: copy buf in synchronous api
When a synchronous API is used, the content of `buf` will not be
valid by the time the thread that called the synchronous API is woken up
again.

Therefore, the simplest way to solve this is when a user allocates the
buffer which will be filled up with the content of the buffer passed to
the model callback.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
85a856d79a bluetooth: mesh: net: bridge traffic regardless of relay state
The Subnet Bridge node must bridge traffic regardless of the Relay
state.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
ef43b94495 bluetooth: mesh: net: use subnet credentials when relaying
When relaying a Network PDU to another subnet, we need to update sub
field of rx structure so that correct credentials are used. We also need
to update NID field of the Network PDU.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
62f08da47b bluetooth: mesh: brg_cfg: add constants for directions
Add constants for directions so that they can be used in the
subnet bridge client api.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
81dbc697f4 bluetooth: mesh: rpl: fix rpl for subnet bridge
The initial implementation of RPL check for Subnet Bridge wasn't fully
correct. It decides whether to relay or not a PDU based on RPL of only
received messages. However, the spec section 3.9.8 says:

```
In addition, a Subnet Bridge node shall implement replay protection for
all Access and Transport Control messages that are sent to bridged
subnets.

A Subnet Bridge node shall maintain the most recent IVISeq value for
each source address authorized to send messages to bridged subnets.
Messages received by the Subnet Bridge node with the IVISeq value less
than or equal to the last stored value from that source address shall
be discarded immediately upon reception. When a message is retransmitted
to a bridged subnet, the stored IVISeq value shall be updated. In this
way, bridged subnets are protected against replay attacks from other
subnets.
```

This was noticed with MESH/NODE/SBR/NET/BV-02-C test. It passes when
PTS misses the message at step 3 and 4, and fails when PTS manages to
receive the message.

This commit fixes the wrong behavior by removing argument for
`bt_mesh_rpl_check` function making store a new message and bypassing
`local_match` check in case of Subnet Bridge node.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
dfdce2c122 bluetooth: mesh: brg_cfg: store tbl when changed only
Though nvs backend checks whether the data passed to it is identical to
the stored one, this isn't guaranteed by other the settings api. We can
also avoid going into the settings subsystem since we know what was
actually changed.

This commit adds 2 flags that allow to control whether Subnet Bridge
or Bridging Table states were changed and skips storing if the certain
state was not changed.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Pavel Vasilyev
6724345372 bluetooth: mesh: brg_cfg: fix restoring bridging table
We store only filled up entries, but want to restore the entire table.
`bt_mesh_setting_set` fails if the restored length didn't match the
provided length.

This commit fixes the restoring of the bridging table by allowing to
restore any size as long as the stored size is less than the allocated
one and it is a multiple of the size of a single entry.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2024-09-12 16:26:04 +02:00
Stine Åkredalen
0bb34284d9 docs: Bluetooth: Mesh: add Subnet Bridge doc
Added high-level documentation for Subnet Bridge,
connecting models together and explaining usage.

Signed-off-by: Stine Åkredalen <stine.akredalen@nordicsemi.no>
2024-09-12 16:25:51 +02:00
Ingar Kulbrandstad
55175d63e4 Bluetooth: Mesh: Fixed bugs found in PTS testing
Fixed bugs found while running PTS test.

Signed-off-by: Ingar Kulbrandstad <ingar.kulbrandstad@nordicsemi.no>
2024-09-09 09:46:58 +02:00
Ingar Kulbrandstad
d7b4497054 Bluetooth: Tester: Mesh: Added support for Bridge client/server
Added support for the Bridge Configuration client and server
to the tester application.

Signed-off-by: Ingar Kulbrandstad <ingar.kulbrandstad@nordicsemi.no>
2024-09-09 09:46:58 +02:00
Omkar Kulkarni
9d61afa758 Bluetooth: Mesh: Add bridging functionality
Adds subnet bridging functionality to the network layer.
Also fixes brg_cfg_srv for minor issues to get it working.

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2024-08-26 18:53:09 +02:00
Omkar Kulkarni
cddbafe374 Bluetooth: Mesh: Populate Bridge Config Server
Adds implementation for the Bridge Configuration Server model.

Updates `brg_cfg` module to add sanity check for
bt_mesh_brg_cfg_tbl_remove() API. Also, updates the unit test
accordingly.

Adds documentation for the Bridge Configuration Server model

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2024-08-07 13:50:22 +02:00
Håvard Reierstad
71b29f4796 Bluetooth: Mesh: Add brg_cfg_cli commands to shell
Adds the Bridge Configuration Client commands to Mesh shell.

Unifies documentation for shell Kconfig options.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-08-07 13:50:14 +02:00
Håvard Reierstad
563aa9be92 Bluetooth: Mesh: Implement Bridge Config Client
Implements the Bridge Configuration Client model.
Adds opcodes for all Bridge messages to `foundation.h`. Adds client-side
support for these messages.
Adds a new Kconfig option for the Bridge Configuration Client model to
configure the waiting time for respones for acked messages.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-07-22 14:57:39 +02:00
Håvard Reierstad
6874a4a719 Bluetooth: Mesh: Change bridge table add params
Change the parameters of the bridge table add function to take an
entry struct rather than the fields of an entry.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-07-22 14:57:39 +02:00
Håvard Reierstad
380bd5483e Bluetooth: Mesh: Fix subnet bridge table status type
Changes status type to be status codes defined in Mesh Protocol 4.3.14
as defined for the `BRIDGING_TABLE_STATUS` message.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-07-22 14:57:39 +02:00
Omkar Kulkarni
988ad5b0c2 Bluetooth: Mesh: Adds subnet bridge states
The `brg_cfg` module implements the states needed for subnet bridge
feature. It provides two states - enable state, and bridging table
state. APIs are provided to access and modify the states. The module
handles responsibility of persistence of the states.

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2024-07-22 14:49:24 +02:00
Ingar Kulbrandstad
470c0d13a0 Bluetooth: Mesh: Bridge Configuration Client/Server API
Adding documentation and function calles for the API's
in Bridge Configuration Client model and Bridge
Configuration Server model.

Signed-off-by: Ingar Kulbrandstad <ingar.kulbrandstad@nordicsemi.no>
2024-07-04 10:03:31 +02:00
1150 changed files with 23678 additions and 21445 deletions

View File

@@ -6,8 +6,8 @@ labels: bug
assignees: ''
---
<!--
**Notes**
**Notes (delete this)**
Github Discussions (https://github.com/zephyrproject-rtos/zephyr/discussions)
are available to first verify that the issue is a genuine Zephyr bug and not a
consequence of Zephyr services misuse.
@@ -16,10 +16,8 @@ This issue list is only for bugs in the main Zephyr code base
(https://github.com/zephyrproject-rtos/zephyr/). If the bug is for a project
fork (such as NCS) specific feature, please open an issue in the fork project
instead.
-->
**Describe the bug**
<!--
A clear and concise description of what the bug is.
Please also mention any information which could help others to understand
@@ -29,43 +27,31 @@ the problem you're facing:
- Is this a regression? If yes, have you been able to "git bisect" it to a
specific commit?
- ...
-->
**To Reproduce**
<!--
Steps to reproduce the behavior:
1. mkdir build; cd build
2. cmake -DBOARD=board\_xyz
3. make
4. See error
-->
**Expected behavior**
<!--
A clear and concise description of what you expected to happen.
-->
**Impact**
<!--
What impact does this issue have on your progress (e.g., annoyance, showstopper)
-->
**Logs and console output**
<!--
If applicable, add console logs or other types of debug information
e.g Wireshark capture or Logic analyzer capture (upload in zip archive).
copy-and-paste text and put a code fence (\`\`\`) before and after, to help
explain the issue. (if unable to obtain text log, add a screenshot)
-->
**Environment (please complete the following information):**
- OS: (e.g. Linux, MacOS, Windows)
- Toolchain (e.g Zephyr SDK, ...)
- Commit SHA or Version used
**Additional context**
<!--
Add any other context that could be relevant to your issue, such as pin setting,
target configuration, ...
-->

View File

@@ -8,21 +8,13 @@ assignees: ''
---
**Is your enhancement proposal related to a problem? Please describe.**
<!--
A clear and concise description of what the problem is.
-->
**Describe the solution you'd like**
<!--
A clear and concise description of what you want to happen.
-->
**Describe alternatives you've considered**
<!--
A clear and concise description of any alternative solutions or features you've considered.
-->
**Additional context**
<!--
Add any other context or graphics (drag-and-drop an image) about the feature request here.
-->

View File

@@ -9,52 +9,43 @@ assignees: ''
## Introduction
<!--
This section targets end users, TSC members, maintainers and anyone else that might
need a quick explanation of your proposed change.
-->
### Problem description
<!--
Why do we want this change and what problem are we trying to address?
-->
### Proposed change
<!--
A brief summary of the proposed change - the 10,000 ft view on what it will
change once this change is implemented.
-->
## Detailed RFC
<!--
In this section of the document the target audience is the dev team. Upon
reading this section each engineer should have a rather clear picture of what
needs to be done in order to implement the described feature.
-->
### Proposed change (Detailed)
<!--
This section is freeform - you should describe your change in as much detail
as possible. Please also ensure to include any context or background info here.
For example, do we have existing components which can be reused or altered.
By reading this section, each team member should be able to know what exactly
you're planning to change and how.
-->
### Dependencies
<!--
Highlight how the change may affect the rest of the project (new components,
modifications in other areas), or other teams/projects.
-->
### Concerns and Unresolved Questions
<!--
List any concerns, unknowns, and generally unresolved questions etc.
-->
## Alternatives
<!--
List any alternatives considered, and the reasons for choosing this option
over them.
-->

View File

@@ -8,21 +8,13 @@ assignees: ''
---
**Is your feature request related to a problem? Please describe.**
<!--
A clear and concise description of what the problem is.
-->
**Describe the solution you'd like**
<!--
A clear and concise description of what you want to happen.
-->
**Describe alternatives you've considered**
<!--
A clear and concise description of any alternative solutions or features you've considered.
-->
**Additional context**
<!--
Add any other context or graphics (drag-and-drop an image) about the feature request here.
-->

View File

@@ -1,12 +1,6 @@
name: Compliance Checks
on:
pull_request:
types:
- edited
- opened
- reopened
- synchronize
on: pull_request
jobs:
check_compliance:
@@ -58,14 +52,6 @@ jobs:
west config manifest.group-filter -- +ci,-optional
west update -o=--depth=1 -n 2>&1 1> west.update.log || west update -o=--depth=1 -n 2>&1 1> west.update2.log
- name: Check for PR description
if: ${{ github.event.pull_request.body == '' }}
continue-on-error: true
id: pr_description
run: |
echo "Pull request description cannot be empty."
exit 1
- name: Run Compliance Tests
continue-on-error: true
id: compliance
@@ -108,12 +94,5 @@ jobs:
done
if [ "${exit}" == "1" ]; then
echo "Compliance error, check for error messages in the \"Run Compliance Tests\" step"
echo "You can run this step locally with the ./scripts/ci/check_compliance.py script."
exit 1;
fi
if [ "${{ steps.pr_description.outcome }}" == "failure" ]; then
echo "PR description cannot be empty"
exit 1;
fi

View File

@@ -27,9 +27,9 @@ jobs:
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12']
os: [ubuntu-22.04, macos-14, windows-2022]
os: [ubuntu-22.04, macos-11, windows-2022]
exclude:
- os: macos-14
- os: macos-11
python-version: 3.6
- os: windows-2022
python-version: 3.6

View File

@@ -26,7 +26,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-13, macos-14, windows-2022]
os: [ubuntu-22.04, macos-12, macos-14, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout

View File

@@ -30,9 +30,9 @@ jobs:
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12']
os: [ubuntu-22.04, macos-14, windows-2022]
os: [ubuntu-22.04, macos-11, windows-2022]
exclude:
- os: macos-14
- os: macos-11
python-version: 3.6
- os: windows-2022
python-version: 3.6

View File

@@ -1898,6 +1898,7 @@ if (CONFIG_LLEXT AND CONFIG_LLEXT_EXPORT_BUILTINS_BY_SLID)
${ZEPHYR_BASE}/scripts/build/llext_prepare_exptab.py
--elf-file ${PROJECT_BINARY_DIR}/${KERNEL_ELF_NAME}
--slid-listing ${PROJECT_BINARY_DIR}/slid_listing.txt
-vvv
)
endif()
@@ -1988,39 +1989,22 @@ elseif(CONFIG_LOG_MIPI_SYST_USE_CATALOG)
endif()
if(LOG_DICT_DB_NAME_ARG)
set(log_dict_gen_command
if (NOT CONFIG_LOG_DICTIONARY_DB_TARGET)
set(LOG_DICT_DB_ALL_TARGET ALL)
endif()
add_custom_command(
OUTPUT ${LOG_DICT_DB_NAME}
COMMAND
${PYTHON_EXECUTABLE}
${ZEPHYR_BASE}/scripts/logging/dictionary/database_gen.py
${KERNEL_ELF_NAME}
${LOG_DICT_DB_NAME_ARG}=${LOG_DICT_DB_NAME}
--build-header ${PROJECT_BINARY_DIR}/include/generated/zephyr/version.h
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "Generating logging dictionary database: ${LOG_DICT_DB_NAME}"
DEPENDS ${logical_target_for_zephyr_elf}
)
if (NOT CONFIG_LOG_DICTIONARY_DB_TARGET)
# If not using a separate target for generating logging dictionary
# database, add the generation to post build command to make sure
# the database is actually being generated.
list(APPEND
post_build_commands
COMMAND ${CMAKE_COMMAND} -E echo "Generating logging dictionary database: ${LOG_DICT_DB_NAME}"
COMMAND ${log_dict_gen_command}
)
list(APPEND
post_build_byproducts
${LOG_DICT_DB_NAME}
)
else()
# Seprate build target for generating logging dictionary database.
# This needs to be explicitly called/used to generate the database.
add_custom_command(
OUTPUT ${LOG_DICT_DB_NAME}
COMMAND ${log_dict_gen_command}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "Generating logging dictionary database: ${LOG_DICT_DB_NAME}"
DEPENDS ${logical_target_for_zephyr_elf}
)
add_custom_target(log_dict_db_gen DEPENDS ${LOG_DICT_DB_NAME})
endif()
add_custom_target(log_dict_db_gen ${LOG_DICT_DB_ALL_TARGET} DEPENDS ${LOG_DICT_DB_NAME})
endif()
# Add post_build_commands to post-process the final .elf file produced by

View File

@@ -119,7 +119,6 @@ ACPI:
- lib/acpi/
- include/zephyr/acpi/
- tests/lib/acpi/
- dts/bindings/acpi/
labels:
- "area: ACPI"
tests:
@@ -137,7 +136,6 @@ ARC arch:
- include/zephyr/arch/arc/
- tests/arch/arc/
- dts/arc/synopsys/
- dts/bindings/arc/
- doc/hardware/arch/arc-support-status.rst
labels:
- "area: ARC"
@@ -201,7 +199,6 @@ ARM Platforms:
- soc/arm/designstart/
- soc/arm/fvp_aemv8*/
- dts/arm/armv*.dtsi
- dts/bindings/arm/arm*.yaml
labels:
- "platform: ARM"
@@ -240,11 +237,10 @@ MIPS arch:
- arch.mips
Ambiq Platforms:
status: maintained
maintainers:
- AlessandroLuo
status: odd fixes
collaborators:
- aaronyegx
- AlessandroLuo
- RichardSWheatley
files:
- soc/ambiq/
@@ -304,6 +300,7 @@ Bluetooth:
collaborators:
- hermabe
- Vudentz
- Thalley
- asbjornsabo
- sjanc
files:
@@ -398,9 +395,6 @@ Bluetooth Host:
- subsys/bluetooth/shell/
- tests/bluetooth/host*/
- tests/bsim/bluetooth/host/
files-exclude:
- subsys/bluetooth/host/classic/
- include/zephyr/bluetooth/classic/
labels:
- "area: Bluetooth Host"
- "area: Bluetooth"
@@ -478,7 +472,6 @@ Bluetooth Classic:
- include/zephyr/bluetooth/classic/
labels:
- "area: Bluetooth Classic"
- "area: Bluetooth"
tests:
- bluetooth
@@ -601,22 +594,6 @@ CMSIS API layer:
- portability.cmsis_rtos_v1
- portability.cmsis_rtos_v2
DAP:
status: maintained
maintainers:
- jfischer-no
collaborators:
- maxd-nordic
files:
- include/zephyr/drivers/swdp.h
- drivers/dp/
- subsys/dap/
- samples/subsys/dap/
description: >-
Debug Access Port controller
labels:
- "area: dap"
DSP subsystem:
status: maintained
maintainers:
@@ -805,7 +782,8 @@ DFU:
- dfu
Devicetree:
status: odd fixes
status: maintained
maintainers: []
collaborators:
- decsny
- galak
@@ -816,7 +794,6 @@ Devicetree:
- doc/build/dts/
- include/zephyr/devicetree/
- scripts/kconfig/kconfigfunctions.py
- doc/build/kconfig/preprocessor-functions.rst
- include/zephyr/devicetree.h
files-exclude:
- dts/common/nordic/
@@ -826,11 +803,13 @@ Devicetree:
- libraries.devicetree
Devicetree Bindings:
status: odd fixes
status: maintained
maintainers: []
collaborators:
- decsny
- galak
files:
- dts/bindings/
- include/zephyr/dt-bindings/
- dts/binding-template.yaml
labels:
@@ -870,14 +849,10 @@ Display drivers:
- include/zephyr/drivers/display.h
- subsys/fb/
- samples/subsys/display/
- tests/subsys/display/
- doc/hardware/peripherals/display/
- tests/drivers/*/display/
labels:
- "area: Display"
tests:
- display.cfb
- drivers.display
Documentation:
status: maintained
@@ -910,7 +885,6 @@ Documentation:
files-exclude:
- doc/releases/migration-guide-*
- doc/releases/release-notes-*
- doc/develop/test/
labels:
- "area: Documentation"
@@ -959,7 +933,6 @@ Release Notes:
- doc/hardware/peripherals/adc.rst
- tests/drivers/build_all/adc/
- include/zephyr/dt-bindings/adc/
- dts/bindings/adc/
labels:
- "area: ADC"
tests:
@@ -1036,7 +1009,6 @@ Release Notes:
- samples/modules/canopennode/
- samples/net/sockets/can/
- samples/subsys/canbus/
- scripts/west_commands/runners/canopen_program.py
- subsys/canbus/
- subsys/net/l2/canbus/
- tests/drivers/build_all/can/
@@ -1234,7 +1206,7 @@ Release Notes:
- samples/drivers/eeprom/
- tests/drivers/eeprom/
- tests/drivers/*/eeprom/
- doc/hardware/peripherals/eeprom/
- doc/hardware/peripherals/eeprom.rst
labels:
- "area: EEPROM"
tests:
@@ -1518,7 +1490,6 @@ Release Notes:
- drivers/mdio/
- include/zephyr/drivers/mdio.h
- tests/drivers/build_all/mdio/
- dts/bindings/mdio/
labels:
- "area: MDIO"
tests:
@@ -1566,7 +1537,6 @@ Release Notes:
files:
- drivers/reset/
- include/zephyr/drivers/reset.h
- dts/bindings/reset/
"Interrupt Handling":
status: odd fixes
@@ -1636,7 +1606,6 @@ Release Notes:
- tests/drivers/led/
- doc/hardware/peripherals/led.rst
- tests/drivers/build_all/led/
- dts/bindings/led/
labels:
- "area: LED"
tests:
@@ -1705,7 +1674,6 @@ Release Notes:
- tests/drivers/regulator/
- tests/drivers/build_all/regulator/
- doc/hardware/peripherals/regulators.rst
- dts/bindings/regulator/
labels:
- "area: Regulators"
tests:
@@ -1721,7 +1689,6 @@ Release Notes:
- include/zephyr/drivers/retained_mem.h
- tests/drivers/retained_mem/
- doc/hardware/peripherals/retained_mem.rst
- dts/bindings/retained_mem/
labels:
- "area: Retained Memory"
tests:
@@ -1738,7 +1705,6 @@ Release Notes:
- doc/hardware/peripherals/rtc.rst
- include/zephyr/drivers/rtc.h
- tests/drivers/build_all/rtc/
- dts/bindings/rtc/
labels:
- "area: RTC"
tests:
@@ -1752,7 +1718,6 @@ Release Notes:
- drivers/pcie/
- include/zephyr/drivers/pcie/
- doc/hardware/peripherals/pcie.rst
- dts/bindings/pcie/
labels:
- "area: PCI"
@@ -1767,7 +1732,6 @@ Release Notes:
- include/zephyr/drivers/peci.h
- samples/drivers/peci/
- doc/hardware/peripherals/peci.rst
- dts/bindings/peci/
labels:
- "area: PECI"
tests:
@@ -1825,7 +1789,6 @@ Release Notes:
- include/zephyr/drivers/pm_cpu_ops/
- include/zephyr/drivers/pm_cpu_ops.h
- include/zephyr/arch/arm64/arm-smccc.h
- dts/bindings/pm_cpu_ops/
labels:
- "area: PM CPU ops"
@@ -1937,7 +1900,6 @@ Release Notes:
- drivers/spi/
- include/zephyr/drivers/spi.h
- tests/drivers/spi/
- dts/bindings/spi/
- doc/hardware/peripherals/spi.rst
labels:
- "area: SPI"
@@ -1953,7 +1915,6 @@ Release Notes:
files:
- drivers/timer/
- include/zephyr/drivers/timer/
- dts/bindings/timer/
labels:
- "area: Timer"
@@ -1967,7 +1928,6 @@ Release Notes:
- include/zephyr/drivers/video-controls.h
- doc/hardware/peripherals/video.rst
- tests/drivers/*/video/
- dts/bindings/video/
labels:
- "area: Video"
tests:
@@ -2020,7 +1980,6 @@ Release Notes:
- krish2718
files:
- drivers/wifi/
- dts/bindings/wifi/
labels:
- "area: Wi-Fi"
@@ -2106,7 +2065,6 @@ Xen Platform:
- arch/arm64/core/xen/
- soc/xen/
- boards/xen/
- dts/bindings/xen/
labels:
- "area: Xen Platform"
@@ -2122,7 +2080,6 @@ Filesystems:
- samples/subsys/fs/
- subsys/fs/
- tests/subsys/fs/
- dts/bindings/fs/
labels:
- "area: File System"
tests:
@@ -2221,7 +2178,6 @@ IPC:
- subsys/ipc/
- tests/subsys/ipc/
- doc/services/ipc/
- dts/bindings/ipc/
description: >-
Inter-Processor Communication
labels:
@@ -2944,13 +2900,7 @@ Open AMP:
- carlocaione
files:
- lib/open-amp/
- samples/subsys/ipc/openamp/
- samples/subsys/ipc/openamp_rsc_table/
- samples/subsys/ipc/rpmsg_service/
labels:
- "area: Open AMP"
tests:
- sample.ipc.openamp
POSIX API layer:
status: maintained
@@ -3079,7 +3029,6 @@ Sensor Subsystem:
- "area: Sensor Subsystem"
tests:
- sample.sensing
- sensing.api
Stats:
status: odd fixes
@@ -3096,6 +3045,7 @@ Twister:
collaborators:
- PerMac
- hakehuang
- gopiotr
- golowanow
- gchwier
- LukaszMrugala
@@ -3670,10 +3620,6 @@ Renesas RA Platforms:
status: maintained
maintainers:
- soburi
- KhiemNguyenT
collaborators:
- duynguyenxa
- thaoluonguw
files:
- boards/arduino/uno_r4/
- drivers/*/*renesas_ra*
@@ -3732,6 +3678,7 @@ STM32 Platforms:
maintainers:
- erwango
collaborators:
- ajarmouni-st
- FRASTM
- gautierg-st
- GeorgeCGV
@@ -4111,6 +4058,7 @@ USB:
- tests/drivers/usb/
- tests/drivers/udc/
- doc/connectivity/usb/
- scripts/generate_usb_vif/
labels:
- "area: USB"
tests:
@@ -4132,7 +4080,6 @@ USB-C:
- subsys/usb/usb_c/
- doc/connectivity/usb/pd/
- doc/hardware/peripherals/usbc_vbus.rst
- scripts/generate_usb_vif/
labels:
- "area: USB-C"
tests:
@@ -4184,7 +4131,8 @@ VFS:
- filesystem
West:
status: odd fixes
status: maintained
maintainers: []
collaborators:
- mbolivar-ampere
- carlescufi
@@ -4331,7 +4279,7 @@ West:
files:
- modules/cmsis/
labels:
- "area: CMSIS-Core"
- "area: ARM"
"West project: cmsis-dsp":
status: maintained
@@ -4448,7 +4396,7 @@ West:
- drivers/misc/ethos_u/
- modules/hal_ethos_u/
labels:
- "platform: ARM"
- "area: ARM"
"West project: hal_gigadevice":
status: maintained
@@ -4554,9 +4502,6 @@ West:
- blauret
- andrzej-kaczmarek
- ydamigos
- soburi
- duynguyenxa
- thaoluonguw
files: []
labels:
- "platform: Renesas"
@@ -4723,7 +4668,6 @@ West:
- ceolin
collaborators:
- ithinuel
- valeriosetti
files:
- modules/mbedtls/
labels:
@@ -5022,7 +4966,6 @@ Continuous Integration:
files:
- .github/
- scripts/ci/
- scripts/make_bugs_pickle.py
- .checkpatch.conf
- scripts/gitlint/
- scripts/set_assignees.py
@@ -5044,7 +4987,7 @@ Test Framework (Ztest):
- tests/unit/util/
- tests/subsys/testsuite/
- samples/subsys/testsuite/
- doc/develop/test/
- doc/develop/test/ztest.rst
labels:
- "area: Testsuite"
tests:
@@ -5086,7 +5029,7 @@ Random:
# This area is to be converted to a subarea
Testing with Renode:
status: odd fixes
status: maintained
collaborators:
- mateusz-holenko
- fkokosinski
@@ -5126,6 +5069,6 @@ zbus:
- subsys/llext/
- doc/services/llext/
labels:
- "area: llext"
- "area: Linkable Loadable Extensions"
tests:
- llext

View File

@@ -2,4 +2,4 @@ VERSION_MAJOR = 3
VERSION_MINOR = 7
PATCHLEVEL = 0
VERSION_TWEAK = 0
EXTRAVERSION =
EXTRAVERSION = rc1

View File

@@ -1,9 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
if(CONFIG_BIG_ENDIAN)
set_property(GLOBAL PROPERTY PROPERTY_OUTPUT_FORMAT elf32-bigarm)
else()
set_property(GLOBAL PROPERTY PROPERTY_OUTPUT_FORMAT elf32-littlearm)
endif()
set_property(GLOBAL PROPERTY PROPERTY_OUTPUT_FORMAT elf32-littlearm)
add_subdirectory(core)

View File

@@ -95,10 +95,6 @@ void arch_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
iframe->a4 = (uint32_t)p3;
iframe->xpsr = A_BIT | MODE_SYS;
#if defined(CONFIG_BIG_ENDIAN)
iframe->xpsr |= E_BIT;
#endif /* CONFIG_BIG_ENDIAN */
#if defined(CONFIG_COMPILER_ISA_THUMB2)
iframe->xpsr |= T_BIT;
#endif /* CONFIG_COMPILER_ISA_THUMB2 */

View File

@@ -588,7 +588,7 @@ void arch_switch_to_main_thread(struct k_thread *main_thread, char *stack_ptr,
"bx r4\n" /* We dont intend to return, so there is no need to link. */
: "+r" (_main)
: "r" (stack_ptr)
: "r0", "r1", "r2", "r3", "r4", "ip", "lr");
: "r0", "r1", "r2", "r3", "r4");
CODE_UNREACHABLE;
}
@@ -659,7 +659,7 @@ FUNC_NORETURN void z_arm_switch_to_main_no_multithreading(
#ifdef CONFIG_BUILTIN_STACK_GUARD
, [_psplim]"r" (psplim)
#endif
: "r0", "r1", "r2", "ip", "lr"
: "r0", "r1", "r2", "r3"
);
CODE_UNREACHABLE; /* LCOV_EXCL_LINE */

View File

@@ -15,11 +15,11 @@
struct int_list_header {
uint32_t table_size;
uint32_t offset;
#if defined(CONFIG_ISR_TABLES_LOCAL_DECLARATION)
#if IS_ENABLED(CONFIG_ISR_TABLES_LOCAL_DECLARATION)
uint32_t swi_table_entry_size;
uint32_t shared_isr_table_entry_size;
uint32_t shared_isr_client_num_offset;
#endif /* defined(CONFIG_ISR_TABLES_LOCAL_DECLARATION) */
#endif /* IS_ENABLED(CONFIG_ISR_TABLES_LOCAL_DECLARATION) */
};
/* These values are not included in the resulting binary, but instead form the
@@ -29,13 +29,13 @@ struct int_list_header {
Z_GENERIC_SECTION(.irq_info) __used struct int_list_header _iheader = {
.table_size = IRQ_TABLE_SIZE,
.offset = CONFIG_GEN_IRQ_START_VECTOR,
#if defined(CONFIG_ISR_TABLES_LOCAL_DECLARATION)
#if IS_ENABLED(CONFIG_ISR_TABLES_LOCAL_DECLARATION)
.swi_table_entry_size = sizeof(struct _isr_table_entry),
#if defined(CONFIG_SHARED_INTERRUPTS)
#if IS_ENABLED(CONFIG_SHARED_INTERRUPTS)
.shared_isr_table_entry_size = sizeof(struct z_shared_isr_table_entry),
.shared_isr_client_num_offset = offsetof(struct z_shared_isr_table_entry, client_num),
#endif /* defined(CONFIG_SHARED_INTERRUPTS) */
#endif /* defined(CONFIG_ISR_TABLES_LOCAL_DECLARATION) */
#endif /* IS_ENABLED(CONFIG_SHARED_INTERRUPTS) */
#endif /* IS_ENABLED(CONFIG_ISR_TABLES_LOCAL_DECLARATION) */
};
/* These are placeholder tables. They will be replaced by the real tables

View File

@@ -30,6 +30,7 @@ config RISCV_GP
config RISCV_ALWAYS_SWITCH_THROUGH_ECALL
bool "Do not use mret outside a trap handler context"
depends on MULTITHREADING
depends on !RISCV_PMP
help
Use mret instruction only when in a trap handler.
This is for RISC-V implementations that require every mret to be
@@ -47,11 +48,10 @@ config RISCV_EXCEPTION_STACK_TRACE
menu "RISCV Processor Options"
config INCLUDE_RESET_VECTOR
bool "Jumps to __initialize directly"
bool "Include Reset vector"
help
Select 'y' here to use the Zephyr provided default implementation that
jumps to `__initialize` directly. Otherwise a SOC needs to provide its
custom `__reset` routine.
Include the reset vector stub, which initializes the stack and
prepares for running C code.
config RISCV_PRIVILEGED
bool

View File

@@ -398,22 +398,6 @@ is_kernel_syscall:
bne t0, t1, skip_schedule
lr a0, __struct_arch_esf_a0_OFFSET(sp)
lr a1, __struct_arch_esf_a1_OFFSET(sp)
#ifdef CONFIG_FPU_SHARING
/*
* When an ECALL is used for a context-switch, the current thread has
* been updated to the next thread.
* Add the exception_depth back to the previous thread.
*/
lb t1, _thread_offset_to_exception_depth(a0)
add t1, t1, -1
sb t1, _thread_offset_to_exception_depth(a0)
lb t1, _thread_offset_to_exception_depth(a1)
add t1, t1, 1
sb t1, _thread_offset_to_exception_depth(a1)
#endif
j reschedule
skip_schedule:
#endif

View File

@@ -204,34 +204,6 @@ static bool set_pmp_entry(unsigned int *index_p, uint8_t perm,
return ok;
}
static inline bool set_pmp_mprv_catchall(unsigned int *index_p,
unsigned long *pmp_addr, unsigned long *pmp_cfg,
unsigned int index_limit)
{
/*
* We'll be using MPRV. Make a fallback entry with everything
* accessible as if no PMP entries were matched which is otherwise
* the default behavior for m-mode without MPRV.
*/
bool ok = set_pmp_entry(index_p, PMP_R | PMP_W | PMP_X,
0, 0, pmp_addr, pmp_cfg, index_limit);
#ifdef CONFIG_QEMU_TARGET
if (ok) {
/*
* Workaround: The above produced 0x1fffffff which is correct.
* But there is a QEMU bug that prevents it from interpreting
* this value correctly. Hardcode the special case used by
* QEMU to bypass this bug for now. The QEMU fix is here:
* https://lists.gnu.org/archive/html/qemu-devel/2022-04/msg00961.html
*/
pmp_addr[*index_p - 1] = -1L;
}
#endif
return ok;
}
/**
* @brief Write a range of PMP entries to corresponding PMP registers
*
@@ -348,8 +320,8 @@ static unsigned int global_pmp_end_index;
*/
void z_riscv_pmp_init(void)
{
unsigned long pmp_addr[5];
unsigned long pmp_cfg[2];
unsigned long pmp_addr[4];
unsigned long pmp_cfg[1];
unsigned int index = 0;
/* The read-only area is always there for every mode */
@@ -379,28 +351,10 @@ void z_riscv_pmp_init(void)
(uintptr_t)z_interrupt_stacks[_current_cpu->id],
Z_RISCV_STACK_GUARD_SIZE,
pmp_addr, pmp_cfg, ARRAY_SIZE(pmp_addr));
/*
* This early, the kernel init code uses the IRQ stack and we want to
* safeguard it as soon as possible. But we need a temporary default
* "catch all" PMP entry for MPRV to work. Later on, this entry will
* be set for each thread by z_riscv_pmp_stackguard_prepare().
*/
set_pmp_mprv_catchall(&index, pmp_addr, pmp_cfg, ARRAY_SIZE(pmp_addr));
/* Write those entries to PMP regs. */
write_pmp_entries(0, index, true, pmp_addr, pmp_cfg, ARRAY_SIZE(pmp_addr));
/* Activate our non-locked PMP entries for m-mode */
csr_set(mstatus, MSTATUS_MPRV);
/* And forget about that last entry as we won't need it later */
index--;
#else
/* Write those entries to PMP regs. */
write_pmp_entries(0, index, true, pmp_addr, pmp_cfg, ARRAY_SIZE(pmp_addr));
#endif
write_pmp_entries(0, index, true, pmp_addr, pmp_cfg, ARRAY_SIZE(pmp_addr));
#ifdef CONFIG_SMP
#ifdef CONFIG_PMP_STACK_GUARD
/*
@@ -419,7 +373,6 @@ void z_riscv_pmp_init(void)
}
#endif
__ASSERT(index <= PMPCFG_STRIDE, "provision for one global word only");
global_pmp_cfg[0] = pmp_cfg[0];
global_pmp_last_addr = pmp_addr[index - 1];
global_pmp_end_index = index;
@@ -476,7 +429,24 @@ void z_riscv_pmp_stackguard_prepare(struct k_thread *thread)
set_pmp_entry(&index, PMP_NONE,
stack_bottom, Z_RISCV_STACK_GUARD_SIZE,
PMP_M_MODE(thread));
set_pmp_mprv_catchall(&index, PMP_M_MODE(thread));
/*
* We'll be using MPRV. Make a fallback entry with everything
* accessible as if no PMP entries were matched which is otherwise
* the default behavior for m-mode without MPRV.
*/
set_pmp_entry(&index, PMP_R | PMP_W | PMP_X,
0, 0, PMP_M_MODE(thread));
#ifdef CONFIG_QEMU_TARGET
/*
* Workaround: The above produced 0x1fffffff which is correct.
* But there is a QEMU bug that prevents it from interpreting this
* value correctly. Hardcode the special case used by QEMU to
* bypass this bug for now. The QEMU fix is here:
* https://lists.gnu.org/archive/html/qemu-devel/2022-04/msg00961.html
*/
thread->arch.m_mode_pmpaddr_regs[index-1] = -1L;
#endif
/* remember how many entries we use */
thread->arch.m_mode_pmp_end_index = index;

View File

@@ -100,8 +100,8 @@ void z_x86_irq_connect_on_vector(unsigned int irq,
*/
int arch_irq_connect_dynamic(unsigned int irq, unsigned int priority,
void (*routine)(const void *parameter),
const void *parameter, uint32_t flags)
void (*func)(const void *arg),
const void *arg, uint32_t flags)
{
uint32_t key;
int vector;
@@ -124,7 +124,7 @@ int arch_irq_connect_dynamic(unsigned int irq, unsigned int priority,
#endif /* CONFIG_INTEL_VTD_ICTL */
z_irq_controller_irq_config(vector, irq, flags);
z_x86_irq_connect_on_vector(irq, vector, routine, parameter);
z_x86_irq_connect_on_vector(irq, vector, func, arg);
}
irq_unlock(key);

View File

@@ -317,13 +317,6 @@ void xtensa_mmu_init(void)
xtensa_init_paging(xtensa_kernel_ptables);
/*
* This is used to determine whether we are faulting inside double
* exception if this is not zero. Sometimes SoC starts with this not
* being set to zero. So clear it during boot.
*/
XTENSA_WSR(ZSR_DEPC_SAVE_STR, 0);
arch_xtensa_mmu_post_init(_current_cpu->id == 0);
}

View File

@@ -10,7 +10,7 @@
/ {
model = "Arduino Uno R4 Board";
compatible = "renesas,r7fa4m1ab3cfm";
compatible = "renesas,r7fa4m1aB3cfm";
chosen {
zephyr,console = &uart2;

View File

@@ -11,7 +11,6 @@ supported:
- counter
- netif:serial-net
- gpio
- watchdog
testing:
default: true
vendor: arm

View File

@@ -81,18 +81,14 @@
/* On-board antenna pinmux states */
board_ant_tx_pa_off: board_ant_tx_pa_off {
pinmux = <29 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_tx_pa_on: board_ant_tx_pa_on {
pinmux = <29 IOC_PORT_RFC_GPO3>;
bias-disable;
};
board_ant_subg_off: board_ant_subg_off {
pinmux = <30 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_subg_on: board_ant_subg_on {
pinmux = <30 IOC_PORT_RFC_GPO0>;
bias-disable;
};
};

View File

@@ -42,33 +42,18 @@
};
};
/**
* The BeagleConnect Freedom has an on-board antenna switch (SKY13317-373LF) used to select
* the appropriate RF signal port based on the currently-used PHY.
*
* Truth table:
*
* Path DIO29 DIO30
* =========== ===== =====
* Off 0 0
* Sub-1 GHz 0 1 // DIO30 mux to IOC_PORT_RFC_GPO0 for auto
* 20 dBm TX 1 0 // DIO29 mux to IOC_PORT_RFC_GPO3 for auto
*/
antenna_mux0: antenna_mux0 {
compatible = "skyworks,sky13317";
status = "okay";
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>, <&gpio0 30 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&board_ant_tx_pa_off &board_ant_subg_off>;
pinctrl-1 = <&board_ant_tx_pa_off &board_ant_subg_on>;
pinctrl-2 = <&board_ant_tx_pa_on &board_ant_subg_on>;
pinctrl-names = "default", "ant_subg", "ant_subg_pa";
};
leds: leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; // 2.4GHz TX/RX
};
/* U.FL connector switch */
rf_sw: rf_sw {
gpios =
<&gpio0 29 GPIO_ACTIVE_HIGH>, // SubG TX +20dB
<&gpio0 30 GPIO_ACTIVE_HIGH>; // SubG TX/RX 0dB
};
};
sens_i2c: sensor-switch {

View File

@@ -1,9 +1,8 @@
/*
/* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2021 Florin Stancu
* Copyright (c) 2021 Jason Kridner, BeagleBoard.org Foundation
* Copyright (c) 2024 Ayush Singh <ayush@beagleboard.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
@@ -11,108 +10,107 @@
* switch.
*/
#define DT_DRV_COMPAT skyworks_sky13317
#include <zephyr/init.h>
#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/gpio.h>
#include <zephyr/drivers/pinctrl.h>
#include <zephyr/init.h>
#include <ti/drivers/rf/RF.h>
#include <driverlib/gpio.h>
#include <driverlib/ioc.h>
#include <driverlib/rom.h>
#include <driverlib/interrupt.h>
/* custom pinctrl states for the antenna mux */
#define PINCTRL_STATE_ANT_SUBG 1
#define PINCTRL_STATE_ANT_SUBG_PA 2
/* DIOs for RF antenna paths */
#define BOARD_RF_HIGH_PA 29 /* TODO: pull from DT */
#define BOARD_RF_SUB1GHZ 30 /* TODO: pull from DT */
#define BOARD_ANT_GPIO_PA 0
#define BOARD_ANT_GPIO_SUBG 1
static void board_cc13xx_rf_callback(RF_Handle client, RF_GlobalEvent events,
void *arg);
static int board_antenna_init(const struct device *dev);
static void board_cc13xx_rf_callback(RF_Handle client, RF_GlobalEvent events, void *arg);
const RFCC26XX_HWAttrsV2 RFCC26XX_hwAttrs = {
.hwiPriority = INT_PRI_LEVEL7,
.swiPriority = 0,
.hwiPriority = INT_PRI_LEVEL7,
.swiPriority = 0,
.xoscHfAlwaysNeeded = true,
/* RF driver callback for custom antenna switching */
.globalCallback = board_cc13xx_rf_callback,
/* Subscribe to events */
.globalEventMask = (RF_GlobalEventRadioSetup | RF_GlobalEventRadioPowerDown),
.globalEventMask = (RF_GlobalEventRadioSetup |
RF_GlobalEventRadioPowerDown),
};
PINCTRL_DT_INST_DEFINE(0);
DEVICE_DT_INST_DEFINE(0, board_antenna_init, NULL, NULL, NULL, POST_KERNEL,
CONFIG_BOARD_ANTENNA_INIT_PRIO, NULL);
static const struct pinctrl_dev_config *ant_pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0);
static const struct gpio_dt_spec ant_gpios[] = {
DT_FOREACH_PROP_ELEM_SEP(DT_NODELABEL(antenna_mux0), gpios, GPIO_DT_SPEC_GET_BY_IDX, (,))};
/**
* Antenna switch GPIO init routine.
*/
static int board_antenna_init(const struct device *dev)
static int board_antenna_init(void)
{
ARG_UNUSED(dev);
int i;
/* default pinctrl configuration: set all antenna mux control pins as GPIOs */
pinctrl_apply_state(ant_pcfg, PINCTRL_STATE_DEFAULT);
/* set all GPIOs to 0 (all RF paths disabled) */
for (i = 0; i < ARRAY_SIZE(ant_gpios); i++) {
gpio_pin_configure_dt(&ant_gpios[i], 0);
}
/* set all paths to low */
IOCPinTypeGpioOutput(BOARD_RF_HIGH_PA);
GPIO_setOutputEnableDio(BOARD_RF_HIGH_PA, GPIO_OUTPUT_DISABLE);
IOCPinTypeGpioOutput(BOARD_RF_SUB1GHZ);
GPIO_setOutputEnableDio(BOARD_RF_SUB1GHZ, GPIO_OUTPUT_DISABLE);
return 0;
}
/**
* Custom TI RFCC26XX callback for switching the on-board antenna mux on radio setup.
*/
static void board_cc13xx_rf_callback(RF_Handle client, RF_GlobalEvent events, void *arg)
{
bool sub1GHz = false;
uint8_t loDivider = 0;
int i;
SYS_INIT(board_antenna_init, POST_KERNEL, CONFIG_BOARD_ANTENNA_INIT_PRIO);
/* Clear all antenna switch GPIOs (for all cases). */
for (i = 0; i < ARRAY_SIZE(ant_gpios); i++) {
gpio_pin_configure_dt(&ant_gpios[i], 0);
}
void board_cc13xx_rf_callback(RF_Handle client, RF_GlobalEvent events, void *arg)
{
bool sub1GHz = false;
uint8_t loDivider = 0;
/* Switch off all paths first. Needs to be done anyway in every sub-case below. */
GPIO_setOutputEnableDio(BOARD_RF_HIGH_PA, GPIO_OUTPUT_DISABLE);
GPIO_setOutputEnableDio(BOARD_RF_SUB1GHZ, GPIO_OUTPUT_DISABLE);
if (events & RF_GlobalEventRadioSetup) {
/* Decode the current PA configuration. */
RF_TxPowerTable_PAType paType =
(RF_TxPowerTable_PAType)RF_getTxPower(client).paType;
RF_TxPowerTable_PAType paType = (RF_TxPowerTable_PAType)
RF_getTxPower(client).paType;
/* Decode the generic argument as a setup command. */
RF_RadioSetup *setupCommand = (RF_RadioSetup *)arg;
switch (setupCommand->common.commandNo) {
case CMD_RADIO_SETUP:
case CMD_BLE5_RADIO_SETUP:
case (CMD_RADIO_SETUP):
case (CMD_BLE5_RADIO_SETUP):
loDivider = RF_LODIVIDER_MASK & setupCommand->common.loDivider;
/* Sub-1GHz front-end. */
if (loDivider != 0)
sub1GHz = true;
break;
case CMD_PROP_RADIO_DIV_SETUP:
case (CMD_PROP_RADIO_DIV_SETUP):
loDivider = RF_LODIVIDER_MASK & setupCommand->prop_div.loDivider;
/* Sub-1GHz front-end. */
if (loDivider != 0)
sub1GHz = true;
break;
default:
break;
}
sub1GHz = (loDivider != 0);
if (sub1GHz) {
if (paType == RF_TxPowerTable_HighPA) {
/* Note: RFC_GPO3 is a work-around because the RFC_GPO1 */
/* is sometimes not de-asserted on CC1352 Rev A. */
pinctrl_apply_state(ant_pcfg, PINCTRL_STATE_ANT_SUBG_PA);
} else {
pinctrl_apply_state(ant_pcfg, PINCTRL_STATE_ANT_SUBG);
/* Manually set the sub-GHZ antenna switch DIO */
gpio_pin_configure_dt(&ant_gpios[BOARD_ANT_GPIO_SUBG], 1);
}
/* Sub-1 GHz */
if (paType == RF_TxPowerTable_HighPA) {
/* PA enable --> HIGH PA */
/* LNA enable --> Sub-1 GHz */
/* Note: RFC_GPO3 is a work-around because the RFC_GPO1 */
/* is sometimes not de-asserted on CC1352 Rev A. */
IOCPortConfigureSet(BOARD_RF_HIGH_PA,
IOC_PORT_RFC_GPO3, IOC_IOMODE_NORMAL);
IOCPortConfigureSet(BOARD_RF_SUB1GHZ,
IOC_PORT_RFC_GPO0, IOC_IOMODE_NORMAL);
} else {
/* RF core active --> Sub-1 GHz */
IOCPortConfigureSet(BOARD_RF_HIGH_PA,
IOC_PORT_GPIO, IOC_IOMODE_NORMAL);
IOCPortConfigureSet(BOARD_RF_SUB1GHZ,
IOC_PORT_GPIO, IOC_IOMODE_NORMAL);
GPIO_setOutputEnableDio(BOARD_RF_SUB1GHZ, GPIO_OUTPUT_ENABLE);
}
} else {
pinctrl_apply_state(ant_pcfg, PINCTRL_STATE_DEFAULT);
/* Reset the IO multiplexer to GPIO functionality */
IOCPortConfigureSet(BOARD_RF_HIGH_PA,
IOC_PORT_GPIO, IOC_IOMODE_NORMAL);
IOCPortConfigureSet(BOARD_RF_SUB1GHZ,
IOC_PORT_GPIO, IOC_IOMODE_NORMAL);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -21,17 +21,12 @@ This board has following features:
* :abbr:`USB (Universal Serial Bus)`
* :abbr:`WDT (Watchdog Timer)`
.. figure:: img/ctcc_nrf52840_mpcie.webp
.. figure:: img/ctcc_nrf52840.webp
:align: center
:alt: CTCC nRF52840 mPCIe
:width: 300
:alt: CTCC nRF52840
ctcc/nrf52840 mPCie board
.. figure:: img/ctcc_nrf52840_m2.webp
:align: center
:alt: CTCC nRF52840 M.2
ctcc/nrf52840 M.2 board
ctcc/nrf52840 board target
More information about the board can be found at the
`ctcc_nrf52840 Website`_ and for SoC information: `Nordic Semiconductor Infocenter`_.

View File

@@ -141,10 +141,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -141,10 +141,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -463,10 +463,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -116,10 +116,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -146,10 +146,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -112,10 +112,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -112,10 +112,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -161,10 +161,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -161,10 +161,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -527,10 +527,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -79,10 +79,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -120,10 +120,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -67,10 +67,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -181,10 +181,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -19,8 +19,9 @@ Hardware
For more information about the CYW20829 SoC and CYW920829M2EVK-02 board:
- `CYW20829 SoC Website`_
- `CYW920829M2EVK-02 Board Website`_
- `CYW920829M2EVK-02 Website`_
- `CYW920829M2EVK-02 BT User Guide`_
Kit Features:
=============
@@ -85,76 +86,51 @@ To fetch Binary Blobs:
Build blinking led sample
*************************
Here is an example for building the :zephyr:code-sample:`blinky` sample application.
Here is an example for the :zephyr:code-sample:`blinky` application.
.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: cyw920829m2evk_02
:goals: build
:goals: build flash
OpenOCD Installation
====================
To get the OpenOCD package, it is required that you
1. Download and install the `ModusToolbox`_ software.
2. After the installation, add the directory containing the OpenOCD scripts to your environment's PATH variable.
Programming and Debugging
*************************
The CYW920829M2EVK-02 includes an onboard programmer/debugger (`KitProg3`_) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and require a custom Infineon OpenOCD version, that supports KitProg3, to be installed.
The CYW920829M2EVK-02 includes an onboard programmer/debugger (KitProg3) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands must be pointed to the Cypress OpenOCD you downloaded above.
Infineon OpenOCD Installation
=============================
On Windows:
Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon OpenOCD. Installing either of these packages will also install Infineon OpenOCD. If neither package is installed, a minimal installation can be done by downloading the `Infineon OpenOCD`_ release for your system and manually extract the files to a location of your choice.
.. code-block:: shell
.. note:: Linux requires device access rights to be set up for KitProg3. This is handled automatically by the ModusToolbox and ModusToolbox Programming Tools installations. When doing a minimal installation, this can be done manually by executing the script ``openocd/udev_rules/install_rules.sh``.
west flash --openocd path/to/infineon/openocd/bin/openocd.exe
west debug --openocd path/to/infineon/openocd/bin/openocd.exe
West Commands
=============
On Linux:
The path to the installed Infineon OpenOCD executable must be available to the ``west`` tool commands. There are multiple ways of doing this. The example below uses a permanent CMake argument to set the CMake variable ``OPENOCD``.
.. code-block:: shell
.. tabs::
.. group-tab:: Windows
.. code-block:: shell
# Run west config once to set permanent CMake argument
west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe
# Do a pristine build once after setting CMake argument
west build -b cyw920829m2evk_02 -p always samples/basic/blinky
west flash
west debug
.. group-tab:: Linux
.. code-block:: shell
# Run west config once to set permanent CMake argument
west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd
# Do a pristine build once after setting CMake argument
west build -b cyw920829m2evk_02 -p always samples/basic/blinky
west flash
west debug
west flash --openocd path/to/infineon/openocd/bin/openocd
west debug --openocd path/to/infineon/openocd/bin/openocd
Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging on the CYW20829 CM33 core.
.. _CYW20829 SoC Website:
.. _CYW920829M2EVK-02 Website:
https://www.infineon.com/cms/en/product/wireless-connectivity/airoc-bluetooth-le-bluetooth-multiprotocol/airoc-bluetooth-le/cyw20829/
.. _CYW920829M2EVK-02 Board Website:
https://www.infineon.com/cms/en/product/evaluation-boards/cyw920829m2evk-02/
.. _CYW920829M2EVK-02 BT User Guide:
https://www.infineon.com/cms/en/product/wireless-connectivity/airoc-bluetooth-le-bluetooth-multiprotocol/airoc-bluetooth-le/cyw20829/#!?fileId=8ac78c8c8929aa4d018a16f726c46b26
.. _ModusToolbox:
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox
.. _ModusToolbox Programming Tools:
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxprogtools
.. _Infineon OpenOCD:
https://github.com/Infineon/openocd/releases/latest
.. _KitProg3:
https://github.com/Infineon/KitProg3
https://github.com/infineon/openocd/releases/tag/release-v4.3.0

View File

@@ -111,9 +111,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code-block:: cfg
.. code-block:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_BOOTLOADER_MCUBOOT=y
Sysbuild
========

View File

@@ -108,10 +108,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -134,10 +134,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -160,10 +160,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -109,10 +109,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -78,10 +78,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -2,6 +2,4 @@
# SPDX-License-Identifier: Apache-2.0
config BOARD_MT8195_ADSP
select SOC_MT8195_ADSP
help
Board with Mediatek MT8195 Audio DSP
bool "Mediatek MT8195 Audio DSP"

View File

@@ -1,4 +1,5 @@
# Copyright 2023 The ChromiumOS Authors
# SPDX-License-Identifier: Apache-2.0
CONFIG_SOC_SERIES_MT8195_ADSP=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=13000000

View File

@@ -14,7 +14,6 @@
#include "phy_sync_ctrl.h"
#include "nsi_hw_scheduler.h"
#include "nsi_cpu_ctrl.h"
#include "nsi_host_trampolines.h"
/*
* These hooks are to be named nsif_cpu<cpu_number>_<hook_name>, for example nsif_cpu0_boot
@@ -56,8 +55,8 @@ NATIVE_SIMULATOR_IF void nsif_cpun_save_test_arg(char *argv)
{
if (test_args.test_case_argc >= test_args.allocated_size) {
test_args.allocated_size += TESTCASAE_ARGV_ALLOCSIZE;
test_args.test_case_argv = nsi_host_realloc(test_args.test_case_argv,
test_args.allocated_size * sizeof(char *));
test_args.test_case_argv = realloc(test_args.test_case_argv,
test_args.allocated_size * sizeof(char *));
if (test_args.test_case_argv == NULL) { /* LCOV_EXCL_BR_LINE */
bs_trace_error_line("Can't allocate memory\n"); /* LCOV_EXCL_LINE */
}
@@ -71,7 +70,7 @@ NATIVE_SIMULATOR_IF void nsif_cpun_save_test_arg(char *argv)
static void test_args_free(void)
{
if (test_args.test_case_argv) {
nsi_host_free(test_args.test_case_argv);
free(test_args.test_case_argv);
test_args.test_case_argv = NULL;
}
}

View File

@@ -20,17 +20,11 @@ The nRF54H20 is a multicore SoC with:
Extensions, running at up to 320 MHz, referred to as the **application core**
* an Arm Cortex-M33 core with DSP instructions, FPU, and Armv8-M Security
Extensions, running at up to 256 MHz, referred to as the **radio core**.
* a Nordic VPR RISC-V core, referred to as the **ppr core** (Peripheral
Processor).
The ``nrf54h20dk/nrf54h20/cpuapp`` build target provides support for
the application core on the nRF54H20 SoC.
The ``nrf54h20dk/nrf54h20/cpurad`` build target provides support for
the radio core on the nRF54H20 SoC.
The ``nrf54h20dk/nrf54h20/cpuppr`` build target provides support for
the PPR core on the nRF54H20 SoC executing from RAM.
The ``nrf54h20dk/nrf54h20/cpuppr/xip`` build target provides support for
the PPR core on the nRF54H20 SoC executing from MRAM.
nRF54H20 SoC provides support for the following devices:
@@ -121,10 +115,10 @@ Push buttons
Programming and Debugging
*************************
Applications for all targets can be built and flashed the usual way.
See :ref:`build_an_application` and :ref:`application_run` for more details on
building and running. Debugging is for now limited to the application and radio
cores only, using :ref:`nordic_segger`.
Applications for both the ``nrf54h20dk/nrf54h20/cpuapp`` and
``nrf54h20dk/nrf54h20/cpurad`` targets can be built, flashed,
and debugged in the usual way. See :ref:`build_an_application`
and :ref:`application_run` for more details on building and running.
Flashing
========
@@ -132,10 +126,13 @@ Flashing
As an example, this section shows how to build and flash the :ref:`hello_world`
application.
Follow the instructions in the :ref:`nordic_segger` page to install
and configure all the necessary software. Further information can be
found in :ref:`nordic_segger_flashing`.
To build and program the sample to the nRF54H20 DK, complete the following steps:
1. Connect the nRF54H20 DK to your computer using the IMCU USB port on the DK.
2. Install `nRF Util`_
#. Build the sample by running the following command:
.. zephyr-app-commands::
@@ -155,6 +152,3 @@ on the board are working properly with Zephyr:
You can build and flash the examples to make sure Zephyr is running correctly on
your board. The button and LED definitions can be found in
:zephyr_file:`boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp.dts`.
.. _nRF Util:
https://www.nordicsemi.com/Products/Development-tools/nrf-util

View File

@@ -84,7 +84,7 @@ The FRDM-MCXN947 board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| USDHC | on-chip | sdhc |
+-----------+------------+-------------------------------------+
| VREF | on-chip | regulator |
| VREF | on-chip | REGULATOR |
+-----------+------------+-------------------------------------+
| ADC | on-chip | adc |
+-----------+------------+-------------------------------------+

View File

@@ -60,7 +60,7 @@
w25q512jvfiq: w25q512jvfiq@0 {
compatible = "nxp,imx-flexspi-nor";
reg = <0>;
size = <DT_SIZE_M(64 * 8)>;
size = <(DT_SIZE_M(512) / 8)>;
status = "okay";
erase-block-size = <4096>;
write-block-size = <1>;

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2022,2024 NXP
* Copyright (c) 2022, NXP
* SPDX-License-Identifier: Apache-2.0
*
*/
@@ -12,7 +12,7 @@
pinmux = <&iomuxc_uart2_rxd_uart_rx_uart2_rx>,
<&iomuxc_uart2_txd_uart_tx_uart2_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};
@@ -21,7 +21,7 @@
pinmux = <&iomuxc_uart4_rxd_uart_rx_uart4_rx>,
<&iomuxc_uart4_txd_uart_tx_uart4_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2022,2024 NXP
* Copyright 2022 NXP
* SPDX-License-Identifier: Apache-2.0
*
*/
@@ -12,7 +12,7 @@
pinmux = <&iomuxc_uart2_rxd_uart_rx_uart2_rx>,
<&iomuxc_uart2_txd_uart_tx_uart2_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};
@@ -21,7 +21,7 @@
pinmux = <&iomuxc_uart4_rxd_uart_rx_uart4_rx>,
<&iomuxc_uart4_txd_uart_tx_uart4_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};

View File

@@ -181,11 +181,6 @@ At compilation time you have to choose which RAM will be used. This
configuration is done based on board name (imx8mp_evk/mimx8ml8/m7 for ITCM and
imx8mp_evk/mimx8ml8/m7/ddr for DDR).
There are two methods to load M7 Core images: U-Boot command and Linux remoteproc.
Load and Run M7 Zephyr Image from U-Boot
========================================
Load and run Zephyr on M7 from A53 using u-boot by copying the compiled
``zephyr.bin`` to the first FAT partition of the SD card and plug the SD
card into the board. Power it up and stop the u-boot execution at prompt.
@@ -193,7 +188,7 @@ card into the board. Power it up and stop the u-boot execution at prompt.
Load the M7 binary onto the desired memory and start its execution using:
ITCM
====
===
.. code-block:: console
@@ -210,86 +205,6 @@ DDR
dcache flush
bootaux 0x80000000
Load and Run M7 Zephyr Image by using Linux remoteproc
======================================================
Prepare device tree:
The device tree must inlcude CM7 dts node with compatible string "fsl,imx8mn-cm7",
and also need to reserve M4 DDR memory if using DDR code and sys address, and also
need to put "m4_reserved" in the list of memory-region property of the cm7 node.
.. code-block:: console
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
m7_reserved: m4@80000000 {
no-map;
reg = <0 0x80000000 0 0x1000000>;
};
...
}
imx8mp-cm7 {
compatible = "fsl,imx8mn-cm7";
rsc-da = <0x55000000>;
clocks = <&clk IMX8MP_CLK_M7_DIV>,
<&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_AUDPLL_ROOT>;
clock-names = "core", "audio";
mbox-names = "tx", "rx", "rxdb";
mboxes = <&mu 0 1
&mu 1 1
&mu 3 1>;
memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>, <&m7_reserved>;
status = "okay";
fsl,startup-delay-ms = <500>;
};
Extra Zephyr Kernel configure item for DDR Image:
If use remotepoc to boot DDR board (imx8mp_evk/mimx8ml8/m7/ddr), also need to enable
"CONFIG_ROMSTART_RELOCATION_ROM" in order to put romstart memory section into ITCM because
M7 Core will get the first instruction from zero address of ITCM, but romstart relocation
will make the storage size of zephyr.bin too large, so we don't enable it by default in
board defconfig.
.. code-block:: console
diff --git a/boards/nxp/imx8mp_evk/imx8mp_evk_mimx8ml8_m7_ddr_defconfig b/boards/nxp/imx8mp_evk/imx8mp_evk_mimx8ml8_m7_ddr_defconfig
index 17542cb4eec..8c30c5b6fa3 100644
--- a/boards/nxp/imx8mp_evk/imx8mp_evk_mimx8ml8_m7_ddr_defconfig
+++ b/boards/nxp/imx8mp_evk/imx8mp_evk_mimx8ml8_m7_ddr_defconfig
@@ -12,3 +12,4 @@ CONFIG_CONSOLE=y
CONFIG_XIP=y
CONFIG_CODE_DDR=y
CONFIG_PINCTRL=y
+CONFIG_ROMSTART_RELOCATION_ROM=y
Then use the following steps to boot Zephyr kernel:
1. In U-Boot command line execute prepare script:
.. code-block:: console
u-boot=> run prepare_mcore
2. Boot Linux kernel with specified dtb and then boot Zephyr by using remoteproc:
.. code-block:: console
root@imx8mp-lpddr4-evk:~# echo zephyr.elf > /sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/firmware
root@imx8mp-lpddr4-evk:~# echo start > /sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/state
[ 39.195651] remoteproc remoteproc0: powering up imx-rproc
[ 39.203345] remoteproc remoteproc0: Booting fw image zephyr.elf, size 503992
[ 39.203388] remoteproc remoteproc0: No resource table in elf
root@imx8mp-lpddr4-evk:~# [ 39.711380] remoteproc remoteproc0: remote processor imx-rproc is now up
root@imx8mp-lpddr4-evk:~#
Debugging
=========

View File

@@ -5,7 +5,7 @@
#
identifier: imx93_evk/mimx9352/a55
name: NXP i.MX93 EVK A55
name: NXP i.MX93 Plus EVK A55
type: mcu
arch: arm64
toolchain:

View File

@@ -23,5 +23,4 @@ supported:
- i2c
- spi
- usb_device
- usbd
vendor: nxp

View File

@@ -19,6 +19,4 @@ supported:
- gpio
- pwm
- dac
- usb_device
- usbd
vendor: nxp

View File

@@ -169,7 +169,6 @@
drive-strength = "normal";
drive-open-drain;
slew-rate = "fast";
input-enable;
};
};

View File

@@ -67,7 +67,7 @@
&lpi2c5 {
status = "okay";
pinctrl-0 = <&pinmux_lpi2c5>;
pinctrl-0 = <&pinmux_lpi2c1>;
pinctrl-names = "default";
fxos8700: fxos8700@1f {
@@ -178,7 +178,7 @@
};
&lpi2c1 {
pinctrl-0 =<&pinmux_lpi2c1>;
pinctrl-0 =<&pinmux_lpi2c5>;
pinctrl-names = "default";
};

View File

@@ -363,6 +363,9 @@ Using LinkServer
----------------
Known limitations with LinkServer and these boards include:
- ``west debug`` does not yet work correctly, and the application image is not
properly written to the memory. `NXP MCUXpresso for Visual Studio Code`_
can be used to debug Zephyr applications with LinkServer.
- ``west flash`` will not write images to non-flash locations. The flash
command only works when all data in the image is written to flash memory
regions.

View File

@@ -148,14 +148,6 @@ nxp_mipi_i2c: &lpi2c5 {
zephyr_udc0: &usb1 {
status = "okay";
phy_handle = <&usbphy1>;
};
&usbphy1 {
status = "okay";
tx-d-cal = <7>;
tx-cal-45-dp-ohms = <6>;
tx-cal-45-dm-ohms = <6>;
};
&mailbox_a {

View File

@@ -29,5 +29,4 @@ supported:
- usb_device
- watchdog
- video
- usbd
vendor: nxp

View File

@@ -414,11 +414,11 @@ zephyr_udc0: &usbhs {
label = "image-0";
reg = <0x00020000 (DT_SIZE_M(3) + DT_SIZE_K(98 * 4))>;
};
slot1_partition: partition@382000 {
slot1_partition: partition@322000 {
label = "image-1";
reg = <0x00382000 DT_SIZE_M(3)>;
};
storage_partition: partition@682000 {
storage_partition: partition@622000 {
label = "storage";
reg = <0x00682000 (DT_SIZE_M(58) - DT_SIZE_K(520))>;
};

View File

@@ -275,11 +275,11 @@ i2s1: &flexcomm3 {
label = "image-0";
reg = <0x00020000 (DT_SIZE_M(3) + DT_SIZE_K(98 * 4))>;
};
slot1_partition: partition@382000 {
slot1_partition: partition@322000 {
label = "image-1";
reg = <0x00382000 DT_SIZE_M(3)>;
};
storage_partition: partition@682000 {
storage_partition: partition@622000 {
label = "storage";
reg = <0x00682000 (DT_SIZE_M(58) - DT_SIZE_K(520))>;
};

View File

@@ -136,10 +136,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -123,10 +123,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -12,7 +12,7 @@
pinmux = <&iomuxc_uart4_rxd_uart_rx_uart4_rx>,
<&iomuxc_uart4_txd_uart_tx_uart4_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};
@@ -21,7 +21,7 @@
pinmux = <&iomuxc_uart3_rxd_uart_rx_uart3_rx>,
<&iomuxc_uart3_txd_uart_tx_uart3_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};
@@ -32,7 +32,7 @@
<&iomuxc_sai3_txfs_uart_tx_uart2_rx>,
<&iomuxc_sai3_txc_uart_rx_uart2_tx>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};
@@ -43,7 +43,7 @@
<&iomuxc_sai2_rxd0_uart_rts_b_uart1_rts_b>,
<&iomuxc_sai2_txfs_uart_cts_b_uart1_cts_b>;
slew-rate = "fast";
drive-strength = "x6";
drive-strength = "40-ohm";
};
};
};

View File

@@ -44,15 +44,6 @@
};
};
/omit-if-no-ref/ i2c_sleep: i2c_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 0, 31)>,
<SMARTBOND_PINMUX(GPIO, 0, 30)>;
bias-pull-up;
};
};
i2c2_default: i2c2_default {
group1 {
pinmux = <SMARTBOND_PINMUX(I2C2_SDA, 0, 19)>,
@@ -61,14 +52,6 @@
};
};
/omit-if-no-ref/ i2c2_sleep: i2c2_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 0, 28)>,
<SMARTBOND_PINMUX(GPIO, 0, 29)>;
bias-pull-up;
};
};
/omit-if-no-ref/ spi_sleep: spi_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 0, 21)>,

View File

@@ -189,15 +189,13 @@ zephyr_udc0: &usbd {
&i2c {
status = "okay";
pinctrl-0 = <&i2c_default>;
pinctrl-1 = <&i2c_sleep>;
pinctrl-names = "default", "sleep";
pinctrl-names = "default";
};
&i2c2 {
status = "okay";
pinctrl-0 = <&i2c2_default>;
pinctrl-1 = <&i2c2_sleep>;
pinctrl-names = "default", "sleep";
pinctrl-names = "default";
};
&spi {

View File

@@ -105,10 +105,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -120,10 +120,9 @@ There are two options to be used when building an application:
User can select the MCUboot bootloader by adding the following line
to the board default configuration file.
.. code:: cfg
CONFIG_BOOTLOADER_MCUBOOT=y
```
CONFIG_BOOTLOADER_MCUBOOT=y
```
Sysbuild
========

View File

@@ -57,7 +57,7 @@ GPIO interfaces (see :ref:`shields` for more details).
Programming
***********
Set ``--shield adafruit_2_8_tft_touch_v2`` when you invoke ``west build``. For example:
Set ``-DSHIELD=adafruit_2_8_tft_touch_v2`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/subsys/display/lvgl
@@ -66,7 +66,7 @@ Set ``--shield adafruit_2_8_tft_touch_v2`` when you invoke ``west build``. For e
:goals: build
If the shield is connected to a board which has Arduino Nano connector,
set ``--shield adafruit_2_8_tft_touch_v2_nano`` when you invoke ``west build``.
set ``-DSHIELD=adafruit_2_8_tft_touch_v2_nano`` when you invoke ``west build``.
.. zephyr-app-commands::
:zephyr-app: samples/subsys/display/lvgl

View File

@@ -62,7 +62,7 @@ defines node aliases for SPI and GPIO interfaces (see :ref:`shields` for more de
Programming
***********
Set ``--shield adafruit_data_logger`` when you invoke ``west build``. For example:
Set ``-DSHIELD=adafruit_data_logger`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: tests/drivers/rtc/rtc_api

View File

@@ -36,7 +36,7 @@ Programming
LED Strip Example
=================
Set ``--shield adafruit_neopixel_grid_bff`` when you invoke ``west build``. For example:
Set ``-DSHIELD=adafruit_neopixel_grid_bff`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/drivers/led_strip
@@ -57,7 +57,7 @@ LED Display Matrix Example
recommended if all of the LEDs are fully on for any significant amount of
time.
Set ``--shield adafruit_neopixel_grid_bff_display`` when you invoke ``west build``. For example:
Set ``-DSHIELD=adafruit_neopixel_grid_bff_display`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/drivers/display

View File

@@ -27,7 +27,7 @@ Pins Assignments
Programming
***********
Set ``--shield adafruit_pca9685`` when you invoke ``west build``.
Set ``-DSHIELD=adafruit_pca9685`` when you invoke ``west build``.
For example:
.. zephyr-app-commands::

View File

@@ -53,7 +53,7 @@ for Arduino connectors and defines node aliases for SPI and GPIO interfaces
Programming
***********
Set ``--shield adafruit_winc1500`` when you invoke ``west build``. For example:
Set ``-DSHIELD=adafruit_winc1500`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/net/wifi

View File

@@ -145,7 +145,7 @@ The ``samples/sensor/amg88xx`` application demonstrates the basic usage of the
Panasonic Grid-EYE sensor.
If you want to build the application you have to use the
``--shield amg88xx_grid_eye_eval_shield`` shield designation accordingly when
``-DSHIELD=amg88xx_grid_eye_eval_shield`` shield designation accordingly when
you invoke ``west build``.
When using the PAN1780 evaluation board the build invocation looks like this:

View File

@@ -39,7 +39,7 @@ Arduino header or custom header (by adjusting the overlay).
Programming
***********
Set ``--shield arceli_eth_w5500`` when you invoke ``west build``. For example:
Set ``-DSHIELD=arceli_eth_w5500`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/net/dhcpv4_client

View File

@@ -38,7 +38,7 @@ socket is assigned the ``mikrobus_header`` node label.
Programming
***********
Include ``--shield arduino_uno_click`` when you invoke ``west build`` with
Include ``-DSHIELD=arduino_uno_click`` when you invoke ``west build`` with
other mikroBUS shields. For example:
.. zephyr-app-commands::
@@ -46,7 +46,7 @@ other mikroBUS shields. For example:
:host-os: unix
:board: sam_v71_xult/samv71q21
:gen-args: -DOVERLAY_CONFIG=overlay-802154.conf
:shield: arduino_uno_click,atmel_rf2xx_mikrobus
:shield: "arduino_uno_click atmel_rf2xx_mikrobus"
:goals: build
References

View File

@@ -289,7 +289,7 @@ config file. See :zephyr:code-sample:`sockets-echo-server` and
Build and Programming
*********************
Set ``--shield <shield designator>`` when you invoke ``west build``.
Set ``-DSHIELD=<shield designator>`` when you invoke ``west build``.
.. zephyr-app-commands::
:zephyr-app: samples/net/sockets/echo_server

View File

@@ -23,7 +23,7 @@ BoosterPack connectors.
Programming
***********
Set ``--shield boostxl_ulpsense`` when you invoke ``west build``. For example:
Set ``-DSHIELD=boostxl_ulpsense`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/sensor/accel_polling/

View File

@@ -56,7 +56,7 @@ for Arduino connectors and defines node aliases for SPI and GPIO interfaces
Programming
***********
Set ``--shield buydisplay_2_8_tft_touch_arduino`` when you invoke
Set ``-DSHIELD=buydisplay_2_8_tft_touch_arduino`` when you invoke
``west build``. For example:
.. zephyr-app-commands::

View File

@@ -58,7 +58,7 @@ for Arduino connectors and defines node aliases for SPI and GPIO interfaces
Programming
***********
Set ``--shield buydisplay_3_5_tft_touch_arduino`` when you invoke
Set ``-DSHIELD=buydisplay_3_5_tft_touch_arduino`` when you invoke
``west build``. For example:
.. zephyr-app-commands::

View File

@@ -75,7 +75,7 @@ connector with DVP (parallel) interface, such as the i.MX RT1050, RT1060, RT1064
Programming
***********
Set ``--shield dvp_fpc24_mt9m114`` when you invoke ``west build``. For example:
Set ``-DSHIELD=dvp_fpc24_mt9m114`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/subsys/video/capture

View File

@@ -110,7 +110,7 @@ configurations should be used based on the board standard headers available.
Build and Programming
*********************
Set ``--shield <shield designation>`` when you invoke ``west build``.
Set ``-DSHIELD=<shield designation>`` when you invoke ``west build``.
To build shield with specific overlay:

View File

@@ -52,7 +52,7 @@ For more information about the MCR20A SoC and FRDM-CR20A board:
Programming
***********
Set ``--shield frdm_cr20a`` when you invoke ``west build``. For example:
Set ``-DSHIELD=frdm_cr20a`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/net/wpanusb

View File

@@ -55,7 +55,7 @@ host controller interface (HCI):
#. Attach the FRDM-KW41Z to the Arduino header on your selected main board,
such as :ref:`mimxrt1050_evk` or :ref:`frdm_k64f`.
#. Set ``--shield frdm_kw41z`` when you invoke ``west build`` in
#. Set ``-DSHIELD=frdm_kw41z`` when you invoke ``west build`` in
your Zephyr bluetooth application. For example,
.. zephyr-app-commands::

View File

@@ -52,7 +52,7 @@ board:
Programming
***********
Set ``--shield frdm_stbc_agm01`` when you invoke ``west build``. For example:
Set ``-DSHIELD=frdm_stbc_agm01`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/sensor/fxas21002

View File

@@ -75,7 +75,7 @@ See :zephyr:code-sample:`ft800` sample for details.
Build and Programming
*********************
Set ``--shield <shield designator>`` when you invoke ``west build``.
Set ``-DSHIELD=<shield designator>`` when you invoke ``west build``.
.. zephyr-app-commands::
:zephyr-app: samples/drivers/misc/ft800

View File

@@ -50,7 +50,7 @@ for the 40 pin FPC interface
Programming
***********
Set ``--shield g1120b0mipi`` when you invoke ``west build``. For
Set ``-DSHIELD=g1120b0mipi`` when you invoke ``west build``. For
example:
.. zephyr-app-commands::

View File

@@ -147,7 +147,7 @@ connect and send ping.
Build and Programming
*********************
Set ``--shield <shield designator>`` when you invoke ``west build``.
Set ``-DSHIELD=<shield designator>`` when you invoke ``west build``.
.. zephyr-app-commands::
:zephyr-app: samples/net/wifi

View File

@@ -22,7 +22,7 @@ enabled.
Programming
***********
Set ``--shield lcd_par_s035_8080`` when you invoke ``west build``. For
Set ``-DSHIELD=lcd_par_s035_8080`` when you invoke ``west build``. For
example:
.. zephyr-app-commands::

View File

@@ -102,7 +102,7 @@ For more information about the link board ETH and ENC424J600:
Programming
***********
Set ``--shield link_board_eth`` when you invoke ``west build`` or ``cmake`` in your
Set ``-DSHIELD=link_board_eth`` when you invoke ``west build`` or ``cmake`` in your
Zephyr application. For example:
.. zephyr-app-commands::

View File

@@ -41,7 +41,7 @@ Zephyr RTOS includes one sample targeting the LMP90100 EVB:
Programming
***********
Set ``--shield lmp90100_evb`` when you invoke ``west build``. For example:
Set ``-DSHIELD=lmp90100_evb`` when you invoke ``west build``. For example:
.. zephyr-app-commands::
:zephyr-app: samples/shields/lmp90100_evb/rtd

Some files were not shown because too many files have changed in this diff Show More