History log of /rk3399_rockchip-uboot/arch/arm/lib/crt0_64.S (Results 1 – 25 of 41)
Revision Date Author Comments
# f28e2313 26-Apr-2023 Joseph Chen <chenjh@rock-chips.com>

arm: v8: Move cpu init from crt0_64.S to start.S

Do init before secondary cpu jump.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: Idd247743048907384d7f1ed13abf42403ae813d7


# 1605e9e8 30-Mar-2023 Joseph Chen <chenjh@rock-chips.com>

arm: crt0_64: Support enable Icache early for U-Boot proper

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I5db0b090cc675dd5adb2255250aff11cc97b0155


# cf6c7688 20-Jan-2022 Joseph Chen <chenjh@rock-chips.com>

arm: crt0_64.S: don't require stack align access

That's too strict and it doesn't bring some benifits, let's disable it.
Stack align access issue was found in cpu_suspend().

Signed-off-by: Joseph C

arm: crt0_64.S: don't require stack align access

That's too strict and it doesn't bring some benifits, let's disable it.
Stack align access issue was found in cpu_suspend().

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I9442257b7bb1cf6bafa9de0b7da51d6ddb6ac150

show more ...


# 5e1b21ba 03-Nov-2021 Joseph Chen <chenjh@rock-chips.com>

arm: crt0_64.S: disable arm64 SError for usbplug

On rk356x platform usbplug mode, we found it occurs SError
when rockusb download.

Issue dump:
.....
Serial: raw, 0xfe660000
dwmmc@fe2b0000: 1,

arm: crt0_64.S: disable arm64 SError for usbplug

On rk356x platform usbplug mode, we found it occurs SError
when rockusb download.

Issue dump:
.....
Serial: raw, 0xfe660000
dwmmc@fe2b0000: 1, dwmmc@fe2c0000: 2, sdhci@fe310000: 0
Bootdev: mmc 0
RKUSB: LUN 0, dev 0, hwpart 0, sector 0x0, count 0x3a3e000
\"Error" handler, esr 0xbe000011

* Reason: Exception from SError interrupt
* PC = 0000000000013c68
* LR = 0000000000010f7c
.....

fixes:
(617c1bec46 arm: v7/v8: Enable SError/Asynchronous external abort for TPL/SPL/U-Boot)

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I6270bd0a8afdd998ac09242f21598cc8acd200ca

show more ...


# bfe297b2 26-Jul-2021 Joseph Chen <chenjh@rock-chips.com>

arm: crt0_64.S: don't set SCTLR.A=1

The CPU is able to execute load/store instruction on unaligned address,
and we don't need to avoid special alignment scene.

Now, SCTLR.A=1 causes U-Boot data-abo

arm: crt0_64.S: don't set SCTLR.A=1

The CPU is able to execute load/store instruction on unaligned address,
and we don't need to avoid special alignment scene.

Now, SCTLR.A=1 causes U-Boot data-abort while decompressing the LZ4 kernel.

Fixes: (b25dd131e0 arm: crt0_64: Enable sctlr A/SA bit for EL3/2/1)

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I25f85e10999afb0fbb42a742c39f61c00b8c6f70

show more ...


# 617c1bec 12-Jul-2021 Joseph Chen <chenjh@rock-chips.com>

arm: v7/v8: Enable SError/Asynchronous external abort for TPL/SPL/U-Boot

Add this patch to support report SError/Asynchronous external abort
immediately in current exception level.

=== issue scene

arm: v7/v8: Enable SError/Asynchronous external abort for TPL/SPL/U-Boot

Add this patch to support report SError/Asynchronous external abort
immediately in current exception level.

=== issue scene ===
When access a illegal address, It results in:
- read: Synchronous data-abort
- write: SError(64-bit)/Asynchronous external abort(32-bit)

=== 64-bit ===
EL3 SError ASynchronous exception in TPL/SPL was already
enabled in start.S and crt0_64.S which sets SCR_EL3.EA=1
and DAIF.A=0. We can test result of TPL/SPL by access address
0xfe108000 in rk3568.
Let's enable SError in U-Boot proper.

=== 32-bit ===
Let's set CPSR.A=0 to enable Asynchronous external abort, we can
test result by access address 0xfe808000 in rv1126.
Note: TPL/SPL vectors only provides "b ." for all exception entry.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: Id9f660a9275f69fdc8443ad239aabf79682d95d0

show more ...


# b25dd131 14-Jul-2021 Joseph Chen <chenjh@rock-chips.com>

arm: crt0_64: Enable sctlr A/SA bit for EL3/2/1

Icache is enabled by default for TPL/SPL.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: Idf613d816feb4766e1e1ab646cc88a86e6ca0982


# 034db995 27-Sep-2020 Joseph Chen <chenjh@rock-chips.com>

dm: serial: support always use uart debug mode

In this mode, uart debug is initialized depends on
configuration from pre-loader or CONFIG_UART_DEBUG_.

The serial is not care about dts "stdout-path"

dm: serial: support always use uart debug mode

In this mode, uart debug is initialized depends on
configuration from pre-loader or CONFIG_UART_DEBUG_.

The serial is not care about dts "stdout-path" and
not register into console framework any more. It's
nice to use pre-loader serial and make serial easy
to configure.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: If4c68229d76b6f1710a35e3ef9a2a91cb306fa9c

show more ...


# 8d5781e9 17-Jun-2019 Joseph Chen <chenjh@rock-chips.com>

arm: lib: crt0_64: spl enables sctlr_el3 A/SA/I bits

A: Alignment check enable;
I: Instruction cache enable;
SA: Stack Alignment Check Enable;

Change-Id: Ic2a25dd23bc586540e177ea7e7927c24074180cc

arm: lib: crt0_64: spl enables sctlr_el3 A/SA/I bits

A: Alignment check enable;
I: Instruction cache enable;
SA: Stack Alignment Check Enable;

Change-Id: Ic2a25dd23bc586540e177ea7e7927c24074180cc
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>

show more ...


# 6184121c 29-Apr-2019 Andy Yan <andy.yan@rock-chips.com>

arm: add spl relocation support for armv8

Relocate spl itself to a high memory.

Change-Id: Ia69f05449a0a8e4f07cc6d37a2486c3cd2aa7176
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>


# 618713d1 15-Nov-2018 Kever Yang <kever.yang@rock-chips.com>

arm64: enable async error handler

Enable the exception handler for async error so that we can get the
abort before kernel.

Change-Id: Ie0e7c89a0d03adf3b74b0d9ddf8c9117536dac6b
Signed-off-by: Kever

arm64: enable async error handler

Enable the exception handler for async error so that we can get the
abort before kernel.

Change-Id: Ie0e7c89a0d03adf3b74b0d9ddf8c9117536dac6b
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>

show more ...


# 645a442d 28-Nov-2018 Joseph Chen <chenjh@rock-chips.com>

common: support skip U-Boot relocation

Change-Id: I8640907204c82928c2fb07177835dc55a126aaf0
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>


# 064eb493 09-Oct-2018 Joseph Chen <chenjh@rock-chips.com>

serial: ns16550: support using pre-loader serial

- pass pre-loader serial configure by rk atags;
- it depends on serial aliases to find uart port;
- enabled by CONFIG_ROCKCHIP_USING_PRELOADER_SERIAL

serial: ns16550: support using pre-loader serial

- pass pre-loader serial configure by rk atags;
- it depends on serial aliases to find uart port;
- enabled by CONFIG_ROCKCHIP_USING_PRELOADER_SERIAL;

Change-Id: I6723cccc5e1f3dac77203b4cc19cdac631f5133b
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>

show more ...


# 995085a9 07-Dec-2017 York Sun <york.sun@nxp.com>

UPSTREAM: armv8: fix gd after relocation

Commit 21f4486faa5d ("armv8: update gd after relocate") sets x18
without checking the return value of spl_relocate_stack_gd().

Reviewed-by: Stephen Warren <

UPSTREAM: armv8: fix gd after relocation

Commit 21f4486faa5d ("armv8: update gd after relocate") sets x18
without checking the return value of spl_relocate_stack_gd().

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Change-Id: I929a996608808934bf4d614acfffe43080594ecb
Signed-off-by: York Sun <york.sun@nxp.com>
CC: Kever Yang <kever.yang@rock-chips.com>
CC: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit e421b646fce125ed92936628dc4b287de5f038a5)

show more ...


# f00ac1e5 03-Nov-2017 Stephen Warren <swarren@nvidia.com>

UPSTREAM: arm64: support running at addr other than linked to

This is required in the case where U-Boot is typically loaded and run at
a particular address, but for some reason the RAM at that locat

UPSTREAM: arm64: support running at addr other than linked to

This is required in the case where U-Boot is typically loaded and run at
a particular address, but for some reason the RAM at that location is not
available, e.g. due to memory fragmentation loading other boot binaries or
firmware, splitting an SMP complex between various different OSs without
using e.g. the EL2 second-stage page tables to hide the memory asignments,
or due to known ECC failures.

Change-Id: I2fd535325517921c6036188b74ab4facd37b7118
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 49e93875a62fb9e96a4a7483b9bd5d8ae27ea76e)

show more ...


# 51380c3b 22-Sep-2017 zijun_hu <zijun_hu@htc.com>

ARMv8: get new GD address from gd->new_gd directly

the new GD address is calculated via board data BD currently
it require the new GD area locates below BD tightly, so a strict
constraint is imposed

ARMv8: get new GD address from gd->new_gd directly

the new GD address is calculated via board data BD currently
it require the new GD area locates below BD tightly, so a strict
constraint is imposed on memory layout which maybe make special
platform unpleasant.

fix it by getting new GD address from gd->new_gd directly.

Change-Id: I9fdfbbb13a7b0a572d7aa8394f754148c6285669
Signed-off-by: zijun_hu <zijun_hu@htc.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 01a835998935b78c31e80227358ac11212d60878)

show more ...


