Gregg Levine | 1 Dec 01:33
Picon
Gravatar

Baremetal bootloader project

Hello!
During the ramp up that brought us to the coreboot project, one Steven
James contributed a project he called Baremetal, and described it as a
bootloader of sorts. During that time period I actually did get it to
build, but sadly never did get around to test it.

Was this project imported along with everything else to the coreboot
storage point that we access using subversion? (As it happens I have
now gotten one of the currently available loaders to work using Qemu.)

-----
Gregg C Levine gregg.drwho8 <at> gmail.com
"This signature was once found posting rude
 messages in English in the Moscow subway."

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Corey Osgood | 1 Dec 02:56
Picon

Re: Baremetal bootloader project

IIRC, baremetal was/is a simple "Hello World"-esque payload that was intended as something to base future payloads on. I'm pretty sure it's in the linuxbios-v1 repository.

-Corey

On Sun, Nov 30, 2008 at 7:33 PM, Gregg Levine <gregg.drwho8 <at> gmail.com> wrote:
Hello!
During the ramp up that brought us to the coreboot project, one Steven
James contributed a project he called Baremetal, and described it as a
bootloader of sorts. During that time period I actually did get it to
build, but sadly never did get around to test it.

Was this project imported along with everything else to the coreboot
storage point that we access using subversion? (As it happens I have
now gotten one of the currently available loaders to work using Qemu.)

-----
Gregg C Levine gregg.drwho8 <at> gmail.com
"This signature was once found posting rude
 messages in English in the Moscow subway."

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot
FENG Yu Ning | 1 Dec 05:05
Picon

Re: [PATCH] flashrom: sector-based flashing

