]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - disk/part.c
sandbox: Use os functions to read host device tree
[karo-tx-uboot.git] / disk / part.c
index d73625c4434c622a4a8d3e0ed78e41667b6eabf5..b8c6aac801626f165bab1bb800ccf657c5a944f4 100644 (file)
@@ -2,23 +2,7 @@
  * (C) Copyright 2001
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * 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., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -58,6 +42,9 @@ static const struct block_drvr block_drvr[] = {
 #endif
 #if defined(CONFIG_SYSTEMACE)
        { .name = "ace", .get_dev = systemace_get_dev, },
+#endif
+#if defined(CONFIG_SANDBOX)
+       { .name = "host", .get_dev = host_get_dev, },
 #endif
        { },
 };
@@ -302,6 +289,9 @@ static void print_part_header (const char *type, block_dev_desc_t * dev_desc)
        case IF_TYPE_MMC:
                puts ("MMC");
                break;
+       case IF_TYPE_HOST:
+               puts("HOST");
+               break;
        default:
                puts ("UNKNOWN");
                break;
@@ -462,23 +452,6 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
        int part;
        disk_partition_t tmpinfo;
 
-       /*
-        * For now, we have a special case for sandbox, since there is no
-        * real block device support.
-        */
-       if (0 == strcmp(ifname, "host")) {
-               *dev_desc = NULL;
-               info->start = info->size =  info->blksz = 0;
-               info->bootable = 0;
-               strcpy((char *)info->type, BOOT_PART_TYPE);
-               strcpy((char *)info->name, "Sandbox host");
-#ifdef CONFIG_PARTITION_UUIDS
-               info->uuid[0] = 0;
-#endif
-
-               return 0;
-       }
-
        /* If no dev_part_str, use bootdevice environment variable */
        if (!dev_part_str || !strlen(dev_part_str) ||
            !strcmp(dev_part_str, "-"))
@@ -548,6 +521,8 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
                        goto cleanup;
                }
 
+               (*dev_desc)->log2blksz = LOG2((*dev_desc)->blksz);
+
                info->start = 0;
                info->size = (*dev_desc)->lba;
                info->blksz = (*dev_desc)->blksz;
@@ -631,6 +606,8 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
                goto cleanup;
        }
 
+       (*dev_desc)->log2blksz = LOG2((*dev_desc)->blksz);
+
        ret = part;
        goto cleanup;