Re: Prefetch Abort in FileSys

From: Dean Ramsier (ramsiernospam_at_nospam.com)
Date: 09/27/04


Date: Mon, 27 Sep 2004 09:42:30 -0400

Actually, it does address the underlying issue. It's your responsibility to
ensure that the filesystem get's initialized correctly. The file system
looks at a few magic variables to decide if the RAM contents are valid. On
initial bootup, RAM is in a random state and will easily cause a file system
crash. You must call the
NKForceCleanBoot() API in OEMInit to ensure that the filesystem is
initialized properly.

-- 
Dean Ramsier - eMVP
"Dale Ziebarth" <dziebarth@hotmail.com> wrote in message
news:%236Uy%239IpEHA.3396@tk2msftngp13.phx.gbl...
> We discovered that if the object store in SDRAM is scrubed at startup time
> then the FileSys continues just fine because it must reinitialize
> everything.  For our system it doesn't matter if we loose RAM on startup
so
> that's not an issue for us.  That doesn't address the underlying issue,
but
> at least it got us on to debugging the OAL and drivers.
>
> The reason I have compression off is that we wanted to run the image from
> RAM for debugging.
>
>
> "Dean Ramsier" <ramsiernospam@nospam.com> wrote in message
> news:%23jWDslnoEHA.3876@TK2MSFTNGP15.phx.gbl...
> > Errors like this are almost always problems in memory setup.  Sometimes
> you
> > haven't allocated enough space for RAMIMAGE, although in your case you
> have
> > AUTOSIZE on.  Another thing I noticed is that COMPRESSION is set to OFF.
> Is
> > that really correct?  Usually the compression components are included...
> >
> > -- 
> > Dean Ramsier - eMVP
> >
> >
> > "Dale Ziebarth" <dziebarth@hotmail.com> wrote in message
> > news:OFssh71nEHA.3224@tk2msftngp13.phx.gbl...
> > > Trying again.  I figure everyone took off for the weekend and missed
my
> > > first post.
> > >
> > > Does anyone have an idea of where to start to narrow this problem down
?
> > As
> > > far as I known none of my OAL has been executed as of the point where
it
> > > crashes.  I took out some of my reserved areas in RAM and it did not
> > resolve
> > > the problem.  I figured maybe I was just short of RAM.
> > >
> > > My Win CE 4.2 image for a PXA255 based board gets through the
> > KernelRelocate
> > > fine but dies when attempting to start the first thread.  I think that
> it
> > > has something to do with the Filesys.exe.  I've added the Intel IPSM
as
> > > indicated in their setup document with the RAM and ROM based file
system
> > > selected and the RAM based registry and running the image from RAM
> (build
> > > with "Enable Image For Flash" not checked) by downloading through a
JTAG
> > > emulator to the target board.  It does the same thing when using the
ROM
> > > based file system.  I can see that the FileSys.exe is in the image in
> the
> > > output of the romimage tool.
> > >
> > > My Google for "Prefetch Abort Filesys" resulted in only items for
SA1110
> > and
> > > possibly a dcache problem.  I'm not sure if the VFP Not Found has
> anything
> > > to do with it.  I know that possibly this is a memory mapping setup
> > problem.
> > > Hopefully someone can give the following a look and tell me if there
is
> > > something wrong with it.
> > >
> > > Thanks for your help!
> > >
> > > Here is my debug output:
> > > Windows CE Kernel for ARM (Thumb Enabled) Built on Jun  1 2004 at
> 16:39:10
> > > ProcessorType=02d0  Revision=6
> > > sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable =
> > 80041154
> > > Booting Windows CE version 4.20 for (ARM)
> > > &pTOC = 8004a02c, pTOC = 80bdd040, pTOC->ulRamFree = 81370000,
MemForPT
> =
> > > 00000000
> > >
> > > Booting kernel with existing memory configuration:
> > > Memory Sections:
> > > [0] : start: 81371000, extension: 00001000, length: 00ace000
> > > Sp=ffffc7cc
> > > ARMInit done.
> > > Windows CE KernelInit
> > > Updated eptr->e32_vsize to = 00096000
> > > Scheduling the first thread.
> > > 0x81e3f024: KernelInit2: pCurThread=81e3f024 hCurThread=01e3f262
> > > hCurProc=01e3f002, KernelInit = 800607d4
> > > 0x81e3f024: Detecting VFP...0x81e3f024:  VFP Not Found!
> > > 0x81e3f024: first = 01eb0000, last = 02000000, SharedDllBase =
03050000
> > > 0x81e32654: 0x81e32654: Prefetch Abort: Thread=81e32654 Proc=81366e58
> > > 'filesys.exe'
> > > 0x81e32654: AKY=00000003 PC=00000001 RA=00000001 BVA=00000001
> FSR=000004f0
> > > 0x81e32654: NKDispatchException: returning failure. Flags=0
> > > 0x81e32654:
> > > Unhandled exception c0000005:
> > > 0x81e32654: NK Kernel: DEBUGCHK failed in file
> > > d:\mckendric\private\winceos\coreos\nk\kernel\arm\mdarm.c at line 1040
> > > 0x81e32654: DEBUG_BREAK @8005e174 MD=1f Ignored.
> > > 0x81e32654: Terminating thread 81e32654
> > > 0x81e32654: Data Abort: Thread=81e32654 Proc=81366e58 'filesys.exe'
> > > 0x81e32654: AKY=00000003 PC=800a609c RA=800a5fd0 BVA=f000fe98
> FSR=000000f5
> > > 0x81e32654: NKDispatchException: returning failure. Flags=0
> > > 0x81e32654:
> > > Unhandled exception c0000005:
> > > 0x81e32654: Exception 'Data Abort' Thread=81e32654 AKY=00000003
> > PC=0065006b
> > > BVA=f000fe98
> > > 0x81e32654:  R0=00690072  R1=005c0063  R2=00720070  R3=00760069
> > > 0x81e32654:  R4=00740061  R5=005c0065  R6=00690077  R7=0063006e
> > > 0x81e32654:  R8=006f0065  R9=005c0073 R10=006f0063 R11=00650072
> > > 0x81e32654: R12=0073006f  SP=006e005c  Lr=005c006b Psr=6000001f
> > > 0x81e32654: Can't terminate thread 81e32654, sleeping forever
> > > 0x81e32654: ERROR:
> > d:\mckendric\private\winceos\coreos\nk\kernel\schedule.c
> > > line 5058: 0x81e32654: Abandoning CS 81368a80 in PuntCritSec
> > >
> > >
> > > The build log for the ROMIMAGE tool output shows that  filesys.exe is
in
> > the
> > > image.
> > >
> > >
> > >
> > > My config.bib file has the following (actually I took this from
ce.bib):
> > >
> > > MEMORY
> > >     NK              80040000         200000    RAMIMAGE
> > >     WINCERAM     82051000        1C00000     RAM
> > >
> > > CONFIG
> > >    ROMFLAGS=0
> > >    AUTOSIZE=ON
> > >    ROMOFFSET=20000000
> > >    SRE=ON
> > >    COMPRESSION=OFF
> > >    PROFILE=OFF
> > >    KERNELFIXUPS=ON
> > >
> > >
> > >
> > > MODULES
> > > ;  Name            Path
Memory
> > > Type
> > >
>
   --------------  ---------------------------------------------  ---------
> -
> > > -
> > >
> > >    nk.exe
D:\WINCE420\PUBLIC\A_A_Plat\RelDir\A_ADebug\kern.exe
> > > NK  SH
> > >
> > >    coredll.dll
> D:\WINCE420\PUBLIC\A_A_Plat\RelDir\A_ADebug\coredll.dll
> > > NK  SH
> > >
> > > ; @CESYSGEN IF CE_MODULES_FILESYS
> > >    filesys.exe
> D:\WINCE420\PUBLIC\A_A_Plat\RelDir\A_ADebug\filesys.exe
> > > NK  SHM
> > > ; @CESYSGEN ENDIF
> > >
> > > ; TKTest replaces filesys for tiny kernel testing.
> > > ; @CESYSGEN IF !CE_MODULES_FILESYS
> > > ; @CESYSGEN IF CE_MODULES_TKTEST
> > > ; @CESYSGEN ENDIF CE_MODULES_TKTEST
> > > ; @CESYSGEN ENDIF !CE_MODULES_FILESYS
> > >
> > > (etc...)
> > >
> > >
> > >
> > >
> > >
> > > My OEMAddressTable is the following:
> > > OEMAddressTable
> > >     ; CS0 - Flash (64 Meg Bytes)
> > >     DCD 0x84000000, 0x00000000, 0x00000040
> > >
> > >     ; CS1 - Unused Flash (64 Meg Bytes)
> > >     DCD 0x88000000,0x04000000,0x00000040
> > >
> > >     ; CS2 and CS3 - Not Used
> > >     ; -------------------------------
> > >
> > >     ; CS4 - Battery Backed RAM
> > >     DCD 0x8c000000, 0x10000000, 0x00000001
> > >
> > >     ; CS5 - USB Host Port
> > >     DCD 0x8c100000,0x14000000,0x00000001
> > >
> > >     ; SDCS0 - SDRAM (From 0xA000_0000 to 0xA400_0000 Physical)
> > >     DCD 0x80000000,0xa0000000,0x00000040
> > >
> > >     ; Normal PXA255 Periperhals
> > >     DCD 0x8c200000,0x40000000,0x00000020
> > >
> > >     ; LCD Registers in PXA255
> > >     DCD 0x8e200000,0x44000000,0x00000001
> > >
> > >     ; Memory Controller
> > >     DCD 0x8e300000,0x48000000,0x00000001
> > >
> > >     ; Zero Bank
> > >     DCD 0x8e400000,0xe0000000,0x00000001
> > >
> > >     ; End of Table (MB MUST BE ZERO!)
> > >     DCD 0x00000000,                 0x00000000,                 0
> > >
> > >     END
> > >
> > >
> >
> >
>
>


Relevant Pages

  • Re: No swap partition ?
    ... why do you want to keep that data in RAM? ... Finding a page of a memory mapped file ... means you will need to read file system meta data. ... > better job of running cache than the kernel. ...
    (comp.os.linux.development.system)
  • OT/drift: when is a RAMdisk an appropriate solution
    ... include the "ram disk" component in your project. ... Sometimes, a physical RAM ... only to wind up going directly to regular old ordinary memory, ... testing the file system software. ...
    (comp.lang.c)
  • Re: Why its called ROM-only
    ... In the case of "Filesystem", the descriptions tell you how things work. ... ROM *and* RAM. ... all temp data in external file system. ...
    (microsoft.public.windowsce.platbuilder)
  • Dumping the FileSystem in RAM
    ... The devices running on WinCE 3.x-4.x have the file system in RAM, ... mounted as root directory. ... And how to parse the filesystem? ...
    (microsoft.public.windowsce.embedded)
  • Re: Steve Jobs demos Macintosh in 1984
    ... Woody wrote: ... Stop annoying the fucking hell out of me, ... For sure not much computer memory had been made in 1948 - but it could ... For sure you got a bit more RAM to use in the Speccy - ...
    (uk.comp.sys.mac)