/** * \file uart_arm.cfg * * \brief Sysbios config file for UART example project on AM572X IDK EVM. * */ /* * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ /* ================ General configuration ================ */ var Defaults = xdc.useModule('xdc.runtime.Defaults'); var Diags = xdc.useModule('xdc.runtime.Diags'); var Error = xdc.useModule('xdc.runtime.Error'); var Log = xdc.useModule('xdc.runtime.Log'); var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); var Main = xdc.useModule('xdc.runtime.Main'); var Memory = xdc.useModule('xdc.runtime.Memory') var SysMin = xdc.useModule('xdc.runtime.SysMin'); var System = xdc.useModule('xdc.runtime.System'); var Text = xdc.useModule('xdc.runtime.Text'); var Clock = xdc.useModule('ti.sysbios.knl.Clock'); var Swi = xdc.useModule('ti.sysbios.knl.Swi'); var Task = xdc.useModule('ti.sysbios.knl.Task'); var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore'); var Hwi = xdc.useModule('ti.sysbios.hal.Hwi'); var IntXbar = xdc.useModule('ti.sysbios.family.shared.vayu.IntXbar'); var Program = xdc.useModule("xdc.cfg.Program"); /* * Program.argSize sets the size of the .args section. * The examples don't use command line args so argSize is set to 0. */ /* Program.argSize = 0x0; */ Program.heap = 0x10000; /* System stack size (used by ISRs and Swis) */ Program.stack = 0x20000; /* * Uncomment this line to globally disable Asserts. * All modules inherit the default from the 'Defaults' module. You * can override these defaults on a per-module basis using Module.common$. * Disabling Asserts will save code space and improve runtime performance. Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; */ /* * Uncomment this line to keep module names from being loaded on the target. * The module name strings are placed in the .const section. Setting this * parameter to false will save space in the .const section. Error and * Assert messages will contain an "unknown module" prefix instead * of the actual module name. /*Defaults.common$.namedModule = false;*/ /* * Create and install logger for the whole system */ var loggerBufParams = new LoggerBuf.Params(); loggerBufParams.numEntries = 16; var logger0 = LoggerBuf.create(loggerBufParams); Defaults.common$.logger = logger0; Main.common$.diags_INFO = Diags.ALWAYS_ON; /* ================ BIOS configuration ================ */ var BIOS = xdc.useModule('ti.sysbios.BIOS'); /* * Build a custom SYS/BIOS library from sources. */ BIOS.libType = BIOS.LibType_Custom; BIOS.heapSize = 0x10000; /* ================ Driver configuration ================ */ /* Load the OSAL package */ var osType = "tirtos"; var Osal = xdc.loadPackage('ti.osal'); Osal.Settings.osType = osType; /*use CSL package*/ var socType = "am572x"; var Csl = xdc.loadPackage('ti.csl'); Csl.Settings.deviceType = socType; /* Load the uart package */ var Uart = xdc.loadPackage('ti.drv.uart'); Uart.Settings.socType = socType; /* Load the I2C package */ var I2c = xdc.loadPackage('ti.drv.i2c'); I2c.Settings.socType = socType; /* Load the SPI package */ var Spi = xdc.loadPackage('ti.drv.spi'); /* Load the Board package and set the board name */ var Board = xdc.loadPackage('ti.board'); Board.Settings.boardName = "idkAM572x"; /* ================ Cache and MMU configuration ================ */ var Cache1 = xdc.useModule('ti.sysbios.family.arm.a15.Cache'); var Mmu = xdc.useModule('ti.sysbios.family.arm.a15.Mmu'); /* Enable the cache */ Cache1.enableCache = true; /* Enable the MMU (Required for L1 data caching) */ Mmu.enableMMU = true; var attrs = new Mmu.DescriptorAttrs(); Mmu.initDescAttrsMeta(attrs); attrs.type = Mmu.DescriptorType_BLOCK; attrs.noExecute = true; attrs.accPerm = 0; // R/W at PL1 attrs.attrIndx = 4; // Use MAIR0 Byte2 Mmu.setMAIRMeta(4, 0x04); Mmu.setSecondLevelDescMeta(0x43200000, 0x43200000, attrs); /* Set IO Delay configuration areas as non-cache */ attrs.attrIndx = 1; Mmu.setSecondLevelDescMeta(0x4844a000, 0x4844a000, attrs); Mmu.setSecondLevelDescMeta(0x4ae07d00, 0x4ae07d00, attrs); /* Adding for GPMC setting */ var peripheralAttrs = new Mmu.DescriptorAttrs(); Mmu.initDescAttrsMeta(peripheralAttrs); peripheralAttrs.type = Mmu.DescriptorType_BLOCK; peripheralAttrs.shareable = 2; peripheralAttrs.noExecute = true; peripheralAttrs.accPerm = 0; peripheralAttrs.attrIndx = 1; // level1 is 1GB area /* Define the base address of the 1 Meg page the peripheral resieds in. */ var gpmcConfigBaseAddr = 0x50000000; /* Configure the corresponding MMU page descriptor accordingly */ Mmu.setSecondLevelDescMeta(gpmcConfigBaseAddr, gpmcConfigBaseAddr, peripheralAttrs); var gpmcAttrs = new Mmu.DescriptorAttrs(); Mmu.initDescAttrsMeta(gpmcAttrs); gpmcAttrs.type = Mmu.DescriptorType_BLOCK; gpmcAttrs.shareable = 2; gpmcAttrs.noExecute = true; gpmcAttrs.accPerm = 0; gpmcAttrs.attrIndx = 1; // level2: 2MB area (level1 is 1GB area) var gpmcBaseAddr = 0x08000000; /* Configure the corresponding MMU page descriptor accordingly */ Mmu.setSecondLevelDescMeta(gpmcBaseAddr, gpmcBaseAddr, gpmcAttrs); /* ================ Memory sections configuration ================ */ Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1"; Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";