This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: How do I restore WinCE image?



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.
>>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]