Use a mlo device tree with all bootable devices disabled. The bootsource is checked in the board file and only the needed device is enabled and registered. Signed-off-by: Teresa Gámez <t.gamez@xxxxxxxxx> --- arch/arm/boards/phytec-phycore-am335x/board.c | 3 +++ arch/arm/boards/phytec-phycore-am335x/lowlevel.c | 3 ++- arch/arm/dts/Makefile | 2 +- arch/arm/dts/am335x-phytec-phycore-som-mlo.dts | 28 ++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 arch/arm/dts/am335x-phytec-phycore-som-mlo.dts diff --git a/arch/arm/boards/phytec-phycore-am335x/board.c b/arch/arm/boards/phytec-phycore-am335x/board.c index 64e3904..a72cebd 100644 --- a/arch/arm/boards/phytec-phycore-am335x/board.c +++ b/arch/arm/boards/phytec-phycore-am335x/board.c @@ -83,6 +83,9 @@ static int pcm051_devices_init(void) xloadslots, ARRAY_SIZE(xloadslots)); am33xx_bbu_nand_register_handler("nand", "/dev/nand0.barebox.bb"); + if (IS_ENABLED(CONFIG_SHELL_NONE)) + return am33xx_of_register_bootdevice(); + return 0; } device_initcall(pcm051_devices_init); diff --git a/arch/arm/boards/phytec-phycore-am335x/lowlevel.c b/arch/arm/boards/phytec-phycore-am335x/lowlevel.c index 55cc667..5ab8b5b 100644 --- a/arch/arm/boards/phytec-phycore-am335x/lowlevel.c +++ b/arch/arm/boards/phytec-phycore-am335x/lowlevel.c @@ -118,6 +118,7 @@ struct pcm051_sdram_timings timings[] = { }; extern char __dtb_am335x_phytec_phycore_som_start[]; +extern char __dtb_am335x_phytec_phycore_som_mlo_start[]; extern char __dtb_am335x_phytec_phycore_som_no_spi_start[]; /** @@ -154,7 +155,7 @@ static noinline void pcm051_board_init(int sdram) omap_uart_lowlevel_init((void *)AM33XX_UART0_BASE); putc_ll('>'); - fdt = __dtb_am335x_phytec_phycore_som_start - get_runtime_offset(); + fdt = __dtb_am335x_phytec_phycore_som_mlo_start - get_runtime_offset(); am335x_barebox_entry(fdt); } diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index a9e9ee7..d8160fe 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -26,7 +26,7 @@ pbl-dtb-$(CONFIG_MACH_NVIDIA_JETSON) += tegra124-jetson-tk1.dtb.o pbl-dtb-$(CONFIG_MACH_PCA100) += imx27-phytec-phycard-s-rdk-bb.dtb.o pbl-dtb-$(CONFIG_MACH_PCAAXL3) += imx6q-phytec-pbaa03.dtb.o pbl-dtb-$(CONFIG_MACH_PCM038) += imx27-phytec-phycore-rdk.dtb.o -pbl-dtb-$(CONFIG_MACH_PCM051) += am335x-phytec-phycore-som.dtb.o am335x-phytec-phycore-som-no-spi.dtb.o +pbl-dtb-$(CONFIG_MACH_PCM051) += am335x-phytec-phycore-som.dtb.o am335x-phytec-phycore-som-no-spi.dtb.o am335x-phytec-phycore-som-mlo.dtb.o pbl-dtb-$(CONFIG_MACH_PFLA03) += am335x-phytec-phyflex.dtb.o pbl-dtb-$(CONFIG_MACH_PHYTEC_PFLA02) += imx6s-phytec-pbab01.dtb.o imx6dl-phytec-pbab01.dtb.o imx6q-phytec-pbab01.dtb.o pbl-dtb-$(CONFIG_MACH_PLATHOME_OPENBLOCKS_AX3) += armada-xp-openblocks-ax3-4-bb.dtb.o diff --git a/arch/arm/dts/am335x-phytec-phycore-som-mlo.dts b/arch/arm/dts/am335x-phytec-phycore-som-mlo.dts new file mode 100644 index 0000000..4117439 --- /dev/null +++ b/arch/arm/dts/am335x-phytec-phycore-som-mlo.dts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2014 Teresa Gámez <t.gamez@xxxxxxxxx> PHYTEC Messtechnik GmbH + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-phytec-phycore-som.dtsi" + +/ { + model = "Phytec phyCORE AM335x"; + compatible = "phytec,phycore-am335x-som", "ti,am33xx"; +}; + +/* Keep all boosources disabled, we enable and register them + * later while booting. + */ + +&mmc1 { + status = "disabled"; +}; + +&gpmc { + status = "disabled"; +}; -- 1.9.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox