Closed toolboc closed 4 years ago
You might want to directly email me, but one reason might be if youre using the ide with the startup script i wrote is made to produce hyperscsn binaries, which had a header that if i recall would just jump to self, so you would have to jump over/set entry point past this in your code, because its easier to do that than to remove it
On Saturday, February 1, 2020, Paul DeCarlo notifications@github.com wrote:
I was able to port the MCU code over to an Arduino Uno and everything seems fine, the Upload Address, FileSize, and Checksums transfer appropriately and see a Status of "Done" on the HyperScan side, however, the loaded application does not start.
Looking at the code, so long as "Done" is printed, the entrypoint should then be triggered. Any ideas on what I am missing? Perhaps the Upload Address needs to be specific? If that is the case, can you provide advice on how to determine an appropriate value that will trigger the entrypoint?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ppcasm/HYCU/issues/4?email_source=notifications&email_token=AAFMZMVQ3I73XASM42AP6D3RAUM3PA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IKJ764Q, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMZMT2VYNBS5CKZDFXTCLRAUM3PANCNFSM4KORMULQ .
If im remembering correctly hyperscan exe was essentially an elf with the header information filled in with a jump to self, so if the entry point is starting there then it will just freeze on that, check the startup.s file amd youll see what i mean as i just manually created it there in the beginning section
On Saturday, February 1, 2020, ppcasm _ ppcasm@gmail.com wrote:
You might want to directly email me, but one reason might be if youre using the ide with the startup script i wrote is made to produce hyperscsn binaries, which had a header that if i recall would just jump to self, so you would have to jump over/set entry point past this in your code, because its easier to do that than to remove it
On Saturday, February 1, 2020, Paul DeCarlo notifications@github.com wrote:
I was able to port the MCU code over to an Arduino Uno and everything seems fine, the Upload Address, FileSize, and Checksums transfer appropriately and see a Status of "Done" on the HyperScan side, however, the loaded application does not start.
Looking at the code, so long as "Done" is printed, the entrypoint should then be triggered. Any ideas on what I am missing? Perhaps the Upload Address needs to be specific? If that is the case, can you provide advice on how to determine an appropriate value that will trigger the entrypoint?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ppcasm/HYCU/issues/4?email_source=notifications&email_token=AAFMZMVQ3I73XASM42AP6D3RAUM3PA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IKJ764Q, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMZMT2VYNBS5CKZDFXTCLRAUM3PANCNFSM4KORMULQ .
I made an attempt to modify startup.s to remove the header completely under the presumption that this would produce a binary without the jump to self instructions at the beginning, but still no luck booting from HYCU. The code uploads fine, and checksum is verified, but still halts.
Would it be possible to provide a test application that demonstrates how to properly package a binary for loading with HYCU?
Ill see what i can dig up when i get a chance. The code is really horrible, and the protocol even worse, i remember it relying on timing or something like that, and my computer was pretty slow at the time. If it sent the correct load address and stuff though then there might still be hope
On Sat, Feb 1, 2020, 11:13 AM Paul DeCarlo notifications@github.com wrote:
I made an attempt to modify startup.s to remove the header completely under the presumption that this would produce a binary without the jump to self instructions at the beginning, but still no luck booting from HYCU. The code uploads fine, and checksum is verified, but still halts.
Would it be possible to provide a test application that demonstrates how to properly package a binary for loading with HYCU?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ppcasm/HYCU/issues/4?email_source=notifications&email_token=AAFMZMW7D52KCQ2FFSSTRMDRAWNTZA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKRATAQ#issuecomment-581044610, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMZMTDTT253EYFSELZREDRAWNTZANCNFSM4KORMULQ .
Thank you for all that you have done so far, this is the last stretch to getting custom code loaded onto the device! If I can get it up and running I'll try to make a video / article somewhere so others can take the plunge.
Timing was definitely something I had to account for as the Arduino UNO has a very odd firmware bug where data is improperly preceded with 'F0F0' at serial tx speeds above 9600 baud and I had to actually dial it all the way down to 2400 baud in order to get the Checksum to properly verify. Once I can load something as basic as "hello world" I will go ahead and proceed with a Pull Request to add support.
Entrypoint successfully loaded using HelloWorld example provided in #6
Invoke with:
HYCU\HYCU_PC\HYCU.exe <COM#> 2400 0XA0001000 HYCU\HYCU_HelloWorld\Debug\HYCU.elf.bin
The Upload address is very important and originates from a value present in the associated linker script (HYCU_Prog.ld)
Jonathan,
Just wanted to share that I did record a presentation that focused quite heavily on your HyperScan Code Uploader. Your project is still making impact, hope you enjoy it!
https://www.youtube.com/watch?v=IYi0dx5meVM
Cheers,
Paul
On Sat, Feb 1, 2020 at 2:32 PM Jonathan Benjamin notifications@github.com wrote:
It would be cool for the stuff to he documented somewhere. Btw, the system has the pads for uart internally, and they work, but i never got them to interface with my code but i suspect it was to do with cacheSent from my Verizon, Samsung Galaxy smartphone -------- Original message --------From: Paul DeCarlo < notifications@github.com> Date: 2/1/20 2:43 PM (GMT-05:00) To: ppcasm/HYCU HYCU@noreply.github.com Cc: Jonathan Benjamin < ppcasm@gmail.com>, Comment comment@noreply.github.com Subject: Re: [ppcasm/HYCU] Entrypoint not triggered (#4) Thank you for all that you have done so far, this is the last stretch to getting custom code loaded onto the device! If I can get it up and running I'll try to make a video / article somewhere so others can take the plunge. Timing was definitely something I had to account for as the Arduino UNO has a very odd firmware bug where data is improperly preceded with 'F0F0' as serial tx speeds above 9600 baud and I had to actually dial it all the way down to 2400 baud in order to get the Checksum to properly verify. Once I can load something as basic as "hello world" I will go ahead and proceed with a Pull Request to add support.
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe. [ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": " https://github.com/ppcasm/HYCU/issues/4?email_source=notifications\u0026email_token=AAFMZMUBW3DR6CRFIO5ODDLRAXGETA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKRFBVI#issuecomment-581062869 ", "url": " https://github.com/ppcasm/HYCU/issues/4?email_source=notifications\u0026email_token=AAFMZMUBW3DR6CRFIO5ODDLRAXGETA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKRFBVI#issuecomment-581062869 ", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ppcasm/HYCU/issues/4?email_source=notifications&email_token=AAPMYIEEICX6S7AKV4O3YR3RAXL6JA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKRF7TY#issuecomment-581066703, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPMYIGBD2X53T34LU52G63RAXL6JANCNFSM4KORMULQ .
Hey man that's pretty neat. I had enough info during the time I was messing with all that stuff to probably finish an SDL port, but life got in the way and I just simply didn't see where there was much interest in it, and microcontrollers that were cheaper and more available and capable simply drove the nail in the coffin so to speak. I didn't really get time to mess with it as much as I would've liked, and the reason there's really no documentation for anything I built is that I didn't really plan on releasing anything until I had something that I felt was worthwhile to release. I had written the code loader a while before I actually dumped the code and wrote the blog post. In fact, the only reason it even ended up on a blog post is that my friend convinced me that blogs were the proper way (at the time) to even get any exposure, and I was in a really tough space and thought it might help boost a resume entry if anything, and it made sense to me at the time, even though it was improperly executed, and as you can see I failed at that, and haven't really even updated it.
I program as a hobby (unfortunately, I guess) and never went to school or anything for it, and I really don't even program much anymore. That being said, the reason there isn't S+Core support in binutils/gcc anymore is because there was 1 active maintainer, and he seemed a bit lost as to the proper route to take to be a port maintainer, or maybe he wasn't that interested either. I was going to take it over at the time as there was a post made out calling for someone to maintain the port or have it axed, and I didn't really have the time or interest as the S+Core chip isn't exactly "popular" and as long as it remained in archival form I felt that was okay.
The first indication of s+core support was literally a manual patching copy/pasting of code into gcc/binutils and once I got objdump to work I could go from there and see there were address spaces that appeared to be MMIO, and I worked my way from there for a while, because at this time documentation didn't exist in any form and the only reason I had any indications of anything was that the mnemonics seemed to resemble mips. I took to originally just making patches to games to test things out, and then eventually realized that the binary format was pretty basic, and after getting the toolchain to fully build I could provide my own linkerscripts and crts and everything to get a proper C environment to run. The windows IDE didn't come until WAYYYY later. I think they were probably developing these things as I was moving along with reverse engineering.
The controllers were indeed i2c, but I hadn't worked out fully how to utilize that from the hyperscan side of things. I'm not sure if you remember a guy from the Wii hacking scene (team twiizers) named Bushing (he has very sadly, passed away) but he had the tools at the time to dump the firmware from the hyperscan and I had a lot of it reverse engineered, but I think that's lost at this point. I was working to try to get the internal serial port to work but I never got that to happen, and that sucked. I'm now wondering if it was maybe an issue with cache. The firmware does in fact have indications of there being a test mode, but I never worked that out. There are some pads that can be jumped to go from PAL to NTSC, and an internal SD card interface, and of course the USB, and I never got those to work, but it probably wouldn't take much. As for the JTAG, it is some sunplus specific bullshit it seems. I built a jtag reverse engineer tool and never seemed to get anything that would prove useful. I believe it communicated, but wouldn't let me past the first half to access any jtag registers if I recall. That would've been ideal as jtag would've given access to everything and allowed in system programming and full access and control with very few wires and no soldering. The system is capable of 162MHZ, but I believe clocks ram at like 82mhz in this mode. As the hyperscan goes, it's 108mhz on the sdram and cpu.
In any case, if you need any info and I can help, let me know.
On Thu, Jun 11, 2020 at 4:51 PM Paul DeCarlo notifications@github.com wrote:
Jonathan,
Just wanted to share that I did record a presentation that focused quite heavily on your HyperScan Code Uploader. Your project is still making impact, hope you enjoy it!
https://www.youtube.com/watch?v=IYi0dx5meVM
Cheers,
Paul
On Sat, Feb 1, 2020 at 2:32 PM Jonathan Benjamin <notifications@github.com
wrote:
It would be cool for the stuff to he documented somewhere. Btw, the system has the pads for uart internally, and they work, but i never got them to interface with my code but i suspect it was to do with cacheSent from my Verizon, Samsung Galaxy smartphone -------- Original message --------From: Paul DeCarlo < notifications@github.com> Date: 2/1/20 2:43 PM (GMT-05:00) To: ppcasm/HYCU HYCU@noreply.github.com Cc: Jonathan Benjamin < ppcasm@gmail.com>, Comment comment@noreply.github.com Subject: Re: [ppcasm/HYCU] Entrypoint not triggered (#4) Thank you for all that you have done so far, this is the last stretch to getting custom code loaded onto the device! If I can get it up and running I'll try to make a video / article somewhere so others can take the plunge. Timing was definitely something I had to account for as the Arduino UNO has a very odd firmware bug where data is improperly preceded with 'F0F0' as serial tx speeds above 9600 baud and I had to actually dial it all the way down to 2400 baud in order to get the Checksum to properly verify. Once I can load something as basic as "hello world" I will go ahead and proceed with a Pull Request to add support.
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe. [ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "
https://github.com/ppcasm/HYCU/issues/4?email_source=notifications\u0026email_token=AAFMZMUBW3DR6CRFIO5ODDLRAXGETA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKRFBVI#issuecomment-581062869 ", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://github.com/ppcasm/HYCU/issues/4?email_source=notifications&email_token=AAPMYIEEICX6S7AKV4O3YR3RAXL6JA5CNFSM4KORMUL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKRF7TY#issuecomment-581066703 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAPMYIGBD2X53T34LU52G63RAXL6JANCNFSM4KORMULQ
.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ppcasm/HYCU/issues/4#issuecomment-642921997, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMZMTYW5MYOX7PPJZWDCDRWE7WZANCNFSM4KORMULQ .
I was able to port the MCU code over to an Arduino Uno and everything seems fine, the Upload Address, FileSize, and Checksums transfer appropriately and see a Status of "Done" on the HyperScan side, however, the loaded application does not start.
Looking at the code, so long as "Done" is printed, the entrypoint should then be triggered. Any ideas on what I am missing? Perhaps the Upload Address needs to be specific? If that is the case, can you provide advice on how to determine an appropriate value that will trigger the entrypoint?