<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opensbi.git/firmware/fw_payload.S, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/opensbi.git/atom/firmware/fw_payload.S?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/opensbi.git/atom/firmware/fw_payload.S?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/'/>
<updated>2024-02-24T10:27:59Z</updated>
<entry>
<title>firmware: Add relocatable FW_PAYLOAD_FDT_ADDR</title>
<updated>2024-02-24T10:27:59Z</updated>
<author>
<name>Inochi Amaoto</name>
<email>inochiama@outlook.com</email>
</author>
<published>2024-02-23T08:18:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=f056939d8a422d8719f185b44d4abed278f3ee8a'/>
<id>urn:sha1:f056939d8a422d8719f185b44d4abed278f3ee8a</id>
<content type='text'>
The fw_payload.bin has the same issue as described in previous patch.
But only FW_PAYLOAD_FDT_ADDR is affected.

Add FW_PAYLOAD_FDT_OFFSET to identify relocatable payload fdt address.

Signed-off-by: Inochi Amaoto &lt;inochiama@outlook.com&gt;
Reviewed-by: Anup Patel &lt;anup@brainfault.org&gt;
</content>
</entry>
<entry>
<title>firmware: Use lla to access all global symbols</title>
<updated>2021-03-19T09:27:45Z</updated>
<author>
<name>Vincent Chen</name>
<email>vincent.chen@sifive.com</email>
</author>
<published>2021-03-17T01:16:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=22d8ee9758128070aa838f7c8c46f9e50d6aaf5a'/>
<id>urn:sha1:22d8ee9758128070aa838f7c8c46f9e50d6aaf5a</id>
<content type='text'>
When OpenSBI is compiled as fPIE mode, the assembler will translate "la"
to GOT reference pattern. It will cause to cost an additional load
instruction when obtaining the symbol address. However, if the symbol
locates within the positive or negative 2GB region, we can use "lla"
instead of "la" to avoid unneeded GOT references. This patch assumes that
the OpenSBI image excluding the payload does not exceed 2GB. Based on
this assumption, all "la" instructions are replaced by "lla" to avoid
performance degradation when compiling as fPIE mode.

Signed-off-by: Vincent Chen &lt;vincent.chen@sifive.com&gt;
Reviewed-by: Anup Patel &lt;anup.patel@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Remove FW_PAYLOAD_FDT_PATH compile-time option</title>
<updated>2020-10-18T04:59:59Z</updated>
<author>
<name>Anup Patel</name>
<email>anup.patel@wdc.com</email>
</author>
<published>2020-10-14T11:13:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=9c07c513aa9b2df64a971432e8dae3338a8e22ab'/>
<id>urn:sha1:9c07c513aa9b2df64a971432e8dae3338a8e22ab</id>
<content type='text'>
The FW_PAYLOAD_FDT_PATH compile-time option is replaced by
FW_FDT_PATH compile-time option which is more flexible and
common across all OpenSBI firmwares.

This patch removes FW_PAYLOAD_FDT_PATH and updates related
documentation to use FW_FDT_PATH.

Signed-off-by: Anup Patel &lt;anup.patel@wdc.com&gt;
Reviewed-by: Atish Patra &lt;atish.patra@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Fix placement of .align directives</title>
<updated>2020-01-10T04:00:27Z</updated>
<author>
<name>Andreas Schwab</name>
<email>schwab@suse.de</email>
</author>
<published>2020-01-09T11:49:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=6ffe1bed09be1cb2db8755b30c0258849184400b'/>
<id>urn:sha1:6ffe1bed09be1cb2db8755b30c0258849184400b</id>
<content type='text'>
Move the .align directives after switching the section.  We want to align
the start of the current section, not the end of the previous section.
This also obsoletes the misguided workaround of disabling relaxation.

Signed-off-by: Andreas Schwab &lt;schwab@suse.de&gt;
Reviewed-by: Anup Patel &lt;anup.patel@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Improve comments for fw_prev_arg1() and fw_next_arg1()</title>
<updated>2019-12-27T03:24:24Z</updated>
<author>
<name>Anup Patel</name>
<email>anup.patel@wdc.com</email>
</author>
<published>2019-12-27T03:24:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=9beb57362fd36ffc47e901625357add249e4f101'/>
<id>urn:sha1:9beb57362fd36ffc47e901625357add249e4f101</id>
<content type='text'>
The state of a0, a1, and a2 registers in fw_prev_arg1() and
fw_next_arg1() is same as passed by previous booting stage
so we add this info in comments for both these functions.

Signed-off-by: Anup Patel &lt;anup.patel@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Return real DTB address when FW_xyz_FDT_ADDR is not defined</title>
<updated>2019-12-27T03:18:17Z</updated>
<author>
<name>Liu Yibin</name>
<email>yibin_liu@c-sky.com</email>
</author>
<published>2019-12-26T09:38:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=c7d1b12199a11f8dcccb631a742eb31c79f8d0d2'/>
<id>urn:sha1:c7d1b12199a11f8dcccb631a742eb31c79f8d0d2</id>
<content type='text'>
Function fw_next_arg1 in firmware/fw_jump.S:59 and
firmware/fw_payload.S:63 should return real dtb
address(if specified in a1) in a0, in case we don't
want to specify FW_xyz_FDT_ADDR when compiling.

