debugcc is currently linked statically using -static and -static-libgcc.
This can cause issues for distributions that prefer dynamically linked
binaries (e.g. larger binaries and duplicated runtime code which could
otherwise be shared).
Add a Meson boolean option `dynamic-linking` which when enabled removes
the explicit static link flags so that debugcc is built as a dynamically
linked binary using the default toolchain behaviour. The default for this
option is false so that existing builds continue to get a statically
linked binary unless they opt in to dynamic linking.
Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
APCS clocks are ignored because the logic is a bit too conditional in
the downstream clock-8974.c code to be nicely integrated.
Signed-off-by: Luca Weiss <luca@lucaweiss.eu>
Build flags wont carry to linker but link flags will.
Fixes: cf2b67a ("meson.build: bring back -static")
Signed-off-by: George Chan <gchan9527@gmail.com>
Add support for IPQ8064 SoC. All the debug vector are taken from old
pre-dt linux-msm source.
To correctly setup the debug oscillator, it's required to operate on 2
different clk, the CXO oscillator and the PDM clock. Then we operate ton
the CLK_TEST reg and we setup the required vector. With the use of
define we abstract everything for the high speed and the low speed
clocks.
The CXO oscillator runs at 25Mhz and a different xo_rate is required
than the current default one.
We can also test the 2 CPU speed and the current L2 speed using the APCS
CLK_DIAG reg. To test this we need to setup a special test vector in
CLK_TEST and then operate on the APCS reg.
For these special clock a different fixed_div is needed to be set.
There is currently a bug (probably a hw bug) where the CPU clock of the
2 core is half broken, the correct clock is reported but only for one of
the core, the other core will always report a wrong clock. Operating on
the CPU mux makes the CLK_DIAG report the correct freq on one of the 2
core from the test vector.
Also the L2 clock seems to be half broken with high speed freq. (still
has to be confirmed and maybe it's the L2 HFPLL wrongly configured for
some reason and on high frequency > 1GHz reports not precise frequency)
Note that we currently use a fixed_div of 8 for these special clock.
This should be used only for ipq8064 v3 SoC but it was never found an
ipq8064 v1 SoC, where 2 should be used as fixed_div.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Having a template file with replacement macros is a bit cleaner than
encoding the setup of the file in `meson.build` and piping that through
`echo` with caputred variables.
Unfortunately there appears to be no support for repetition, to e.g.
expand a list of platform names into the various uses (array with comma-
separation, or individual `extern struct` declarations, forcing us to
have some form of string expansion within `meson.build`).
Switch to meson as a build system. Define a list of supported platforms
and use it to generate platforms list and the symlink targets.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>