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
