|
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| C:Amie - 2006-01-10 5:45 PM
It isn't a DLL, this is part of the OEMAL, and cannot be "added" to the device without a kernel rebuild.
The CESD is all the information that Henri and I could get out of NEC on the subject.
Rich, CESDD0003 outlines the missing 'bit' which is causing your issues.
oh, too bad, i hoped it was just included in one of the core dll's.
what is OEMAL? | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| if i dont get any error messages and my post doesnt get posted it will still be a double post?! Edited by cmonex 2006-01-10 4:11 PM
| |
| |
Administrator H/PC Oracle Posts: | 17,976 |
Location: | United Kingdom | Status: | |
| cmonex - 2006-01-10 9:08 PM
if i dont get any error messages and my post doesnt get posted it will still be a double post?! tehehe, I guess not ;- )
OEMAL is the connector or bridge between the hardware layer of the device and the kernel. Becaue of the small footprint nature of CE, the layer is inflexible and largely modified to match the particular device. It's why a WM5 rom for one device wont run on another. | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| but i did get a double post! (of course because i posted again, seeing the first post was nowhere )
oemal: oh, i see... | |
| |
Global Moderator H/PC Guru Posts: | 7,188 |
Location: | USA | Status: | |
| For the record...it is possible to do a hard reset with the 900C using software...though I'm not exactly sure why. I just installed a GameBoy emulator as Menninsys had posted on PocketpcMag.com and then went to change the aspect using Nyditot...and while I am not sure all the steps I took, my Mobilepro just crashed and performed a hard reset. This is like the 3rd time this has happened while I've been playing with software over the past couple of years. Just not sure why....
RIch | |
| |
Administrator H/PC Oracle Posts: | 17,976 |
Location: | United Kingdom | Status: | |
| I have seen it a few times myself, it's probably down to a fluke hickup in the memory addressing, I'd be at a loss to explain exactly how though. | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| maybe we can solve this now. i can sortof soft reset the 900c via software now, but it is not working yet.
i get this far:
ulRAMEnd 0x901A0000
ulCopyEntries 0x1
ulCopyLen 0x136A
ulDestLen 0x28D50
ulDest 0x90160000
ulSource 0x90089000
ulSource 0x90089000
ulSource 0x90089000
ulSource 0x90089000
Boot configuration: 640x240 - 400 MHz
Battery Door closed
Warm boot is detected...
DrawInit +
Calling DrawHWInit ( ).
DrawInit + (640,240 )
Initializing PWM0.
Initializing PWM0 complete.
Wait 2 seconds for LCD bias power supply to discharge.
DrawEnableScreen before.
DrawEnableScreen after.
Returned from DrawHWInit ( ).
Display Splash File start.
Display Splash File complete.
Display version start.
Display version complete.
DrawInit -
Soft Reset detected, booting
Jump to Kernel
kernel gets stuck then somewhere.
as it never gets even as far as loading the registry and essential system files other than the kernel itself (just a guess though judging from some signs ) it must be in the oal/oeminit part
pressing the real soft reset button then produces a proper soft reset. (not hard reset, that's progress )
is there anyone with some arm asm knowledge of the hardware level (xscale specifically ) to work with me on this?
to sum up what i've done:
there is a utility from NEC (in the update kit ) that will put the device in a state close enough to reset so that saved writing some of the asm code. it still needed some patches of course because it was hard coded to load a special updater bootloader. then the trick is what code can be booted with this afterwards. it has to be the right initialization code afterwards otherwise it will just fail to boot at a point. with the normal bootloader it fails very early (first few lines of the code, i have a guess where and why ), with a modification it boots as far as shown above. but there is something more that the kernel will need. again i have guesses but it would be nice to have someone working on this with me
ps.: original goal was booting the normal bootloader from ram to test mods in it instead of flashing it in rom and risking a brick. that works but it'd be nice to have some way of softreset with this. Edited by cmonex 2007-06-10 7:52 PM
| |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| update. i found the kerneliocontrol/oem io_ctl part in a 4.2 kernel (not 900c, but should be similar ), so if the right code is written for handling the soft reset, then i have ideas how to implement it in the kernel itself. then all reset apps should work normally.
i dont have time to make the reset code yet, when the exams finish i will resume work
still would like help | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| update: using gpio reset code for the xscale, i only got a half assed hard reset (instead of soft reset )... because it didn't complete. the xscale did a reset indeed, and jumped to bootloader automatically, but execution got stuck after a while. i wonder what went wrong then.
basically i did: enter setkmode, enter svc mode, play with ram controllers, write into gpio. maybe i need to modify my code in the reset program, and still would appreciate help
i will post the code if anyone want it / can help.
(this is a different method from the above, i did not load a modified bootloader into ram ) Edited by cmonex 2007-06-19 4:10 PM
| |
| |
Global Moderator H/PC Guru Posts: | 7,188 |
Location: | USA | Status: | |
| I'd rather have a hard reset through software than a soft reset anyways....
Rich | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| Quote Rich Hawley - 2007-06-19 10:02 PM
I'd rather have a hard reset through software than a soft reset anyways....
Rich
hey, wow, someone is interested
i'd like to implement both | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| the (slightly modified ) code works on sig3.
900c refuses to write into the first register i'm trying and throws an illegal operation error at me at that line. i wonder if the gpio is used for something, or 4.2 kernel wont let me get access so easily - but probably the former.
i'm posting the exe for sig3, just for fun. this does the same as any other reset app, but it will directly do a reset when clicking on it, without calling kerneliocontrol
-----------
the main code is:
LDR R4, =0x11738
MOV R2, #2
LDR R0, [R4]
ADD R1, R0, #0x24
STR R2, [R1]
LDR R0, [R4]
ADD R2, R0, #0x54
LDR R1, [R2]
BIC R0, R1, #0xC
STR R0, [R2]
LDR R1, [R4]
ADD R2, R1, #0xC
LDR R0, [R2]
ORR R1, R0, #2
MOV R0, #1
STR R1, [R2]
BL timer
LDR R3, [R4]
ADD R2, R3, #0xC
LDR R0, [R2]
BIC R1, R0, #2
STR R1, [R2]
LDR R0, [R4]
ADD R2, R0, #0x54
LDR R1, [R2]
ORR R0, R1, #4
STR R0, [R2] ----> reset happens here
(0x11738 -> 0xA7000000 which is virtual address for 0x40E00000 )
(timer: for the needed delay using register 0xA6C000010 )
maybe this gives an idea to someone. maybe not generic enough for xscale?
of course for the 900c, i modified the register addresses 0xA7000000 to 0xB4E00000 and 0xA6C00010 to 0xB4A00010. Edited by cmonex 2007-06-19 9:47 PM
Attachments ---------------- sig3_code_reset.zip (1KB - 2 downloads) | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| some progress, of which the side effect is a hard reset program specifically for the bsquare powerhandheld
attached. it's a modded S309_warmreboot because i was lazy to write a new exe.
to document the undocumented (?? ) ioctl API for it: pass 0x307E to kerneliocontrol instead of the default soft reset value
it's fun to be talking to myself
p.s.: Rich: i can provide you with a program that will hard reset the 900c very predictably, but you will need to yank the main battery. though, it saves you from the trouble of removing the backup battery Edited by cmonex 2007-06-21 6:29 AM
Attachments ---------------- bsquare_hardreset.zip (1KB - 1 downloads) | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| hard reset via software on the 900c is almost implemented now with no removing of battery necessary.
it already works via software, but you still need to press reset button to initialize the cold boot. if soft reset gets implemented ok then no reset button will be needed for hard reset.
soft reset will be harder but ive found some stuff that'll probably help lots.
oh and the bastards at bsquare (the real manufacturer of the 900c ) did leave the soft and hardreset ioctl's in the kernel (yes hard reset too ), just ripped the code itself...
edit: posting custom bsquare (bsquare power handheld ) soft and hard reset code (not based on warmreboot.exe now and not using ioctl's, just for fun.. ) Edited by cmonex 2007-06-21 10:29 AM
Attachments ---------------- bsquare_SR_HR.zip (2KB - 3 downloads) | |
| |
Global Moderator H/PC Oracle Posts: | 12,667 |
Location: | Southern California | Status: | |
| Quote cmonex - 2007-06-21 3:23 AM
it's fun to be talking to myself
LOL | |
|
Seconds to generate: 0.25 - Cached queries : 57 - Executed queries : 27
| | |
|