Hello @ankitv ,
Regarding the polarity inversion for the clock, one other thing you could try is the "SpiShiftClockIdleLevel" setting inside SpiDriver. This allows you to set the Clock level outside of the transmission. The level should be the same between the connected devices, as to avoid errors.
In the same section, there's a setting for "SpiCsSelection" that defines the active polarity of Chip Select, in case you want to change that as well.
I'm not aware whether using the Output Inversion option, instead of the SPI peripheral settings, leads to the same result or not, but I recommend keeping the alternatives in mind.

From what I can tell from your oscilloscope picture, you are using SpiDataWidth set to 8 and sending 8 bits of data twice, leading to a transfer of 16 bits in the same SPI message. And judging from the master out signal, I think the data is received as [128 8], which does not look normal since the bytes should not be reordered.
Regarding the FreeMASTER question, I managed to find a solution. In FreeMASTER, the data from the Data Store Memory (the array) has its bits concatenated into a 16 bit value, but not before reordering the bytes, due to endianness.
A solution to this would be to use the array's indexes to see the values in the order they are stored in Simulink.
The second solution would be to use a few simulink blocks to invert the bytes, which will allow the data in FreeMASTER to be displayed as initially declared.
Below you can see how you can access the data using indexes, and also that outputting a different variable (spi_data_reversed), that contains the reversed bytes shows the value you are expecting.

To obtain the reversed value, you will need another Data Store Memory and the Byte Unpack, Byte Reversal and the Byte Pack blocks.

They have to be configured as follows:
The Data Store Memory that will hold the reversed data has to be set up similarly to the original Data Store Memory block, same array initialization, same data type.
Byte Unpack receives 2 uint8 values and transforms them into a uint16 value.

The Byte Reversal block only needs to have the number of inputs configured. This changes the order of the bytes in the variable.
For example
11001000 01110011 -> Byte Reversal -> 01110011 11001000

Byte Pack has to be configured to accept uint16 as input.

After that, you will be able to see the initial bytes in FreeMASTER after adding the variable to the Variable Watch section.
This newly obtained Data Store Read variable can also be used as an input for the SPI, sending the bytes in a different order.
Regards,
Robert V