9
0
Fork 0

Merge branch 'for-next-manual-rebase/multi-image'

This commit is contained in:
Sascha Hauer 2013-07-02 08:24:34 +02:00
commit 63c521940a
34 changed files with 560 additions and 468 deletions

View File

@ -69,13 +69,19 @@ machine-$(CONFIG_ARCH_VEXPRESS) := vexpress
machine-$(CONFIG_ARCH_TEGRA) := tegra
machine-$(CONFIG_ARCH_ZYNQ) := zynq
# Board directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
#
# DO NOT ADD NEW ENTRIES TO THIS LIST!
# Add to arch/arm/boards/Makefile instead.
#
# These are here only because they have a board specific config.h.
# TODO: Get rid of board specific config.h and move these to
# arch/arm/boards/Makefile aswell.
board-$(CONFIG_MACH_A9M2410) += a9m2410
board-$(CONFIG_MACH_A9M2440) += a9m2440
board-$(CONFIG_MACH_ANIMEO_IP) += animeo_ip
board-$(CONFIG_MACH_ARCHOSG9) += archosg9
board-$(CONFIG_MACH_AT91RM9200EK) += at91rm9200ek
board-$(CONFIG_MACH_AT91SAM9260EK) += at91sam9260ek
board-$(CONFIG_MACH_AT91SAM9261EK) += at91sam9261ek
@ -86,93 +92,27 @@ board-$(CONFIG_MACH_AT91SAM9M10G45EK) += at91sam9m10g45ek
board-$(CONFIG_MACH_AT91SAM9M10IHD) += at91sam9m10ihd
board-$(CONFIG_MACH_AT91SAM9N12EK) += at91sam9n12ek
board-$(CONFIG_MACH_AT91SAM9X5EK) += at91sam9x5ek
board-$(CONFIG_MACH_BEAGLE) += beagle
board-$(CONFIG_MACH_BEAGLEBONE) += beaglebone
board-$(CONFIG_MACH_CCMX51) += ccxmx51
board-$(CONFIG_MACH_CFA10036) += crystalfontz-cfa10036
board-$(CONFIG_MACH_CHUMBY) += chumby_falconwing
board-$(CONFIG_MACH_CLEP7212) += clep7212
board-$(CONFIG_MACH_DSS11) += dss11
board-$(CONFIG_MACH_EDB93012) += edb93xx
board-$(CONFIG_MACH_EDB9301) += edb93xx
board-$(CONFIG_MACH_EDB9302A) += edb93xx
board-$(CONFIG_MACH_EDB9302) += edb93xx
board-$(CONFIG_MACH_EDB9307A) += edb93xx
board-$(CONFIG_MACH_EDB9307) += edb93xx
board-$(CONFIG_MACH_EDB9315A) += edb93xx
board-$(CONFIG_MACH_EDB9315) += edb93xx
board-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += efika-mx-smartbook
board-$(CONFIG_MACH_EUKREA_CPUIMX25) += eukrea_cpuimx25
board-$(CONFIG_MACH_EUKREA_CPUIMX27) += eukrea_cpuimx27
board-$(CONFIG_MACH_EUKREA_CPUIMX35) += eukrea_cpuimx35
board-$(CONFIG_MACH_EUKREA_CPUIMX51SD) += eukrea_cpuimx51
board-$(CONFIG_MACH_FREESCALE_MX25_3STACK) += freescale-mx25-3-stack
board-$(CONFIG_MACH_FREESCALE_MX35_3STACK) += freescale-mx35-3-stack
board-$(CONFIG_MACH_FREESCALE_MX51_PDK) += freescale-mx51-pdk
board-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += freescale-mx53-loco
board-$(CONFIG_MACH_FREESCALE_MX53_SMD) += freescale-mx53-smd
board-$(CONFIG_MACH_GE863) += telit-evk-pro3
board-$(CONFIG_MACH_GLOBALSCALE_GURUPLUG) += globalscale-guruplug
board-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += globalscale-mirabox
board-$(CONFIG_MACH_GUF_CUPID) += guf-cupid
board-$(CONFIG_MACH_GUF_VINCELL) += guf-vincell
board-$(CONFIG_MACH_HIGHBANK) += highbank
board-$(CONFIG_MACH_IMX21ADS) += imx21ads
board-$(CONFIG_MACH_IMX233_OLINUXINO) += imx233-olinuxino
board-$(CONFIG_MACH_IMX27ADS) += imx27ads
board-$(CONFIG_MACH_MARVELL_ARMADA_XP_GP) += marvell-armada-xp-gp
board-$(CONFIG_MACH_MINI2440) += friendlyarm-mini2440
board-$(CONFIG_MACH_MINI6410) += friendlyarm-mini6410
board-$(CONFIG_MACH_MIOA701) += mioa701
board-$(CONFIG_MACH_MMCCPU) += mmccpu
board-$(CONFIG_MACH_MX23EVK) += freescale-mx23-evk
board-$(CONFIG_MACH_MX28EVK) += freescale-mx28-evk
board-$(CONFIG_MACH_MX6Q_ARM2) += freescale-mx6-arm2
board-$(CONFIG_MACH_NESO) += guf-neso
board-$(CONFIG_MACH_NOMADIK_8815NHK) += nhk8815
board-$(CONFIG_MACH_NXDB500) += netx
board-$(CONFIG_MACH_OMAP343xSDP) += omap343xdsp
board-$(CONFIG_MACH_OMAP3EVM) += omap3evm
board-$(CONFIG_MACH_PANDA) += panda
board-$(CONFIG_MACH_PCA100) += phycard-i.MX27
board-$(CONFIG_MACH_PCAAL1) += phycard-a-l1
board-$(CONFIG_MACH_PCAAXL2) += phycard-a-xl2
board-$(CONFIG_MACH_PCM027) += pcm027
board-$(CONFIG_MACH_PCM037) += pcm037
board-$(CONFIG_MACH_PCM038) += pcm038
board-$(CONFIG_MACH_PCM043) += pcm043
board-$(CONFIG_MACH_PCM049) += pcm049
board-$(CONFIG_MACH_PCM051) += pcm051
board-$(CONFIG_MACH_PLATHOME_OPENBLOCKS_AX3) += plathome-openblocks-ax3
board-$(CONFIG_MACH_PM9261) += pm9261
board-$(CONFIG_MACH_PM9263) += pm9263
board-$(CONFIG_MACH_PM9G45) += pm9g45
board-$(CONFIG_MACH_QIL_A9260) += qil-a926x
board-$(CONFIG_MACH_QIL_A9G20) += qil-a926x
board-$(CONFIG_MACH_REALQ7) += dmo-mx6-realq7
board-$(CONFIG_MACH_RPI) += raspberry-pi
board-$(CONFIG_MACH_SABRELITE) += freescale-mx6-sabrelite
board-$(CONFIG_MACH_SABRESD) += freescale-mx6-sabresd
board-$(CONFIG_MACH_SAMA5D3XEK) += sama5d3xek
board-$(CONFIG_MACH_SCB9328) += scb9328
board-$(CONFIG_MACH_SOLIDRUN_CUBOX) += solidrun-cubox
board-$(CONFIG_MACH_TINY210) += friendlyarm-tiny210
board-$(CONFIG_MACH_TINY6410) += friendlyarm-tiny6410
board-$(CONFIG_MACH_TNY_A9260) += tny-a926x
board-$(CONFIG_MACH_TNY_A9263) += tny-a926x
board-$(CONFIG_MACH_TNY_A9G20) += tny-a926x
board-$(CONFIG_MACH_TOSHIBA_AC100) += toshiba-ac100
board-$(CONFIG_MACH_TQMA53) += tqma53
board-$(CONFIG_MACH_TX25) += karo-tx25
board-$(CONFIG_MACH_TX28) += karo-tx28
board-$(CONFIG_MACH_TX51) += karo-tx51
board-$(CONFIG_MACH_TX53) += karo-tx53
board-$(CONFIG_MACH_USB_A9260) += usb-a926x
board-$(CONFIG_MACH_USB_A9263) += usb-a926x
board-$(CONFIG_MACH_USB_A9G20) += usb-a926x
board-$(CONFIG_MACH_VERSATILEPB) += versatile
board-$(CONFIG_MACH_VEXPRESS) += vexpress
board-$(CONFIG_MACH_ZEDBOARD) += avnet-zedboard
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
@ -264,14 +204,6 @@ ifeq ($(machine-y),zynq)
KBUILD_IMAGE := barebox.zynq
endif
CFG_barebox.imx := $(src)/arch/arm/boards/$(board-y)/flash-header.imxcfg
barebox.imx: $(KBUILD_BINARY) FORCE
$(call if_changed,imx_image)
ifeq ($(CONFIG_ARCH_IMX_INTERNAL_BOOT_USE_IMXIMAGE),y)
KBUILD_IMAGE := barebox.imx
endif
KWBIMAGE_OPTS = \
-c -i $(srctree)/$(BOARD)/kwbimage.cfg -d $(TEXT_BASE) -e $(TEXT_BASE)
@ -325,7 +257,7 @@ else
MACH :=
endif
common-y += $(BOARD) $(MACH)
common-y += $(BOARD) arch/arm/boards/ $(MACH)
common-y += arch/arm/lib/ arch/arm/cpu/
common-$(CONFIG_OFTREE) += arch/arm/dts/

