Hi Marek,

as part of the code is written by me I will answer to a couple of the questions


 >Dear Pali Rohár,
 >
 >> Based on previous work by: Alistair Buxton 
 >> 
 >> Signed-off-by: Pali Rohár 
 >> Cc: Ивайло Димитров 
 >
 >Can we please stick to ASCII instead of UTF8?
 >
 >Cc: Ivaylo Dimitrov (if I'm not mistaken)

You are not :). And if it comes to me, it does not matter whether cyrillic or 
latin will be used.

 >> +}
 >> +
 >> +static void omap3_emu_romcode_call(u32 service_id, u32 *parameters)
 >> +{
 >> +   u32 i, num_params = *parameters;
 >> +   u32 *sram_scratch_space = (u32 *)OMAP3_PUBLIC_SRAM_SCRATCH_AREA;
 >> +
 >> +   /*
 >> +    * copy the parameters to an un-cached area to avoid coherency
 >> +    * issues
 >> +    */
 >
 >_WHAT_ ?!
 >
 >Use dcache_flush(). The Omap3 rom won't cope with cache memory? Actually -- 
 >why 
 >do you even do call into ROM ?
 >
 >> +   for (i = 0; i < num_params; i++) {
 >> +           __raw_writel(*parameters, sram_scratch_space);
 >> +           parameters++;
 >> +           sram_scratch_space++;
 >> +   }
 >> +
 >> +   /* Now make the PPA call */
 >> +   do_omap3_emu_romcode_call(service_id, OMAP3_PUBLIC_SRAM_SCRATCH_AREA);
 >> +}
 >> +

That part of the code is ported from existing code in u-boot:
http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/armv7/omap3/board.c;h=9cee1d9b490692d02129d98470ba7b57b8e61ce2;hb=HEAD#l373

So I can't think of a reason to do it in a different way.

The ROM call is needed to enable workaround for ARM errata 430973. RX-51 being 
a high secure device does not allow writes to AUX control register outside of 
the secure world. So, this call is needed to enable IBE bit in AUXCR. I can 
elaborate more if needed.

 >> +    * Cortex-A8(r1p0..r1p2) errata 430973 workaround
 >> +    * Set IBE bit in Auxiliary Control Register
 >> +    */
 >> +   omap3_update_aux_cr_secure_rx51(1 << 6, 0);
 >> +
 >> +   return 0;
 >> +}
 >> +
 >

And here is the code where IBE bit (bit 6) set.

Have in mind there is a difference re how parameters are passed compared to 
beagleboard for example, RX-51 ROM expects first parameter to be the number of 
remaining parameters+1, while beagleboard(again, just an example) ROM expects 
only the number of the remaining parameters, so existing function in 
arch/arm/cpu/armv7/omap3/board.c cannot be called (even if it is not declared 
static).
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to