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

Bump remaining 4.14 boards kernel to 5.10.5 (and coreboot to 4.19) #1381

Merged
merged 21 commits into from
Jul 4, 2023

Commits on Jun 27, 2023

  1. config/linux-x230-*: migrate from 4.14 to 5.10 + add CONFIG_DRM_FBDEV…

    …_LEAK_PHYS_SMEM=y
    
    It was impossible to use directly 4.14 defconfig and apply it to 5.10.
    Saving 4.14 in oldconfig, then editing in 5.10 was necessary.
    - E1000E module (as kernel module support...) was lost in conversion and needed to be added back.
    
    Also tuned things up:
    - legacy-flash has no RETPOLINE, no security policy at all. Has expected usb controllers modules, exFAT and bare minimal support for flashrom.
      - IMPORTANT: CONFIG_X86_IOPL_IOPERM kernel option is required by flashrom
    - legacy adds sata, retpoline, additional modules (ethernet), security policy related material on top of legacy-flash config
    - maximized adds MMC card support, mousedev+synaptic (to report presence through oem-system-info-xx30), thin provisioning+snapshot support
    - tuned with linux.prompt_for_new_config_options_for_kernel_version_bump
    
    Current storage format is oldconfig from now on for proper analysis. If needed, once can save back in defconfig prior of bumping to newer version.
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    7e6987a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e14d7c3 View commit details
    Browse the repository at this point in the history
  3. config/linux-qemu.config : add CONFIG_DRM_BOCHS=y and CONFIG_FB_SIMPL…

    …E=y for basic qemu-coreboot board config
    
    advanced qemu-coreboot-*-tpm*-* boards enables virtio qemu/kvm through command line option.
    qemu-coreboot-* (whiptail or fbwhiptail) basic boards are using bochs gpu emulation, provided through qemu
    
    linux-qemu.config, if shared as of now, needs to provide both virtio (no need of FB_SIMPLE because DRM) and BOCHS+SIMPLE_FB
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    5fce7bf View commit details
    Browse the repository at this point in the history
  4. config/coreboot-* : adapt i915drmfb driven boards framebuffer require…

    …ments
    
    - add additional kernel boot params for i915 where needed:
      - adds : drm_kms_helper.drm_leak_fbdev_smem=1 i915.enable_fbc=0 ( to permit kexec into vesa fb of kexec'ed kernel for i915 driven gpus without framebuffer compression, leaking smem fbdev address for kexec to pickup )
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    f2d0a6a View commit details
    Browse the repository at this point in the history
  5. config/coreboot-qemu-fbwhiptail: extend CBFS_SIZE to 0x7E7FFF to acco…

    …modate additioaally added DRM+FB for testing
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    c84a0f7 View commit details
    Browse the repository at this point in the history
  6. modules/ coreboot+linux: add helpers to edit config in place + save i…

    …n oldconfig/defconfig formats
    
    both linux/coreboot:
    - save_in_defconfig_format_in_place : takes whatever coreboot config file for a make BOARD=xyz statement and saves it in defconfig
    - save_in_oldefconfig_format_in_place : takes whatever coreboot config file for a make BOARD=xyz statement and saves it in oldefconfig
    
    linux:
    - linux.prompt_for_new_config_options_for_kernel_version_bump:
      - The most useful helper as of now when doing kernel version bump.
      - Requires to save current kernel config in oldconfig (make BOARD=xyz linux.save_in_oldefconfig_format_in_place) first, then bump kernel version in board config and then use that helper to review new options and save in tree.
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    13daaa1 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e8bc003 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e022284 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f34d2dd View commit details
    Browse the repository at this point in the history
  10. config/linux* saved in oldconfig format to ease boards comparison for…

    … same kernel versions and across versions
    
    kgpe-d16 linux configs: converted to oldconfig as well
    TODO: talos-2
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    dbc931e View commit details
    Browse the repository at this point in the history
  11. Remove qemu-coreboot and qemu-coreboot-fbwhiptail board+coreboot configs

    qemu-coreboot-*-tpm* boards are way more feature rich to test/develops Heads
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    cc9a482 View commit details
    Browse the repository at this point in the history
  12. linux configs for intel: select proper CPU and trust CPU randomization

    CONFIG_MCORE2=y
    CONFIG_RANDOM_TRUST_CPU=y
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    00e7156 View commit details
    Browse the repository at this point in the history
  13. Adding bootspashes by @ThePlexus and @d-dwid posted under linuxboot#1402

    
    
    Selects blobs/ThePlexus-bootsplash-1024x768.jpg under blobs/bootsplash-1024x768.jpg (symlink used in coreboot configs)
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    cdd0c6f View commit details
    Browse the repository at this point in the history
  14. coreboot configs: sandy/ivy/haswell : readd libgfxinit and bootsplash…

    … requirements
    
    Remove CONFIG_NO_GFX_INIT from configs having CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
    Add CONFIG_BOOTSPLASH_IMAGE from configs having CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
    Add CONFIG_LINEAR_FRAMEBUFFER from configs having CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
    Set BOOTSPLASH parameters to match bootsplash and jpeg requirements
     +CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=768
     +CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=1024
     +CONFIG_BOOTSPLASH=y
    
    Others paramaters defined per board default setting with coreboot.save_oldconfig_in_place helper
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    5710eaf View commit details
    Browse the repository at this point in the history
  15. t440p p8z77-m_pro: pass to coreboot 4.19 and with comparable lockdown…

    … config to x230 + fix vbt path
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    da4c306 View commit details
    Browse the repository at this point in the history
  16. CircleCI config: remove generic qemu-coreboot/qemu-coreboot-fbwhiptai…

    …l and reorgagnize per coreboot ver
    
    add coreboot 4.19 builddir into save_cache
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    252c9df View commit details
    Browse the repository at this point in the history
  17. WiP: linux config global tweaks overhaul, unifying kernel configs and…

    … keeping important board related perks
    
    CONFIG_PREEMPT_NONE=y: Remove preemptiveness for servers. Under heads, we are single tasking. No point having this big thing in kernel https://lwn.net/Articles/746780/
    IO scheduler: only enable CONFIG_MQ_IOSCHED_DEADLINE=y since we want maximum throughput and do not have concurrent tasks
    CONFIG_CPU_ISOLATION=y : Enable CPU Isolation accross all boards: this permits to make sure that the kernel tasks running on a CPU are not distrurbed bu user tasks
    CONFIG_MULTIUSER not defined: Removing cluttering since we are single root user under Heads anyway
    CONFIG_IO_URING=y : limit number of copy operations between kernel and user space from apps
    CONFIG_ZONE_DMA not defined: relevant for older hardware (less then 32bit addressing space)
    CONFIG_X86_MPPARSE not defined: relevant for older smp systems
    CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is enabled and SCHEDUTIL is disabled: we want performance with CPU sched with deadline IO.
    CONFIG_PERF_EVENTS_INTEL_UNCORE and CONFIG_PERF_EVENTS_INTEL_CSTATE not defined: we want max perf on Heads
    CONFIG_X86_VSYSCALL_EMULATION not defined: no need for syscall emulation under Heads
    CONFIG_SECCOMP not defined : usefull if BPF is enabled and used.
    CONFIG_ACPI_SPCR_TABLE=y : usefull for serial redirection table and earlycon
    CONFIG_PCI_MMCONFIG CONFIG_MMCONF_FAM10H unset but for kgpe-d16 which is either fam10h of fam15h
    CONFIG_DM_SNAPSHOT=y CONFIG_DM_THIN_PROVISIONING=y so that recovery shell can provide LVM/DM functionality in later PR.
    CONFIG_EXFAT_FS=y so that exfat preformated thumb drives can work out of the box
    Adjust CONFIG_HW_RANDOM per platform, removing CONFIG_HW_RANDOM_TIMERIOMEM
    Only support processor family needed per board (AMD only AMD, Intel only Intel, removing CONFIG_CPU_SUP_HYGON CONFIG_CPU_SUP_HYGON CONFIG_CPU_SUP_CENTAUR CONFIG_CPU_SUP_ZHAOXIN CONFIG_CPU_SUP_ZHAOXIN everywhere
    qemu: support both AMD and INTEL as an exception for the above.
    
    Removed unused compiled modules unpacked under modules.cpio
    Removed not needed crypto modules compiled in or as modules, reviewed from linuxboot#1396 (comment) :
    CONFIG_CRYPTO=y
    CONFIG_CRYPTO_ALGAPI=y
    CONFIG_CRYPTO_ALGAPI2=y
    CONFIG_CRYPTO_AEAD=y
    CONFIG_CRYPTO_AEAD2=y
    CONFIG_CRYPTO_SKCIPHER=y
    CONFIG_CRYPTO_SKCIPHER2=y
    CONFIG_CRYPTO_HASH=y
    CONFIG_CRYPTO_HASH2=y
    CONFIG_CRYPTO_RNG=y
    CONFIG_CRYPTO_RNG2=y
    CONFIG_CRYPTO_AKCIPHER2=y
    CONFIG_CRYPTO_KPP2=y
    CONFIG_CRYPTO_ACOMP2=y
    CONFIG_CRYPTO_MANAGER=y
    CONFIG_CRYPTO_MANAGER2=y
    CONFIG_CRYPTO_USER=y
    CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
    CONFIG_CRYPTO_NULL=y
    CONFIG_CRYPTO_NULL2=y
    CONFIG_CRYPTO_CRYPTD=y
    CONFIG_CRYPTO_AUTHENC=y
    CONFIG_CRYPTO_SIMD=y
    CONFIG_CRYPTO_GLUE_HELPER_X86=y
    CONFIG_CRYPTO_CBC=y
    CONFIG_CRYPTO_ECB=y
    CONFIG_CRYPTO_XTS=y
    CONFIG_CRYPTO_ESSIV=y
    CONFIG_CRYPTO_HMAC=y
    CONFIG_CRYPTO_CRC32C=y
    CONFIG_CRYPTO_CRC32C_INTEL=y
    CONFIG_CRYPTO_MD5=y
    CONFIG_CRYPTO_SHA1=y
    CONFIG_CRYPTO_SHA1_SSSE3=y
    CONFIG_CRYPTO_SHA256_SSSE3=y
    CONFIG_CRYPTO_SHA512_SSSE3=y
    CONFIG_CRYPTO_SHA256=y
    CONFIG_CRYPTO_SHA512=y
    CONFIG_CRYPTO_AES_NI_INTEL=y
    CONFIG_CRYPTO_USER_API=y
    CONFIG_CRYPTO_USER_API_HASH=y
    CONFIG_CRYPTO_USER_API_SKCIPHER=y
    CONFIG_CRYPTO_USER_API_RNG=y
    CONFIG_CRYPTO_USER_API_AEAD=y
    CONFIG_CRYPTO_HASH_INFO=y
    CONFIG_CRYPTO_LIB_AES=y
    CONFIG_CRYPTO_LIB_SHA256=y
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    4d75855 View commit details
    Browse the repository at this point in the history
  18. Makefile: point default board to qemu-coreboot-fbwhiptail-tpm1 so aut…

    …ocompletion still works
    
    removal of qemu-coreboot board made autocomplete apparition of modules helpers vanish
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    a4f5965 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    14e7a76 View commit details
    Browse the repository at this point in the history
  20. linux-x230-legacy.config: Disable network related option while leavin…

    …g CONFIG_NET active (crypto need)
    
    Since legacy boards do not have e1000e as opposed to maximized builds (no network), we also deactivate:
    +# CONFIG_INET is not set
    +# CONFIG_ETHTOOL_NETLINK is not set
    +# CONFIG_NETDEVICES is not set
    
    This makes gpg24 and newer flashrom bump possible
    tlaurion committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    6245339 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. config/linux-*: remove CPU_ISOLATION since no observable gains as is …

    …without dynticks and isolcpus
    tlaurion committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    08d865e View commit details
    Browse the repository at this point in the history