Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable reusing coreboot release toolchains for forks #1462

Merged
merged 13 commits into from
Aug 15, 2023

Commits on Aug 11, 2023

  1. modules/coreboot: Clean up module, don't share git build directories

    Remove coreboot 4.8.1, 4.13, and 4.17, which were all unused.
    
    Remove extra copies of EXTRA_FLAGS which duplicated the common
    definition.  The only difference was
    -Wno-error=address-of-packed-member, the warning is now disabled
    entirely everywhere with -Wno-address-of-packed-member.
    
    Use separate coreboot_version values for talos_2, nitrokey, and purism,
    which gives each a separate build directory.
    
    Move conditional blob definitions out of each coreboot version.
    
    Fix condition for coreboot-blobs - whether a module is a git clone
    actually depends on non-empty <module>_repo, not <module>_version==git.
    Fix the test so git versions of coreboot can have arbitrary names.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    fb6b811 View commit details
    Browse the repository at this point in the history
  2. modules/coreboot: Delete unused remnants of using musl toolchain

    At one time coreboot was built using Heads' musl toolchain, but this
    was later reverted.  coreboot builds with its own toolchain again.
    
    CROSS= has no effect on coreboot proper (only exception is PPC64
    skiboot payload).  It was added to coreboot by a patch that was deleted
    in 8e44853.  COREBOOT_IASL was set to the default, that was only needed
    when the toolchain was being overridden to override iasl back to the
    coreboot one.
    
    ppc64 still specifies CROSS= since skiboot is unable to find coreboot's
    toolchain from XGCCPATH but checks CROSS.  This builds skiboot with the
    Heads toolchain as before.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    3695489 View commit details
    Browse the repository at this point in the history
  3. patches/coreboot-*: Remove unused patches

    Remove patches for coreboot 4.8.1, 4.13, 4.14, and 4.17, which are no
    longer used.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    cd73574 View commit details
    Browse the repository at this point in the history
  4. modules/coreboot: Define each coreboot version as a separate module

    Define a separate module for each coreboot version, so the module used
    to build the ROM will optionally be able to reference the toolchain
    from a different module.
    
    This will allow coreboot fork builds to use the toolchain from the
    corresponding release.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    786cf09 View commit details
    Browse the repository at this point in the history
  5. modules/coreboot: Reuse release toolchain for fork builds

    Reuse the toolchain from a coreboot release for fork builds.  Either
    the fork or the release can be built first, in either case the
    release's toolchain is built at the default location and reused for
    later builds.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    0c024b1 View commit details
    Browse the repository at this point in the history
  6. modules/coreboot: Use a specific file to mark the toolchain build

    Use .heads-toolchain to mark that the toolchain was built rather than
    .xcompile.  coreboot doesn't generate .xcompile until the build step,
    so all modules had to build successfully before we would stop trying to
    to rebuild the toolchain.  Build steps should generally produce the
    indicated outputs too, which was not occurring here.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    8f95d0b View commit details
    Browse the repository at this point in the history
  7. modules/coreboot: Don't try to share toolchain for talos_2 fork

    The skiboot build fails to find the toolchain when it's not in the
    default location.  There is only one ppc64 board anyway, so there's no
    point trying to share a toolchain for now.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    1b81fb2 View commit details
    Browse the repository at this point in the history
  8. Makefile: Don't double version number in patches for versioned modules

    Default the patch version to empty if the module name already includes
    the version.  Fixes application of coreboot patches.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    c12b8ce View commit details
    Browse the repository at this point in the history
  9. boards/librem_* (except l1um): Remove CONFIG_PURISM_BLOBS=y

    These boards get purism-blobs as a submodule of the purism coreboot
    fork.  modules/coreboot used to skip the purism-blobs dependency for
    this fork, but the module is not needed at all for these boards.
    
    librem_l1um keeps CONFIG_PURISM_BLOBS=y since it is built from patched
    coreboot 4.11.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    555dde0 View commit details
    Browse the repository at this point in the history
  10. modules/coreboot: Remove errant _depend variable

    This was spelled wrong - it's actually '_depends'.  'initrd' isn't a
    module any more so the value doesn't make sense, remove it.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    d8a89e7 View commit details
    Browse the repository at this point in the history
  11. fixup modules/coreboot: Fix purism-blobs dependency for librem_l1um

    Two := assignments were factored out together, the second overwrote the
    first.  Fix to +=, and remove the nitrokey assignment since it came
    from a branch.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    c2df9f3 View commit details
    Browse the repository at this point in the history
  12. modules/coreboot: Clarify PPC64 toolchain comments

    CROSS= is needed for skiboot on PPC64 due to different endianness
    relative to coreboot.
    
    The talos_2 fork doesn't share the toolchain because it is the only
    _fork_, not board, to be precise.  We could add more boards using that
    fork without having to create a shared toolchain, it only matters if we
    add another fork or start building boards from the upstream release
    too.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    38e9d47 View commit details
    Browse the repository at this point in the history
  13. modules/coreboot: Don't try to share toolchain for purism yet

    Nothing else shares the 4.20.1 toolchain yet, and upcoming forks are
    based on older releases.  We'll share it when other boards update to
    4.20.1.
    
    Signed-off-by: Jonathon Hall <[email protected]>
    JonathonHall-Purism committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    a5689c4 View commit details
    Browse the repository at this point in the history