/** * These arguments were used when this file was generated. They will be automatically applied on subsequent loads * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments. * @cliArgs --device "AM64x" --part "Default" --package "ALV" --context "r5fss0-0" --product "INDUSTRIAL_COMMUNICATIONS_SDK_AM64x@11.00.00" * @v2CliArgs --device "AM6442" --package "FCBGA (ALV)" --variant "AM6442-F" --context "r5fss0-0" --product "INDUSTRIAL_COMMUNICATIONS_SDK_AM64x@11.00.00" * @versions {"tool":"1.22.0+3893"} */ /** * Import the modules used in this configuration. */ const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false); const eeprom1 = eeprom.addInstance(); const i2c = scripting.addModule("/drivers/i2c/i2c", {}, false); const i2c1 = i2c.addInstance(); const ipc = scripting.addModule("/drivers/ipc/ipc"); const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false); const pruicss1 = pruicss.addInstance(); const ethercat = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false); const ethercat1 = ethercat.addInstance(); const debug_log = scripting.addModule("/kernel/dpl/debug_log"); const dpl_cfg = scripting.addModule("/kernel/dpl/dpl_cfg"); const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false); const mpu_armv71 = mpu_armv7.addInstance(); const mpu_armv72 = mpu_armv7.addInstance(); const mpu_armv73 = mpu_armv7.addInstance(); const mpu_armv74 = mpu_armv7.addInstance(); const mpu_armv75 = mpu_armv7.addInstance(); const mpu_armv76 = mpu_armv7.addInstance(); const mpu_armv77 = mpu_armv7.addInstance(); const mpu_armv78 = mpu_armv7.addInstance(); const mpu_armv79 = mpu_armv7.addInstance(); const mpu_armv710 = mpu_armv7.addInstance(); const mpu_armv711 = mpu_armv7.addInstance(); const default_linker = scripting.addModule("/memory_configurator/default_linker", {}, false); const default_linker1 = default_linker.addInstance(); const general = scripting.addModule("/memory_configurator/general", {}, false); const general1 = general.addInstance(); const region = scripting.addModule("/memory_configurator/region", {}, false); const region1 = region.addInstance(); const section = scripting.addModule("/memory_configurator/section", {}, false); const section1 = section.addInstance(); const section2 = section.addInstance(); const section3 = section.addInstance(); const section4 = section.addInstance(); const section5 = section.addInstance(); const section6 = section.addInstance(); const section7 = section.addInstance(); const section8 = section.addInstance(); const section9 = section.addInstance(); const section10 = section.addInstance(); const section11 = section.addInstance(); const section12 = section.addInstance(); const section13 = section.addInstance(); /** * Write custom configuration values to the imported modules. */ eeprom1.$name = "CONFIG_EEPROM0"; i2c1.$name = "CONFIG_I2C0"; eeprom1.peripheralDriver = i2c1; i2c1.I2C.$assign = "I2C0"; i2c1.I2C.SCL.$assign = "I2C0_SCL"; i2c1.I2C.SDA.$assign = "I2C0_SDA"; i2c1.I2C_child.$name = "drivers_i2c_v0_i2c_v0_template1"; ipc.r5fss0_1 = "NONE"; ipc.r5fss1_1 = "NONE"; ipc.r5fss1_0 = "notify"; ipc.m4fss0_0 = "NONE"; ipc.enableLinuxIpc = true; ethercat1.$name = "CONFIG_ETHERCAT0"; ethercat1.instance = "ICSSG1"; ethercat1.ethphy[0].$name = "CONFIG_ETHPHY0"; ethercat1.ethphy[0].name = "CUSTOM"; ethercat1.ethphy[0].customDeviceName = "DP83822"; ethercat1.ethphy[0].mdioPort = 1; ethercat1.ethphy[1].$name = "CONFIG_ETHPHY1"; ethercat1.ethphy[1].name = "CUSTOM"; ethercat1.ethphy[1].customDeviceName = "DP83822"; ethercat1.ethphy[1].mdioPort = 2; ethercat1.PRU_ICSSG1_IEP.EDIO_DATA_IN_OUT28.$used = false; ethercat1.PRU_ICSSG1_IEP.EDIO_DATA_IN_OUT29.$used = false; ethercat1.PRU_ICSSG1_IEP.EDIO_DATA_IN_OUT30.$used = false; ethercat1.PRU_ICSSG1_IEP.EDIO_DATA_IN_OUT31.$used = false; pruicss1.iepSyncMode = scripting.forceWrite(true); ethercat1.icss = pruicss1; pruicss1.$name = "CONFIG_PRU_ICSS1"; pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0"; debug_log.enableSharedMemLogReader = true; debug_log.enableLogZoneInfo = true; dpl_cfg.hwiPEnable = false; mpu_armv71.$name = "CONFIG_MPU_REGION0"; mpu_armv71.size = 31; mpu_armv71.attributes = "Device"; mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv71.allowExecute = false; mpu_armv72.$name = "CONFIG_MPU_REGION1"; mpu_armv72.size = 15; mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv73.$name = "CONFIG_MPU_REGION2"; mpu_armv73.baseAddr = 0x41010000; mpu_armv73.size = 15; mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv74.$name = "CONFIG_MPU_REGION3"; mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv74.size = 18; mpu_armv74.allowExecute = false; mpu_armv74.baseAddr = 0x70080000; mpu_armv75.$name = "CONFIG_MPU_REGION4"; mpu_armv75.baseAddr = 0x80000000; mpu_armv75.size = 31; mpu_armv76.$name = "CONFIG_MPU_REGION5"; mpu_armv76.baseAddr = 0x70000000; mpu_armv76.size = 16; mpu_armv76.attributes = "Cached+Sharable"; mpu_armv76.allowExecute = false; mpu_armv77.$name = "CONFIG_MPU_REGION6"; mpu_armv77.baseAddr = 0x60100000; mpu_armv77.size = 19; mpu_armv78.$name = "CONFIG_MPU_REGION7"; mpu_armv78.baseAddr = 0xA5000000; mpu_armv78.size = 20; mpu_armv78.attributes = "NonCached"; mpu_armv78.allowExecute = false; mpu_armv79.$name = "CONFIG_MPU_REGION8"; mpu_armv79.baseAddr = 0xA0100000; mpu_armv79.size = 20; mpu_armv79.attributes = "NonCached"; mpu_armv79.allowExecute = false; mpu_armv710.$name = "CONFIG_MPU_REGION9"; mpu_armv710.baseAddr = 0xA0400000; mpu_armv710.size = 22; mpu_armv711.$name = "CONFIG_MPU_REGION10"; mpu_armv711.baseAddr = 0xA0000000; mpu_armv711.size = 20; mpu_armv711.attributes = "NonCached"; mpu_armv711.allowExecute = false; default_linker1.$name = "memory_configurator_default_linker0"; general1.$name = "CONFIG_GENERAL0"; general1.stack_size = 131072; general1.heap_size = 131072; general1.linker.$name = "TIARMCLANG0"; region1.$name = "MEMORY_REGION_CONFIGURATION0"; region1.memory_region.create(11); region1.memory_region[0].type = "TCMA_R5F"; region1.memory_region[0].$name = "R5F_VECS"; region1.memory_region[0].size = 0x40; region1.memory_region[0].auto = false; region1.memory_region[1].type = "TCMA_R5F"; region1.memory_region[1].$name = "R5F_TCMA"; region1.memory_region[1].size = 0x7FC0; region1.memory_region[2].type = "TCMB_R5F"; region1.memory_region[2].$name = "R5F_TCMB0"; region1.memory_region[2].size = 0x8000; region1.memory_region[3].$name = "NON_CACHE_MEM"; region1.memory_region[3].auto = false; region1.memory_region[3].manualStartAddress = 0x70060000; region1.memory_region[3].size = 0x8000; region1.memory_region[4].$name = "MSRAM"; region1.memory_region[4].auto = false; region1.memory_region[4].manualStartAddress = 0x70080000; region1.memory_region[4].size = 0x80000; region1.memory_region[5].type = "FLASH"; region1.memory_region[5].$name = "FLASH"; region1.memory_region[5].auto = false; region1.memory_region[5].manualStartAddress = 0x60100000; region1.memory_region[5].size = 0x80000; region1.memory_region[6].auto = false; region1.memory_region[6].type = "DDR_ALL"; region1.memory_region[6].$name = "DDR_USER_SHM_MEM"; region1.memory_region[6].manualStartAddress = 0xA5000000; region1.memory_region[6].size = 0x38000; region1.memory_region[6].isShared = true; region1.memory_region[6].shared_cores = ["r5fss1-0"]; region1.memory_region[7].auto = false; region1.memory_region[7].type = "DDR_ALL"; region1.memory_region[7].$name = "DDR_LOG_SHM_MEM"; region1.memory_region[7].manualStartAddress = 0xA5038000; region1.memory_region[7].size = 0x4000; region1.memory_region[7].isShared = true; region1.memory_region[7].shared_cores = ["r5fss1-0"]; region1.memory_region[8].auto = false; region1.memory_region[8].type = "DDR_ALL"; region1.memory_region[8].$name = "DDR_RTOS_NORTOS_IPC_SHM_MEM"; region1.memory_region[8].size = 0x8000; region1.memory_region[8].isShared = true; region1.memory_region[8].shared_cores = ["r5fss1-0"]; region1.memory_region[8].manualStartAddress = 0xA503C000; region1.memory_region[9].type = "DDR_ALL"; region1.memory_region[9].$name = "DDR0"; region1.memory_region[9].auto = false; region1.memory_region[9].manualStartAddress = 0xA0100000; region1.memory_region[9].size = 0x100000; region1.memory_region[10].type = "DDR_ALL"; region1.memory_region[10].$name = "DDR_1"; region1.memory_region[10].auto = false; region1.memory_region[10].manualStartAddress = 0xA0400000; region1.memory_region[10].size = 0x400000; section1.$name = "Vector Table"; section1.load_memory = "R5F_VECS"; section1.group = false; section1.output_section.create(1); section1.output_section[0].$name = ".vectors"; section1.output_section[0].palignment = true; section2.$name = "Text Segments"; section2.load_memory = "R5F_TCMA"; section2.output_section.create(5); section2.output_section[0].$name = ".text.hwi"; section2.output_section[0].palignment = true; section2.output_section[1].$name = ".text.cache"; section2.output_section[1].palignment = true; section2.output_section[2].$name = ".text.mpu"; section2.output_section[2].palignment = true; section2.output_section[3].$name = ".text.boot"; section2.output_section[3].palignment = true; section2.output_section[4].$name = ".text:abort"; section2.output_section[4].palignment = true; section3.$name = "Code and Read-Only Data"; section3.load_memory = "DDR_1"; section3.output_section.create(2); section3.output_section[0].$name = ".text"; section3.output_section[0].palignment = true; section3.output_section[1].$name = ".rodata"; section3.output_section[1].palignment = true; section4.$name = "Data Segment"; section4.load_memory = "DDR_1"; section4.output_section.create(1); section4.output_section[0].$name = ".data"; section4.output_section[0].palignment = true; section5.$name = "Memory Segments"; section5.load_memory = "DDR_1"; section5.output_section.create(3); section5.output_section[0].$name = ".bss"; section5.output_section[0].palignment = true; section5.output_section[0].output_sections_start = "__BSS_START"; section5.output_section[0].output_sections_end = "__BSS_END"; section5.output_section[1].$name = ".sysmem"; section5.output_section[1].palignment = true; section5.output_section[2].$name = ".stack"; section5.output_section[2].palignment = true; section6.$name = "Stack Segments"; section6.load_memory = "DDR_1"; section6.output_section.create(5); section6.output_section[0].$name = ".irqstack"; section6.output_section[0].output_sections_start = "__IRQ_STACK_START"; section6.output_section[0].output_sections_end = "__IRQ_STACK_END"; section6.output_section[0].input_section.create(1); section6.output_section[0].input_section[0].$name = ". = . + __IRQ_STACK_SIZE;"; section6.output_section[1].$name = ".fiqstack"; section6.output_section[1].output_sections_start = "__FIQ_STACK_START"; section6.output_section[1].output_sections_end = "__FIQ_STACK_END"; section6.output_section[1].input_section.create(1); section6.output_section[1].input_section[0].$name = ". = . + __FIQ_STACK_SIZE;"; section6.output_section[2].$name = ".svcstack"; section6.output_section[2].output_sections_start = "__SVC_STACK_START"; section6.output_section[2].output_sections_end = "__SVC_STACK_END"; section6.output_section[2].input_section.create(1); section6.output_section[2].input_section[0].$name = ". = . + __SVC_STACK_SIZE;"; section6.output_section[3].$name = ".abortstack"; section6.output_section[3].output_sections_start = "__ABORT_STACK_START"; section6.output_section[3].output_sections_end = "__ABORT_STACK_END"; section6.output_section[3].input_section.create(1); section6.output_section[3].input_section[0].$name = ". = . + __ABORT_STACK_SIZE;"; section6.output_section[4].$name = ".undefinedstack"; section6.output_section[4].output_sections_start = "__UNDEFINED_STACK_START"; section6.output_section[4].output_sections_end = "__UNDEFINED_STACK_END"; section6.output_section[4].input_section.create(1); section6.output_section[4].input_section[0].$name = ". = . + __UNDEFINED_STACK_SIZE;"; section7.$name = "Initialization and Exception Handling"; section7.load_memory = "DDR_1"; section7.output_section.create(3); section7.output_section[0].$name = ".ARM.exidx"; section7.output_section[0].palignment = true; section7.output_section[1].$name = ".init_array"; section7.output_section[1].palignment = true; section7.output_section[2].$name = ".fini_array"; section7.output_section[2].palignment = true; section8.$name = "User Shared Memory"; section8.type = "NOLOAD"; section8.group = false; section8.load_memory = "DDR_USER_SHM_MEM"; section8.output_section.create(1); section8.output_section[0].$name = ".bss.user_shared_mem"; section8.output_section[0].palignment = true; section9.$name = "Log Shared Memory"; section9.type = "NOLOAD"; section9.group = false; section9.load_memory = "DDR_LOG_SHM_MEM"; section9.output_section.create(1); section9.output_section[0].$name = ".bss.log_shared_mem"; section9.output_section[0].alignment = 0; section10.$name = "IPC Shared Memory"; section10.type = "NOLOAD"; section10.group = false; section10.load_memory = "DDR_RTOS_NORTOS_IPC_SHM_MEM"; section10.output_section.create(1); section10.output_section[0].$name = ".bss.ipc_vring_mem"; section10.output_section[0].alignment = 0; section11.$name = "Non Cacheable Memory"; section11.load_memory = "NON_CACHE_MEM"; section11.group = false; section11.type = "NOLOAD"; section11.output_section.create(1); section11.output_section[0].$name = ".bss.nocache"; section11.output_section[0].alignment = 0; section12.$name = "TCMB Stack Segments"; section12.load_memory = "DDR_1"; section12.output_section.create(1); section12.output_section[0].$name = ".threadstack"; section12.output_section[0].palignment = true; section13.$name = "Resource Table"; section13.load_memory = "DDR0"; section13.output_section.create(1); section13.output_section[0].$name = ".resource_table"; section13.output_section[0].palignment = true; section13.output_section[0].alignment = 4096; /** * These are the reserved peripherals and settings in this configuration */ const iPRU_ICSSG0_IEP1 = scripting.addPeripheral("PRU_ICSSG0_IEP"); iPRU_ICSSG0_IEP1.$name = "MyPRU_ICSSG0_IEP1"; /** * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to * re-solve from scratch. */ ethercat1.PRU_ICSSG1_MDIO.$suggestSolution = "PRU_ICSSG1_MDIO0"; ethercat1.PRU_ICSSG1_MDIO.MDC.$suggestSolution = "PRG1_MDIO0_MDC"; ethercat1.PRU_ICSSG1_MDIO.MDIO.$suggestSolution = "PRG1_MDIO0_MDIO"; ethercat1.PRU_ICSSG1_IEP.$suggestSolution = "PRU_ICSSG1_IEP0"; ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN0.$suggestSolution = "PRG1_PRU0_GPO18"; ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN1.$suggestSolution = "PRG1_PRU0_GPO7"; ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT0.$suggestSolution = "PRG1_PRU0_GPO19"; ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT1.$suggestSolution = "PRG1_PRU0_GPO17"; ethercat1.PRU_ICSSG1_MII_G_RT.$suggestSolution = "PRU_ICSSG1_MII_G_RT"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD0.$suggestSolution = "PRG1_PRU0_GPO0"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD1.$suggestSolution = "PRG1_PRU0_GPO1"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD2.$suggestSolution = "PRG1_PRU0_GPO2"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD3.$suggestSolution = "PRG1_PRU0_GPO3"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXDV.$suggestSolution = "PRG1_PRU0_GPO4"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXER.$suggestSolution = "PRG1_PRU0_GPO5"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXLINK.$suggestSolution = "PRG1_PRU0_GPO8"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD0.$suggestSolution = "PRG1_PRU0_GPO11"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD1.$suggestSolution = "PRG1_PRU0_GPO12"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD2.$suggestSolution = "PRG1_PRU0_GPO13"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD3.$suggestSolution = "PRG1_PRU0_GPO14"; ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXEN.$suggestSolution = "PRG1_PRU0_GPO15"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD0.$suggestSolution = "PRG1_PRU1_GPO0"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD1.$suggestSolution = "PRG1_PRU1_GPO1"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD2.$suggestSolution = "PRG1_PRU1_GPO2"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD3.$suggestSolution = "PRG1_PRU1_GPO3"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXDV.$suggestSolution = "PRG1_PRU1_GPO4"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXER.$suggestSolution = "PRG1_PRU1_GPO5"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXLINK.$suggestSolution = "PRG1_PRU1_GPO8"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD0.$suggestSolution = "PRG1_PRU1_GPO11"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD1.$suggestSolution = "PRG1_PRU1_GPO12"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD2.$suggestSolution = "PRG1_PRU1_GPO13"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD3.$suggestSolution = "PRG1_PRU1_GPO14"; ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXEN.$suggestSolution = "PRG1_PRU1_GPO15"; ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR0_CLK.$suggestSolution = "PRG1_PRU0_GPO6"; ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR1_CLK.$suggestSolution = "PRG1_PRU1_GPO6"; ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT0_CLK.$suggestSolution = "PRG1_PRU0_GPO16"; ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT1_CLK.$suggestSolution = "PRG1_PRU1_GPO16"; iPRU_ICSSG0_IEP1.$suggestSolution = "PRU_ICSSG0_IEP0"; iPRU_ICSSG0_IEP1.EDC_LATCH_IN0.$suggestSolution = "PRG0_PRU0_GPO18"; iPRU_ICSSG0_IEP1.EDC_LATCH_IN1.$suggestSolution = "PRG0_PRU0_GPO7"; iPRU_ICSSG0_IEP1.EDC_SYNC_OUT0.$suggestSolution = "PRG0_PRU0_GPO19"; iPRU_ICSSG0_IEP1.EDC_SYNC_OUT1.$suggestSolution = "PRG0_PRU0_GPO17"; iPRU_ICSSG0_IEP1.EDIO_DATA_IN_OUT28.$suggestSolution = "PRG0_PRU0_GPO9"; iPRU_ICSSG0_IEP1.EDIO_DATA_IN_OUT29.$suggestSolution = "PRG0_PRU0_GPO10"; iPRU_ICSSG0_IEP1.EDIO_DATA_IN_OUT30.$suggestSolution = "PRG0_PRU1_GPO9"; iPRU_ICSSG0_IEP1.EDIO_DATA_IN_OUT31.$suggestSolution = "PRG0_PRU1_GPO10"; iPRU_ICSSG0_IEP1.EDIO_OUTVALID.$suggestSolution = "SPI0_CS1";