But lets make sure we gain from it in the end...
Relocating coreboot_ram would safe us two 1MB sized memcpy on the resume path, so we would safe at least 200 microseconds of boot time in the case we're resuming. (assuming memory is 6.4G/s, DDR2-800 aka PC2-6400) .... 0.2milliseconds of 400+... worth the complexity?
minus the time added needed by the linker for the linking..

Is this WB?

How does linking go with lzma?

The linker is called in c_start.o and it is reloc.c "stolen" from memtest86. It is a part of the resulting image.

- do the relocations require more RAM? How much?

They do, i think it is just few kilobytes

- can the sections and relocations be lzma'ed together? or are they separate files in CBFS?

so far I packed resulting image to one text section, just to be able to load it with the stage loader.

Oh and it does work, I made a mistake not to link it to addr 0, but the dynamic loader is doing its own relocation so it got twice big addresses.

Now if only I could fix AMD CAR. I think Stephan is right that dynamic loader might add more complexity. It took me less time to get it working, then fixing the AMD K8 CAR to handle the resume copy properly :)

Anyway, I proved that we can have it, nice result too (at least for me ;)

I will try to fix the AMD CAR somehow now to make resume/suspend work again.

Rudolf


--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to