Commit Graph

173 Commits (6c12afa996113b9737fcb36ae13962a687f49365)

Author SHA1 Message Date
Leah Rowe 6c12afa996 util/nvmutil: more human-friendly exit messages 2022-11-18 20:07:13 +00:00
Leah Rowe 501745630b fix part 1 checksum in t440p gbe.bin
i used "copy 0" in nvmutil to do this

the error people saw in nvmutil was benign. i'm literally
doing this just to prevent more errant user reports.
2022-11-18 19:42:26 +00:00
Leah Rowe a7b8d0cf0d update .gitignore 2022-11-17 12:08:06 +00:00
Leah Rowe b3b3642fe2 assimilate nvmutil 2022-11-17 12:07:09 +00:00
Leah Rowe 8740404e4e make background splash screen purple
to match the assimilated osboot, which had purple colours
2022-11-16 00:02:03 +00:00
Leah Rowe 3f12ef8530 bonerfix 2022-11-15 10:21:57 +00:00
Leah Rowe cf945dda0c blobs/inject: use nvmutil, not nvmutils 2022-11-14 10:26:46 +00:00
Leah Rowe 2589d367cc update the README 2022-11-14 10:11:54 +00:00
Leah Rowe 7af9953463 pragmatic system distribution guideline compliance
osboot is now part of libreboot, and will soon shut down.
libreboot now conforms to osboot policy.
2022-11-14 00:51:12 +00:00
Leah Rowe b5c25efed4 Merge branch 'u-boot-chromebooks' of alpernebbi/lbmk into master 2022-11-11 21:38:12 +00:00
Alper Nebi Yasak 61ac6c3f0b u-boot: Add peach pi chromebook configs
This adds U-Boot configuration for the Samsung Chromebook 2 13", also
known as "peach-pi" in the U-Boot upstream defconfigs. It uses the
shared tree for the "peach" baseboard. The config is almost the same as
upstream defconfig, but with REMAKE_ELF and POSITION_INDEPENDENT
enabled.

Untested since I don't have the peach pi chromebook. Note the there
doesn't seem to be any coreboot support for this chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:49:07 +03:00
Alper Nebi Yasak f848eb81e8 coreboot: Add peach pit chromebook configs
This adds coreboot configuration for the Samsung Chromebook 2 11", which
is based on the "google/peach_pit" mainboard in upstream coreboot. Also
adds a shared "peach" board directory to share with others having the
same baseboard.

The config is based on the following defconfig:

    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x00400000
    CONFIG_UART_FOR_CONSOLE=3
    CONFIG_BOARD_GOOGLE_PEACH_PIT=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the peach pit chromebook. This also fails
without a non-free 3rdparty/blobs/cpu/samsung/exynos5420/bl1.bin blob.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:48:37 +03:00
Alper Nebi Yasak e08e3da244 u-boot: Add peach pit chromebook configs
This adds U-Boot configuration for the Samsung Chromebook 2 11", also
known as "peach-pit" in the U-Boot upstream defconfigs. Also adds a
shared "peach" board directory to share with others having the same
baseboard. The config is almost the same as upstream defconfig, but with
REMAKE_ELF and POSITION_INDEPENDENT enabled.

Untested since I don't have the peach pit chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:48:37 +03:00
Alper Nebi Yasak 8584fcc1ea coreboot: Add spring chromebook configs
This adds coreboot configuration for the HP Chromebook 11 G1, which is
part of the "google/daisy" mainboard in upstream coreboot. It uses the
shared tree for the "daisy" baseboard.

The config is based on the following defconfig:

    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x00400000
    CONFIG_UART_FOR_CONSOLE=3
    CONFIG_BOARD_GOOGLE_DAISY=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_EC_GOOGLE_CHROMEEC_I2C_BUS=0x4
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the spring chromebook. This also fails
without a non-free 3rdparty/blobs/cpu/samsung/exynos5250/bl1.bin blob.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:48:21 +03:00
Alper Nebi Yasak f9f5d5fcbd u-boot: Add spring chromebook configs
This adds U-Boot configuration for the HP Chromebook 11 G1, also known
as "spring" in the U-Boot upstream defconfigs. It uses the shared tree
for the "daisy" baseboard. The config is almost the same as upstream
defconfig, but with REMAKE_ELF and POSITION_INDEPENDENT enabled.

