Hi : Andy Yan <andys...@gmail.com> 于2018年11月28日周三 下午7:10写道:
> Hi: > Priit Laes <pl...@plaes.org> 于2018年11月22日周四 上午2:06写道: > >> This is a resend/v2 of a "Stop AXP from crashing when enabling LDO3" >> series, >> posted by Olliver Schinagl in March 2017. Unfortunately it never got past >> initial discussion [1], but most Olimex Lime2 boards are still running >> into this bug. >> >> When powering up an AXP209, the default value for LDO3 output is enabled. >> This >> works fine. However if for whatever reason, LDO3 is disabled, for example >> by OS >> during reboot and u-boot enables LDO3 again, the PMIC shuts down (without >> setting an interrupt) causing the board to hang. This behavior has been >> seen >> from Linux as well, u-boot disables LDO3 as a default value, the kernel >> enables >> it per its DTS, the kernel hangs as the PMIC gets shut down. >> >> The root cause is that some boards have too high capacitance on the LDO3 >> output >> port causing inrush currents exceeding the maximum of the AXP209. >> >> The fix is to turn on the LDO3 at the lowest possible voltage and then >> set the >> final voltage. >> >> If the capacitance is really big (due to a connected device for example) >> the >> AXP209 also features VRC, or Voltage Rate Control, allowing voltage to >> ramp up >> even slower. >> >> Similar changes need to be also implemented in the operating system driver >> side when driver needs to toggle power for the ALDO3 regulator. >> >> This patch series implements the above with a few tiny cleanups. >> >> The initial discussion with some scope screenshots can be found in the >> linux-sunxi mailing list [0]. >> >> And the initial series were posted to u-boot mailing list [1]. >> >> Signed-off-by: Olliver Schinagl <oli...@schinagl.nl> >> Signed-off-by: Priit Laes <pl...@plaes.org> >> >> [0] https://groups.google.com/forum/m/#!topic/linux-sunxi/EDvEsbHHqQI >> [1] https://lists.denx.de/pipermail/u-boot/2017-March/282789.html >> >> -- >> Changes since v2: >> - Collected Acked-by tags, patches 1,3-5 are now ripe for picking. >> - Olliver fixed wrong code in patch 2, thanks for Maxime for spotting >> - Fixed checkpatch error in patch 5 >> - Expanded commit message for patch 6 >> >> Changes from initial submission: >> - Rebased on top of latest master and fixed conflicts >> - Added comments about datasheet errors for patch 6 >> - Fixed some typos and checkpatch errors >> - Added patch to Olimex Lime2 eMMC board >> >> Olliver Schinagl (8): >> sunxi: board: Print error after power initialization fails >> sunxi: pmic_bus: Decrease boot time by not writing duplicate data >> power: axp209: Use BIT() macro >> power: axp209: Define the chip version mask >> power: axp209: Reduce magic values by adding defines for LDO[234] >> power: axp209: Add support for voltage rate control on LDO3 >> power: axp209: Limit inrush current for broken boards >> arm: sunxi: Reduce inrush current on Olimex OLinuXino-A20-Lime2 >> >> Priit Laes (1): >> arm: sunxi: Reduce inrush current on Olimex OLinuXino-A20-Lime2-eMMC >> >> arch/arm/mach-sunxi/pmic_bus.c | 6 ++- >> board/sunxi/board.c | 18 +++--- >> configs/A20-OLinuXino-Lime2-eMMC_defconfig | 2 +- >> configs/A20-OLinuXino-Lime2_defconfig | 2 +- >> drivers/power/Kconfig | 43 ++++++++++++++- >> drivers/power/axp209.c | 66 ++++++++++++++++++---- >> include/axp209.h | 70 +++++++++++++++++------ >> 7 files changed, 172 insertions(+), 35 deletions(-) >> >> base-commit: a3e1653ddeb02f39481eba572275016171e9670c >> > > > I also play with a Lime2-eMMC board(rev K) these days, but I found this > board could do reboot whatevery in u-boot or kernel when it boot from > emmc. But it reboot well when it boot from sdcard. > > Sorry I mean this board couldn't do reboot from kernel or u-boot here . > root@lime2:~# > root@lime2:~# > root@lime2:~# > root@lime2:~# reboot > [ 2089.632091] reboot: Restarting system > > Can't see any further reboot log. unless i replug the power jack. > > > > > > When I do reset from u-boot , it failed too: > > Boot SPL 2018.05-armbian (Nov 28 2018 - 14:39:04 +0800) > DRAM: 3/2/2 > Trying to boot from MMC2 > > > U-ready > DRAM: 1 GiB > MMC: SUNXI MMC: 1 > Loading Environment from EXT4... MMC: no card present > ** Bad device mmc 0 ** > In: serial > Out: serial > Err: serial > Allwinner mUSB OTG (Peripheral) > SCSI: SATA link 0 timeout. > A: ethernet@01c50000 > Warning: usb_ether using MAC address from ROM > , eth1: usb_ether > MMC: no card present > ** Bad device mmc 0 ** > us 0 for devices... 1 USB Device(s) found > scan1 USB Device(s) found > scaswitch to partitions #0, OK > mmc1(part MMC: no card present > => <INTERRUPT> > => > => reset > resetting ... > > I post these here hope to know if anyone meet the same situtation. > > > -- >> git-series 0.9.1 >> _______________________________________________ >> U-Boot mailing list >> U-Boot@lists.denx.de >> https://lists.denx.de/listinfo/u-boot >> > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot