|
| Is there a way to completely clear the Jornada's 720 memory via software? What I want to do is to have the 32 MB empty, just like there was a power failure on the device and WinCE setup has to show up again.
I'm am asking this for implementing on the shutdown command of a Linux distro. The ide is to be able to reboot from Linux to Windows CE without removing the battery. With our current Linux distro, shutdown command will power off the screen of the Jornada and halt the operating system, but the device is still running. If in that moment we press the Jornada's reset button, we'll get back to the HP Invent logo and remains there forever (even if you press S during boot logo it will show "Entering diagnostics...", but it will freezes also). We think that the bootloader freezes due to the bad memory organization that is left upon leaving Linux.
If we could clear the whole RAM (or restore it to a bootloader known status) just before the OS halting, maybe that bootloader won't freezes after pressing the reset button and WinCE show up.
I understand that clearing the whole 32MB RAM would require some ASM or low level C coding...
Why the interest in getting back from Linux to WinCE? It's just to suspend the machine. Linux doesn't support very well suspending without a flashboard, so we could shutdown Linux and return WinCE we we want to do a real suspending.
Is there some J720 coder that could help us in this matter? |
|
|
|
| I think we could as the developer of psShutXp (it has the option t hard reset). Even if it uses some WinCe functon it should be possible to port it to linux. |
|
|
|
| |
|
|
|
| JLime calls some kind of shutdown ASM command now, and just leaves the RAM on, with a restore application. At least i think it does. This works pretty much as WinCE does, but i think the restore that way only works with SH3 devices. |
|
|
|
| Very interesting!! That's just what we need, a way to hard reset the Jornada from software. But that code is using the WinCE API. We need a way to do that from Linux.
The steps would be: * Users call shutdown: shutdown -h now
* Shutdown initiates and enter in runlevel 0
* Every program and daemon get closed
* Filesystems are umounted
* Hard reset code is exectued As I can see, the reset can be done with the CE API passing a control code to the Kernel. We have no WinCE API or kernel on Linux... any idea? |
|
|
|
| Well, i'm not sure how it does, since i'm not much good on kernel programming - they said something about it using hardware interups (hence the ASM?) which turned everything off. The RAM kept on, like it does with CE, which meant on restore nothing had changed. The old forum got hacked so the topic has gone, but when the backups are restored we may be able to help. |
|
|
|
| As far as ASM goes, if you can find the interrupt it shouldn't be that big of a deal to write the ASM to run the interrupt. I've wrtten some MIPS and 8086 ASM before, and interrupts are pretty simple to use, just have to be really careful or you'll end up having garbage spew from your printer. [Actually did happen to a friend of mine in the same class.] |
|
|
|
H/PC Sensei Posts: | 1,330 |
Location: | North of England | Status: | |
| Doing it on the Linux side from the kernel should be easy, assuming you can find the relevant ARM documentation. The WINCE clear side of things will be nastier, as WinCE by default provides a protected memory space to each process, and getting access to physical memory uses hacks. The sourcecode to loadlin is probably the best place to start, or ping Rainer Kuechel. |
|
|
|
| Well... I do not have any documentation to look at and until I know, loadlin is the DOS Linux loader for x86, very different from Jornada's 720 architecture. I think that it would be more adequate to take a look to the linexec source code, if it is available. I will ask Michael, our J720 kernel mantainer if he knows something about this. |
|
|
|
H/PC Sensei Posts: | 1,330 |
Location: | North of England | Status: | |
| Sorry, yes, I meant linexec and yes, it is available at Michael's site I believe. I've looked at the code before and it's not something I have enough knowledge on the internals to understand fully at the moment
EDIT: http://wwwcip.informatik.uni-erlangen.de/~simigern/jornada-7xx/linexec/
the bz file contains source code. |
|
|