[coreboot] v2: Two coding issues: asm invd, pci resources
Mats Erik Andersson
mats.andersson at gisladisker.se
Fri Sep 19 14:58:58 CEST 2008
Hello folks,
I have two questions for the code base in coreboot-v2.
1) In an effort to understand how the L2 cache in a PII processor
can be activated, I wished to use the machine instruction 'invd'.
It is implemented in src/include/cpu/x86/cache.h, but does not
even compile as it stands. I had to remove that inexplicable
addition '::: "memory"' in order to compile a rom image:
static inline void invd(void)
{
/* asm volatile("invd" ::: "memory"); */
asm volatile("invd");
}
I have never seen the attribute before, so I wonder if it is
some kind of safe guard. Anyway, my idea was to use
static inline void enable_cache(void)
{
unsigned long cr0;
cr0 = read_cr0();
cr0 &= 0x9fffffff;
invd(); /* NEW */
write_cr0(cr0);
wbinvd(); /* NEW */
}
since 'the Programmer's Guide vol. 3A/3B' gives no clues on
methods for activating the L2 cache. However, nothing improved.
2) Has it been judged superfluous to support configuration entries
such as
device pci 7.2 on # USB
io 0x20 = 0x0000e001ul
irq 0x3c = 0x0a
end
on grounds that pci-devices _can_ do auto detection? I inserted two
instances of 'print_debug' to make sure that pci_set_resources()
is executed for the USB Host Controler, but the above specification
never came into action. Were they even parsed?
Kind regards
Mats Erik Andersson
More information about the coreboot
mailing list