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

Dell optiplex 9010/rel v0.1.0 #244

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
6dc9057
payloads/edk2: build ipxe in Dasharo/edk2
pietrushnic Oct 25, 2022
ff8ad20
3rdparty/dasharo-blobs: add submodule
mkopec Aug 23, 2022
f7a31e1
Add bootsplash and config for Dasharo Workstation
miczyg1 Jul 14, 2020
3fae8f2
.gitlab-ci.yml: add GitLab CI YAML file
miczyg1 Jul 14, 2020
2d59563
menu.ipxe: add PXE script
miczyg1 Sep 10, 2021
ab15fee
src/Kconfig: add bootsplash compression
miczyg1 Sep 10, 2021
4e5516c
payloads/external/SeaBIOS/Makefile: use custom SeaBIOS
miczyg1 Sep 10, 2021
3a230af
dasharo-black-edk2.bmp: add EDK2 compatible logo
miczyg1 Oct 4, 2020
1f2bd8e
configs/config.dell_optiplex_9010_sff: add PXE_ROM_ID configuration
pietrushnic Apr 4, 2022
4c78f17
configs/config.dell_optiplex_9010_sff: update miniconfig
miczyg1 Sep 10, 2021
6648130
configs/config.dell_optiplex_9010_sff: use SeaBIOS v1.0.5 and BMP boo…
miczyg1 Sep 10, 2021
a0bfff2
util/genbuild_h/genbuild_h.sh: extract minor and majro version from c…
miczyg1 Sep 24, 2021
dcfe875
configs/config.dell_optiplex_9010_sff: add correct LCOALVERSION
miczyg1 Sep 24, 2021
99c168c
configs/config.dell_optiplex_9010_sff: enable linear framebuffer
pietrushnic Dec 23, 2021
7f5f4f3
dell/optiplex_9010: add flashmap support
pietrushnic Dec 23, 2021
3fbba06
configs/config.dell_optiplex_9010_sff: enable dbg lvl 8 and SeaBIOS r…
pietrushnic Jun 14, 2022
042940d
.gitlab-ci.yml: update naming convention in CI yaml
pietrushnic Jun 23, 2022
1daf6d7
.gitlab-ci.yml: remove bootsplash replacement
pietrushnic Jun 23, 2022
6858e71
.gitlab-ci.yml: correct directory name
pietrushnic Jun 23, 2022
2425277
.github/workflows/build.yml: initial version
pietrushnic Jun 27, 2022
786bde1
build.sh: initial version
pietrushnic Jun 27, 2022
b9956fd
.gitlab-ci.yml: remove
pietrushnic Jun 28, 2022
a34fa3c
configs/config.dell_optiplex_9010_sff: new dasharo build method do no…
pietrushnic Jun 28, 2022
9023192
menu.ipxe: use most recent dasharo version
pietrushnic Jun 28, 2022
2c5d68c
dell/snb_ivb_workstations/default.fmd: fix identation
pietrushnic Jun 28, 2022
752dcbf
configs/config.dell_optiplex_9010_sff -> configs/config.dell_optiplex…
pietrushnic Jun 28, 2022
93cf970
configs/config.dell_optiplex_9010: set loglevel to 0
pietrushnic Jun 28, 2022
5ac8fe9
util/genbuild_h/genbuild_h.sh: revert changes of COREBOOT_MAJOR_VERSION
pietrushnic Jun 28, 2022
1ee5a38
get rid of build.sh
pietrushnic Jun 29, 2022
c8c8421
.github/workflows/build.yml: fix config copying
pietrushnic Jun 29, 2022
a4dff41
configs: add debug defconfig for dell_optiplex_9010
pietrushnic Aug 2, 2022
f586cd0
dasharo-black: remove kings gambit string
miczyg1 Aug 23, 2022
7ade03d
configs: add dell_optiplex_9010.uefi{.debug}
pietrushnic Sep 13, 2022
fce20f2
configs/config.dell_optiplex_9010.uefi.debug: add commit which makes …
pietrushnic Sep 13, 2022
1719bb0
configs/config.dell_optiplex_9010.uefi: testing version
pietrushnic Sep 14, 2022
a6ec2a1
configs/config.dell_optiplex_9010.uefi.debug: bootable config with se…
pietrushnic Oct 12, 2022
ecf104d
configs: remove iPXE for Dell OptiPlex 9010
pietrushnic Oct 14, 2022
d8e6342
configs: use dasharo-blobs for Dell OptiPlex 9010 logo
pietrushnic Oct 14, 2022
f3c0e37
.github/workflows/build.yml: build all Dell OptiPlex 9010 targets
pietrushnic Oct 14, 2022
17dc7b6
configs/config.dell_optiplex_9010.uefi: disable SB and use branch tha…
pietrushnic Oct 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: Build coreboot for the Dell OptiPlex 7010/9010 SFF target
on:
push:
branches:
- dell_optiplex_9010/develop
- dell_optiplex_9010/release
pull_request:
branches:
- dell_optiplex_9010/develop
- dell_optiplex_9010/release
tags:
- 'dell_optiplex_9010*'