Untested since I don't have the spring chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:48:21 +03:00
Alper Nebi Yasak 2dcb7cab72 coreboot: Add snow chromebook configs
This adds coreboot configuration for the Samsung Chromebook - XE303,
which is based on the "google/daisy" mainboard in upstream coreboot.
Also adds a shared "daisy" board directory to share with others having
the same baseboard.

The config is based on the following defconfig:

    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x00400000
    CONFIG_UART_FOR_CONSOLE=3
    CONFIG_BOARD_GOOGLE_DAISY=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_EC_GOOGLE_CHROMEEC_I2C_BUS=0x4
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the snow chromebook. This also fails without
a non-free 3rdparty/blobs/cpu/samsung/exynos5250/bl1.bin blob.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:47:45 +03:00
Alper Nebi Yasak be8bebaa38 u-boot: Add snow chromebook configs
This adds U-Boot configuration for the Samsung Chromebook - XE303, also
known as "snow" in the U-Boot upstream defconfigs. Also adds a shared
"daisy" board directory to share with others having the same baseboard.
The config is almost the same as upstream defconfig, but with REMAKE_ELF
and POSITION_INDEPENDENT enabled.

Untested since I don't have the snow chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:11:09 +03:00
Alper Nebi Yasak c97f8e5c62 coreboot: Add nyan blaze chromebook configs
This adds coreboot configuration for the HP Chromebook 14 G3, which is
based on the "google/nyan_blaze" mainboard in upstream coreboot. It uses
the shared tree for the "nyan" baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x400000
    CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=4
    CONFIG_BOARD_GOOGLE_NYAN_BLAZE=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_DRIVERS_AS3722_RTC_BUS=4
    CONFIG_DRIVERS_AS3722_RTC_ADDR=0x40
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the nyan blaze chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:53 +03:00
Alper Nebi Yasak 330f985da6 u-boot: Add nyan blaze chromebook configs
This adds U-Boot configuration for the HP Chromebook 14 G3, also known
as "nyan-blaze" but not in the U-Boot upstream defconfigs. Apparently
the "nyan-big" defconfig can also work for this version. It uses the
shared tree for the "nyan" baseboard. The config is almost the same as
upstream defconfig, but with REMAKE_ELF and POSITION_INDEPENDENT
enabled.

Untested since I don't have the nyan blaze chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:53 +03:00
Alper Nebi Yasak ddc695a296 coreboot: Add nyan big chromebook configs
This adds coreboot configuration for the Acer Chromebook 13 (CB5-311,
C810), which is based on the "google/nyan_big" mainboard in upstream
coreboot. Also adds a shared "nyan" board directory to share with
others having the same baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x400000
    CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=4
    CONFIG_BOARD_GOOGLE_NYAN_BIG=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_DRIVERS_AS3722_RTC_BUS=4
    CONFIG_DRIVERS_AS3722_RTC_ADDR=0x40
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the nyan big chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:39 +03:00
Alper Nebi Yasak 0d696ee36f u-boot: Add nyan big chromebook configs
This adds U-Boot configuration for the Acer Chromebook 13 (CB5-311,
C810), also known as "nyan_big" in the U-Boot upstream defconfigs. Also
adds a shared "nyan" board directory to share with others having the
same baseboard. The config is almost the same as upstream defconfig, but
with REMAKE_ELF and POSITION_INDEPENDENT enabled.

Untested since I don't have the nyan big chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:39 +03:00
Alper Nebi Yasak 2e0f13d92a coreboot: Add veyron mickey chromebit configs
This adds coreboot configuration for the ASUS Chromebit CS10, which is
based on the "google/veyron_mickey" mainboard in upstream coreboot. It
uses the shared tree for the "veyron" baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x400000
    CONFIG_BOARD_GOOGLE_VEYRON_MICKEY=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the veyron mickey chromebit.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:30 +03:00
Alper Nebi Yasak 330c62ae10 u-boot: Add veyron mickey chromebit configs
This adds U-Boot configuration for the ASUS Chromebit CS10, also known
as "chromebit_mickey" in the U-Boot upstream defconfigs. It uses the
shared tree for the "veyron" baseboard. The config is almost the same as
upstream defconfig, but with REMAKE_ELF and POSITION_INDEPENDENT
enabled.

Untested since I don't have the veyron mickey chromebit.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:30 +03:00
Alper Nebi Yasak f84209ceeb coreboot: Add veyron jerry chromebook configs
This adds coreboot configuration for a few white-label chromebooks which
are based on the "google/veyron" mainboard in upstream coreboot. It uses
the shared tree for the "veyron" baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x400000
    CONFIG_BOARD_GOOGLE_VEYRON_JERRY=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have any of the veyron jerry chromebooks.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:21 +03:00
