Hi Stephen,

On 2/20/25 20:58, Stephen Boyd wrote:
This series supports running U-Boot as a payload on sc7180 Trogdor
Chromebooks like Lazor or Wormdingler. This is a jumble of different
patches to get to the final goal of booting a Linux distro from the eMMC
on Lazor. I've yet to craft a USB stick with a stock distro but I'll
probably do that next week.

\o/ wow, this is awesome!

you might have some luck booting pmOS, we build depthcharge compatible images for trogdor

https://images.postmarketos.org/bpo/edge/google-trogdor/

There's also a generic ARM64 EFI image that should work. You may need to edit the image and remove efi/systemd/drivers/dtbloader.efi from the ESP:

https://images.postmarketos.org/bpo/edge/postmarketos-trailblazer/


The first few patches add support for the particular SoC sc7180 used on
Trogdor devices. The next set of patches move the coreboot logic out of
x86 into lib to find the coreboot tables on ARM and stash them in global
data. Then I have a handful of patches to let the coreboot commands and
utilities parse and populate various things like pstore and DT with the
proper data from the coreboot tables. Finally, I add the calls to
coreboot dram parsing code in the snapdragon board so that if coreboot
tables exist we get the memory info from coreboot instead of from an
earlier stage DTB.

I tested the spi driver with the crosec command. The cros bootflow
method almost works, but it seems like chromeos userspace blows up
spectacularly likely because crossystem can't figure out what board it
is running on. I don't really care too much about booting chromeos
userspace here so I'm going to ignore that problem and assume that I can
boot some Linux distro because the eMMC can be read by U-Boot and the
kernel boots.

Guess it's time I finally get my hands on one of these devices :D

Kind regards,

Stephen Boyd (12):
   clk: qcom: Add driver for sc7180
   pinctrl: qcom: Add driver for sc7180
   spi: Add Qualcomm GENI SPI driver
   coreboot: Move coreboot logic out of x86 to a generic place
   arm: Support running U-Boot as a coreboot payload on ARM64
   cmd/cbsysinfo: Skip the CMOS 'option_table' if it isn't present
   cmd/cbsysinfo: Allow on ARM as well
   coreboot: Parse sku_id/fw_config from coreboot tables
   pstore: Add pstore address from coreboot tables
   coreboot: Add /firmware/coreboot node to DT
   bootstd: cros: Return negative error code
   mach-snapdragon: Support booting as a coreboot payload

  arch/arm/Kconfig                              |   2 +
  arch/arm/cpu/armv8/Makefile                   |   1 +
  arch/arm/cpu/armv8/coreboot/Kconfig           |  22 +
  arch/arm/cpu/armv8/coreboot/Makefile          |   4 +
  arch/arm/cpu/armv8/coreboot/cpu.c             |  46 ++
  arch/arm/include/asm/global_data.h            |   3 +
  arch/arm/mach-snapdragon/board.c              |  18 +
  arch/x86/Kconfig                              |  21 -
  arch/x86/cpu/coreboot/coreboot.c              |   4 +-
  arch/x86/cpu/coreboot/sdram.c                 |  78 +--
  arch/x86/cpu/coreboot/timestamp.c             |   2 +-
  arch/x86/cpu/cpu.c                            |   2 +-
  arch/x86/cpu/i386/cpu.c                       |   2 +-
  .../x86/include/asm/arch-coreboot/timestamp.h |   2 +-
  arch/x86/lib/coreboot/Makefile                |   1 -
  arch/x86/lib/coreboot/cb_support.c            |   2 +-
  arch/x86/lib/coreboot_table.c                 |   2 +-
  arch/x86/lib/tables.c                         |   2 +-
  board/coreboot/coreboot/coreboot.c            |   2 +-
  board/coreboot/coreboot/sysinfo.c             |   2 +-
  board/google/chromebook_coral/coral.c         |   2 +-
  boot/bootmeth_cros.c                          |   2 +-
  boot/expo_build_cb.c                          |   2 +-
  boot/image-fdt.c                              |   4 +
  cmd/Kconfig                                   |   2 +-
  cmd/Makefile                                  |   1 +
  cmd/{x86 => }/cbsysinfo.c                     |   6 +-
  cmd/pstore.c                                  |  44 +-
  cmd/version.c                                 |   2 +-
  cmd/x86/Makefile                              |   1 -
  cmd/x86/cbcmos.c                              |   2 +-
  drivers/clk/qcom/Kconfig                      |   8 +
  drivers/clk/qcom/Makefile                     |   1 +
  drivers/clk/qcom/clock-sc7180.c               | 150 +++++
  drivers/misc/cbmem_console.c                  |   2 +-
  drivers/pinctrl/qcom/Kconfig                  |   7 +
  drivers/pinctrl/qcom/Makefile                 |   1 +
  drivers/pinctrl/qcom/pinctrl-sc7180.c         | 106 ++++
  drivers/serial/serial_coreboot.c              |   2 +-
  drivers/spi/Kconfig                           |  10 +
  drivers/spi/Makefile                          |   1 +
  drivers/spi/spi-geni-qcom.c                   | 527 ++++++++++++++++++
  drivers/video/coreboot.c                      |   2 +-
  .../x86/include/asm => include}/cb_sysinfo.h  |  12 +-
  .../include/asm => include}/coreboot_tables.h |  11 +
  lib/Kconfig                                   |  21 +
  lib/Makefile                                  |   2 +
  lib/coreboot/Makefile                         |   4 +
  {arch/x86/lib => lib}/coreboot/cb_sysinfo.c   | 142 ++++-
  {arch/x86/cpu => lib}/coreboot/sdram.c        |  15 +-
  50 files changed, 1165 insertions(+), 145 deletions(-)
  create mode 100644 arch/arm/cpu/armv8/coreboot/Kconfig
  create mode 100644 arch/arm/cpu/armv8/coreboot/Makefile
  create mode 100644 arch/arm/cpu/armv8/coreboot/cpu.c
  rename cmd/{x86 => }/cbsysinfo.c (99%)
  create mode 100644 drivers/clk/qcom/clock-sc7180.c
  create mode 100644 drivers/pinctrl/qcom/pinctrl-sc7180.c
  create mode 100644 drivers/spi/spi-geni-qcom.c
  rename {arch/x86/include/asm => include}/cb_sysinfo.h (95%)
  rename {arch/x86/include/asm => include}/coreboot_tables.h (98%)
  create mode 100644 lib/coreboot/Makefile
  rename {arch/x86/lib => lib}/coreboot/cb_sysinfo.c (75%)
  copy {arch/x86/cpu => lib}/coreboot/sdram.c (87%)


base-commit: 82d262ae162d859d3b0bbcd40a9464e890b009da

--
Caleb (they/them)

Reply via email to