<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/arch/x86/lib/Makefile, branch v2012.07</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/arch/x86/lib/Makefile?h=v2012.07</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/arch/x86/lib/Makefile?h=v2012.07'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2012-01-04T11:41:32Z</updated>
<entry>
<title>x86: Split init functions out of board.c</title>
<updated>2012-01-04T11:41:32Z</updated>
<author>
<name>Graeme Russ</name>
<email>graeme.russ@gmail.com</email>
</author>
<published>2011-12-23T05:51:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d47ab0ecde1c9a66acbaf421ddd92c888d2ef344'/>
<id>urn:sha1:d47ab0ecde1c9a66acbaf421ddd92c888d2ef344</id>
<content type='text'>
This patch moves towards reducing board.c to simply a set of init cores for
the three initialisation phases (Flash, Flash/RAM, and RAM), a set of three
init function arrays and a init function array processing function
</content>
</entry>
<entry>
<title>x86: Move relocation code out of board.c</title>
<updated>2012-01-04T11:39:06Z</updated>
<author>
<name>Graeme Russ</name>
<email>graeme.russ@gmail.com</email>
</author>
<published>2011-12-23T04:57:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b156ff09aad5a54b5a47b940ebc26aeeae56ee07'/>
<id>urn:sha1:b156ff09aad5a54b5a47b940ebc26aeeae56ee07</id>
<content type='text'>
</content>
</entry>
<entry>
<title>x86: Move do_go_exec() out of board.c</title>
<updated>2012-01-04T11:35:20Z</updated>
<author>
<name>Graeme Russ</name>
<email>graeme.russ@gmail.com</email>
</author>
<published>2011-12-22T23:16:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d13640b7c48cfe73dd738479efb8f5ca230d87bb'/>
<id>urn:sha1:d13640b7c48cfe73dd738479efb8f5ca230d87bb</id>
<content type='text'>
--
Changes for v2:
 - None
</content>
</entry>
<entry>
<title>x86: Wrap small helper functions from libgcc to avoid an ABI mismatch</title>
<updated>2011-11-29T10:31:24Z</updated>
<author>
<name>Gabe Black</name>
<email>gabeblack@chromium.org</email>
</author>
<published>2011-11-16T23:01:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=36b2409a3d469b5133d105fa12089429a1900bde'/>
<id>urn:sha1:36b2409a3d469b5133d105fa12089429a1900bde</id>
<content type='text'>
When gcc compiles some 64 bit operations on a 32 bit machine, it generates
calls to small functions instead of instructions which do the job directly.
Those functions are defined in libgcc and transparently provide whatever
functionality was necessary. Unfortunately, u-boot can be built with a
non-standard ABI when libgcc isn't. More specifically, u-boot uses
-mregparm. When the u-boot and libgcc are linked together, very confusing
bugs can crop up, for instance seemingly normal integer division or modulus
getting the wrong answer or even raising a spurious divide by zero
exception.

This change borrows (steals) a technique and some code from coreboot which
solves this problem by creating wrappers which translate the calling
convention when calling the functions in libgcc. Unfortunately that means
that these instructions which had already been turned into functions have
even more overhead, but more importantly it makes them work properly.

To find all of the functions that needed wrapping, u-boot was compiled
without linking in libgcc. All the symbols the linker complained were
undefined were presumed to be the symbols that are needed from libgcc.
These were a subset of the symbols covered by the coreboot code, so it was
used unmodified.

To prevent symbols which are provided by libgcc but not currently wrapped
(or even known about) from being silently linked against by code generated
by libgcc, a new copy of libgcc is created where all the symbols are
prefixed with __normal_. Without being purposefully wrapped, these symbols
will cause linker errors instead of silently introducing very subtle,
confusing bugs.

Another approach would be to whitelist symbols from libgcc and strip out
all the others. The problem with this approach is that it requires the
white listed symbols to be specified three times, once for objcopy, once so
the linker inserts the wrapped, and once to generate the wrapper itself,
while this implementation needs it to be listed only twice. There isn't
much tangible difference in what each approach produces, so this one was
preferred.

Signed-off-by: Gabe Black &lt;gabeblack@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Import the glibc memset implementation</title>
<updated>2011-11-29T10:31:17Z</updated>
<author>
<name>Gabe Black</name>
<email>gabeblack@chromium.org</email>
</author>
<published>2011-11-14T14:47:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=dbaef6ef33912a863f9fb550857028fb96e42c59'/>
<id>urn:sha1:dbaef6ef33912a863f9fb550857028fb96e42c59</id>
<content type='text'>
The new implementation is about twice as fast as the old. This is from
glibc-2.14, sysdeps/i386/memset.c.

Signed-off-by: Gabe Black &lt;gabeblack@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Provide more configuration granularity</title>
<updated>2011-11-29T10:09:52Z</updated>
<author>
<name>Graeme Russ</name>
<email>graeme.russ@gmail.com</email>
</author>
<published>2011-11-08T02:33:20Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=a76fc70ee190416e0c161efebdb955a5fac904d3'/>
<id>urn:sha1:a76fc70ee190416e0c161efebdb955a5fac904d3</id>
<content type='text'>
Planned future ports requires more granularity for some options

Signed-off-by: Graeme Russ &lt;graeme.russ@gmail.com&gt;
</content>
</entry>
<entry>
<title>x86: Rename i386 to x86</title>
<updated>2011-04-13T09:43:28Z</updated>
<author>
<name>Graeme Russ</name>
<email>graeme.russ@gmail.com</email>
</author>
<published>2011-04-13T09:43:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=fea25720013f84427a0ba8833a38614fcaf488ba'/>
<id>urn:sha1:fea25720013f84427a0ba8833a38614fcaf488ba</id>
<content type='text'>
Signed-off-by: Graeme Russ &lt;graeme.russ@gmail.com&gt;
</content>
</entry>
</feed>
