Support and General Use > Hardware

IHIFI770C gets stuck during boot process

(1/1)

fuyi:
The IHIFI770C using daily builds fails to start and gets stuck at the Rockbox boot logo. I tried building from the Master branch source code, but the same issue occurs. However, after removing the INIT_ATTR from the line extern void system_init(void) INIT_ATTR; in the firmware/export/system.h file, it starts normally. My C language skills are poor, and I’m unsure if removing this might cause any side effects. Could someone help check how to properly fix this?

speachy:

--- Quote from: fuyi on February 15, 2025, 09:00:14 AM ---The IHIFI770C using daily builds fails to start and gets stuck at the Rockbox boot logo. I tried building from the Master branch source code, but the same issue occurs. However, after removing the INIT_ATTR from the line extern void system_init(void) INIT_ATTR; in the firmware/export/system.h file, it starts normally. My C language skills are poor, and I’m unsure if removing this might cause any side effects. Could someone help check how to properly fix this?

--- End quote ---

Wow, I've been trying to find someone with one of these devices (770/770C/800) for several years now; as far as I am aware you are the first person who has tried this stuff out since it was merged.

The change you made is an interesting one; can I ask why you tried that in particular?  Also, where did the bootloader come from?

As for the failure, system_init() is only called as part of the early boot process by other early boot code, so nothing immediately stands out.  I'm looking into it though

fuyi:

--- Quote from: speachy on February 16, 2025, 07:53:03 AM ---
--- Quote from: fuyi on February 15, 2025, 09:00:14 AM ---The IHIFI770C using daily builds fails to start and gets stuck at the Rockbox boot logo. I tried building from the Master branch source code, but the same issue occurs. However, after removing the INIT_ATTR from the line extern void system_init(void) INIT_ATTR; in the firmware/export/system.h file, it starts normally. My C language skills are poor, and I’m unsure if removing this might cause any side effects. Could someone help check how to properly fix this?

--- End quote ---

Wow, I've been trying to find someone with one of these devices (770/770C/800) for several years now; as far as I am aware you are the first person who has tried this stuff out since it was merged.

The change you made is an interesting one; can I ask why you tried that in particular?  Also, where did the bootloader come from?

As for the failure, system_init() is only called as part of the early boot process by other early boot code, so nothing immediately stands out.  I'm looking into it though

--- End quote ---

Thank you for addressing the issue. I own the iHiFi 770C, HM-601 Slim, and HM-603 Slim—all RK27XX-based devices. Rockbox runs smoothly on the iHiFi 770C, even more stably than on my HM-60x series.

When I tried updating Rockbox and encountered the boot hang on the iHiFi 770C, I traced back through Git commit history to find the last working version. I discovered that starting from commit 39439f69, the device failed to boot. After reviewing the changes, I noticed modifications to system_init(), so I attempted to revert those changes in the latest code—and it successfully booted.

Interestingly, the HM-60x series (also RK27XX-based) doesn’t exhibit this issue, which suggests the problem might lie in the iHiFi 770C’s device-specific code.

The official Rockbox installation instructions don’t include the iHiFi 770C. I sourced the bootloader from Rockbox-Vortex. Comparing the code merged into Rockbox, I confirmed it’s identical. The installation process for iHiFi devices resembles the HM-60x method: renaming bootloader.rkw to BASE.rkw and overwriting it in the original firmware. The key difference is that the iHiFi requires flashing via RK27Upgrade_image.exe, a tool provided on the Rockbox-Vortex website.

Navigation

[0] Message Index

Go to full version