Alper Nebi Yasak fc7794a12c u-boot: Add veyron jerry chromebook configs
This adds U-Boot configuration for a few white-label chromebooks, known
as "chromebook_jerry" in the U-Boot upstream defconfigs. It uses the
shared tree for the "veyron" baseboard. The config is almost the same as
upstream defconfig, but with REMAKE_ELF and POSITION_INDEPENDENT
enabled.

Untested since I don't have any of the veyron jerry chromebooks.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:21 +03:00
Alper Nebi Yasak bbba94ed8f coreboot: Add veyron minnie chromebook configs
This adds coreboot configuration for the ASUS Chromebook Flip C100PA,
which is based on the "google/veyron" mainboard in upstream coreboot. It
uses the shared tree for the "veyron" baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x400000
    CONFIG_BOARD_GOOGLE_VEYRON_MINNIE=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the veyron minnie chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:11 +03:00
Alper Nebi Yasak bc47f8cc25 u-boot: Add veyron minnie chromebook configs
This adds U-Boot configuration for the ASUS Chromebook Flip C100PA, also
known as "chromebook_minnie" in the U-Boot upstream defconfigs. It uses
the shared tree for the "veyron" baseboard. The config is almost the
same as upstream defconfig, but with REMAKE_ELF and POSITION_INDEPENDENT
enabled.

Untested since I don't have the veyron minnie chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:10:11 +03:00
Alper Nebi Yasak 2ed1111d83 coreboot: Add veyron speedy chromebook configs
This adds coreboot configuration for the ASUS Chromebook C201PA, which
is based on the "google/veyron" mainboard in upstream coreboot. Also
adds a shared "veyron" board directory to share with others having the
same baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x400000
    CONFIG_BOARD_GOOGLE_VEYRON_SPEEDY=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000

Untested since I don't have the veyron speedy chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:09:57 +03:00
Alper Nebi Yasak fa5535660b u-boot: Add veyron speedy chromebook configs
This adds U-Boot configuration for the ASUS Chromebook C201PA, also
known as "chromebook_speedy" in the U-Boot upstream defconfigs. Also
adds a shared "veyron" board directory to share with others having the
same baseboard. The config is almost the same as upstream defconfig, but
with REMAKE_ELF and POSITION_INDEPENDENT enabled.

Untested since I don't have the veyron speedy chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:09:57 +03:00
Alper Nebi Yasak 0ae2398061 coreboot: Add bob chromebook configs
This adds coreboot configuration for the ASUS Chromebook Flip C101,
which is based on the "google/gru" mainboard in upstream coreboot. It
uses the shared tree for the "gru" baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x00800000
    CONFIG_BOARD_GOOGLE_BOB=y
    CONFIG_DRIVER_TPM_SPI_BUS=0x0
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000
    CONFIG_PAYLOAD_FIT_SUPPORT=y

Untested since I don't have the bob chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:09:39 +03:00
Alper Nebi Yasak ff39bba2fa u-boot: Add bob chromebook configs
This adds U-Boot configuration for the ASUS Chromebook Flip C101,
also known as "chromebook_bob" in the U-Boot upstream defconfigs. It
uses the shared tree for the "gru" baseboard.

The config has the following diffconfig from kevin:

    # chromebook_bob instead of chromebook_kevin
     DEFAULT_DEVICE_TREE "rk3399-gru-kevin" -> "rk3399-gru-bob"
     DEFAULT_FDT_FILE "rockchip/rk3399-gru-kevin.dtb" -> "rockchip/rk3399-gru-bob.dtb"
     OF_LIST "rk3399-gru-kevin" -> "rk3399-gru-bob"
     SPL_OF_LIST "rk3399-gru-kevin" -> "rk3399-gru-bob"
     TARGET_CHROMEBOOK_BOB n -> y
     TARGET_CHROMEBOOK_KEVIN y -> n

    # Display resolution is 1280x800, and no need for the big font
     VIDEO_FONT_8X16 n -> y
     VIDEO_FONT_TER16X32 y -> n
     VIDEO_ROCKCHIP_MAX_XRES 2400 -> 1280
     VIDEO_ROCKCHIP_MAX_YRES 1600 -> 800

Untested since I don't have the bob chromebook.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:09:39 +03:00
Alper Nebi Yasak af46cbffe8 coreboot: Add kevin chromebook configs
This adds coreboot configuration for the Samsung Chromebook Plus (v1),
which is based on the "google/gru" mainboard in upstream coreboot. Also
adds a shared "gru" board directory to share with others having the same
baseboard.

