From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nishanth Menon Date: Fri, 6 Mar 2015 11:38:20 -0600 Subject: [U-Boot] [PATCH V5 05/11] ARM: OMAP: Change set_pl310_ctrl_reg to be generic In-Reply-To: <20150306170807.GC17895@bill-the-cat> References: <1425616866-11702-1-git-send-email-nm@ti.com> <1425616866-11702-6-git-send-email-nm@ti.com> <20150306170807.GC17895@bill-the-cat> Message-ID: <54F9E60C.8090002@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03/06/2015 11:08 AM, Tom Rini wrote: > On Thu, Mar 05, 2015 at 10:41:00PM -0600, Nishanth Menon wrote: > >> set_pl310_ctrl_reg does use the Secure Monitor Call (SMC) to setup >> PL310 control register, however, that is something that is generic >> enough to be used for OMAP5 generation of processors as well. The only >> difference being the service being invoked for the function. >> >> So, convert the service to a macro and use a generic name (same as >> that used in Linux for some consistency). While at that, also add a >> data barrier which is necessary as per recommendation. >> >> While at this, smc #0 is maintained as handcoded assembly thanks to >> various gcc version eccentricities, discussion thread: >> http://marc.info/?t=142542166800001&r=1&w=2 >> >> Signed-off-by: Nishanth Menon > [snip] >> diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S >> index e19c7aececdd..80619b04df5d 100644 >> --- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S >> +++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S >> @@ -22,11 +22,15 @@ ENTRY(save_boot_params) >> b save_boot_params_ret >> ENDPROC(save_boot_params) >> >> -ENTRY(set_pl310_ctrl_reg) >> - PUSH {r4-r11, lr} @ save registers - ROM code may pollute >> +ENTRY(omap_smc1) > [snip] >> diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h >> index e19975efaf50..f425e3af54f5 100644 >> --- a/arch/arm/include/asm/arch-omap4/sys_proto.h >> +++ b/arch/arm/include/asm/arch-omap4/sys_proto.h >> @@ -37,7 +37,7 @@ void do_set_mux(u32 base, struct pad_conf_entry const *array, int size); >> void set_muxconf_regs_essential(void); >> u32 wait_on_value(u32, u32, void *, u32); >> void sdelay(unsigned long); >> -void set_pl310_ctrl_reg(u32 val); >> +void omap_smc1(u32 service, u32 val); > > I kinda feel we should be putting the prototype into omap_common.h as > that's as close as we've got today for a header that matches up to the > code in arch/arm/cpu/armv7/omap-common/, thanks! > OK. will try to get it done. Thanks for the suggestion on this. -- Regards, Nishanth Menon