-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial CX II support #165
Conversation
@Vogtinator Thanks for all the work you've done! Were you able to dump boot1, boot2, manuf, os, and diag so far? If so, how did you go about doing it? |
maybe |
c2c9057
to
fa5bcb8
Compare
\o/ |
Congratulations :) |
Is it working fine? Why did the Travis build fail? |
@Vogtinator I can't build this pr in qt, is there a certain commit that's causing the problem? same as what's failing travis? |
@SutandoTsukai181 What is the error message? The error in travis is caused by a too old compiler. |
8e960b0
to
ff85cb9
Compare
None of those (except for the DMAC) are used in the CX II and FOTG210 is actually part of mainline: https://github.com/torvalds/linux/blob/master/drivers/usb/gadget/udc/fotg210.h |
The only missing emulation parts here are nspire specific ones (like the new Aladdin PMU) and figuring out some quirks like why the On/Home button doesn't work. |
c7aec43
to
9b8567d
Compare
Hi, sorry about the probably stupid question, but how do I install OS for CX II in the emulator? I first tried to use the create flash dialog, I am able to get it to create a image that contains valid manuf information, but I would have to manually install boot2 via xmodem. I have tried either my dump or the img from OS update file would work. Once that's installed, it could boot into maintenance menu, but then I wasn't able to send the OS update file over via USB. (Nothing happens when file is being drag-n-dropped there). Then I thought probably preload OS image no longer works and the USB is not fully working, I could go with full NAND dump. I modified the code to use load_file_part() function in flash.c to pretty much convert the NAND dump (128MB) to the NAND with OOB data (132MB) that the emulator uses. This time it could boot to the os loader stage then hit a prefetch abort: BOOT: loading complete (75 ticks), launching image. I am wondering what would be the correct way to install the OS? |
Are you sure you have an actual full dump of your boot1/2 of the CX II? (Specifically the part with the keys, IIRC (?)) Because TI put some additional security stuff there that makes dumps not work the usual way :P You can come to #ndless-dev on IRC (EFNet servers) to talk more directly if needed. |
I don't know, that's why I am asking. If that's the case then I am pretty much sure my dumps are not complete/ correct. |
Yeah, that's the usual symptom of an incomplete bootrom dump. The OS doesn't get decrypted, so it executes all zeros, eventually running off past the end of RAM. |
i appreciate all the work you do guys and i wish i could help, but i just begun learning programming so i wont be able to help anytime soon that why i don't really understand evrything you say but i just wanted to ask if i can emulate the cx ii using firebird on android or is not not ready yet ? i now the question is a bit stupid but i'm very new to this "world" and i hope i didn't bother you with my question |
The main missing part for that is a new dumping program, which is WIP. On top of that, there are some bugs and unimplemented features, but those aren't that common. |
ok thanks a hole lot for all the work you do and your time,i really appreciate it and i hope you find all the help you need for your work to pay off |
6f469ad
to
36789a9
Compare
857fdc8
to
eb06373
Compare
Works mostly, but the cursor jumps around sometimes. TODO: - Implement reset, suspend, resume - Refactor synaptics touchpad to use the proper I2C abstraction - Simplify touchpad_captivate_read
Always return that something moved/changed, even when there's no contact. That way it actually resets the reference for relative motion.
Reverts last commit, as returning 1<<3 unconditionally broke the power saving mode. The cursor jumping doesn't happen anymore for some reason.
Avoids an endless loop of SET_CONFIGURATION events. Additionally, fix usb_cx2_bus_reset_off not getting called as the OS resets the host controller on connect, which in turn resulted in usblink_reset.
It's not entirely clear why this is necessary, but it helps both on HW and with emulation. Most importantly, this fixes a delay on reconnection as only the second attempt of requesting an address succeeds.
Implement all FDMAs and merge sending and receiving into one function.
On real hardware, that's what the values during runtime are. Previously, it would clear the divider in 0x020 and thus run at twice the speed.
UI parts missing so far. There's no mechanism for preloading the OS AFAICT, so default to booting the installer.
The OS uses those when sending files to the host.
This avoids weird behaviour after resetting when there was garbage data.
usblink calls the correct functions depending on emulate_cx2 now.
- Makes more sense - Also avoid warnings due to unused arguments
Not needed
The values are probably the PWM pulse width and period.
Otherwise it errors when it doesn't need to, for instance when the CX II OS enters deep sleep.
…ep sleep With this, it enters deep sleep successfully, but the sleep itself isn't really implemented. Waking it up manually by jumping to 0 returns it to the home screen, but the clock values are wrong and the watchdog triggers.
It's actually wrong here, only mmio_* needs it.
Just remember written values. This fixes the CX II bootrom bootlooping when PTT is enabled.
Not only is it incomplete, the file picker on macOS doesn't let me pick an extension that ends in |
Heya, sorry to bump this old thread but are there any updates on this? |
CX II support in firebird is pretty much complete, but a new dumping program is still not available unfortunately. |
Sorry to revive an old and dead thread but has there been any developments? |
Still the same as #165 (comment) |
Pardon me, but what is the eta for the dumper program? |
(a bit)Needs some refactoringSome parts are missing suspend/resume supportFlash creation dialog mostly uselessNo USB support (neither controller nor protocol)