The config is based on the following defconfig:

    # CONFIG_USE_BLOBS is not set
    CONFIG_VENDOR_GOOGLE=y
    CONFIG_CBFS_SIZE=0x00800000
    CONFIG_BOARD_GOOGLE_KEVIN=y
    CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
    CONFIG_UART_PCI_ADDR=0x0
    CONFIG_I2C_TRANSFER_TIMEOUT_US=500000
    CONFIG_PAYLOAD_FIT_SUPPORT=y

Most things work, but one significant problem is that the board can't power
off properly. It also happens with my manual U-Boot-only builds, but not
when I manually build coreboot with a U-Boot payload. Not sure why it is
happening here as well.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-29 12:09:18 +03:00
Alper Nebi Yasak 3865563551 u-boot: Add kevin chromebook configs
This adds U-Boot configuration for the Samsung Chromebook Plus (v1),
also known as "chromebook_kevin" in the U-Boot upstream defconfigs. Also
adds a shared "gru" board directory to share with others having the same
baseboard.

It uses v2022.07 with some quality-of-life patches. The first one is a
clock adjustment to match coreboot clocks for the video output, the
second one is a series about text cursor support and larger fonts. These
are because the display has a high resolution of 2400x1600 at 12.3".

The config has the following diffconfig from the upstream defconfig for
this board:

    # For chainloading from depthcharge like a payload (RW_LEGACY).
    # Not everything might be necessary, but didn't test without these.
     INIT_SP_RELATIVE n -> y
     LNX_KRNL_IMG_TEXT_OFFSET_BASE 0x00200000 -> 0x18000000
     POSITION_INDEPENDENT n -> y
     SYS_TEXT_BASE 0x00200000 -> 0x18000000
    +SYS_INIT_SP_BSS_OFFSET 524288

    # Higher speeds for eMMC
     MMC_HS200_SUPPORT n -> y
     MMC_HS400_ES_SUPPORT n -> y
     MMC_HS400_SUPPORT n -> y
     MMC_IO_VOLTAGE n -> y
     MMC_SDHCI_SDMA n -> y
     MMC_SPEED_MODE_SET n -> y
    +MMC_UHS_SUPPORT y

    # Build the u-boot.elf to use as a payload
     REMAKE_ELF n -> y

    # Slightly faster video output
     VIDEO_COPY n -> y

    # Larger fonts per the applied series
     VIDEO_FONT_8X16 y -> n
     VIDEO_FONT_TER16X32 n -> y

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 17:42:15 +03:00
Alper Nebi Yasak 6d6bd5eee0 build/roms: Rebuild cbutils module before starting coreboot build
In recent coreboot versions, running distclean started to erase the
cbfstool binary we built earlier in the util/cbfstool dir via the
cbutils build script call. The coreboot build puts it in a different
directory, and the roms build script can't find it when trying to add
payloads to the roms. This doesn't make the script fail (because set -e
is stupid like that), and the build appears to succeed if you don't look
close enough to see the "cbfsutil not found" error.

Build the coreboot utils we want at the places we want them after
calling distclean, so that we can actually use cbfsutil and avoid
silently-broken roms with newer coreboot versions.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 13:09:52 +03:00
Alper Nebi Yasak 61ede99832 build/roms: Support using U-Boot as a coreboot payload
This enables embedding U-Boot into the coreboot roms as the payload. For
now, the ELF file generated by enabling CONFIG_REMAKE_ELF is used, which
includes the U-Boot binary and the board-specific device-tree file. It
might be better to use the FIT payload support for U-Boot, but that was
reportedly broken and is not tested yet.

