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

SIM3U: board + UART #64209

Closed
wants to merge 6 commits into from
Closed

SIM3U: board + UART #64209

wants to merge 6 commits into from

Conversation

M1cha
Copy link
Contributor

@M1cha M1cha commented Oct 21, 2023

This is a reduced version of #57871.
I removed everything that is not needed for UART. I've also added documentation and rebased to the latest main branch. I didn't address much(if anything) from the original PR to make differences more visible.

@zephyrbot
Copy link
Collaborator

zephyrbot commented Oct 21, 2023

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
hal_silabs zephyrproject-rtos/hal_silabs@d191d98 (master) zephyrproject-rtos/hal_silabs#29 zephyrproject-rtos/hal_silabs#29/files

Note: This message is automatically posted and updated by the Manifest GitHub Action.

Comment on lines 178 to 196
#define GPIO_DEVICE_INIT_SI32(__suffix) \
GPIO_DEVICE_INIT(DT_NODELABEL(gpio##__suffix), __suffix, \
DT_REG_ADDR(DT_NODELABEL(gpio##__suffix)))

#if DT_NODE_HAS_STATUS(DT_NODELABEL(gpio0), okay)
GPIO_DEVICE_INIT_SI32(0);
#endif

#if DT_NODE_HAS_STATUS(DT_NODELABEL(gpio1), okay)
GPIO_DEVICE_INIT_SI32(1);
#endif

#if DT_NODE_HAS_STATUS(DT_NODELABEL(gpio2), okay)
GPIO_DEVICE_INIT_SI32(2);
#endif

#if DT_NODE_HAS_STATUS(DT_NODELABEL(gpio3), okay)
GPIO_DEVICE_INIT_SI32(3);
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use DT_INST_FOREACH_STATUS_OKAY instead of hardcoding instance numbers here?

Copy link
Contributor Author

@M1cha M1cha Nov 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you're right. I copied that from another driver which didn't use that either at the time. Right now, the only driver left that doesn't use that macro seems to be stm32.

Comment on lines +84 to +96
static void vmon_init(void)
{
/* VMON must be enabled for flash write/erase support */

NVIC_ClearPendingIRQ(VDDLOW_IRQn);

IRQ_CONNECT(VDDLOW_IRQn, 0, vddlow_irq_handler, NULL, 0);
irq_enable(VDDLOW_IRQn);

SI32_VMON_A_enable_vdd_supply_monitor(SI32_VMON_0);
SI32_VMON_A_enable_vdd_low_interrupt(SI32_VMON_0);
SI32_VMON_A_select_vdd_standard_threshold(SI32_VMON_0);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Is flash support required for UART operation? As per the PR description
  2. IMO we should convert this to a separate sensor driver

Copy link
Contributor Author

@M1cha M1cha Oct 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Your post ends mid-sentence and these lines don't have anything related to flash, but: The flash driver itself is not needed for UART, but:
  1. Definitely, It's just that we didn't have a use for it yet and this is only needed to enable the watchdog. I'll have to look into how well this hardware fits into the sensor subsystem and how much work it'd be to integrate it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. don't have anything related to flash

What about /* VMON must be enabled for flash write/erase support */?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh sry, I forgot about that. I put this here because it's required to read/write flash and I assumed that everyone would want this (which may not be true ofc).

I don't think the sensor subsystem is a good fit for VMON because this hardware can only produce notifications in form of interrupts, you can't read the voltage level(it's not an ADC). It also seems to be wired up to other peripherals internally. My assumption is that the flash silicon wants to prevent write write-operation failures by detecting VDD issues.

Comment on lines +35 to +58
/* Apply pinctrl gpio settings */
SI32_PBSTD_A_write_pins_high(SI32_PBSTD_0, PORTBANK_0_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_0, PORTBANK_0_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_0, PORTBANK_0_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_0, PORTBANK_0_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_0, PORTBANK_0_PINS_ANALOG);

SI32_PBSTD_A_write_pins_high(SI32_PBSTD_1, PORTBANK_1_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_1, PORTBANK_1_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_1, PORTBANK_1_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_1, PORTBANK_1_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_1, PORTBANK_1_PINS_ANALOG);

SI32_PBSTD_A_write_pins_high(SI32_PBSTD_2, PORTBANK_2_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_2, PORTBANK_2_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_2, PORTBANK_2_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_2, PORTBANK_2_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_2, PORTBANK_2_PINS_ANALOG);

SI32_PBSTD_A_write_pins_high(SI32_PBSTD_3, PORTBANK_3_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_3, PORTBANK_3_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_3, PORTBANK_3_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_3, PORTBANK_3_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_3, PORTBANK_3_PINS_ANALOG);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be handled by the pinctrl driver then?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't have a pinctrl driver. That's the reason why this exists in first place. The GPIO driver shouldn't be used here either since it must be set even if CONFIG_GPIO is disabled.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this code put here and not in a pinctrl driver? can you please explain why can't this be executed by each driver?

Copy link
Contributor Author

@M1cha M1cha Nov 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A device driver usually informs the pinctrl subsystem about the pinconfig it wants by calling pinctrl_apply_state. After that function returns it expect things to be muxed already and may start using the device.

So what we need to do on sim3u is to know which pinmuxings are needed before even trying to probe every driver.

Of course, we could just cache the request in "pinctrl_apply_state" but not actually apply any changes, then register a SYS_INIT at a very late level like APPLICATION where we apply it. But IMO that would violate the pinctrl API and may not work with certain drivers.

IMO the pinctrl API is just fundamentally incompatible with the way sim3u works and I was simply trying to find a way to at least be able to use the expressiveness provided by the devicetree nodes.

Comment on lines +26 to +33
/* Enable misc clocks.
* We may or may nor need all of that but it includes some basics like
* LOCK0, WDTIMER0 and DMA. Doing it here prevents the actual drivers
* needing to know whoelse needs one of these clocks.
*/
SI32_CLKCTRL_A_enable_apb_to_modules_1(
SI32_CLKCTRL_0, SI32_CLKCTRL_A_APBCLKG1_MISC0 | SI32_CLKCTRL_A_APBCLKG1_MISC1);
SI32_CLKCTRL_A_enable_ahb_to_dma_controller(SI32_CLKCTRL_0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we read which clocks we need from the devicetree?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How exactly would that look like? The proper way would probably be to have e driver+device for every clock and then pass it via devicetree and create a custom driver interface to turn the clock handle into a register for apb.

To me that seems like a lot of additional code and overhead for something that we currently don't support changing anyway.


#ifndef _SOC__H_
#define _SOC__H_

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know that in some cases on some architectures Zephyr requires an soc.h header, even if it's empty. Just wanted to make sure that it is the case here as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zephyr/modules/cmsis/cmsis_core_m.h seems to need it.

west.yml Outdated
@@ -222,7 +222,7 @@ manifest:
groups:
- hal
- name: hal_silabs
revision: d191d981c4eb20c0c7445a4061fcdbcfa686113a
revision: 98b458d99b74083fce4c715fedcee45d388eb8b8
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should point to the PR head directly, i.e. revision: pull/x/head where x is your PR number in the HAL.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good idea, thx


/* Since a hardware reset affects the debug hardware as well, this
* makes it easier to recover from a broken firmware */
busy_delay(3000000);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use k_busy_wait here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

k_busy_wait uses a hardware counter and I didn't think it was a good idea to rely on it's availability at this early stage. If you understand those better and can confirm that it's not an issue I can change it though.


key = irq_lock();

/* The watchdog may be enabled already so we have to disable it */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enabled by whom - is there some kind of bootrom on this SoC that enables some of the peripherals? What's the default reset state for watchdog on SIM3U?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately I don't know that. It's just something that I have observed to be the case on certain devices.

Copy link
Contributor

@rettichschnidi rettichschnidi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot! I have not (yet) compiled/tested this code, only found some typos while skimming the PR.

@@ -0,0 +1,71 @@
.. _boardname_linkname:

GARDENA SIM3U radio module
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
GARDENA SIM3U radio module
GARDENA SiM3U radio module


.. figure:: gardena_rm_sim3u.jpg
:align: center
:alt: GARDENA SIM3U radio module
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:alt: GARDENA SIM3U radio module
:alt: GARDENA SiM3U radio module

Hardware
********

- SIM3U167B-GM SoC
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the data sheet:

Suggested change
- SIM3U167B-GM SoC
- SiM3U167-B-GM SoC

********

- SIM3U167B-GM SoC
- SPI si4467 transceiver
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- SPI si4467 transceiver
- SPI Silicon Labs Si4467 transceiver

========

The easiest way is to do this via SSH from the Linux SoM that's connected to
the SIM3U SoM.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the SIM3U SoM.
the SiM3U SoM.

#include "gardena_rm_sim3u-pinctrl.dtsi"

/ {
model = "GARDENA sim3u radio module";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
model = "GARDENA sim3u radio module";
model = "GARDENA Sim3U radio module";

# SPDX-License-Identifier: Apache-2.0

identifier: gardena_rm_sim3u
name: GARDENA sim3u radio module
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
name: GARDENA sim3u radio module
name: GARDENA SiM3U radio module

@@ -0,0 +1,23 @@
# SIM3U series configuration options
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# SIM3U series configuration options
# SiM3U series configuration options

default "sim3u"

config SOC_PART_NUMBER
default "SIM3U167-A-GM" if SOC_PART_NUMBER_SIM3U167_A_GM
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not understand why exactly this is needed, but there seems to be no A variant:

Suggested change
default "SIM3U167-A-GM" if SOC_PART_NUMBER_SIM3U167_A_GM
default "SiM3U167-B-GM" if SOC_PART_NUMBER_SIM3U167_B_GM

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to be a way for boards to select the variant in case that information is needed at compile-time. But you're right so I switched it to the B variant which is also selected by our board.


"""Generate crossbar register values from devicetree pinctrl nodes.

The sim3u soc does support pinmuxing, but with many limimitations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The sim3u soc does support pinmuxing, but with many limimitations.
The SiM3U soc does support pinmuxing, but with many limimitations.

Comment on lines +62 to +69
class Signal(enum.Enum):
USART0_TX = 0
USART0_RX = 1
USART0_RTS = 2
USART0_CTS = 3
USART0_UCLK = 4

USART1_TX = 9
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you please explain why we need pinctrl related Python scripts in soc/? If this is required by the HAL, -1 to have this in tree.

Copy link
Contributor Author

@M1cha M1cha Oct 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is described in detail in the documentation of said python module: https://github.com/zephyrproject-rtos/zephyr/pull/64209/files#diff-0a14224d1df8e0d15ef02b23405ccca2fa3ee71eb65671d7c03b289357a112beR7

This is a workaround due to hardware limitations. The pinctrl hardware functions under the assumption that you set all the configs once at boot and never touch them again. This doesn't fit zephyrs pinctrl subsystem which tries to configure pins for every peripheral on demand, one by one. The python script allows using devicetree pinctrl nodes to simplify pin configuration even though we do not support the pinctrl subsystem.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you please provide a datasheet or something to look at?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://www.silabs.com/documents/public/data-sheets/SiM3U1xx-SiM3C1xx-RM.pdf
8. Port I/O Configuration, Specifically the crossbar descriptions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it's

When configuring the crossbar, all settings should be made to the crossbar and Port Bank registers before
enabling the crossbar. This ensures that peripherals will not shift around while each one is being enabled and Port
I/O pins will remain stable. The settings in PBOUTMD, PBMDSEL, or PBSKIPEN will not take effect until the
crossbars are enabled.

right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exactly.

Comment on lines +35 to +52
/* Apply pinctrl gpio settings */
SI32_PBSTD_A_write_pins_high(SI32_PBSTD_0, PORTBANK_0_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_0, PORTBANK_0_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_0, PORTBANK_0_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_0, PORTBANK_0_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_0, PORTBANK_0_PINS_ANALOG);

SI32_PBSTD_A_write_pins_high(SI32_PBSTD_1, PORTBANK_1_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_1, PORTBANK_1_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_1, PORTBANK_1_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_1, PORTBANK_1_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_1, PORTBANK_1_PINS_ANALOG);

SI32_PBSTD_A_write_pins_high(SI32_PBSTD_2, PORTBANK_2_PINS_HIGH);
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_2, PORTBANK_2_PINS_LOW);
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_2, PORTBANK_2_PINS_DIGITAL_INPUT);
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_2, PORTBANK_2_PINS_PUSH_PULL_OUTPUT);
SI32_PBSTD_A_set_pins_analog(SI32_PBSTD_2, PORTBANK_2_PINS_ANALOG);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-1 on custom pin control mechanisms.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you expand on what you mean by "custom"? Are you referring to #64209 (comment) ? Any comments on my reply to that?

This bumps the hal_silabs in order to add initial support for
sim3u SoCs.

WIP, because the revision wasn't merged, yet.

Signed-off-by: Michael Zimmermann <[email protected]>
Includes the SoC, pinctrl, flash and devicetree.
I had to include the flash driver that early because I couldn't make zephyr
compile without flash driver nodes in the device tree.

Signed-off-by: Michael Zimmermann <[email protected]>
this serves two main purposes:
- change the CPU clock via devicetree nodes
- provide the APB frequency to device drivers via the clock driver
  interface

Theoretically this could also support choosing between the available clock
sources, but right now we only support LPOSC0 going into PLL0, going into
AHB.

Turning the PLL back off is also not supported since the only current
usecase is to set the PLL frequency, turn it on, and switch the AHB over to
it.

Signed-off-by: Michael Zimmermann <[email protected]>
This is just the driver for banks 0,1,2,3. Bank 4 will come via a separate
commit since it needs a different driver.

Signed-off-by: Michael Zimmermann <[email protected]>
This supports polling and interrupt APIs, but not the async API.

Signed-off-by: Michael Zimmermann <[email protected]>
Signed-off-by: Michael Zimmermann <[email protected]>
@M1cha
Copy link
Contributor Author

M1cha commented Nov 10, 2023

I rebased, fixed typos and made the gpio driver use foreach. Most comments are still waiting for feedback.

@zephyrbot zephyrbot added the DNM This PR should not be merged (Do Not Merge) label Nov 10, 2023
Copy link
Member

@gmarull gmarull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after explanation, pinctrl changes look reasonable, thanks for the details. added a few more comments

SI32_VMON_A_select_vdd_standard_threshold(SI32_VMON_0);
}

__no_optimization static void busy_delay(uint32_t cycles)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please use k_busy_wait

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +20 to +31
static void gpio_init(void)
{
/* Enable clocks that we need in any case */
SI32_CLKCTRL_A_enable_apb_to_modules_0(
SI32_CLKCTRL_0, SI32_CLKCTRL_A_APBCLKG0_PB0 | SI32_CLKCTRL_A_APBCLKG0_FLASHCTRL0);

/* Enable misc clocks.
* We may or may nor need all of that but it includes some basics like
* LOCK0, WDTIMER0 and DMA. Doing it here prevents the actual drivers
* needing to know whoelse needs one of these clocks.
*/
SI32_CLKCTRL_A_enable_apb_to_modules_1(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please split all the pinctrl functionality into its own commit, and explain why this is done this way

Copy link
Contributor Author

@M1cha M1cha Nov 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we expect explanations to be available in multiple places? While I obviously find good commit messages important, I prefer to put documentation that is important for the code in general rather than the specific change into the code. That's why I wrote a very lengthy explanation in the python script documentation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the Python script is ok, this function should probably have a couple of lines that it works thanks to such script. an individual commit message adding the crossbar functionality will also help (e.g. commit message summarizing details and referencing to the datasheet relevant sections)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know of any ways to split up Initial sim3u1xx support? That commit contains everything that's needed for just UART. I wasn't even able to separate the flash driver - let alone the crossbar config.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just add bits that build but do not work as a whole, this has been done many times in Zephyr, e.g. first add bindings, then driver using them


zephyr_sources(soc.c)

set(CROSSBAR_CONFIG_H ${CMAKE_BINARY_DIR}/zephyr/include/generated/silabs_crossbar_config.h)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is being refactored now to include zephyr/ prefix #63973


slot0_partition: partition@0 {
label = "image-0";
reg = <0x00000000 DT_SIZE_K(1664)>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1664 kilobytes?

Suggested change
reg = <0x00000000 DT_SIZE_K(1664)>;
reg = <0x00000000 DT_SIZE_K(192)>;

reg = <0x00000000 DT_SIZE_K(1664)>;
};

storage_partition: partition@250000 {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reflecting the actual offset would be better I guess?

Suggested change
storage_partition: partition@250000 {
storage_partition: partition@30000 {

Copy link

github-actions bot commented Feb 5, 2024

This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time.

@github-actions github-actions bot added the Stale label Feb 5, 2024
@rettichschnidi
Copy link
Contributor

Please do not close. @M1cha let me know if you'd rather have me taking this over, would be happy do to so.

Copy link
Collaborator

@nordicjm nordicjm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to be migrated to hwmv2

Copy link

This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time.

@github-actions github-actions bot added the Stale label Apr 27, 2024
@rettichschnidi
Copy link
Contributor

This is still being worked in (https://github.com/husqvarnagroup/zephyr/tree/gardena/rs/sim3u). Please do not close.

@github-actions github-actions bot removed the Stale label Apr 28, 2024
Maravus pushed a commit to husqvarnagroup/zephyr that referenced this pull request Jun 13, 2024
This is cherry-picked from the PR already opened by Michael Zimmermann:
zephyrproject-rtos#57871

Eventually, this commit should be updated with the new PR posted here:
zephyrproject-rtos#64209

For this reason, do not merge substantial improvements over the original
PR into this commit - it would (likely) be forgotten when switching to
the new PR.

Note: As requested by the reviewers upstream, the new PR is reduced in
scope and therefore, the extracted parts need to be brought back
manually.

(cherry picked from commit a2ce87510b7ee119f3df179192ffb5ff083b6100)
(squashed ab4505ff0d234c457aaa0d3ddc27833157d0d0ad)
Copy link

This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Clock Control area: Devicetree Binding PR modifies or adds a Device Tree binding area: Flash area: GPIO area: Pinctrl area: UART Universal Asynchronous Receiver-Transmitter DNM This PR should not be merged (Do Not Merge) manifest manifest-hal_silabs platform: Silabs Silicon Labs Stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants