[coreboot] flashrom patch for VIA EPIA EN board

Corey Osgood corey.osgood at gmail.com
Fri Jan 25 12:44:07 CET 2008


ZJ Laczik wrote:
> Hi,
>
> See attached.
>
> Thanks for the great effort - your software saved my motherboard!
>
> Cheers,
>
> John

Hi, Thanks for the patch, I'll try it out tomorrow to make sure it 
doesn't break my board, and I hope Rudolf can do the same. In the 
future, please use unified diffs (diff -u or just svn diff), much easier 
to read. Your patch also needs a Signed-off-by: line before we can commit.

> diff flashrom/board_enable.c flashrom.ori/board_enable.c
> 27,34d26
> < /*
> < ** Change log:
> < **
> < ** 24/01/2008 ZJ Laczik <John at laczik dot org>
> < **            Added IDs for VIA EPIA EN boards
> < **
> < */
> < 
> 189,197d180
> < static int board_via_epia_en(const char *name)
> < {
> < // actually, nothing needs to be done, WP is controlled by MB jumper
> < 
> <         printf("\nIf erasing/writing the flash ROM, make sure motherboard WP1 jumper is removed.\n");
> < 
> <         return 0;
> < }
> < 
> 411,412d393
> < 	{0x1106, 0x0314, 0x1106, 0xaa08, 0x1106, 0x3227, 0x1106, 0xaa08,
> < 	NULL, NULL, "VIA EPIA EN", board_via_epia_en},
> diff flashrom/chipset_enable.c flashrom.ori/chipset_enable.c
> 26,33d25
> < /*
> < ** Change log:
> < **
> < ** 24/01/2008 ZJ Laczik <John at laczik dot org>
> < **            Created separate routine for VIA VT8237
> < **
> < */
> < 
> 207,235d198
> < static int enable_flash_vt8237(struct pci_dev *dev, const char *name)
> < {
> < 	uint8_t val;
> < 
> < 	/* ROM write enable */
> < 	val = pci_read_byte(dev, 0x40);
> < 	val |= 0x10;
> < 	pci_write_byte(dev, 0x40, val);
> < 
> < 	if (pci_read_byte(dev, 0x40) != val) {
> < 		printf("\nWARNING: Failed to enable ROM Write on \"%s\"\n",
> < 		       name);
> < 		return -1;
> < 	}
>   

any reason not to just do enable_flash_vt823x here, instead of copying 
the code?

> < 
> < 	// Direct all memory access to LPC bus
> < 	// (otherwise flash chip registers are not visible)
> < 	val = pci_read_byte(dev, 0x59);
> < 	val &= ~0x80;
> < 	pci_write_byte(dev, 0x59, val);
>   

Do you have the vt8235 datasheet? I think this works on it as well.

> < 
> < 	if (pci_read_byte(dev, 0x59) != val) {
> < 		printf("\nWARNING: Failed to direct all memory access to LPC bus on \"%s\"\n",
> < 		       name);
> < 		return -1;
> < 	}
> < 	return 0;
> < }
> < 
> 529c492
> < 	{0x1106, 0x3227, "VT8237", enable_flash_vt8237},
> ---
>   
>> > 	{0x1106, 0x3227, "VT8237", enable_flash_vt823x},
>>     





More information about the coreboot mailing list