u-boot-brain/cmd
Vladimir Oltean b4c20f20ad cmd: mdio: Fix access to arbitrary PHY addresses
Alex reported the following:

  "
  I'm doing some MDIO work on a freescale/NXP platform and I bumped into
  errors with this command:
  => mdio r emdio#3 5 3
  Reading from bus emdio#3
  "Synchronous Abort" handler, esr 0x8600000e
  elr: ffffffff862b8000 lr : 000000008200cce4 (reloc)
  ...

  mdio list does not list any PHYs currently because ethernet is using DM
  and the interfaces are not probed at this time.  The PHY does exist
  on the bus though.
  The above scenario works with this commit reverted:
  e55047ec51 cmd: mdio: Switch to generic
  helpers when accessing the registers

  The current code using generic helpers only works for PHYs that have
  been registered and show up in bus->phymap and crashes for arbitrary
  IDs.  I find it useful to allow reading from other addresses over MDIO
  too, certainly helpful for people debugging MDIO on various boards.
  "

Fix this by reverting to use the raw MDIO bus operations in case there
is no PHY probed based on DT at the specified address.

This restores the old behavior for these PHYs, which means that the
newly introduced MMD-over-C22 helpers won't be available for them, but
at least they will be accessible again without crashing the system.

Fixes: commit e55047ec51 ("cmd: mdio: Switch to generic helpers when accessing the registers")
Reported-by: Alex Marginean <alexm.osslist@gmail.com>
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Alex Marginean <alexm.osslist@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2019-06-01 13:33:17 -05:00
..
arm cmd: add exception command 2019-04-22 12:06:39 -04:00
mvebu SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
riscv cmd: add exception command 2019-04-22 12:06:39 -04:00
ti SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
x86 cmd: add exception command 2019-04-22 12:06:39 -04:00
.gitignore cmd: rework "license" command 2017-02-08 15:56:28 -05:00
adc.c cmd: adc: Use the sub-command infrastructure 2019-01-15 15:28:54 -05:00
aes.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
armflash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
avb.c avb: add support for named persistent values 2019-04-26 18:58:22 -04:00
axi.c cmd: Add axi command 2018-08-11 09:16:08 +02:00
bdinfo.c CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
bedbug.c powerpc: remove 4xx support 2017-07-03 17:35:28 -04:00
bind.c cmd: Add bind/unbind commands to bind a device to a driver from the command line 2018-08-21 16:21:37 +02:00
binop.c cmd: binop: Use hex2bin 2019-05-21 07:52:34 +02:00
blk_common.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
blkcache.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
blob.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bmp.c cmd: bmp: Make integer-to-pointer cast platform, independent 2019-02-15 12:48:02 +01:00
boot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootcount.c bootcount: Add bootcount command 2018-05-23 17:30:05 -04:00
bootefi.c efi_loader: comments for efi_install_fdt() 2019-05-12 20:54:23 +02:00
booti.c RISCV: image: Add booti support 2019-05-09 16:47:52 +08:00
bootm.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootmenu.c ensure active menuitem is inside menu 2018-12-07 08:13:48 -05:00
bootstage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootz.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
btrfs.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cache.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cbfs.c fs: cbfs: Add missing standard CBFS component types 2018-12-31 09:42:41 +08:00
clk.c cmd: clk: Handle ENODEV from clk_get_rate 2019-05-04 19:26:49 +02:00
cls.c cmd: add clear screen 'cls' command 2018-12-04 19:44:57 +01:00
config.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
conitrace.c cmd: add conitrace command 2018-09-25 21:49:18 -04:00
console.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cpu.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cramfs.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cros_ec.c cros_ec: Update cros_ec_read_hash() to specify the image 2018-10-09 04:40:27 -06:00
dataflash_mmc_mux.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
date.c cmd: date: Do not overwrite arguments 2019-02-19 08:55:43 -05:00
demo.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu.c dfu: Avoid declaring unused variables and absent parameters 2019-04-21 10:26:51 +02:00
diag.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
disk.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dm.c cmd: Move the "dm" command from test/dm/ to cmd/ 2018-12-15 11:49:19 -05:00
dtimg.c common: command: Rework the 'cmd is repeatable' logic 2019-01-15 15:28:54 -05:00
echo.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eeprom.c eeprom: fix DM_I2C support without CONFIG_SYS_I2C_EEPROM_BUS 2019-04-25 00:00:49 +02:00
efi.c cmd: efi: Clarify calculation precedence for '&' and '?' 2018-08-21 00:04:24 +02:00
efidebug.c efi_loader: optional data in load options are binary 2019-05-02 18:17:50 +02:00
elf.c elf: fix cache flushing in 'bootelf -p' command 2019-02-19 08:55:43 -05:00
ethsw.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
exit.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ext2.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ext4.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fastboot.c cmd: fastboot: handle watchdog while waiting for fastboot commands. 2019-03-16 13:29:43 +01:00
fat.c cmd: fat: add fatrm command 2018-09-23 21:55:30 +02:00
fdc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fdt.c cmd, fdt: add subcommand "get" to fdt header 2018-11-29 09:30:05 -07:00
fitupd.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
flash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fpga.c fpga: Add support for getting external data address and length 2019-04-16 11:51:33 +02:00
fpgad.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fs_uuid.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fs.c fs: Add a new command to create symbolic links 2019-04-09 20:04:03 -04:00
fuse.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gettime.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gpio.c gpio: Use case-insentive matching on the GPIO name 2019-02-20 15:25:28 +08:00
gpt.c cmd: gpt: fix and tidy up help message 2019-05-02 18:17:50 +02:00
hash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
help.c common: command: Rework the 'cmd is repeatable' logic 2019-01-15 15:28:54 -05:00
host.c sandbox: Drop the deprecated 'sb' command 2018-11-26 08:25:35 -05:00
i2c.c cmd: i2c: Fix help output of i2c command. 2018-12-10 07:30:58 +01:00
ide.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ini.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
io.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
iotrace.c iotrace: fix behaviour when buffer is full 2018-06-18 14:02:04 -04:00
irq.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
itest.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
jffs2.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Kconfig cmd: remove unused display command 2019-05-28 18:55:08 -04:00
led.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
legacy_led.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
license.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
load.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
log.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lzmadec.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mac.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile cmd: remove unused display command 2019-05-28 18:55:08 -04:00
md5sum.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mdio.c cmd: mdio: Fix access to arbitrary PHY addresses 2019-06-01 13:33:17 -05:00
mem.c Remove <inttypes.h> includes and PRI* usages in printf() entirely 2018-09-10 20:48:17 -04:00
mfsl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mii.c cmd: mii: don't check address for 'device' subcommand 2018-10-24 14:45:36 -05:00
misc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc_spi.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
mmc.c cmd: mmc: Make Mode: printout consistent 2019-05-04 19:26:49 +02:00
mp.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mtd.c cmd: mtd: fix compilation warning for help when SYS_LONGHELP=n 2019-01-18 13:40:34 -05:00
mtdparts.c cmd: mtdparts: remove mandatory 'mtdparts=' prefix 2018-09-20 20:11:01 +05:30
nand.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
net.c net: Read bootfile from env on netboot_common() 2018-07-26 14:08:20 -05:00
nvedit_efi.c efi_loader: memory leak in append value 2019-05-02 18:17:50 +02:00
nvedit.c cmd: env: add "-e" option for handling UEFI variables 2019-02-25 12:47:13 +01:00
nvme.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
onenand.c cmd/onenand.c: block align warning 2016-10-06 20:57:42 -04:00
osd.c cmd: Add osd commands 2018-09-28 18:27:33 +02:00
part.c cmd: part: use MAX_SEARCH_PARTITIONS for part search 2018-09-10 21:19:33 -04:00
pci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pcmcia.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pinmux.c cmd: pinmux: Add pinmux command 2018-11-16 16:51:56 -05:00
pmic.c pmic: Rewrite the pmic command to not only work with single byte transmission 2018-05-18 08:27:26 +02:00
pxe.c cmd: pxe: add board specific PXE default path 2019-05-05 08:48:50 -04:00
qfw.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
read.c cmd/read.c: Fix checking blk_dread return value 2017-08-20 09:54:30 -04:00
reginfo.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
regulator.c cmd: add missing line breaks for pr_err() 2018-06-07 20:06:29 -04:00
reiser.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
remoteproc.c cmd: remoteproc: Fix the base of strtoul for ID conversion from 3 to 10 2018-11-01 10:02:43 -04:00
rockusb.c rockchip: use 'arch-rockchip' as header file path 2019-05-01 00:00:05 +02:00
sata.c cmd: sata: add null pointer check for dev 2019-02-09 07:51:00 -05:00
sb.c spl: Add support for passing handoff info to U-Boot proper 2018-11-26 08:25:37 -05:00
scsi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
setexpr.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sf.c dm: spi: Read default speed and mode values from DT 2019-04-12 11:54:50 +05:30
sha1sum.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
smccc.c arm64: Add SMC and HVC commands 2018-05-08 09:07:35 -04:00
sound.c dm: sound: Complete migration to driver model 2018-12-13 16:36:41 -07:00
source.c cmd: fit_image: Add default property for FIT format scripts 2018-07-19 16:17:58 -04:00
spi.c Convert CONFIG_DEFAULT_SPI_* to Kconfig 2019-03-25 17:36:53 -04:00
spl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
strings.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
terminal.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
thordown.c cmd: thordown: Fix spelling of download. 2019-03-08 11:31:44 -05:00
time.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tpm_test.c tpm: Convert to use a device parameter 2018-11-29 09:30:06 -07:00
tpm-common.c tpm: Convert to use a device parameter 2018-11-29 09:30:06 -07:00
tpm-user-utils.h tpm: disociate TPMv1.x specific and generic code 2018-05-25 20:12:55 -04:00
tpm-v1.c tpm: Convert to use a device parameter 2018-11-29 09:30:06 -07:00
tpm-v2.c cmd: tpm-v2: use correct format code 2019-01-15 15:28:44 -05:00
trace.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tsi148.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ubi.c cmd: ubi: remove unreachable code 2019-01-15 15:28:44 -05:00
ubifs.c cmd: ubifs: Factor out some checking codes into cmd_ubifs_mount() 2018-09-28 20:22:32 -04:00
universe.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
unzip.c cmd: unzip: use correct format code 2019-01-15 15:28:44 -05:00
usb_gadget_sdp.c usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers 2018-12-07 16:31:45 +01:00
usb_mass_storage.c usb: reload watchdog during ums command 2019-04-21 10:26:52 +02:00
usb.c usb: Make portspeed return a read-only string 2019-04-09 13:11:45 +02:00
version.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
virtio.c virtio: cmd: Add virtio command for virtio devices 2018-11-14 09:16:27 -08:00
w1.c w1: add command for onewire protocol 2018-09-28 20:22:36 -04:00
wdt.c cmd: add wdt command 2019-04-12 07:04:18 +02:00
wol.c net: Add new wol command - Wake on LAN 2018-07-02 14:14:20 -05:00
ximg.c cmd: ximg.c: Add support for getting external data address and length 2019-04-22 18:13:22 -04:00
yaffs2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
zfs.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zip.c cmd: zip: use correct format code 2019-01-15 15:28:44 -05:00