sandbox: keep time offset when resetting
The UEFI Self Certification Test (SCT) checks the SetTime() service with the following steps: * set date * reset * check date matches To be compliant the sandbox should keep the offset to the host RTC during resets. The implementation uses the environment variable UBOOT_SB_TIME_OFFSET to persist the offset. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Simon Glass
parent
5e6c9029cd
commit
43db07507a
@@ -57,6 +57,7 @@ long sandbox_i2c_rtc_set_offset(struct udevice *dev, bool use_system_time,
|
||||
plat->use_system_time = use_system_time;
|
||||
if (offset != -1)
|
||||
plat->offset = offset;
|
||||
os_set_time_offset(plat->offset);
|
||||
|
||||
return old_offset;
|
||||
}
|
||||
@@ -80,7 +81,7 @@ static void reset_time(struct udevice *dev)
|
||||
|
||||
os_localtime(&now);
|
||||
plat->base_time = rtc_mktime(&now);
|
||||
plat->offset = 0;
|
||||
plat->offset = os_get_time_offset();
|
||||
plat->use_system_time = true;
|
||||
}
|
||||
|
||||
@@ -115,6 +116,7 @@ static int sandbox_i2c_rtc_set(struct udevice *dev, const struct rtc_time *time)
|
||||
now = plat->base_time;
|
||||
}
|
||||
plat->offset = rtc_mktime(time) - now;
|
||||
os_set_time_offset(plat->offset);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user