mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-26 05:34:30 +08:00
ARM: board: cm_fx6: fixup mtd partitions in the fdt
The cm-fx6 module has an on-board st,m25p compatible spi flash chip used for U-Boot (binary & environment). Overwrite the partitions in the device tree by the partition table provided in the mtdparts environment variable, if it is set. This allows to specify a kernel independent partitioning in the environment and provides a convient way for the user to adapt the partition table. Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
This commit is contained in:
parent
f4ae23a7cd
commit
62d6bac660
@ -12,6 +12,7 @@
|
||||
#include <dm.h>
|
||||
#include <fsl_esdhc.h>
|
||||
#include <miiphy.h>
|
||||
#include <mtd_node.h>
|
||||
#include <netdev.h>
|
||||
#include <errno.h>
|
||||
#include <usb.h>
|
||||
@ -28,6 +29,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <dm/platform_data/serial_mxc.h>
|
||||
#include <jffs2/load_kernel.h>
|
||||
#include "common.h"
|
||||
#include "../common/eeprom.h"
|
||||
#include "../common/common.h"
|
||||
@ -581,6 +583,17 @@ int cm_fx6_setup_ecspi(void) { return 0; }
|
||||
|
||||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
#define USDHC3_PATH "/soc/aips-bus@02100000/usdhc@02198000/"
|
||||
|
||||
struct node_info nodes[] = {
|
||||
/*
|
||||
* Both entries target the same flash chip. The st,m25p compatible
|
||||
* is used in the vendor device trees, while upstream uses (the
|
||||
* documented) jedec,spi-nor comptatible.
|
||||
*/
|
||||
{ "st,m25p", MTD_DEV_TYPE_NOR, },
|
||||
{ "jedec,spi-nor", MTD_DEV_TYPE_NOR, },
|
||||
};
|
||||
|
||||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
u32 baseboard_rev;
|
||||
@ -589,6 +602,8 @@ int ft_board_setup(void *blob, bd_t *bd)
|
||||
char baseboard_name[16];
|
||||
int err;
|
||||
|
||||
fdt_shrink_to_minimum(blob); /* Make room for new properties */
|
||||
|
||||
/* MAC addr */
|
||||
if (eth_getenv_enetaddr("ethaddr", enetaddr)) {
|
||||
fdt_find_and_setprop(blob,
|
||||
@ -607,7 +622,6 @@ int ft_board_setup(void *blob, bd_t *bd)
|
||||
return 0; /* Assume not an early revision SB-FX6m baseboard */
|
||||
|
||||
if (!strncmp("SB-FX6m", baseboard_name, 7) && baseboard_rev <= 120) {
|
||||
fdt_shrink_to_minimum(blob); /* Make room for new properties */
|
||||
nodeoffset = fdt_path_offset(blob, USDHC3_PATH);
|
||||
fdt_delprop(blob, nodeoffset, "cd-gpios");
|
||||
fdt_find_and_setprop(blob, USDHC3_PATH, "broken-cd",
|
||||
@ -616,6 +630,8 @@ int ft_board_setup(void *blob, bd_t *bd)
|
||||
NULL, 0, 1);
|
||||
}
|
||||
|
||||
fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user