On Sat, Nov 29, 2008 at 8:23 PM, FENG Yu Ning <fengyuning1984 <at> gmail.com> wrote:
> On Sat, Nov 29, 2008 at 9:15 AM, Carl-Daniel Hailfinger
> <c-d.hailfinger.devel.2006 <at> gmx.net> wrote:
>> Index: flashrom-eraseblocks/flashrom.c
>> ===================================================================
>> --- flashrom-eraseblocks/flashrom.c     (Revision 3776)
>> +++ flashrom-eraseblocks/flashrom.c     (Arbeitskopie)
>> @@ -534,11 +534,33 @@
>>
>>        if (erase_it) {
>>                printf("Erasing flash chip.\n");
>> -               if (!flash->erase) {
>> -                       fprintf(stderr, "Error: flashrom has no erase function for this flash chip.\n");
>> +               if (!flash->block_erase && flash->eraseblocks[0].count) {
>> +                       fprintf(stderr, "Hint: flashrom knows the eraseblock "
>> +                               "layout, but there is no blockwise erase "
>> +                               "function for this flash chip. "
>> +                               "Using whole-chip erase.\n");
>> +               }
>> +               if (flash->block_erase && !flash->eraseblocks[0].count) {
>> +                       fprintf(stderr, "Hint: flashrom has a blockwise erase "
>> +                               "function for this flash chip, but the "
>> +                               "eraseblock layout is unknown. "
>> +                               "Using whole-chip erase.\n");
>> +               }
>> +               if (flash->block_erase && flash->eraseblocks[0].count) {
>> +                       unsigned long done = 0;
>> +                       int i, j;
>> +                       for (i = 0; done < flash->total_size * 1024; i++) {
>> +                               for (j = 0; j < flash->eraseblocks[i].count; j++) {
>> +                                       flash->block_erase(flash, done + flash->eraseblocks[i].size * j);
>> +                               }
>> +                               done += flash->eraseblocks[i].count * flash->eraseblocks[i].size;
>> +                       }
>> +               } else if (flash->erase) {
>> +                       flash->erase(flash);
>> +               } else {
>> +                       fprintf(stderr, "Error: flashrom has no chip erase function for this flash chip.\n");
>>                        return 1;
>>                }
>> -               flash->erase(flash);
>>                exit(0);
>>        } else if (read_it) {
>>                if ((image = fopen(filename, "w")) == NULL) {
>
> No comment to the logic. But the new code has a different degree of
> detail compared to other 'if (do_it)' blocks(i.e., the for loop).

I do have a comment to the logic now. If we want to erase a whole
chip, we shall try 'flash->erase' first.

yu ning

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

FENG Yu Ning | 1 Dec 09:14
Picon

[PATCH] flashrom: flashchips.c cosmetic change

Breaks chip info into multiple lines.

Patch excerpt:

 struct flashchip flashchips[] = {
-	/**********************************************************************************************************************************************************************************************************************/
-	/* Vendor	Chip			Vendor ID	Chip ID		Total size (kB)	Page size
(B)	Test status	Probe function		Erase function			Write function		Read
function */
-	/**********************************************************************************************************************************************************************************************************************/
-	{"AMD",		"Am29F002(N)BB",	AMD_ID,		AM_29F002BB,		256,	256,		TEST_UNTESTED,	probe_jedec,		erase_chip_jedec,		write_en29f002a},
+
+	/* Vendor, Chip, Vendor ID, Chip ID,
+	 * Total size (kB), Page size (B),
+	 * Test status,
+	 * Probe function, Erase function, Write function, Read function
+	 */
+
+	{"AMD", "Am29F002(N)BB", AMD_ID, AM_29F002BB,
+	 256, 256,
+	 TEST_UNTESTED,
+	 probe_jedec, erase_chip_jedec, write_en29f002a
+	},
+

Signed-off-by: FENG yu ning <fengyuning1984 <at> gmail.com>
Attachment (shorter.patch): text/x-diff, 43 KiB
--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot
Chris Lingard | 1 Dec 11:40
Picon
Favicon

Re: Free chips, not required by me, and a question

Carl-Daniel Hailfinger wrote:
> On 29.11.2008 10:57, Chris Lingard wrote:
>> Now I need help, my machine has Pm49FL004 chips as standard, I have
>> some Pm49FL008 too.
>>
>> I want a 32 M Bit flash chip, if there is such a thing for this type

> Can you tell us more about your mainboard chipset? The Pm49FL004 can do
> LPC and FWH, but a board only needs one of them.
> 
> I thought I had seen some data sheets for 32 Mbit chips, but it seems
> they all were SPI and not FWH/LPC.

Thanks for all the information.  I have done some reading and got the 
data sheets.  My chips are PLCC, (nearly square with pins on all four 
sides).

So am I stuck?  They do not make large capacity {SST,Pm}49LF0??) PLCC 
chips, or is it just an old chip?

Chris Lingard

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

svn | 1 Dec 15:18
Favicon

r3784 - trunk/util/superiotool

Author: uwe
Date: 2008-12-01 15:18:57 +0100 (Mon, 01 Dec 2008)
New Revision: 3784

Modified:
   trunk/util/superiotool/ali.c
   trunk/util/superiotool/fintek.c
   trunk/util/superiotool/ite.c
   trunk/util/superiotool/nsc.c
   trunk/util/superiotool/smsc.c
   trunk/util/superiotool/superiotool.c
   trunk/util/superiotool/superiotool.h
   trunk/util/superiotool/winbond.c
Log:
The Winbond Super I/O chips have another indirection of registers. The
hwmon has generic registers and banked registers, mostly temperature
handling, and SMI/GPIO stuff.

Not all LDNs are switched via register offset 0x07, make it a parameter.

Add support for dumping the hardware monitor of Winbond W83627THF/THG
parts with the -e option.

Signed-off-by: Stefan Reinauer <stepan <at> coresystems.de>
Acked-by: Uwe Hermann <uwe <at> hermann-uwe.de>

Modified: trunk/util/superiotool/ali.c
===================================================================
--- trunk/util/superiotool/ali.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/ali.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -95,7 +95,7 @@
 	       get_superio_name(reg_table, id), id, rev, port);
 	chip_found = 1;

-	dump_superio("ALi", reg_table, port, id);
+	dump_superio("ALi", reg_table, port, id, LDN_SEL);

 	exit_conf_mode_ali(port);
 }

Modified: trunk/util/superiotool/fintek.c
===================================================================
--- trunk/util/superiotool/fintek.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/fintek.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -137,7 +137,7 @@
 	       get_superio_name(reg_table, did), vid, did, port);
 	chip_found = 1;

-	dump_superio("Fintek", reg_table, port, did);
+	dump_superio("Fintek", reg_table, port, did, LDN_SEL);

 	exit_conf_mode_winbond_fintek_ite_8787(port);
 }

Modified: trunk/util/superiotool/ite.c
===================================================================
--- trunk/util/superiotool/ite.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/ite.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -534,10 +534,10 @@
 	       get_superio_name(reg_table, id), id, chipver, port);
 	chip_found = 1;

