Skip to content

Conversation

@andyross
Copy link
Contributor

@andyross andyross commented Mar 2, 2023

Port over the existing integration for now. This comes from an era where SOF had no C++ support and this module was effectively rolling its own. Zephyr has a theoretically robust and featureful C++ layer, though it isn't exposed for Cadence toolchains yet (and until yesterday was actually plain broken for C++98 compilers -- you need Zephyr main to get this to build right now, the SOF snapshot is still behind).

Consider this a stepping stone to a feature that needs to land upstream. Useful to have in a PR for reference, maybe not for merging right now.

Note that I discovered with horror that this crossed with the MTL switchover to xt-clang. That configuration hasn't yet been tested, may not actually link, and will likely require two separate C++ integration layers upstream.

marc-hb
marc-hb previously requested changes Mar 2, 2023
Copy link
Collaborator

@marc-hb marc-hb left a comment

Choose a reason for hiding this comment

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

Note that I discovered with horror that this crossed with the MTL switchover to xt-clang. That configuration hasn't yet been tested, may not actually link, and will likely require two separate C++ integration layers upstream.

Yes let's please not merge this until it's rebased on top of

Or you could just drop the xtensa-build-zephyr.py commit from this PR to speed it up; it seems unrelated.

EDIT: there's also some CMakeList.txt conflict right now.

__weak void *_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{
k_panic();
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

https://github.com/thesofproject/sof/actions/runs/4317869629/jobs/7535474369

/zep_workspace/sof/zephyr/lib/alloc.c: In function '_sbrk_r':
/zep_workspace/sof/zephyr/lib/alloc.c:372:1: error: control reaches end of non-void function [-Werror=return-type]
  372 | }
      | ^
cc1: all warnings being treated as errors

@kv2019i
Copy link
Collaborator

kv2019i commented Mar 30, 2023

@andyross #7027 now merged, please rebase.

@marc-hb marc-hb dismissed their stale review March 30, 2023 17:05

stale

@sys-pt1s
Copy link

sys-pt1s commented Apr 6, 2023

Can one of the admins verify this patch?

@lgirdwood
Copy link
Member

@andyross ping - needs a rebase

@cujomalainey
Copy link
Contributor

Possibly won't happen for a couple weeks, we are quite busy on this end

tmleman and others added 17 commits April 24, 2023 20:17
Informing the primary core that the Idle thread on secondary core is
ready. During the D3 exit flow thread is not initialize again, but
restored from previously saved context.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Idle thread should be initialize only when core it booting for the first
time. Doing this again would overwrite the kernel structs and the idle
thread stack.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
During PowerOff (D3) transition Zephyr Power Manager must have
a pointer in IMR to save the LP/HPSRAM memory before
powering off.

As zephyr has no access to IMR heap, the memory must
be allocated by SOF

Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Added IPC, timer and memory window power state change to and from D3
in the Zephyr Power Manager notifier functions.
Added IPC4 callbacks 'suspend_handler' and 'resume_handler'
to control Zepyr IPC driver.

Co-developed-by: Tomasz Leman <tomasz.m.leman@intel.com>
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
Enabled CONFIG_ADSP_IMR_CONTEXT_SAVE option in Kconfig
in the board configuration.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
On init, register consumption of 10MCPS fot base fw

Signed-off-by: Krzysztof Frydryk <krzysztofx.frydryk@intel.com>
Register and unregister pipelines CPS consumption on run/pause

Signed-off-by: Krzysztof Frydryk <krzysztofx.frydryk@intel.com>
This patch sets lowest clock as default for Meteorlake platform. In
current version FW does unnecessary clocks switching operations. FW
should start from low value and scale-up if necessary.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
This will clear cps error logs and print warning only
if 0 KCPS received

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
IMPORTANT: PM part should be moved to zephyr!

This will add possibility to force host L1 exit

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Building system for iadk modules and for native sof modules has built in
information about used api. That information we use to switch between
two different methods of registering modules.

Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
This is part of fw which helps loaded module in communication with adsp
Also it provides basic operations for creation of component driver

Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
In manifest is information about version of API and
depending on it we load IADK or SOF module.
Flag is showing if module is loadable. According to this information
different api is being used in loading module.

Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
Code reafactor due to wrong text formatting

Signed-off-by: Dobrowolski, PawelX <pawelx.dobrowolski@intel.com>
Initial commit with set of cmake and linker scripts to build loadable
modules binary.

Things yet TODO:
  add all necessary Dev Kit header files to include dir,
  replace dummy example with somewhat useful module example.

Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Adds forgotten buffer_free() for copier multi_endpoint_buffer.

Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
update rimage to 375218cc0b37
update zephyr to d11ba34ddad4

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
bardliao and others added 2 commits June 21, 2023 10:10
Somehow s24_le format is missed.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
(cherry picked from commit f0b44b4)
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Update zephyr to c31e68329

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
@cujomalainey
Copy link
Contributor

Ping to @andyross to follow up on this

abonislawski and others added 3 commits July 19, 2023 09:41
update rimage to a0b0187ce1e9
(added missing cpc values and fixed pv build)

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Unbreak the Zephyr build when this is enabled, and add the needed bits
to produce a working executable.

This is mostly just a recapitulation of the existing integration,
which means that it's manually pulling in bits from the Cadence
toolchain it needs.  Really this is nothing more than a C++ library
and it shouldn't have to do anything other than enable CONFIG_CPP=y in
the build.  But the upstream Zephyr C++ toolchain integration for
xcc/xt-clang isn't present yet.

Signed-off-by: Andy Ross <andyross@google.com>
This is a weak stub for the Cadence libc's allocator (which is just a
newlib build).  It's traditionally been provided like this in SOF for
the benefit of C++ code where the standard library needs to link to a
working malloc() even if it will never call it.

Longer term this should be integrated as a working allocator, either
unified with the one here or in the Zephyr libc layer.  Zephyr already
provides a newlib-compatible _sbrk_r(), we just have to tell it to use
it when linking against Cadence libc.

Signed-off-by: Andy Ross <andyross@google.com>
@andyross
Copy link
Contributor Author

andyross commented Aug 2, 2023

(Rebased on mtl-005-drop-stable for ease of distribution. Zephyr-side C++ integration still to come)

@lgirdwood
Copy link
Member

lgirdwood commented Aug 2, 2023

(Rebased on mtl-005-drop-stable for ease of distribution. Zephyr-side C++ integration still to come)

Needs to be rebased on main since this PR is for main.

@cujomalainey
Copy link
Contributor

Looks like the rebase wasn't clean and pulled in a bunch of stuff

@abonislawski
Copy link
Member

abonislawski commented Dec 11, 2023

@andyross should we finally merge this to main & 007? As far as I know these commits are cherry-picked for AEC build anyway

@andyross
Copy link
Contributor Author

This is ancient. Please don't merge. An equivalent got merged to mtl-007-drop-stable already I believe. See ongoing work in #8571

@andyross andyross closed this Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.