coreboot/e6400: support nvidia models
The same ROM images that you flash on Intel GPU variants, are now flashed on Nvidia models. The same ROM will work on both. If an Intel GPU variant is present, libgfxinit is used, and the VGA ROM is used if an Nvidia GPU variant; however, release ROMs will scrub the nvidia option ROM, so release ROMs will only work on Intel GPUs unless you run the blobutil inject command. I decided to no longer have this under WIP, but to put it in master. The issue with it pertains to video drivers, which is not Libreboot's problem. Nouveau crashes under Linux, so use "nomodeset" if it does. The "nv" drivers in BSD systems work very well. The nvidia model of E6400 isn't recommended for other reasons, namely: poor thermal cooling (thermal pad on the GPU) and that Nvidia GPU doesn't get very good performance on any libre drivers anyway. The Intel GPU variant is better, in terms of power efficiency and software support; the intel variant also works with native graphics initialisation in coreboot. This board port already only enables SeaBIOS, which will simply execute the VGA ROM. Blobutil already supports reading the config, detecting that a VGA ROM is needed, because that part of the WIP E6400 branch was already merged in lbmk master. Signed-off-by: Leah Rowe <leah@libreboot.org>btrfsvols
parent
436b2ccb5a
commit
b30c7e330b
|
@ -97,7 +97,7 @@
|
|||
|
||||
# nvidia vga option rom for dgpu models of Dell Latitude E6400
|
||||
# for downloading the nvidia rom to pciroms/pci10de,06eb.rom
|
||||
{e6400nvidia}{
|
||||
{e6400}{
|
||||
E6400_VGA_DL_hash a24ed919e80287b281e407d525af31f307746250
|
||||
E6400_VGA_DL_url https://dl.dell.com/FOLDER01530530M/1/E6400A34.exe
|
||||
E6400_VGA_DL_url_bkup https://web.archive.org/web/20230506014903/https://dl.dell.com/FOLDER01530530M/1/E6400A34.exe
|
||||
|
|
|
@ -107,7 +107,7 @@ CONFIG_BOARD_SPECIFIC_OPTIONS=y
|
|||
CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400"
|
||||
CONFIG_MAINBOARD_VERSION="1.0"
|
||||
CONFIG_MAINBOARD_DIR="dell/e6400"
|
||||
CONFIG_VGA_BIOS_ID="8086,2a42"
|
||||
CONFIG_VGA_BIOS_ID="10de,06eb"
|
||||
CONFIG_DIMM_MAX=4
|
||||
CONFIG_DIMM_SPD_SIZE=256
|
||||
CONFIG_FMDFILE=""
|
||||
|
@ -123,7 +123,7 @@ CONFIG_POST_IO=y
|
|||
CONFIG_DEVICETREE="devicetree.cb"
|
||||
# CONFIG_VBOOT is not set
|
||||
CONFIG_OVERRIDE_DEVICETREE=""
|
||||
# CONFIG_VGA_BIOS is not set
|
||||
CONFIG_VGA_BIOS=y
|
||||
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc."
|
||||
CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt"
|
||||
CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00
|
||||
|
@ -148,6 +148,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
|
|||
CONFIG_SPI_FLASH_WINBOND=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
|
||||
CONFIG_VGA_BIOS_FILE="../../pciroms/pci10de,06eb.rom"
|
||||
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
|
||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||
CONFIG_SPI_FLASH_STMICRO=y
|
||||
|
@ -207,6 +208,7 @@ CONFIG_ROMSTAGE_ADDR=0x2000000
|
|||
CONFIG_VERSTAGE_ADDR=0x2000000
|
||||
CONFIG_SMM_RESERVED_SIZE=0x100000
|
||||
CONFIG_SMM_MODULE_STACK_SIZE=0x400
|
||||
# CONFIG_VGA_BIOS_SECOND is not set
|
||||
CONFIG_EHCI_BAR=0xfef00000
|
||||
CONFIG_ACPI_CPU_STRING="CP%02X"
|
||||
CONFIG_STACK_SIZE=0x2000
|
||||
|
@ -333,6 +335,7 @@ CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y
|
|||
#
|
||||
CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y
|
||||
CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
|
||||
CONFIG_VGA_ROM_RUN_DEFAULT=y
|
||||
CONFIG_MAINBOARD_HAS_LIBGFXINIT=y
|
||||
CONFIG_MAINBOARD_USE_LIBGFXINIT=y
|
||||
# CONFIG_VGA_ROM_RUN is not set
|
||||
|
@ -367,6 +370,7 @@ CONFIG_FIRMWARE_CONNECTION_MANAGER=y
|
|||
# CONFIG_EARLY_PCI_BRIDGE is not set
|
||||
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
|
||||
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
|
||||
# CONFIG_VGA_BIOS_DGPU is not set
|
||||
CONFIG_INTEL_GMA_HAVE_VBT=y
|
||||
CONFIG_INTEL_GMA_ADD_VBT=y
|
||||
# CONFIG_SOFTWARE_I2C is not set
|
||||
|
|
|
@ -107,7 +107,7 @@ CONFIG_BOARD_SPECIFIC_OPTIONS=y
|
|||
CONFIG_MAINBOARD_PART_NUMBER="Latitude E6400"
|
||||
CONFIG_MAINBOARD_VERSION="1.0"
|
||||
CONFIG_MAINBOARD_DIR="dell/e6400"
|
||||
CONFIG_VGA_BIOS_ID="8086,2a42"
|
||||
CONFIG_VGA_BIOS_ID="10de,06eb"
|
||||
CONFIG_DIMM_MAX=4
|
||||
CONFIG_DIMM_SPD_SIZE=256
|
||||
CONFIG_FMDFILE=""
|
||||
|
@ -121,7 +121,7 @@ CONFIG_POST_IO=y
|
|||
CONFIG_DEVICETREE="devicetree.cb"
|
||||
# CONFIG_VBOOT is not set
|
||||
CONFIG_OVERRIDE_DEVICETREE=""
|
||||
# CONFIG_VGA_BIOS is not set
|
||||
CONFIG_VGA_BIOS=y
|
||||
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Dell Inc."
|
||||
CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt"
|
||||
CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00
|
||||
|
@ -146,6 +146,7 @@ CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
|
|||
CONFIG_SPI_FLASH_WINBOND=y
|
||||
# CONFIG_DRIVERS_INTEL_WIFI is not set
|
||||
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
|
||||
CONFIG_VGA_BIOS_FILE="../../pciroms/pci10de,06eb.rom"
|
||||
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
|
||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||
CONFIG_SPI_FLASH_STMICRO=y
|
||||
|
@ -205,6 +206,7 @@ CONFIG_ROMSTAGE_ADDR=0x2000000
|
|||
CONFIG_VERSTAGE_ADDR=0x2000000
|
||||
CONFIG_SMM_RESERVED_SIZE=0x100000
|
||||
CONFIG_SMM_MODULE_STACK_SIZE=0x400
|
||||
# CONFIG_VGA_BIOS_SECOND is not set
|
||||
CONFIG_EHCI_BAR=0xfef00000
|
||||
CONFIG_ACPI_CPU_STRING="CP%02X"
|
||||
CONFIG_STACK_SIZE=0x2000
|
||||
|
@ -331,6 +333,7 @@ CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS=y
|
|||
#
|
||||
CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y
|
||||
CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
|
||||
CONFIG_VGA_ROM_RUN_DEFAULT=y
|
||||
CONFIG_MAINBOARD_HAS_LIBGFXINIT=y
|
||||
CONFIG_MAINBOARD_USE_LIBGFXINIT=y
|
||||
# CONFIG_VGA_ROM_RUN is not set
|
||||
|
@ -363,6 +366,7 @@ CONFIG_FIRMWARE_CONNECTION_MANAGER=y
|
|||
# CONFIG_EARLY_PCI_BRIDGE is not set
|
||||
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
|
||||
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
|
||||
# CONFIG_VGA_BIOS_DGPU is not set
|
||||
CONFIG_INTEL_GMA_HAVE_VBT=y
|
||||
CONFIG_INTEL_GMA_ADD_VBT=y
|
||||
# CONFIG_SOFTWARE_I2C is not set
|
||||
|
|
|
@ -7,4 +7,3 @@ payload_seabios="y"
|
|||
payload_memtest="y"
|
||||
grub_scan_disk="ahci"
|
||||
microcode_required="n"
|
||||
blobs_required="n"
|
||||
|
|
|
@ -113,7 +113,7 @@ make_archive()
|
|||
|
||||
# remove ME/MRC/EC firmware from ROM images
|
||||
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ] || \
|
||||
[ "${target}" = "e6400nvidia_4mb" ] || \
|
||||
[ "${target}" = "e6400_4mb" ] || \
|
||||
[ "${microcode_required}" = "n" ]; then
|
||||
strip_archive "${romdir}"
|
||||
fi
|
||||
|
@ -228,7 +228,7 @@ strip_rom_image()
|
|||
err "strip_rom_images: ${romfile}: can't nuke sch5545ec fw"
|
||||
|
||||
# TODO: replace this board-specific hack
|
||||
if [ "${target}" = "e6400nvidia_4mb" ]; then
|
||||
if [ "${target}" = "e6400_4mb" ]; then
|
||||
"${cbfstool}" "${romfile}" remove -n "pci10de,06eb.rom" || \
|
||||
err "strip_rom_images: ${romfile}: can't nuke e6400 vga rom"
|
||||
fi
|
||||
|
|
|
@ -387,8 +387,7 @@ extract_e6400vga()
|
|||
(
|
||||
cd "${appdir}" || \
|
||||
err "extract_e6400vga: can't cd ${appdir}"
|
||||
tail -c +${e6400_vga_offset} "${dl_path##*/}" | gunzip > bios.bin || \
|
||||
err "extract_e6400vga: can't gunzip > bios.bin"
|
||||
tail -c +${e6400_vga_offset} "${dl_path##*/}" | gunzip > bios.bin || :
|
||||
|
||||
[ -f "bios.bin" ] || \
|
||||
err "extract_e6400vga: can't extract bios.bin from update"
|
||||
|
|
|
@ -200,7 +200,7 @@ patch_rom()
|
|||
inject_blob_hp_kbc1126_ec "${rom}"
|
||||
[ "${CONFIG_VGA_BIOS_FILE}" != "" ] && \
|
||||
[ "${CONFIG_VGA_BIOS_ID}" != "" ] && \
|
||||
inject_blob_dell_e6400_vgarom_nvidia
|
||||
inject_blob_dell_e6400_vgarom_nvidia "${rom}"
|
||||
[ "${CONFIG_INCLUDE_SMSC_SCH5545_EC_FW}" = "y" ] && \
|
||||
[ "${CONFIG_SMSC_SCH5545_EC_FW_FILE}" != "" ] && \
|
||||
inject_blob_smsc_sch5545_ec "${rom}"
|
||||
|
|
Loading…
Reference in New Issue