[coreboot] Fwd: SimNOW VGA int 1a

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Oct 16 23:52:48 CEST 2008


On 16.10.2008 23:44, ron minnich wrote:
> On Thu, Oct 16, 2008 at 2:35 PM, Carl-Daniel Hailfinger
> <c-d.hailfinger.devel.2006 at gmx.net> wrote:
>
>   
>> Please help me understand this better. Is this a bug of real hardware, a
>> bug of an emulator or an intended design feature?
>>
>> Depending on what it is, we could employ various ways to fix it.
>>
>>     
>
> it's one of the few bugs in the pci design.
>
> You write ffffffff to a register. it reads back as the moving bits +
> non moving bits. But at that point, until you change it, that's also
> the address it will decode.
>
> In this case, sadly, we set a bar to ffffffff, to set its size, and it
> reads back ff000000, which gives us moving and non moving. Oh but ...
> it also decodes that address, top 16m of addrss space, -> no more ROM.
>
> hardware does this? yeah, probably.
>   

If that's it, the solution is absolutely simple. And I mean totally simple.
1. Backup old content
2. Write ffffffff
3. Read back and save in a variable
4. Restore old content.
Make sure no code blacked out by the decode is executed between 1 and 4
and you're safe. If you're feeling paranoid, do it as inline asm. Make
sure that short sequence is never ever run as XIP code in ROM (I can do
that checking right now).

What am I missing?

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list