How similar are the OnCE implementations for various FreeScale chips?

I get the impression that the answer is "not very".  But if that's not
true, then I wonder how much OnCE stuff could be shared between drivers
for different chips.  Once a few more OnCE-equipped chips merge into
the tree, that could matter ... assuming it happens!

Also, how does this stack up feature-wise to the FreeScale code?
We've recently found that FreeScale is shipping a modified version
of OpenOCD ... which would be good, if they weren't violating the
GPL to do so (booo!) by refusing to distribute their modifications.


On Saturday 05 December 2009, Mathias K. wrote:
> +int dsp563xx_read_memory_p(struct target *target, uint32_t address, uint32_t 
> size, uint32_t count,
> uint8_t *buffer);
> +int dsp563xx_write_memory_p(struct target *target, uint32_t address, 
> uint32_t size, uint32_t count,
> uint8_t *buffer);
> +

Please resubmit this one with lines sanely wrapped (before
column 80) in the original patch ... and thus, not in
your email!  :)

And for that matter, you shouldn't need most of these
forward declarations; just move the target_type struct
to the end of the file.

Plus, don't export those functions needlessly ... those
should evidently be static, or they should have been
in one of the headers.


> +struct dsp563xx_core_reg
> dsp563xx_core_reg_list_arch_info[DSP563XX_NUMCOREREGS] =

Wouldn't it be more robust to use an unsized array here, and
then use ARRAY_SIZE(dsp563xx_core_reg_list_arch_info) later?
And this should be "static const" ... no need to export the
table elsewhere, or make it writable.


> +       {0, 24, ASM_REG_R_R0, NULL, NULL},

And rather than have parallel arrays for the register names
and this initializer stuff ... it *would* be better to have
a single array of register template data, ensuring the two
arrays can't get out of sync.  And not having those NULL
pointers would save space.


> +       /* get pointers to arch-specific information */
> +       struct dsp563xx_common *dsp563xx = target->arch_info;

Please wrap this in a target_to_dsp563xx() macro ... and
I'd like to see the "_common" suffix die too.


> +/*
> +       .get_gdb_reg_list = dsp563xx_get_gdb_reg_list,

What's the story on GCC and GDB support for these processors?

I'm suspecting that if there is no GDB support, we may be missing
a clean way to prevent opening a GDB connection for this CPU...


> +
> +       .write_memory = dsp563xx_write_memory,
> +       .bulk_write_memory = dsp563xx_bulk_write_memory,
> +       .checksum_memory = dsp563xx_checksum_memory,
> +       .blank_check_memory = dsp563xx_blank_check_memory,
> +
> +       .run_algorithm = dsp563xx_run_algorithm,
> +
> +       .add_breakpoint = dsp563xx_add_breakpoint,
> +       .remove_breakpoint = dsp563xx_remove_breakpoint,
> +       .add_watchpoint = dsp563xx_add_watchpoint,
> +       .remove_watchpoint = dsp563xx_remove_watchpoint,
> +*/

Don't add commented-out code like that.  


... that's all the patch-review time I have just now.  Glad
to see support for another processor!  Even though, as with
almost all initial patches, it still needs some work.  ;)

- Dave
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to