jobs:
build:
runs-on: [self-hosted, builder]
steps:
- name: Runner information
run: |
date
id -u
id -g
ls -la

# go modules are read only
# https://github.com/golang/go/issues/35615
- name: Allow for removal of go modules
run: |
(test -d $GITHUB_WORKSPACE/go && chmod u+w -R $GITHUB_WORKSPACE/go) || true

- name: Checkout repository
uses: actions/checkout@v2
with:
# Checkout pull request HEAD commit instead of merge commit
# See: https://github.com/actions/checkout#checkout-pull-request-head-commit-instead-of-merge-commit
ref: ${{ github.event.pull_request.head.sha }}
# Fetch complete history
fetch-depth: 0

- name: Add review.coreboot.org/coreboot.git as origin
run: |
git remote add dasharo https://github.com/dasharo/coreboot.git
git remote set-url origin https://review.coreboot.org/coreboot.git
git fetch origin

- name: Repository information
run: |
git --version
git rev-parse --verify HEAD
git log -n 1
git log --graph --decorate --pretty=oneline --abbrev-commit -n 20
git remote -v

- name: Checkout all submodules
run: git submodule update --init --recursive --checkout

- name: Build Dasharo (coreboot+SeaBIOS) compatilbe with Dell OptiPlex 9010 target
run: |
docker run -v $GITHUB_WORKSPACE:/home/coreboot:rw -i --rm \
--workdir=/home/coreboot -u$(id -u):$(id -g) coreboot/coreboot-sdk:2022-04-04_9a8d0a03db << EOF
make distclean
cp configs/config.dell_optiplex_9010 .config
make olddefconfig
make -j $(nproc)
EOF

- name: Save Dasharo (coreboot+SeaBIOS) compatilbe with Dell OptiPlex 9010 artifacts
uses: actions/upload-artifact@v2
with:
name: dasharo-dell-optiplex-9010-seabios
path: |
build/coreboot.rom
retention-days: 7

- name: Build Dasharo (coreboot+SeaBIOS) debug version compatilbe with Dell OptiPlex 9010 target
run: |
docker run -v $GITHUB_WORKSPACE:/home/coreboot:rw -i --rm \
--workdir=/home/coreboot -u$(id -u):$(id -g) coreboot/coreboot-sdk:2022-04-04_9a8d0a03db << EOF
make distclean
cp configs/config.dell_optiplex_9010.debug .config
make olddefconfig
make -j $(nproc)
EOF

- name: Save Dasharo (coreboot+SeaBIOS) debug compatilbe with Dell OptiPlex 9010 artifacts
uses: actions/upload-artifact@v2
with:
name: dasharo-dell-optiplex-9010-seabios-debug
path: |
build/coreboot.rom
retention-days: 7

- name: Build Dasharo (coreboot+UEFI) compatilbe with Dell OptiPlex 9010 target
run: |
docker run -v $GITHUB_WORKSPACE:/home/coreboot:rw -i --rm \
--workdir=/home/coreboot -u$(id -u):$(id -g) coreboot/coreboot-sdk:2022-04-04_9a8d0a03db << EOF
make distclean
cp configs/config.dell_optiplex_9010.uefi .config
make olddefconfig
make -j $(nproc)
EOF

- name: Save Dasharo (coreboot+UEFI) compatilbe with Dell OptiPlex 9010 artifacts
uses: actions/upload-artifact@v2
with:
name: dasharo-dell-optiplex-9010-uefi
path: |
build/coreboot.rom
retention-days: 7

- name: Build Dasharo (coreboot+UEFI) debug version compatilbe with Dell OptiPlex 9010 target
run: |
docker run -v $GITHUB_WORKSPACE:/home/coreboot:rw -i --rm \
--workdir=/home/coreboot -u$(id -u):$(id -g) coreboot/coreboot-sdk:2022-04-04_9a8d0a03db << EOF
make distclean
cp configs/config.dell_optiplex_9010.uefi.debug .config
make olddefconfig
make -j $(nproc)
EOF

- name: Save Dasharo (coreboot+UEFI) debug compatilbe with Dell OptiPlex 9010 artifacts
uses: actions/upload-artifact@v2
with:
name: dasharo-dell-optiplex-9010-uefi-debug
path: |
build/coreboot.rom
retention-days: 7
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ site-local
*.bin
*.debug
!Kconfig.debug
!configs/config.*.debug
*.elf
*.fd
*.o
Expand Down
1 change: 0 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,3 @@
[submodule "3rdparty/dasharo-blobs"]
path = 3rdparty/dasharo-blobs
url = https://github.com/Dasharo/dasharo-blobs.git

6 changes: 6 additions & 0 deletions Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -1253,6 +1253,12 @@ build_info-file := $(obj)/build_info
build_info-type := raw

BOOTSPLASH_SUFFIX=$(suffix $(call strip_quotes,$(CONFIG_BOOTSPLASH_FILE)))

ifeq ($(CONFIG_BOOTSPLASH_COMPRESS_LZMA),y)
BOOTSPLASH_SUFFIX=$(suffix $(call strip_quotes,$(CONFIG_BOOTSPLASH_FILE))).lzma
bootsplash$(BOOTSPLASH_SUFFIX)-compression := LZMA
endif

cbfs-files-$(CONFIG_BOOTSPLASH_IMAGE) += bootsplash$(BOOTSPLASH_SUFFIX)
bootsplash$(BOOTSPLASH_SUFFIX)-file := $(call strip_quotes,$(CONFIG_BOOTSPLASH_FILE))
bootsplash$(BOOTSPLASH_SUFFIX)-type := bootsplash
Expand Down
26 changes: 26 additions & 0 deletions configs/config.dell_optiplex_9010
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
CONFIG_BOOTSPLASH_IMAGE=y
CONFIG_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/dasharo/evaluation_logo.bmp"
CONFIG_BOOTSPLASH_COMPRESS_LZMA=y
CONFIG_VENDOR_DELL=y
CONFIG_BOARD_DELL_OPTIPLEX_9010=y
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_SEABIOS_PS2_TIMEOUT=3000
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y
CONFIG_POST_DEVICE_LPC=y
CONFIG_SEABIOS_REVISION=y
CONFIG_SEABIOS_REVISION_ID="rel-1.16.0"
CONFIG_SEABIOS_ADD_SERCON_PORT_FILE=y
CONFIG_SEABIOS_DEBUG_LEVEL=0
CONFIG_PXE=y
CONFIG_BUILD_IPXE=y
CONFIG_PXE_ROM_ID="8086,1502"
# CONFIG_PXE_SERIAL_CONSOLE is not set
CONFIG_PXE_NO_PROMPT=y
CONFIG_PXE_ADD_SCRIPT=y
CONFIG_PXE_SCRIPT="menu.ipxe"
CONFIG_PXE_CUSTOM_BUILD_ID="12345678"
CONFIG_LINEAR_FRAMEBUFFER=y
CONFIG_FMDFILE="src/mainboard/dell/snb_ivb_workstations/default.fmd"
26 changes: 26 additions & 0 deletions configs/config.dell_optiplex_9010.debug
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
CONFIG_BOOTSPLASH_IMAGE=y
CONFIG_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/dasharo/evaluation_logo.bmp"
CONFIG_BOOTSPLASH_COMPRESS_LZMA=y
CONFIG_VENDOR_DELL=y
CONFIG_BOARD_DELL_OPTIPLEX_9010=y
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
# CONFIG_DRIVERS_INTEL_WIFI is not set
CONFIG_SEABIOS_PS2_TIMEOUT=3000
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
CONFIG_POST_DEVICE_LPC=y
CONFIG_SEABIOS_REVISION=y
CONFIG_SEABIOS_REVISION_ID="rel-1.16.0"
CONFIG_SEABIOS_ADD_SERCON_PORT_FILE=y
CONFIG_SEABIOS_DEBUG_LEVEL=0
CONFIG_PXE=y
CONFIG_BUILD_IPXE=y
CONFIG_PXE_ROM_ID="8086,1502"
# CONFIG_PXE_SERIAL_CONSOLE is not set
CONFIG_PXE_NO_PROMPT=y
CONFIG_PXE_ADD_SCRIPT=y
CONFIG_PXE_SCRIPT="menu.ipxe"
CONFIG_PXE_CUSTOM_BUILD_ID="12345678"
CONFIG_LINEAR_FRAMEBUFFER=y
CONFIG_FMDFILE="src/mainboard/dell/snb_ivb_workstations/default.fmd"
29 changes: 29 additions & 0 deletions configs/config.dell_optiplex_9010.uefi
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# CONFIG_DRIVERS_INTEL_WIFI is not set
# CONFIG_PXE_SERIAL_CONSOLE is not set
CONFIG_LOCALVERSION="v0.1.0"
CONFIG_BOARD_DELL_OPTIPLEX_9010=y
CONFIG_BOOTSPLASH_COMPRESS_LZMA=y
CONFIG_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/dasharo/evaluation_logo.bmp"
CONFIG_BOOTSPLASH_IMAGE=y
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@miczyg1 do we need CONFIG_BOOTSPLASH_* options when we use CONFIG_EDK2_BOOTSPLASH_* ? Does it give any value?

