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