This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: How do I restore WinCE image?
- To: Wong Yee Peng <wyeepeng at dso dot org dot sg>
- Subject: Re: [ECOS] How do I restore WinCE image?
- From: Gary Thomas <gthomas at redhat dot com>
- Date: Fri, 17 Aug 2001 06:18:04 -0600 (MDT)
- Cc: ecos-discuss at sourceware dot cygnus dot com
- Organization: Red Hat, Inc.
On 17-Aug-2001 Wong Yee Peng wrote:
> Hi,
> I think the problem of the "corrupted fis" is sort of solved. Although
> the fis table looks different from that on the web page, redboot can still
> boot. I can create fis partitions for the kernel and jffs2 images. The
> reason why I failed to boot to linux is that I set the option "-l 0x80000"
> for the exec command instead of "-l 0x280000". I thought the length of the
> kernel partition is only 0x80000 long, so I thought there was a typo error.
> When I tried with 0x280000, it worked.
>
> Now I am quite confused. Why must we use 0x280000 instead of 0x80000? Is
> it becos we must allocate 2MB more of memory for the kernel to store its
> temp stuff during booting?
>
No - Look carefully and you'll see that the image in FLASH is compressed.
The 'fis load -d Linux' command actually uncompresses it as it goes into
RAM. What fits in 0x80000 in FLASH becomes nearly 0x280000 in RAM. This
is why you need that value.
> Then, I tried another thing. Instead of loading the kernel image from
> the flash, in the boot script, I told it to load the kernel image from the
> tftp server and exec the image immediately from the ram. This simulates a
> normal thin client implementation. However, eventhough I used the same exec
> command with the "-l 0x280000" option set, it failed to exec and hanged
> there.
>
> The actual kernel image size downloaded from the tftp server is 0x7e122.
> I deduced that it might be that fact that we need exactly 2MB extra like the
> previous case. So, I used "-l 0x27e122" instead and exec the kernel on ram.
> This time, the lcd flash into a messy screen of colours and hangs there. At
> least something happened but I am still unable to boot to linux.
>
Probably because when you downloaded the Linux kernel you didn't uncompress
it so you were actually trying to execute compressed data.
> Can anyone help?
>
> Yee Peng
>
> ----- Original Message -----
> From: "Gary Thomas" <gthomas@redhat.com>
> To: "Wong Yee Peng" <wyeepeng@dso.org.sg>
> Cc: <ecos-discuss@sourceware.cygnus.com>
> Sent: Thursday, August 16, 2001 9:30 PM
> Subject: RE: [ECOS] How do I restore WinCE image?
>
>
>>
>> On 16-Aug-2001 Wong Yee Peng wrote:
>> > Hi,
>> > I managed to permanently install redboot on my ipaq. Then, I
>> > successfully install the embedded linux kernel and root fs onto the ipaq
> and
>> > got it running once. However, later I think I messed up the fis (most
>> > probably becos of "fis init" twice while testing with the redboot boot
>> > script). Now, I cannot startup the embedded linux.
>>
>> You should be able to restore your Linux environment, without reinstalling
>> RedBoot. Exactly what problems are you having? Note: this is much
> preferred
>> to restoring WinCE as there is a chance that the unit may become
> [temporarily]
>> unusable if that operation fails.
>>
>> > So, I wanted to restore my CE and reinstall redboot again. However,
> the
>> > user guide tells me to refer to the doc in the handhelds.org which does
> not
>> > apply to the redboot situation. Can anyone tell me how to restore CE
> from
>> > Redboot or the parrot loader?
>>
>> Did you make a CF backup using the Parrot loader, prior to installing
> RedBoot?
>> If so, just insert the CF card, press reset (or power cycle) while holding
>> down the "action" button (the joy pad middle button). This will bring up
>> the CF restore menu which is quite automatic.
>>
>> If not, did you make copies of your FLASH by following the HandHelds
> instructions?
>> In this case, you'll have 4 data files. You can load these using the
> RedBoot
>> 'load' command, either over the serial using Xmodem or via the Ethernet
> and TFTP.
>> The basic flow is:
>> 1. Load & execute RAM version of RedBoot.
>> RedBoot> load RedBoot.RAM
>> RedBoot> go
>> 2. Now load the FLASH contents.
>> RedBoot> load -r -b 0x00100000 flash_00000000.bin
>> RedBoot> load -r -b 0x00500000 flash_00400000.bin
>> RedBoot> load -r -b 0x00900000 flash_00800000.bin
>> RedBoot> load -r -b 0x00D00000 flash_00c00000.bin
>> 3. Now the scary part - rewriting the FLASH.
>> RedBoot> fis unl -f 0x50000000 -l 0x01000000
>> RedBoot> fis wr -f 0x50000000 -l 0x01000000 -b 0x00100000
>> RedBoot> reset
>>
>> Notice: as indicated in the "how to install RedBoot" instructions, we
> really only
>> support the first method, i.e. using the Parrot loader. This second
> method will
>> work *IF YOU FOLLOW THE DIRECTIONS*, but Red Hat cannot be responsible if
> there
>> are any problems.
>>