Coreboot boards can specify payload_uboot="y" in their board.cfg to
enable building a rom with U-Boot as the payload, which is built from
the U-Boot board with the same name. Boards can further specify a
uboot_config option, to choose which board-specific config file U-Boot
should be built with.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 13:09:52 +03:00
Alper Nebi Yasak a69855f7e4 build/roms: Build 32-bit crossgcc for AArch64 as well
The 32-bit ARM cross compiler toolchain is used to build parts of
arm-trusted-firmware needed by AArch64 boards, compile the toolchain for
those boards as well.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 13:09:52 +03:00
Alper Nebi Yasak 769f18f2f6 build/roms: Fix building for ARMv7 and AArch64 boards
The code that compiles coreboot crossgcc changes the working directory
to the coreboot directory, and the following code cannot find the lbmk
scripts that it needs to run. Compile ARMv7 and AArch64 cross compilers
in a subshell like in the x86 case so the rest of the script can work.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 13:09:52 +03:00
Alper Nebi Yasak 9bfbdb598d scripts: Add helpers to modify and update U-Boot configs
These are almost verbatim copies of coreboot versions, but using
'u-boot' instead of 'coreboot' and 'ub*' instead of 'cb*'.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 13:09:52 +03:00
Alper Nebi Yasak 1dc05e4066 build/payload: Add helper script to build U-Boot as payload
This enables building U-Boot for boards which have config files in
resources/u-boot, and copying built files that could be usable to make
coreboot payloads. Right now, there is no such board in this repo.

The most important file here is "u-boot.elf", which is a combination of
the U-Boot binary and the appropriate device-tree file for the board.
Building this needs CONFIG_REMAKE_ELF=y on the U-Boot part, and using
this with CONFIG_PAYLOAD_ELF=y on the coreboot build works fine.

Note that this isn't enough to make U-Boot-only releases, since
low-level prerequisites like arm-trusted-firmware aren't passed in to
the U-Boot build system. Coreboot builds its own copy of TF-A and sets
it up on the board, so using these U-Boot builds as payloads should
still work.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-28 13:09:52 +03:00
Alper Nebi Yasak cf29574165 download: Use shallow clones for big projects
Downloading coreboot and U-Boot takes quite the disk space and bandwith.
We don't need to download entire repos, only the revisions that we are
interested in.

Use the --depth=1 option to only download the files we need. Since the
initial clones may not have our target revision, always try to fetch it.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak ef39e05bb5 download: Allow keeping .git dirs with NODELETE=git
Keeping the git repositories is useful while development, e.g. to avoid
git cloning repositories over and over again while debugging download
scripts. Setting the NODELETE environment variable keeps the blobs and
the git repositories. Allow a slightly finer-tuned version of this where
we can keep only the git-related files by setting the variable to "git".

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 764a439a8c u-boot-libre: Add support for deblobbing U-Boot v2022.07
Add a 'v2022.07' pseudo-board for the U-Boot download script with the
default blobs list, and mark the version as supported in u-boot-libre
release script.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 270272eb61 download/u-boot: Remove .git folders as well
The coreboot download removes .git folders as they still contain the
removed blobs, remove those in the U-Boot version as well.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 820b8e706e download/u-boot: Support running extra commands from board dirs
Although it's unlikely, boards might want to run extra commands after
the board-specific U-Boot directories are prepared. Copy the existing
mechanism for that from the coreboot download script to the U-Boot one.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak eae6b35dab download/u-boot: Support applying patches from board dirs
Boards may need different sets of patches to be applied to their U-Boot
builds, copy the existing mechanism from the coreboot download script to
the U-Boot download script.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 454364ccb8 download/u-boot: Try to update submodules as in coreboot script
The coreboot download script tries to update submodules, since coreboot
does use git submodules to retrieve and compile the projects it depends
on. Although U-Boot doesn't use submodules, try to update them anyway to
match the coreboot download script.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 0aeb69b5ad download/u-boot: Use GitHub mirror as fallback
The coreboot download script uses GitHub as a fallback if the upstream
coreboot is unavailable, use a similar fallback for U-Boot as well.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 7b552bd299 download/u-boot: Support reading tree and revision from board.cfg
Boards may want to specify a board-specific U-Boot revision. At the very
least, pseudo-boards for u-boot-libre releases will need to specify their
U-Boot versions somehow.

Copy the existing mechanism from download/coreboot for specifying
build info with board.cfg files. Specify the commit hash for the
'v2021.07' pseudo-board, and 'master' as the default.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 8dd1a24504 download/u-boot: Prepare files per board instead of per revision
The U-Boot download script is designed to help with releasing
u-boot-libre and it can only prepare a generic U-Boot v2021.07 tree.
However, we will need to build board-specific versions of U-Boot to be
able to use it as a coreboot payload effectively.

As a first step toward that, make the download script prepare per-board
copies of U-Boot v2021.07. Then, add a 'v2021.07' pseudo-board for the
u-boot-libre release script to work on.

The u-boot-libre deblob script hash ends up chaning due to copying my
author attribution from the download script, update its hash.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak d8da9b51e2 .gitignore: Ignore u-boot directory
The "u-boot" directory and its contents are created at build-time,
ignore it in git.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00