From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gary Thomas To: Wong Yee Peng Cc: ecos-discuss@sourceware.cygnus.com Subject: Re: [ECOS] How do I restore WinCE image? Date: Fri, 17 Aug 2001 05:17:00 -0000 Message-id: References: <007601c12700$95001b60$145ea8c0@mospeada> X-SW-Source: 2001-08/msg00599.html 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" > To: "Wong Yee Peng" > Cc: > 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. >>