CONFIG_BUILD_IPXE=y
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y
CONFIG_FMDFILE="src/mainboard/dell/snb_ivb_workstations/default.fmd"
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_LINEAR_FRAMEBUFFER=y
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
CONFIG_POST_DEVICE_LPC=y
CONFIG_PAYLOAD_EDK2=y
CONFIG_EDK2_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/dasharo/evaluation_logo.bmp"
CONFIG_EDK2_BOOTSPLASH_IMAGE=y
CONFIG_EDK2_BOOT_MENU_KEY=0x0011
CONFIG_EDK2_GOP_DRIVER=y
CONFIG_EDK2_REPOSITORY="https://github.com/Dasharo/edk2.git"
CONFIG_EDK2_TAG_OR_REV="origin/explain-ipxe-build"
CONFIG_EDK2_SECURE_BOOT=y
CONFIG_EDK2_SECURE_BOOT_DEFAULT_ENABLE=n
CONFIG_EDK2_SETUP_MENU_KEY=0x000C
CONFIG_EDK2_CBMEM_LOGGING=y
CONFIG_EDK2_FOLLOW_BGRT_SPEC=y
CONFIG_EDK2_SD_MMC_TIMEOUT=1000
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_VENDOR_DELL=y
31 changes: 31 additions & 0 deletions configs/config.dell_optiplex_9010.uefi.debug
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# CONFIG_DRIVERS_INTEL_WIFI is not set
# CONFIG_PXE_SERIAL_CONSOLE is not set
CONFIG_LOCALVERSION="v0.1.0"
CONFIG_BOARD_DELL_OPTIPLEX_9010=y
CONFIG_BOOTSPLASH_COMPRESS_LZMA=y
CONFIG_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/dasharo/evaluation_logo.bmp"
CONFIG_BOOTSPLASH_IMAGE=y
CONFIG_BUILD_IPXE=y
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
CONFIG_FMDFILE="src/mainboard/dell/snb_ivb_workstations/default.fmd"
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_LINEAR_FRAMEBUFFER=y
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
CONFIG_POST_DEVICE_LPC=y
CONFIG_PAYLOAD_EDK2=y
CONFIG_EDK2_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/dasharo/evaluation_logo.bmp"
CONFIG_EDK2_BOOTSPLASH_IMAGE=y
CONFIG_EDK2_BOOT_MENU_KEY=0x0011
CONFIG_EDK2_GOP_DRIVER=y
CONFIG_EDK2_DEBUG=y
CONFIG_EDK2_REPOSITORY="https://github.com/Dasharo/edk2.git"
CONFIG_EDK2_TAG_OR_REV="origin/dasharo"
CONFIG_EDK2_SECURE_BOOT=y
CONFIG_EDK2_SECURE_BOOT_DEFAULT_ENABLE=n
CONFIG_EDK2_SETUP_MENU_KEY=0x000C
CONFIG_EDK2_CBMEM_LOGGING=y
CONFIG_EDK2_FOLLOW_BGRT_SPEC=y
CONFIG_EDK2_SD_MMC_TIMEOUT=1000
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_VENDOR_DELL=y
CONFIG_EDK2_CUSTOM_BUILD_PARAMS="-D DASHARO_SYSTEM_FEATURES_ENABLE=TRUE"
10 changes: 0 additions & 10 deletions configs/config.dell_optiplex_9010_sff

