[coreboot] Porting coreboot to new board

Youness Alaoui kakaroto at kakaroto.homelinux.net
Tue May 29 20:15:48 CEST 2018


Hi,

I suggest you read the wiki :
https://www.coreboot.org/Developer_Manual and
https://www.coreboot.org/Motherboard_Porting_Guide
I would also suggest maybe (optional) that you read my blog posts
about my own experience porting coreboot to a new motherboard :
https://puri.sm/posts/diving-back-into-coreboot-development/
https://puri.sm/posts/librem-13-coreboot-report-january-12-2017/
https://puri.sm/posts/librem-13-coreboot-report-february-3rd-2017/
https://puri.sm/posts/librem-13-coreboot-report-february-25th-2017/
https://puri.sm/posts/coreboot-on-the-librem-13-v2-part-1/
https://puri.sm/posts/coreboot-on-the-skylake-librems-part-2/

To answer your specific questions : It depends on your machine, is it
AMD or is it Intel? Is it Ivybridge or Broadwell or Skylake or
Apollolake, etc.. ? Does it have soldered RAM or does it use SODIMMs?
Depending on the CPU architecture, the CPU 'brand' and even the model
of the CPU itself, the port will be done very differently. You'd first
want to find a mainboard that is as close as your current one, and
start modifying that, there isn't "one mainboard to use as base"
because the code, files, etc.. are almost unique depending on the
CPU/northbridge/southbridge model, so use the closest one as your
base.
As far as I know, the file board_info.txt is just information about
the board, it's not getting used by coreboot, it's more of an
indication for developers.
As for the other files, it will depend once again on your board. I'd
say Kconfig and devicetree.cb are mandatory, the rest may or may not
be mandatory depending on your hardware. The cmos.layout for example
isn't mandatory, but you'd probably need it if you enable CMOS support
in your KConfig, The 'spd' files containing the RAM's SPD EEPROM
information are mandatory only if your board has soldered RAM (common
in laptops but not in desktops), but they are not needed (and actually
can't be provided) if the motherboard has SODIMM slots instead. So it
all depends. Your best bet is to look at what's there and see if you
need it or not and if you do, understand what it's for and what needs
to be changed in order to match your board.
Don't forget that before you get your board to boot with coreboot, you
will probably have to flash it and brick your board 100 times, so make
sure you have a backup of your original ROM copied somewhere safe and
that you have the hardware to re-program the SPI flash externally (and
test that it works), before you attempt to flash it.
Also, make sure you are patient, and ready to learn!

Good luck!
Youness.


On Mon, May 28, 2018 at 10:31 PM, Zvi Vered <veredz72 at gmail.com> wrote:
> Hello,
>
> I have to port coreboot to a new "Mainboard" not listed in menuconfig.
> Is there a basic "Mainboard" I should use as a starting point that will be
> copied to my board ?
>
> The file board_info.txt contains few parameters.
> How can I know the meaning of each parameter and its possible values ?
>
> The board kontron/kt690 for example contains few files like: cmos.layout,
> devicetree.cb, etc
> Are all those files mandatory ?
> Is there a list of mandatory files or routines required in order to port a
> board ?
>
> Your help is highly appreciated.
> Best regards,
> Zvika
>
> --
> coreboot mailing list: coreboot at coreboot.org
> https://mail.coreboot.org/mailman/listinfo/coreboot



More information about the coreboot mailing list