Thread (1 message) 1 message, 1 author, 8d ago

Re: zl3073x flash: utility "family" register — 0x7C (driver) vs 0x7D (Microchip ZLS30733 reference)?

From: Ivan Vecera <ivecera@redhat.com>
Date: 2026-07-08 18:09:30

Hi Mike,

On 7/8/26 7:08 PM, Mike Frandsen wrote:
Hi Ivan,

While porting the zl3073x flash sequence to a small userspace tool for the
ZL80732 (Azurite), we noticed a discrepancy between the mainline driver and
Microchip's own reference flasher about which register holds the flash
utility's "family" byte:

- drivers/dpll/zl3073x/flash.c (as of 01e0e8b6a2d7) reads the family from
   register 0x7C and checks for 0x21;
- Microchip's ZLS30733 reference code (shipped in their AZFB firmware
   bundle) reads the family from 0x7D (masking the low 7 bits) and treats
   0x7C as a different field.
In the reference code there is a confusion... There are the following
constants defined:

static const Uint32T HOST_REG_VERSION = 0x007C;
static const Uint32T HOST_REG_FAMILY = 0x007D;

These constants are nowhere referenced and the code uses hardcoded
values:

     utilityHash = HostRegister_read(pContext, 0x78, 4);
     utilityFam = HostRegister_read(pContext, 0x7c, 1);
     utilityRel = HostRegister_read(pContext, 0x7d, 1);
     ...
     if (utilityFam != 0x21)
     {
           status = ZL303XX_INVALID_OPERATION;
           ...
     }

So the family code reported by the utility at register address 0x7c and
should contain the value of 0x21.
We have not yet confirmed on hardware which location reports 0x21 after
the utility loads (our port defensively accepts either). Do you know
which location is authoritative per Microchip's documentation — and if it
is 0x7D, whether flash.c's check works today by coincidence of the utility
images it has been used with?
There is no official documentation for this :-( but according my test,
all known utility versions reports 0x21 in reg 0x7c.

Thanks,
Ivan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help