Re: [iPAQ] Booting Linux on the iPAQ

From: Dirk van Hennekeler <hennekel.a.t.ozy.dec.com>
Date: Wed Aug 30 2000 - 01:14:11 EDT

Hi Mark,

> I don't have a serial cable yet, so I can't go through the fun of
> flashing the ROM and installing Linux. However, I have a proposal
> and was wondering if I was insane to try it...

>
> Does the iPAQ windowsce/osloader have the ability to boot a kernel
> NOT from flash? If not, where can I find the documentation needed
No, but it should be possible to do it. Currently if you
run the bootldr (Tools->bootldr->Run) it will run this from RAM.
Then you are able to transfer the files over the serial line. It
is possible to download the kernel and put it in RAM. This was the
tack we initially took - using the bootldr to load the kernel in
RAM (rather than flash) and then jump to it. It ended up getting
part way through the kernel boot sequence. Jamey may remember more
of this (since I remember him being the last person to look at this)
but from memory I believe we found out that there was a load/store
multiple
instruction that wasn't working. Jamey started looking the privledge
modes
of the processor because we were guessing that an exception
was being generated and at this point the exception vectors weren't
being
called. Also, the kernel we used needed to be loaded at a particular
physcial address
(since that was what it was linked for). This was the case for the
kernel
we had (2.3.99-prexx) I haven't looked at the latest kernel, so that
might
be different now.
We ran out of time to persue this further.
The above is useful if you want to use serial, but not much help if you
don't. I haven't look at the NetBSD Windows CE code but as you imply the
NetBSD folks would be able to give you more information on what they do
- or
you could look at the code.
I had a correspondence with Volkmar and I suspect they would do
something
similar to what he described. Namely, initialise virtual memory before
doing
the jump and perhaps seting up a page table before hand.

> so that I can reset the iPAQ hardware to a state that would allow
> me to try a stupid trick like this...which is similar to how I get
> Linux to boot on my Cassiopeia (since the ROM can't be flashed).

>
> Some of the code in the osloader looks useful, but I dont know how
> the iPAQ hardware is laid out (it looks like it pokes some IO space
> for the interrupt controller before jumping to C002somethingorother)
I'm not sure if this is what you mean by hardware, but the specs
for the iPAQ H3600 hardware are on the handhelds.org web site.

Almost right. It copies the bootldr code to a known physical address
(0xc002200), turns off interrupts, flushes caches, turns off mmu before
jumping to it.

>
> (I'm also looking at adding the MIPS/VR method of compiling a ramdisk
> into the kernel itself...so that every time I boot linux, I just need
> to copy 2 files over IR or USB...)
>
> Someone slap me if I'm nuts or something.
IMHO, full steam ahead!

Regards,
Dirk
Received on Tue Aug 29 22:18:51 2000

This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:43:41 EDT