<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/arch/arm/include/asm/global_data.h, branch v2023.01</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/arch/arm/include/asm/global_data.h?h=v2023.01</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/arch/arm/include/asm/global_data.h?h=v2023.01'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2022-09-02T20:20:11Z</updated>
<entry>
<title>Makefile: Allow LTO to be disabled for a build</title>
<updated>2022-09-02T20:20:11Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2022-08-03T18:13:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=a55014d09b29d7bc2cbaeb8e41a155c9a257a183'/>
<id>urn:sha1:a55014d09b29d7bc2cbaeb8e41a155c9a257a183</id>
<content type='text'>
LTO (Link-Time Optimisation) is an very useful feature which can
significantly reduce the size of U-Boot binaries. So far it has been
made available for selected ARM boards and sandbox.

However, incremental builds are much slower when LTO is used. For example,
an incremental build of sandbox takes 2.1 seconds on my machine, but 6.7
seconds with LTO enabled.

Add a NO_LTO parameter to the build, similar to NO_SDL, so it can be
disabled during development if needed, for faster builds.

Add some documentation about LTO while we are here.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>imx: imx9: Get the chip revision through S400 API</title>
<updated>2022-07-26T09:29:01Z</updated>
<author>
<name>Peng Fan</name>
<email>peng.fan@nxp.com</email>
</author>
<published>2022-07-26T08:40:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=989f73934d202138376a7a768073851e426c472a'/>
<id>urn:sha1:989f73934d202138376a7a768073851e426c472a</id>
<content type='text'>
Update the get chip revision methond to use S400 API, also record
other information like lifecycle and UID to global data.

Signed-off-by: Peng Fan &lt;peng.fan@nxp.com&gt;
</content>
</entry>
<entry>
<title>misc: imx: S400_API: Move S400 MU and API to a common place</title>
<updated>2022-07-26T09:29:00Z</updated>
<author>
<name>Ye Li</name>
<email>ye.li@nxp.com</email>
</author>
<published>2022-07-26T08:40:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=03fcf966511d11aa67c7b52d9d68c7bf18edade6'/>
<id>urn:sha1:03fcf966511d11aa67c7b52d9d68c7bf18edade6</id>
<content type='text'>
Since iMX9 uses S401 which shares the API with iMX8ULP. So move S400
MU driver and API to a common place and selected by CONFIG_IMX_SENTINEL

Signed-off-by: Ye Li &lt;ye.li@nxp.com&gt;
Signed-off-by: Peng Fan &lt;peng.fan@nxp.com&gt;
</content>
</entry>
<entry>
<title>driver: misc: Add MU and S400 API to communicate with Sentinel</title>
<updated>2021-08-09T12:46:50Z</updated>
<author>
<name>Ye Li</name>
<email>ye.li@nxp.com</email>
</author>
<published>2021-08-07T08:00:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=0c00d03aca356c295daafe82873ecfc9d7769dd9'/>
<id>urn:sha1:0c00d03aca356c295daafe82873ecfc9d7769dd9</id>
<content type='text'>
Add MU driver and S400 API. Need enable MISC driver to work

Signed-off-by: Ye Li &lt;ye.li@nxp.com&gt;
</content>
</entry>
<entry>
<title>global_data: Ensure we have &lt;config.h&gt; when symbols are not in Kconfig yet</title>
<updated>2021-06-23T12:45:03Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2021-06-03T13:39:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=076c7bfb1f0f1b7c516391aeac6e46fac78fd7de'/>
<id>urn:sha1:076c7bfb1f0f1b7c516391aeac6e46fac78fd7de</id>
<content type='text'>
All symbols that are defined in Kconfig will always be defined (or not)
prior to preprocessing due to the -include directive while building.
However, symbols which are not yet migrated will only be defined (or
not) once the board config.h is included, via &lt;config.h&gt;.  While the end
goal must be to migrate all symbols, today we have cases where the size
of gd will get mismatched within the build, based on include order.
Mitigate this by making sure that any &lt;asm/global_data.h&gt; that uses
symbols not in Kconfig does start with &lt;config.h&gt;.  Remove this when not
needed.

