| #
aba554cc |
| 23-Nov-2016 |
Jocelyn Bohr <bohr@google.com> |
Handle slow MMC writes
Flashing a 400Mb sparse system image takes ~10 minutes. The fastboot UDP protocol expects a response within 1 minute, so during long flash operations, the device must send fas
Handle slow MMC writes
Flashing a 400Mb sparse system image takes ~10 minutes. The fastboot UDP protocol expects a response within 1 minute, so during long flash operations, the device must send fastboot "INFO" packets.
This patch does the following: - Separate large writes into writes of size FASTBOOT_MAX_BLK_WRITE. This parameter was tuned by hand to result in a ~10 second write. - Keep a timer and send an INFO packet every 30 seconds. - Adjust the sequence number in the header of the fastboot OKAY packet to account for any INFO packets sent during flashing. - Reduce busywaiting in the bcm2835 MMC driver. This change is based on what the kernel does, and doesn't seem to corrupt the MMC. Without this change, "flashall" takes 25 minutes.
Bug: 31887729 Test: "fastboot -s udp:$RPI_IP flashall" works, rpi3 boots - Compute CRC checksum over every write to verify written data was not corrupted.
Change-Id: Ib17ef6a85715705a8b5f722a8b7d3e5fd1a6625d
show more ...
|
| #
a821c4af |
| 17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions
These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing function
dm: Rename dev_addr..() functions
These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion.
In the end we will have:
1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only
All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use.
Note this involves changing some dead code - the imx_lpi2c.c file.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| #
e6c6d07e |
| 05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC
Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC
Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users.
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| #
af1b7286 |
| 14-Apr-2017 |
Tom Rini <trini@konsulko.com> |
Merge branch 'master' of git://git.denx.de/u-boot-mmc
|
| #
4db2b61f |
| 02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes.
The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up
mmc: bcm2835_sdhci: Speed up mmc writes.
The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi.
Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| #
6d0e34bf |
| 17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency
The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardwa
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency
The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface.
Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
show more ...
|
| #
c69f6d04 |
| 13-Oct-2016 |
Tom Rini <trini@konsulko.com> |
Merge branch 'master' of http://git.denx.de/u-boot-mmc
|
| #
2cb5d67c |
| 25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number
Use the generic error number instead of meaningless value.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
| #
895549a2 |
| 25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg
"host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.co
mmc: sdhci: use the host version value in sdhci_setup_cfg
"host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
show more ...
|
| #
a481a156 |
| 17-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning
Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different si
mmc: bcm2835: fix 64-bit build warning
Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
| #
1254ff97 |
| 10-Jul-2015 |
Stefano Babic <sbabic@denx.de> |
Merge branch 'master' of git://git.denx.de/u-boot
|
| #
6f43ba70 |
| 07-Jul-2015 |
Albert ARIBAUD <albert.u.boot@aribaud.net> |
Merge branch 'u-boot/master' into 'u-boot-arm/master'
|
| #
9f1b4456 |
| 19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior
Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_
mmc: bcm2835_sdhci: Restore original delay behavior
Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver.
Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API.
Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl>
show more ...
|
| #
ff7e9cfc |
| 05-May-2015 |
Tom Rini <trini@konsulko.com> |
Merge branch 'master' of git://git.denx.de/u-boot-mmc
|
| #
33fe2fb8 |
| 04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver
The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer().
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver
The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer().
Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org>
show more ...
|
| #
ebe78bb9 |
| 17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host
We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host
We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory.
Signed-off-by: Alexander Stein <alexanders83@web.de>
show more ...
|
| #
b491d975 |
| 10-Apr-2015 |
Albert ARIBAUD <albert.u.boot@aribaud.net> |
Merge branch 'u-boot/master'
|
| #
d6c418e4 |
| 19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach
Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/*
Signed-off-by: Masahiro Yamada <yamada.masahiro@socion
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach
Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/*
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
| #
74321944 |
| 08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include
Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
|
| #
e82abaeb |
| 11-Aug-2014 |
Stefano Babic <sbabic@denx.de> |
Merge branch 'master' of git://git.denx.de/u-boot-arm
Conflicts: boards.cfg
Signed-off-by: Stefano Babic <sbabic@denx.de>
|
| #
64973023 |
| 10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag
Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quir
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag
Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
| #
17059f97 |
| 15-Apr-2013 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-arm
|
| #
5eaa2156 |
| 27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms
Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this.
Have the timer implementation export a custom API get_ti
ARM: bcm2835: fix get_timer() to return ms
Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this.
Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
| #
009d75cc |
| 28-Mar-2013 |
Albert ARIBAUD <albert.u.boot@aribaud.net> |
Merge branch 'u-boot/master' into 'u-boot-arm/master'
Conflicts: drivers/spi/tegra20_sflash.c include/fdtdec.h lib/fdtdec.c
|
| #
9a4fbe4f |
| 29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver
This adds a simple driver for the BCM2835's SD controller.
Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be los
mmc: add bcm2835 driver
This adds a simple driver for the BCM2835's SD controller.
Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors.
This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko.
Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley.
swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes.
Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com>
show more ...
|