[LinuxBIOS] Cache As Ram

Juergen Beisert juergen127 at kreuzholzen.de
Thu Oct 26 11:11:38 CEST 2006


Hi Jiangbo,

On Thursday 26 October 2006 10:19, Jiangbo W wrote:
> When using cache as ram how can i ensure that the data in cache can not be
> swapped out?

From an old i486 datasheet I got this. And it works on my i486. Maybe it also 
works on other x86 CPUs.

[...]
; Trash all the cache entries, then enable the cache
;
      invd
      mov     eax, cr0
      and     eax, 0x9FFFFFFF
      mov     cr0, eax
;
; Now the cache is enabled, and empty, and not mapped anywhere.  Force
; it to map down to _sdata..._heap by reading this space
;
      MOV   ESI,_sdata
      MOV   ECX,_heap
      SUB   ECX,ESI
      SHR   ECX,2          ; we are reading DWORDs
      ADD   ECX,2          ; paranoic
      cld
      rep LODSD
;
; Disable the cache. This keeps it from shuffling data in and out,
; so now it is just like an 16K static RAM at location _sdata.
;
      mov   eax, cr0
      or    eax, 0x60000000
      mov   cr0, eax
[...]

Regards
Juergen




More information about the coreboot mailing list