68
arch/arm/boards/Makefile Normal file
View File

@ -0,0 +1,68 @@
# keep sorted by CONFIG_* macro name.
obj-$(CONFIG_MACH_ARCHOSG9) += archosg9/
obj-$(CONFIG_MACH_BEAGLE) += beagle/
obj-$(CONFIG_MACH_BEAGLEBONE) += beaglebone/
obj-$(CONFIG_MACH_CCMX51) += ccxmx51/
obj-$(CONFIG_MACH_CFA10036) += crystalfontz-cfa10036/
obj-$(CONFIG_MACH_CHUMBY) += chumby_falconwing/
obj-$(CONFIG_MACH_CLEP7212) += clep7212/
obj-$(CONFIG_MACH_EDB93012) += edb93xx/
obj-$(CONFIG_MACH_EDB9301) += edb93xx/
obj-$(CONFIG_MACH_EDB9302A) += edb93xx/
obj-$(CONFIG_MACH_EDB9302) += edb93xx/
obj-$(CONFIG_MACH_EDB9307A) += edb93xx/
obj-$(CONFIG_MACH_EDB9307) += edb93xx/
obj-$(CONFIG_MACH_EDB9315A) += edb93xx/
obj-$(CONFIG_MACH_EDB9315) += edb93xx/
obj-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += efika-mx-smartbook/
obj-$(CONFIG_MACH_EUKREA_CPUIMX25) += eukrea_cpuimx25/
obj-$(CONFIG_MACH_EUKREA_CPUIMX27) += eukrea_cpuimx27/
obj-$(CONFIG_MACH_EUKREA_CPUIMX35) += eukrea_cpuimx35/
obj-$(CONFIG_MACH_EUKREA_CPUIMX51SD) += eukrea_cpuimx51/
obj-$(CONFIG_MACH_FREESCALE_MX25_3STACK) += freescale-mx25-3-stack/
obj-$(CONFIG_MACH_FREESCALE_MX35_3STACK) += freescale-mx35-3-stack/
obj-$(CONFIG_MACH_FREESCALE_MX51_PDK) += freescale-mx51-pdk/
obj-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += freescale-mx53-loco/
obj-$(CONFIG_MACH_FREESCALE_MX53_SMD) += freescale-mx53-smd/
obj-$(CONFIG_MACH_GLOBALSCALE_GURUPLUG) += globalscale-guruplug/
obj-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += globalscale-mirabox/
obj-$(CONFIG_MACH_GUF_CUPID) += guf-cupid/
obj-$(CONFIG_MACH_GUF_VINCELL) += guf-vincell/
obj-$(CONFIG_MACH_HIGHBANK) += highbank/
obj-$(CONFIG_MACH_IMX21ADS) += imx21ads/
obj-$(CONFIG_MACH_IMX233_OLINUXINO) += imx233-olinuxino/
obj-$(CONFIG_MACH_IMX27ADS) += imx27ads/
obj-$(CONFIG_MACH_MARVELL_ARMADA_XP_GP) += marvell-armada-xp-gp/
obj-$(CONFIG_MACH_MIOA701) += mioa701/
obj-$(CONFIG_MACH_MX23EVK) += freescale-mx23-evk/
obj-$(CONFIG_MACH_MX28EVK) += freescale-mx28-evk/
obj-$(CONFIG_MACH_MX6Q_ARM2) += freescale-mx6-arm2/
obj-$(CONFIG_MACH_NESO) += guf-neso/
obj-$(CONFIG_MACH_NOMADIK_8815NHK) += nhk8815/
obj-$(CONFIG_MACH_NXDB500) += netx/
obj-$(CONFIG_MACH_OMAP343xSDP) += omap343xdsp/
obj-$(CONFIG_MACH_OMAP3EVM) += omap3evm/
obj-$(CONFIG_MACH_PANDA) += panda/
obj-$(CONFIG_MACH_PCA100) += phycard-i.MX27/
obj-$(CONFIG_MACH_PCAAL1) += phycard-a-l1/
obj-$(CONFIG_MACH_PCAAXL2) += phycard-a-xl2/
obj-$(CONFIG_MACH_PCM037) += pcm037/
obj-$(CONFIG_MACH_PCM038) += pcm038/
obj-$(CONFIG_MACH_PCM043) += pcm043/
obj-$(CONFIG_MACH_PCM049) += pcm049/
obj-$(CONFIG_MACH_PCM051) += pcm051/
obj-$(CONFIG_MACH_PLATHOME_OPENBLOCKS_AX3) += plathome-openblocks-ax3/
obj-$(CONFIG_MACH_REALQ7) += dmo-mx6-realq7/
obj-$(CONFIG_MACH_RPI) += raspberry-pi/
obj-$(CONFIG_MACH_SABRELITE) += freescale-mx6-sabrelite/
obj-$(CONFIG_MACH_SABRESD) += freescale-mx6-sabresd/
obj-$(CONFIG_MACH_SCB9328) += scb9328/
obj-$(CONFIG_MACH_TOSHIBA_AC100) += toshiba-ac100/
obj-$(CONFIG_MACH_TQMA53) += tqma53/
obj-$(CONFIG_MACH_TX25) += karo-tx25/
obj-$(CONFIG_MACH_TX28) += karo-tx28/
obj-$(CONFIG_MACH_TX51) += karo-tx51/
obj-$(CONFIG_MACH_TX53) += karo-tx53/
obj-$(CONFIG_MACH_VERSATILEPB) += versatile/
obj-$(CONFIG_MACH_VEXPRESS) += vexpress/
obj-$(CONFIG_MACH_ZEDBOARD) += avnet-zedboard/

View File

@ -81,6 +81,9 @@ static int ksz9031rn_phy_fixup(struct phy_device *dev)
static int realq7_enet_init(void)
{
if (!of_machine_is_compatible("dmo,imx6q-realq7"))
return 0;
mxc_iomux_v3_setup_multiple_pads(realq7_pads_gpio, ARRAY_SIZE(realq7_pads_gpio));
gpio_direction_output(RQ7_GPIO_ENET_PHYADD2, 0);
gpio_direction_output(RQ7_GPIO_ENET_MODE0, 1);
@ -102,26 +105,19 @@ static int realq7_enet_init(void)
}
fs_initcall(realq7_enet_init);
static int realq7_devices_init(void)
static int realq7_env_init(void)
{
if (!of_machine_is_compatible("dmo,imx6q-realq7"))
return 0;
imx6_bbu_internal_spi_i2c_register_handler("spiflash", "/dev/m25p0.barebox",
BBU_HANDLER_FLAG_DEFAULT, NULL, 0, 0x00907000);
imx6_bbu_internal_mmc_register_handler("mmc", "/dev/mmc3.barebox",
0, NULL, 0, 0x00907000);
return 0;
}
device_initcall(realq7_devices_init);
static int realq7_env_init(void)
{
switch (bootsource_get()) {
case BOOTSOURCE_MMC:
if (!IS_ENABLED(CONFIG_MCI_STARTUP)) {
struct device_d *dev = get_device_by_name("mmc3");
if (dev)
device_detect(dev);
}
device_detect_by_name("mmc3");
devfs_add_partition("mmc3", 0, SZ_1M, DEVFS_PARTITION_FIXED, "mmc3.barebox");
devfs_add_partition("mmc3", SZ_1M, SZ_1M, DEVFS_PARTITION_FIXED, "mmc3.bareboxenv");
default_environment_path = "/dev/mmc3.bareboxenv";
@ -140,8 +136,11 @@ late_initcall(realq7_env_init);
static int realq7_console_init(void)
{
if (!of_machine_is_compatible("dmo,imx6q-realq7"))
return 0;
imx6_init_lowlevel();
return 0;
}
core_initcall(realq7_console_init);
postcore_initcall(realq7_console_init);

View File

@ -138,8 +138,14 @@ static void sdram_init(void)
writel(0x00000001, 0x021e8080);
}
void __naked barebox_arm_reset_vector(void)
extern char __dtb_imx6q_dmo_realq7_start[];
ENTRY_FUNCTION(start_imx6_realq7)(void)
{
uint32_t fdt;
__barebox_arm_head();
arm_cpu_lowlevel_init();
arm_setup_stack(0x00940000 - 8);
@ -151,5 +157,7 @@ void __naked barebox_arm_reset_vector(void)
mmdc_do_dqs_calibration();
}
barebox_arm_entry(0x10000000, SZ_2G, 0);
fdt = (uint32_t)__dtb_imx6q_dmo_realq7_start - get_runtime_offset();
barebox_arm_entry(0x10000000, SZ_2G, fdt);
}

