<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-skiboot/libc/string, branch 04-16-2019</title>
<subtitle>Talos™ II skiboot sources</subtitle>
<id>https://git.raptorcs.com/git/talos-skiboot/atom?h=04-16-2019</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-skiboot/atom?h=04-16-2019'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/'/>
<updated>2018-05-24T09:03:19+00:00</updated>
<entry>
<title>Fix strtok for previous tokens being NULL</title>
<updated>2018-05-24T09:03:19+00:00</updated>
<author>
<name>Balbir singh</name>
<email>bsingharora@gmail.com</email>
</author>
<published>2018-05-17T23:31:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=ad58f8da1d4fbd45abf163514a9643a14e1636ee'/>
<id>urn:sha1:ad58f8da1d4fbd45abf163514a9643a14e1636ee</id>
<content type='text'>
Caught by scan-build. If the stored token nxtTok
is already NULL, don't dereference src

Signed-off-by: Balbir singh &lt;bsingharora@gmail.com&gt;
Signed-off-by: Stewart Smith &lt;stewart@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>build: use thin archives rather than incremental linking</title>
<updated>2018-03-01T02:28:39+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2018-02-10T08:42:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=f6159cff5d91e5c0810d0c9285a1d2370a38e2b7'/>
<id>urn:sha1:f6159cff5d91e5c0810d0c9285a1d2370a38e2b7</id>
<content type='text'>
This changes to build system to use thin archives rather than
incremental linking for built-in.o, similar to recent change to Linux.
built-in.o is renamed to built-in.a, and is created as a thin archive
with no index, for speed and size. All built-in.a are aggregated into
a skiboot.tmp.a which is a thin archive built with an index, making it
suitable or linking. This is input into the final link.

The advantags of build size and linker code placement flexibility are
not as great with skiboot as a bigger project like Linux, but it's a
conceptually better way to build, and is more compatible with link
time optimisation in toolchains which might be interesting for skiboot
particularly for size reductions.

Size of build tree before this patch is 34.4MB, afterwards 23.1MB.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>libc: add strnlen()</title>
<updated>2017-09-15T07:49:27+00:00</updated>
<author>
<name>Oliver O'Halloran</name>
<email>oohall@gmail.com</email>
</author>
<published>2017-09-15T05:40:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=c77b9747531b79badb69bcd2e8c25fb250fa48d2'/>
<id>urn:sha1:c77b9747531b79badb69bcd2e8c25fb250fa48d2</id>
<content type='text'>
Sometimes handy.

Signed-off-by: Oliver O'Halloran &lt;oohall@gmail.com&gt;
Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>libc : Changes variable data type where return value of strlen() stored from int to size_t</title>
<updated>2016-10-11T04:40:30+00:00</updated>
<author>
<name>Mukesh Ojha</name>
<email>mukesh02@linux.vnet.ibm.com</email>
</author>
<published>2016-09-02T04:56:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=32dc2a19bb6a91862b414fdd6eec07154e5e4308'/>
<id>urn:sha1:32dc2a19bb6a91862b414fdd6eec07154e5e4308</id>
<content type='text'>
Reason of the change as integer value may overflow, and it can give negative
value for the length.

This patch also changes the data type of variable which is compared with
strlen() as the comparison also has to be done on the same level.

Signed-off-by: Mukesh Ojha &lt;mukesh02@linux.vnet.ibm.com&gt;
Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>libc/string: add memcpy_from_ci()</title>
<updated>2016-10-05T03:42:26+00:00</updated>
<author>
<name>Claudio Carvalho</name>
<email>cclaudio@linux.vnet.ibm.com</email>
</author>
<published>2016-09-28T08:01:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=26a1d0c487d6b61afb0a338189d98c91bb481ee9'/>
<id>urn:sha1:26a1d0c487d6b61afb0a338189d98c91bb481ee9</id>
<content type='text'>
This adds memcpy_from_ci, a cache inhibited version of memcpy, required
by secure boot. The secure boot verification code is stored in a secure
ROM and the logic that contains the ROM within the processor is
implemented in a way that it only responds to CI (cache inhibited)
operations. Due to performance issues we copy the verification code from
the secure ROM to RAM and we use memcpy_ci for that.

What makes memcpy_ci vs ordinary memcpy?

memcpy copies data like in the example below and the compiler translates that
to load instructions that are not cache inhibited (e.g. lbzx - load byte and
zero indexed). In other words, the data is cached.

a[i] = b[i]

memcpy_ci copies data using the cache inhibited version of load instructions:
in_8() and in_be32(), both defined in include/io.h. These functions use lbzcix
and lwzcix assembly instructions, respectively. In this case, the data is not
cached as required by the logic that contains the ROM.

*((uint8_t*) destp) = in_8((uint8_t*)srcp);
*((uint32_t*) destp) = in_be32((uint32_t*)srcp)

Signed-off-by: Claudio Carvalho &lt;cclaudio@linux.vnet.ibm.com&gt;
Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>strlen: use size_t for len</title>
<updated>2016-09-02T05:33:54+00:00</updated>
<author>
<name>Stewart Smith</name>
<email>stewart@linux.vnet.ibm.com</email>
</author>
<published>2016-09-01T09:38:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=19ed47363f85634bda960ebe4511829d0d5ecced'/>
<id>urn:sha1:19ed47363f85634bda960ebe4511829d0d5ecced</id>
<content type='text'>
Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
Reviewed-by: Mukesh Ojha &lt;mukesh02@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>libc: Use 8-bytes stores for non-0 memset too</title>
<updated>2016-08-18T06:04:26+00:00</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2016-07-23T23:27:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=ad1b72c40762bc9c50f46d9fc2620faaa25e10bd'/>
<id>urn:sha1:ad1b72c40762bc9c50f46d9fc2620faaa25e10bd</id>
<content type='text'>
Memory poisoning hammers this, so let's be a bit smart about it and
avoid falling back to byte stores when the data is not 0

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>Optimized memset() implementation for POWER</title>
<updated>2015-06-01T07:10:10+00:00</updated>
<author>
<name>Stewart Smith</name>
<email>stewart@linux.vnet.ibm.com</email>
</author>
<published>2015-06-01T04:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=f232117367198c330ddf64a4c61bda0110ae9cec'/>
<id>urn:sha1:f232117367198c330ddf64a4c61bda0110ae9cec</id>
<content type='text'>
This uses the dcbz instruction to clear cacheline at a time rather than
byte at a time. This means that even without high levels of optimization,
we *dramatically* improve boot performance with SKIBOOT_GCOV=1 and probably
ever so slightly speed things up for normal builds.

We currently just hard-code 128 as cacheline size as all CPUs that skiboot
currently boots on have 128 byte cachelines.

Signed-off-by: Stewart Smith &lt;stewart@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>Initial commit of Open Source release</title>
<updated>2014-07-02T05:36:20+00:00</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2014-07-02T05:36:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-skiboot/commit/?id=1d880992fd8c8457a2d990ac6622cfd58fb1b261'/>
<id>urn:sha1:1d880992fd8c8457a2d990ac6622cfd58fb1b261</id>
<content type='text'>
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
</feed>