-	dump_superio("ITE", reg_table, port, id);
+	dump_superio("ITE", reg_table, port, id, LDN_SEL);

 	if (extra_dump) {
-		regwrite(port, 0x07, 0x04); /* Select LDN 4 (EC). */
+		regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */

 		/* Get EC base address (stored in LDN 4, index 0x60/0x61). */
 		ecport = regval(port, 0x60) << 8;
@@ -547,7 +547,7 @@
 		ecport += 5;

 		printf("Environment controller (0x%04x)\n", ecport);
-		dump_superio("ITE-EC", ec_table, ecport, id);
+		dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
 	}
 }

@@ -583,5 +583,5 @@
 void print_ite_chips(void)
 {
 	print_vendor_chips("ITE", reg_table);
-	print_vendor_chips("ITE EC", ec_table);
+	print_vendor_chips("ITE-EC", ec_table);
 }

Modified: trunk/util/superiotool/nsc.c
===================================================================
--- trunk/util/superiotool/nsc.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/nsc.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -506,7 +506,7 @@
 	       get_superio_name(reg_table, id), id, rev, port);
 	chip_found = 1;

-	dump_superio("NSC", reg_table, port, id);
+	dump_superio("NSC", reg_table, port, id, LDN_SEL);
 }

 void print_nsc_chips(void)

Modified: trunk/util/superiotool/smsc.c
===================================================================
--- trunk/util/superiotool/smsc.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/smsc.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -643,7 +643,8 @@
 	       id, rev, port);
 	chip_found = 1;

-	dump_superio((id == 0x77 ? "ASUS" : "SMSC"), reg_table, port, id);
+	dump_superio((id == 0x77 ? "ASUS" : "SMSC"), reg_table, port, id,
+		     LDN_SEL);

 	exit_conf_mode_smsc(port);
 }

Modified: trunk/util/superiotool/superiotool.c
===================================================================
--- trunk/util/superiotool/superiotool.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/superiotool.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -82,7 +82,7 @@
 }

 static void dump_regs(const struct superio_registers reg_table[],
-		      int i, int j, uint16_t port)
+		      int i, int j, uint16_t port, uint8_t ldn_sel)
 {
 	int k;
 	const int16_t *idx;
@@ -91,7 +91,7 @@
 		printf("LDN 0x%02x", reg_table[i].ldn[j].ldn);
 		if (reg_table[i].ldn[j].name != NULL)
 			printf(" (%s)", reg_table[i].ldn[j].name);
-		regwrite(port, 0x07, reg_table[i].ldn[j].ldn);
+		regwrite(port, ldn_sel, reg_table[i].ldn[j].ldn);
 	} else {
 		printf("Register dump:");
 	}
@@ -131,7 +131,7 @@

 void dump_superio(const char *vendor,
 		  const struct superio_registers reg_table[],
-		  uint16_t port, uint16_t id)
+		  uint16_t port, uint16_t id, uint8_t ldn_sel)
 {
 	int i, j, no_dump_available = 1;

@@ -149,7 +149,7 @@
 			if (reg_table[i].ldn[j].ldn == EOT)
 				break;
 			no_dump_available = 0;
-			dump_regs(reg_table, i, j, port);
+			dump_regs(reg_table, i, j, port, ldn_sel);
 		}

 		if (no_dump_available)

Modified: trunk/util/superiotool/superiotool.h
===================================================================
--- trunk/util/superiotool/superiotool.h	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/superiotool.h	2008-12-01 14:18:57 UTC (rev 3784)
@@ -73,10 +73,14 @@
 #define MISC		-5		/* Needs special comment in output */
 #define MAXLDN		0x14		/* Biggest LDN */
 #define LDNSIZE		(MAXLDN + 3)	/* Biggest LDN + 0 + NOLDN + EOT */
-#define MAXNUMIDX	170		/* Maximum number of indexes */
+#define MAXNUMIDX	170		/* Maximum number of indices */
 #define IDXSIZE 	(MAXNUMIDX + 1)
 #define MAXNUMPORTS	(6 + 1)		/* Maximum number of Super I/O ports */

+/* Select registers for various components. */
+#define LDN_SEL		0x07		/* LDN select register */
+#define WINBOND_HWM_SEL	0x4e		/* Hardware monitor bank select */
+
 /* Command line parameters. */
 extern int dump, verbose, extra_dump;

