On Wed, Mar 25, 2020 at 11:33 PM John Rippetoe <jrippe...@roboticresearch.com> wrote: > > > >> 1. For each chip, files that include mpu support need to add a > >> conditional to two included files > >> > >> #ifdef CONFIG_ARM_MPU > >> # include "mpu.h" > >> # include "<chip>_mpuinit.h" > >> #endif > > > > Wouldn't it make more sense to put #ifdef CONFIG_ARM_MPU inside of > > mpu.h and <chip>_mpuinit.h. That way, the problem is fixed in one > > place for all time. > > > I hadn't considered that, but that does make more sense. > > > > Another option would be to remove the inline qualifier and move the > > functions into a .c file. > > > I'm equally fine with this, but I can see the appeal for wanting to keep > the small functions inlined. Of the 12 funcitons in mpu.h, 9 are just > wrappers around a call to mpu_configure_region that look like > > > static inline void mpu_priv_intsram(uintptr_t base, size_t size) > { > /* The configure the region */ > > mpu_configure_region(base, size, > MPU_RASR_TEX_SO | /* Ordered */ > MPU_RASR_C | /* Cacheable */ > /* Not Bufferable */ > MPU_RASR_S | /* Shareable */ > MPU_RASR_AP_RWNO /* P:RW U:None */ > /* Instruction access */); > } > > > Like others have said, there is no guarantee these will be inlined. > Furthermore, the build system doesn't currently enforce a minimum C99 > standard to ensure the inline keyword is even available. So I am in > favor of moving the functions to a .c file in the name of clarity. > Consolidating them into up_mpu.c seems like a good choice. If the > overhead of an additional function call is problematic, we could > predefine the flags and call mpu_configure_region() directly > > #define MPU_PRIV_INTSRAM MPU_RASR_TEX_SO | /* Ordered */ > MPU_RASR_C | /* Cacheable */ > /* Not Bufferable */ > MPU_RASR_S | /* Shareable */ > MPU_RASR_AP_RWNO /* P:RW U:None */ > /* Instruction access */); > > > mpu_configure_region(base, size, MPU_PRIV_INTSRAM); > >
Or change mpu_priv_intsram to macro? > John > > CONFIDENTIALITY NOTICE: This communication may contain private, confidential > and privileged material for the sole use of the intended recipient. If you > are not the intended recipient, please delete this e-mail and any attachments > permanently. >