View File

@ -1,3 +1,4 @@
obj-y += board.o
obj-y += board.o flash-header-imx51-genesi-efikasb.o
lwl-y += lowlevel.o
lwl-y += flash_header.o
extra-y += flash-header-imx51-genesi-efikasb.S
extra-y += flash-header-imx51-genesi-efikasb.dcd

View File

@ -182,6 +182,9 @@ static int efikamx_power_init(void)
static int efikamx_usb_init(void)
{
if (!of_machine_is_compatible("genesi,imx51-sb"))
return 0;
gpio_direction_output(GPIO_BLUETOOTH, 0);
gpio_direction_output(GPIO_WIFI_ENABLE, 1);
gpio_direction_output(GPIO_WIFI_RESET, 0);
@ -222,15 +225,17 @@ static struct gpio_led leds[] = {
},
};
#define DCD_NAME static struct imx_dcd_entry dcd_entry
#include "dcd-data.h"
extern char flash_header_imx51_genesi_efikasb_start[];
extern char flash_header_imx51_genesi_efikasb_end[];
static int efikamx_late_init(void)
{
enum bootsource bootsource;
int i;
if (!of_machine_is_compatible("genesi,imx51-sb"))
return 0;
efikamx_power_init();
gpio_direction_output(GPIO_BACKLIGHT_POWER, 1);
@ -241,8 +246,10 @@ static int efikamx_late_init(void)
writew(0x0, MX51_WDOG_BASE_ADDR + 0x8);
imx51_bbu_internal_mmc_register_handler("mmc", "/dev/mmc1",
BBU_HANDLER_FLAG_DEFAULT, dcd_entry, sizeof(dcd_entry),
0);
BBU_HANDLER_FLAG_DEFAULT,
(void *)flash_header_imx51_genesi_efikasb_start,
flash_header_imx51_genesi_efikasb_end -
flash_header_imx51_genesi_efikasb_start, 0);
armlinux_set_bootparams((void *)0x90000100);
armlinux_set_architecture(2370);

View File

@ -1,56 +0,0 @@
DCD_NAME[] = {
{ .ptr_type = 4, .addr = 0x73fa88a0, .val = 0x00000000, },
{ .ptr_type = 4, .addr = 0x73fa850c, .val = 0x000020c5, },
{ .ptr_type = 4, .addr = 0x73fa8510, .val = 0x000020c5, },
{ .ptr_type = 4, .addr = 0x73fa883c, .val = 0x00000005, },
{ .ptr_type = 4, .addr = 0x73fa8848, .val = 0x00000005, },
{ .ptr_type = 4, .addr = 0x73fa84b8, .val = 0x000000e7, },
{ .ptr_type = 4, .addr = 0x73fa84bc, .val = 0x00000045, },
{ .ptr_type = 4, .addr = 0x73fa84c0, .val = 0x00000045, },
{ .ptr_type = 4, .addr = 0x73fa84c4, .val = 0x00000045, },
{ .ptr_type = 4, .addr = 0x73fa84c8, .val = 0x00000045, },
{ .ptr_type = 4, .addr = 0x73fa8820, .val = 0x00000000, },
{ .ptr_type = 4, .addr = 0x73fa84a4, .val = 0x00000005, },
{ .ptr_type = 4, .addr = 0x73fa84a8, .val = 0x00000005, },
{ .ptr_type = 4, .addr = 0x73fa84ac, .val = 0x000000e5, },
{ .ptr_type = 4, .addr = 0x73fa84b0, .val = 0x000000e5, },
{ .ptr_type = 4, .addr = 0x73fa84b4, .val = 0x000000e5, },
{ .ptr_type = 4, .addr = 0x73fa84cc, .val = 0x000000e5, },
{ .ptr_type = 4, .addr = 0x73fa84d0, .val = 0x000000e4, },
{ .ptr_type = 4, .addr = 0x73fa882c, .val = 0x00000004, },
{ .ptr_type = 4, .addr = 0x73fa88a4, .val = 0x00000004, },
{ .ptr_type = 4, .addr = 0x73fa88ac, .val = 0x00000004, },
{ .ptr_type = 4, .addr = 0x73fa88b8, .val = 0x00000004, },
{ .ptr_type = 4, .addr = 0x83fd9000, .val = 0x82a20000, },
{ .ptr_type = 4, .addr = 0x83fd9008, .val = 0x82a20000, },
{ .ptr_type = 4, .addr = 0x83fd9010, .val = 0xcaaaf6d0, },
{ .ptr_type = 4, .addr = 0x83fd9004, .val = 0x333574aa, },
{ .ptr_type = 4, .addr = 0x83fd900c, .val = 0x333574aa, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x04008008, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0000801a, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0000801b, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00448019, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x07328018, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x04008008, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00008010, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00008010, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x06328018, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x03808019, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00008000, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0400800c, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0000801e, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0000801f, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0000801d, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0732801c, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0400800c, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00008014, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00008014, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0632801c, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x0380801d, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00008004, },
{ .ptr_type = 4, .addr = 0x83fd9000, .val = 0xb2a20000, },
{ .ptr_type = 4, .addr = 0x83fd9008, .val = 0xb2a20000, },
{ .ptr_type = 4, .addr = 0x83fd9010, .val = 0x000ad6d0, },
{ .ptr_type = 4, .addr = 0x83fd9034, .val = 0x90000000, },
{ .ptr_type = 4, .addr = 0x83fd9014, .val = 0x00000000, },
};

View File

@ -0,0 +1,57 @@
soc imx51
loadaddr 0x90000000
dcdofs 0x400
wm 32 0x73fa88a0 0x00000000
wm 32 0x73fa850c 0x000020c5
wm 32 0x73fa8510 0x000020c5
wm 32 0x73fa883c 0x00000005
wm 32 0x73fa8848 0x00000005
wm 32 0x73fa84b8 0x000000e7
wm 32 0x73fa84bc 0x00000045
wm 32 0x73fa84c0 0x00000045
wm 32 0x73fa84c4 0x00000045
wm 32 0x73fa84c8 0x00000045
wm 32 0x73fa8820 0x00000000
wm 32 0x73fa84a4 0x00000005
wm 32 0x73fa84a8 0x00000005
wm 32 0x73fa84ac 0x000000e5
wm 32 0x73fa84b0 0x000000e5
wm 32 0x73fa84b4 0x000000e5
wm 32 0x73fa84cc 0x000000e5
wm 32 0x73fa84d0 0x000000e4
wm 32 0x73fa882c 0x00000004
wm 32 0x73fa88a4 0x00000004
wm 32 0x73fa88ac 0x00000004
wm 32 0x73fa88b8 0x00000004
wm 32 0x83fd9000 0x82a20000
wm 32 0x83fd9008 0x82a20000
wm 32 0x83fd9010 0xcaaaf6d0
wm 32 0x83fd9004 0x333574aa
wm 32 0x83fd900c 0x333574aa
wm 32 0x83fd9014 0x04008008
wm 32 0x83fd9014 0x0000801a
wm 32 0x83fd9014 0x0000801b
wm 32 0x83fd9014 0x00448019
wm 32 0x83fd9014 0x07328018
wm 32 0x83fd9014 0x04008008
wm 32 0x83fd9014 0x00008010
wm 32 0x83fd9014 0x00008010
wm 32 0x83fd9014 0x06328018
wm 32 0x83fd9014 0x03808019
wm 32 0x83fd9014 0x00008000
wm 32 0x83fd9014 0x0400800c
wm 32 0x83fd9014 0x0000801e
wm 32 0x83fd9014 0x0000801f
wm 32 0x83fd9014 0x0000801d
wm 32 0x83fd9014 0x0732801c
wm 32 0x83fd9014 0x0400800c
wm 32 0x83fd9014 0x00008014
wm 32 0x83fd9014 0x00008014
wm 32 0x83fd9014 0x0632801c
wm 32 0x83fd9014 0x0380801d
wm 32 0x83fd9014 0x00008004
wm 32 0x83fd9000 0xb2a20000
wm 32 0x83fd9008 0xb2a20000
wm 32 0x83fd9010 0x000ad6d0
wm 32 0x83fd9034 0x90000000
wm 32 0x83fd9014 0x00000000

