Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/37391 )
Change subject: add transforms ......................................................................
Patch Set 6:
Would you mind to split this into separate commits? There are at least 4 things done here:
* Some random cleanup lines for bayou. * Giving NO_RELOCATABLE_RAMSTAGE a prompt. * Adding payloads/payloader. * Adding transforms.
Only the last point is mentioned in the summary line. I have some comments that would better be placed on individual commits, e.g.
* Why not make the prompt for RELOCATABLE_RAMSTAGE? * How does it relate to `config RAMPAYLOAD`? * What other transforms to imagine? Do they have special dependencies? * If it's just an additional makefile why not place it below util/?
Also, please adhere to the line length limit in commit messages. For reference this is how Gerrit shows yours in a narrow browser window (it breaks at 72 chars):
add transforms
Transforms transform coreboot ROM images to add or remove capabilities. They let us test out new ideas for coreboot while not impacting the coreboot source in any way.
So, for example, should we want an image with a rampayload, we can run the normal build process and then transform the resulting rom image as needed.
We can implement a postcar stage which loads a ram payload directly, and do so in a way which has no impact on the coreboot source.
This not only lets us change the output of the build process, it can be implemented without changing the coreboot source. Further, since the transform Makefile depends on the presence of a coreboot.rom in the directory, we can avoid the build step if we're just trying to transform a ROM we read from a FLASH part. Just flashrom -r the image, drop it into coreboot.rom in this directory, and no build will be attempted.
This example represents the first steps of building a rampayload transform.
Transforms should have zero impact on the $(top)/src tree, since they are intended to be able to be used on prebuilt images. I did have to make one thing user selectable, namely, NO_RELOCATABLE_RAMSTAGE.