x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 
Latest Forum Activity

CESD: Using the Soft Reset API function on the MobilePro 900 doesn't work

1 2 3
cmonex Page Icon Posted 2006-01-10 4:06 PM
#
Avatar image of cmonex
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?
 Top of the page
cmonex Page Icon Posted 2006-01-10 4:08 PM
#
Avatar image of cmonex
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
 Top of the page
C:Amie Page Icon Posted 2006-01-11 12:10 PM
#
Avatar image of C:Amie
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.
 Top of the page
cmonex Page Icon Posted 2006-01-11 5:16 PM
#
Avatar image of cmonex
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...
 Top of the page
Rich Hawley Page Icon Posted 2006-01-15 8:40 AM
#
Avatar image of Rich Hawley
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
 Top of the page
C:Amie Page Icon Posted 2006-01-15 8:49 AM
#
Avatar image of C:Amie
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.
 Top of the page
cmonex Page Icon Posted 2007-06-10 7:40 PM
#
Avatar image of cmonex
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
 Top of the page
cmonex Page Icon Posted 2007-06-16 7:26 PM
#
Avatar image of cmonex
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
 Top of the page
cmonex Page Icon Posted 2007-06-19 4:00 PM
#
Avatar image of cmonex
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
 Top of the page
Rich Hawley Page Icon Posted 2007-06-19 4:02 PM
#
Avatar image of Rich Hawley
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
 Top of the page
cmonex Page Icon Posted 2007-06-19 4:03 PM
#
Avatar image of cmonex
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
 Top of the page
cmonex Page Icon Posted 2007-06-19 9:38 PM
#
Avatar image of cmonex
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
----------------
Attachments sig3_code_reset.zip (1KB - 2 downloads)
 Top of the page
cmonex Page Icon Posted 2007-06-21 6:23 AM
#
Avatar image of cmonex
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
----------------
Attachments bsquare_hardreset.zip (1KB - 1 downloads)
 Top of the page
cmonex Page Icon Posted 2007-06-21 9:34 AM
#
Avatar image of cmonex
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
----------------
Attachments bsquare_SR_HR.zip (2KB - 3 downloads)
 Top of the page
CE Geek Page Icon Posted 2007-06-21 10:06 PM
#
Avatar image of CE Geek
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
 Top of the page
1 2 3
Jump to forum:
Seconds to generate: 0.25 - Cached queries : 57 - Executed queries : 27