View File

@ -1,29 +0,0 @@
#include <common.h>
#include <mach/imx-flash-header.h>
#include <asm/barebox-arm-head.h>
void __naked __flash_header_start go(void)
{
barebox_arm_head();
}
#define DCD_NAME struct imx_dcd_entry __dcd_entry_section dcd_entry
#include "dcd-data.h"
#define APP_DEST 0x90000000
struct imx_flash_header __flash_header_section flash_header = {
.app_code_jump_vector = APP_DEST + 0x1000,
.app_code_barker = APP_CODE_BARKER,
.app_code_csf = 0,
.dcd_ptr_ptr = APP_DEST + 0x400 + offsetof(struct imx_flash_header, dcd),
.super_root_key = 0,
.dcd = APP_DEST + 0x400 + offsetof(struct imx_flash_header, dcd_barker),
.app_dest = APP_DEST,
.dcd_barker = DCD_BARKER,
.dcd_block_len = sizeof (dcd_entry),
};
unsigned long __image_len_section barebox_len = DCD_BAREBOX_SIZE;

View File

@ -1,12 +1,22 @@
#include <common.h>
#include <mach/esdctl.h>
#include <asm/barebox-arm-head.h>
#include <asm/barebox-arm.h>
#include <mach/imx5.h>
void __naked barebox_arm_reset_vector(void)
extern char __dtb_imx51_genesi_efika_sb_start[];
ENTRY_FUNCTION(start_imx51_genesi_efikasb)(void)
{
uint32_t fdt;
__barebox_arm_head();
arm_cpu_lowlevel_init();
arm_setup_stack(0x20000000 - 16);
imx51_init_lowlevel(800);
imx51_barebox_entry(0);
fdt = (uint32_t)__dtb_imx51_genesi_efika_sb_start - get_runtime_offset();
imx51_barebox_entry(fdt);
}

View File

@ -1,3 +1,3 @@
obj-y += board.o flash-header.o
extra-y += flash-header.S flash-header.dcd
obj-y += board.o flash-header-imx51-babbage.o
extra-y += flash-header-imx51-babbage.S flash-header-imx51-babbage.dcd
lwl-y += lowlevel.o

View File

@ -157,10 +157,14 @@ static void babbage_power_init(void)
mdelay(50);
}
extern char flash_header_start[], flash_header_end[];
extern char flash_header_imx51_babbage_start[];
extern char flash_header_imx51_babbage_end[];
static int f3s_devices_init(void)
static int imx51_babbage_late_init(void)
{
if (!of_machine_is_compatible("fsl,imx51-babbage"))
return 0;
babbage_power_init();
console_flush();
@ -171,16 +175,9 @@ static int f3s_devices_init(void)
armlinux_set_architecture(MACH_TYPE_MX51_BABBAGE);
imx51_bbu_internal_mmc_register_handler("mmc", "/dev/mmc0",
BBU_HANDLER_FLAG_DEFAULT, (void *)flash_header_start,
flash_header_end - flash_header_start, 0);
BBU_HANDLER_FLAG_DEFAULT, (void *)flash_header_imx51_babbage_start,
flash_header_imx51_babbage_end - flash_header_imx51_babbage_start, 0);
return 0;
}
device_initcall(f3s_devices_init);
static int f3s_part_init(void)
{
device_detect_by_name("mmc0");
devfs_add_partition("mmc0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self0");
@ -188,4 +185,4 @@ static int f3s_part_init(void)
return 0;
}
late_initcall(f3s_part_init);
late_initcall(imx51_babbage_late_init);

View File

@ -1,9 +1,19 @@
#include <common.h>
#include <mach/esdctl.h>
#include <asm/barebox-arm-head.h>
#include <asm/barebox-arm.h>
void __naked barebox_arm_reset_vector(void)
extern char __dtb_imx51_babbage_start[];
ENTRY_FUNCTION(start_imx51_babbage)(void)
{
uint32_t fdt;
__barebox_arm_head();
arm_cpu_lowlevel_init();
imx51_barebox_entry(0);
fdt = (uint32_t)__dtb_imx51_babbage_start - get_runtime_offset();
imx51_barebox_entry(fdt);
}

View File

@ -1,3 +1,3 @@
obj-y += board.o
lwl-y += flash_header.o
obj-y += board.o flash-header-imx53-loco.o
extra-y += flash-header-imx53-loco.S flash-header-imx53-loco.dcd
lwl-y += lowlevel.o

View File

@ -75,18 +75,18 @@ static void loco_fec_reset(void)
#define MX53_LOCO_USB_PWREN IMX_GPIO_NR(7, 8)
#define DCD_NAME static struct imx_dcd_v2_entry dcd_entry
#include "dcd-data.h"
extern char flash_header_imx53_loco_start[];
extern char flash_header_imx53_loco_end[];
static int loco_late_init(void)
{
struct device_d *dev = get_device_by_name("mmc0");
struct mc34708 *mc34708;
int rev;
if (dev)
device_detect(dev);
if (!of_machine_is_compatible("fsl,imx53-qsb"))
return 0;
device_detect_by_name("mmc0");
devfs_add_partition("mmc0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env0");
@ -116,17 +116,20 @@ static int loco_late_init(void)
armlinux_set_architecture(MACH_TYPE_MX53_LOCO);
imx53_bbu_internal_mmc_register_handler("mmc", "/dev/mmc0",
BBU_HANDLER_FLAG_DEFAULT, dcd_entry, sizeof(dcd_entry), 0);
BBU_HANDLER_FLAG_DEFAULT, (void *)flash_header_imx53_loco_start,
flash_header_imx53_loco_end - flash_header_imx53_loco_start, 0);
return 0;
}
late_initcall(loco_late_init);
static int loco_core_init(void)
static int loco_postcore_init(void)
{
if (!of_machine_is_compatible("fsl,imx53-qsb"))
return 0;
imx53_init_lowlevel(1000);
return 0;
}
core_initcall(loco_core_init);
postcore_initcall(loco_postcore_init);

View File

