I am trying to implement secure bootloader functionality in WindowsEC7 which supposed to use security features of iMX6 chip.
Before I start any attempt to sign my eboot with securuty key and enable 'closed device mode' in OCOTP I'd like to check that my image has signed and verified correctly.
To do that I need to call HAB ROM API to check whether any error detected by HAB durung bootstrapping or not.
I'v got UBOOT which uses this functionality but there is an issue using this approach in EBOOT.
As far as I understand UBOOT uses physical addresses but EBOOT starts MMU and operates using virtual...
My question is how to call HAB in such a condition.
Ok, I can read HAB ROM area using uncached VA and data I am reading are completely sane.
Then I need to call HAB ROM API providing RAM addresses for it (see example below).
Which address type should I use for such parameters: physical or virtual?
UBOOT is compiled by gcc, EBOOT (obviously) is compiled using MS compiler.
I am assuming that HAB ROM API uses gcc style function parameter access...
Are MS and GCC compatible in term of function parameter transfer or I need to process them manually?
typedef enum hab_status hab_rvt_report_status_t(enum hab_config *, enum hab_state *);