Cc: Alexey Brodkin &lt;alexey.brodkin@synopsys.com&gt;
Cc: Eugeniy Paltsev &lt;Eugeniy.Paltsev@synopsys.com&gt;
Cc: Huan Wang &lt;alison.wang@nxp.com&gt;
Cc: Angelo Dureghello &lt;angelo@sysam.it&gt;
Cc: Rick Chen &lt;rick@andestech.com&gt;
Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
</entry>
<entry>
<title>ARM: make gd a function call for LTO and set via set_gd()</title>
<updated>2021-05-24T18:21:30Z</updated>
<author>
<name>Marek Behún</name>
<email>marek.behun@nic.cz</email>
</author>
<published>2021-05-20T11:24:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=86c5e21013d5efd895de9905a19893b4403e4642'/>
<id>urn:sha1:86c5e21013d5efd895de9905a19893b4403e4642</id>
<content type='text'>
On ARM, the gd pointer is stored in registers r9 / x18. For this the
-ffixed-r9 / -ffixed-x18 flag is used when compiling, but using global
register variables causes errors when building with LTO, and these
errors are very difficult to overcome.

Richard Biener says [1]:
  Note that global register vars shouldn't be used with LTO and if they
  are restricted to just a few compilation units the recommended fix is
  to build those CUs without -flto.

We cannot do this for U-Boot since all CUs use -ffixed-reg flag.

It seems that with LTO we could in fact store the gd pointer differently
and gain performance or size benefit by allowing the compiler to use
r9 / x18. But this would need more work.

So for now, when building with LTO, go the clang way, and instead of
declaring gd a global register variable, we make it a function call via
macro.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68384

Signed-off-by: Marek Behún &lt;marek.behun@nic.cz&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>ARM: global_data: make set_gd() work for armv5 and armv6</title>
<updated>2021-05-24T18:21:30Z</updated>
<author>
<name>Marek Behún</name>
<email>marek.behun@nic.cz</email>
</author>
<published>2021-05-20T11:24:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=82b63e95410ebca0bbfd343ce163299a44a2d932'/>
<id>urn:sha1:82b63e95410ebca0bbfd343ce163299a44a2d932</id>
<content type='text'>
The Thumb instruction `ldr` is able to move high registers only from
armv7. For armv5 and armv6 we have to use `mov`.

Signed-off-by: Marek Behún &lt;marek.behun@nic.cz&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>common: Add "ifndef __ASSEMBLY__" in asm/global_data.h</title>
<updated>2021-02-24T21:51:49Z</updated>
<author>
<name>Siew Chin Lim</name>
<email>elly.siew.chin.lim@intel.com</email>
</author>
<published>2021-02-23T06:34:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=2f7aa89703738b0c37e34120319bab567a8672bd'/>
<id>urn:sha1:2f7aa89703738b0c37e34120319bab567a8672bd</id>
<content type='text'>
Commit "common: Drop asm/global_data.h from common header" added
asm/global_data.h into secure.h. However, secure.h will be included
by psci.S. Adding asm/global_data.h has caused compilation failure in
pcsi.S. Add "ifndef __ASSEMBLY__" in asm/global_data.h.

Signed-off-by: Siew Chin Lim &lt;elly.siew.chin.lim@intel.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>common: Drop asm/global_data.h from common header</title>
<updated>2021-02-02T20:33:42Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2020-10-31T03:38:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=401d1c4f5d2d29c4bc4beaec95402ca23eb63295'/>
<id>urn:sha1:401d1c4f5d2d29c4bc4beaec95402ca23eb63295</id>
<content type='text'>
Move this out of the common header and include it only where needed.  In
a number of cases this requires adding "struct udevice;" to avoid adding
another large header or in other cases replacing / adding missing header
files that had been pulled in, very indirectly.   Finally, we have a few
cases where we did not need to include &lt;asm/global_data.h&gt; at all, so
remove that include.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
</entry>
<entry>
<title>arm: remove outdated comment concerning -ffixed-x18</title>
<updated>2020-07-07T22:23:48Z</updated>
<author>
<name>Heinrich Schuchardt</name>
<email>xypron.glpk@gmx.de</email>
</author>
<published>2020-05-27T18:04:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b87d8d6a0e0c5c37b341c20284ef1c43601cc9c8'/>
<id>urn:sha1:b87d8d6a0e0c5c37b341c20284ef1c43601cc9c8</id>
<content type='text'>
Clang 9 supports -ffixed-x18.

Signed-off-by: Heinrich Schuchardt &lt;xypron.glpk@gmx.de&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
</feed>