@ -1,54 +0,0 @@
DCD_NAME[] = {
{ .addr = cpu_to_be32(0x53fa8554), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8558), .val = cpu_to_be32(0x00300040), },
{ .addr = cpu_to_be32(0x53fa8560), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8564), .val = cpu_to_be32(0x00300040), },
{ .addr = cpu_to_be32(0x53fa8568), .val = cpu_to_be32(0x00300040), },
{ .addr = cpu_to_be32(0x53fa8570), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8574), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8578), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa857c), .val = cpu_to_be32(0x00300040), },
{ .addr = cpu_to_be32(0x53fa8580), .val = cpu_to_be32(0x00300040), },
{ .addr = cpu_to_be32(0x53fa8584), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8588), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8590), .val = cpu_to_be32(0x00300040), },
{ .addr = cpu_to_be32(0x53fa8594), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa86f0), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa86f4), .val = cpu_to_be32(0x00000000), },
{ .addr = cpu_to_be32(0x53fa86fc), .val = cpu_to_be32(0x00000000), },
{ .addr = cpu_to_be32(0x53fa8714), .val = cpu_to_be32(0x00000000), },
{ .addr = cpu_to_be32(0x53fa8718), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa871c), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8720), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa8724), .val = cpu_to_be32(0x04000000), },
{ .addr = cpu_to_be32(0x53fa8728), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x53fa872c), .val = cpu_to_be32(0x00300000), },
{ .addr = cpu_to_be32(0x63fd9088), .val = cpu_to_be32(0x35343535), },
{ .addr = cpu_to_be32(0x63fd9090), .val = cpu_to_be32(0x4d444c44), },
{ .addr = cpu_to_be32(0x63fd907c), .val = cpu_to_be32(0x01370138), },
{ .addr = cpu_to_be32(0x63fd9080), .val = cpu_to_be32(0x013b013c), },
{ .addr = cpu_to_be32(0x63fd9018), .val = cpu_to_be32(0x00011740), },
{ .addr = cpu_to_be32(0x63fd9000), .val = cpu_to_be32(0xc3190000), },
{ .addr = cpu_to_be32(0x63fd900c), .val = cpu_to_be32(0x9f5152e3), },
{ .addr = cpu_to_be32(0x63fd9010), .val = cpu_to_be32(0xb68e8a63), },
{ .addr = cpu_to_be32(0x63fd9014), .val = cpu_to_be32(0x01ff00db), },
{ .addr = cpu_to_be32(0x63fd902c), .val = cpu_to_be32(0x000026d2), },
{ .addr = cpu_to_be32(0x63fd9030), .val = cpu_to_be32(0x009f0e21), },
{ .addr = cpu_to_be32(0x63fd9008), .val = cpu_to_be32(0x12273030), },
{ .addr = cpu_to_be32(0x63fd9004), .val = cpu_to_be32(0x0002002d), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x00008032), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x00008033), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x00028031), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x052080b0), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x04008040), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x0000803a), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x0000803b), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x00028039), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x05208138), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x04008048), },
{ .addr = cpu_to_be32(0x63fd9020), .val = cpu_to_be32(0x00005800), },
{ .addr = cpu_to_be32(0x63fd9040), .val = cpu_to_be32(0x04b80003), },
{ .addr = cpu_to_be32(0x63fd9058), .val = cpu_to_be32(0x00022227), },
{ .addr = cpu_to_be32(0x63fd901c), .val = cpu_to_be32(0x00000000), },
};

View File

@ -0,0 +1,54 @@
loadaddr 0x70000000
soc imx53
dcdofs 0x400
wm 32 0x53fa8554 0x00300000
wm 32 0x53fa8558 0x00300040
wm 32 0x53fa8560 0x00300000
wm 32 0x53fa8564 0x00300040
wm 32 0x53fa8568 0x00300040
wm 32 0x53fa8570 0x00300000
wm 32 0x53fa8574 0x00300000
wm 32 0x53fa8578 0x00300000
wm 32 0x53fa857c 0x00300040
wm 32 0x53fa8580 0x00300040
wm 32 0x53fa8584 0x00300000
wm 32 0x53fa8588 0x00300000
wm 32 0x53fa8590 0x00300040
wm 32 0x53fa8594 0x00300000
wm 32 0x53fa86f0 0x00300000
wm 32 0x53fa86f4 0x00000000
wm 32 0x53fa86fc 0x00000000
wm 32 0x53fa8714 0x00000000
wm 32 0x53fa8718 0x00300000
wm 32 0x53fa871c 0x00300000
wm 32 0x53fa8720 0x00300000
wm 32 0x53fa8724 0x04000000
wm 32 0x53fa8728 0x00300000
wm 32 0x53fa872c 0x00300000
wm 32 0x63fd9088 0x35343535
wm 32 0x63fd9090 0x4d444c44
wm 32 0x63fd907c 0x01370138
wm 32 0x63fd9080 0x013b013c
wm 32 0x63fd9018 0x00011740
wm 32 0x63fd9000 0xc3190000
wm 32 0x63fd900c 0x9f5152e3
wm 32 0x63fd9010 0xb68e8a63
wm 32 0x63fd9014 0x01ff00db
wm 32 0x63fd902c 0x000026d2
wm 32 0x63fd9030 0x009f0e21
wm 32 0x63fd9008 0x12273030
wm 32 0x63fd9004 0x0002002d
wm 32 0x63fd901c 0x00008032
wm 32 0x63fd901c 0x00008033
wm 32 0x63fd901c 0x00028031
wm 32 0x63fd901c 0x052080b0
wm 32 0x63fd901c 0x04008040
wm 32 0x63fd901c 0x0000803a
wm 32 0x63fd901c 0x0000803b
wm 32 0x63fd901c 0x00028039
wm 32 0x63fd901c 0x05208138
wm 32 0x63fd901c 0x04008048
wm 32 0x63fd9020 0x00005800
wm 32 0x63fd9040 0x04b80003
wm 32 0x63fd9058 0x00022227
wm 32 0x63fd901c 0x00000000

View File

