Bigger EBOOT file [solved]

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Bigger EBOOT file [solved]

2,413 Views
PawelZ
Contributor I

Hi All!

I'm trying to make eboot bin file bigger to store more data in it but after I've changed image_cfg.h .inc and eboot.bib file PB build bin file with the same size as before changes were made. What else need to be changed?

P.

Tags (1)
0 Kudos
15 Replies

1,864 Views
seetha
Contributor III

Hi all,

How to change the ROMOFFSET value according to the eboot run address?? In .bib file where I need to change the ROMOFFSET.??

I am confused with that. Can somebody tell me how .bib files work??

Thank you

Seetharam

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

    You can set "RAM              80150000      00080000     RAM", it is also OK

0 Kudos

1,864 Views
PawelZ
Contributor I

I get your point, but we don't use SD card but NAND flash instead, so it was quite easy to store image in an array as it's coded already. Question is...how much RAM do I need in eboot?

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

    Since you haven't changed the EBOOT run address (0x80040000), no change was needed for ROMOFFSET.

    But in your change, your RAM (RAM 80150000 00120000 RAM) had cover the address 0x80200000, this address is the WinCE NK running address, that means EBoot need load NK.nb0 to it, but the EBoot itself had used this address, that will be problem, your will fail to boot the NK.

    I think the simple way is just keeping the default eboot size, and put your "picdata.h" to binary file, and use some reserved SD sectors to store it. And when the eboot wants to show it as boot screen, it can read the data from SD card to framebuffer.

0 Kudos

1,864 Views
PawelZ
Contributor I

One more thing. What about ROMOFFSET in eboot.bib.

Right now it's:

IF IMGSDMMC !

IF IMGNAND
; 0x9F7F0000 = (0x80040000 + ROMOFFSET) & 0xFFFFFFFF
; ==> ROMOFFSET = 0x177B0000
ROMOFFSET=1F7B0000
ENDIF

IF IMGNAND !
; 0x9F301000 = (0x80040000 + ROMOFFSET) & 0xFFFFFFFF
; ==> ROMOFFSET = 1F2C1000
ROMOFFSET=1F2C1000
ENDIF

ENDIF

IF IMGSDMMC
; 0x9FA20000 = (0x80040000 + ROMOFFSET) & 0xFFFFFFFF ==> ROMOFFSET = 0x1F9E0000
ROMOFFSET=1F9E0000
; ENDIF

0 Kudos

1,864 Views
PawelZ
Contributor I

Ok. Problem fixed. There was ca. 500 bytes that couldn't fit in other words $TARGETNAME was slightly too small.

This is how it looks:

EBOOT.BIB

; ------- -------- -------- ----
ARGS 80000000 00001000 RESERVED
XLDR 80001000 00001000 RESERVED
STACK 80002000 0003A000 RESERVED
PAGE_TABLE 8003C000 00004000 RESERVED
$(TARGETNAME) 80040000 00110000 RAMIMAGE
;IPL is obsolete, remove it to avoid potential romimage issue
;IPL 80140000 00040000 RESERVED
RAM 80150000 00120000 RAM
; Flash cache (used to store eboot.bin or nk.bin before flashing)
FCACHE 80270000 07B80000 RESERVED
PIC 87DF0000 00200000 RESERVED

and in loader.h

#define BOOT_TOTAL_RAM_SIZE                0x270000

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

    RAMSIZE is not related with RAMIMAGE size, but please try with the updated #define BOOT_TOTAL_RAM_SIZE 0x260000.

0 Kudos

1,864 Views
PawelZ
Contributor I

I tried without array (I made just 1x1 with one initialized value in it) and it's the same. RAMSIZE (RAM value in eboot.bib) should be bigger than TARGETNAME? I do have like that now, but want to be sure. Do you have any suspects what could be the reason?

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

And since you had modified the FCACHE address, another file "platform\imx51-evk\src\bootloader\common\loader.h" should be updated too. It is hard coded for 0x200000.

#define BOOT_TOTAL_RAM_SIZE                0x200000  // see eboot.bib/sboot.bib to compute size

 

In your case, it should be

#define BOOT_TOTAL_RAM_SIZE                0x260000  // see eboot.bib/sboot.bib to compute size

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

    No issue was found in your modification, I think in file "picdata.h" there is a big data array for the boot picture, maybe it is too big, if you removed that file and just built the eboot to 1MB size, is it OK in your side? If it works, I think you should change the big data array in "picdata.h" to some small arrays.

0 Kudos

1,864 Views
PawelZ
Contributor I

Ok.

So I changed in image_cfg.inc and in image_inc.h this line:

IMAGE_BOOT_BOOTIMAGE_RAM_SIZE       (1024*1024)

in eboot.bib

$(TARGETNAME)    80040000      00100000     RAMIMAGE

and other file (picdata.h in EBOOT) to fit boot picture for the whole screen that we use.

Eboot.bin is now 1017KB and Platform builder make nb0 nb1 and nb2 which are 1024/1024/512KB accordingly.

To be more specific this is my eboot.bib now:

ARGS              80000000   00001000  RESERVED
XLDR               80001000   00001000  RESERVED
STACK            80002000   0003A000 RESERVED
PAGE_TABLE  8003C000  00004000 RESERVED
$(TARGETNAME) 80040000 00100000 RAMIMAGE
;IPL is obsolete, remove it to avoid potential romimage issue
;IPL 80140000 00040000 RESERVED
RAM                 80140000    00120000 RAM
; Flash cache (used to store eboot.bin or nk.bin before flashing)
FCACHE          80260000  07D80000 RESERVED

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

I think if you just modify the EBOOT image size, it will not impact the EBOOT function, if you can show all of your modifications, it will be helpful to identify your issues.

0 Kudos

1,863 Views
PawelZ
Contributor I

Problem now is with downloading images. When I try to run USB Serial or RNDIS driver eboot just hangs after sending USB descriptor to PC (after MAC setting under RNDIS). Any thoughts??

0 Kudos

1,864 Views
PawelZ
Contributor I

Don't know how I missed that. Now it works and have to move a little starting points for WinCE. Any advice ?

Thanks for your post.

0 Kudos

1,864 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

I think you haven't modified the eboot.bib file correctly.

For example, if you wants to modify the eboot from 512KB to 768KB, in eboot.bib

    $(TARGETNAME)    80040000      00080000     RAMIMAGE

should be update to

    $(TARGETNAME)    80040000      000C0000     RAMIMAGE

 

And

    ROMSIZE =00080000

should be updated to

    ROMSIZE =000C0000

0 Kudos