Geert Stappers:
> On Sat, Aug 03, 2019 at 12:38:59PM +0200, [email protected] wrote:
> > When not all bsdl files are present, some parts get the wrong part name.
...
> > ===================
> >
> > When the CortexM3 file is missing:
> >
> > Device Id: 00111011101000000000010001110111 (0x3BA00477)
> > Unknown manufacturer! (01000111011)
> > (/usr/local/share/urjtag/MANUFACTURERS)
> > Device Id: 00000110010000100000000001000001 (0x06420041)
> > Filename: ./STM32F1_Low_Med_density_value_LQFP48.bsd
> > jtag> print chain
> > No. Manufacturer Part Stepping Instruction
> > Register
> > -------------------------------------------------------------------------------------------------------------------
> > 0 STM32F1_Low_Med_dens (none)
> > (none)
> > * 1 STM32F1_Low_Med_dens BYPASS
> > BYPASS
...
> The subject line mentions "bug", what is the bug?
The bug is that part #0 get the part name STM32F1_Low_Med_dens, when
the program in fact didn't find a part name for this part. So the line
for part #0 above, should have an empty "Part" cell.
The bug is due to that urj_vhdl_set_entity() (src/bsdl/vhdl_bison.y
line 916..926) saves the entity name in jtag_ctrl.part->part (that is
the string that shows up in the "Part" column), even though we don't
know at that stage in the parser if "this" file matches the idcode
or not.
The entity is the first non-comment thing that shows up in a bsdl file,
e.g.:
$ egrep -v '^\s?--' STM32F1_Low_Med_density_value_LQFP48.bsd | head
entity STM32F1_Low_Med_density_value_LQFP48 is
generic (PHYSICAL_PIN_MAP: string:= "LQFP48_PACKAGE");
port (
BOOT0 : in bit;
JTDI : in bit;
Regards,
/Karl Hammar
_______________________________________________
UrJTAG-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/urjtag-development