@ -1,52 +0,0 @@
/*
* Copyright (C) 2011 Marc Kleine-Budde <mkl@pengutronix.de>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <common.h>
#include <asm/byteorder.h>
#include <mach/imx-flash-header.h>
#include <asm/barebox-arm-head.h>
void __naked __flash_header_start go(void)
{
barebox_arm_head();
}
#define DCD_NAME struct imx_dcd_v2_entry __dcd_entry_section dcd_entry
#include "dcd-data.h"
#define APP_DEST 0x70000000
struct imx_flash_header_v2 __flash_header_section flash_header = {
.header.tag = IVT_HEADER_TAG,
.header.length = cpu_to_be16(32),
.header.version = IVT_VERSION,
.entry = APP_DEST + 0x1000,
.dcd_ptr = APP_DEST + 0x400 + offsetof(struct imx_flash_header_v2, dcd),
.boot_data_ptr = APP_DEST + 0x400 + offsetof(struct imx_flash_header_v2, boot_data),
.self = APP_DEST + 0x400,
.boot_data.start = APP_DEST,
.boot_data.size = DCD_BAREBOX_SIZE,
.dcd.header.tag = DCD_HEADER_TAG,
.dcd.header.length = cpu_to_be16(sizeof(struct imx_dcd) + sizeof(dcd_entry)),
.dcd.header.version = DCD_VERSION,
.dcd.command.tag = DCD_COMMAND_WRITE_TAG,
.dcd.command.length = cpu_to_be16(sizeof(struct imx_dcd_command) + sizeof(dcd_entry)),
.dcd.command.param = DCD_COMMAND_WRITE_PARAM,
};

View File

@ -1,9 +1,19 @@
#include <common.h>
#include <mach/esdctl.h>
#include <asm/barebox-arm-head.h>
#include <asm/barebox-arm.h>
void __naked barebox_arm_reset_vector(void)
extern char __dtb_imx53_qsb_start[];
ENTRY_FUNCTION(start_imx53_loco)(void)
{
uint32_t fdt;
__barebox_arm_head();
arm_cpu_lowlevel_init();
imx53_barebox_entry(0);
fdt = (uint32_t)__dtb_imx53_qsb_start - get_runtime_offset();
imx53_barebox_entry(fdt);
}

View File

@ -1,7 +1,5 @@
CONFIG_BUILTIN_DTB=y
CONFIG_BUILTIN_DTB_NAME="imx6q-dmo-realq7"
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX6=y
CONFIG_IMX_MULTI_BOARDS=y
CONFIG_MACH_REALQ7=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
@ -9,7 +7,6 @@ CONFIG_THUMB2_BAREBOX=y
CONFIG_CMD_ARM_MMUINFO=y
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
CONFIG_ARM_UNWIND=y
CONFIG_PBL_IMAGE=y
CONFIG_MMU=y
CONFIG_TEXT_BASE=0x8fc00000
CONFIG_MALLOC_SIZE=0x40000000

View File

@ -1,3 +1,4 @@
CONFIG_IMX_MULTI_BOARDS=y
CONFIG_BUILTIN_DTB=y
CONFIG_BUILTIN_DTB_NAME="imx51-genesi-efika-sb"
CONFIG_ARCH_IMX=y

View File

@ -1,5 +1,6 @@
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX25=y
CONFIG_MACH_EUKREA_CPUIMX25=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_AEABI=y

View File

@ -1,5 +1,6 @@
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX27=y
CONFIG_MACH_EUKREA_CPUIMX27=y
CONFIG_IMX_CLKO=y
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
CONFIG_MMU=y

View File

@ -1,6 +1,7 @@
CONFIG_ARCH_IMX=y
CONFIG_CACHE_L2X0=y
CONFIG_ARCH_IMX35=y
CONFIG_MACH_EUKREA_CPUIMX35=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_AEABI=y

View File

@ -1,5 +1,6 @@
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX6=y
CONFIG_MACH_MX6Q_ARM2=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_AEABI=y

View File

@ -1,7 +1,6 @@
CONFIG_BUILTIN_DTB=y
CONFIG_BUILTIN_DTB_NAME="imx51-babbage"
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX51=y
CONFIG_IMX_MULTI_BOARDS=y
CONFIG_MACH_FREESCALE_MX51_PDK=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_THUMB2_BAREBOX=y
@ -17,7 +16,6 @@ CONFIG_CMDLINE_EDITING=y
CONFIG_AUTO_COMPLETE=y
CONFIG_MENU=y
CONFIG_CONSOLE_ACTIVATE_NONE=y
CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_LZO=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/freescale-mx51-pdk/env/"
CONFIG_CMD_EDIT=y

View File

@ -1,14 +1,12 @@
CONFIG_BUILTIN_DTB=y
CONFIG_BUILTIN_DTB_NAME="imx53-qsb"
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX53=y
CONFIG_IMX_MULTI_BOARDS=y
CONFIG_MACH_FREESCALE_MX53_LOCO=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_THUMB2_BAREBOX=y
CONFIG_CMD_ARM_MMUINFO=y
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
CONFIG_ARM_UNWIND=y
CONFIG_PBL_IMAGE=y
CONFIG_MMU=y
CONFIG_MALLOC_SIZE=0x0
CONFIG_MALLOC_TLSF=y

View File

@ -0,0 +1,131 @@
CONFIG_ARCH_IMX=y
CONFIG_IMX_MULTI_BOARDS=y
CONFIG_MACH_EFIKA_MX_SMARTBOOK=y
CONFIG_MACH_FREESCALE_MX51_PDK=y
CONFIG_MACH_FREESCALE_MX53_LOCO=y
CONFIG_MACH_REALQ7=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_THUMB2_BAREBOX=y
CONFIG_CMD_ARM_MMUINFO=y
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
CONFIG_ARM_UNWIND=y
CONFIG_MMU=y
CONFIG_TEXT_BASE=0x0
CONFIG_MALLOC_SIZE=0x0
CONFIG_MALLOC_TLSF=y
CONFIG_KALLSYMS=y
CONFIG_RELOCATABLE=y
CONFIG_LONGHELP=y
CONFIG_HUSH_FANCY_PROMPT=y
CONFIG_CMDLINE_EDITING=y
CONFIG_AUTO_COMPLETE=y
CONFIG_MENU=y
CONFIG_CONSOLE_ACTIVATE_NONE=y
CONFIG_PARTITION_DISK_EFI=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/freescale-mx51-pdk/env/"
CONFIG_RESET_SOURCE=y
CONFIG_CMD_EDIT=y
CONFIG_CMD_SLEEP=y
CONFIG_CMD_MSLEEP=y
CONFIG_CMD_SAVEENV=y
CONFIG_CMD_EXPORT=y
CONFIG_CMD_PRINTENV=y
CONFIG_CMD_READLINE=y
CONFIG_CMD_LET=y
CONFIG_CMD_MENU=y
CONFIG_CMD_MENU_MANAGEMENT=y
CONFIG_CMD_TIME=y
CONFIG_CMD_LN=y
CONFIG_CMD_TFTP=y
CONFIG_CMD_FILETYPE=y
CONFIG_CMD_ECHO_E=y
CONFIG_CMD_MEMINFO=y
CONFIG_CMD_IOMEM=y
CONFIG_CMD_MM=y
CONFIG_CMD_CRC=y
CONFIG_CMD_CRC_CMP=y
CONFIG_CMD_MD5SUM=y
CONFIG_CMD_FLASH=y
CONFIG_CMD_BOOTM_SHOW_TYPE=y
CONFIG_CMD_BOOTM_VERBOSE=y
CONFIG_CMD_BOOTM_INITRD=y
CONFIG_CMD_BOOTM_OFTREE=y
CONFIG_CMD_BOOTM_OFTREE_UIMAGE=y
CONFIG_CMD_UIMAGE=y
# CONFIG_CMD_BOOTU is not set
CONFIG_CMD_RESET=y
CONFIG_CMD_GO=y
CONFIG_CMD_OFTREE=y
CONFIG_CMD_OF_PROPERTY=y
CONFIG_CMD_OF_NODE=y
CONFIG_CMD_MEMTEST=y
CONFIG_CMD_BAREBOX_UPDATE=y
CONFIG_CMD_TIMEOUT=y
CONFIG_CMD_PARTITION=y
CONFIG_CMD_MAGICVAR=y
CONFIG_CMD_MAGICVAR_HELP=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_UNCOMPRESS=y
CONFIG_CMD_I2C=y
CONFIG_CMD_SPI=y
CONFIG_CMD_LED=y
CONFIG_CMD_LED_TRIGGER=y
CONFIG_CMD_MIITOOL=y
CONFIG_CMD_CLK=y
CONFIG_CMD_DETECT=y
CONFIG_CMD_WD=y
CONFIG_NET=y
CONFIG_NET_DHCP=y
CONFIG_NET_PING=y
CONFIG_NET_NETCONSOLE=y
CONFIG_NET_RESOLV=y
CONFIG_OFDEVICE=y
CONFIG_DRIVER_NET_FEC_IMX=y
CONFIG_NET_USB=y
CONFIG_NET_USB_ASIX=y
CONFIG_NET_USB_SMSC95XX=y
CONFIG_DRIVER_SPI_IMX=y
CONFIG_I2C=y
CONFIG_I2C_IMX=y
CONFIG_MTD=y
CONFIG_MTD_RAW_DEVICE=y
CONFIG_MTD_DATAFLASH=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SST25L=y
CONFIG_DISK_AHCI=y
CONFIG_DISK_AHCI_IMX=y
CONFIG_DISK_INTF_PLATFORM_IDE=y
CONFIG_DISK_PATA_IMX=y
CONFIG_USB=y
CONFIG_USB_IMX_CHIPIDEA=y
CONFIG_USB_EHCI=y
CONFIG_USB_ULPI=y
CONFIG_USB_STORAGE=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DFU=y
CONFIG_MCI=y
CONFIG_MCI_MMC_BOOT_PARTITIONS=y
CONFIG_MCI_IMX_ESDHC=y
CONFIG_MFD_MC13XXX=y
CONFIG_MFD_MC34704=y
CONFIG_MFD_MC34708=y
CONFIG_MFD_MC9SDZ60=y
CONFIG_MFD_STMPE=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_LED_TRIGGERS=y
CONFIG_EEPROM_AT25=y
CONFIG_EEPROM_AT24=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_IMX=y
CONFIG_GPIO_STMPE=y
CONFIG_FS_EXT4=y
CONFIG_FS_TFTP=y
CONFIG_FS_NFS=y
CONFIG_FS_FAT=y
CONFIG_FS_FAT_WRITE=y
CONFIG_FS_FAT_LFN=y
CONFIG_LZO_DECOMPRESS=y

View File

@ -1,5 +1,6 @@
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX21=y
CONFIG_MACH_IMX21ADS=y
CONFIG_IMX_CLKO=y
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
CONFIG_TEXT_BASE=0xc3000000

View File

@ -1,6 +1,7 @@
CONFIG_ARCH_IMX=y
CONFIG_CACHE_L2X0=y
CONFIG_ARCH_IMX31=y
CONFIG_MACH_PCM037=y
CONFIG_IMX_IIM=y
CONFIG_IMX_IIM_FUSE_BLOW=y
CONFIG_AEABI=y

View File

@ -8,6 +8,11 @@ dtb-$(CONFIG_ARCH_IMX6) += imx6q-dmo-realq7.dtb \
BUILTIN_DTB := $(patsubst "%",%,$(CONFIG_BUILTIN_DTB_NAME))
obj-$(CONFIG_BUILTIN_DTB) += $(BUILTIN_DTB).dtb.o
pbl-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += imx51-genesi-efika-sb.dtb.o
pbl-$(CONFIG_MACH_FREESCALE_MX51_PDK) += imx51-babbage.dtb.o
pbl-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += imx53-qsb.dtb.o
pbl-$(CONFIG_MACH_REALQ7) += imx6q-dmo-realq7.dtb.o
.SECONDARY: $(obj)/$(BUILTIN_DTB).dtb.S
.SECONDARY: $(patsubst %,$(obj)/%.S,$(dtb-y))

View File

@ -48,8 +48,6 @@ config BOARDINFO
default "Phytec phyCORE-i.MX35" if MACH_PCM043
default "Synertronixx scb9328" if MACH_SCB9328
default "Garz+Fricke Neso" if MACH_NESO
default "Freescale i.MX51 PDK" if MACH_FREESCALE_MX51_PDK
default "Freescale i.MX53 LOCO" if MACH_FREESCALE_MX53_LOCO
default "Freescale i.MX53 SMD" if MACH_FREESCALE_MX53_SMD
default "Efika MX smartbook" if MACH_EFIKA_MX_SMARTBOOK
default "Garz+Fricke Cupid" if MACH_GUF_CUPID
@ -63,10 +61,10 @@ config BOARDINFO
default "Garz+Fricke Vincell" if MACH_GUF_VINCELL
default "SabreSD" if MACH_SABRESD
default "DataModul i.MX6Q Real Qseven" if MACH_REALQ7
default "unused" if IMX_MULTI_BOARDS
choice
prompt "Select boot mode"
depends on !ARCH_IMX_INTERNAL_BOOT_USE_IMXIMAGE
depends on !HAVE_PBL_MULTI_IMAGES
help
i.MX processors support two different boot modes. With the internal
@ -97,19 +95,10 @@ endchoice
config ARCH_IMX_IMXIMAGE
bool
default y
help
if enabled the imx-image tool is compiled
config ARCH_IMX_INTERNAL_BOOT_USE_IMXIMAGE
select ARCH_IMX_IMXIMAGE
bool
help
Traditionally the i.MX specific format for internal bootmode
was generated using C structs inside the binary. Now there is
a tool available to generate the imx-image format. Boards using
this tool must select this option. This is recommended for new
boards.
choice
depends on ARCH_IMX_INTERNAL_BOOT
prompt "Internal boot source"
@ -176,112 +165,130 @@ config BAREBOX_UPDATE_IMX_EXTERNAL_NAND
comment "Freescale i.MX System-on-Chip"
choice
prompt "Freescale i.MX Processor"
config ARCH_IMX1
bool "i.MX1"
bool
select CPU_ARM920T
select PINCTRL_IMX_IOMUX_V1
config ARCH_IMX21
bool "i.MX21"
bool
select CPU_ARM926T
select PINCTRL_IMX_IOMUX_V1
config ARCH_IMX25
bool "i.MX25"
bool
select CPU_ARM926T
select ARCH_HAS_FEC_IMX
select PINCTRL_IMX_IOMUX_V3
config ARCH_IMX27
bool "i.MX27"
bool
select CPU_ARM926T
select ARCH_HAS_FEC_IMX
select PINCTRL_IMX_IOMUX_V1
config ARCH_IMX31
select CPU_V6
bool "i.MX31"
bool
select PINCTRL_IMX_IOMUX_V2
config ARCH_IMX35
bool "i.MX35"
bool
select CPU_V6
select ARCH_HAS_FEC_IMX
select PINCTRL_IMX_IOMUX_V3
config ARCH_IMX51
bool "i.MX51"
bool
select CPU_V7
select ARCH_HAS_FEC_IMX
select PINCTRL_IMX_IOMUX_V3
config ARCH_IMX53
bool "i.MX53"
bool
select CPU_V7
select ARCH_HAS_FEC_IMX
select PINCTRL_IMX_IOMUX_V3
config ARCH_IMX6
bool "i.MX6"
bool
select ARCH_HAS_FEC_IMX
select CPU_V7
select PINCTRL_IMX_IOMUX_V3
endchoice
config IMX_MULTI_BOARDS
bool "Allow multiple boards to be selected"
select HAVE_DEFAULT_ENVIRONMENT_NEW
select HAVE_PBL_MULTI_IMAGES
# ----------------------------------------------------------
if IMX_MULTI_BOARDS
if ARCH_IMX1
choice
prompt "i.MX1 Board Type"
config MACH_SCB9328
bool "Synertronixx scb9328"
select HAS_DM9000
config MACH_EFIKA_MX_SMARTBOOK
bool "Efika MX smartbook"
select ARCH_IMX51
select HAVE_DEFAULT_ENVIRONMENT_NEW
select HAVE_PBL_MULTI_IMAGES
help
Say Y here if you are using the Synertronixx scb9328 board
Choose this to compile barebox for the Efika MX Smartbook
endchoice
config MACH_FREESCALE_MX51_PDK
bool "Freescale i.MX51 PDK"
select ARCH_IMX51
config MACH_FREESCALE_MX53_LOCO
bool "Freescale i.MX53 LOCO"
select ARCH_IMX53
config MACH_REALQ7
bool "DataModul i.MX6Q Real Qseven Board"
select ARCH_IMX6
select HAVE_DEFAULT_ENVIRONMENT_NEW
select HAVE_PBL_MULTI_IMAGES
endif
# ----------------------------------------------------------
if ARCH_IMX21
choice
prompt "i.MX21 Board Type"
prompt "Select Board"
depends on !IMX_MULTI_BOARDS
comment "i.MX1 Boards"
config MACH_SCB9328
bool "Synertronixx scb9328"
select ARCH_IMX1
select HAS_DM9000
help
Say Y here if you are using the Synertronixx scb9328 board
# ----------------------------------------------------------
comment "i.MX21 Boards"
config MACH_IMX21ADS
bool "Freescale i.MX21ADS"
select ARCH_IMX21
select HAS_CS8900
help
Say Y here if you are using the Freescale i.MX21ads board equipped
with a Freescale i.MX21 Processor
endchoice
endif
# ----------------------------------------------------------
if ARCH_IMX25
choice
prompt "i.MX25 Board Type"
comment "i.MX25 Boards"
config MACH_EUKREA_CPUIMX25
bool "Eukrea CPUIMX25"
select ARCH_IMX25
help
Say Y here if you are using the Eukrea Electromatique's CPUIMX25
equipped with a Freescale i.MX25 Processor
config MACH_FREESCALE_MX25_3STACK
bool "Freescale MX25 3stack"
select ARCH_IMX25
select I2C
select MFD_MC34704
help
@ -290,41 +297,39 @@ config MACH_FREESCALE_MX25_3STACK
config MACH_TX25
bool "Ka-Ro TX25"
select ARCH_IMX25
select HAVE_DEFAULT_ENVIRONMENT_NEW
help
Say Y here if you are using the Ka-Ro tx25 board
endchoice
endif
# ----------------------------------------------------------
if ARCH_IMX27
choice
prompt "i.MX27 Board Type"
comment "i.MX27 Boards"
config MACH_EUKREA_CPUIMX27
bool "EUKREA CPUIMX27"
select ARCH_IMX27
help
Say Y here if you are using Eukrea's CPUIMX27 equipped
with a Freescale i.MX27 Processor
config MACH_IMX27ADS
bool "Freescale i.MX27ADS"
select ARCH_IMX27
help
Say Y here if you are using the Freescale i.MX27ads board equipped
with a Freescale i.MX27 Processor
config MACH_PCA100
bool "phyCard-i.MX27"
select ARCH_IMX27
help
Say Y here if you are using Phytec's phyCard-i.MX27 (pca100) equipped
with a Freescale i.MX27 Processor
config MACH_PCM038
bool "phyCORE-i.MX27"
select ARCH_IMX27
select IMX_IIM
select SPI
select DRIVER_SPI_IMX
@ -345,23 +350,18 @@ config MACH_PCM970_BASEBOARD
config MACH_NESO
bool "Garz+Fricke Neso"
select ARCH_IMX27
help
Say Y here if you are using the Garz+Fricke Neso board equipped
with a Freescale i.MX27 Processor
endchoice
endif
# ----------------------------------------------------------
if ARCH_IMX31
choice
prompt "i.MX31 Board Type"
comment "i.MX31 Boards"
config MACH_PCM037
bool "phyCORE-i.MX31"
select ARCH_IMX31
select USB_ULPI if USB
select HAVE_DEFAULT_ENVIRONMENT_NEW
select ARCH_HAS_L2X0
@ -369,19 +369,13 @@ config MACH_PCM037
Say Y here if you are using Phytec's phyCORE-i.MX31 (pcm037) equipped
with a Freescale i.MX31 Processor
endchoice
endif
# ----------------------------------------------------------
if ARCH_IMX35
choice
prompt "i.MX35 Board Type"
comment "i.MX35 Boards"
config MACH_EUKREA_CPUIMX35
bool "EUKREA CPUIMX35"
select ARCH_IMX35
select ARCH_HAS_L2X0
help
Say Y here if you are using Eukrea's CPUIMX35 equipped
@ -389,6 +383,7 @@ config MACH_EUKREA_CPUIMX35
config MACH_FREESCALE_MX35_3STACK
bool "Freescale MX35 3stack"
select ARCH_IMX35
select I2C
select I2C_IMX
select MFD_MC13XXX
@ -399,6 +394,7 @@ config MACH_FREESCALE_MX35_3STACK
config MACH_PCM043
bool "phyCORE-i.MX35"
select ARCH_IMX35
select ARCH_HAS_L2X0
select HAVE_DEFAULT_ENVIRONMENT_NEW
help
@ -407,40 +403,32 @@ config MACH_PCM043
config MACH_GUF_CUPID
bool "Garz+Fricke Cupid"
select ARCH_IMX35
select ARCH_HAS_L2X0
help
Say Y here if you are using the Garz+Fricke Neso board equipped
with a Freescale i.MX35 Processor
endchoice
endif
# ----------------------------------------------------------
if ARCH_IMX51
choice
prompt "i.MX51 Board Type"
config MACH_FREESCALE_MX51_PDK
select HAVE_DEFAULT_ENVIRONMENT_NEW
select ARCH_IMX_INTERNAL_BOOT_USE_IMXIMAGE
bool "Freescale i.MX51 PDK"
comment "i.MX51 Boards"
config MACH_EUKREA_CPUIMX51SD
bool "EUKREA CPUIMX51"
bool "Ka-Ro TX51"
select ARCH_IMX51
help
Say Y here if you are using Eukrea's CPUIMX51 equipped
with a Freescale i.MX51 Processor
config MACH_TX51
bool "Ka-Ro TX51"
select ARCH_IMX51
help
Say Y here if you are using the Ka-Ro tx51 board
config MACH_CCMX51
bool "ConnectCore i.MX51"
select ARCH_IMX51
select IMX_IIM
select SPI
select DRIVER_SPI_IMX
@ -457,85 +445,48 @@ config MACH_CCMX51_BASEBOARD
This adds board specific devices that can be found on Digi
evaluation board for CCMX51 module.
config MACH_EFIKA_MX_SMARTBOOK
bool "Efika MX smartbook"
select HAVE_DEFAULT_ENVIRONMENT_NEW
help
Choose this to compile barebox for the Efika MX Smartbook
endchoice
endif
# ----------------------------------------------------------
if ARCH_IMX53
choice
prompt "i.MX53 Board Type"
config MACH_FREESCALE_MX53_LOCO
select HAVE_DEFAULT_ENVIRONMENT_NEW
bool "Freescale i.MX53 LOCO"
comment "i.MX53 Boards"
config MACH_FREESCALE_MX53_SMD
bool "Freescale i.MX53 SMD"
select ARCH_IMX53
config MACH_TQMA53
select HAVE_DEFAULT_ENVIRONMENT_NEW
bool "TQ i.MX53 TQMa53"
select ARCH_IMX53
select HAVE_DEFAULT_ENVIRONMENT_NEW
config MACH_TX53
bool "Ka-Ro TX53"
select ARCH_IMX53
select HAVE_DEFAULT_ENVIRONMENT_NEW
help
Say Y here if you are using the Ka-Ro tx53 board
config MACH_GUF_VINCELL
select HAVE_DEFAULT_ENVIRONMENT_NEW
bool "Garz-Fricke Vincell"
select ARCH_IMX53
select HAVE_DEFAULT_ENVIRONMENT_NEW
endchoice
if MACH_TX53
choice
prompt "TX53 board revision"
config TX53_REV_1011
bool "1011"
config TX53_REV_XX30
bool "8030 / 1030"
endchoice
endif
endif
if ARCH_IMX6
choice
prompt "i.MX6 Board Type"
comment "i.MX6 Boards"
config MACH_MX6Q_ARM2
bool "Freescale i.MX6q Armadillo2"
select ARCH_IMX6
config MACH_SABRELITE
select HAVE_DEFAULT_ENVIRONMENT_NEW
bool "Freescale i.MX6 Sabre Lite"
select ARCH_IMX6
select HAVE_DEFAULT_ENVIRONMENT_NEW
config MACH_SABRESD
bool "Freescale i.MX6 SabreSD"
config MACH_REALQ7
bool "DataModul i.MX6Q Real Qseven Board"
select ARCH_IMX_INTERNAL_BOOT_USE_IMXIMAGE
select HAVE_DEFAULT_ENVIRONMENT_NEW
select ARCH_IMX6
endchoice
endif
# ----------------------------------------------------------
menu "Board specific settings"
@ -617,6 +568,19 @@ config MACH_TQMA53_1GB_RAM
endif
if MACH_TX53
choice
prompt "TX53 board revision"
config TX53_REV_1011
bool "1011"
config TX53_REV_XX30
bool "8030 / 1030"
endchoice
endif
endmenu
menu "i.MX specific settings"

View File

@ -13,3 +13,30 @@ board = $(srctree)/arch/$(ARCH)/boards
pblx-$(CONFIG_MACH_PCM038) += start_imx27_pcm038
FILE_barebox-phytec-phycore-imx27.img = start_imx27_pcm038.pblx
image-$(CONFIG_MACH_PCM038) += barebox-phytec-phycore-imx27.img
# ----------------------- i.MX51 based boards ---------------------------
pblx-$(CONFIG_MACH_FREESCALE_MX51_PDK) += start_imx51_babbage
CFG_start_imx51_babbage.pblx.imximg = $(board)/freescale-mx51-pdk/flash-header-imx51-babbage.imxcfg
imximage-$(CONFIG_MACH_FREESCALE_MX51_PDK) += start_imx51_babbage.pblx.imximg
FILE_barebox-freescale-imx51-babbage.img = start_imx51_babbage.pblx.imximg
image-$(CONFIG_MACH_FREESCALE_MX51_PDK) += barebox-freescale-imx51-babbage.img
pblx-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += start_imx51_genesi_efikasb
CFG_start_imx51_genesi_efikasb.pblx.imximg = $(board)/efika-mx-smartbook/flash-header-imx51-genesi-efikasb.imxcfg
imximage-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += start_imx51_genesi_efikasb.pblx.imximg
FILE_barebox-genesi-efikasb.img = start_imx51_genesi_efikasb.pblx.imximg
image-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += barebox-genesi-efikasb.img
# ----------------------- i.MX53 based boards ---------------------------
pblx-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += start_imx53_loco
CFG_start_imx53_loco.pblx.imximg = $(board)/freescale-mx53-loco/flash-header-imx53-loco.imxcfg
imximage-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += start_imx53_loco.pblx.imximg
FILE_barebox-freescale-imx53-loco.img = start_imx53_loco.pblx.imximg
image-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += barebox-freescale-imx53-loco.img
# ----------------------- i.MX6 based boards ---------------------------
pblx-$(CONFIG_MACH_REALQ7) += start_imx6_realq7
CFG_start_imx6_realq7.pblx.imximg = $(board)/dmo-mx6-realq7/flash-header.imxcfg
imximage-$(CONFIG_MACH_REALQ7) += start_imx6_realq7.pblx.imximg
FILE_barebox-datamodul-edm-qmx6.img = start_imx6_realq7.pblx.imximg
image-$(CONFIG_MACH_REALQ7) += barebox-datamodul-edm-qmx6.img