cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sam_jaeschke
Adventurer
Adventurer
7,656 Views
Registered: ‎09-19-2014

SDK 2015.4 scripting mixing XSCT and HSI

I'm having trouble making a TCL script that automates creating a workspace in SDK 2015.4.

I don't know a whole lot about HSI or XSCT, because documentation for these seems a bit lean in areas.

I originally used just HSI commands:

 

hsi::open_hw_design $hw_path/system.hdf
hsi::create_sw_design -proc ps7_cortexa9_0 -os device_tree devicetree

hsi::set_property CONFIG.bootargs $boot_args [hsi::get_os]

hsi::generate_bsp -dir $devicetree_path

hsi::close_sw_design [hsi::current_sw_design]
hsi::close_hw_design [hsi::current_hw_design]

Then I thought it might be nice to create a proper workspace with the XSCT commands introduced in SDK 2015.1 (http://www.xilinx.com/support/answers/64200.html).

 

So I changed it to:

sdk set_workspace $workspace_name
sdk create_hw_project -name HW -hwspec $hw_path/system.hdf
sdk create_bsp_project -name devicetree -hwproject HW -proc ps7_cortexa9_0 -os device_tree

puts [hsi::get_property CONFIG.bootargs [hsi::get_os] ]
hsi::set_property CONFIG.bootargs $bootargs [hsi::get_os]
# Alternative 1: common::set_property CONFIG.bootargs $bootargs [hsi::get_os]
# Alternative 2: hsi::utils::set_os_parameter_value "bootargs" $boot_args
puts [hsi::get_property CONFIG.bootargs [hsi::get_os] ]

sdk build_project

The "sdk" commands work and create the workspace and BSP, but I can't use HSI commands to change the properties in the BSP.

The first get_property shows bootargs is blank.

The second get_property after setting shows that bootargs is set as expected.

However, when building and checking the output devicetree BSP files, the property is unchanged. The behaviour is the same for alternative line 1 and 2 as well.

I did notice from the XSCT support page (http://www.xilinx.com/support/answers/64200.html);

"XSCT Limitations:

  1. HSI and SDK are two different processes and SDK will not consume changes done in HSI BSP settings in 2015.1."

How do I change such settings with SDK/XSCT commands? The usefulness of these commands are greatly reduced without being able to change things.

0 Kudos
1 Reply
Anonymous
Not applicable
7,554 Views

you need to top open the sw design before you can set the property. I took your use case and I created a script to show you how to achieve what you are trying to do. See the attached xsct_dt_demo.zip (and script content below)

 

To test, unxip the zip, and source the script.tcl, and I create a run_demo proc for you to run and test. This will create the dts with the bootargs supplied.

 

proc build_dts {hdf bootargs} {
 sdk set_workspace workspace
 sdk set_user_repo_path [pwd]
 sdk create_hw_project -name HW -hwspec $hdf
 sdk create_bsp_project -name devicetree -hwproject HW -proc ps7_cortexa9_0 -os device_tree
 hsi::open_sw_design workspace/devicetree/system.mss
 hsi::set_property CONFIG.bootargs $bootargs [hsi::get_os]
 hsi::generate_bsp -sw_mss workspace/devicetree/system.mss -dir [file dirname workspace/devicetree/system.mss]
 hsi::close_sw_design [hsi::current_sw_design]
 sdk build_project
}

proc run_demo {} {
 build_dts design_1_wrapper.hdf {console=ttyPS0,115200 earlyprintk uio_pdrv_genirq.of_id=generic-uio}
}

0 Kudos