Skip to content

Conversation

@mitchellwaite
Copy link
Contributor

@mitchellwaite mitchellwaite commented Nov 8, 2025

The reason xell-gggggg hangs on a black screen when you try to start it from a running system with something like XeLLLaunch is because it's programmed to always go down the SoC init codepath, which is only appropriate when we're jumping to XeLL early on in the boot process. When starting from the dashboard (or on a JTAG) we should be going down the thread catch codepath.

To determine whether or not to go down the thread catch codepath, this PR checks to see if thread 0 has been started. Otherwise, we go down the SoC init path. I've tested this on my RGH falcon, 0f Xenon, rgh corona, and winch and it seems to work OK, but wider testing would be useful

This is based on my code pasted in the discord channel:

https://discord.com/channels/1415992251707818046/1415993110734962719/1432909307602534522

@mitchellwaite
Copy link
Contributor Author

Nvm, going to close this one. Doesn't appear to work on my RGH3 corona... will need to come back to this eventually.

@InvoxiPlayGames
Copy link
Member

From startup threads code:std(irq_cntrl + 0x2070, 0x7c);

You're checking: if(0x7C == ld((void*)irq_cntrl + 2070)) (no hex)

Could be a typo and just luck that it worked on another system..?

@mitchellwaite
Copy link
Contributor Author

From startup threads code:std(irq_cntrl + 0x2070, 0x7c);

You're checking: if(0x7C == ld((void*)irq_cntrl + 2070)) (no hex)

Could be a typo and just luck that it worked on another system..?

Good catch, it's pretty late for me and I didn't notice the typo when I copied the code out of my own XeLL fork.

I'll fix it and retry in the morning. Fingers crossed that's it.

@mitchellwaite mitchellwaite reopened this Nov 8, 2025
@mitchellwaite
Copy link
Contributor Author

Corrected the typo, can confirm it now works on my corona 4gb and 16mb winch

@Swizzy
Copy link
Member

Swizzy commented Nov 8, 2025

Do you have a JTAG console to verify that it's working correctly there aswell still?

@mitchellwaite
Copy link
Contributor Author

Do you have a JTAG console to verify that it's working correctly there aswell still?

I do have a JTAG falcon as well, I will test it there this evening and report back.

@mitchellwaite mitchellwaite force-pushed the startXellFromRunningSystem branch from 8673700 to f3f2d27 Compare November 9, 2025 01:06
@mitchellwaite
Copy link
Contributor Author

@Swizzy just tested on my falcon JTAG, everything works as expected. I'm able to boot from eject at system startup, from the dashboard with XellLaunch, and i can return to XeLL from another libxenon app.

I did force push back to commit f3f2d27, even though wakeup_cpus isn't really used anymore it is referenced by start_from_libxenon in startup.S. I can address that in a future change, or now if you'd like

@Swizzy
Copy link
Member

Swizzy commented Nov 9, 2025

@Swizzy just tested on my falcon JTAG, everything works as expected. I'm able to boot from eject at system startup, from the dashboard with XellLaunch, and i can return to XeLL from another libxenon app.

I did force push back to commit f3f2d27, even though wakeup_cpus isn't really used anymore it is referenced by start_from_libxenon in startup.S. I can address that in a future change, or now if you'd like

I think we'll adress that at a later time.

@Swizzy Swizzy merged commit 0057a43 into Free60Project:master Nov 9, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants