Saying that manufacturer id 0x00 is an "unknown SPI chip"
just confuses people with external programmers without a
proper connection to a chip and makes them think flashrom
doesnt support the chip they're trying to use.
Also causes unnecessary -c requirement with a multiple-slot
(FWH/LPC and SPI) serprog device i was testing.
Signed-off-by: Urja Rannikko <urjaman(a)gmail.com>
---
spi25.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/spi25.c b/spi25.c
index 673bdf5..af4b6db 100644
--- a/spi25.c
+++ b/spi25.c
@@ -156,7 +156,7 @@ static int probe_spi_rdid_generic(struct flashctx *flash, int bytes)
return 1;
/* Test if there is any vendor ID. */
- if (GENERIC_MANUF_ID == chip->manufacture_id && id1 != 0xff)
+ if (GENERIC_MANUF_ID == chip->manufacture_id && id1 != 0xff && id1 != 0x00)
return 1;
return 0;
@@ -212,7 +212,7 @@ int probe_spi_rems(struct flashctx *flash)
return 1;
/* Test if there is any vendor ID. */
- if (GENERIC_MANUF_ID == chip->manufacture_id && id1 != 0xff)
+ if (GENERIC_MANUF_ID == chip->manufacture_id && id1 != 0xff && id1 != 0x00)
return 1;
return 0;
--
2.3.1
Hello,
this chip is marked as "untested" in write mode.
So here are my test-results:
Erase in d8-Mode is not working (see log).
But i think it's the already known "serprog bug".
Erase in c7-mode is ok.
Write is working in both modes.
But i don't know why in c7-mode the log shows:
0x000000-0x007fff:W, 0x008000-0x00ffff:S, 0x010000-0x017fff:S,
0x018000-0x01ffff:S
I have created the test-file with dd and urandom. The file (131072 byte)
is full with data.
So it should write (W) not only to 0x007fff. Strange!
If you need more logs or infos, let me know.
BTW: The chip is labeled "25P10VP". I see nothing with "-A".
And the chip was found on a "Maxtor" hard disk drive.
Hello!
I have Gigabyte H55M-S2H motherboard with 2 MX25L6465EM2I SPI flash chips, but now flashrom asks me to choose from 3 different chips:
Multiple flash chip definitions match the detected chip(s): "MX25L6405(D)", "MX25L6406E/MX25L6436E", "MX25L6445E/MX25L6473E"
Please specify which chip definition to use with the -c <chipname> option.
I find chip datasheet where: http://www.datasheetarchive.com/dl/Datasheets-IS78/DSAH00369299.pdf
In the table 6 (ID Definitions) of this datasheet we can see RDID=0x2017
1. Is it possible to use one of supposed chip or a new one?
2. Can you add comment about MX25L6465 in the flashchips.h after MX25L6405 or new definition in flashchips.c ?
3. Is it possible to determine flash chip by RDID and RES (Read Electronic Signature)?
--
Best regards Alexander.V Trubitsyn
Hi Stefan,
thank you very much for the prompt reply!
Honestly I don't understand all you wrote although I'll do my best in order to do it.
In the meantime I'm digging the matter having find some answers to my questions, but seems to me too complicated for me, out of my capabilities.
OK, I can turn off libusb, but then the program that I'll get will be working?
I guess it will be.
Now I understand why nobody provide Windows version of flashrom each time there is an upgrade.
Only Linux version that it is more easily obtainable.
You wrote about cross-compiling flashrom for Windows, maybe that is more easy than compiling on a Windows system, which could be one solution.
By reading http://flashrom.org/Windows page seems to me cross-compiling on Linux for Windows is more complicated though.
If it isn't too much trouble could you please describe how do the job?
I mean a description of your MinGW installation and the exact commands issued.
Instructions on the site say
$ cd flashrom
$ make
are enough in order to compile under Windows.
Instead on Linux for Windows you need
$ make CC=i586-mingw32msvc-gcc CPPFLAGS="-I.../libusb-headers/ -I.../libftdi-headers/" LDFLAGS="-L.../libusb-static/ -L.../libftdi-static/"
If it could be possible to see a real life example I think it would be of much help.
Another thing.
In your example you compile with "i686" option while in the instructions on the flashrom Windows site it's used the "i586".
Compiling by
$ cd flashrom
$ make
there isn't any of the two options, so which option will be used in order to compile?
My purpose is to get a flahrom executable which will be able to run on any generic Windows machine.
Snapshots on http://ra.openbios.org/~idwer/flashrom/mingw/ I guess have been compiled in that way, apart from the mingw32-w64-flashrom-r1781.exe of course.
Thanks again Stefan,
Mit Freundlichen Grüßen,
Topolinux
Il Lunedì 16 Marzo 2015 12:00, "flashrom-request(a)flashrom.org" <flashrom-request(a)flashrom.org> ha scritto:
Send flashrom mailing list submissions to
flashrom(a)flashrom.org
To subscribe or unsubscribe via the World Wide Web, visit
http://www.flashrom.org/mailman/listinfo/flashrom
or, via email, send a message with subject or body 'help' to
flashrom-request(a)flashrom.org
You can reach the person managing the list at
flashrom-owner(a)flashrom.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of flashrom digest..."
Today's Topics:
1. Re: Compile under MinGW32, how? (Stefan Tauner)
----------------------------------------------------------------------
Message: 1
Date: Sun, 15 Mar 2015 23:14:51 +0100
From: Stefan Tauner <stefan.tauner(a)alumni.tuwien.ac.at>
To: Topolinux <mailing_l1st(a)yahoo.it>
Cc: flashrom(a)flashrom.org
Subject: Re: [flashrom] Compile under MinGW32, how?
Message-ID: <201503152214.t2FMEqKP009468(a)mail2.student.tuwien.ac.at>
Content-Type: text/plain; charset=UTF-8
On Sun, 15 Mar 2015 20:41:22 +0000 (UTC)
Topolinux <mailing_l1st(a)yahoo.it> wrote:
> Hi guys,
> sorry to disturb you.
> Based on instructions I saw here:
> http://flashrom.org/Windows
> I installed MinGW32 on my Windows XP machine in order to try to compile the latest flashrom release which I need.
> Sadly I'm unable to compile anything because I get the errors as follow:
>
> **************************************************************************************
> $ make
> Files don't seem to be under version control. Replacing all version templates wi
> th 0.9.8-r1888.
> Package libftdi was not found in the pkg-config search path.
> Perhaps you should add the directory containing `libftdi.pc'
> to the PKG_CONFIG_PATH environment variable
> No package 'libftdi' found
> Package libusb was not found in the pkg-config search path.
> Perhaps you should add the directory containing `libusb.pc'
> to the PKG_CONFIG_PATH environment variable
> No package 'libusb' found
> Checking for a C compiler... found.
> Target arch is x86
> Target OS is MinGW
> Checking for libusb-0.1/libusb-compat headers... .test.c:3:23: fatal error: lusb
> 0_usb.h: No such file or directory
> ?#include <lusb0_usb.h>
> ?????????????????????? ^
> compilation terminated.
> not found.
>
> Please install libusb-0.1 headers or libusb-compat headers.
> See README for more information.
>
> make: *** [hwlibs] Error 1
> **************************************************************************************
>
> A weird thing is that I had to manually install the pkg-config package, that isn't listed in the instructions.
> Anyway I'm pretty sure I have all the files in the right places and I guess my fault is due the fact I'm not able to figure how and where edit the PKG_CONFIG_PATH that indeed I haven't in nowhere.
> I wonder where I can see an example of PKG_CONFIG_PATH, any suggestions?
> Thanks.
> I need compile flashrom for Bus Pirate, so is there any mandatory flag that have to be set?
> Honestly I didn't know it was so complicated to compile for Windows, by read of the instructions it seemed to me pretty easy, but it isn't.
> Is perhaps there any documentations that explain clearly how do the job?
> I think that a description of the folders and the files inside them can be enough in order to understand, sadly I have seen nothing like that.
> Last but not least.
> Maybe I'm wrong, though seems to me that the way as MinGW is installed allows to move the installation easily, almost like an portable application.
> Am I wrong?
> If I'm not wrong this means that should be possible achieve a running environment if someone would provide one.
> Anyway I'm pretty sure that being be able to see a working installation would help to settle the matter.
> Thanks for reading!
The documentation is not up to date. flashrom requires libusb now at
build time because of the inclusion of a libusb-based programmer. You
can turn it off (and thus enable compilation without libusb) by adding
CONFIG_PICKIT2_SPI=no to the command line (for now).
I am only cross-compiling flashrom for windows so I am not sure if that
helps you, but there I am using the newly introduced LIBS_BASE make
parameter to indicate the path containing the include and lib
directories with the respective header and library files like so:
make LIBS_BASE=/home/flashrom/cross-libs/i686-w64-mingw32
The layout within that directory should look like the common unix
layout, i.e. /lib containing *.a, /bin with *.dll and /include with *.h
files.
The PKG_CONFIG_PATH message can be ignored usually. The default will
probably work anyway.
--
Kind regards/Mit freundlichen Gr??en, Stefan Tauner
------------------------------
Subject: Digest Footer
_______________________________________________
flashrom mailing list
flashrom(a)flashrom.org
http://www.flashrom.org/mailman/listinfo/flashrom
------------------------------
End of flashrom Digest, Vol 70, Issue 28
****************************************
On Mon, 9 Mar 2015 10:18:36 +1000
Roman Titov <titovroman(a)gmail.com> wrote:
Hello Roman!
> Well, I think this could be the result of my inexperience with svn
> (and git-svn).
>
> So, here's my steps:
> 1. git svn clone -rHEAD (r1887, to be exact) flashrom-trunk (I have an
> error, when I'm trying to make full git svn clone, looks like git bug
> :/)
> 2. *code*
> 3. make 2 local commits
> 4. git format-patch, and it throw me 2 patches for 2 latest commits
> not over current origin (and I think thats is the reason)
> 5. send patches to mailing list
That's perfectly fine and how I work too (well, I use git send-email
for 4 and 5).
> My suggestions would be:
> 1. shallow copying broke smth (idea, that git svn could bond git stuff
> to full svn history stuff came to me just right now)
> 2. formating 2 patches broke smth
> 3. both?
The problem is/was the last hunk. I guess you have opened the patch
file in an editor that removes white space at the end of lines.
The patch application does not seem to care but git-am does.
Anyway, here is a list of things I have noticed in the patch.
> From 3612049b7f6b2283ae4e593e66f369144b9e997b Mon Sep 17 00:00:00 2001
> From: Roman Titov <titovroman(a)gmail.com>
> Date: Fri, 6 Mar 2015 17:18:43 +1000
> Subject: [PATCH 1/2] flashchips: new GigaDevice chips (GD25LQ40, GD25LQ80,
> GD25LQ16, GD25LQ64(B), GD25LQ128)
>
> Signed-off-by: Roman Titov <titovroman(a)gmail.com>
>
> ---
> flashchips.c | 197 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 196 insertions(+), 1 deletion(-)
>
> diff --git a/flashchips.c b/flashchips.c
> index 8b5d1ec..31541ea 100644
> --- a/flashchips.c
> +++ b/flashchips.c
> @@ -5466,6 +5466,123 @@ const struct flashchip flashchips[] = {
>
> {
> .vendor = "GigaDevice",
> + .name = "GD25LQ40",
> + .bustype = BUS_SPI,
> + .manufacture_id = GIGADEVICE_ID,
> + .model_id = GIGADEVICE_GD25LQ40,
> + .total_size = 512,
> + .page_size = 256,
> + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */
> + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
> + .tested = TEST_OK_PREW,
According to the line above and the respective ones later,
you had all that hardware at hand and tested it successfully.
Correct me if I am wrong, but I don't think that's the case ;)
> + .probe = probe_spi_rdid,
> + .probe_timing = TIMING_ZERO,
> + .block_erasers =
> + {
> + {
> + .eraseblocks = { {4 * 1024, 128} },
> + .block_erase = spi_block_erase_20,
> + }, {
> + .eraseblocks = { {32 * 1024, 16} },
> + .block_erase = spi_block_erase_52,
> + }, {
> + .eraseblocks = { {64 * 1024, 8} },
> + .block_erase = spi_block_erase_d8,
> + }, {
> + .eraseblocks = { {512 * 1024, 1} },
> + .block_erase = spi_block_erase_60,
> + }, {
> + .eraseblocks = { {512 * 1024, 1} },
> + .block_erase = spi_block_erase_c7,
> + }
> + },
> + .printlock = spi_prettyprint_status_register_bp4_srwd,
> + .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */
> + .write = spi_chip_write_256,
> + .read = spi_chip_read,
The chips support multiple read and opcodes (unlike flashrom yet!).
We note that at least for new chips by adding a comment like this:
/* Fast read (0x0B) and multi I/O supported */
(cf. with similar comments throughout the file).
> + .voltage = {1700, 1950},
It should actually be 1695, 1950 instead.
This is also an error in the existing definition of the GD25LQ32.
Apart from these repeated copy & paste errors it looks good.
Please fix them so that I can commit your first flashrom
contribution, thanks!
Have you noticed any differences between the GD25LQ64 and its B
revision?
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
I know C coding and I also know some thing or two about hardware. But
tip on how to add this specific device to flashrom are welcome.
On 18-3-2015 22:42, Idwer Vollering wrote:
> 2015-03-18 22:24 GMT+01:00 Roy Krikke <roykrikke(a)gmail.com>:
>> Hello,
>>
>> I have compiled the latest version of flashrom (flashrom v0.9.8-r1887) and
>> hoped to flash my AT25080. But without suc6.
> flashrom does not (yet) support this chip. We like patches :)
>
>> I have connected a new AT25080 to a Raspberry Pi and hoped to flash the
>> device with in system programming (ISP) mode.
>>
>> First erasing the device with sudo flashrom -E -V -p
>> linux_spi:dev=/dev/spidev0.0
> The command line command looks just fine, but flashrom doesn't support
> this particular flash chip,
>
>> No luke :(
>>
>> snapshot of flashrom below:
>> Probing for Generic unknown SPI chip (RDID), 0 kB: RDID byte 0 parity
>> violation. probe_spi_rdid_generic: id1 0x00, id2 0x00
>> Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI) on linux_spi.
>> Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0x0,
>> id2 0x0
>> Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI).
>> ===
>> This flash part has status NOT WORKING for operations: PROBE READ ERASE
>> WRITE
>> The test status of this chip may have been updated in the latest development
>> version of flashrom. If you are running the latest development version,
>> please email a report to flashrom(a)flashrom.org if any of the above
>> operations
>> work correctly for you with this flash chip. Please include the flashrom log
>> file for all operations you tested (see the man page for details), and
>> mention
>> which mainboard or programmer you tested in the subject line.
>> Thanks for your help!
>> Read is not working on this chip. Aborting.
>>
>> Any kind of help is welcome, tips on how best to proceed!
>>
>>
>> Thank you very much,
>>
>> Roy
>>
>>
>>
>> My previous post
>> --------------------------------------------------------------------------------
>> Hello,
>>
>> Is there support for the AT25080B device from ATMEL? It is not in the
>> supported device list.
>>
>> http://www.atmel.com/Images/Atmel-5228-SEEPROM-AT25080B-160B-Datasheet.pdf
>>
>> Need to flash the AT25080B which is connected to a 82574L from intel. There
>> are two 82574L with two AT25080B on my board. If I read from the first
>> AT25080B the data is fine and I can also flash is. But the second one is not
>> working at all.
>>
>> I compared/checked the SPI communication of the first one with the second
>> one. This looks the same. So I thought maybe the second AT25080B is broken.
>> After replacing it, still the same result.
>>
>> I hope to get is to work if I could flash is not by the SPI interface of the
>> 82574L, but by an in system programming (ISP). Example shown in
>> http://satxhackers.org/wp/hack-content/uploads/2013/04/rPI_flashrom.pdf
>>
>> Any kind of help is welcome.
>>
>> Thanks,
>>
>> Roy
>>
>>
>>
>>
>> _______________________________________________
>> flashrom mailing list
>> flashrom(a)flashrom.org
>> http://www.flashrom.org/mailman/listinfo/flashrom
> _______________________________________________
> flashrom mailing list
> flashrom(a)flashrom.org
> http://www.flashrom.org/mailman/listinfo/flashrom
Hi,
I've used flashrom with pickit2 in past.
I'm a newbie but I'd like to add support for this MCUs by myself.
On Internet exist some parallel programmer but I want to program a 78k0s
flash my with the uart protocol.
We're can I start from?
It requires some vpp pulses to enable the uart programming mode.
Thabk you for help
if you want me to run additional tests on this new lenovo g50-70 laptop
mail me privately. got some developer experience. HTH
===
flashrom v0.9.8-r1887 on Linux 3.19.0-10-generic (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.2.1, GCC 4.9.2, little endian
Command line (3 args): ./flashrom -V -p internal
Calibrating delay loop... OS timer resolution is 1 usecs, 3072M loops per
second, 10 myus = 10 us, 100 myus = 107 us, 1000 myus = 1000 us, 10000 myus
= 10406 us, 4 myus = 6 us, OK.
Initializing internal programmer
No coreboot table found.
Using Internal DMI decoder.
DMI string chassis-type: "Notebook"
Laptop detected via DMI.
DMI string system-manufacturer: "LENOVO"
DMI string system-product-name: "20351"
DMI string system-version: "Lenovo G50-70"
DMI string baseboard-manufacturer: "LENOVO"
DMI string baseboard-product-name: "Lancer 5A2"
DMI string baseboard-version: "31900058STD"
W836xx enter config mode worked or we were already in config mode. W836xx
leave config mode had no effect.
Active config mode, unknown reg 0x20 ID: 85.
Please send the output of "flashrom -V -p internal" to
flashrom(a)flashrom.org with W836xx: your board name: flashrom -V
as the subject to help us finish support for your Super I/O. Thanks.
Found ITE EC, ID 0x8586, Rev 0x06 on port 0x4e.
====
Dear flashrom Developers,
I am writing you because I want to set up a proper Linux on my Laptop,
which I imported from china. It's clearly an imitation of some Acer
Aspire One Model. When I got it, the packaging was labeled as "Spire One"...
W-Lan and Bluetooth, sound, battery state and brightness controls as
well as function keys seem to work under windows but not under Linux. I
guess the ACPI tables provided by the hardware do poorly support any OS
different from Microsoft Windows.
I had hoped that a BIOS update could maybe fix the buggy ACPI tables but
wasn't able to update the bios using flashrom. As suggested by your tool
I'll put the verbose output of flashrom into the attachment.
Kind regards
Florian Schröter