# b5d6c3ee 03-Nov-2017 Kever Yang <kever.yang@rock-chips.com>

armv8: update gd after relocate

We need to update gd in assamble code after relocate,
this is a fix to:
adc421e arm: move gd handling outside of C code

Change-Id: I2730d6e7a8f0ee2a2fb44d63dfc7991aa

armv8: update gd after relocate

We need to update gd in assamble code after relocate,
this is a fix to:
adc421e arm: move gd handling outside of C code

Change-Id: I2730d6e7a8f0ee2a2fb44d63dfc7991aaae733b7
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>

show more ...


# c1b62ba9 14-Aug-2017 Tom Rini <trini@konsulko.com>

Merge branch 'master' of git://git.denx.de/u-boot-rockchip


# faa18dbe 28-Jul-2017 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

armv8: TPL_STACK will always be defined, so test CONFIG_TPL_NEEDS_SEPARATE_STACK

Now that TPL_STACK has been moved off the whitelist (ok, I'm lying:
the 'moving off the whitelist' part comes in once

armv8: TPL_STACK will always be defined, so test CONFIG_TPL_NEEDS_SEPARATE_STACK

Now that TPL_STACK has been moved off the whitelist (ok, I'm lying:
the 'moving off the whitelist' part comes in once moveconfig
runs... which will be a few commits down the line) and added to
Kconfig, we need to test CONFIG_TPL_NEEDS_SEPARATE_STACK to see
whether the value from TPL_STACK should be used or whether we try to
inherit whatever SPL uses.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

show more ...


# c3be6190 04-Jul-2017 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

armv8: spl: Support separate stack for TPL

To allow a TPL and SPL to run from different addresses/memories, we
need to split setup of the TPL and SPL stacks. To do so, we introduce
CONFIG_TPL_STACK

armv8: spl: Support separate stack for TPL

To allow a TPL and SPL to run from different addresses/memories, we
need to split setup of the TPL and SPL stacks. To do so, we introduce
CONFIG_TPL_STACK (not listed in Kconfig) which can be used to override
the initial stack pointer for TPL.

To provide backward compatibility for existing boards, this is added
as an optional configuration item and the normal search order (i.e.
SPL_STACK, then SYS_STACK) apply if not defined.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>

show more ...


# 7a70c998 01-Mar-2017 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

armv8: spl: Call spl_relocate_stack_gd for ARMv8

As part of the startup process for boards using the SPL, we need to
call spl_relocate_stack_gd. This is needed to set up malloc with its
DRAM buffer.

armv8: spl: Call spl_relocate_stack_gd for ARMv8

As part of the startup process for boards using the SPL, we need to
call spl_relocate_stack_gd. This is needed to set up malloc with its
DRAM buffer.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

show more ...


# 07a63c7e 27-Jan-2017 Masahiro Yamada <yamada.masahiro@socionext.com>

arm64: use store with auto-increment

Save one instruction.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>


# b913c3f0 27-Jan-2017 Masahiro Yamada <yamada.masahiro@socionext.com>

arm64: use xzr to zero-out the bss section

AArch64 has a zero register (xzr). Use it instead of x2.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chr

arm64: use xzr to zero-out the bss section

AArch64 has a zero register (xzr). Use it instead of x2.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

show more ...


# b8cb51d0 18-Jul-2016 Jeremy Hunt <Jeremy.Hunt@DEShawResearch.com>

armv8: spl: Call board_init_r from crt0_64 in SPL

As part of the startup process for boards using the SPL, the
meaning of board_init_f changed such that it should return normally
rather than calling

armv8: spl: Call board_init_r from crt0_64 in SPL

As part of the startup process for boards using the SPL, the
meaning of board_init_f changed such that it should return normally
rather than calling board_init_r directly. (see
db910353a126d84fe8dff7a694ea792f50fcfb6a )
This was fixed in 32-bit arm, but broke when SPL was added to
64 bit arm. This fixes crt0_64 so that it calls board_init_r
during the SPL and removes the direct call from board_init_f
from the arm SPL example.

Signed-off-by: Jeremy Hunt <Jeremy.Hunt@DEShawResearch.com>

Acked-by: Simon Glass <sjg@chromium.org>

show more ...


# a737028e 14-Jan-2016 Stephen Warren <swarren@nvidia.com>

arm: initialize gd for AArch64

Commit adc421e4cee8 "arm: move gd handling outside of C code" removed
the call to arch_setup_gd() on ARM and replaced it with assembly code
in crt0.S. However, AArch64

arm: initialize gd for AArch64

Commit adc421e4cee8 "arm: move gd handling outside of C code" removed
the call to arch_setup_gd() on ARM and replaced it with assembly code
in crt0.S. However, AArch64 uses a different startup file, and the same
change was not made to it. This leaves gd uninitialized on AArch64, which
typically leads to hangs or crashes. This change fixes that.

Fixes: adc421e4cee8 ("arm: move gd handling outside of C code")
Signed-off-by: Stephen Warren <swarren@nvidia.com>

show more ...


12