Patch queue for rpi - 2018-04-06
Highlights this time around: - Support for new RPi3 B+ model - Fix for some SD cards on newer RPi firmware -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABAgAGBQJaxzkSAAoJECszeR4D/txg8LsQALXv0VwSROVMeneJn98ItB8I J2bF4vnGlGw3tdekogwOSh+lZ1MgNAM/nmu3qHVfJ1cnytMfAYtZaTL1FhD9gRxQ OnZFiYFpqX4j1yER6RFf403dnYAUw8S595kOzCy6zeArFuHQ+Ilxl+68PaYnktq/ ICKnGDyv6zYz9WHACOqPcXRSIXEbbmGNW1krqeqGlOkoJiqWvKiET1PCL6qdz2UK MurM21XOwbTbDlcFmcie+UjBWliCLBGsJx6riPqvM75bkz5ex3yqhGOlWvqiAKvq Dt0ZTF4PIqXPmmMm5JLnMIFCLKPTS+W+ZwY+a1VyYXWhJXmo2UhOJI4ap5lsn1MR rinu+oNBC4FAIVhFEk/itGf1p1Diuuwxur4NsJKtLZqeIA1RqGqVSMipia0Wa+K9 hhamltQoHQ7jNnjSEj0iRT11uTrwLxSKaqfbRtvTaovkF0r5pAJU3qJvTgea72lG 3eUSfUOnVv8ez8Oy/B/sEK9/hKhZnKN1pM6jr7HVaWXy2XdqSMlTr9wZndDYKHtA FQSrjRMet1X8nZWDFGrS8AocFQ8AwGYZL7NBh7Gu8EphFAm0lF0UovkNpqdxnuOx buVDkfAKYwS9+GI3GPs8zIKz4aI4UD5pZmybHyQk3NjKXS1YrTEeeDYEVPBRWgC0 3aXQ7FPcUyfdrIyAPByZ =jqq6 -----END PGP SIGNATURE----- Merge tag 'signed-rpi-next' of git://github.com/agraf/u-boot Patch queue for rpi - 2018-04-06 Highlights this time around: - Support for new RPi3 B+ model - Fix for some SD cards on newer RPi firmware
This commit is contained in:
commit
6074c3879c
@ -18,9 +18,10 @@ int bcm2835_power_on_module(u32 module);
|
||||
/**
|
||||
* bcm2835_get_mmc_clock() - get the frequency of the MMC clock
|
||||
*
|
||||
* @clock_id: ID of clock to get frequency for
|
||||
* @return clock frequency, or -ve on error
|
||||
*/
|
||||
int bcm2835_get_mmc_clock(void);
|
||||
int bcm2835_get_mmc_clock(u32 clock_id);
|
||||
|
||||
/**
|
||||
* bcm2835_get_video_size() - get the current display size
|
||||
|
@ -65,7 +65,7 @@ int bcm2835_power_on_module(u32 module)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int bcm2835_get_mmc_clock(void)
|
||||
int bcm2835_get_mmc_clock(u32 clock_id)
|
||||
{
|
||||
ALLOC_CACHE_ALIGN_BUFFER(struct msg_get_clock_rate, msg_clk, 1);
|
||||
int ret;
|
||||
@ -76,7 +76,7 @@ int bcm2835_get_mmc_clock(void)
|
||||
|
||||
BCM2835_MBOX_INIT_HDR(msg_clk);
|
||||
BCM2835_MBOX_INIT_TAG(&msg_clk->get_clock_rate, GET_CLOCK_RATE);
|
||||
msg_clk->get_clock_rate.body.req.clock_id = BCM2835_MBOX_CLOCK_ID_EMMC;
|
||||
msg_clk->get_clock_rate.body.req.clock_id = clock_id;
|
||||
|
||||
ret = bcm2835_mbox_call_prop(BCM2835_MBOX_PROP_CHAN, &msg_clk->hdr);
|
||||
if (ret) {
|
||||
|
@ -91,11 +91,36 @@ static const struct rpi_model rpi_model_unknown = {
|
||||
};
|
||||
|
||||
static const struct rpi_model rpi_models_new_scheme[] = {
|
||||
[0x0] = {
|
||||
"Model A",
|
||||
DTB_DIR "bcm2835-rpi-a.dtb",
|
||||
false,
|
||||
},
|
||||
[0x1] = {
|
||||
"Model B",
|
||||
DTB_DIR "bcm2835-rpi-b.dtb",
|
||||
true,
|
||||
},
|
||||
[0x2] = {
|
||||
"Model A+",
|
||||
DTB_DIR "bcm2835-rpi-a-plus.dtb",
|
||||
false,
|
||||
},
|
||||
[0x3] = {
|
||||
"Model B+",
|
||||
DTB_DIR "bcm2835-rpi-b-plus.dtb",
|
||||
true,
|
||||
},
|
||||
[0x4] = {
|
||||
"2 Model B",
|
||||
DTB_DIR "bcm2836-rpi-2-b.dtb",
|
||||
true,
|
||||
},
|
||||
[0x6] = {
|
||||
"Compute Module",
|
||||
DTB_DIR "bcm2835-rpi-cm.dtb",
|
||||
false,
|
||||
},
|
||||
[0x8] = {
|
||||
"3 Model B",
|
||||
DTB_DIR "bcm2837-rpi-3-b.dtb",
|
||||
@ -106,11 +131,21 @@ static const struct rpi_model rpi_models_new_scheme[] = {
|
||||
DTB_DIR "bcm2835-rpi-zero.dtb",
|
||||
false,
|
||||
},
|
||||
[0xA] = {
|
||||
"Compute Module 3",
|
||||
DTB_DIR "bcm2837-rpi-cm3.dtb",
|
||||
false,
|
||||
},
|
||||
[0xC] = {
|
||||
"Zero W",
|
||||
DTB_DIR "bcm2835-rpi-zero-w.dtb",
|
||||
false,
|
||||
},
|
||||
[0xD] = {
|
||||
"3 Model B+",
|
||||
DTB_DIR "bcm2837-rpi-3-b-plus.dtb",
|
||||
true,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct rpi_model rpi_models_old_scheme[] = {
|
||||
|
@ -34,3 +34,4 @@ CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
||||
CONFIG_PHYS_TO_BUS=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
|
||||
|
@ -34,3 +34,4 @@ CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
||||
CONFIG_PHYS_TO_BUS=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
|
||||
|
@ -36,3 +36,5 @@ CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
||||
CONFIG_PHYS_TO_BUS=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_USB_ETHER_LAN78XX=y
|
||||
|
@ -36,3 +36,5 @@ CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
||||
CONFIG_PHYS_TO_BUS=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_USB_ETHER_LAN78XX=y
|
||||
|
@ -34,3 +34,4 @@ CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
||||
CONFIG_PHYS_TO_BUS=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
|
||||
|
@ -183,7 +183,7 @@ static int bcm2835_sdhci_probe(struct udevice *dev)
|
||||
if (base == FDT_ADDR_T_NONE)
|
||||
return -EINVAL;
|
||||
|
||||
ret = bcm2835_get_mmc_clock();
|
||||
ret = bcm2835_get_mmc_clock(BCM2835_MBOX_CLOCK_ID_EMMC);
|
||||
if (ret < 0) {
|
||||
debug("%s: Failed to set MMC clock (err=%d)\n", __func__, ret);
|
||||
return ret;
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include <dm.h>
|
||||
#include <mmc.h>
|
||||
#include <asm/arch/msg.h>
|
||||
#include <asm/arch/mbox.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <linux/compat.h>
|
||||
#include <linux/io.h>
|
||||
@ -941,7 +942,7 @@ static int bcm2835_probe(struct udevice *dev)
|
||||
if (!host->ioaddr)
|
||||
return -ENOMEM;
|
||||
|
||||
host->max_clk = bcm2835_get_mmc_clock();
|
||||
host->max_clk = bcm2835_get_mmc_clock(BCM2835_MBOX_CLOCK_ID_CORE);
|
||||
|
||||
bcm2835_add_host(host);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user