static int extract_range(char *input, int *plo, int *phi)
 {
        char *end;
-       *plo = simple_strtol(input, &end, 0);
+       *plo = simple_strtol(input, &end, 16);
        if (end == input)
                return -1;
 
        if ((*end == '-') && *(++end))
-               *phi = simple_strtol(end, NULL, 0);
+               *phi = simple_strtol(end, NULL, 16);
        else if (*end == '\0')
                *phi = *plo;
        else
 
        printf("Reading from bus %s\n", bus->name);
        for (addr = addrlo; addr <= addrhi; addr++) {
-               printf("PHY at address %d:\n", addr);
+               printf("PHY at address %x:\n", addr);
 
                for (devad = devadlo; devad <= devadhi; devad++) {
                        for (reg = reglo; reg <= reghi; reg++) {
 
                        struct phy_device *phydev = bus->phymap[i];
 
                        if (phydev) {
-                               printf("%d - %s", i, phydev->drv->name);
+                               printf("%x - %s", i, phydev->drv->name);
 
                                if (phydev->dev)
                                        printf(" <--> %s\n", phydev->dev->name);
 
 
        priv->emio = fdtdec_get_bool(gd->fdt_blob, dev->of_offset, "xlnx,emio");
 
-       printf("ZYNQ GEM: %lx, phyaddr %d, interface %s\n", (ulong)priv->iobase,
+       printf("ZYNQ GEM: %lx, phyaddr %x, interface %s\n", (ulong)priv->iobase,
               priv->phyaddr, phy_string_for_interface(priv->interface));
 
        return 0;