Hi,

We are two souls in possesion of HP iPAQ rx4240:s which we are aiming at
running Linux on. As far as we understand noone has succeeded or even tried
that before.

Our progress this far is finding and using HaRET, which seems to work
perfectly. We've been turning the screen on and off, filling the screen with
blue, playing sound, dumping registers and trying to start kernels. Great
piece of software!

When we boot kernels, we're not completely sure what happens. I.e. how the
handover from HaRET to the kernel actually happens and how to proceed to
understand enough to make the modifications needed to succeed. What state is
the device in when HaRET hands over control to the kernel? Are there any
differences to a hardware reset, except for where code is executed? What
decides on what memory address this is? The hardware architecture? Value of
the MTYPE variable? Something else?

The rx4240 is powered by a Samsung s3c2442 and by default HaRET tries a
generic s3c24xx profile and tries to choose 0x30000000 as the RAM start
address. According to HaRET the framebuffer resides at 0x30100000, which is
just above that address. So when we try to boot the kernel with the defaults
we end up with a garbeled screen followed by a reset. If we try a higher
address we get the following output on the screen:

HaRET boot
Shutting down hardware
Turning off MMU
In preloader
Tags preloader
Kernel relocated
Initrd relocated
PSR=600000df
Jumping to kernel

The telnet session to HaRET gives some output too, ending in "GO GO GO".

Since the rx3000 series are fairly similar to our platform, that is the
precompiled kernels we've been starting testing with. We've also tried
booting files filled with zeroes and random data to get some more
understanding, but those boots are of course not of much interest. What
surprised us is that only booting a kernel at 0x30000000 causes a reset,
anything else a hang. Is this the kernel performing the reset after
detecting failure or can it be some kind of watch dog that triggers?

Could we let HaRET start anything else than a kernel? Like a simple piece of
test code that merely messes with the screen in a controlled manner, for
example?

Does anyone here have any information/ideas/suggestions on how to proceed?
Are there any log outputs or information we could provide that would be
useful to anyone?

/David and Martin
_______________________________________________
Haret mailing list
[email protected]
https://handhelds.org/mailman/listinfo/haret

Reply via email to