mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-07 19:26:15 +00:00
dell-dock: Set minimum board to board 4
This allows dropping all the quirks related to older boards.
This commit is contained in:
parent
993fc1636c
commit
8963d6b4b2
@ -70,8 +70,8 @@ FirmwareSizeMax = 0x20000
|
|||||||
Flags = require-ac
|
Flags = require-ac
|
||||||
Children = FuDellDockStatus|USB\VID_413C&PID_B06E&hub&status,FuDellDockMst|MST-panamera-vmm5331-259
|
Children = FuDellDockStatus|USB\VID_413C&PID_B06E&hub&status,FuDellDockMst|MST-panamera-vmm5331-259
|
||||||
DellDockUnlockTarget = 1
|
DellDockUnlockTarget = 1
|
||||||
DellDockBoardMin = 2
|
DellDockBoardMin = 4
|
||||||
DellDockVersionLowest = 00.00.00.09
|
DellDockVersionLowest = 00.00.00.17
|
||||||
DellDockBlobVersionOffset = 0x1AFC0
|
DellDockBlobVersionOffset = 0x1AFC0
|
||||||
InstallDuration = 60
|
InstallDuration = 60
|
||||||
|
|
||||||
@ -114,14 +114,3 @@ FirmwareSizeMin=0x40000
|
|||||||
FirmwareSizeMax=0x80000
|
FirmwareSizeMax=0x80000
|
||||||
Flags = require-ac
|
Flags = require-ac
|
||||||
InstallDuration = 22
|
InstallDuration = 22
|
||||||
|
|
||||||
# Thunderbolt controller (old ID)
|
|
||||||
# TODO: This should be dropped when DellDockBoardMin is 3+
|
|
||||||
[Guid=TBT-00d40012]
|
|
||||||
Name = Thunderbolt controller in Dell dock
|
|
||||||
Summary = Thunderbolt controller
|
|
||||||
Vendor = Dell Inc
|
|
||||||
ParentGuid = USB\VID_413C&PID_B06E&hub&embedded
|
|
||||||
FirmwareSizeMin=0x40000
|
|
||||||
FirmwareSizeMax=0x80000
|
|
||||||
Flags = require-ac,ignore-validation
|
|
||||||
|
@ -529,7 +529,6 @@ fu_dell_dock_ec_reset (FuDevice *device, GError **error)
|
|||||||
gboolean
|
gboolean
|
||||||
fu_dell_dock_ec_reboot_dock (FuDevice *device, GError **error)
|
fu_dell_dock_ec_reboot_dock (FuDevice *device, GError **error)
|
||||||
{
|
{
|
||||||
FuDellDockEc *self = FU_DELL_DOCK_EC (device);
|
|
||||||
guint16 cmd = EC_CMD_REBOOT;
|
guint16 cmd = EC_CMD_REBOOT;
|
||||||
|
|
||||||
g_return_val_if_fail (device != NULL, FALSE);
|
g_return_val_if_fail (device != NULL, FALSE);
|
||||||
@ -539,10 +538,6 @@ fu_dell_dock_ec_reboot_dock (FuDevice *device, GError **error)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: Drop when bumping minimum EC version to 13+ */
|
|
||||||
if (fu_common_vercmp (self->ec_version, "00.00.00.13") < 0)
|
|
||||||
g_print ("\nEC Reboot API may fail on EC %s. Please manually power cycle dock.\n",
|
|
||||||
self->ec_version);
|
|
||||||
g_debug ("Rebooting %s", fu_device_get_name (device));
|
g_debug ("Rebooting %s", fu_device_get_name (device));
|
||||||
|
|
||||||
return fu_dell_dock_ec_write (device, 2, (guint8 *) &cmd, error);
|
return fu_dell_dock_ec_write (device, 2, (guint8 *) &cmd, error);
|
||||||
@ -634,13 +629,6 @@ fu_dell_dock_ec_commit_package (FuDevice *device, GBytes *blob_fw,
|
|||||||
g_debug ("\ttbt_version: %x", self->raw_versions->tbt_version);
|
g_debug ("\ttbt_version: %x", self->raw_versions->tbt_version);
|
||||||
g_debug ("\tpkg_version: %x", self->raw_versions->pkg_version);
|
g_debug ("\tpkg_version: %x", self->raw_versions->pkg_version);
|
||||||
|
|
||||||
/* TODO: Drop when updating minimum EC to 11+ */
|
|
||||||
if (fu_common_vercmp (self->ec_version, "00.00.00.11") < 0) {
|
|
||||||
g_debug ("EC %s doesn't support package version, ignoring",
|
|
||||||
self->ec_version);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
payload [0] = EC_CMD_SET_DOCK_PKG;
|
payload [0] = EC_CMD_SET_DOCK_PKG;
|
||||||
payload [1] = length;
|
payload [1] = length;
|
||||||
memcpy (payload + 2, data, length);
|
memcpy (payload + 2, data, length);
|
||||||
|
@ -424,35 +424,6 @@ fu_d19_mst_check_fw (FuDevice *symbiote, GError **error)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
fu_dell_dock_mst_get_version_direct (FuDevice *symbiote, gchar **version_out,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
g_autoptr(GBytes) bytes = NULL;
|
|
||||||
const guint8 *data;
|
|
||||||
gsize length = 4;
|
|
||||||
|
|
||||||
g_return_val_if_fail (version_out != NULL, FALSE);
|
|
||||||
|
|
||||||
/* Try to read core MCU FW version */
|
|
||||||
if (!fu_dell_dock_mst_read_register (symbiote,
|
|
||||||
MST_CORE_MCU_FW_VERSION,
|
|
||||||
length, &bytes,
|
|
||||||
error))
|
|
||||||
return FALSE;
|
|
||||||
data = g_bytes_get_data (bytes, &length);
|
|
||||||
if (length < 4) {
|
|
||||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
|
||||||
"Invalid MST result %" G_GSIZE_FORMAT, length);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
*version_out = g_strdup_printf ("%02x.%02x.%02x",
|
|
||||||
data[1], /* major */
|
|
||||||
data[0], /* minor */
|
|
||||||
data[2]); /* build */
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
fu_dell_dock_mst_checksum_bank (FuDevice *symbiote,
|
fu_dell_dock_mst_checksum_bank (FuDevice *symbiote,
|
||||||
GBytes *blob_fw,
|
GBytes *blob_fw,
|
||||||
@ -923,7 +894,6 @@ fu_dell_dock_mst_setup (FuDevice *device, GError **error)
|
|||||||
FuDellDockMst *self = FU_DELL_DOCK_MST (device);
|
FuDellDockMst *self = FU_DELL_DOCK_MST (device);
|
||||||
FuDevice *parent;
|
FuDevice *parent;
|
||||||
const gchar *version;
|
const gchar *version;
|
||||||
g_autofree gchar *dynamic_version = NULL;
|
|
||||||
|
|
||||||
/* sanity check that we can talk to MST */
|
/* sanity check that we can talk to MST */
|
||||||
if (!fu_d19_mst_check_fw (self->symbiote, error))
|
if (!fu_d19_mst_check_fw (self->symbiote, error))
|
||||||
@ -933,14 +903,6 @@ fu_dell_dock_mst_setup (FuDevice *device, GError **error)
|
|||||||
parent = fu_device_get_parent (device);
|
parent = fu_device_get_parent (device);
|
||||||
version = fu_dell_dock_ec_get_mst_version (parent);
|
version = fu_dell_dock_ec_get_mst_version (parent);
|
||||||
|
|
||||||
/* TODO: Drop when we can guarantee EC 15+ */
|
|
||||||
if (version == NULL) {
|
|
||||||
if (!fu_dell_dock_mst_get_version_direct (self->symbiote,
|
|
||||||
&dynamic_version,
|
|
||||||
error))
|
|
||||||
return FALSE;
|
|
||||||
version = dynamic_version;
|
|
||||||
}
|
|
||||||
if (version != NULL)
|
if (version != NULL)
|
||||||
fu_device_set_version (device, version);
|
fu_device_set_version (device, version);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user