Hi,
attached patches add support for tinybootblock to the generic Makefile.romccboard.inc, and move dell/s1850 (non-tinybootblock) and emulation/qemu-x86 (tinybootblock) to use that instead of their own set of rules.
emulation/qemu-x86 is boot tested.
All romcc-boards use Makefile.romccboard.inc after these patches.
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Patrick Georgi wrote:
attached patches add support for tinybootblock to the generic Makefile.romccboard.inc, and move dell/s1850 (non-tinybootblock) and emulation/qemu-x86 (tinybootblock) to use that instead of their own set of rules.
Why is s1850 not using TINY_BOOTBLOCK? Is it a technical problem or a matter of not-done-yet?
emulation/qemu-x86 is boot tested.
All romcc-boards use Makefile.romccboard.inc after these patches.
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Acked-by: Peter Stuge peter@stuge.se
Am 08.01.2010 12:06, schrieb Peter Stuge:
Why is s1850 not using TINY_BOOTBLOCK? Is it a technical problem or a matter of not-done-yet?
not-done-yet. I don't know if it requires a rom enable sequence. If yes, it's not implemented yet (which might be considered a technical problem).
Acked-by: Peter Stuge peter@stuge.se
Thanks, Patrick
For s1850, if I end up going back to it, I'm probably going to want to put serialice in the top 64k, and make it possible for serialice to flash. That gives me a test and recovery path for failed BIOSes that's almost as good as fallback. It's just too difficult to blow a machine up each time I have a bios problem.
ron
On Fri, Jan 08, 2010 at 09:15:05AM +0100, Patrick Georgi wrote:
Hi,
attached patches add support for tinybootblock to the generic Makefile.romccboard.inc, and move dell/s1850 (non-tinybootblock) and emulation/qemu-x86 (tinybootblock) to use that instead of their own set of rules.
emulation/qemu-x86 is boot tested.
All romcc-boards use Makefile.romccboard.inc after these patches.
Thanks!
I've boot tested epia-cn with a Kconfig build. I did need to add:
select TSC_X86RDTSC_CALIBRATE_WITH_TIMER2
to src/mainboard/via/epia-cn/Kconfig. I also added:
obj-$(CONFIG_GENERATE_ACPI_TABLES) += fadt.o obj-$(CONFIG_GENERATE_ACPI_TABLES) += dsdt.o obj-$(CONFIG_GENERATE_ACPI_TABLES) += acpi_tables.o
to src/mainboard/Makefile.romccboard.inc.
Also, I noted that epia-m is also not setup to use romcc.
-Kevin
On Fri, Jan 08, 2010 at 07:52:57PM -0500, Kevin O'Connor wrote:
On Fri, Jan 08, 2010 at 09:15:05AM +0100, Patrick Georgi wrote:
attached patches add support for tinybootblock to the generic Makefile.romccboard.inc, and move dell/s1850 (non-tinybootblock) and emulation/qemu-x86 (tinybootblock) to use that instead of their own set of rules.
I just booted my epia-cn with Kbuild and tinybootblock.
I enabled tinybootblock by adding a "select TINY_BOOTBLOCK" to the epia-cn/Kconfig file. This did boot, but it took a very long time, because the romstage XIP code wasn't cached (running lzma uncompression without cache is crazy). I was able to fix it by adding:
config XIP_ROM_BASE hex default 0xfff00000
config XIP_ROM_SIZE hex default 0x100000
to the Kbuild file to force code caching. (Though, I'm not sure how much of this is because of other changes in my tree to enable caching.)
-Kevin
Am 09.01.2010 02:34, schrieb Kevin O'Connor:
config XIP_ROM_BASE hex default 0xfff00000
config XIP_ROM_SIZE hex default 0x100000
to the Kbuild file to force code caching. (Though, I'm not sure how much of this is because of other changes in my tree to enable caching.)
Intel and AMD CAR use an automatically adapted variable to retarget the XIP area (without changing to change the size): #if defined(CONFIG_TINY_BOOTBLOCK) && CONFIG_TINY_BOOTBLOCK #define REAL_XIP_ROM_BASE AUTO_XIP_ROM_BASE #else #define REAL_XIP_ROM_BASE CONFIG_XIP_ROM_BASE #endif movl $REAL_XIP_ROM_BASE, %eax orl $MTRR_TYPE_WRBACK, %eax wrmsr
instead of movl $(CONFIG_XIP_ROM_BASE | MTRR_TYPE_WRBACK), %eax
I'm not sure at which point XIP is configured on your system, maybe this helps.
Patrick
On Sat, Jan 09, 2010 at 04:27:00PM +0100, Patrick Georgi wrote:
Intel and AMD CAR use an automatically adapted variable to retarget the XIP area (without changing to change the size):
[...]
I'm not sure at which point XIP is configured on your system, maybe this helps.
Thanks. Looks like the equivalent should be added to do_early_mtrr_init() in src/cpu/x86/mtrr/earlymtrr.c.
I had hacked rom caching into entry16.inc (which tinybootblock still uses), but I no longer think doing that is a good idea.
I think having some documentation on what each coreboot phase does would help here. In particular, documenting what gets cached in each phase would be useful. I'll send a separate email.
-Kevin