Skip to content

Conversation

rarbab
Copy link
Member

@rarbab rarbab commented Jun 9, 2025

Long overdue update to modern versions of buildroot, the kernel, and skiboot, for security and bug fixes.

On a RHEL8 builder, every defconfig in openpower/configs still builds for me.

rarbab added 10 commits March 18, 2025 11:48
Petitboot is now upstream in the base set of buildroot packages. Remove
it from the op-build br2-external tree, and remove things that are now
automatically selected by CONFIG_PACKAGE_PETITBOOT=y from the buildroot
config.

The udev rules pertaining to SCSI devices, software RAID devices,
and removable devices are not upstream. Move them to the overlay.

Also move petituser's dotfiles to the overlay, to retain the "root shell by
default" behavior from commit db6ca35 ("petitboot: Enable user
separation").

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
With the newer buildroot,

* Building for power8 is now the default for ppc64le
* GCC 11 is no longer available
* The default optimization level has changed from -Os to -O2

Adjust to these changes and normalize our configs by running

  openpower/scripts/update-defconfigs.sh \
	--disable BR2_GCC_VERSION_11_X \
	--enable BR2_OPTIMIZE_S

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
Due to buildroot commit 8f88a644ed7d ("support/scripts/apply-patches.sh:
set the maximum fuzz factor to 0"), a couple of patches now fail to
apply. Adjust them to apply without any fuzz.

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
There is no difference between our custom device_table.txt and the
default one. Remove it to keep us in sync with buildroot updates going
forward.

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
Cherry-pick the changes these buildroot commits made to /etc/fstab:

  8196b29 ("skeleton: fix permissions on /dev/pts/ptmx")
  d380dde ("skeleton: make /run a proper directory/filesystem")

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
The inittab in our overlay is currently missing the changes from these
buildroot commits:

  22fde22 ("Create and mount /dev/shm")
  d39641c ("target/generic: inittab: fix devpts mounts when devtmpfs is used")
  bf01e51f3c62 ("skeleton + init: prepare /run/lock and adjust compat symlinks")
  d524cc7 ("busybox: add an inittab entry to activate swap")
  456ea98 ("busybox: add /dev/std{in, out, err} symlinks to inittab")
  fb4c041 ("inittab: disable reboot by ctrl-alt-del")

Our inittab is really just the buildroot default with every line
modified to suppress console output. To prevent us from getting out of
sync going forward, stop overlaying a new inittab and just use a
post-build script to modify whatever buildroot provides instead.

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
Update to the latest v5.10 kernel for security and bug fixes. Make sure
the firmware whitelist includes what this kernel will look for.

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
Abhishek Singh Tomar (15):
      Fix array-bound compilation warnings
      Fix compilation waning "Missing #interrupt-cells"
      core/pldm: Fix pdr handle to add first pdr request
      core/pldm: Fix dangling point issue
      core/pldm: Fix Use of uninitialised value
      uart: Fix uninitialised comparison
      uart: Handle read failure case in UART communication
      core/pldm/test: Implement PLDM self test common api
      core/pldm/test: Add self-test for PLDM file I/O message
      core/pldm/test: Add pldm BIOS Specification Self test
      core/pldm/test: Add self test for lid read
      core/pldm/test: Add tests for PLDM platform PDR requests
      core/pldm/test: Add self test for pldm platform shutdown
      core/pldm/test: Add tests for platform poweroff and restart
      core/pldm/test: Add PLDM FRU table self test

Aditya Gupta (4):
      plat/qemu: add support for Power11 platform
      iohub: Add HUB ID for everest systems
      flash: Handle nullptr dereference of system_flash
      Fix -Werror=unterminated-string-initialization errors

Andreas Schwab (1):
      Support cross compiling on RISC-V

Aneesh Kumar K.V (1):
      flash: Make PNOR partition encoding size 64 bit safe.

Athira Rajeev (3):
      core/device: Add function to return child node using name at substring "@"
      hw/imc: Update IMC code to use dt_find_by_name_before_addr for checking dt nodes
      hw/imc: Update IMC PMU node names for power10

Christophe Lombard (47):
      libc: Expand limits.h and include in stdint.h
      libc: Add ENXIO error code
      include: Expand print conversion specificier macros
      include: Provide endian conversion functions
      include/asm: Create asm_byteorder.h header file
      pldm: Export logging feature
      libmctp: Import libmctp library handling MCTP protocol
      pldm/libpldm: Import libpldm library handling PLDM protocol
      pldm/ibm/libpldm: Import oem IBM libpldm library
      hw: Move lpc firmware space helpers
      hw/ast-bmc: Initialize ast lpc mctp binding
      core/pldm: PLDM over MCTP Binding
      core/pldm: Add PLDM responder support
      core/pldm: Encode GetTID response
      core/pldm: Encode GetPLDMTypes response
      core/pldm: Encode GetPLDMCommands response
      core/pldm: Encode GetPLDMVersion response
      core/pldm: Implement PLDM requester
      core/pldm: PLDM for Platform Monitoring and Control Specification
      core/pldm: Encode state effecter request
      core/pldm: Send a system firmware Graceful Restart request
      core/pldm: Send a system chassis Off-Soft Graceful request
      core/pldm: PLDM for BIOS Control and Configuration Specification
      core/pldm: Find lid attribute from bios tables
      core/pldm: PLDM for FRU data Specification
      core/pldm: Update "bmc-firmware-version" device-tree field
      core/pldm: PLDM for File-IO operations
      core/pldm: Add file io read request
      core/pldm: Add file io write request
      core/pldm: Get file handle and file length
      core/pldm: Lid ids string parsing
      core/pldm: Register PLDM as a blocklevel device
      core/pldm: Handle Watchdog timer.
      core/pldm: Decode the SetEventReceiver request
      core/pldm: Decode the PlatformEventMessage request
      core/pldm: Decode the GetStateSensorReadings request
      core/pldm: Decode the SetStateEffecterStates request
      core/pldm: Find PDR record by record handle
      core/pldm: Encode PLDM PDR Repository Change eventData
      core/pldm: Create boot progress and terminus locator in the given repo
      core/pldm: Decode the GetPDR request
      core/pldm: Decode the GetFRURecordTableMetadata request
      core/pldm: Decode the GetFruRecordTable request
      core/pldm: Update boot progress state
      core/pldm: Register OPAL_RTC_READ/WRITE calls back
      core/pldm: Register OPAL_IPMI_SEND/RECV calls back
      platforms/astbmc: Enable PLDM support

Cédric Le Goater (3):
      CI: Update centos8 runs with P8 and P9 mambo
      CI: Update runs with P10 mambo
      test/qemu: Add PCI devices

Dan Horák (2):
      ci: remove Fedora 33
      external/opal-prd: generate path to opal-prd in its service file

Daniel Axtens (1):
      secvar/pkcs7: fix a wrong sizeof()

Eddie James (1):
      external: Add support for aarch64

Eric Richter (3):
      libstb/create-container: avoid using deprecated APIs when compiling with OpenSSL 3.0
      tpm_i2c_nuvoton: Use struct of constants instead of macros
      tpm_i2c_nuvoton: Add support for Nuvoton 75x TPMs

Frederic Barrat (8):
      CI: Update python dependency on Ubuntu rolling
      CI: Add testing on Ubuntu 22.04 LTS
      CI: Clean up and re-enable testing on Fedora rawhide
      xive: Fix NSR value when dumping the state of thread context
      interrupts: Speed up opal interrupts scanning
      opal-ci: Update qemu command line to test booting up
      hw/phb4: Use symbols when accessing PEC registers
      hw/phb4: Clear the PEC FIRs when taking the ETU out of reset

Joel Stanley (12):
      ci: Remove Centos 8
      doc: Remove docutils version pin
      Makefile: Fix detection of cross compiler
      github: Add workflow to build and deploy docs
      github: Run update before installing packages
      xscom: Move p9 ec level parsing to a function
      xscom: Parse P10 ec revision
      docs/platforms: Add Rainier product name
      psi: Remove PSIHB_XIVR reference
      init: Add a newline to the LPAR-per-core warning
      pci: Remove MVE opal calls
      Makefile: Link final elf with --no-warn-rwx-segments

Mahesh Salgaonkar (8):
      opal/hmi: Recover from unusual HMI with no TB error reported.
      external/mambo: pmem: make persistent memory disk mapping 2MB aligned
      Initial Power11 enablement
      cpufeatures: Add Power11 support
      external/mambo: skiboot.tcl add Power11 config
      platform: Identify correct bmc platform based on bmc hw version
      hdata: Prevent NULL dereference on duplicate entries in TPMREL section
      fsp: Fix opal boot failure on systems with redundant FSP

Michael Neuling (1):
      external/mambo: Handle greater than 16 CPUs

Nicholas Piggin (69):
      hdata: add mmu-pid-bits and mmu-lpid-bits for POWER10 CPUs
      ccan: switch list_add_before/after arguments to match upstream
      hw/lpc: fix compilation error
      ccan: sync to upstream ccan.git commit ca7c5a9e04f3
      libfdt: sync to upstream dtc.git commit 45f3d1a095dd
      chiptod: properly zero TB SPR when cleaning up for invalid TB
      core/cpu: rewrite idle synchronisation
      core/cpu: remove POWER8 IPI loop
      core/cpu: refactor IPI sending
      core/cpu: move cpu_wake out of job_lock
      core/cpu: make cpu idle states simpler
      core/cpu: move sleep/wake synchronisation out from low level code
      fast-reboot: fix TLB cleanup after fast reboot
      SBE: create processor-independent timer APIs
      hw/slw: Move P8 bits behind CONFIG_P8
      hw/slw: split P8 specific code into its own file
      core: detect LPAR-per-core mode and report in dt
      cpu: Fix HID SPR icache flushing and attn change sequence
      external/mambo: add a poor man's ftrace command
      mem_region: Add a local_free function
      VAS: use local_free to free local_alloc memory
      core/malloc: Make free and realloc tolerant of invalid usage
      ipmi: Fix potential infinite loop in sync_msg polling
      platforms: Use astbmc_exit
      ipmi: flush the ipmi message queue before booting a kernel
      ipmi: remove unused OS watchdog support
      core/init: Move opal_mpipl_init earlier
      hw/chiptod: allow qemu to use the chiptod
      hdata: Add POWER10 Rainier tests
      hdata: Use common code for HDIF header check
      hdata: Make hdata child accessors check the header
      hdata: split idata accessor function
      hdata: Remove legacy SPIRA structure
      hdata: make for_each_pcia take spiras as an argument
      hdata: Use existing define for PCIA signature check
      core/hmi: fix endian conversion bug
      npu/pau: endian fixes
      libstb: endian annotations
      hw/phb4: Avoid wait for PERST when running on QEMU
      core/cpu: Fix invalid SMT indexes
      platforms/astbmc: Fix IPMI set BMC global enables command
      hw/bt: Work around QEMU lost interrupt bug
      hw/psi: Add LPC client names to PSI SIRQ interrupts
      hw/occ: Fix version check
      hw/occ: Fix OCC structure layout
      hw/occ: Tidy code and add error message
      hw/occ: Endian fixes
      platforms/qemu: QEMU now has support for direct controls on Power10
      hw/sbe: Add SBE quirk for mambo and awan
      hw/sbe-p9: Move seq increment from queue to submit
      hw/sbe-p9: Check SBE health on each chip
      hw/sbe-p9: Add error message for unexpected msg list state
      core/timer: Always update hardware timer
      hw/sbe-p9: Re-set the SBE timer after SBE interrupt
      hw/sbe-p9: Change SBE lagging detection
      hw/sbe-p9: Better handle SBE timer rate-limiting
      hw/sbe-p9: Rename timer limits
      hw/sbe-p9: Fix sbe_last_gen_stamp timing inconsistency
      hw/sbe-p9: Limit SBE timer to 10s
      hw/sbe-p9: P10 additions
      cpu: Do not access xscom registers for guarded CPUs
      hw/bt: Add FIFO buffer length capability validation
      hw/lpc: Fix firmware memory space access for devices > 0
      core/timers: Fix running-timer delay
      core/timers: Try to process all poll timers
      hw/xive: Warn if pushing HW context to already enabled CAM
      astbmc/ipmi: Improve Set Enables handling
      ipmi: Return error from ipmi_queue_msg_sync
      ipmi: Improve handling of time errors

Reza Arbab (29):
      fsp: Fix possible use of null "%s" prlog argument
      libstb: Work around deprecated API warnings on OpenSSL 3.0 systems
      libstb: Fix memcpy overread in fakenv_readpublic()
      opal-ci: Drop fedora34, add fedora36
      opal-ci: Drop fedora35, add fedora37
      ci: Update github actions to run on Node 16
      opal-ci: Use https URLs for systemsim packages
      ci: Update github actions to run on Node 16
      opal-ci: Drop fedora36, add fedora38
      skiboot v7.1 release notes
      opal-ci: Use the Fedora container registry
      opal-ci: Drop fedora37, add fedora39
      opal-ci: Drop fedora38, add fedora40
      ci: Update github actions to run on Node 20
      Makefile: Use '--ignore-errors unused' with lcov
      opal-ci: Remove centos7
      opal-ci: Drop fedora39, add fedora41
      hdata/test: Build with -Wno-error=unterminated-string-initialization
      external/ffspart: Avoid makefile race condition
      opal-ci: Remove ubuntu-18.04
      gcov: Document sysfs interface
      gcov: Don't print 0x with %p
      extract-gcov: Add counters for GCC > 7
      extract-gcov: Fix tag lengths
      extract-gcov: Add checksum field
      Revert "hdata/test: Build with -Wno-error=unterminated-string-initialization"
      opal-ci: Force mambo rpm install on fedora-rawhide
      libstb: Add print-container to `make clean`
      libstb/(create|print)-container: Enable custom ssl dir

Ryan Grimm (3):
      mambo: Fix backtrace when trace mixes endian code
      mambo: print useful error when mysim mmap fails
      hw/imc: Detect BML and fix core counters

Stewart Smith (6):
      Introduce hwprobe facility to avoid hard-coding probe functions
      hwprobe: convert PHB, NPU, PAU subsystems to hwprobe
      Add CONFIG_P8 with PHB3 behind it
      hwprobe: convert vas_init(), nx_init()
      npu: Move npu.o and npu-hw-procedules.o under CONIFG_P8
      platforms: put P8 platforms behind CONFIG_P8

Vaibhav Jain (1):
      pau: Fix a build error with GCC 13.1.1

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
The create-container host utility in skiboot is currently being built
against the system ssl installation instead of the buildroot one, as
exposed by broken builds on machines that do not have openssl-devel
installed:

  [ HOSTCC ] libstb/create-container.c
  libstb/create-container.c:10:10: fatal error: openssl/bn.h: No such file or directory

To fix, ensure that the skiboot build is using host-openssl.

Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
@op-jenkins
Copy link
Contributor

Can one of the admins verify this patch?

@rarbab
Copy link
Member Author

rarbab commented Jun 9, 2025

@runlevel5, does this look okay to you?

I know you ran into issues with blackbird_defconfig when trying to update buildroot in the past. I think the problem you documented in issue 5686 was because newer buildroot use -O2 by default instead of -Os. I've addressed that here by specifying BR2_OPTIMIZE_S=y.

@runlevel5
Copy link
Contributor

@rarbab thanks much for this work

I will let you know as soon as I am back from holiday

Copy link
Contributor

@runlevel5 runlevel5 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@runlevel5
Copy link
Contributor

@rarbab while you are at this, could you please bump the kernel to latest 5.15?

@rarbab
Copy link
Member Author

rarbab commented Jul 9, 2025

@runlevel5 Is there some reason we need 5.15? From a service perspective, the 5.10.x and 5.15.x LTS releases are both currently projected to have the same end-of-life.

@runlevel5
Copy link
Contributor

@runlevel5 Is there some reason we need 5.15? From a service perspective, the 5.10.x and 5.15.x LTS releases are both currently projected to have the same end-of-life.

@rarbab ultimately I want to bump to latest 6.15.x series because it has up-to-date firmwares for hardwares. For example the RaptorCS Blackbird workstation would not be able to load up AMD graphic card driver at the early stage of boot menu.

@rarbab
Copy link
Member Author

rarbab commented Jul 11, 2025

@rarbab ultimately I want to bump to latest 6.15.x series because it has up-to-date firmwares for hardwares. For example the RaptorCS Blackbird workstation would not be able to load up AMD graphic card driver at the early stage of boot menu.

Is that currently the state of things with 5.10? AMD cards don't work?

I think we should ride 5.10 out until its end-of-life is near, and then jump to whichever LTS release buys us the most service time. (FWIW, 6.15 is not LTS.)

@runlevel5
Copy link
Contributor

Is that currently the state of things with 5.10? AMD cards don't work?

Yes, it won't.

I think we should ride 5.10 out until its end-of-life is near, and then jump to whichever LTS release buys us the most service time. (FWIW, 6.15 is not LTS.)

The 6.12 LTS does support many modern AMD GPUs, perhaps we should consider bumping to 6.12 instead?

@runlevel5
Copy link
Contributor

@rarbab is there any particular policy from IBM or OpenPOWER on choosing kernel version?

@rarbab
Copy link
Member Author

rarbab commented Jul 14, 2025

I think the idea has always been to keep churn to a minimum. Essentially what I described; pick an LTS release and stick with it for as long as possible. It's less important now because a lot of the IBM platforms themselves are out of service, but I'd personally like to stick with that.

5.10, 5.15, 6.6, and 6.12 all end in about a year. As that time nears we should know the next LTS. I will start rigging up a proof-of-concept with 6.x just to get ahead of any possible gotchas and test it out, so we are ready to go when the time comes.

FYI, we are testing out 6.1 (which ends in two years) in the service branch for mowgli, so that could be a good canary.

@runlevel5
Copy link
Contributor

@rarbab fair point. Now I do agree with you that we should stick to 6.1.

I will test the 6.1 branch on my blackbird

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants