Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24df18d91c | ||
|
|
54b2de79eb | ||
|
|
cf62b600e4 | ||
|
|
9d1055adf4 | ||
|
|
405a76ba54 |
@@ -210,6 +210,7 @@ N: aspeed
|
|||||||
ARM BROADCOM BCM283X / BCM27XX
|
ARM BROADCOM BCM283X / BCM27XX
|
||||||
M: Matthias Brugger <mbrugger@suse.com>
|
M: Matthias Brugger <mbrugger@suse.com>
|
||||||
M: Peter Robinson <pbrobinson@gmail.com>
|
M: Peter Robinson <pbrobinson@gmail.com>
|
||||||
|
M: Simon Glass <sjg@chromium.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: arch/arm/dts/bcm283*
|
F: arch/arm/dts/bcm283*
|
||||||
F: arch/arm/mach-bcm283x/
|
F: arch/arm/mach-bcm283x/
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
* (C) Copyright 2012-2016 Stephen Warren
|
* (C) Copyright 2012-2016 Stephen Warren
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define LOG_CATEGORY LOGC_BOARD
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
#include <env.h>
|
#include <env.h>
|
||||||
@@ -326,18 +328,13 @@ static void set_fdtfile(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the firmware provided a valid FDT at boot time, let's expose it in
|
* Allow U-Boot to use its control FDT with extlinux if one is not provided.
|
||||||
* ${fdt_addr} so it may be passed unmodified to the kernel.
|
* This will then go through the usual fixups that U-Boot does, before being
|
||||||
|
* handed off to Linux
|
||||||
*/
|
*/
|
||||||
static void set_fdt_addr(void)
|
static void set_fdt_addr(void)
|
||||||
{
|
{
|
||||||
if (env_get("fdt_addr"))
|
env_set_hex("fdt_addr", (ulong)gd->fdt_blob);
|
||||||
return;
|
|
||||||
|
|
||||||
if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
|
|
||||||
return;
|
|
||||||
|
|
||||||
env_set_hex("fdt_addr", fw_dtb_pointer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -571,7 +568,10 @@ int ft_board_setup(void *blob, struct bd_info *bd)
|
|||||||
{
|
{
|
||||||
int node;
|
int node;
|
||||||
|
|
||||||
update_fdt_from_fw(blob, (void *)fw_dtb_pointer);
|
if (blob == gd->fdt_blob)
|
||||||
|
log_debug("Same FDT: nothing to do\n");
|
||||||
|
else
|
||||||
|
update_fdt_from_fw(blob, (void *)gd->fdt_blob);
|
||||||
|
|
||||||
node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
|
node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
|
||||||
if (node < 0)
|
if (node < 0)
|
||||||
|
|||||||
@@ -48,30 +48,33 @@ dfu_alt_info+=zImage fat 0 1
|
|||||||
*
|
*
|
||||||
* scriptaddr and pxefile_addr_r can be pretty much anywhere that doesn't
|
* scriptaddr and pxefile_addr_r can be pretty much anywhere that doesn't
|
||||||
* conflict with something else. Reserving 1M for each of them at
|
* conflict with something else. Reserving 1M for each of them at
|
||||||
* 0x02400000-0x02500000 and 0x02500000-0x02600000 should be plenty.
|
* 0x05400000-0x05500000 and 0x05500000-0x05600000 should be plenty.
|
||||||
*
|
*
|
||||||
* On ARM, both the DTB and any possible initrd must be loaded such that they
|
* On ARM, both the DTB and any possible initrd must be loaded such that they
|
||||||
* fit inside the lowmem mapping in Linux. In practice, this usually means not
|
* fit inside the lowmem mapping in Linux. In practice, this usually means not
|
||||||
* more than ~700M away from the start of the kernel image but this number can
|
* more than ~700M away from the start of the kernel image but this number can
|
||||||
* be larger OR smaller depending on e.g. the 'vmalloc=xxxM' command line
|
* be larger OR smaller depending on e.g. the 'vmalloc=xxxM' command line
|
||||||
* parameter given to the kernel. So reserving memory from low to high
|
* parameter given to the kernel. So reserving memory from low to high
|
||||||
* satisfies this constraint again. Reserving 1M at 0x02600000-0x02700000 for
|
* satisfies this constraint again. Reserving 1M at 0x05600000-0x05700000 for
|
||||||
* the DTB leaves rest of the free RAM to the initrd starting at 0x02700000.
|
* the DTB leaves rest of the free RAM to the initrd starting at 0x05700000.
|
||||||
* Even with the smallest possible CPU-GPU memory split of the CPU getting
|
* This means that the board must have at least 128MB of RAM available to
|
||||||
* only 64M, the remaining 25M starting at 0x02700000 should allow quite
|
* U-Boot, more if the initrd is large.
|
||||||
* large initrds before they start colliding with U-Boot.
|
*
|
||||||
|
* For compressed kernels, the maximum size is just under 32MB, with an area for
|
||||||
|
* decompression at 0x02000000 with space for 52MB, which is plenty for current
|
||||||
|
* kernels.
|
||||||
|
*
|
||||||
|
* limit bootm_size to 512MB so that all boot images stay within the bottom
|
||||||
|
* 512MB of memory
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_ARM64
|
bootm_size=0x20000000
|
||||||
fdt_high=ffffffffffffffff
|
|
||||||
initrd_high=ffffffffffffffff
|
|
||||||
#else
|
|
||||||
fdt_high=ffffffff
|
|
||||||
initrd_high=ffffffff
|
|
||||||
#endif
|
|
||||||
kernel_addr_r=0x00080000
|
kernel_addr_r=0x00080000
|
||||||
scriptaddr=0x02400000
|
kernel_comp_addr_r=0x02000000
|
||||||
pxefile_addr_r=0x02500000
|
kernel_comp_size=0x03400000
|
||||||
fdt_addr_r=0x02600000
|
scriptaddr=0x05400000
|
||||||
ramdisk_addr_r=0x02700000
|
pxefile_addr_r=0x05500000
|
||||||
|
fdt_addr_r=0x05600000
|
||||||
|
ramdisk_addr_r=0x05700000
|
||||||
|
|
||||||
boot_targets=mmc usb pxe dhcp
|
boot_targets=mmc usb pxe dhcp
|
||||||
|
|||||||
Reference in New Issue
Block a user