Hi David,

you somehow manage to find really evil chips.

On 31.08.2010 23:19, David Borg wrote:
> I was adding support for the AT49F040 parallel flash chip, but have
> some questions. This chip has a  boot block which once locked cannot
> be erased / rewritten. 

Yes, permanent lockdown sucks.


> Should I add erase functions for both cases?
>   

I'd say yes, but currently flashrom can't specify erase functions which
work only for a part of the chip.
Maybe add a comment to flashchips.c that there is an
erase-without-bootblock which only applies to chips with locked bootblock.


> Currently the erase function handles unlocked chips only. 

There is the possibility of adding a printlock function which would be
extremely hopeful here. While it won't solve the lockdown problem, it
can at least make users aware of the lockdown.


> In addition,
> the datasheet specifies no command timings, is the timing something I
> can infer from the read / program cycle characteristics tables?
>   

No. I'd say this is a chip with zero delay (that is, zero additional delay).


> Signed-off-by: David Borg <[email protected]>
>
> datasheet: 
> http://pdf1.alldatasheet.com/datasheet-pdf/view/56184/ATMEL/AT49F040.html
>
> Index: flashchips.c
> ===================================================================
> --- flashchips.c      (revision 1145)
> +++ flashchips.c      (working copy)
> @@ -1985,6 +1985,29 @@
>       },
>
>       {
> +             .vendor         = "Atmel",
> +             .name           = "AT49F040",
> +             .bustype        = CHIP_BUSTYPE_PARALLEL,
> +             .manufacture_id = ATMEL_ID,
> +             .model_id       = AT_49F040,
> +             .total_size     = 512,
> +             .page_size      = 512,
> +             .feature_bits   = FEATURE_EITHER_RESET | FEATURE_ADDR_FULL,
> +             .tested         = TEST_UNTESTED,
> +             .probe          = probe_jedec,
> +             .probe_timing   = TIMING_ZERO,  /* Datasheet has no timing info 
> specified */
> +             .block_erasers  =
> +             {
> +                     {
> +                             .eraseblocks = { {512 * 1024, 1} },
> +                             .block_erase = erase_chip_block_jedec,
> +                     }
>   

Comment about the erase-without-bootblock goes here.


> +             },
> +             .write          = write_jedec_1,
> +             .read           = read_memmapped,
> +     },
> +
> +     {
>               .vendor         = "EMST",
>               .name           = "F49B002UA",
>               .bustype        = CHIP_BUSTYPE_PARALLEL,
> Index: flashchips.h
> ===================================================================
> --- flashchips.h      (revision 1145)
> +++ flashchips.h      (working copy)
> @@ -174,6 +174,7 @@
>  #define AT_49F020            0x0B
>  #define AT_49F002N           0x07    /* for AT49F002(N)  */
>  #define AT_49F002NT          0x08    /* for AT49F002(N)T */
> +#define AT_49F040            0x13
>   

I think this part no longer applies to the tree.

>  #define CATALYST_ID          0x31    /* Catalyst */
>   

Looks good, we should get this merged with the bootblock lock printing
and a comment in flashchips.c. Will ack after that change.

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to