[LinuxBIOS] [PATCH] v2: rewrite AMD K* CAR code

Carl-Daniel Hailfinger 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
>> expected.
>>     
>
> 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
+ */
 .endm
 
 #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.


Regards,
Carl-Daniel




More information about the coreboot mailing list