Solved my own problem. Here are the details for those that need to know:
The example project files for downloadable applications are all setup for the 512KB parts.
The parts of RAM that are used by these apps, where the definition is and what to change for 256K parts is:
CODE: start 0x40003000 defined in ...firmware\common\fx3.ld stays the same
DATA: start 0x40030000 defined in ...firmware\common\fx3.ld changes to 0x40020000 (2 places)
HEAP: start 0x40038000 defined in cyfxtx.c in the project directory changes to 0x40028000
A define CY_U3P_SYS_MEM_TOP sets the top of RAM and needs to change from 0x40078000 to 0x40040000.
DMA BUFFERS location and size are automatically calcluated from the above settings based on what is left over.
These changes give the following size for the various sections:
CODE length 0x1D000 (116K)
DATA length 0x8000 (32K)
HEAP length 0x8000 (32K)
DMA BUFFERs length 0x10000 (64K)
Now your only job is to make everything fit inside those limits or move them around again to make it fit!
Thanks for updating this thread after your problem is solved.
Now we are having issues with the newest 1.2.2 boot firmware on this part.
Our tests conclude that the library cyfx3_boot.a expects the part to be a 512K part.
Has anyone gotten the 1.2.2 boot_fw to enumerate on the CYUSB3011 part? If so, how?
Could you have just changes the code size in the fx3.ld file, the loader script would have taken the extra code size you wanted from the dma buffer area.
Anyone facing an issue regarding the firmware for part CYUSB3011, please create a tech support case.
The SDK provided on net (www.cypress.com) is for FX3 part witn 512KB RAM ( CYUSB3014 part ). Files 'FX3.ld' and 'cyfxtx.c' from firmware have to be modified to make the firmware run on CYUSB3011 part.