[U-Boot] [PATCH v3 0/9] Stop AXP from crashing when enabling LDO3
Andy Yan
andyshrk at gmail.com
Wed Nov 28 11:10:13 UTC 2018
Hi:
Priit Laes <plaes at 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 <oliver at schinagl.nl>
> Signed-off-by: Priit Laes <plaes at 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.
root at lime2:~#
root at lime2:~#
root at lime2:~#
root at 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 at 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 at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
>
More information about the U-Boot
mailing list