[LinuxBIOS] [PATCH] v2: rewrite AMD K* CAR code
c-d.hailfinger.devel.2006 at gmx.net
Thu Jan 10 03:26:35 CET 2008
On 10.01.2008 03:00, Carl-Daniel Hailfinger wrote:
> On 10.01.2008 01:45, Marc Jones wrote:
>> Carl-Daniel Hailfinger wrote:
>>> On 08.01.2008 23:00, ron minnich wrote:
>>>> Actually, if you all want to commit this, I can try it on the sis
>>>> board this week.
>>> Well, i'd like to commit, but I'll wait until you (or someone else) have
>>> tested it.
>> We checked this on K8 with DCACHE_RAM_SIZE=0x08000 and it works as
> Thanks, great!
> There's one issue with specific binutils versions, though. The following
> sequence trips up a specific gas version with an error message: "Error:
> too many positional arguments"
> I'd like to blacklist the specific binutils version causing this and
> report the bug to the linux distributor.
> Jordan, could you give us more details (exact binutils version, name of
> distribution, are all updates applied)?
Or try this patch on top of my current patch:
--- src/cpu/amd/car/cache_as_ram.inc~ 2008-01-08 20:16:30.000000000 +0100
+++ src/cpu/amd/car/cache_as_ram.inc 2008-01-10 03:24:09.000000000 +0100
@@ -160,8 +160,15 @@
* windowoffset is the 32k-aligned window into CAR size
.macro simplemask carsize, windowoffset
+ .set gas_bug_workaround,(((\carsize - \windowoffset) / 0x1000) - 4)
+ extractmask gas_bug_workaround, %eax
+ .set gas_bug_workaround,(((\carsize - \windowoffset) / 0x1000))
+ extractmask gas_bug_workaround, %edx
+/* Without the gas bug workaround, the entire macro would consist only of the
+ * two lines below.
extractmask (((\carsize - \windowoffset) / 0x1000) - 4), %eax
extractmask (((\carsize - \windowoffset) / 0x1000)), %edx
#if CacheSize > 0x10000
It is a workaound for http://sourceware.org/bugzilla/show_bug.cgi?id=669 .
As an alternative, we may simply blacklist the affected binutils versions.
More information about the coreboot