Coverage Report

Created: 2026-03-11 06:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/u-boot/drivers/block/blkmap_helper.c
Line
Count
Source
1
// SPDX-License-Identifier: GPL-2.0+
2
/*
3
 * blkmap helper function
4
 *
5
 * Copyright (c) 2023, Linaro Limited
6
 */
7
8
#include <blk.h>
9
#include <blkmap.h>
10
#include <dm/device.h>
11
#include <dm/device-internal.h>
12
13
int blkmap_create_ramdisk(const char *label, ulong image_addr, ulong image_size,
14
        struct udevice **devp)
15
0
{
16
0
  int ret;
17
0
  lbaint_t blknum;
18
0
  struct blkmap *bm;
19
0
  struct blk_desc *desc;
20
0
  struct udevice *bm_dev;
21
22
0
  ret = blkmap_create(label, &bm_dev);
23
0
  if (ret) {
24
0
    log_err("failed to create blkmap\n");
25
0
    return ret;
26
0
  }
27
28
0
  bm = dev_get_plat(bm_dev);
29
0
  desc = dev_get_uclass_plat(bm->blk);
30
0
  blknum = image_size >> desc->log2blksz;
31
0
  ret = blkmap_map_pmem(bm_dev, 0, blknum, image_addr, true);
32
0
  if (ret) {
33
0
    log_err("Unable to map %#llx at block %d : %d\n",
34
0
      (unsigned long long)image_addr, 0, ret);
35
0
    goto err;
36
0
  }
37
0
  log_info("Block %d+0x" LBAF " mapped to %#llx\n", 0, blknum,
38
0
     (unsigned long long)image_addr);
39
40
0
  ret = device_probe(bm->blk);
41
0
  if (ret)
42
0
    goto err;
43
44
0
  if (devp)
45
0
    *devp = bm_dev;
46
47
0
  return 0;
48
49
0
err:
50
0
  blkmap_destroy(bm_dev);
51
52
0
  return ret;
53
0
}