Author
Topic: uboot + coreboot (Read 2218 times)

My preliminary investigation into a combination of uboot and coreboot seemed to show that the licenses were compatible. This would be helpful if a southbridge/FCH chip was used together with a PPC SoC CPU. Coreboot supports some AMD and Intel parts that might be useful in the hardware design. Some are supported in open-source modules, some are supported as binary blobs, which are x86 binary, but the x86 emulation in uboot originally intended to run graphic card init ROM code can probably be used for these blobs.

Trying to remember without having to read through code again, I think uboot is GPL2, maybe GPL2 or higher, and Coreboot as I rememeber was GPL2 but no mention of higher, so a combination would be a GPL 2 only result. I wouldn't mind a second set of eyes to confirm that.

I don't know much about firmware/bootloaders so sorry if my question is stupid but you are talking about x86 emulation, won't this make the system slower? Is it an emulation that just happen during the boot process?

an x86 emulation in the das-uboot firmware would be useful only for any x86-native roms such as on graphics cards, maybe sata cards, or comparable binary blobs of coreboot startup things, perhaps such as for amd southbridge peripherals, if that is the only available way to start them up during post/boot process. An MXM graphics card, much like a desktop pci/agp/pcie graphics card, will most likely have an x86 rom needing emulated to init that card. Anything that can be, would be c-code to compile as ppc-native for the ppc laptop's firmware. das-uboot already supports most modern PPC chips, and has the x86 emu for graphics card rom images. (AmigaOne MicroA1 MimiITX board has a Radeon chip, and the AMD x86 ROM image for this chip, which would normally be on the pci/agp card, is in the flash chip along with uboot as I understand, as radeon is soldered to the motherboard). Adding Coreboot components would give access to things such as AMD southbridge/FCH items like SATA, USB, whatever is supported there by Coreboot code or blobs. If a southbridge like this would be used, and if some things are only supported by precompiled x86 binary blobs, then the uboot's x86 emulator can be used to run those blobs in flash for boot init of that hardware. And anything in coreboot that is available as c sources would be compiled to ppc-native firmware in flash. if only a PPC chip is used, and no southbridge or other companion is used, then coreboot might not be required at all, and only Uboot is used, and its x86 emulator does only graphics chip rom init.

Once the firmware does its thing and turns the system over to your OS, then uboot, x86 emulator, and maybe coreboot kindof go away until next boot. The OS drivers are now fully responsible for hardware usage. if you want to run an x86 emulation inside the OS, then you need something completely different in your OS for such things, such as Qemu or whatever, as the uboot x86 emu is gone for now.