* [U-Boot] [PATCH 01/20] tiny-printf: Tidy up a few nits
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-16 9:29 ` Stefan Roese
2016-05-14 20:02 ` [U-Boot] [PATCH 02/20] tiny-printf: Support snprintf() Simon Glass
` (19 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
- Rename 'w' to 'width' to make it more obvious what it is used for
- Use bool and int types instead of char to avoid register-masking on
32-bit machines
Signed-off-by: Simon Glass <sjg@chromium.org>
---
lib/tiny-printf.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/tiny-printf.c b/lib/tiny-printf.c
index a06abed..fbd5368 100644
--- a/lib/tiny-printf.c
+++ b/lib/tiny-printf.c
@@ -52,8 +52,8 @@ int vprintf(const char *fmt, va_list va)
if (ch != '%') {
putc(ch);
} else {
- char lz = 0;
- char w = 0;
+ bool lz = false;
+ int width = 0;
ch = *(fmt++);
if (ch == '0') {
@@ -62,9 +62,9 @@ int vprintf(const char *fmt, va_list va)
}
if (ch >= '0' && ch <= '9') {
- w = 0;
+ width = 0;
while (ch >= '0' && ch <= '9') {
- w = (w * 10) + ch - '0';
+ width = (width * 10) + ch - '0';
ch = *fmt++;
}
}
@@ -73,7 +73,7 @@ int vprintf(const char *fmt, va_list va)
zs = 0;
switch (ch) {
- case 0:
+ case '\0':
goto abort;
case 'u':
case 'd':
@@ -112,9 +112,9 @@ int vprintf(const char *fmt, va_list va)
*bf = 0;
bf = p;
- while (*bf++ && w > 0)
- w--;
- while (w-- > 0)
+ while (*bf++ && width > 0)
+ width--;
+ while (width-- > 0)
putc(lz ? '0' : ' ');
if (p) {
while ((ch = *p++))
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 02/20] tiny-printf: Support snprintf()
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 01/20] tiny-printf: Tidy up a few nits Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-16 9:31 ` Stefan Roese
2016-05-14 20:02 ` [U-Boot] [PATCH 03/20] reset: Drop the reset failure message Simon Glass
` (18 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
Add a simple version of this function for SPL. It does not check the buffer
size as this would add to the code size.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
lib/tiny-printf.c | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/lib/tiny-printf.c b/lib/tiny-printf.c
index fbd5368..4b70263 100644
--- a/lib/tiny-printf.c
+++ b/lib/tiny-printf.c
@@ -16,6 +16,9 @@
static char *bf;
static char zs;
+/* Current position in sprintf() output string */
+static char *outstr;
+
static void out(char c)
{
*bf++ = c;
@@ -40,7 +43,7 @@ static void div_out(unsigned int *num, unsigned int div)
out_dgt(dgt);
}
-int vprintf(const char *fmt, va_list va)
+int _vprintf(const char *fmt, va_list va, void (*putc)(const char ch))
{
char ch;
char *p;
@@ -133,8 +136,28 @@ int printf(const char *fmt, ...)
int ret;
va_start(va, fmt);
- ret = vprintf(fmt, va);
+ ret = _vprintf(fmt, va, putc);
+ va_end(va);
+
+ return ret;
+}
+
+static void putc_outstr(char ch)
+{
+ *outstr++ = ch;
+}
+
+/* Note that size is ignored */
+int snprintf(char *buf, size_t size, const char *fmt, ...)
+{
+ va_list va;
+ int ret;
+
+ va_start(va, fmt);
+ outstr = buf;
+ ret = _vprintf(fmt, va, putc_outstr);
va_end(va);
+ *outstr = '\0';
return ret;
}
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 03/20] reset: Drop the reset failure message
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 01/20] tiny-printf: Tidy up a few nits Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 02/20] tiny-printf: Support snprintf() Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 04/20] mmc: Drop mmc_register() Simon Glass
` (17 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
This adds to code size and is not needed, since hang() will print a message.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/misc/reset-uclass.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/reset-uclass.c b/drivers/misc/reset-uclass.c
index fdb5c6f..52b9e7e 100644
--- a/drivers/misc/reset-uclass.c
+++ b/drivers/misc/reset-uclass.c
@@ -55,7 +55,7 @@ void reset_walk_halt(enum reset_t type)
mdelay(100);
/* Still no reset? Give up */
- printf("Reset not supported on this platform\n");
+ debug("Reset not supported on this platform\n");
hang();
}
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 04/20] mmc: Drop mmc_register()
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (2 preceding siblings ...)
2016-05-14 20:02 ` [U-Boot] [PATCH 03/20] reset: Drop the reset failure message Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 05/20] mmc: Drop dead mmc code for non-generic MMC Simon Glass
` (16 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
This function is no longer used.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/mmc.c | 9 ---------
include/mmc.h | 1 -
2 files changed, 10 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 74b3d68..1ddeff4 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1531,15 +1531,6 @@ static int mmc_send_if_cond(struct mmc *mmc)
return 0;
}
-/* not used any more */
-int __deprecated mmc_register(struct mmc *mmc)
-{
-#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBCOMMON_SUPPORT)
- printf("%s is deprecated! use mmc_create() instead.\n", __func__);
-#endif
- return -1;
-}
-
#ifdef CONFIG_BLK
int mmc_bind(struct udevice *dev, struct mmc *mmc, const struct mmc_config *cfg)
{
diff --git a/include/mmc.h b/include/mmc.h
index a5c6573..056296e 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -411,7 +411,6 @@ enum mmc_hwpart_conf_mode {
MMC_HWPART_CONF_COMPLETE,
};
-int mmc_register(struct mmc *mmc);
struct mmc *mmc_create(const struct mmc_config *cfg, void *priv);
/**
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 05/20] mmc: Drop dead mmc code for non-generic MMC
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (3 preceding siblings ...)
2016-05-14 20:02 ` [U-Boot] [PATCH 04/20] mmc: Drop mmc_register() Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 06/20] mmc: Use byte array for multipliers Simon Glass
` (15 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
All boards that use MMC define CONFIG_GENERIC_MMC now, so we can drop this
old code.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
cmd/mmc.c | 62 -----------------------------------------------------------
include/mmc.h | 4 ----
2 files changed, 66 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c
index eb4a547..b2761e9 100644
--- a/cmd/mmc.c
+++ b/cmd/mmc.c
@@ -11,66 +11,6 @@
#include <mmc.h>
static int curr_device = -1;
-#ifndef CONFIG_GENERIC_MMC
-int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
-{
- int dev;
-
- if (argc < 2)
- return CMD_RET_USAGE;
-
- if (strcmp(argv[1], "init") == 0) {
- if (argc == 2) {
- if (curr_device < 0)
- dev = 1;
- else
- dev = curr_device;
- } else if (argc == 3) {
- dev = (int)simple_strtoul(argv[2], NULL, 10);
- } else {
- return CMD_RET_USAGE;
- }
-
- if (mmc_legacy_init(dev) != 0) {
- puts("No MMC card found\n");
- return 1;
- }
-
- curr_device = dev;
- printf("mmc%d is available\n", curr_device);
- } else if (strcmp(argv[1], "device") == 0) {
- if (argc == 2) {
- if (curr_device < 0) {
- puts("No MMC device available\n");
- return 1;
- }
- } else if (argc == 3) {
- dev = (int)simple_strtoul(argv[2], NULL, 10);
-
-#ifdef CONFIG_SYS_MMC_SET_DEV
- if (mmc_set_dev(dev) != 0)
- return 1;
-#endif
- curr_device = dev;
- } else {
- return CMD_RET_USAGE;
- }
-
- printf("mmc%d is current device\n", curr_device);
- } else {
- return CMD_RET_USAGE;
- }
-
- return 0;
-}
-
-U_BOOT_CMD(
- mmc, 3, 1, do_mmc,
- "MMC sub-system",
- "init [dev] - init MMC sub system\n"
- "mmc device [dev] - show or set current device"
-);
-#else /* !CONFIG_GENERIC_MMC */
static void print_mmcinfo(struct mmc *mmc)
{
@@ -881,5 +821,3 @@ U_BOOT_CMD(
"display MMC info",
"- display info of the current MMC device"
);
-
-#endif /* !CONFIG_GENERIC_MMC */
diff --git a/include/mmc.h b/include/mmc.h
index 056296e..7fdfc32 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -491,16 +491,12 @@ int mmc_start_init(struct mmc *mmc);
*/
void mmc_set_preinit(struct mmc *mmc, int preinit);
-#ifdef CONFIG_GENERIC_MMC
#ifdef CONFIG_MMC_SPI
#define mmc_host_is_spi(mmc) ((mmc)->cfg->host_caps & MMC_MODE_SPI)
#else
#define mmc_host_is_spi(mmc) 0
#endif
struct mmc *mmc_spi_init(uint bus, uint cs, uint speed, uint mode);
-#else
-int mmc_legacy_init(int verbose);
-#endif
void board_mmc_power_init(void);
int board_mmc_init(bd_t *bis);
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 06/20] mmc: Use byte array for multipliers
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (4 preceding siblings ...)
2016-05-14 20:02 ` [U-Boot] [PATCH 05/20] mmc: Drop dead mmc code for non-generic MMC Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:02 ` [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7 Simon Glass
` (14 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
We don't need an int since no value is over 80. This saves a small amount of
SPL space (about 44 bytes).
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 1ddeff4..b7c936c 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -984,7 +984,7 @@ static const int fbase[] = {
/* Multiplier values for TRAN_SPEED. Multiplied by 10 to be nice
* to platforms without floating point.
*/
-static const int multipliers[] = {
+static const u8 multipliers[] = {
0, /* reserved */
10,
12,
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (5 preceding siblings ...)
2016-05-14 20:02 ` [U-Boot] [PATCH 06/20] mmc: Use byte array for multipliers Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-14 20:23 ` Marek Vasut
2016-05-14 20:02 ` [U-Boot] [PATCH 08/20] rockchip: Check image name for the rksd image Simon Glass
` (13 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
Move these to debug() like the one in check_cache range(), to save SPL space.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
index dc309da..68cf62e 100644
--- a/arch/arm/cpu/armv7/cache_v7.c
+++ b/arch/arm/cpu/armv7/cache_v7.c
@@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
* invalidate the first cache-line
*/
if (start & (line_len - 1)) {
- printf("ERROR: %s - start address is not aligned - 0x%08x\n",
- __func__, start);
+ debug("ERROR: %s - start address is not aligned - 0x%08x\n",
+ __func__, start);
/* move to next cache line */
start = (start + line_len - 1) & ~(line_len - 1);
}
@@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
* invalidate the last cache-line
*/
if (stop & (line_len - 1)) {
- printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
- __func__, stop);
+ debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
+ __func__, stop);
/* align to the beginning of this cache line */
stop &= ~(line_len - 1);
}
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-14 20:02 ` [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7 Simon Glass
@ 2016-05-14 20:23 ` Marek Vasut
2016-05-14 21:22 ` Simon Glass
0 siblings, 1 reply; 50+ messages in thread
From: Marek Vasut @ 2016-05-14 20:23 UTC (permalink / raw)
To: u-boot
On 05/14/2016 10:02 PM, Simon Glass wrote:
> Move these to debug() like the one in check_cache range(), to save SPL space.
This hides cache problems, which were visibly reported so far.
I am opposed to this patch.
Wouldn't it make more sense to completely disable printf() and co.
in SPL if you're after saving space?
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
> index dc309da..68cf62e 100644
> --- a/arch/arm/cpu/armv7/cache_v7.c
> +++ b/arch/arm/cpu/armv7/cache_v7.c
> @@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
> * invalidate the first cache-line
> */
> if (start & (line_len - 1)) {
> - printf("ERROR: %s - start address is not aligned - 0x%08x\n",
> - __func__, start);
> + debug("ERROR: %s - start address is not aligned - 0x%08x\n",
> + __func__, start);
> /* move to next cache line */
> start = (start + line_len - 1) & ~(line_len - 1);
> }
> @@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
> * invalidate the last cache-line
> */
> if (stop & (line_len - 1)) {
> - printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
> - __func__, stop);
> + debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
> + __func__, stop);
> /* align to the beginning of this cache line */
> stop &= ~(line_len - 1);
> }
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-14 20:23 ` Marek Vasut
@ 2016-05-14 21:22 ` Simon Glass
2016-05-14 21:41 ` Marek Vasut
0 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 21:22 UTC (permalink / raw)
To: u-boot
Hi Marek,
On 14 May 2016 at 14:23, Marek Vasut <marex@denx.de> wrote:
> On 05/14/2016 10:02 PM, Simon Glass wrote:
>> Move these to debug() like the one in check_cache range(), to save SPL space.
>
> This hides cache problems, which were visibly reported so far.
> I am opposed to this patch.
Sure, but see check_cache_range(). It uses debug(). In fact I found
the at91 cache problem only after trying #define DEBUG in the code
there.
>
> Wouldn't it make more sense to completely disable printf() and co.
> in SPL if you're after saving space?
Or maybe we need something that prints a message in U-Boot proper, but
not SPL? I'll take a look.
>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>>
>> arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
>> index dc309da..68cf62e 100644
>> --- a/arch/arm/cpu/armv7/cache_v7.c
>> +++ b/arch/arm/cpu/armv7/cache_v7.c
>> @@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>> * invalidate the first cache-line
>> */
>> if (start & (line_len - 1)) {
>> - printf("ERROR: %s - start address is not aligned - 0x%08x\n",
>> - __func__, start);
>> + debug("ERROR: %s - start address is not aligned - 0x%08x\n",
>> + __func__, start);
>> /* move to next cache line */
>> start = (start + line_len - 1) & ~(line_len - 1);
>> }
>> @@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>> * invalidate the last cache-line
>> */
>> if (stop & (line_len - 1)) {
>> - printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
>> - __func__, stop);
>> + debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
>> + __func__, stop);
>> /* align to the beginning of this cache line */
>> stop &= ~(line_len - 1);
>> }
>>
>
>
> --
> Best regards,
> Marek Vasut
Regards,
Simon
^ permalink raw reply [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-14 21:22 ` Simon Glass
@ 2016-05-14 21:41 ` Marek Vasut
2016-05-19 4:02 ` Simon Glass
0 siblings, 1 reply; 50+ messages in thread
From: Marek Vasut @ 2016-05-14 21:41 UTC (permalink / raw)
To: u-boot
On 05/14/2016 11:22 PM, Simon Glass wrote:
> Hi Marek,
Hi!
> On 14 May 2016 at 14:23, Marek Vasut <marex@denx.de> wrote:
>> On 05/14/2016 10:02 PM, Simon Glass wrote:
>>> Move these to debug() like the one in check_cache range(), to save SPL space.
>>
>> This hides cache problems, which were visibly reported so far.
>> I am opposed to this patch.
>
> Sure, but see check_cache_range(). It uses debug(). In fact I found
> the at91 cache problem only after trying #define DEBUG in the code
> there.
Which is the reason we should really be vocal about such cache misuse.
I had a few of such cache problems bite me too, which is why I would
like to avoid silencing this warning with debug() by default.
I think check_cache_range() should also be fixed and should use printf()
by default.
>>
>> Wouldn't it make more sense to completely disable printf() and co.
>> in SPL if you're after saving space?
>
> Or maybe we need something that prints a message in U-Boot proper, but
> not SPL? I'll take a look.
But what if you trigger the issue only in SPL ?
>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>> ---
>>>
>>> arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
>>> index dc309da..68cf62e 100644
>>> --- a/arch/arm/cpu/armv7/cache_v7.c
>>> +++ b/arch/arm/cpu/armv7/cache_v7.c
>>> @@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>> * invalidate the first cache-line
>>> */
>>> if (start & (line_len - 1)) {
>>> - printf("ERROR: %s - start address is not aligned - 0x%08x\n",
>>> - __func__, start);
>>> + debug("ERROR: %s - start address is not aligned - 0x%08x\n",
>>> + __func__, start);
>>> /* move to next cache line */
>>> start = (start + line_len - 1) & ~(line_len - 1);
>>> }
>>> @@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>> * invalidate the last cache-line
>>> */
>>> if (stop & (line_len - 1)) {
>>> - printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>> - __func__, stop);
>>> + debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>> + __func__, stop);
>>> /* align to the beginning of this cache line */
>>> stop &= ~(line_len - 1);
>>> }
>>>
>>
>>
>> --
>> Best regards,
>> Marek Vasut
>
>
> Regards,
> Simon
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-14 21:41 ` Marek Vasut
@ 2016-05-19 4:02 ` Simon Glass
2016-05-19 15:22 ` Marek Vasut
0 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-19 4:02 UTC (permalink / raw)
To: u-boot
Hi Marek,
On 14 May 2016 at 15:41, Marek Vasut <marex@denx.de> wrote:
> On 05/14/2016 11:22 PM, Simon Glass wrote:
>> Hi Marek,
>
> Hi!
>
>> On 14 May 2016 at 14:23, Marek Vasut <marex@denx.de> wrote:
>>> On 05/14/2016 10:02 PM, Simon Glass wrote:
>>>> Move these to debug() like the one in check_cache range(), to save SPL space.
>>>
>>> This hides cache problems, which were visibly reported so far.
>>> I am opposed to this patch.
>>
>> Sure, but see check_cache_range(). It uses debug(). In fact I found
>> the at91 cache problem only after trying #define DEBUG in the code
>> there.
>
> Which is the reason we should really be vocal about such cache misuse.
> I had a few of such cache problems bite me too, which is why I would
> like to avoid silencing this warning with debug() by default.
>
> I think check_cache_range() should also be fixed and should use printf()
> by default.
>
>>>
>>> Wouldn't it make more sense to completely disable printf() and co.
>>> in SPL if you're after saving space?
>>
>> Or maybe we need something that prints a message in U-Boot proper, but
>> not SPL? I'll take a look.
>
> But what if you trigger the issue only in SPL ?
Yes, but is that likely? So far I don't think the cache is enabled in SPL...
>
>>>
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>> ---
>>>>
>>>> arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
>>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
>>>> index dc309da..68cf62e 100644
>>>> --- a/arch/arm/cpu/armv7/cache_v7.c
>>>> +++ b/arch/arm/cpu/armv7/cache_v7.c
>>>> @@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>>> * invalidate the first cache-line
>>>> */
>>>> if (start & (line_len - 1)) {
>>>> - printf("ERROR: %s - start address is not aligned - 0x%08x\n",
>>>> - __func__, start);
>>>> + debug("ERROR: %s - start address is not aligned - 0x%08x\n",
>>>> + __func__, start);
>>>> /* move to next cache line */
>>>> start = (start + line_len - 1) & ~(line_len - 1);
>>>> }
>>>> @@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>>> * invalidate the last cache-line
>>>> */
>>>> if (stop & (line_len - 1)) {
>>>> - printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>>> - __func__, stop);
>>>> + debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>>> + __func__, stop);
>>>> /* align to the beginning of this cache line */
>>>> stop &= ~(line_len - 1);
>>>> }
Regards,
Simon
^ permalink raw reply [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-19 4:02 ` Simon Glass
@ 2016-05-19 15:22 ` Marek Vasut
2016-06-29 3:27 ` Simon Glass
0 siblings, 1 reply; 50+ messages in thread
From: Marek Vasut @ 2016-05-19 15:22 UTC (permalink / raw)
To: u-boot
On 05/19/2016 06:02 AM, Simon Glass wrote:
> Hi Marek,
>
> On 14 May 2016 at 15:41, Marek Vasut <marex@denx.de> wrote:
>> On 05/14/2016 11:22 PM, Simon Glass wrote:
>>> Hi Marek,
>>
>> Hi!
>>
>>> On 14 May 2016 at 14:23, Marek Vasut <marex@denx.de> wrote:
>>>> On 05/14/2016 10:02 PM, Simon Glass wrote:
>>>>> Move these to debug() like the one in check_cache range(), to save SPL space.
>>>>
>>>> This hides cache problems, which were visibly reported so far.
>>>> I am opposed to this patch.
>>>
>>> Sure, but see check_cache_range(). It uses debug(). In fact I found
>>> the at91 cache problem only after trying #define DEBUG in the code
>>> there.
>>
>> Which is the reason we should really be vocal about such cache misuse.
>> I had a few of such cache problems bite me too, which is why I would
>> like to avoid silencing this warning with debug() by default.
>>
>> I think check_cache_range() should also be fixed and should use printf()
>> by default.
>>
>>>>
>>>> Wouldn't it make more sense to completely disable printf() and co.
>>>> in SPL if you're after saving space?
>>>
>>> Or maybe we need something that prints a message in U-Boot proper, but
>>> not SPL? I'll take a look.
>>
>> But what if you trigger the issue only in SPL ?
>
> Yes, but is that likely? So far I don't think the cache is enabled in SPL...
Yeah, it's probably unlikely.
btw have you tried patching away all console IO support in SPL? Does it
save space?
>>
>>>>
>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>> ---
>>>>>
>>>>> arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
>>>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
>>>>> index dc309da..68cf62e 100644
>>>>> --- a/arch/arm/cpu/armv7/cache_v7.c
>>>>> +++ b/arch/arm/cpu/armv7/cache_v7.c
>>>>> @@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>>>> * invalidate the first cache-line
>>>>> */
>>>>> if (start & (line_len - 1)) {
>>>>> - printf("ERROR: %s - start address is not aligned - 0x%08x\n",
>>>>> - __func__, start);
>>>>> + debug("ERROR: %s - start address is not aligned - 0x%08x\n",
>>>>> + __func__, start);
>>>>> /* move to next cache line */
>>>>> start = (start + line_len - 1) & ~(line_len - 1);
>>>>> }
>>>>> @@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>>>> * invalidate the last cache-line
>>>>> */
>>>>> if (stop & (line_len - 1)) {
>>>>> - printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>>>> - __func__, stop);
>>>>> + debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>>>> + __func__, stop);
>>>>> /* align to the beginning of this cache line */
>>>>> stop &= ~(line_len - 1);
>>>>> }
>
> Regards,
> Simon
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7
2016-05-19 15:22 ` Marek Vasut
@ 2016-06-29 3:27 ` Simon Glass
0 siblings, 0 replies; 50+ messages in thread
From: Simon Glass @ 2016-06-29 3:27 UTC (permalink / raw)
To: u-boot
Hi Marek,
On 19 May 2016 at 08:22, Marek Vasut <marex@denx.de> wrote:
> On 05/19/2016 06:02 AM, Simon Glass wrote:
>> Hi Marek,
>>
>> On 14 May 2016 at 15:41, Marek Vasut <marex@denx.de> wrote:
>>> On 05/14/2016 11:22 PM, Simon Glass wrote:
>>>> Hi Marek,
>>>
>>> Hi!
>>>
>>>> On 14 May 2016 at 14:23, Marek Vasut <marex@denx.de> wrote:
>>>>> On 05/14/2016 10:02 PM, Simon Glass wrote:
>>>>>> Move these to debug() like the one in check_cache range(), to save SPL space.
>>>>>
>>>>> This hides cache problems, which were visibly reported so far.
>>>>> I am opposed to this patch.
>>>>
>>>> Sure, but see check_cache_range(). It uses debug(). In fact I found
>>>> the at91 cache problem only after trying #define DEBUG in the code
>>>> there.
>>>
>>> Which is the reason we should really be vocal about such cache misuse.
>>> I had a few of such cache problems bite me too, which is why I would
>>> like to avoid silencing this warning with debug() by default.
>>>
>>> I think check_cache_range() should also be fixed and should use printf()
>>> by default.
>>>
>>>>>
>>>>> Wouldn't it make more sense to completely disable printf() and co.
>>>>> in SPL if you're after saving space?
>>>>
>>>> Or maybe we need something that prints a message in U-Boot proper, but
>>>> not SPL? I'll take a look.
>>>
>>> But what if you trigger the issue only in SPL ?
>>
>> Yes, but is that likely? So far I don't think the cache is enabled in SPL...
>
> Yeah, it's probably unlikely.
>
> btw have you tried patching away all console IO support in SPL? Does it
> save space?
No I have not. I imagine it would, though. There is also the option
now of using the debug UART, which avoids the small amount of
serial/console overhead.
[snip]
Regards,
Simon
^ permalink raw reply [flat|nested] 50+ messages in thread
* [U-Boot] [PATCH 08/20] rockchip: Check image name for the rksd image
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (6 preceding siblings ...)
2016-05-14 20:02 ` [U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7 Simon Glass
@ 2016-05-14 20:02 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 09/20] rockchip: Drop unnecessary SPL properties Simon Glass
` (12 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:02 UTC (permalink / raw)
To: u-boot
We need a correct name (rk3288, rk3036) so check this to avoid a crash
later.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
tools/rkimage.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/tools/rkimage.c b/tools/rkimage.c
index f9fdcfa..ef31cb6 100644
--- a/tools/rkimage.c
+++ b/tools/rkimage.c
@@ -13,11 +13,6 @@
static uint32_t header;
-static int rkimage_check_params(struct image_tool_params *params)
-{
- return 0;
-}
-
static int rkimage_verify_header(unsigned char *buf, int size,
struct image_tool_params *params)
{
@@ -56,7 +51,7 @@ U_BOOT_IMAGE_TYPE(
"Rockchip Boot Image support",
4,
&header,
- rkimage_check_params,
+ rkcommon_check_params,
rkimage_verify_header,
rkimage_print_header,
rkimage_set_header,
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 09/20] rockchip: Drop unnecessary SPL properties
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (7 preceding siblings ...)
2016-05-14 20:02 ` [U-Boot] [PATCH 08/20] rockchip: Check image name for the rksd image Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 10/20] rockchip: video: Flush the cache when the display is updated Simon Glass
` (11 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
While we consider whether to drop use of DT in SPL, remove some unwanted
properties. This reduces SPL size by about 250 bytes.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
configs/firefly-rk3288_defconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configs/firefly-rk3288_defconfig b/configs/firefly-rk3288_defconfig
index 0995f9b..0d566c7 100644
--- a/configs/firefly-rk3288_defconfig
+++ b/configs/firefly-rk3288_defconfig
@@ -28,7 +28,7 @@ CONFIG_CMD_EXT4=y
CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
CONFIG_SPL_OF_CONTROL=y
-CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent"
+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
CONFIG_SYSCON=y
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 10/20] rockchip: video: Flush the cache when the display is updated
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (8 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 09/20] rockchip: Drop unnecessary SPL properties Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 11/20] rockchip: Drop SPL GPIO support for rk3288 Simon Glass
` (10 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Enable this option to correct display artifacts when a write-back cache is
in use.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/video/rockchip/rk_vop.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c
index a54af17..db09d9a 100644
--- a/drivers/video/rockchip/rk_vop.c
+++ b/drivers/video/rockchip/rk_vop.c
@@ -326,6 +326,7 @@ static int rk_vop_probe(struct udevice *dev)
if (!ret)
break;
}
+ video_set_flush_dcache(dev, 1);
return ret;
}
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 11/20] rockchip: Drop SPL GPIO support for rk3288
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (9 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 10/20] rockchip: video: Flush the cache when the display is updated Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 12/20] dm: env: mmc: Convert env_mmc to support CONFIG_BLK Simon Glass
` (9 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
This is not currently used and saves a little over 1KB of SPL image size.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
include/configs/rk3288_common.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
index 8a81397..9d50d83 100644
--- a/include/configs/rk3288_common.h
+++ b/include/configs/rk3288_common.h
@@ -69,7 +69,6 @@
#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot.img"
#define CONFIG_SPL_PINCTRL_SUPPORT
-#define CONFIG_SPL_GPIO_SUPPORT
#define CONFIG_SPL_RAM_SUPPORT
#define CONFIG_SPL_DRIVERS_MISC_SUPPORT
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 12/20] dm: env: mmc: Convert env_mmc to support CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (10 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 11/20] rockchip: Drop SPL GPIO support for rk3288 Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 13/20] dm: mmc: Convert sdhci " Simon Glass
` (8 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Update the MMC environment code so that it works with driver-model enabled
for block devices.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
common/env_mmc.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/common/env_mmc.c b/common/env_mmc.c
index c7fef18..16f6a17 100644
--- a/common/env_mmc.c
+++ b/common/env_mmc.c
@@ -128,12 +128,12 @@ static inline int write_env(struct mmc *mmc, unsigned long size,
unsigned long offset, const void *buffer)
{
uint blk_start, blk_cnt, n;
+ struct blk_desc *desc = mmc_get_blk_desc(mmc);
blk_start = ALIGN(offset, mmc->write_bl_len) / mmc->write_bl_len;
blk_cnt = ALIGN(size, mmc->write_bl_len) / mmc->write_bl_len;
- n = mmc->block_dev.block_write(&mmc->block_dev, blk_start,
- blk_cnt, (u_char *)buffer);
+ n = blk_dwrite(desc, blk_start, blk_cnt, (u_char *)buffer);
return (n == blk_cnt) ? 0 : -1;
}
@@ -197,12 +197,12 @@ static inline int read_env(struct mmc *mmc, unsigned long size,
unsigned long offset, const void *buffer)
{
uint blk_start, blk_cnt, n;
+ struct blk_desc *desc = mmc_get_blk_desc(mmc);
blk_start = ALIGN(offset, mmc->read_bl_len) / mmc->read_bl_len;
blk_cnt = ALIGN(size, mmc->read_bl_len) / mmc->read_bl_len;
- n = mmc->block_dev.block_read(&mmc->block_dev, blk_start, blk_cnt,
- (uchar *)buffer);
+ n = blk_dread(desc, blk_start, blk_cnt, (uchar *)buffer);
return (n == blk_cnt) ? 0 : -1;
}
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 13/20] dm: mmc: Convert sdhci to support CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (11 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 12/20] dm: env: mmc: Convert env_mmc to support CONFIG_BLK Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 14/20] dm: efi: Update for CONFIG_BLK Simon Glass
` (7 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Update sdhci.c so that it works with driver model enabled for block devices.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/sdhci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index ef7e615..5c71ab8 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -137,7 +137,7 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
int trans_bytes = 0, is_aligned = 1;
u32 mask, flags, mode;
unsigned int time = 0, start_addr = 0;
- int mmc_dev = mmc->block_dev.devnum;
+ int mmc_dev = mmc_get_blk_desc(mmc)->devnum;
unsigned start = get_timer(0);
/* Timeout unit - ms */
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 14/20] dm: efi: Update for CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (12 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 13/20] dm: mmc: Convert sdhci " Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-15 8:21 ` Alexander Graf
2016-05-14 20:03 ` [U-Boot] [PATCH 15/20] dm: mmc: spl: Add support " Simon Glass
` (6 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
This code does not currently build with driver model enabled for block
devices. Update it to correct this.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
include/efi_loader.h | 2 +-
lib/efi_loader/efi_disk.c | 61 +++++++++++++++++++++++++++++++++++------------
2 files changed, 47 insertions(+), 16 deletions(-)
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 88b8149..44a950f 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -134,7 +134,7 @@ uint64_t efi_add_memory_map(uint64_t start, uint64_t pages, int memory_type,
int efi_memory_init(void);
/* Convert strings from normal C strings to uEFI strings */
-static inline void ascii2unicode(u16 *unicode, char *ascii)
+static inline void ascii2unicode(u16 *unicode, const char *ascii)
{
while (*ascii)
*(unicode++) = *(ascii++);
diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
index 075fd34..3095bcf 100644
--- a/lib/efi_loader/efi_disk.c
+++ b/lib/efi_loader/efi_disk.c
@@ -8,6 +8,7 @@
#include <common.h>
#include <blk.h>
+#include <dm.h>
#include <efi_loader.h>
#include <inttypes.h>
#include <part.h>
@@ -96,9 +97,9 @@ static efi_status_t EFIAPI efi_disk_rw_blocks(struct efi_block_io *this,
return EFI_EXIT(EFI_DEVICE_ERROR);
if (direction == EFI_DISK_READ)
- n = desc->block_read(desc, lba, blocks, buffer);
+ n = blk_dread(desc, lba, blocks, buffer);
else
- n = desc->block_write(desc, lba, blocks, buffer);
+ n = blk_dwrite(desc, lba, blocks, buffer);
/* We don't do interrupts, so check for timers cooperatively */
efi_timer_check();
@@ -142,8 +143,8 @@ static const struct efi_block_io block_io_disk_template = {
.flush_blocks = &efi_disk_flush_blocks,
};
-static void efi_disk_add_dev(char *name,
- const struct blk_driver *cur_drvr,
+static void efi_disk_add_dev(const char *name,
+ const char *if_typename,
const struct blk_desc *desc,
int dev_index,
lbaint_t offset)
@@ -161,7 +162,7 @@ static void efi_disk_add_dev(char *name,
diskobj->parent.protocols[1].open = efi_disk_open_dp;
diskobj->parent.handle = diskobj;
diskobj->ops = block_io_disk_template;
- diskobj->ifname = cur_drvr->if_typename;
+ diskobj->ifname = if_typename;
diskobj->dev_index = dev_index;
diskobj->offset = offset;
@@ -190,7 +191,7 @@ static void efi_disk_add_dev(char *name,
}
static int efi_disk_create_eltorito(struct blk_desc *desc,
- const struct blk_driver *cur_drvr,
+ const char *if_typename,
int diskid)
{
int disks = 0;
@@ -203,9 +204,10 @@ static int efi_disk_create_eltorito(struct blk_desc *desc,
return 0;
while (!part_get_info(desc, part, &info)) {
- snprintf(devname, sizeof(devname), "%s%d:%d",
- cur_drvr->if_typename, diskid, part);
- efi_disk_add_dev(devname, cur_drvr, desc, diskid, info.start);
+ snprintf(devname, sizeof(devname), "%s%d:%d", if_typename,
+ diskid, part);
+ efi_disk_add_dev(devname, if_typename, desc, diskid,
+ info.start);
part++;
disks++;
}
@@ -219,21 +221,49 @@ static int efi_disk_create_eltorito(struct blk_desc *desc,
* EFI payload, we scan through all of the potentially available ones and
* store them in our object pool.
*
+ * TODO(sjg at chromium.org): Actually with CONFIG_BLK, U-Boot does have this.
+ * Consider converting the code to look up devices as needed. The EFI device
+ * could be a child of the UCLASS_BLK block device, perhaps.
+ *
* This gets called from do_bootefi_exec().
*/
int efi_disk_register(void)
{
- const struct blk_driver *cur_drvr;
- int i, if_type;
int disks = 0;
+#ifdef CONFIG_BLK
+ struct udevice *dev;
+
+ for (uclass_first_device(UCLASS_BLK, &dev);
+ dev;
+ uclass_next_device(&dev)) {
+ struct blk_desc *desc = dev_get_uclass_platdata(dev);
+ const char *if_typename = dev->driver->name;
+
+ printf("Scanning disk %s...\n", dev->name);
+ efi_disk_add_dev(dev->name, if_typename, desc, desc->devnum, 0);
+ disks++;
+
+ /*
+ * El Torito images show up as block devices in an EFI world,
+ * so let's create them here
+ */
+ disks += efi_disk_create_eltorito(desc, if_typename,
+ desc->devnum);
+ }
+#else
+ int i, if_type;
/* Search for all available disk devices */
for (if_type = 0; if_type < IF_TYPE_COUNT; if_type++) {
+ const struct blk_driver *cur_drvr;
+ const char *if_typename;
+
cur_drvr = blk_driver_lookup_type(if_type);
if (!cur_drvr)
continue;
- printf("Scanning disks on %s...\n", cur_drvr->if_typename);
+ if_typename = cur_drvr->if_typename;
+ printf("Scanning disks on %s...\n", if_typename);
for (i = 0; i < 4; i++) {
struct blk_desc *desc;
char devname[32] = { 0 }; /* dp->str is u16[32] long */
@@ -245,17 +275,18 @@ int efi_disk_register(void)
continue;
snprintf(devname, sizeof(devname), "%s%d",
- cur_drvr->if_typename, i);
- efi_disk_add_dev(devname, cur_drvr, desc, i, 0);
+ if_typename, i);
+ efi_disk_add_dev(devname, if_typename, desc, i, 0);
disks++;
/*
* El Torito images show up as block devices
* in an EFI world, so let's create them here
*/
- disks += efi_disk_create_eltorito(desc, cur_drvr, i);
+ disks += efi_disk_create_eltorito(desc, if_typename, i);
}
}
+#endif
printf("Found %d disks\n", disks);
return 0;
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 15/20] dm: mmc: spl: Add support for CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (13 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 14/20] dm: efi: Update for CONFIG_BLK Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 16/20] dm: mmc: dwmmc: Support CONFIG_BLK Simon Glass
` (5 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Allow driver model to be used for block devices in SPL.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
common/spl/spl_mmc.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index cf527da..5d0c9f9 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -30,9 +30,8 @@ static int mmc_load_legacy(struct mmc *mmc, ulong sector,
mmc->read_bl_len;
/* Read the header too to avoid extra memcpy */
- count = mmc->block_dev.block_read(&mmc->block_dev, sector,
- image_size_sectors,
- (void *)(ulong)spl_image.load_addr);
+ count = blk_dread(mmc_get_blk_desc(mmc), sector, image_size_sectors,
+ (void *)(ulong)spl_image.load_addr);
debug("read %x sectors to %x\n", image_size_sectors,
spl_image.load_addr);
if (count != image_size_sectors)
@@ -46,7 +45,7 @@ static ulong h_spl_load_read(struct spl_load_info *load, ulong sector,
{
struct mmc *mmc = load->dev;
- return mmc->block_dev.block_read(&mmc->block_dev, sector, count, buf);
+ return blk_dread(mmc_get_blk_desc(mmc), sector, count, buf);
}
static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
@@ -59,7 +58,7 @@ static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
sizeof(struct image_header));
/* read image header to find the image size & load address */
- count = mmc->block_dev.block_read(&mmc->block_dev, sector, 1, header);
+ count = blk_dread(mmc_get_blk_desc(mmc), sector, 1, header);
debug("hdr read sector %lx, count=%lu\n", sector, count);
if (count == 0) {
ret = -EIO;
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 16/20] dm: mmc: dwmmc: Support CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (14 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 15/20] dm: mmc: spl: Add support " Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 17/20] dm: rockchip: mmc: Allow use of CONFIG_BLK Simon Glass
` (4 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Add support for using driver model for block devices in this driver.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/dw_mmc.c | 42 ++++++++++++++++++++++++++++--------------
include/dwmmc.h | 7 ++++++-
2 files changed, 34 insertions(+), 15 deletions(-)
diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c
index 7329f40..74a2663 100644
--- a/drivers/mmc/dw_mmc.c
+++ b/drivers/mmc/dw_mmc.c
@@ -454,27 +454,40 @@ static const struct mmc_ops dwmci_ops = {
.init = dwmci_init,
};
-int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk)
+void dwmci_setup_cfg(struct mmc_config *cfg, const char *name, int buswidth,
+ uint caps, u32 max_clk, u32 min_clk)
{
- host->cfg.name = host->name;
- host->cfg.ops = &dwmci_ops;
- host->cfg.f_min = min_clk;
- host->cfg.f_max = max_clk;
+ cfg->name = name;
+ cfg->ops = &dwmci_ops;
+ cfg->f_min = min_clk;
+ cfg->f_max = max_clk;
- host->cfg.voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
+ cfg->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
- host->cfg.host_caps = host->caps;
+ cfg->host_caps = caps;
- if (host->buswidth == 8) {
- host->cfg.host_caps |= MMC_MODE_8BIT;
- host->cfg.host_caps &= ~MMC_MODE_4BIT;
+ if (buswidth == 8) {
+ cfg->host_caps |= MMC_MODE_8BIT;
+ cfg->host_caps &= ~MMC_MODE_4BIT;
} else {
- host->cfg.host_caps |= MMC_MODE_4BIT;
- host->cfg.host_caps &= ~MMC_MODE_8BIT;
+ cfg->host_caps |= MMC_MODE_4BIT;
+ cfg->host_caps &= ~MMC_MODE_8BIT;
}
- host->cfg.host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
+ cfg->host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
+
+ cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
+}
- host->cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
+#ifdef CONFIG_BLK
+int dwmci_bind(struct udevice *dev, struct mmc *mmc, struct mmc_config *cfg)
+{
+ return mmc_bind(dev, mmc, cfg);
+}
+#else
+int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk)
+{
+ dwmci_setup_cfg(&host->cfg, host->name, host->buswidth, host->caps,
+ max_clk, min_clk);
host->mmc = mmc_create(&host->cfg, host);
if (host->mmc == NULL)
@@ -482,3 +495,4 @@ int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk)
return 0;
}
+#endif
diff --git a/include/dwmmc.h b/include/dwmmc.h
index 05b0817..335af51 100644
--- a/include/dwmmc.h
+++ b/include/dwmmc.h
@@ -180,8 +180,9 @@ struct dwmci_host {
* @freq: Frequency the host is trying to achieve
*/
unsigned int (*get_mmc_clk)(struct dwmci_host *host, uint freq);
-
+#ifndef CONFIG_BLK
struct mmc_config cfg;
+#endif
/* use fifo mode to read and write data */
bool fifo_mode;
@@ -223,5 +224,9 @@ static inline u8 dwmci_readb(struct dwmci_host *host, int reg)
return readb(host->ioaddr + reg);
}
+void dwmci_setup_cfg(struct mmc_config *cfg, const char *name, int buswidth,
+ uint caps, u32 max_clk, u32 min_clk);
+int dwmci_bind(struct udevice *dev, struct mmc *mmc, struct mmc_config *cfg);
+
int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk);
#endif /* __DWMMC_HW_H */
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 17/20] dm: rockchip: mmc: Allow use of CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (15 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 16/20] dm: mmc: dwmmc: Support CONFIG_BLK Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 18/20] dm: mmc: Fix up mmc_bread/bwrite() prototypes for SPL Simon Glass
` (3 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Allow driver model to be used for block devices in the rockchip mmc driver.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/rockchip_dw_mmc.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c
index 0a261c5..750ab9f 100644
--- a/drivers/mmc/rockchip_dw_mmc.c
+++ b/drivers/mmc/rockchip_dw_mmc.c
@@ -18,6 +18,11 @@
DECLARE_GLOBAL_DATA_PTR;
+struct rockchip_mmc_plat {
+ struct mmc_config cfg;
+ struct mmc mmc;
+};
+
struct rockchip_dwmmc_priv {
struct udevice *clk;
int periph;
@@ -62,6 +67,9 @@ static int rockchip_dwmmc_ofdata_to_platdata(struct udevice *dev)
static int rockchip_dwmmc_probe(struct udevice *dev)
{
+#ifdef CONFIG_BLK
+ struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+#endif
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
struct rockchip_dwmmc_priv *priv = dev_get_priv(dev);
struct dwmci_host *host = &priv->host;
@@ -100,16 +108,37 @@ static int rockchip_dwmmc_probe(struct udevice *dev)
return ret;
}
#endif
+#ifdef CONFIG_BLK
+ dwmci_setup_cfg(&plat->cfg, dev->name, host->buswidth, host->caps,
+ minmax[1], minmax[0]);
+ host->mmc = &plat->mmc;
+#else
ret = add_dwmci(host, minmax[1], minmax[0]);
if (ret)
return ret;
+#endif
+ host->mmc->priv = &priv->host;
host->mmc->dev = dev;
upriv->mmc = host->mmc;
return 0;
}
+static int rockchip_dwmmc_bind(struct udevice *dev)
+{
+#ifdef CONFIG_BLK
+ struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+ int ret;
+
+ ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
+ if (ret)
+ return ret;
+#endif
+
+ return 0;
+}
+
static const struct udevice_id rockchip_dwmmc_ids[] = {
{ .compatible = "rockchip,rk3288-dw-mshc" },
{ }
@@ -120,8 +149,10 @@ U_BOOT_DRIVER(rockchip_dwmmc_drv) = {
.id = UCLASS_MMC,
.of_match = rockchip_dwmmc_ids,
.ofdata_to_platdata = rockchip_dwmmc_ofdata_to_platdata,
+ .bind = rockchip_dwmmc_bind,
.probe = rockchip_dwmmc_probe,
.priv_auto_alloc_size = sizeof(struct rockchip_dwmmc_priv),
+ .platdata_auto_alloc_size = sizeof(struct rockchip_mmc_plat),
};
#ifdef CONFIG_PWRSEQ
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 18/20] dm: mmc: Fix up mmc_bread/bwrite() prototypes for SPL
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (16 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 17/20] dm: rockchip: mmc: Allow use of CONFIG_BLK Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 19/20] dm: mmc: Use cfg directly in mmc_bind() Simon Glass
` (2 subsequent siblings)
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
When these functions are not compiled in, we still need to declare the
correct function signature to avoid a build warnings in SPL. Fix this.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/mmc_private.h | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/mmc/mmc_private.h b/drivers/mmc/mmc_private.h
index 27b9e5f..9f0d5c2 100644
--- a/drivers/mmc/mmc_private.h
+++ b/drivers/mmc/mmc_private.h
@@ -37,6 +37,19 @@ ulong mmc_bwrite(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt,
/* SPL will never write or erase, declare dummies to reduce code size. */
+#ifdef CONFIG_BLK
+static inline unsigned long mmc_berase(struct udevice *dev,
+ lbaint_t start, lbaint_t blkcnt)
+{
+ return 0;
+}
+
+static inline ulong mmc_bwrite(struct udevice *dev, lbaint_t start,
+ lbaint_t blkcnt, const void *src)
+{
+ return 0;
+}
+#else
static inline unsigned long mmc_berase(struct blk_desc *block_dev,
lbaint_t start, lbaint_t blkcnt)
{
@@ -48,6 +61,7 @@ static inline ulong mmc_bwrite(struct blk_desc *block_dev, lbaint_t start,
{
return 0;
}
+#endif
#endif /* CONFIG_SPL_BUILD */
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 19/20] dm: mmc: Use cfg directly in mmc_bind()
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (17 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 18/20] dm: mmc: Fix up mmc_bread/bwrite() prototypes for SPL Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-14 20:03 ` [U-Boot] [PATCH 20/20] dm: rockchip: Enable CONFIG_BLK Simon Glass
2016-05-25 2:34 ` [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
This small change tidies up the code slightly.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/mmc/mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index b7c936c..94f19ad 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1557,7 +1557,7 @@ int mmc_bind(struct udevice *dev, struct mmc *mmc, const struct mmc_config *cfg)
bdesc->removable = 1;
/* setup initial part type */
- bdesc->part_type = mmc->cfg->part_type;
+ bdesc->part_type = cfg->part_type;
mmc->dev = dev;
return 0;
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 20/20] dm: rockchip: Enable CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (18 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 19/20] dm: mmc: Use cfg directly in mmc_bind() Simon Glass
@ 2016-05-14 20:03 ` Simon Glass
2016-05-27 16:25 ` Simon Glass
2016-05-25 2:34 ` [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
20 siblings, 1 reply; 50+ messages in thread
From: Simon Glass @ 2016-05-14 20:03 UTC (permalink / raw)
To: u-boot
Enable CONFIG_BLK to move to using driver model for block devices. This
affects MMC booting in SPL, as well as MMC access in U-Boot proper.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
arch/arm/mach-rockchip/Kconfig | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index d3bddb7..2a8afac 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -41,6 +41,9 @@ config DM_I2C
config DM_GPIO
default y
+config BLK
+ default y
+
source "arch/arm/mach-rockchip/rk3288/Kconfig"
source "arch/arm/mach-rockchip/rk3036/Kconfig"
endif
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 50+ messages in thread* [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK
2016-05-14 20:02 [U-Boot] [PATCH 00/20] dm: rockchip: Move rockchip boards to to use CONFIG_BLK Simon Glass
` (19 preceding siblings ...)
2016-05-14 20:03 ` [U-Boot] [PATCH 20/20] dm: rockchip: Enable CONFIG_BLK Simon Glass
@ 2016-05-25 2:34 ` Simon Glass
20 siblings, 0 replies; 50+ messages in thread
From: Simon Glass @ 2016-05-25 2:34 UTC (permalink / raw)
To: u-boot
Hi,
On 14 May 2016 at 14:02, Simon Glass <sjg@chromium.org> wrote:
>
> This series expands the CONFIG_BLK support to SPL, fixes up the EFI boot
> code and adds a few other tweaks so that all rockchip boards can move to
> using driver model for block devices.
>
> It also introduces snprintf() in the tiny-printf code and tidies up the mmc
> code a little.
>
> Overall the code size for firefly-rk3288 drops by 1KB. This is mostly due
> to removing GPIO support and cutting down on unnecessary strings. The move
> to CONFIG_BLK unfortunately adds 0.5KB, or the improvement would be greater.
>
>
> Simon Glass (20):
> tiny-printf: Tidy up a few nits
> tiny-printf: Support snprintf()
> reset: Drop the reset failure message
> mmc: Drop mmc_register()
> mmc: Drop dead mmc code for non-generic MMC
> mmc: Use byte array for multipliers
> arm: Avoid error messages in cache_v7
> rockchip: Check image name for the rksd image
> rockchip: Drop unnecessary SPL properties
> rockchip: video: Flush the cache when the display is updated
> rockchip: Drop SPL GPIO support for rk3288
> dm: env: mmc: Convert env_mmc to support CONFIG_BLK
> dm: mmc: Convert sdhci to support CONFIG_BLK
> dm: efi: Update for CONFIG_BLK
> dm: mmc: spl: Add support for CONFIG_BLK
> dm: mmc: dwmmc: Support CONFIG_BLK
> dm: rockchip: mmc: Allow use of CONFIG_BLK
> dm: mmc: Fix up mmc_bread/bwrite() prototypes for SPL
> dm: mmc: Use cfg directly in mmc_bind()
> dm: rockchip: Enable CONFIG_BLK
>
> arch/arm/cpu/armv7/cache_v7.c | 8 +++---
> arch/arm/mach-rockchip/Kconfig | 3 ++
> cmd/mmc.c | 62 ----------------------------------------
> common/env_mmc.c | 8 +++---
> common/spl/spl_mmc.c | 9 +++---
> configs/firefly-rk3288_defconfig | 2 +-
> drivers/misc/reset-uclass.c | 2 +-
> drivers/mmc/dw_mmc.c | 42 ++++++++++++++++++---------
> drivers/mmc/mmc.c | 13 ++-------
> drivers/mmc/mmc_private.h | 14 +++++++++
> drivers/mmc/rockchip_dw_mmc.c | 31 ++++++++++++++++++++
> drivers/mmc/sdhci.c | 2 +-
> drivers/video/rockchip/rk_vop.c | 1 +
> include/configs/rk3288_common.h | 1 -
> include/dwmmc.h | 7 ++++-
> include/efi_loader.h | 2 +-
> include/mmc.h | 5 ----
> lib/efi_loader/efi_disk.c | 61 +++++++++++++++++++++++++++++----------
> lib/tiny-printf.c | 43 +++++++++++++++++++++-------
> tools/rkimage.c | 7 +----
> 20 files changed, 181 insertions(+), 142 deletions(-)
Are there any more comments on this series please? I'd like to apply
it soon to provide for plenty of test time on the MMC side.
Regards,
Simon
^ permalink raw reply [flat|nested] 50+ messages in thread