Files
snlavaiseandClaude Opus 5.5 41802fcbd9 rtwo: replace 7-segment debug digits with a boot progress bar
The bring-up instrumentation drew two big 7-segment digits per code zone
from hot paths (board.c, serial_msm_geni.c, clk-uclass.c, clock-qcom.c),
firing dozens of times per second and slowing the boot noticeably. Drop
it and draw a 0-100% progress bar instead: rtwo_boot_progress_step() once
per initcall entry, rtwo_boot_progress_done() at the end of the boot.

The kalama-gcc-v2 GCC compatible fix from the previous commit stays.

This is the tree built with ~/pmos/uboot-chainload/build-uboot.sh
(patches/0001-rtwo-fixes-and-boot-progress-bar.patch) that produces the
u-boot-nodtb.bin currently running on the phone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DnHwDU5yL8L6qgPEN5CV5m
2026-09-26 20:03:48 -03:00

50 lines
1.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (c) 2011 The Chromium OS Authors.
*/
#ifndef __INITCALL_H
#define __INITCALL_H
#include <asm/types.h>
#include <event.h>
#include <hang.h>
_Static_assert(EVT_COUNT < 256, "Can only support 256 event types with 8 bits");
#ifdef CONFIG_ARCH_SNAPDRAGON
void rtwo_boot_progress_step(void);
#define RTWO_BOOT_PROGRESS() rtwo_boot_progress_step()
#else
#define RTWO_BOOT_PROGRESS()
#endif
#define INITCALL(_call) \
do { \
RTWO_BOOT_PROGRESS(); \
if (_call()) { \
printf("%s(): initcall %s() failed\n", __func__, \
#_call); \
hang(); \
} \
} while (0)
#define INITCALL_EVT(_evt) \
do { \
if (event_notify_null(_evt)) { \
printf("%s(): event %d/%s failed\n", __func__, _evt, \
event_type_name(_evt)) ; \
hang(); \
} \
} while (0)
#if defined(CONFIG_WATCHDOG) || defined(CONFIG_HW_WATCHDOG)
#define WATCHDOG_INIT() INITCALL(init_func_watchdog_init)
#define WATCHDOG_RESET() INITCALL(init_func_watchdog_reset)
#else
#define WATCHDOG_INIT()
#define WATCHDOG_RESET()
#endif
#endif