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