Hi,
I am working to make a minimal linuxbios without any payload or linux kernel, I just want to see a nice hello word string on the serial port and nothing else. is it possible to make such a bios? also to setup only the necessary HW registers and memory to see the printout message.
how should i do this?
thanks,
/Masoud
Masoud Fatollahy wrote:
Hi,
I am working to make a minimal linuxbios without any payload or linux kernel, I just want to see a nice hello word string on the serial port and nothing else. is it possible to make such a bios? also to setup only the necessary HW registers and memory to see the printout message.
how should i do this?
Look at SerialICE:
http://www.serialice.com/News/News.html
This is a mini monitor that runs over the serial port. The coreboot developers use it to step through a BIOS image, but it contains just enough to get the serial port working. Memory is not initialized, so everything is done with registers.
MarkM
Hej Masoud,
Masoud Fatollahy wrote:
I am working to make a minimal linuxbios
Note that LinuxBIOS is not really used anymore. The project changed it's name to coreboot.
without any payload or linux kernel,
..and *if* LinuxBIOS *is* used, then it refers to coreboot+Linux kernel as payload.
That said, if you want to control what happens with the system after coreboot, then you need a payload.
I just want to see a nice hello word string on the serial port and nothing else.
Then you need to disable all debugging in coreboot, it will otherwise send a bunch of messages over the serial port. And you will also need to make a minimal payload using libpayload. It will look like:
#include <libpayload.h> /* reservation: you may need other headers */
int main() { printf("Hello, world!\n"); while(1); }
That is then compiled with lpgcc -o hello.elf hello.c and you'll use hello.elf as payload. It's very simple.
is it possible to make such a bios? also to setup only the necessary HW registers and memory to see the printout message.
coreboot does complete init of the components in the system which it knows about from compile time, and which it finds during system enumeration at run time.
My guess is that your concern is boot speed rather than lines of code actually used. On smaller systems coreboot typically runs in a few hundred milliseconds. If that's not enough, then yes, you'll have some work to do in order to minimize the code being executed.
how should i do this?
Get a supported hardware and start experimenting. You can do some testing with QEMU also.
//Peter