@@ -102,7 +106,7 @@
 const char *get_superio_name(const struct superio_registers reg_table[],
 			     uint16_t id);
 void dump_superio(const char *name, const struct superio_registers reg_table[],
-		  uint16_t port, uint16_t id);
+		  uint16_t port, uint16_t id, uint8_t ldn_sel);
 void probing_for(const char *vendor, const char *info, uint16_t port);
 void print_vendor_chips(const char *vendor,
 			const struct superio_registers reg_table[]);

Modified: trunk/util/superiotool/winbond.c
===================================================================
--- trunk/util/superiotool/winbond.c	2008-11-30 14:52:46 UTC (rev 3783)
+++ trunk/util/superiotool/winbond.c	2008-12-01 14:18:57 UTC (rev 3784)
@@ -468,6 +468,55 @@
 	{EOT}
 };

+static const struct superio_registers hwm_table[] = {
+	{0x828, "W83627THF/THG", {
+		{NOLDN, NULL,
+			{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
+			 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
+			 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
+			 0x1e,0x1f,
+			 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
+			 0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,
+			 0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,
+			 0x3f,
+			 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+			 0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
+			{RSVD,0xff,RSVD,0xff,0x00,0x00,0x00,0x00,0x01,0x01,
+			 0x01,0x01,0x3c,0x3c,0x0a,0x0a,RSVD,0xff,0x00,0x00,
+			 0x00,0x01,0x01,0x3c,0x43,RSVD,0xff,0xff,RSVD,RSVD,
+			 NANA,NANA,
+			 NANA,NANA,NANA,NANA,NANA,RSVD,RSVD,NANA,NANA,NANA,
+			 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
+			 RSVD,RSVD,RSVD,RSVD,NANA,NANA,NANA,NANA,NANA,RSVD,
+			 RSVD,
+			 0x03,0x00,0x00,0xfe,0xff,RSVD,RSVD,0x5f,NANA,0x03,
+			 RSVD,0x44,0x18,0x15,0x80,0x5c,EOT}},
+		{0x0, "Bank 0",
+			{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+			 0x5d,0x5e,0x5f,EOT},
+			{NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x80,0x90,0x70,
+			 0x00,RSVD,RSVD,EOT}},
+		{0x1, "Bank 1",
+			{0x50,0x51,0x52,0x53,0x54,0x55,0x56,EOT},
+			{NANA,NANA,0x00,0x4b,0x00,0x50,0x00,EOT}},
+		{0x2, "Bank 2",
+			{0x50,0x51,0x52,0x53,0x54,0x55,0x56,EOT},
+			{NANA,NANA,0x00,0x4b,0x00,0x50,0x00,EOT}},
+		{0x4, "Bank 4",
+			{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x59,0x5a,
+			 0x5b,EOT},
+			{0x00,0xff,RSVD,0x00,0x00,0x00,0x00,0x00,0x00,
+			 0x00,EOT}},
+		{0x5, "Bank 5",
+			{0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,EOT},
+			{NANA,NANA,RSVD,RSVD,NANA,NANA,NANA,NANA,EOT}},
+		{0x6, "Bank 6",
+			{0x50,EOT},
+			{RSVD,EOT}},
+		{EOT}}},
+	{EOT}
+};
+
 static void enter_conf_mode_winbond_88(uint16_t port)
 {
 	OUTB(0x88, port);
@@ -486,7 +535,7 @@

 static void probe_idregs_winbond_helper(const char *init, uint16_t port)
 {
-	uint16_t id;
+	uint16_t id, hwmport;
 	uint8_t devid, rev, olddevid;

 	probing_for("Winbond", init, port);
@@ -522,7 +571,27 @@
 		       get_superio_name(reg_table, id), devid, rev, port);
 	chip_found = 1;

-	dump_superio("Winbond", reg_table, port, id);
+	dump_superio("Winbond", reg_table, port, id, LDN_SEL);
+
+	if (extra_dump) {
+		regwrite(port, LDN_SEL, 0x0b); /* Select LDN 0xb (HWM). */
+
+		if ((regval(port, 0x30) & (1 << 0)) != (1 << 0)) {
+			printf("Hardware Monitor disabled or does not exist.\n");
+			return;
+		}
+
+		/* Get HWM base address (stored in LDN 0xb, index 0x60/0x61). */
+		hwmport = regval(port, 0x60) << 8;
+		hwmport |= regval(port, 0x61);
+
+		/* HWM address register = HWM base address + 5. */
+		hwmport += 5;
+
+		printf("Hardware monitor (0x%04x)\n", hwmport);
+		dump_superio("Winbond-HWM", hwm_table, hwmport, id,
+			     WINBOND_HWM_SEL);
+	}
 }

 void probe_idregs_winbond(uint16_t port)
@@ -547,4 +616,5 @@
 void print_winbond_chips(void)
 {
 	print_vendor_chips("Winbond", reg_table);
+	print_vendor_chips("Winbond-HWM", hwm_table);
 }

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Uwe Hermann | 1 Dec 15:28
Picon
Favicon
Gravatar

Re: [PATCH] superiotool: dump winbond hardware monitor registers

On Sat, Nov 29, 2008 at 12:04:17AM +0100, Stefan Reinauer wrote:
> * Not all LDNs are switched via register offset 0x07, make it a parameter
> * add support for dumping the hardware monitor of Winbond W83627THF/THG 
>   parts with -e
> 
> Signed-off-by: Stefan Reinauer <stepan <at> coresystems.de>

Nice, thanks! Acked, and committed in r3784 with a few minor changes:

 - Added more RSVD entries (for all registers which are explicitly
   mentioned to be reserved in the datasheet). This includes one
   register in bank 6 (this bank was not in the original patch).

 - Use LDN_SEL in one or two more places, now that we have a #define.

 - Add
     print_vendor_chips("Winbond-HWM", hwm_table);
   to the print_winbond_chips() function to make the new dump appear
   in 'superiotool -l' output.

> +static const struct superio_registers hwm_table[] = {
> +	{0x828, "W83627THF/THG", {
> +		{NOLDN, NULL,
> +			{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
> +			 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
> +			 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
> +			 0x1e,0x1f,
> +			 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
> +			 0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,
> +			 0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,
> +			 0x3f,
> +			 0x40,0x41,0x42,0x43,0x44,0x47,0x48,0x49,0x4a,0x4b,
> +			 0x4c,0x4d,0x4e,0x4f,EOT},
> +			{RSVD,0xff,RSVD,0xff,0x00,0x00,0x00,0x00,0x01,0x01,
> +			 0x01,0x01,0x3c,0x3c,0x0a,0x0a,RSVD,0xff,0x00,0x00,
> +			 0x00,0x01,0x01,0x3c,0x43,RSVD,0xff,0xff,RSVD,RSVD,
> +			 NANA,NANA,
> +			 NANA,NANA,NANA,NANA,NANA,RSVD,RSVD,NANA,NANA,NANA,
> +			 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
> +			 RSVD,RSVD,RSVD,RSVD,NANA,NANA,NANA,NANA,NANA,RSVD,
> +			 RSVD,
> +			 0x03,0x00,0x00,0xfe,0xff,0x5f,NANA,0x03,RSVD,0x44,
> +			 0x18,0x15,0x80,0x5c,EOT}},

Can you post a sample dump of this Super I/O with '-e'? The 0x4f
register here is a bit unclear, the datasheet (page 48) says that it's
16 bit. Seems like the default is 0x5c or 0xa3, depending on 0x4e bit 7?
Maybe we should make the value of 0x4e 'MISC' instead, as 0x5c is not
always correct.

> +	if (extra_dump) {
> +		regwrite(port, 0x07, 0x0b); /* Select LDN 0xb (HWM). */
                               ^^^^
                         changed to LDN_SEL

> +		      int i, int j, uint16_t port, uint8_t bank_sel)

Changed bank_sel to ldn_sel, as that's the more common name/use for it
(but both is correct, of course).

Thanks, Uwe.
--

-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Stefan Reinauer | 1 Dec 16:12
Picon

Re: [PATCH] superiotool: dump winbond hardware monitor registers

Uwe Hermann wrote:
> On Sat, Nov 29, 2008 at 12:04:17AM +0100, Stefan Reinauer wrote:
>   
>> * Not all LDNs are switched via register offset 0x07, make it a parameter
>> * add support for dumping the hardware monitor of Winbond W83627THF/THG 
>>   parts with -e
>>
>> Signed-off-by: Stefan Reinauer <stepan <at> coresystems.de>
>>     
>
> Nice, thanks! Acked, and committed in r3784 with a few minor changes:
cool thanks.
> Can you post a sample dump of this Super I/O with '-e'? The 0x4f
> register here is a bit unclear, the datasheet (page 48) says that it's
> 16 bit. Seems like the default is 0x5c or 0xa3, depending on 0x4e bit 7?
> Maybe we should make the value of 0x4e 'MISC' instead, as 0x5c is not
> always correct.
>   
The value of 0x4f depends on the upper bit of the bank select register.

Stefan

--

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info <at> coresystems.de  • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot
Marc Jones | 1 Dec 18:19
Picon

Re: [PATCH] Athlon64 K8 fixes

On Mon, Nov 24, 2008 at 8:48 PM, ron minnich <rminnich <at> gmail.com> wrote:
> On Thu, Nov 20, 2008 at 5:28 AM, Robert Millan <rmh <at> aybabtu.com> wrote:
>
>> Okay.  Bit 29 is the easiest, as the spec reads "This bit should be set
>> if the 939 package is used."  This is enough for a single-DIMM setup to
>> work.
>
> I like this patch. I'd like to see marc ack it but:
> Acked-by: Ronald G. Minnich <rminnich <at> gmail.com>

I am a little hesitant to change this. Bit 28 and 29 were already
being set for all rev a-e processors. This will affect socket 754 and
940 platforms (which I assume are working) so we would need some
additional test coverage. I think that you will need to implement all
the settings in the bkdg section 4.1.3 Maximum DRAM Speed as a
Function of Loading for 2T settings.

I think that adding CPU_SOCKET_TYPE for the 754, 939 and 940 would be
a good. Maybe number them 0x07, 0x08, and 0x09. Update the
src\config\Options.lb to document the socket  numbers.

Marc

--

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Dupont Yves | 1 Dec 19:03
Picon

Re: Spi flash

2008/11/13 Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 <at> gmx.net>:
> Hi Yves,
>
> please keep the list in CC so they know what's going on. Thanks.
>
> On 13.11.2008 18:51, Dupont Yves wrote:
>> here is the corresponding dump :
>>
>> Calibrating delay loop... 326M loops per second, 100 myus = 193 us. OK.
>> No coreboot table found.
>> Found chipset "Intel ICH7M", enabling flash write...
>> BIOS Lock Enable: disabled, BIOS Write Enable: enabled, BIOS_CNTL is 0x1
>>
>> Root Complex Register Block address = 0xfed1c000
>> GCS = 0x460: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x1 (SPI)
>> [...]
>> SPI Read Configuration: prefetching disabled, caching enabled, OK.
>> [...]
>> Probing for Atmel AT25DF321, 4096 KB: Programming OPCODES... done
>> RDID returned ff ff ff.
>>
>
> The flash chip doesn't support RDID.
>
>> RDID byte 0 parity violation.
>> probe_spi_rdid_generic: id1 0xff, id2 0xffff
>> [...]
>> Probing for ST M25P40-old, 512 KB: RDID returned ff ff ff.
>> RES returned 13.
>>
>
> But the chip supports RES.
>
>> probe_spi_res: id 0x13
>> [....]
>> No EEPROM/flash device found.
>>
>
> The big problem is that ~30 chips from different manufacturers with
> different sizes all have the same RES ID. I will try to cook up a patch
> checking REMS (which is more accurate).
>
>> It seems to bea SPI flash device but I don't want to open my laptop.
>> Any idea?
>>
>
> I will create a patch to improve detection, but that may take a week or
> so. If you don't hear anything back from me in the next 7 days, please
> ask me for a status.
>
>
> Regards,
> Carl-Daniel
>
> --
> http://www.hailfinger.org/
>

Hi Carl-Daniel,

I still have troubles with the detection of my SPI flash.
Here is the result of the dump:

Calibrating delay loop... 227M loops per second, 100 myus = 135 us. OK.
No coreboot table found.
Found chipset "Intel ICH7M", enabling flash write...
BIOS Lock Enable: disabled, BIOS Write Enable: enabled, BIOS_CNTL is 0x1

Root Complex Register Block address = 0xfed1c000
GCS = 0x460: BIOS Interface Lock-Down: disabled, BOOT BIOS Straps: 0x1 (SPI)
Top Swap : not enabled
SPIBAR = 0xfed1c000 + 0x3020
0x00: 0x0004     (SPIS)
0x02: 0x4260     (SPIC)
0x04: 0x00000000 (SPIA)
0x08: 0xffffffff (SPID0)
0x0c: 0x00000000 (SPID0+4)
0x10: 0x00000000 (SPID1)
0x14: 0x00000000 (SPID1+4)
0x18: 0x00000000 (SPID2)
0x1c: 0x00000000 (SPID2+4)
0x20: 0x00000000 (SPID3)
0x24: 0x00000000 (SPID3+4)
0x28: 0x00000000 (SPID4)
0x2c: 0x00000000 (SPID4+4)
0x30: 0x00000000 (SPID5)
0x34: 0x00000000 (SPID5+4)
0x38: 0x00000000 (SPID6)
0x3c: 0x00000000 (SPID6+4)
0x40: 0x00000000 (SPID7)
0x44: 0x4a000000 (SPID7+4)
0x50: 0x00000000 (BBAR)
0x54: 0x0006     (PREOP)
0x56: 0x463b     (OPTYPE)
0x58: 0x05d80302 (OPMENU)
0x5c: 0xc79f01ab (OPMENU+4)
0x60: 0x00000000 (PBR0)
0x64: 0x00000000 (PBR1)
0x68: 0x00000000 (PBR2)
0x6c: 0x00000000 (PBR3)

SPI Read Configuration: prefetching disabled, caching enabled, OK.
Probing for AMD Am29F002(N)BB, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for AMD Am29F002(N)BT, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for AMD Am29F016D, 2048 KB: probe_29f040b: id1 0xff, id2 0xff
Probing for AMD Am29F040B, 512 KB: probe_29f040b: id1 0x4e, id2 0x41
Probing for AMD Am29LV040B, 512 KB: probe_29f040b: id1 0x4e, id2 0x41
Probing for ASD AE49F2008, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Atmel AT25DF021, 256 KB: Programming OPCODES... done
RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF041A, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF081, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF161, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF321, 4096 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF321A, 4096 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF641, 8192 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25F512B, 64 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25FS010, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25FS040, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF041, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF081A, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF161, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF161A, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26F004, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT29C020, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Atmel AT29C040A, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for Atmel AT45CS1282, 16896 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB011D, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB021D, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB041D, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB081D, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB161D, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB321C, 4224 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB321D, 4096 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB642D, 8192 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT49F002(N), 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for AMIC A25L40P, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A29002B, 256 KB: probe_29f002: id1 0x46, id2 0xfc
Probing for AMIC A29002T, 256 KB: probe_29f002: id1 0x46, id2 0xfc
Probing for AMIC A29040B, 512 KB: probe_29f040b: id1 0x4e, id2 0x41
Probing for AMIC A49LF040A, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for EMST F49B002UA, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for EON EN29F002(A)(N)B, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for EON EN29F002(A)(N)T, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec: id1 0x4e, id2
0x41, id1 parity violation
Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec: id1 0x4e, id2
0x41, id1 parity violation
Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0x4e, id2 0x50
Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0x4e, id2 0x50
Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0x4e, id2 0x41
Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for Macronix MX25L512, 64 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L1005, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L2005, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L4005, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L8005, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L1605, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L3205, 4096 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L6405, 8192 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX29F002B, 256 KB: probe_29f002: id1 0x46, id2 0xfc
Probing for Macronix MX29F002T, 256 KB: probe_29f002: id1 0x46, id2 0xfc
Probing for Numonyx M25PE10, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE20, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE40, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE80, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE16, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV010, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV016B, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV020, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV040, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV080B, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV512, 64 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm49FL002, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for PMC Pm49FL004, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for Sharp LHF00L04, 1024 KB: probe_lhf00l04: id1 0xff, id2 0xff
Probing for Spansion S25FL016A, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF016B, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF032B, 4096 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF040B, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF080B, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST28SF040A, 512 KB: probe_28sf040: id1 0x4e, id2 0x41
Probing for SST SST29EE010, 128 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SST SST29LE010, 128 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SST SST29EE020A, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SST SST29LE020, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SST SST39SF010A, 128 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SST SST39SF020A, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SST SST39SF040, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for SST SST39VF512, 64 KB: probe_jedec: id1 0x0, id2 0x0, id1
parity violation
Probing for SST SST39VF010, 128 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SST SST39VF020, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SST SST39VF040, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for SST SST49LF002A/B, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SST SST49LF003A/B, 384 KB: probe_jedec: id1 0x7e, id2
0x37, id1 parity violation
Probing for SST SST49LF004A/B, 512 KB: probe_jedec: id1 0x4e, id2
0x41, id1 parity violation
Probing for SST SST49LF004C, 512 KB: probe_49lfxxxc: id1 0x4e, id2 0x41
Probing for SST SST49LF008A, 1024 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SST SST49LF008C, 1024 KB: probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST SST49LF016C, 2048 KB: probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST SST49LF020A, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SST SST49LF040, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for SST SST49LF040B, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for SST SST49LF080A, 1024 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SST SST49LF160C, 2048 KB: probe_49lfxxxc: id1 0xff, id2 0xff
Probing for ST M25P05-A, 64 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P10-A, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P20, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P40, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P40-old, 512 KB: RDID returned ff ff ff.
RES returned 13.
probe_spi_res: id 0x13
Probing for ST M25P80, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P16, 2048 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P32, 4096 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P64, 8192 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P128, 16384 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M29F002B, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for ST M29F002T/NT, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for ST M29F040B, 512 KB: probe_29f040b: id1 0x4e, id2 0x41
Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0x4e, id2 0x50
Probing for ST M29W010B, 128 KB: probe_jedec: id1 0xff, id2 0xff, id1
parity violation
Probing for ST M29W040B, 512 KB: probe_jedec: id1 0x4e, id2 0x41, id1
parity violation
Probing for ST M50FLW040A, 512 KB: probe_stm50flw0x0x: id1 0x4e, id2 0x41
Probing for ST M50FLW040B, 512 KB: probe_stm50flw0x0x: id1 0x4e, id2 0x41
Probing for ST M50FLW080A, 1024 KB: probe_stm50flw0x0x: id1 0xff, id2 0xff
Probing for ST M50FLW080B, 1024 KB: probe_stm50flw0x0x: id1 0xff, id2 0xff
Probing for ST M50FW002, 256 KB: probe_49lfxxxc: id1 0x46, id2 0xfc
Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0x4e, id2 0x41
Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50LPW116, 2048 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for SyncMOS S29C31004T, 512 KB: probe_jedec: id1 0x4e, id2
0x41, id1 parity violation
Probing for SyncMOS S29C51001T, 128 KB: probe_jedec: id1 0xff, id2
0xff, id1 parity violation
Probing for SyncMOS S29C51002T, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for SyncMOS S29C51004T, 512 KB: probe_jedec: id1 0x4e, id2
0x41, id1 parity violation
Probing for Winbond W25x10, 128 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x20, 256 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x40, 512 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x80, 1024 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W29C011, 128 KB: probe_jedec: id1 0xff, id2 0xff,
id1 parity violation
Probing for Winbond W29C020C, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Winbond W29C040P, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for Winbond W29EE011, 128 KB:
===
  Probing disabled for Winbond W29EE011 because the probing sequence puts the
  AMIC A49LF040A in a funky state.
  Use 'flashrom -c W29EE011' if you have a board with this chip.
===
Probing for Winbond W39V040A, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for Winbond W39V040B, 512 KB: probe_jedec: id1 0x4e, id2 0x41,
id1 parity violation
Probing for Winbond W39V040C, 512 KB: probe_w39v040c: id1 0x4e, id2
0x41, id1 parity violation
Probing for Winbond W39V040FA, 512 KB: probe_jedec: id1 0x4e, id2
0x41, id1 parity violation
Probing for Winbond W39V080A, 1024 KB: probe_jedec: id1 0xff, id2
0xff, id1 parity violation
Probing for Winbond W49F002U, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Winbond W49V002A, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Winbond W49V002FA, 256 KB: probe_jedec: id1 0x46, id2 0xfc
Probing for Winbond W39V080FA, 1024 KB: probe_winbond_fwhub: vid 0xff, did 0xff
Probing for Winbond W39V080FA (dual mode), 512 KB:
probe_winbond_fwhub: vid 0x4e, did 0x41
Probing for Atmel unknown Atmel SPI chip, 0 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for EON unknown EON SPI chip, 0 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix unknown Macronix SPI chip, 0 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC unknown PMC SPI chip, 0 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST unknown SST SPI chip, 0 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST unknown ST SPI chip, 0 KB: RDID returned ff ff ff.
RDID byte 0 parity violation.
probe_spi_rdid_generic: id1 0xff, id2 0xffff
No EEPROM/flash device found.
If you know which flash chip you have, and if this version of flashrom
supports a similar flash chip, you can try to force read your chip. Run:
flashrom -f -r -c similar_supported_flash_chip filename

Note: flashrom can never write when the flash chip isn't found automatically.

I don't known if you have enough time to create your patch.
Thanks for your help.
Regards,

Yves

--
coreboot mailing list: coreboot <at> coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Gmane