x86: ivybridge: Check the RTC return value
[platform/kernel/u-boot.git] / arch / x86 / cpu / ivybridge / sdram.c
index 26e2e5b..e637909 100644 (file)
@@ -107,11 +107,18 @@ static int read_seed_from_cmos(struct pei_data *pei_data)
         * the flash too much. So we store these in CMOS and the large MRC
         * data in SPI flash.
         */
-       rtc_read32(dev, CMOS_OFFSET_MRC_SEED, &pei_data->scrambler_seed);
+       ret = rtc_read32(dev, CMOS_OFFSET_MRC_SEED, &pei_data->scrambler_seed);
+       if (!ret) {
+               ret = rtc_read32(dev, CMOS_OFFSET_MRC_SEED_S3,
+                                &pei_data->scrambler_seed_s3);
+       }
+       if (ret) {
+               debug("Failed to read from RTC %s\n", dev->name);
+               return ret;
+       }
+
        debug("Read scrambler seed    0x%08x from CMOS 0x%02x\n",
              pei_data->scrambler_seed, CMOS_OFFSET_MRC_SEED);
-
-       rtc_read32(dev, CMOS_OFFSET_MRC_SEED_S3, &pei_data->scrambler_seed_s3);
        debug("Read S3 scrambler seed 0x%08x from CMOS 0x%02x\n",
              pei_data->scrambler_seed_s3, CMOS_OFFSET_MRC_SEED_S3);