David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2347
-gerrit
commit 6968de0c1bbada0b9d71225b31fe67f781c8db20
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 17:24:17 2013 -0800
exynos/snow: move SPI GPIO setup to mainboard bootblock code
This moves GPIO setup from chip-specific SPI code to mainboard-
specific bootblock code. This makes exynos_spi_open a bit more
generic so it can eventually be used for any SPI channel. This
also benefits CBFS since the user can set media->context to
to any set of SPI registers.
Change-Id: I2bcb9de370df0a79353c14b4d021b471ddebfacd
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/cpu/samsung/exynos5-common/spi.c | 11 +----------
src/mainboard/google/snow/bootblock.c | 1 +
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/src/cpu/samsung/exynos5-common/spi.c b/src/cpu/samsung/exynos5-common/spi.c
index 90b74c0..0ea2dcd 100644
--- a/src/cpu/samsung/exynos5-common/spi.c
+++ b/src/cpu/samsung/exynos5-common/spi.c
@@ -81,21 +81,12 @@ static void exynos_spi_rx_tx(struct exynos_spi *regs, int todo,
}
}
+/* set up SPI channel */
int exynos_spi_open(struct exynos_spi *regs)
{
clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */
/* set the spi1 GPIO */
- // TODO Some of these should be done in board's bootblock file.
- // We should fix-up the mainboard-specific vs. exynos-specific parts in a
- // follow-up CL.
-
-// exynos_pinmux_config(PERIPH_ID_SPI1, PINMUX_FLAG_NONE);
- gpio_cfg_pin(GPIO_A24, 0x2);
- gpio_cfg_pin(GPIO_A25, 0x2);
- gpio_cfg_pin(GPIO_A26, 0x2);
- gpio_cfg_pin(GPIO_A27, 0x2);
-
/* set pktcnt and enable it */
writel(4 | SPI_PACKET_CNT_EN, ®s->pkt_cnt);
/* set FB_CLK_SEL */
diff --git a/src/mainboard/google/snow/bootblock.c b/src/mainboard/google/snow/bootblock.c
index 9725af3..17a3267 100644
--- a/src/mainboard/google/snow/bootblock.c
+++ b/src/mainboard/google/snow/bootblock.c
@@ -30,6 +30,7 @@
void bootblock_mainboard_init(void);
void bootblock_mainboard_init(void)
{
+ exynos_pinmux_config(PERIPH_ID_SPI1, PINMUX_FLAG_NONE);
#if CONFIG_EARLY_CONSOLE
exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE);
console_init();
David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2346
-gerrit
commit f615df575d630f67323956646df0b7ba07a911ec
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 16:42:23 2013 -0800
exynos/snow: set SPI clock rate in romstage main
This moves the setting of SPI clock rate into romstage's main,
which allows us to eliminate a bunch of dependencies from the
bootblock (about 7KB worth).
Change-Id: I371499bb4af6a6aa838294bc56f9dbc21864957a
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/cpu/samsung/exynos5-common/spi.c | 1 -
src/mainboard/google/snow/romstage.c | 4 ++++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/cpu/samsung/exynos5-common/spi.c b/src/cpu/samsung/exynos5-common/spi.c
index 90b74c0..0e5d5e5 100644
--- a/src/cpu/samsung/exynos5-common/spi.c
+++ b/src/cpu/samsung/exynos5-common/spi.c
@@ -83,7 +83,6 @@ static void exynos_spi_rx_tx(struct exynos_spi *regs, int todo,
int exynos_spi_open(struct exynos_spi *regs)
{
- clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */
/* set the spi1 GPIO */
// TODO Some of these should be done in board's bootblock file.
diff --git a/src/mainboard/google/snow/romstage.c b/src/mainboard/google/snow/romstage.c
index c0bb6f4..719337b 100644
--- a/src/mainboard/google/snow/romstage.c
+++ b/src/mainboard/google/snow/romstage.c
@@ -24,8 +24,10 @@
#include <cbfs.h>
#include <common.h>
+#include <cpu/samsung/exynos5250/clk.h>
#include <cpu/samsung/exynos5250/dmc.h>
#include <cpu/samsung/exynos5250/setup.h>
+#include <cpu/samsung/exynos5250/periph.h>
#include <cpu/samsung/exynos5250/clock_init.h>
#include <console/console.h>
@@ -53,6 +55,8 @@ void main(void)
int ret;
void *entry;
+ clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */
+
/* Clock must be initialized before console_init, otherwise you may need
* to re-initialize serial console drivers again. */
mem = get_mem_timings();
David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2322
-gerrit
commit c6a1fdcb829996cee74ef6b8705d50ae57b54a8d
Author: Hung-Te Lin <hungte(a)chromium.org>
Date: Fri Feb 8 13:49:10 2013 +0800
armv7/snow: Remove unused modules in bootblock and romstage.
For Exynos/snow, cpu_info and power modules and also some parts of
the GPIO API (which require timer and pwm modules) are not used in the
current bootblock. Clock init only needs to be used if early console
is enabled.
Now our bootblock is 22420 bytes with early serial console and 11192
bytes without. Those include the 8KB BL1 region.
Change-Id: I9c958dafb9cf522df0dcfbef373ce741aa162544
Signed-off-by: Hung-Te Lin <hungte(a)chromium.org>
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/cpu/samsung/exynos5250/Makefile.inc | 17 +++++++----------
src/cpu/samsung/s5p-common/Makefile.inc | 5 ++---
src/cpu/samsung/s5p-common/s5p_gpio.c | 7 +++++++
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/cpu/samsung/exynos5250/Makefile.inc b/src/cpu/samsung/exynos5250/Makefile.inc
index 13baa7e..941feb9 100644
--- a/src/cpu/samsung/exynos5250/Makefile.inc
+++ b/src/cpu/samsung/exynos5250/Makefile.inc
@@ -3,23 +3,20 @@
# image outside of CBFS
#INTERMEDIATE += exynos5250_add_bl1
-# Clock init is done in bootblock to support UART output for
-# debugging. We may add a Kconfig option to disable clock init
-# in the bootblock and try moving it entirely into romstage.
-bootblock-y += clock_init.c
-bootblock-y += clock.c
-bootblock-y += pinmux.c
-bootblock-y += soc.c
+# Clock is required for starting SPI to load romstage file from CBFS.
+bootblock-$(CONFIG_EARLY_CONSOLE) += clock_init.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += clock.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += pinmux.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += soc.c
bootblock-$(CONFIG_EARLY_CONSOLE) += uart.c
romstage-y += clock.c
romstage-y += clock_init.c
+romstage-y += pinmux.c # required by s3c24x0_i2c (s5p-common) and uart.
romstage-y += exynos_cache.c
-romstage-y += pinmux.c
-romstage-y += power.c
-romstage-y += soc.c
romstage-y += dmc_common.c
romstage-y += dmc_init_ddr3.c
+romstage-$(CONFIG_EARLY_CONSOLE) += soc.c
romstage-$(CONFIG_EARLY_CONSOLE) += uart.c
#ramstage-y += tzpc_init.c
diff --git a/src/cpu/samsung/s5p-common/Makefile.inc b/src/cpu/samsung/s5p-common/Makefile.inc
index 0f4200c..118dd47 100644
--- a/src/cpu/samsung/s5p-common/Makefile.inc
+++ b/src/cpu/samsung/s5p-common/Makefile.inc
@@ -1,8 +1,7 @@
-bootblock-y += pwm.c
bootblock-y += s5p_gpio.c
-bootblock-y += timer.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += pwm.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += timer.c
-romstage-y += cpu_info.c
romstage-y += pwm.c # needed by timer.c
romstage-y += s5p_gpio.c
romstage-y += timer.c
diff --git a/src/cpu/samsung/s5p-common/s5p_gpio.c b/src/cpu/samsung/s5p-common/s5p_gpio.c
index e91b9df..8daae59 100644
--- a/src/cpu/samsung/s5p-common/s5p_gpio.c
+++ b/src/cpu/samsung/s5p-common/s5p_gpio.c
@@ -414,6 +414,12 @@ int gpio_set_value(unsigned gpio, int value)
*/
#define GPIO_DELAY_US 5
+#ifndef __BOOT_BLOCK__
+/*
+ * FIXME(dhendrix): These functions use udelay, which has dependencies on
+ * pwm code and timer code. These aren't necessary for the bootblock and
+ * bloat the image significantly.
+ */
int gpio_read_mvl3(unsigned gpio)
{
int high, low;
@@ -476,6 +482,7 @@ int gpio_decode_number(unsigned gpio_list[], int count)
return result;
}
+#endif /* __BOOT_BLOCK__ */
static const char *get_cfg_name(int cfg)
{
David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2346
-gerrit
commit c4fc63dd8b73b1f619c79e81915a1309b84630e7
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 16:42:23 2013 -0800
exynos/snow: set SPI clock rate in romstage main
This moves the setting of SPI clock rate into romstage's main,
which allows us to eliminate a bunch of dependencies from the
bootblock (about 7KB worth).
Change-Id: I371499bb4af6a6aa838294bc56f9dbc21864957a
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/cpu/samsung/exynos5-common/spi.c | 1 -
src/mainboard/google/snow/romstage.c | 4 ++++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/cpu/samsung/exynos5-common/spi.c b/src/cpu/samsung/exynos5-common/spi.c
index 90b74c0..0e5d5e5 100644
--- a/src/cpu/samsung/exynos5-common/spi.c
+++ b/src/cpu/samsung/exynos5-common/spi.c
@@ -83,7 +83,6 @@ static void exynos_spi_rx_tx(struct exynos_spi *regs, int todo,
int exynos_spi_open(struct exynos_spi *regs)
{
- clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */
/* set the spi1 GPIO */
// TODO Some of these should be done in board's bootblock file.
diff --git a/src/mainboard/google/snow/romstage.c b/src/mainboard/google/snow/romstage.c
index c0bb6f4..719337b 100644
--- a/src/mainboard/google/snow/romstage.c
+++ b/src/mainboard/google/snow/romstage.c
@@ -24,8 +24,10 @@
#include <cbfs.h>
#include <common.h>
+#include <cpu/samsung/exynos5250/clk.h>
#include <cpu/samsung/exynos5250/dmc.h>
#include <cpu/samsung/exynos5250/setup.h>
+#include <cpu/samsung/exynos5250/periph.h>
#include <cpu/samsung/exynos5250/clock_init.h>
#include <console/console.h>
@@ -53,6 +55,8 @@ void main(void)
int ret;
void *entry;
+ clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */
+
/* Clock must be initialized before console_init, otherwise you may need
* to re-initialize serial console drivers again. */
mem = get_mem_timings();
David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2322
-gerrit
commit 17591994497e05b1a370e2b10c2566fb7959c77a
Author: Hung-Te Lin <hungte(a)chromium.org>
Date: Fri Feb 8 13:49:10 2013 +0800
armv7/snow: Remove unused modules in bootblock and romstage.
For Exynos/snow, cpu_info and power modules and also some parts of
the GPIO API (which require timer and pwm modules) are not used in the
current bootblock. Clock init only needs to be used if early console
is enabled.
Now our bootblock is 22420 bytes with early serial console and 11192
bytes without. Those include the 8KB BL1 region.
Change-Id: I9c958dafb9cf522df0dcfbef373ce741aa162544
Signed-off-by: Hung-Te Lin <hungte(a)chromium.org>
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/cpu/samsung/exynos5250/Makefile.inc | 17 +++++++----------
src/cpu/samsung/s5p-common/Makefile.inc | 5 ++---
src/cpu/samsung/s5p-common/s5p_gpio.c | 7 +++++++
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/cpu/samsung/exynos5250/Makefile.inc b/src/cpu/samsung/exynos5250/Makefile.inc
index 13baa7e..941feb9 100644
--- a/src/cpu/samsung/exynos5250/Makefile.inc
+++ b/src/cpu/samsung/exynos5250/Makefile.inc
@@ -3,23 +3,20 @@
# image outside of CBFS
#INTERMEDIATE += exynos5250_add_bl1
-# Clock init is done in bootblock to support UART output for
-# debugging. We may add a Kconfig option to disable clock init
-# in the bootblock and try moving it entirely into romstage.
-bootblock-y += clock_init.c
-bootblock-y += clock.c
-bootblock-y += pinmux.c
-bootblock-y += soc.c
+# Clock is required for starting SPI to load romstage file from CBFS.
+bootblock-$(CONFIG_EARLY_CONSOLE) += clock_init.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += clock.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += pinmux.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += soc.c
bootblock-$(CONFIG_EARLY_CONSOLE) += uart.c
romstage-y += clock.c
romstage-y += clock_init.c
+romstage-y += pinmux.c # required by s3c24x0_i2c (s5p-common) and uart.
romstage-y += exynos_cache.c
-romstage-y += pinmux.c
-romstage-y += power.c
-romstage-y += soc.c
romstage-y += dmc_common.c
romstage-y += dmc_init_ddr3.c
+romstage-$(CONFIG_EARLY_CONSOLE) += soc.c
romstage-$(CONFIG_EARLY_CONSOLE) += uart.c
#ramstage-y += tzpc_init.c
diff --git a/src/cpu/samsung/s5p-common/Makefile.inc b/src/cpu/samsung/s5p-common/Makefile.inc
index 0f4200c..118dd47 100644
--- a/src/cpu/samsung/s5p-common/Makefile.inc
+++ b/src/cpu/samsung/s5p-common/Makefile.inc
@@ -1,8 +1,7 @@
-bootblock-y += pwm.c
bootblock-y += s5p_gpio.c
-bootblock-y += timer.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += pwm.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += timer.c
-romstage-y += cpu_info.c
romstage-y += pwm.c # needed by timer.c
romstage-y += s5p_gpio.c
romstage-y += timer.c
diff --git a/src/cpu/samsung/s5p-common/s5p_gpio.c b/src/cpu/samsung/s5p-common/s5p_gpio.c
index e91b9df..8daae59 100644
--- a/src/cpu/samsung/s5p-common/s5p_gpio.c
+++ b/src/cpu/samsung/s5p-common/s5p_gpio.c
@@ -414,6 +414,12 @@ int gpio_set_value(unsigned gpio, int value)
*/
#define GPIO_DELAY_US 5
+#ifndef __BOOT_BLOCK__
+/*
+ * FIXME(dhendrix): These functions use udelay, which has dependencies on
+ * pwm code and timer code. These aren't necessary for the bootblock and
+ * bloat the image significantly.
+ */
int gpio_read_mvl3(unsigned gpio)
{
int high, low;
@@ -476,6 +482,7 @@ int gpio_decode_number(unsigned gpio_list[], int count)
return result;
}
+#endif /* __BOOT_BLOCK__ */
static const char *get_cfg_name(int cfg)
{
the following patch was just integrated into master:
commit e50e3434709f1f37359eb3df25aded61fca76850
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 14:58:45 2013 -0800
armv7/exynos5250: place .id between .start and bootblock main
This places the .id section toward the lower region of the coreboot
image, before the bootblock. It's easier for humans to find by dumping
the image and it also eliminates ID_SECTION_OFFSET which is currently
the upper bound on our image size.
Change-Id: I7d737b901dac659ddf9aa437cee5dc32f1080546
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2345
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
Build-Tested: build bot (Jenkins) at Sun Feb 10 01:04:33 2013, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Sun Feb 10 01:28:53 2013, giving +2
See http://review.coreboot.org/2345 for details.
-gerrit
the following patch was just integrated into master:
commit f5a302378aa062916b5838a81c26567b59f93a8f
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 14:53:47 2013 -0800
armv7: make bootblock linker script more explicit
This adds a .bl1 and .start symbol that is placed at the beginning
of the .rom section.
The goal is to move the .id section in between the reset vector and
bootblock_main.
Change-Id: Ie732ce656d697c059cc0fa40c844b39f53fc214c
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
Reviewed-on: http://review.coreboot.org/2344
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
Build-Tested: build bot (Jenkins) at Sun Feb 10 00:55:36 2013, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Sun Feb 10 01:28:06 2013, giving +2
See http://review.coreboot.org/2344 for details.
-gerrit
David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2345
-gerrit
commit a3cab3dd5e4a140b623147174e9df10678a2783a
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 14:58:45 2013 -0800
armv7/exynos5250: place .id between .start and bootblock main
This places the .id section toward the lower region of the coreboot
image, before the bootblock. It's easier for humans to find by dumping
the image and it also eliminates ID_SECTION_OFFSET which is currently
the upper bound on our image size.
Change-Id: I7d737b901dac659ddf9aa437cee5dc32f1080546
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/arch/armv7/Makefile.inc | 1 -
src/arch/armv7/bootblock.lds | 1 +
src/arch/armv7/lib/id.inc | 6 +++---
src/arch/armv7/lib/id.lds | 6 ------
src/cpu/samsung/exynos5250/Kconfig | 6 ------
5 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/src/arch/armv7/Makefile.inc b/src/arch/armv7/Makefile.inc
index 2c5d8c6..6d4a364 100644
--- a/src/arch/armv7/Makefile.inc
+++ b/src/arch/armv7/Makefile.inc
@@ -202,7 +202,6 @@ $(obj)/coreboot.pre: $(objcbfs)/romstage_xip.elf $(obj)/coreboot.pre1 $(CBFSTOOL
# Build the bootblock
bootblock_lds = $(src)/arch/armv7/bootblock.lds
-bootblock_lds += $(src)/arch/armv7/lib/id.lds
bootblock_lds += $(chipset_bootblock_lds)
bootblock_inc += $(src)/arch/armv7/bootblock.inc
diff --git a/src/arch/armv7/bootblock.lds b/src/arch/armv7/bootblock.lds
index f45e6c0..48ba0ab 100644
--- a/src/arch/armv7/bootblock.lds
+++ b/src/arch/armv7/bootblock.lds
@@ -32,6 +32,7 @@ SECTIONS
_rom = .;
*(.bl1);
*(.start);
+ *(.id);
*(.text);
*(.text.*);
*(.rom.text);
diff --git a/src/arch/armv7/lib/id.inc b/src/arch/armv7/lib/id.inc
index 4da7024..ffe547d 100644
--- a/src/arch/armv7/lib/id.inc
+++ b/src/arch/armv7/lib/id.inc
@@ -8,9 +8,9 @@ vendor:
.asciz CONFIG_MAINBOARD_VENDOR
part:
.asciz CONFIG_MAINBOARD_PART_NUMBER
-.long __id_end + CONFIG_ID_SECTION_OFFSET - ver /* Reverse offset to the vendor id */
-.long __id_end + CONFIG_ID_SECTION_OFFSET - vendor /* Reverse offset to the vendor id */
-.long __id_end + CONFIG_ID_SECTION_OFFSET - part /* Reverse offset to the part number */
+.long __id_end - ver /* Reverse offset to the vendor id */
+.long __id_end - vendor /* Reverse offset to the vendor id */
+.long __id_end - part /* Reverse offset to the part number */
.long CONFIG_ROM_SIZE /* Size of this romimage */
.globl __id_end
diff --git a/src/arch/armv7/lib/id.lds b/src/arch/armv7/lib/id.lds
deleted file mode 100644
index 9d50479..0000000
--- a/src/arch/armv7/lib/id.lds
+++ /dev/null
@@ -1,6 +0,0 @@
-SECTIONS {
- . = CONFIG_ID_SECTION_BASE;
- .id (.): {
- *(.id)
- }
-}
diff --git a/src/cpu/samsung/exynos5250/Kconfig b/src/cpu/samsung/exynos5250/Kconfig
index 357817e..f62195a 100644
--- a/src/cpu/samsung/exynos5250/Kconfig
+++ b/src/cpu/samsung/exynos5250/Kconfig
@@ -22,8 +22,6 @@ config BL1_SIZE_KB
#
# 0x0202_0000: vendor-provided BL1
# 0x0202_3400: bootblock, assume up to 32KB in size
-# 0x0202_7000: ID section, assume 2KB in size. This will be
-# within the bootblock section.
# 0x0203_0000: romstage, assume up to 128KB in size.
# 0x0207_7f00: stack pointer
@@ -40,10 +38,6 @@ config BOOTBLOCK_BASE
hex
default 0x02023400
-config ID_SECTION_BASE
- hex
- default 0x02027e00
-
config ROMSTAGE_BASE
hex
default 0x02030000
David Hendricks (dhendrix(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2344
-gerrit
commit d18b72c153ab7788f5ae36f58b2a6c2d2c1ae2b1
Author: David Hendricks <dhendrix(a)chromium.org>
Date: Sat Feb 9 14:53:47 2013 -0800
armv7: make bootblock linker script more explicit
This adds a .bl1 and .start symbol that is placed at the beginning
of the .rom section.
The goal is to move the .id section in between the reset vector and
bootblock_main.
Change-Id: Ie732ce656d697c059cc0fa40c844b39f53fc214c
Signed-off-by: David Hendricks <dhendrix(a)chromium.org>
---
src/arch/armv7/bootblock.inc | 2 ++
src/arch/armv7/bootblock.lds | 2 ++
2 files changed, 4 insertions(+)
diff --git a/src/arch/armv7/bootblock.inc b/src/arch/armv7/bootblock.inc
index 25cc8c6..efe3d67 100644
--- a/src/arch/armv7/bootblock.inc
+++ b/src/arch/armv7/bootblock.inc
@@ -31,6 +31,7 @@
#include <system.h>
+.section ".bl1", "a", %progbits
_bl1:
/* For now we have to live with a first stage boot loader
* on ARM, which is 8KB in size and it is prepended to the
@@ -38,6 +39,7 @@ _bl1:
*/
.skip (CONFIG_BL1_SIZE_KB * 1024)
+.section ".start", "a", %progbits
.globl _start
_start: b reset
.balignl 16,0xdeadbeef
diff --git a/src/arch/armv7/bootblock.lds b/src/arch/armv7/bootblock.lds
index 9482cef..f45e6c0 100644
--- a/src/arch/armv7/bootblock.lds
+++ b/src/arch/armv7/bootblock.lds
@@ -30,6 +30,8 @@ SECTIONS
/* This section might be better named .setup */
.rom ROMLOC : {
_rom = .;
+ *(.bl1);
+ *(.start);
*(.text);
*(.text.*);
*(.rom.text);