This file was deleted.

34 changes: 34 additions & 0 deletions menu.ipxe
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!ipxe

# main menu
:MENU
menu
item --gap -- ------------------------ Dasharo Network Boot Menu ------------------------
item boot Autoboot (DHCP)
item dasharo Dasharo Tools Suite
item netbootxyz OS installation (netboot.xyz official server)
item shell iPXE Shell
choose --default boot --timeout 3000 target && goto ${target}

# main menu options
:boot
autoboot
goto MENU

:dasharo
dhcp ||
chain http://boot.3mdeb.com/dts.ipxe ||
goto MENU

:netbootxyz
dhcp ||
chain https://boot.netboot.xyz/menu.ipxe ||
goto MENU

:shell
echo You are now in iPXE shell. Type "exit" to go back to the main menu.
shell ||
goto MENU

autoboot

2 changes: 1 addition & 1 deletion payloads/external/SeaBIOS/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ TAG-$(CONFIG_SEABIOS_MASTER)=origin/master
TAG-$(CONFIG_SEABIOS_STABLE)=d239552ce7220e448ae81f41515138f7b9e3c4db
TAG-$(CONFIG_SEABIOS_REVISION)=$(CONFIG_SEABIOS_REVISION_ID)

project_git_repo=https://review.coreboot.org/seabios.git
project_git_repo=https://github.com/Dasharo/SeaBIOS.git
project_dir=seabios

unexport KCONFIG_AUTOHEADER
Expand Down
3 changes: 3 additions & 0 deletions payloads/external/edk2/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,9 @@ prep: $(EDK2_PATH) clean checktools logo
$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/FV/UEFIPAYLOAD.fd: \
prep print
cd $(WORKSPACE); \
echo -n "Building iPXE... "; \
cd $(PACKAGES_PATH)/UefiPayloadPkg/NetworkDrivers; \
./build-ipxe.sh; \
source $(EDK2_PATH)/edksetup.sh; \
echo -n "EDK2: Building... "; \
build -a IA32 -a X64 -b $(RELEASE_STR) $(BUILD_STR) \
Expand Down
8 changes: 8 additions & 0 deletions src/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,14 @@ config BOOTSPLASH_FILE
The path and filename of the file to use as graphical bootsplash
screen. The file format has to be jpg.

config BOOTSPLASH_COMPRESS_LZMA
bool "Compress botsplash image with LZMA"
default n
help
Select this option if you have a large bootsplash, e.g. BMP and want
to compress it. A .lzma suffix will be added to CBFS file so that
SeaBIOS wil lautomaticalyl decompress it.

config FW_CONFIG
bool "Firmware Configuration Probing"
default n
Expand Down
24 changes: 24 additions & 0 deletions src/mainboard/dell/snb_ivb_workstations/default.fmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FLASH@0xff400000 12M {
SI_ALL@0x0 0x600000 {
SI_DESC@0x0 0x1000
SI_GBE@0x1000 0x4000
SI_ME@0x5000 0x5fb000
}
UNUSED@0x600000 0x200000
SI_BIOS@0x800000 0x400000 {
MISC_RW@0x0 0x84000 {
SMMSTORE(PRESERVE)@0x0 0x40000
RW_MRC_CACHE@0x40000 0x10000
CONSOLE@0x50000 0x20000
RW_VPD(PRESERVE)@0x70000 0x4000
RW_ELOG(PRESERVE)@0x74000 0x10000
}
WP_RO@0x84000 0x37c000 {
RO_VPD(PRESERVE)@0x0 0x4000
RO_SECTION@0x4000 0x378000 {
FMAP@0x0 0x800
COREBOOT(CBFS)@0x800 0x377800
}
}
}
}