Re: need help physical memory eboot
From: voidcoder (voidcoder_at_yahoo.com)
Date: 12/29/04
- Next message: Peter K.: "RE: Rebuild LargeKB"
- Previous message: Peter K.: "Checkbox "Allow application to change the input panel state" has no effect"
- In reply to: Peter: "Re: need help physical memory eboot"
- Next in thread: Steve Maillet \(eMVP\): "Re: need help physical memory eboot"
- Reply: Steve Maillet \(eMVP\): "Re: need help physical memory eboot"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 29 Dec 2004 12:36:36 +0100
Ups. Sorry. First of all You should jump
to Your image startup code, and not to KernelStart.
You should have something like
STARTUPTEXT
LEAF_ENTRY StartUp
in You image startup code. You bootloader should jump to
StartUp first, which is entry point for "nk.exe". Probably
You should look through original main.c eboot code.
I think it should be something like image entry point
calculation here. Just to test it You can jump
to PHYSICAL_RAM_IMAGE_BASE + 0x1000.
Usually StartUp entry point address is
ImageBaseAddressInRAM + 0x1000.
Normally (if You want universal and platform independent bootloader)
you should obtain a pointer to pTOC stucture first, and then iterate frough
BIN entries and find "nk.exe" entry. Then You can use loadOffset and
e32_entryrva fields to calculate image entry point.
Ok, so it was about jumping to You OS startup code.
Now You can use code from my previous post to jump to
KernelStart.
eg.
; --------------------------------------------------
; startup.s
STARTUPTEXT
LEAF_ENTRY StartUp
; Jump to KernelStart
ADD r0, pc, #OEMAddressTable-(.+8)
LDR r1, =KernelStart
LDR r2, =0x80000000 ; RAM base virtual
SUB r1, r1, r2
LDR r2, =0xA0000000 ; RAM base physical
ADD r1, r1, r2
MOV lr, r1
IF Interworking :LOR: Thumbing
bx lr
ELSE
mov pc, lr
ENDIF
END
"Peter" <arockiarajeshpeter_at_harita_dot_com> wrote in message
news:B0689E68-C786-414C-BC24-B4F4B518D9E7@microsoft.com...
> Thanks.
>
> I couldn't get the kernelstart symbol in bootloader. I guess this
> kernelstart is a Kernel Function and it's available only for nk.bin.
>
> How i can IMPORT KernelStart() in my bootloader?
>
> I tried
> IMPORT kernelStart -- but getting eror
> e:\wince420\platform\ts90_ether_serial\eboot\fwp2.obj() : error LNK2001:
> unresolved external symbol KernelStart
> e:\wince420\platform\ts90_ether_serial\target\armv4i\debug\eboot.exe() :
> error LNK1120: 1 unresolved externals
>
>
> "voidcoder" wrote:
>
> > Ok, then it should be something around addressing.
> > Are You sure that image is loaded at right RAM
> > address (pls verify with Your config.bib). Also
> > pls verify that You jumping to the right address of
> > KernelStart. For example (just to chek it)
> > You can try to calculate address manually.
> >
> > eg.
> >
> > ; Jump to KernelStart
> >
> > ADD r0, pc, #OEMAddressTable-(.+8)
> > LDR r1, =KernelStart
> > LDR r2, =0x80000000 ; RAM base virtual
> > SUB r1, r1, r2
> > LDR r2, =0xA0000000 ; RAM base physical
> > ADD r1, r1, r2
> >
> > MOV lr, r1
> >
> > IF Interworking :LOR: Thumbing
> > bx lr
> > ELSE
> > mov pc, lr
> > ENDIF
> >
> > Pls try it.
> >
> >
> >
> > "Peter" <arockiarajeshpeter_at_harita_dot_com> wrote in message
> > news:E6EFE5E4-5273-4F94-A8A1-CABDCB8EBFF6@microsoft.com...
> > > Thanks.
> > > In my Virtual Eboot itself i am not passing OEMaddressTable address to
> > > kernelstart. But, jumping and woking fine. really, i couldn't find the
> > > reason, (I'm using Lubbock code)
> > >
> > > Even, i tired to pass OEMAddressTable address in r0 register before
moving
> > > the KernelEntry address in to my program counter...not getting called.
> > >
> > > Peter
> > >
> > > "voidcoder" wrote:
> > >
> > > > Probably you forgot to pass pointer to OEMAddressTable
> > > > while calling KernelStart. Please chek it.
> > > >
> > > >
> > > > "Peter" <arockiarajeshpeter_at_harita_dot_com> wrote in message
> > > > news:014301A9-8565-4083-9862-F54718C2231F@microsoft.com...
> > > > > Hi,
> > > > >
> > > > > I am using PXA255, Lubbock BSP, WinCE 4.2.
> > > > >
> > > > > I'm able to download the OS image using my Physical memory Eboot.
> > > > > But, eboot is not jumping to the kernel start. The same code is
> > working
> > > > fine
> > > > > for Jumping to OS kernel using Virtaul memory.
> > > > >
> > > > > I just modified the respective address from virtual to physical
> > memory.
> > > > > Then, I tested i could reach the Launch () function and from there
i
> > am
> > > > not
> > > > > able to jump to the KernelStart().
> > > > >
> > > > > Is any other thing i need to take care while convertig a Virtual
Eboot
> > o
> > > > > Physical Eboot?
> > > > >
> > > > > Please help me out.
> > > > >
> > > > > Thanks & Regards,
> > > > > Peter
> > > >
> > > >
> > > >
> >
> >
> >
- Next message: Peter K.: "RE: Rebuild LargeKB"
- Previous message: Peter K.: "Checkbox "Allow application to change the input panel state" has no effect"
- In reply to: Peter: "Re: need help physical memory eboot"
- Next in thread: Steve Maillet \(eMVP\): "Re: need help physical memory eboot"
- Reply: Steve Maillet \(eMVP\): "Re: need help physical memory eboot"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|