For ENTDAA, BCR and DCR is always transmitted back up to the controller.
When `i3c_bus_init` is done, it does the ENTDAA then it would get the
basic info would get the BCR and DCR again. This was rather reduntant.
This now splits it up so there is a function called
`i3c_device_adv_info_get` which gets the mrl, mwl, getcaps, and the
mxds. `i3c_device_basic_info_get` now only just gets the bcr and dcr.
There is also an inline function called `i3c_device_info_get` which
will get everything.
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
The two interrupt controller registers on 818x got spoonerized, oops.
Hilariously it actually worked (mostly) becuase the interrupt would
still be delivered, the controller isn't involved in the ACK/clear
process on thsi device, the and the set of pending interrupts was
masked against enabled ones. Found it by accident when I moved things
around and caught a "spurious" interrupt.
Also the 8195 DRAM region was all packed in a single block that doesn't
honor the two regions defined in the host devicetree. That's benign
from Zephyr (the memory in the hole actually is usable) but dangerous
for SOF as the second region is used by the host driver to allocate
DMA buffers and we can't touch it except as directed. Honor the
scheme used by the other devices.
Signed-off-by: Andy Ross <andyross@google.com>
For the same reason that this script can't zero the SRAM region (it
spontaneously reboots my 8186 device) we can't scan the SRAM for the
winstream header. It's never there anyway, it lives in .rodata.
This is likely a hardware bug, but as it's an older platform and this
is test code it's probably best to just keep it as a workaround.
Signed-off-by: Andy Ross <andyross@google.com>
Enable a winstream console via the new "STATIC" platform API, and add
code to the loader script to read it (largely cribbed with
modifications from the same feature in cavstool.py, we have nowhere to
share code like this, alas).
The older logging feature is still present as an "oldlog" mode to the
script. We can leave it for a bit as a failsafe (e.g. for debugging
issues with winstream) and remove it later.
Signed-off-by: Andy Ross <andyross@google.com>
The winstream code itself is reasonably generic, but the console
integration was written to the intel_adsp memory window driver only,
as that was the only consumer.
Add an alternative that allows the winstream to be pointed to by a
linker symbol instead. The platform layer is responsible for putting
it where it needs to go.
Also includes a 20-byte "descriptor" recodr (with a very large magic
number) in the binary that points to the winstream, for the benefit of
external tooling that needs to find it at runtime.
Signed-off-by: Andy Ross <andyross@google.com>
These devices have non-standard cache lines (128 bytes), and were
inheriting an incorrect setting for this kconfig.
Also clean up some related feature kconfigs which were being ignored
and not set =y.
Signed-off-by: Andy Ross <andyross@google.com>
This is a pre-existing (but rarely used) Zephyr linker tag. Support
it instead of reinventing something similar.
Signed-off-by: Andy Ross <andyross@google.com>
Xtensa cache line sizes aren't an obtuse area of pedantry like they
are in x86. Different cores already in Zephyr are already using
variant cache line sizes (64 and 128 bytes are both common).
And I tripped over this by using the wrong value because the kconfig
was being inherited (incorrectly) from a default somewhere.
Xtensa exposes the correct value in core-isa.h (well, unless the
toolchain/hal gets messed up). Add a check to make sure that our
platform kconfig gets it right.
Note that qemu/dc233c was already getting this wrong, leaving the
value at the kconfig default of zero. That was benign (qemu doesn't
provide any cache emulation for incoherent DMA), but needs to be
fixed.
Signed-off-by: Andy Ross <andyross@google.com>
The Linux SOF driver owns this space, but puts buffers here which the
DSP is expected to read and write. Give it a space in the default MPU
mapping.
Note that this assumes that the DMA region is numerically above the
linkable DRAM region in the address space. That's true for existing
devices, but likely to be broken in the future.
Signed-off-by: Andy Ross <andyross@google.com>
The SOF source code is confusing. On some hardware these devices have
distinct IRQs assigned, and on others they seem to share an ISR for
all. Leave the existing assignments in place for SOF-compatibility,
but union all the devices into a single ISR path that will poll each
(there are only two). This will work in all configurations, and we
can figure out the proper architecture at leisure.
Signed-off-by: Andy Ross <andyross@google.com>
SOF needs this information for rimage to work, it contains data needed
by the kernel loader and not firmware per se. Note that contra other
SOF platforms, this leaves the data in the live firmware image so it
can be inspected at runtime. That's not needed by core SOF code, but
is handy for debugging. And these devices have a ton of DRAM space
available.
Signed-off-by: Andy Ross <andyross@google.com>
The CMD_BLANK_CHECK can return errors when the flash is readable, and
should only be used after programming, not in is_area_readable(). From
the LPC55S69 datasheet: "As cells age and lose charge, a correctly
programmed address will fail this check, while still being able to be
read successfully for the remaining duration of the data retention time."
Signed-off-by: Derek Snell <derek.snell@nxp.com>
There are 4 Kconfig names about the "Draw Buffer". Rename 'VBD' to 'VDB'
in Kconfig option 'LV_Z_*VBD*_CUSTOM_SECTION' to make name consistent.
config LV_Z_VDB_ALIGN
int "Rending buffer alignment"
config LV_Z_VBD_CUSTOM_SECTION
bool "Link rendering buffers to custom section"
config LV_Z_DOUBLE_VDB
bool "Use two rendering buffers"
config LV_Z_VDB_SIZE
int "Rendering buffer size"
default 100 if LV_Z_FULL_REFRESH
And the draw buffer definition is now:
static uint8_t buf0[BUFFER_SIZE]
#ifdef CONFIG_LV_Z_VDB_CUSTOM_SECTION
Z_GENERIC_SECTION(.lvgl_buf)
#endif
__aligned(CONFIG_LV_Z_VDB_ALIGN);
Signed-off-by: Haiyue Wang <haiyuewa@163.com>
Fix arch_timing_cycles_get() to prevent overflow on the clock rollover.
The issue is observable on tests/benchmarks/wait_queues and
tests/benchmarks/sched_queues with BENCHMARK_NUM_ITERATIONS is large
enough, e.g. default 1000.
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
Add support for STM32H757 SoC, which shares its design
with STM32H747 with added cryptography peripherals.
Signed-off-by: Grzegorz Runc <g.runc@grinn-global.com>
The stm32l562e_dk board uses a ft6x06 i2c controller for the touchscreen.
The zephyr driver ft5336 can control it.
Signed-off-by: Luc BEAUFILS <luc.beaufils@savoirfairelinux.com>
Add the overlay file to run tests/drivers/watchdog/wdt_basic_api
on the nucleo_h7s3l8 and stm32h7s78_dk target boards
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Cleans up the doxygen comments in the stepper api header. Includes:
- documentation for MICRO_STEP_RES_INDEX
- constistent use of microsteps instead of micro_steps or micro steps
- fix for previously renamed set_target_position refrence
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
This introduces the pro micro nrf52840 board type,
commonly available as the cheapest nrf52840 development board,
and is based on the Nice!Nano
Signed-off-by: Camille BAUD <mail@massdriver.space>
Add a non-configurable option which drivers can select to indicate that
they do not support callbacks on watchdog expiry.
Signed-off-by: Jordan Yates <jordan@embeint.com>
Check if the spinlock is held before attempting to wait by
taking the semaphore, as that would cause a context switch which
isn't allowed and will trigger an assertion error when
`CONFIG_SPIN_VALIDATE` is enabled.
Logging in spinlock-held context when the log buffer is full can lead
to an infinite assertion error loop, as the logging subsys attempts to
allocate buffer when there's none available, it will try to wait for
one and thus triggers the assertion error, the error message will be
printed through the logging sybsys but there's no buffer available,
so it will try to wait for one and triggers another assertion error..
This loop just goes on and on forever, and nothing gets printed to
the terminal.
Added a test to validate the fix.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Signed-off-by: Maxim Adelman <imax@meta.com>
This board contains both an NTC sensor dependings on a specific SPI ADC and
a TMP116 containing both a sensor and an EEPROM.
Align these driver initialization priorities with the devicetree
dependencies to avoid build failures with CONFIG_CHECK_INIT_PRIORITIES=y.
Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
Previously, if a file object is was re-used, it could
inherit the offset field of the previously closed file object,
making reading from the beginning of the file impossible
until the offset was manually zero'ed.
The offset should *always* be zero when a file is ready to be
used.
The issue really only presents itself when implementing a
vtable backend.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
The `zvfs_finalize_typed_fd()` function notifies some backends
via `ioctl()` with `ZFD_IOCTL_SET_LOCK`. However, support for
this method and functionality is optional.
In backends that do not support locking, this benign failure can
set `errno` to 95 (`EOPNOTSUPP`) in many circumstances where a
change in `errno` (indicating some kind of failure) is not
appropriate.
Prevent errno poisoning by backing-up and restoring `errno`.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
Previously, in libc-hooks.c, the signature of `_open()` was as
shown below.
```cpp
int _open(const char *name, int mode);
```
This conflicted with the signature of `_open()` from newlib,
which is
```cpp
int _open(const char *name, int flags, ...);
```
Moreover, the mode and flags field were reversed, but only for
the Xtensa architecture due to the `_open_r()` hook that is
present in `libc-hooks.c`.
This manifested itself via a call to `fopen(file, "w+")`, where
the expected flags should include `O_CREAT | O_TRUNC`, or
`0x200 | 0x400`. Instead, the unexpected flags passed to the
underlying `zvfs_open()` call were `0x1b6`.
This change corrects the function signature and order of the
arguments.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
The sample did not properly handle ending the broadcast and setting
it up for a new broadcast, due to missing wait for sem_big_term and
a bad check in iso_disconnected.
Furthermore if any did not work when setting up the BIG,
the error handling did not properly clean up for a retry.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Removes the LV_COLOR_SCREEN_TRANSP Kconfig option as its not part of the
modules Kconfig anymore and renames the functions according to the new v9.2
API.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Adjust the Kconfig symbols of the capture to lvgl sample. LV_MEM_CUSTOM has
been removed in v9.0 and LV_USE_IMG has been changed to LV_USE_IMAGE.
Fix the changed fields for the image descriptor struct.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Adds support for the NXP PXP engine. LVGL changed
the Kconfig symbol from LV_USE_GPU_NXP_PXP to
LV_USE_PXP, but hal_nxp still relies on
LV_USE_GPU_NXP_PXP, so add a temporary symbol for it.
Additionally the drawing engines need to invalidate
ranges in the dcache, the method needs to be provided
via a lvgl_support.h file.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
This patch adds the OSAL implementation of dynamic thread creation, mutex
and thread syncronization primitive (semaphore) enabling the use of the
parallel rendering architecture provided with LVGL 9.0. To use it, set
`CONFIG_LV_Z_USE_OSAL` and your preferred dynamic thread stack allocation
method (pool or heap).
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
This patch updates the module gluecode to be compatible with LVGL version
9.2. This includes changes done to display and input driver initialization
and draw buffer handling.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
This patch changes the functions unsed in the subsys demo that are part of
the api map to anticipate their deprecation.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
This patch changes the usage of LVGL functions which are typedefed in the
api map to their new version to anticipate their deprecation.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
This patch fixes the style size setter usage in the accelerometer_chart
demo since it now expects two dimensions. Also the newly named functions
which are typedefed by the api_map in LVGL are updated to anticipate their
deprecation.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>