Patchwork SB700: enable PrefetchEnSPIFromHost to improve boot time from SPI flash

login
register
about
Submitter Scott
Date 2010-10-18 01:49:45
Message ID <4BA4C63E524142949DE114A07B15A038@m3a78>
Download mbox | patch
Permalink /patch/2130/
State Accepted
Headers show

Comments

Scott - 2010-10-18 01:49:45
This patch enables SB700 option PrefetchEnSPIFromHost in early setup.
It affects only systems booting from SPI flash, not those booting from
LPC flash. By default, the SB700 reads dwords from the SPI flash chip.
Setting PrefetchEnSPIFromHost causes the SB700 to read entire cache
lines from the flash chip. 

Thanks,
Scott

Signed-off-by: Scott Duplichan <scott@notabs.org>
Stefan Reinauer - 2010-10-18 02:18:50
On 10/17/10 6:49 PM, Scott Duplichan wrote:
> This patch enables SB700 option PrefetchEnSPIFromHost in early setup.
> It affects only systems booting from SPI flash, not those booting from
> LPC flash. By default, the SB700 reads dwords from the SPI flash chip.
> Setting PrefetchEnSPIFromHost causes the SB700 to read entire cache
> lines from the flash chip. 
>
> Thanks,
> Scott
>
> Signed-off-by: Scott Duplichan <scott@notabs.org>

Acked-by: Stefan Reinauer <stepan@coreboot.org>
> Index: src/southbridge/amd/sb700/sb700_early_setup.c
> ===================================================================
> --- src/southbridge/amd/sb700/sb700_early_setup.c       (revision 5964)
> +++ src/southbridge/amd/sb700/sb700_early_setup.c       (working copy)
> @@ -129,6 +129,11 @@
>         reg8 |= (1 << 5) | (1 << 6);
>         pci_write_config8(dev, 0x47, reg8);
>
> +       /* Enable PrefetchEnSPIFromHost to speed up SPI flash read (does not affect LPC) */
> +       reg8 = pci_read_config8(dev, 0xbb);
> +       reg8 |= 1 << 0;
> +       pci_write_config8(dev, 0xbb, reg8);
> +
>         /* SuperIO, LPC ROM */
>         reg8 = pci_read_config8(dev, 0x48);
>         /* Decode ports 0x2e-0x2f, 0x4e-0x4f (SuperI/O configuration) */
>
>
>
Carl-Daniel Hailfinger - 2010-10-18 03:52:12
On 18.10.2010 03:49, Scott Duplichan wrote:
> This patch enables SB700 option PrefetchEnSPIFromHost in early setup.
> It affects only systems booting from SPI flash, not those booting from
> LPC flash. By default, the SB700 reads dwords from the SPI flash chip.
> Setting PrefetchEnSPIFromHost causes the SB700 to read entire cache
> lines from the flash chip. 
>
> Thanks,
> Scott
>
> Signed-off-by: Scott Duplichan <scott@notabs.org>
>   

(Speaking with my flashrom hat on)
Looks good to me.

I think we want the same setting for SB600 if it is available there.

Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>

Can you commit or should I do it?

Regards,
Carl-Daniel
Scott - 2010-10-18 04:10:35
]> This patch enables SB700 option PrefetchEnSPIFromHost in early setup.
]> It affects only systems booting from SPI flash, not those booting from
]> LPC flash. By default, the SB700 reads dwords from the SPI flash chip.
]> Setting PrefetchEnSPIFromHost causes the SB700 to read entire cache
]> lines from the flash chip. 
]>
]> Thanks,
]> Scott
]>
]> Signed-off-by: Scott Duplichan <scott@notabs.org>
]>   
]
](Speaking with my flashrom hat on)
]Looks good to me.
]
]I think we want the same setting for SB600 if it is available there.
]
]Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
]
]Can you commit or should I do it?
]
]Regards,
]Carl-Daniel
]
]-- 
]http://www.hailfinger.org/

Thanks Carl-Daniel,

I managed to do the commit. Unfortunately, SB600 does not support
this option. Starting with SB800, the fast mode SPI writes can be
used in addition to PrefetchEnSPIFromHost. SB900 has even more 
SPI improvement.

Thanks,
Scott
Carl-Daniel Hailfinger - 2010-10-18 04:43:56
On 18.10.2010 06:10, Scott Duplichan wrote:
> I managed to do the commit. Unfortunately, SB600 does not support
> this option.

Right, I remembered something like that, but I didn't have the datasheet
handy to check.


> Starting with SB800, the fast mode SPI writes can be
> used in addition to PrefetchEnSPIFromHost. SB900 has even more 
> SPI improvement.
>   

Thanks for the info. I really hope the RS880 and SB800 datasheets will
become public (or are they and I just missed the announcement)?

Regards,
Carl-Daniel

Patch

Index: src/southbridge/amd/sb700/sb700_early_setup.c
===================================================================
--- src/southbridge/amd/sb700/sb700_early_setup.c       (revision 5964)
+++ src/southbridge/amd/sb700/sb700_early_setup.c       (working copy)
@@ -129,6 +129,11 @@ 
        reg8 |= (1 << 5) | (1 << 6);
        pci_write_config8(dev, 0x47, reg8);

+       /* Enable PrefetchEnSPIFromHost to speed up SPI flash read (does not affect LPC) */
+       reg8 = pci_read_config8(dev, 0xbb);
+       reg8 |= 1 << 0;
+       pci_write_config8(dev, 0xbb, reg8);
+
        /* SuperIO, LPC ROM */
        reg8 = pci_read_config8(dev, 0x48);
        /* Decode ports 0x2e-0x2f, 0x4e-0x4f (SuperI/O configuration) */