This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How is MMU module enabled (xdc.useModule-ed) in XDC Framework ?

Other Parts Discussed in Thread: SYSBIOS

Hi,

I have a question : How is MMU module enabled (xdc.useModule-ed) in XDCTool Framework on AM335x platform ?

When I build my application with SYS/BIOS, MMU looks like being enabled by default.
My environment looks like below:

  • CCSv5.3
  • SYS/BIOS 6.34.4.22 (installed to default path, i.e., C:\ti)
  • XDCTool 3.24.5.48 (installed to default path, i.e., C:\ti)
  • RTSC parameters
    - Target : ti.target.arm.elf.A8Fnv
    - Platform: ti.platforms.evmAM3359
    - Build-profile: release 

So, I needed to disable MMU explicitly in .cfg file to disable MMU.

According to my investigation, MMU is being configured during BIOS configuration time, and every physical memory which app is using (originated from app memory map)
is mapped to logical address. And this is done by module$static$init() in Mmu.xs in ti.sysbios.family.arm.a8 package path.
I think I have already had RTSC basics and according to my understanding, I think module$static$init() is basically called only if xdc.useModule('ti.sysbios.family.arm.a8.Mmu') is in .cfg file. But actually, this description is not in my .cfg file.

So how does RTSC frame work understand MMU should be xdc.useModule-ed ?

"deviceTable" in Settings.xs from ti.sysbios.family.arm ?

If so,can I understand the modules in the "deviceTable" properties are recognized by XDC framework
to be xdc.useModule-ed by default ? 
 

FYI, the following is extracted from Settings.xs (from ti.sysbios.family.arm)

"ti.catalog.arm.cortexa8": {
"TI81XX": {
hwiDelegate : "ti.sysbios.family.arm.a8.intcps.Hwi",
timerDelegate : "ti.sysbios.timers.dmtimer.Timer",
timerSupportDelegate : "ti.sysbios.family.arm.a8.ti81xx.TimerSupport",
timestampDelegate : "ti.sysbios.family.arm.a8.TimestampProvider",
taskSupportDelegate : "ti.sysbios.family.arm.TaskSupport",
intrinsicsSupportDelegate : "ti.sysbios.family.arm.IntrinsicsSupport",
bootModule : null,
cacheDelegate : "ti.sysbios.family.arm.a8.Cache",
coreDelegate : null,
mmuModule : "ti.sysbios.family.arm.a8.Mmu",
clockTickPeriod : 1000,
targets : [ "ti.targets.arm.elf.A8F" ]
},

 

 

 

  • Naoki,

    An individual module will often do a useModule() of other modules it requires, within the module’s .xs file. 

    The a8’s Cache module (ti.sysbios.family.arm.a8.Cache) does an xdc.useModule('ti.sysbios.family.arm.a8.Mmu'), in module$use() in Cache.xs.  The Hwi module does a “use” of Cache, and Cache does a “use” of the MMU.

    Does this answer your questions?

    Thanks,
    Scott

  • Hi Scott,

    Thank you for your reply (again). As for module dependencies,Ok, I understood.

    As for Settings module, there are still some points not to clear for me, but I will dig into xs files more in details.

    Best Regards

    Kawada