aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTuomas Tynkkynen2018-10-15 04:21:10 -0500
committerSimon Glass2018-11-14 11:16:27 -0600
commit4ad54ec4d5c98a297f8df2fe9a630a534557f717 (patch)
tree757d0192d9190c05e0417d4b3ee66b96cdb44734
parentc879eeb7aa95d753d4d9e39f43004943ed9d93b7 (diff)
downloadu-boot-4ad54ec4d5c98a297f8df2fe9a630a534557f717.tar.gz
u-boot-4ad54ec4d5c98a297f8df2fe9a630a534557f717.tar.xz
u-boot-4ad54ec4d5c98a297f8df2fe9a630a534557f717.zip
blk: Introduce IF_TYPE_VIRTIO
This adds a new block interface type for VirtIO block devices. Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--disk/part.c6
-rw-r--r--drivers/block/blk-uclass.c2
-rw-r--r--include/blk.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/disk/part.c b/disk/part.c
index 9e457a6e72..f30f9e9187 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -150,6 +150,9 @@ void dev_print (struct blk_desc *dev_desc)
150 dev_desc->revision, 150 dev_desc->revision,
151 dev_desc->product); 151 dev_desc->product);
152 break; 152 break;
153 case IF_TYPE_VIRTIO:
154 printf("%s VirtIO Block Device\n", dev_desc->vendor);
155 break;
153 case IF_TYPE_DOC: 156 case IF_TYPE_DOC:
154 puts("device type DOC\n"); 157 puts("device type DOC\n");
155 return; 158 return;
@@ -281,6 +284,9 @@ static void print_part_header(const char *type, struct blk_desc *dev_desc)
281 case IF_TYPE_NVME: 284 case IF_TYPE_NVME:
282 puts ("NVMe"); 285 puts ("NVMe");
283 break; 286 break;
287 case IF_TYPE_VIRTIO:
288 puts("VirtIO");
289 break;
284 default: 290 default:
285 puts ("UNKNOWN"); 291 puts ("UNKNOWN");
286 break; 292 break;
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 76ee3db80c..65a766e586 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -23,6 +23,7 @@ static const char *if_typename_str[IF_TYPE_COUNT] = {
23 [IF_TYPE_HOST] = "host", 23 [IF_TYPE_HOST] = "host",
24 [IF_TYPE_NVME] = "nvme", 24 [IF_TYPE_NVME] = "nvme",
25 [IF_TYPE_EFI] = "efi", 25 [IF_TYPE_EFI] = "efi",
26 [IF_TYPE_VIRTIO] = "virtio",
26}; 27};
27 28
28static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = { 29static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = {
@@ -37,6 +38,7 @@ static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = {
37 [IF_TYPE_HOST] = UCLASS_ROOT, 38 [IF_TYPE_HOST] = UCLASS_ROOT,
38 [IF_TYPE_NVME] = UCLASS_NVME, 39 [IF_TYPE_NVME] = UCLASS_NVME,
39 [IF_TYPE_EFI] = UCLASS_EFI, 40 [IF_TYPE_EFI] = UCLASS_EFI,
41 [IF_TYPE_VIRTIO] = UCLASS_VIRTIO,
40}; 42};
41 43
42static enum if_type if_typename_to_iftype(const char *if_typename) 44static enum if_type if_typename_to_iftype(const char *if_typename)
diff --git a/include/blk.h b/include/blk.h
index 5e94f0e096..d0c033aece 100644
--- a/include/blk.h
+++ b/include/blk.h
@@ -33,6 +33,7 @@ enum if_type {
33 IF_TYPE_HOST, 33 IF_TYPE_HOST,
34 IF_TYPE_NVME, 34 IF_TYPE_NVME,
35 IF_TYPE_EFI, 35 IF_TYPE_EFI,
36 IF_TYPE_VIRTIO,
36 37
37 IF_TYPE_COUNT, /* Number of interface types */ 38 IF_TYPE_COUNT, /* Number of interface types */
38}; 39};