Dear experts,
Now I am working on imx28 with wince6.0.
From page 15 of the Secure Boot with i.MX28 HAB Version4 pdf, the Section3.3, it tells how to assemble HAB with boot image.But the example in the Section4 is based on uboot.
I want to reserve the space for HAB and IVT in the eboot.What shoud I do in the linker?
Please guide.
hi Bio_TICFSL ,
In uboot ,there is a link.lds file to indicate the .ivt adress as below:
and then in the power_prep.c file ,there is the ivt definition:
In imx28 eboot , is there any linker file as link.lds to indicate the .ivt and .bss address?
Hi Collin
the app note AN4555 describes main features and procedures regarding the i.MX28 HAB, which is based on public key certificate of X.509 format.
http://cache.freescale.com/files/32bit/doc/app_note/AN4555.pdf
The WinCE boot is performed in 3 stages :
1) initial program loader (IPL <=> XLDR) ;
2) secondary program loader (SPL <=> eboot) ;
3) WinCE image (kernel) NK.
This may be considered as analog of power_prep, boot_prep, Linux kernel in AN4555 : the XLDR would have to be signed (also eboot, the kernel, other required piece of software).
There is no any WinCE example available from NXP for MX28 secure boot.
Regards
Hi Bio,
From another thread HAB i.MX28 Invalid Certificate
it was said only CST 2.0.0 can make HAB work on IMX28.
Where can I get this version CST?
Currently I am using CST2.3.2 on ubuntu 32bit.
When I use cst -o csf-eboot.bin -i eboot.csf , It always says:
Cannot open key file .But the key exists there with the right name.
Hello,
I send You email with CST 2 link.
Hope it helps.
Regards,
Yuri.
Hi Yuri,
Thanks for your email. I have downloaded it.
On the imx28 evk board, the eboot_ivt.sb is generated by " elftosb -z -f imx28 -c eboot_ivt.bd -o eboot_ivt.sb"
the content of eboot_ivt.bd is:
options {
driveTag = 0x00;
flags = 0x01;
}
constants {
xldr_addr = 0x00000004;
eboot_addr = 0x40050000;
bmp_addr = 0x40094000;
ivt_addr = 0x8000;
}
sources {
xldr = "xldr.nb0";
eboot = "eboot.nb0";
bmp = "splash_eboot.bmp";
}
section (0) {
load xldr > xldr_addr;
load ivt (entry = xldr_addr) > ivt_addr;
hab call ivt_addr;
load bmp > bmp_addr;
load eboot > eboot_addr;
load ivt (entry = eboot_addr) > ivt_addr;
hab call ivt_addr;
}
there is no "ivt" source in The sources section .
So if want to update the ivt to set the *csf pointer for imx28 HAB, what shoud I do?