[PATCH] ARM: beaglebone: add delay in lowlevel.c
Konstantin Kletschke
konstantin.kletschke at inside-m2m.de
Tue Jan 7 07:01:58 PST 2025
Some Beaglebone Black devices are not able to cope with a warm start.
When system is powered up and booted hitting reset button (S1) or
issuing "reset" at barebox prompt the new instance of first stage gets
stuck after PLL init.
Adding a delay of ~1.8ms in lowlevel.c after PLL init solves this.
Signed-off-by: Konstantin Kletschke <konstantin.kletschke at inside-m2m.de>
---
arch/arm/boards/beaglebone/lowlevel.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm/boards/beaglebone/lowlevel.c b/arch/arm/boards/beaglebone/lowlevel.c
index 5dc49dfaaf..ccae1d1122 100644
--- a/arch/arm/boards/beaglebone/lowlevel.c
+++ b/arch/arm/boards/beaglebone/lowlevel.c
@@ -97,6 +97,12 @@ extern char __dtb_z_am335x_boneblack_start[];
extern char __dtb_z_am335x_bone_common_start[];
extern char __dtb_z_am335x_bone_start[];
+static void __udelay(int us)
+{
+ volatile int i;
+ for (i = 0; i < us * 3; i++);
+}
+
/**
* @brief The basic entry point for board initialization.
*
@@ -135,6 +141,7 @@ static noinline int beaglebone_sram_init(void)
am33xx_enable_uart0_pin_mux();
omap_debug_ll_init();
putc_ll('>');
+ __udelay(1000); // Adding delay of 1.8ms
barebox_arm_entry(0x80000000, sdram_size, fdt);
}
--
More information about the barebox
mailing list