On Tue, Jan 25, 2011 at 19:56, Aaron Williams <aaron.willi...@caviumnetworks.com> wrote: > I ran into a problem with the Spansion S29GL064N flash chip in that it returns > a manufacturer ID of 0 and it also requires the AMD geometry fixup. > > Additionally, I modified a few print statements to use KiB/MiB instead of > kB/MB. > > -Aaron Williams > > diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c > index dd394a8..105eb3f 100644 > --- a/drivers/mtd/cfi_flash.c > +++ b/drivers/mtd/cfi_flash.c > @@ -1162,10 +1162,10 @@ void flash_print_info (flash_info_t * info) > info->name, > (info->portwidth << 3), (info->chipwidth << 3)); > if (info->size < 1024*1024) > - printf (" Size: %ld kB in %d Sectors\n", > + printf (" Size: %ld KiB in %d Sectors\n", > info->size >> 10, info->sector_count); > else > - printf (" Size: %ld MB in %d Sectors\n", > + printf (" Size: %ld MiB in %d Sectors\n", > info->size >> 20, info->sector_count); > printf (" "); > switch (info->vendor) { > @@ -1924,6 +1924,7 @@ ulong flash_get_size (phys_addr_t base, int banknum) > > /* Do manufacturer-specific fixups */ > switch (info->manufacturer_id) { > + case 0x0000: > case 0x0001: > flash_fixup_amd(info, &qry); > break;
I think something is wrong here. You shouldn't get a manufacturer ID of 0000 from a Spansion part. cmdset_amd_read_jedec_ids() should be where it's coming from, reading the datasheet is pretty clear that these parts return an 0001 or 01 depending on the BYTE# pin. I've used other parts in the series GL128N, GL256N, GL256P that have the same command set and not seen this. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot