gdsys: P1022: Fix unused variable warnings
[oweals/u-boot.git] / board / gdsys / p1022 / controlcenterd-id.c
index 70eff912aa6bc7d99634d101e7b54225c61f98b4..db8a917563736ec2aa60d2bd250d7b620cc307cd 100644 (file)
@@ -2,20 +2,7 @@
  * (C) Copyright 2013
  * Reinhard Pfau, Guntermann & Drunck GmbH, reinhard.pfau@gdsys.cc
  *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /* TODO: some more #ifdef's to avoid unneeded code for stage 1 / stage 2 */
 #define CCDM_AUTO_FIRST_STAGE
 #endif
 
-/* enums from TCG specs */
-enum {
-       /* capability areas */
-       TPM_CAP_NV_INDEX        = 0x00000011,
-       TPM_CAP_HANDLE          = 0x00000014,
-       /* resource types */
-       TPM_RT_KEY      = 0x00000001,
-};
-
 /* CCDM specific contants */
 enum {
        /* NV indices */
@@ -178,33 +156,8 @@ static const uint8_t prg_stage1_prepare[] = {
        0x81, 0x2e, 0x30, 0x00, /* opcode: LOAD PCR3, f3 */
 };
 
-static const uint8_t prg_stage2_prepare[] = {
-       0x00, 0x80, 0x00, 0x00, /* opcode: SYNC PCR0 */
-       0x00, 0x84, 0x00, 0x00, /* opcode: SYNC PCR1 */
-       0x00, 0x88, 0x00, 0x00, /* opcode: SYNC PCR2 */
-       0x00, 0x8c, 0x00, 0x00, /* opcode: SYNC PCR3 */
-       0x00, 0x90, 0x00, 0x00, /* opcode: SYNC PCR4 */
-};
-
-static const uint8_t prg_stage2_success[] = {
-       0x81, 0x02, 0x40, 0x14, /* opcode: LOAD PCR4, #<20B data> */
-       0x48, 0xfd, 0x95, 0x17, 0xe7, 0x54, 0x6b, 0x68, /* data */
-       0x92, 0x31, 0x18, 0x05, 0xf8, 0x58, 0x58, 0x3c, /* data */
-       0xe4, 0xd2, 0x81, 0xe0, /* data */
-};
-
-static const uint8_t prg_stage_fail[] = {
-       0x81, 0x01, 0x00, 0x14, /* opcode: LOAD v0, #<20B data> */
-       0xc0, 0x32, 0xad, 0xc1, 0xff, 0x62, 0x9c, 0x9b, /* data */
-       0x66, 0xf2, 0x27, 0x49, 0xad, 0x66, 0x7e, 0x6b, /* data */
-       0xea, 0xdf, 0x14, 0x4b, /* data */
-       0x81, 0x42, 0x30, 0x00, /* opcode: LOAD PCR3, v0 */
-       0x81, 0x42, 0x40, 0x00, /* opcode: LOAD PCR4, v0 */
-};
-
 static const uint8_t vendor[] = "Guntermann & Drunck";
 
-
 /**
  * @brief read a bunch of data from MMC into memory.
  *
@@ -232,18 +185,18 @@ static int ccdm_mmc_read(struct mmc *mmc, u64 src, u8 *dst, int size)
        ofs = src % blk_len;
 
        if (ofs) {
-               n = mmc->block_dev.block_read(mmc->block_dev.dev, block_no++, 1,
+               n = mmc->block_dev.block_read(&mmc->block_dev, block_no++, 1,
                        tmp_buf);
                if (!n)
                        goto failure;
-               result = min(size, blk_len - ofs);
+               result = min(size, (int)(blk_len - ofs));
                memcpy(dst, tmp_buf + ofs, result);
                dst += result;
                size -= result;
        }
        cnt = size / blk_len;
        if (cnt) {
-               n = mmc->block_dev.block_read(mmc->block_dev.dev, block_no, cnt,
+               n = mmc->block_dev.block_read(&mmc->block_dev, block_no, cnt,
                        dst);
                if (n != cnt)
                        goto failure;
@@ -253,7 +206,7 @@ static int ccdm_mmc_read(struct mmc *mmc, u64 src, u8 *dst, int size)
                block_no += cnt;
        }
        if (size) {
-               n = mmc->block_dev.block_read(mmc->block_dev.dev, block_no++, 1,
+               n = mmc->block_dev.block_read(&mmc->block_dev, block_no++, 1,
                        tmp_buf);
                if (!n)
                        goto failure;
@@ -736,7 +689,8 @@ do_bin_func:
                                src_buf = buf;
                                for (ptr = (uint8_t *)src_buf, i = 20; i > 0;
                                        i -= data_size, ptr += data_size)
-                                       memcpy(ptr, data, min(i, data_size));
+                                       memcpy(ptr, data,
+                                              min_t(size_t, i, data_size));
                        }
                }
                bin_func(dst_reg->digest, src_buf, 20);
@@ -931,11 +885,12 @@ static struct key_program *load_key_chunk(const char *ifname,
        struct key_program header;
        uint32_t crc;
        uint8_t buf[12];
-       int i;
+       loff_t i;
 
        if (fs_set_blk_dev(ifname, dev_part_str, fs_type))
                goto failure;
-       i = fs_read(path, (ulong)buf, 0, 12);
+       if (fs_read(path, (ulong)buf, 0, 12, &i) < 0)
+               goto failure;
        if (i < 12)
                goto failure;
        header.magic = get_unaligned_be32(buf);
@@ -950,8 +905,9 @@ static struct key_program *load_key_chunk(const char *ifname,
                goto failure;
        if (fs_set_blk_dev(ifname, dev_part_str, fs_type))
                goto failure;
-       i = fs_read(path, (ulong)result, 0,
-               sizeof(struct key_program) + header.code_size);
+       if (fs_read(path, (ulong)result, 0,
+                   sizeof(struct key_program) + header.code_size, &i) < 0)
+               goto failure;
        if (i <= 0)
                goto failure;
        *result = header;
@@ -1032,6 +988,30 @@ static int first_stage_init(void)
 #endif
 
 #ifdef CCDM_SECOND_STAGE
+static const uint8_t prg_stage2_prepare[] = {
+       0x00, 0x80, 0x00, 0x00, /* opcode: SYNC PCR0 */
+       0x00, 0x84, 0x00, 0x00, /* opcode: SYNC PCR1 */
+       0x00, 0x88, 0x00, 0x00, /* opcode: SYNC PCR2 */
+       0x00, 0x8c, 0x00, 0x00, /* opcode: SYNC PCR3 */
+       0x00, 0x90, 0x00, 0x00, /* opcode: SYNC PCR4 */
+};
+
+static const uint8_t prg_stage2_success[] = {
+       0x81, 0x02, 0x40, 0x14, /* opcode: LOAD PCR4, #<20B data> */
+       0x48, 0xfd, 0x95, 0x17, 0xe7, 0x54, 0x6b, 0x68, /* data */
+       0x92, 0x31, 0x18, 0x05, 0xf8, 0x58, 0x58, 0x3c, /* data */
+       0xe4, 0xd2, 0x81, 0xe0, /* data */
+};
+
+static const uint8_t prg_stage_fail[] = {
+       0x81, 0x01, 0x00, 0x14, /* opcode: LOAD v0, #<20B data> */
+       0xc0, 0x32, 0xad, 0xc1, 0xff, 0x62, 0x9c, 0x9b, /* data */
+       0x66, 0xf2, 0x27, 0x49, 0xad, 0x66, 0x7e, 0x6b, /* data */
+       0xea, 0xdf, 0x14, 0x4b, /* data */
+       0x81, 0x42, 0x30, 0x00, /* opcode: LOAD PCR3, v0 */
+       0x81, 0x42, 0x40, 0x00, /* opcode: LOAD PCR4, v0 */
+};
+
 static int second_stage_init(void)
 {
        static const char mac_suffix[] = ".mac";
@@ -1042,7 +1022,7 @@ static int second_stage_init(void)
        const char *image_path = "/ccdm.itb";
        char *mac_path = NULL;
        ulong image_addr;
-       size_t image_size;
+       loff_t image_size;
        uint32_t err;
 
        printf("CCDM S2\n");
@@ -1084,10 +1064,11 @@ static int second_stage_init(void)
        image_addr = (ulong)get_image_location();
        if (fs_set_blk_dev("mmc", mmcdev, FS_TYPE_EXT))
                goto failure;
-       image_size = fs_read(image_path, image_addr, 0, 0);
+       if (fs_read(image_path, image_addr, 0, 0, &image_size) < 0)
+               goto failure;
        if (image_size <= 0)
                goto failure;
-       printf("CCDM image found on %s, %d bytes\n", mmcdev, image_size);
+       printf("CCDM image found on %s, %lld bytes\n", mmcdev, image_size);
 
        hmac_blob = load_key_chunk("mmc", mmcdev, FS_TYPE_EXT, mac_path);
        if (!hmac_blob) {