Signed-off-by: Liu Yibin &lt;yibin_liu@c-sky.com&gt;
Reviewed-by: Anup Patel &lt;anup.patel@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Add preferred boot HART field in struct fw_dynamic_info</title>
<updated>2019-11-15T12:11:18Z</updated>
<author>
<name>Anup Patel</name>
<email>anup.patel@wdc.com</email>
</author>
<published>2019-11-06T10:54:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=7a13beb213266cbf6f15ddbbef5bfca274086bd3'/>
<id>urn:sha1:7a13beb213266cbf6f15ddbbef5bfca274086bd3</id>
<content type='text'>
It has been reported that link address range of previous booting stage
(such as U-Boot SPL) can overlap the link address rage of FW_DYNAMIC.

This means self-relocation in FW_DYNAMIC can potentially corrupt
previous booting stage if any of the secondary HART enter FW_DYNAMIC
before primary HART.

To tackle this, we add preferred boot HART field (i.e boot_hart) in
struct fw_dyanmic_info. We use this field to force secondary HARTs
into relocation wait loop till preferred/primary boot HART enters
FW_DYNAMIC completes self-relocation. If preferred boot HART is not
available then we fall back to relocation lottery approach.

Signed-off-by: Anup Patel &lt;anup.patel@wdc.com&gt;
Reviewed-by: Atish Patra &lt;atish.patra@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Fix compile error for FW_PAYLOAD with latest GCC binutils</title>
<updated>2019-10-28T14:41:42Z</updated>
<author>
<name>Anup Patel</name>
<email>anup.patel@wdc.com</email>
</author>
<published>2019-10-23T07:14:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=dd8ef28b2717140c0d6cc61a2d6ffbadb506235e'/>
<id>urn:sha1:dd8ef28b2717140c0d6cc61a2d6ffbadb506235e</id>
<content type='text'>
We get following compile error for FW_PAYLOAD with latest GCC
binutils:
fw_payload.o(.text+0x1961): 15 bytes required for alignment to 16-byte
boundary, but only 14 present

Further investigating, it turn-out to be a known issue with RISC-V
GCC binutils.
(Refer, https://github.com/riscv/riscv-gnu-toolchain/issues/298)

As a work-around, we disable relaxation when including DTB and
PAYLOAD binary in fw_payload.S.

Reported-by: David Abdurachmanov &lt;david.abdurachmanov@sifive.com&gt;
Signed-off-by: Anup Patel &lt;anup.patel@wdc.com&gt;
Tested-by: David Abdurachmanov &lt;david.abdurachmanov@sifive.com&gt;
Reviewed-by: Atish Patra &lt;atish.patra@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Allow firmwares to provide next mode and options</title>
<updated>2019-05-10T06:56:22Z</updated>
<author>
<name>Anup Patel</name>
<email>anup.patel@wdc.com</email>
</author>
<published>2019-04-29T05:14:15Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=25472de89ee3b98cd466f69d1f419f943dcbcb0f'/>
<id>urn:sha1:25472de89ee3b98cd466f69d1f419f943dcbcb0f</id>
<content type='text'>
This patch extends existing firmwares (i.e. fw_jump and fw_payload)
to explicitly provide next mode and options to fw_base.

We also introduce fw_save_info() which is called by fw_base very
early on boot HART. This function can be used by existing firmwares
(i.e. fw_jump and fw_payload) to save information passed by previous
booting stage.

Overall, this is a preparatory patch for implementing fw_dynamic.

Signed-off-by: Anup Patel &lt;anup.patel@wdc.com&gt;
Reviewed-by: Alistair Francis &lt;alistair.francis@wdc.com&gt;
Reviewed-by: Atish Patra &lt;atish.patra@wdc.com&gt;
</content>
</entry>
<entry>
<title>firmware: Ensure the payloads are 4 bit alligned</title>
<updated>2019-02-15T04:26:47Z</updated>
<author>
<name>Alistair Francis</name>
<email>alistair.francis@wdc.com</email>
</author>
<published>2019-02-14T22:47:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/opensbi.git/commit/?id=d369e721e8588ebe8b21fb238bcdd182cc783e32'/>
<id>urn:sha1:d369e721e8588ebe8b21fb238bcdd182cc783e32</id>
<content type='text'>
We expect the payloads to be 4 bit alligned as we later AND them
with ~0xf. As most of the addresses are manually specified we don't
really need this, but better to be over cautious.

Signed-off-by: Alistair Francis &lt;alistair.francis@wdc.com&gt;
</content>
</entry>
</feed>
