I think I know this one.
MCF5329 Reference manual:
17.3.2 Chip-Select Mask Registers (CSMR0 – CSMR5)
Valid bit. Indicates whether the corresponding CSAR, CSMR,
and CSCR contents are valid. Programmed chip-selects do not
assert until V bit is set (except for FB_CS0, which acts
as the global chip-select). Reset clears each CSMRn[V].
Note: At reset, no chip-select other than FB_CS0 can be
used until the CSMR0[V] is set. Afterward, FB_CS[5:0]
functions as programmed.
Your code (and your programming from the debugger) should reprogram CSAR0 first and CSMR0 next. Once the Valid bit has been set in CSMR0 it should start working normally and not overlap the other ones.
Also detailed later as:
17.4 Functional Description
17.4.1 Chip-Select Operation
FB_CS0 is a global chip-select after reset and provides external
boot memory capability.
17.4.1.3 Global Chip-Select Operation
FB_CS0, the global (boot) chip-select, supports external boot memory
accesses before system initialization. Its operation differs from
other external chip-select outputs after system reset.
After system reset, FB_CS0 is asserted for every external access.
No other chip-select can be used until the valid bit, CSMR0[V],
is set; at this point FB_CS0 functions as configured. After this,
FB_CS[5:1] can be used as well. At reset, the logic levels on the
FB_D[4:3] signals determine global chip-select port size.
When you have a problem like this it is worth reading the whole chapter for the module in the Reference manual to find paragraphs like the above.
You might also have found the following similar problems in this forum with a search:
https://community.freescale.com/message/19402#19402
https://community.freescale.com/message/44920#44920
And about 20 others matching.
Tom