* [U-Boot] [PATCH v1 1/8] avr32: use dlmalloc for DMA buffers
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
@ 2015-01-28 0:15 ` Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 2/8] avr32: rename cpu_init() -> arch_cpu_init() Andreas Bießmann
` (6 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:15 UTC (permalink / raw)
To: u-boot
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1: None
arch/avr32/include/asm/dma-mapping.h | 7 ++++-
arch/avr32/lib/board.c | 51 ----------------------------------
include/configs/atngw100.h | 1 -
include/configs/atngw100mkii.h | 1 -
include/configs/atstk1002.h | 1 -
include/configs/atstk1006.h | 1 -
include/configs/favr-32-ezkit.h | 1 -
include/configs/grasshopper.h | 1 -
include/configs/hammerhead.h | 1 -
include/configs/mimc200.h | 1 -
10 files changed, 6 insertions(+), 60 deletions(-)
diff --git a/arch/avr32/include/asm/dma-mapping.h b/arch/avr32/include/asm/dma-mapping.h
index dbdd2fe..1cde827 100644
--- a/arch/avr32/include/asm/dma-mapping.h
+++ b/arch/avr32/include/asm/dma-mapping.h
@@ -14,7 +14,12 @@ enum dma_data_direction {
DMA_TO_DEVICE = 1,
DMA_FROM_DEVICE = 2,
};
-extern void *dma_alloc_coherent(size_t len, unsigned long *handle);
+
+static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
+{
+ *handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
+ return (void *)*handle;
+}
static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
enum dma_data_direction dir)
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index bf0997f..7d13ac5 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -45,50 +45,6 @@ int cpu_mmc_init(bd_t *bd)
return atmel_mci_init((void *)ATMEL_BASE_MMCI);
}
-#ifdef CONFIG_SYS_DMA_ALLOC_LEN
-#include <asm/arch/cacheflush.h>
-#include <asm/io.h>
-
-static unsigned long dma_alloc_start;
-static unsigned long dma_alloc_end;
-static unsigned long dma_alloc_brk;
-
-static void dma_alloc_init(void)
-{
- unsigned long monitor_addr;
-
- monitor_addr = CONFIG_SYS_MONITOR_BASE + gd->reloc_off;
- dma_alloc_end = monitor_addr - CONFIG_SYS_MALLOC_LEN;
- dma_alloc_start = dma_alloc_end - CONFIG_SYS_DMA_ALLOC_LEN;
- dma_alloc_brk = dma_alloc_start;
-
- printf("DMA: Using memory from 0x%08lx to 0x%08lx\n",
- dma_alloc_start, dma_alloc_end);
-
- invalidate_dcache_range((unsigned long)cached(dma_alloc_start),
- dma_alloc_end);
-}
-
-void *dma_alloc_coherent(size_t len, unsigned long *handle)
-{
- unsigned long paddr = dma_alloc_brk;
-
- if (dma_alloc_brk + len > dma_alloc_end)
- return NULL;
-
- dma_alloc_brk = ((paddr + len + CONFIG_SYS_DCACHE_LINESZ - 1)
- & ~(CONFIG_SYS_DCACHE_LINESZ - 1));
-
- *handle = paddr;
- return uncached(paddr);
-}
-#else
-static inline void dma_alloc_init(void)
-{
-
-}
-#endif
-
static int init_baudrate(void)
{
gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE);
@@ -180,12 +136,6 @@ void board_init_f(ulong board_type)
/* Reserve memory for malloc() */
addr -= CONFIG_SYS_MALLOC_LEN;
-#ifdef CONFIG_SYS_DMA_ALLOC_LEN
- /* Reserve DMA memory (must be cache aligned) */
- addr &= ~(CONFIG_SYS_DCACHE_LINESZ - 1);
- addr -= CONFIG_SYS_DMA_ALLOC_LEN;
-#endif
-
#ifdef CONFIG_LCD
#ifdef CONFIG_FB_ADDR
printf("LCD: Frame buffer allocated at preset 0x%08x\n",
@@ -264,7 +214,6 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
/* The malloc area is right below the monitor image in RAM */
mem_malloc_init(CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
CONFIG_SYS_MALLOC_LEN, CONFIG_SYS_MALLOC_LEN);
- dma_alloc_init();
enable_interrupts();
diff --git a/include/configs/atngw100.h b/include/configs/atngw100.h
index 9c81e31..540e86a 100644
--- a/include/configs/atngw100.h
+++ b/include/configs/atngw100.h
@@ -143,7 +143,6 @@
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/atngw100mkii.h b/include/configs/atngw100mkii.h
index 7b4f9cf..35eae76 100644
--- a/include/configs/atngw100mkii.h
+++ b/include/configs/atngw100mkii.h
@@ -164,7 +164,6 @@
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/atstk1002.h b/include/configs/atstk1002.h
index 8f3fd0b..9e58238 100644
--- a/include/configs/atstk1002.h
+++ b/include/configs/atstk1002.h
@@ -158,7 +158,6 @@
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/atstk1006.h b/include/configs/atstk1006.h
index bbe0aea..25090a6 100644
--- a/include/configs/atstk1006.h
+++ b/include/configs/atstk1006.h
@@ -159,7 +159,6 @@
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/favr-32-ezkit.h b/include/configs/favr-32-ezkit.h
index 338d3dc..75bff4c 100644
--- a/include/configs/favr-32-ezkit.h
+++ b/include/configs/favr-32-ezkit.h
@@ -162,7 +162,6 @@
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/grasshopper.h b/include/configs/grasshopper.h
index 73534ad..83f0ed2 100644
--- a/include/configs/grasshopper.h
+++ b/include/configs/grasshopper.h
@@ -151,7 +151,6 @@
CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/hammerhead.h b/include/configs/hammerhead.h
index 4f0603a..0bc42f1 100644
--- a/include/configs/hammerhead.h
+++ b/include/configs/hammerhead.h
@@ -137,7 +137,6 @@
#define CONFIG_SYS_MALLOC_LEN (256*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x00400000)
diff --git a/include/configs/mimc200.h b/include/configs/mimc200.h
index fc7ecfa..2fd3add 100644
--- a/include/configs/mimc200.h
+++ b/include/configs/mimc200.h
@@ -157,7 +157,6 @@
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INTRAM_BASE + CONFIG_SYS_INTRAM_SIZE)
#define CONFIG_SYS_MALLOC_LEN (1024*1024)
-#define CONFIG_SYS_DMA_ALLOC_LEN (16384)
/* Allow 4MB for the kernel run-time image */
#define CONFIG_SYS_LOAD_ADDR (EBI_SDRAM_BASE + 0x00400000)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 2/8] avr32: rename cpu_init() -> arch_cpu_init()
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
2015-01-28 0:15 ` [U-Boot] [PATCH v1 1/8] avr32: use dlmalloc for DMA buffers Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 3/8] avr32: factor out cpu_mmc_init() Andreas Bießmann
` (5 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1: None
arch/avr32/cpu/cpu.c | 2 +-
arch/avr32/include/asm/u-boot.h | 2 ++
arch/avr32/lib/board.c | 2 +-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/avr32/cpu/cpu.c b/arch/avr32/cpu/cpu.c
index cef630e..cd226a6 100644
--- a/arch/avr32/cpu/cpu.c
+++ b/arch/avr32/cpu/cpu.c
@@ -27,7 +27,7 @@
DECLARE_GLOBAL_DATA_PTR;
-int cpu_init(void)
+int arch_cpu_init(void)
{
extern void _evba(void);
diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h
index 6aef808..2387f8a 100644
--- a/arch/avr32/include/asm/u-boot.h
+++ b/arch/avr32/include/asm/u-boot.h
@@ -25,4 +25,6 @@ typedef struct bd_info {
/* For image.h:image_check_target_arch() */
#define IH_ARCH_DEFAULT IH_ARCH_AVR32
+int arch_cpu_init(void);
+
#endif /* __ASM_U_BOOT_H__ */
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 7d13ac5..95f9526 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -98,7 +98,7 @@ void board_init_f(ulong board_type)
/* Perform initialization sequence */
board_early_init_f();
- cpu_init();
+ arch_cpu_init();
board_postclk_init();
env_init();
init_baudrate();
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 3/8] avr32: factor out cpu_mmc_init()
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
2015-01-28 0:15 ` [U-Boot] [PATCH v1 1/8] avr32: use dlmalloc for DMA buffers Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 2/8] avr32: rename cpu_init() -> arch_cpu_init() Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 4/8] avr32: rename mmu.h definitions Andreas Bießmann
` (4 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
cpu_mmc_init() is required by the init sequence to have a working MMC interface
on avr32. This will not be included in the binary if we omit the avr32 board.c
when building the generic board.
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1:
- new since RFC
arch/avr32/cpu/Makefile | 1 +
arch/avr32/cpu/mmc.c | 16 ++++++++++++++++
arch/avr32/lib/board.c | 8 --------
3 files changed, 17 insertions(+), 8 deletions(-)
create mode 100644 arch/avr32/cpu/mmc.c
diff --git a/arch/avr32/cpu/Makefile b/arch/avr32/cpu/Makefile
index 00cede3..e111db3 100644
--- a/arch/avr32/cpu/Makefile
+++ b/arch/avr32/cpu/Makefile
@@ -16,5 +16,6 @@ obj-y += cache.o
obj-y += interrupts.o
obj-$(CONFIG_PORTMUX_PIO) += portmux-pio.o
obj-$(CONFIG_PORTMUX_GPIO) += portmux-gpio.o
+obj-y += mmc.o
obj-$(if $(filter at32ap700x,$(SOC)),y) += at32ap700x/
diff --git a/arch/avr32/cpu/mmc.c b/arch/avr32/cpu/mmc.c
new file mode 100644
index 0000000..b7213e4
--- /dev/null
+++ b/arch/avr32/cpu/mmc.c
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2004-2006 Atmel Corporation
+ * Copyright (C) 2015 Andreas Bie?mann <andreas.devel@googlmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+#include <common.h>
+#include <atmel_mci.h>
+#include <asm/arch/hardware.h>
+
+/* provide cpu_mmc_init, to overwrite provide board_mmc_init */
+int cpu_mmc_init(bd_t *bd)
+{
+ /* This calls the atmel_mci_init in gen_atmel_mci.c */
+ return atmel_mci_init((void *)ATMEL_BASE_MMCI);
+}
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 95f9526..e86530f 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -9,7 +9,6 @@
#include <stdio_dev.h>
#include <version.h>
#include <net.h>
-#include <atmel_mci.h>
#ifdef CONFIG_BITBANGMII
#include <miiphy.h>
@@ -38,13 +37,6 @@ static int __do_nothing(void)
int board_postclk_init(void) __attribute__((weak, alias("__do_nothing")));
int board_early_init_r(void) __attribute__((weak, alias("__do_nothing")));
-/* provide cpu_mmc_init, to overwrite provide board_mmc_init */
-int cpu_mmc_init(bd_t *bd)
-{
- /* This calls the atmel_mci_init in gen_atmel_mci.c */
- return atmel_mci_init((void *)ATMEL_BASE_MMCI);
-}
-
static int init_baudrate(void)
{
gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 4/8] avr32: rename mmu.h definitions
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
` (2 preceding siblings ...)
2015-01-28 0:16 ` [U-Boot] [PATCH v1 3/8] avr32: factor out cpu_mmc_init() Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 5/8] common/board_r: manual relocation for cmd table Andreas Bießmann
` (3 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
Prefix mmu.h PAGE_xxx definitions with MMU_ in order to prevent a naming
conflict with other definitions.
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1:
- new since RFC
arch/avr32/cpu/at32ap700x/mmu.c | 8 ++++----
arch/avr32/include/asm/arch-at32ap700x/mmu.h | 6 +++---
board/atmel/atngw100/atngw100.c | 12 ++++++------
board/atmel/atngw100mkii/atngw100mkii.c | 18 +++++++++---------
board/atmel/atstk1000/atstk1000.c | 12 ++++++------
board/earthlcd/favr-32-ezkit/favr-32-ezkit.c | 12 ++++++------
board/in-circuit/grasshopper/grasshopper.c | 12 ++++++------
board/mimc/mimc200/mimc200.c | 18 +++++++++---------
board/miromico/hammerhead/hammerhead.c | 12 ++++++------
9 files changed, 55 insertions(+), 55 deletions(-)
diff --git a/arch/avr32/cpu/at32ap700x/mmu.c b/arch/avr32/cpu/at32ap700x/mmu.c
index 0e28b21..f5e62f2 100644
--- a/arch/avr32/cpu/at32ap700x/mmu.c
+++ b/arch/avr32/cpu/at32ap700x/mmu.c
@@ -7,7 +7,7 @@ void mmu_init_r(unsigned long dest_addr)
uintptr_t vmr_table_addr;
/* Round monitor address down to the nearest page boundary */
- dest_addr &= PAGE_ADDR_MASK;
+ dest_addr &= MMU_PAGE_ADDR_MASK;
/* Initialize TLB entry 0 to cover the monitor, and lock it */
sysreg_write(TLBEHI, dest_addr | SYSREG_BIT(TLBEHI_V));
@@ -36,7 +36,7 @@ int mmu_handle_tlb_miss(void)
unsigned int fault_pgno;
int first, last;
- fault_pgno = sysreg_read(TLBEAR) >> PAGE_SHIFT;
+ fault_pgno = sysreg_read(TLBEAR) >> MMU_PAGE_SHIFT;
vmr_table = (const struct mmu_vm_range *)sysreg_read(PTBR);
/* Do a binary search through the VM ranges */
@@ -60,8 +60,8 @@ int mmu_handle_tlb_miss(void)
/* Got it; let's slam it into the TLB */
uint32_t tlbelo;
- tlbelo = vmr->phys & ~PAGE_ADDR_MASK;
- tlbelo |= fault_pgno << PAGE_SHIFT;
+ tlbelo = vmr->phys & ~MMU_PAGE_ADDR_MASK;
+ tlbelo |= fault_pgno << MMU_PAGE_SHIFT;
sysreg_write(TLBELO, tlbelo);
__builtin_tlbw();
diff --git a/arch/avr32/include/asm/arch-at32ap700x/mmu.h b/arch/avr32/include/asm/arch-at32ap700x/mmu.h
index fcd9a05..4736312 100644
--- a/arch/avr32/include/asm/arch-at32ap700x/mmu.h
+++ b/arch/avr32/include/asm/arch-at32ap700x/mmu.h
@@ -13,9 +13,9 @@
#include <asm/sysreg.h>
-#define PAGE_SHIFT 20
-#define PAGE_SIZE (1UL << PAGE_SHIFT)
-#define PAGE_ADDR_MASK (~(PAGE_SIZE - 1))
+#define MMU_PAGE_SHIFT 20
+#define MMU_PAGE_SIZE (1UL << MMU_PAGE_SHIFT)
+#define MMU_PAGE_ADDR_MASK (~(MMU_PAGE_SIZE - 1))
#define MMU_VMR_CACHE_NONE \
(SYSREG_BF(AP, 3) | SYSREG_BF(SZ, 3) | SYSREG_BIT(TLBELO_D))
diff --git a/board/atmel/atngw100/atngw100.c b/board/atmel/atngw100/atngw100.c
index 03d767a..ed09c8c 100644
--- a/board/atmel/atngw100/atngw100.c
+++ b/board/atmel/atngw100/atngw100.c
@@ -18,14 +18,14 @@ DECLARE_GLOBAL_DATA_PTR;
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
diff --git a/board/atmel/atngw100mkii/atngw100mkii.c b/board/atmel/atngw100mkii/atngw100mkii.c
index 72d19e4..912ea10 100644
--- a/board/atmel/atngw100mkii/atngw100mkii.c
+++ b/board/atmel/atngw100mkii/atngw100mkii.c
@@ -23,21 +23,21 @@ DECLARE_GLOBAL_DATA_PTR;
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
/* Atmel AT49BV640D 8 MiB x16 NOR flash on NCS0 */
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
/* Micron MT29F2G16AAD 256 MiB x16 NAND flash on NCS3 */
- .virt_pgno = EBI_SRAM_CS3_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SRAM_CS3_SIZE >> PAGE_SHIFT,
- .phys = (EBI_SRAM_CS3_BASE >> PAGE_SHIFT)
+ .virt_pgno = EBI_SRAM_CS3_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SRAM_CS3_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (EBI_SRAM_CS3_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
/* 2x16-bit ISSI IS42S16320B 64 MiB SDRAM (128 MiB total) */
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
diff --git a/board/atmel/atstk1000/atstk1000.c b/board/atmel/atstk1000/atstk1000.c
index 4b6b90f..f354694 100644
--- a/board/atmel/atstk1000/atstk1000.c
+++ b/board/atmel/atstk1000/atstk1000.c
@@ -17,14 +17,14 @@ DECLARE_GLOBAL_DATA_PTR;
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
diff --git a/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c b/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
index a74547b..f9fde79 100644
--- a/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
+++ b/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
@@ -17,14 +17,14 @@ DECLARE_GLOBAL_DATA_PTR;
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
diff --git a/board/in-circuit/grasshopper/grasshopper.c b/board/in-circuit/grasshopper/grasshopper.c
index 340b713..2ac54db 100644
--- a/board/in-circuit/grasshopper/grasshopper.c
+++ b/board/in-circuit/grasshopper/grasshopper.c
@@ -18,14 +18,14 @@ DECLARE_GLOBAL_DATA_PTR;
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
diff --git a/board/mimc/mimc200/mimc200.c b/board/mimc/mimc200/mimc200.c
index 2ad53ec..186ac7d 100644
--- a/board/mimc/mimc200/mimc200.c
+++ b/board/mimc/mimc200/mimc200.c
@@ -20,19 +20,19 @@
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = EBI_SRAM_CS2_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SRAM_CS2_SIZE >> PAGE_SHIFT,
- .phys = (EBI_SRAM_CS2_BASE >> PAGE_SHIFT)
+ .virt_pgno = EBI_SRAM_CS2_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SRAM_CS2_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (EBI_SRAM_CS2_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
diff --git a/board/miromico/hammerhead/hammerhead.c b/board/miromico/hammerhead/hammerhead.c
index d82fee7..e9a9e4b 100644
--- a/board/miromico/hammerhead/hammerhead.c
+++ b/board/miromico/hammerhead/hammerhead.c
@@ -21,14 +21,14 @@ DECLARE_GLOBAL_DATA_PTR;
struct mmu_vm_range mmu_vmr_table[CONFIG_SYS_NR_VM_REGIONS] = {
{
- .virt_pgno = CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT,
- .nr_pages = CONFIG_SYS_FLASH_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_FLASH_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = CONFIG_SYS_FLASH_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_FLASH_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_NONE,
}, {
- .virt_pgno = CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT,
- .nr_pages = EBI_SDRAM_SIZE >> PAGE_SHIFT,
- .phys = (CONFIG_SYS_SDRAM_BASE >> PAGE_SHIFT)
+ .virt_pgno = CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT,
+ .nr_pages = EBI_SDRAM_SIZE >> MMU_PAGE_SHIFT,
+ .phys = (CONFIG_SYS_SDRAM_BASE >> MMU_PAGE_SHIFT)
| MMU_VMR_CACHE_WRBACK,
},
};
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 5/8] common/board_r: manual relocation for cmd table
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
` (3 preceding siblings ...)
2015-01-28 0:16 ` [U-Boot] [PATCH v1 4/8] avr32: rename mmu.h definitions Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 6/8] avr32: add generic board support Andreas Bießmann
` (2 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
This is required for architectures still need manual relocation like avr32, m68k
microblaze and maybe others.
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v1: None
common/board_r.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/common/board_r.c b/common/board_r.c
index a301cc2..e712902 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -294,6 +294,15 @@ static int initr_announce(void)
return 0;
}
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
+static int initr_manual_reloc_cmdtable(void)
+{
+ fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+ ll_entry_count(cmd_tbl_t, cmd));
+ return 0;
+}
+#endif
+
#if !defined(CONFIG_SYS_NO_FLASH)
static int initr_flash(void)
{
@@ -718,6 +727,9 @@ init_fnc_t init_sequence_r[] = {
initr_serial,
initr_announce,
INIT_FUNC_WATCHDOG_RESET
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
+ initr_manual_reloc_cmdtable,
+#endif
#ifdef CONFIG_PPC
initr_trap,
#endif
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 6/8] avr32: add generic board support
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
` (4 preceding siblings ...)
2015-01-28 0:16 ` [U-Boot] [PATCH v1 5/8] common/board_r: manual relocation for cmd table Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
2015-01-28 3:09 ` Simon Glass
2015-01-28 0:16 ` [U-Boot] [PATCH v1 7/8] grasshopper: enable generic board Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 8/8] atstk1002: " Andreas Bießmann
7 siblings, 1 reply; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1:
- add timer_init in board_r
- remove extern declaration of mmu_init_r()
arch/avr32/config.mk | 3 +++
arch/avr32/cpu/u-boot.lds | 2 ++
arch/avr32/include/asm/config.h | 1 +
arch/avr32/include/asm/u-boot.h | 7 +++++++
arch/avr32/lib/Makefile | 2 ++
arch/avr32/lib/interrupts.c | 5 +++++
common/board_f.c | 13 ++++++++++---
common/board_r.c | 26 +++++++++++++++++++++++---
include/asm-generic/u-boot.h | 4 ++++
9 files changed, 57 insertions(+), 6 deletions(-)
diff --git a/arch/avr32/config.mk b/arch/avr32/config.mk
index 469185e..8252f59 100644
--- a/arch/avr32/config.mk
+++ b/arch/avr32/config.mk
@@ -9,6 +9,9 @@ ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := avr32-linux-
endif
+# avr32 has generic board support
+__HAVE_ARCH_GENERIC_BOARD := y
+
CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000
PLATFORM_RELFLAGS += -ffixed-r5 -fPIC -mno-init-got -mrelax
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index cb29a22..b0180e3 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -48,9 +48,11 @@ SECTIONS
_edata = .;
.bss (NOLOAD) : {
+ __bss_start = .;
*(.bss)
*(.bss.*)
}
. = ALIGN(8);
__bss_end = .;
+ __init_end = .;
}
diff --git a/arch/avr32/include/asm/config.h b/arch/avr32/include/asm/config.h
index 63056a4..529fe22 100644
--- a/arch/avr32/include/asm/config.h
+++ b/arch/avr32/include/asm/config.h
@@ -8,5 +8,6 @@
#define _ASM_CONFIG_H_
#define CONFIG_NEEDS_MANUAL_RELOC
+#define CONFIG_SYS_GENERIC_GLOBAL_DATA
#endif
diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h
index 2387f8a..0f7dddd 100644
--- a/arch/avr32/include/asm/u-boot.h
+++ b/arch/avr32/include/asm/u-boot.h
@@ -6,6 +6,11 @@
#ifndef __ASM_U_BOOT_H__
#define __ASM_U_BOOT_H__ 1
+#ifdef CONFIG_SYS_GENERIC_BOARD
+/* Use the generic board which requires a unified bd_info */
+#include <asm-generic/u-boot.h>
+#else
+
typedef struct bd_info {
unsigned char bi_phy_id[4];
unsigned long bi_board_number;
@@ -22,6 +27,8 @@ typedef struct bd_info {
#define bi_memstart bi_dram[0].start
#define bi_memsize bi_dram[0].size
+#endif
+
/* For image.h:image_check_target_arch() */
#define IH_ARCH_DEFAULT IH_ARCH_AVR32
diff --git a/arch/avr32/lib/Makefile b/arch/avr32/lib/Makefile
index bb45cbe..d5cb8b2 100644
--- a/arch/avr32/lib/Makefile
+++ b/arch/avr32/lib/Makefile
@@ -8,6 +8,8 @@
#
obj-y += memset.o
+ifndef CONFIG_SYS_GENERIC_BOARD
obj-y += board.o
+endif
obj-$(CONFIG_CMD_BOOTM) += bootm.o
obj-y += interrupts.o
diff --git a/arch/avr32/lib/interrupts.c b/arch/avr32/lib/interrupts.c
index bacb2d1..5f3a49e 100644
--- a/arch/avr32/lib/interrupts.c
+++ b/arch/avr32/lib/interrupts.c
@@ -7,6 +7,11 @@
#include <asm/sysreg.h>
+int interrupt_init(void)
+{
+ return 0;
+}
+
void enable_interrupts(void)
{
asm volatile("csrf %0" : : "n"(SYSREG_GM_OFFSET));
diff --git a/common/board_f.c b/common/board_f.c
index 215108b..1a735ae 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -174,7 +174,7 @@ static int announce_dram_init(void)
return 0;
}
-#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
+#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
static int init_func_ram(void)
{
#ifdef CONFIG_BOARD_TYPES
@@ -268,6 +268,8 @@ static int setup_mon_len(void)
gd->mon_len = (ulong)&_end - (ulong)_init;
#elif defined(CONFIG_BLACKFIN) || defined(CONFIG_NIOS2)
gd->mon_len = CONFIG_SYS_MONITOR_LEN;
+#elif defined(CONFIG_AVR32)
+ gd->mon_len = (ulong)&__bss_end - (ulong)&_text;
#else
/* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */
gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
@@ -581,7 +583,7 @@ static int reserve_stacks(void)
gd->irq_sp = gd->start_addr_sp;
# endif
#else
-# ifdef CONFIG_PPC
+# if defined(CONFIG_PPC) || defined(CONFIG_AVR32)
ulong *s;
# endif
@@ -611,6 +613,11 @@ static int reserve_stacks(void)
s = (ulong *) gd->start_addr_sp;
*s = 0; /* Terminate back chain */
*++s = 0; /* NULL return address */
+# elif defined(CONFIG_AVR32)
+ gd->arch.stack_end = gd->start_addr_sp;
+ s = (ulong *)gd->start_addr_sp;
+ *s = 0;
+ *--s = 0;
# endif /* Architecture specific code */
return 0;
@@ -912,7 +919,7 @@ static init_fnc_t init_sequence_f[] = {
#if defined(CONFIG_ARM) || defined(CONFIG_X86)
dram_init, /* configure available RAM banks */
#endif
-#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
+#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
init_func_ram,
#endif
#ifdef CONFIG_POST
diff --git a/common/board_r.c b/common/board_r.c
index e712902..3620438 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -55,6 +55,9 @@
#include <dm/root.h>
#include <linux/compiler.h>
#include <linux/err.h>
+#ifdef CONFIG_AVR32
+#include <asm/arch/mmu.h>
+#endif
DECLARE_GLOBAL_DATA_PTR;
@@ -459,6 +462,16 @@ static int initr_env(void)
return 0;
}
+#ifdef CONFIG_SYS_BOOTPARAMS_LEN
+static int initr_malloc_bootparams(void)
+{
+ gd->bd->bi_boot_params = (ulong)malloc(CONFIG_SYS_BOOTPARAMS_LEN);
+ if (!gd->bd->bi_boot_params)
+ puts("WARNING: Cannot allocate space for boot parameters\n");
+ return 0;
+}
+#endif
+
#ifdef CONFIG_SC3
/* TODO: with new initcalls, move this into the driver */
extern void sc3_read_eeprom(void);
@@ -502,7 +515,7 @@ static int show_model_r(void)
#endif
/* enable exceptions */
-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_AVR32)
static int initr_enable_interrupts(void)
{
enable_interrupts();
@@ -791,6 +804,9 @@ init_fnc_t init_sequence_r[] = {
initr_dataflash,
#endif
initr_env,
+#ifdef CONFIG_SYS_BOOTPARAMS_LEN
+ initr_malloc_bootparams,
+#endif
INIT_FUNC_WATCHDOG_RESET
initr_secondary_cpu,
#ifdef CONFIG_SC3
@@ -826,10 +842,10 @@ init_fnc_t init_sequence_r[] = {
initr_kgdb,
#endif
interrupt_init,
-#if defined(CONFIG_ARM)
+#if defined(CONFIG_ARM) || defined(CONFIG_AVR32)
initr_enable_interrupts,
#endif
-#ifdef CONFIG_X86
+#if defined(CONFIG_X86) || defined(CONFIG_AVR32)
timer_init, /* initialize timer */
#endif
#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
@@ -894,6 +910,10 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
int i;
#endif
+#ifdef CONFIG_AVR32
+ mmu_init_r(dest_addr);
+#endif
+
#if !defined(CONFIG_X86) && !defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
gd = new_gd;
#endif
diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h
index aef39d7..a63a87a 100644
--- a/include/asm-generic/u-boot.h
+++ b/include/asm-generic/u-boot.h
@@ -32,6 +32,10 @@ typedef struct bd_info {
unsigned long bi_flashoffset; /* reserved area for startup monitor */
unsigned long bi_sramstart; /* start of SRAM memory */
unsigned long bi_sramsize; /* size of SRAM memory */
+#ifdef CONFIG_AVR32
+ unsigned char bi_phy_id[4]; /* PHY address for ATAG_ETHERNET */
+ unsigned long bi_board_number;/* ATAG_BOARDINFO */
+#endif
#ifdef CONFIG_ARM
unsigned long bi_arm_freq; /* arm frequency */
unsigned long bi_dsp_freq; /* dsp core frequency */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 6/8] avr32: add generic board support
2015-01-28 0:16 ` [U-Boot] [PATCH v1 6/8] avr32: add generic board support Andreas Bießmann
@ 2015-01-28 3:09 ` Simon Glass
2015-01-28 10:04 ` Andreas Bießmann
0 siblings, 1 reply; 12+ messages in thread
From: Simon Glass @ 2015-01-28 3:09 UTC (permalink / raw)
To: u-boot
Hi,
On 27 January 2015 at 17:16, Andreas Bie?mann
<andreas.devel@googlemail.com> wrote:
> Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
> ---
>
> Changes in v1:
> - add timer_init in board_r
> - remove extern declaration of mmu_init_r()
>
> arch/avr32/config.mk | 3 +++
> arch/avr32/cpu/u-boot.lds | 2 ++
> arch/avr32/include/asm/config.h | 1 +
> arch/avr32/include/asm/u-boot.h | 7 +++++++
> arch/avr32/lib/Makefile | 2 ++
> arch/avr32/lib/interrupts.c | 5 +++++
> common/board_f.c | 13 ++++++++++---
> common/board_r.c | 26 +++++++++++++++++++++++---
> include/asm-generic/u-boot.h | 4 ++++
> 9 files changed, 57 insertions(+), 6 deletions(-)
>
> diff --git a/arch/avr32/config.mk b/arch/avr32/config.mk
> index 469185e..8252f59 100644
> --- a/arch/avr32/config.mk
> +++ b/arch/avr32/config.mk
> @@ -9,6 +9,9 @@ ifeq ($(CROSS_COMPILE),)
> CROSS_COMPILE := avr32-linux-
> endif
>
> +# avr32 has generic board support
> +__HAVE_ARCH_GENERIC_BOARD := y
> +
> CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000
>
> PLATFORM_RELFLAGS += -ffixed-r5 -fPIC -mno-init-got -mrelax
> diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
> index cb29a22..b0180e3 100644
> --- a/arch/avr32/cpu/u-boot.lds
> +++ b/arch/avr32/cpu/u-boot.lds
> @@ -48,9 +48,11 @@ SECTIONS
> _edata = .;
>
> .bss (NOLOAD) : {
> + __bss_start = .;
> *(.bss)
> *(.bss.*)
> }
> . = ALIGN(8);
> __bss_end = .;
> + __init_end = .;
> }
> diff --git a/arch/avr32/include/asm/config.h b/arch/avr32/include/asm/config.h
> index 63056a4..529fe22 100644
> --- a/arch/avr32/include/asm/config.h
> +++ b/arch/avr32/include/asm/config.h
> @@ -8,5 +8,6 @@
> #define _ASM_CONFIG_H_
>
> #define CONFIG_NEEDS_MANUAL_RELOC
> +#define CONFIG_SYS_GENERIC_GLOBAL_DATA
>
> #endif
> diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h
> index 2387f8a..0f7dddd 100644
> --- a/arch/avr32/include/asm/u-boot.h
> +++ b/arch/avr32/include/asm/u-boot.h
> @@ -6,6 +6,11 @@
> #ifndef __ASM_U_BOOT_H__
> #define __ASM_U_BOOT_H__ 1
>
> +#ifdef CONFIG_SYS_GENERIC_BOARD
> +/* Use the generic board which requires a unified bd_info */
> +#include <asm-generic/u-boot.h>
> +#else
> +
> typedef struct bd_info {
> unsigned char bi_phy_id[4];
> unsigned long bi_board_number;
> @@ -22,6 +27,8 @@ typedef struct bd_info {
> #define bi_memstart bi_dram[0].start
> #define bi_memsize bi_dram[0].size
>
> +#endif
> +
> /* For image.h:image_check_target_arch() */
> #define IH_ARCH_DEFAULT IH_ARCH_AVR32
>
> diff --git a/arch/avr32/lib/Makefile b/arch/avr32/lib/Makefile
> index bb45cbe..d5cb8b2 100644
> --- a/arch/avr32/lib/Makefile
> +++ b/arch/avr32/lib/Makefile
> @@ -8,6 +8,8 @@
> #
>
> obj-y += memset.o
> +ifndef CONFIG_SYS_GENERIC_BOARD
> obj-y += board.o
> +endif
> obj-$(CONFIG_CMD_BOOTM) += bootm.o
> obj-y += interrupts.o
> diff --git a/arch/avr32/lib/interrupts.c b/arch/avr32/lib/interrupts.c
> index bacb2d1..5f3a49e 100644
> --- a/arch/avr32/lib/interrupts.c
> +++ b/arch/avr32/lib/interrupts.c
> @@ -7,6 +7,11 @@
>
> #include <asm/sysreg.h>
>
> +int interrupt_init(void)
> +{
> + return 0;
> +}
> +
> void enable_interrupts(void)
> {
> asm volatile("csrf %0" : : "n"(SYSREG_GM_OFFSET));
> diff --git a/common/board_f.c b/common/board_f.c
> index 215108b..1a735ae 100644
> --- a/common/board_f.c
> +++ b/common/board_f.c
> @@ -174,7 +174,7 @@ static int announce_dram_init(void)
> return 0;
> }
>
> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
> static int init_func_ram(void)
> {
> #ifdef CONFIG_BOARD_TYPES
> @@ -268,6 +268,8 @@ static int setup_mon_len(void)
> gd->mon_len = (ulong)&_end - (ulong)_init;
> #elif defined(CONFIG_BLACKFIN) || defined(CONFIG_NIOS2)
> gd->mon_len = CONFIG_SYS_MONITOR_LEN;
> +#elif defined(CONFIG_AVR32)
> + gd->mon_len = (ulong)&__bss_end - (ulong)&_text;
Would we be able to unify the symbols here rather than having a
special case for AVR32?
> #else
> /* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */
> gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
> @@ -581,7 +583,7 @@ static int reserve_stacks(void)
> gd->irq_sp = gd->start_addr_sp;
> # endif
> #else
> -# ifdef CONFIG_PPC
> +# if defined(CONFIG_PPC) || defined(CONFIG_AVR32)
> ulong *s;
> # endif
>
> @@ -611,6 +613,11 @@ static int reserve_stacks(void)
> s = (ulong *) gd->start_addr_sp;
> *s = 0; /* Terminate back chain */
> *++s = 0; /* NULL return address */
> +# elif defined(CONFIG_AVR32)
> + gd->arch.stack_end = gd->start_addr_sp;
> + s = (ulong *)gd->start_addr_sp;
> + *s = 0;
> + *--s = 0;
Can we create an arch_reserve_stacks() function to handle this, and
put it in the AVR32 code?
> # endif /* Architecture specific code */
>
> return 0;
> @@ -912,7 +919,7 @@ static init_fnc_t init_sequence_f[] = {
> #if defined(CONFIG_ARM) || defined(CONFIG_X86)
> dram_init, /* configure available RAM banks */
> #endif
> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
> init_func_ram,
Can you use dram_init() instead?
> #endif
> #ifdef CONFIG_POST
> diff --git a/common/board_r.c b/common/board_r.c
> index e712902..3620438 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -55,6 +55,9 @@
> #include <dm/root.h>
> #include <linux/compiler.h>
> #include <linux/err.h>
> +#ifdef CONFIG_AVR32
> +#include <asm/arch/mmu.h>
> +#endif
What needs this? Let's move it into AVR32 code.
>
> DECLARE_GLOBAL_DATA_PTR;
>
> @@ -459,6 +462,16 @@ static int initr_env(void)
> return 0;
> }
>
> +#ifdef CONFIG_SYS_BOOTPARAMS_LEN
> +static int initr_malloc_bootparams(void)
> +{
> + gd->bd->bi_boot_params = (ulong)malloc(CONFIG_SYS_BOOTPARAMS_LEN);
> + if (!gd->bd->bi_boot_params)
> + puts("WARNING: Cannot allocate space for boot parameters\n");
> + return 0;
> +}
Shouldn't this be an error? If so:
return -ENOMEM
> +#endif
> +
> #ifdef CONFIG_SC3
> /* TODO: with new initcalls, move this into the driver */
> extern void sc3_read_eeprom(void);
> @@ -502,7 +515,7 @@ static int show_model_r(void)
> #endif
>
> /* enable exceptions */
> -#ifdef CONFIG_ARM
> +#if defined(CONFIG_ARM) || defined(CONFIG_AVR32)
> static int initr_enable_interrupts(void)
> {
> enable_interrupts();
> @@ -791,6 +804,9 @@ init_fnc_t init_sequence_r[] = {
> initr_dataflash,
> #endif
> initr_env,
> +#ifdef CONFIG_SYS_BOOTPARAMS_LEN
> + initr_malloc_bootparams,
> +#endif
> INIT_FUNC_WATCHDOG_RESET
> initr_secondary_cpu,
> #ifdef CONFIG_SC3
> @@ -826,10 +842,10 @@ init_fnc_t init_sequence_r[] = {
> initr_kgdb,
> #endif
> interrupt_init,
> -#if defined(CONFIG_ARM)
> +#if defined(CONFIG_ARM) || defined(CONFIG_AVR32)
> initr_enable_interrupts,
> #endif
> -#ifdef CONFIG_X86
> +#if defined(CONFIG_X86) || defined(CONFIG_AVR32)
> timer_init, /* initialize timer */
> #endif
> #if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
> @@ -894,6 +910,10 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
> int i;
> #endif
>
> +#ifdef CONFIG_AVR32
> + mmu_init_r(dest_addr);
> +#endif
What does this do? It feels like it shold perhaps happen in the init
sequence. See x86 which has a similar requirement, or at least I think
it is similar.
The objective ultimately is to remove all #ifdefs from board_f/r.c.
> +
> #if !defined(CONFIG_X86) && !defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
> gd = new_gd;
> #endif
> diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h
> index aef39d7..a63a87a 100644
> --- a/include/asm-generic/u-boot.h
> +++ b/include/asm-generic/u-boot.h
> @@ -32,6 +32,10 @@ typedef struct bd_info {
> unsigned long bi_flashoffset; /* reserved area for startup monitor */
> unsigned long bi_sramstart; /* start of SRAM memory */
> unsigned long bi_sramsize; /* size of SRAM memory */
> +#ifdef CONFIG_AVR32
> + unsigned char bi_phy_id[4]; /* PHY address for ATAG_ETHERNET */
> + unsigned long bi_board_number;/* ATAG_BOARDINFO */
> +#endif
> #ifdef CONFIG_ARM
> unsigned long bi_arm_freq; /* arm frequency */
> unsigned long bi_dsp_freq; /* dsp core frequency */
> --
> 1.7.10.4
>
Regards,
Simon
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 6/8] avr32: add generic board support
2015-01-28 3:09 ` Simon Glass
@ 2015-01-28 10:04 ` Andreas Bießmann
2015-01-28 16:34 ` Simon Glass
0 siblings, 1 reply; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 10:04 UTC (permalink / raw)
To: u-boot
Hi Simon,
On 01/28/2015 04:09 AM, Simon Glass wrote:
> Hi,
>
> On 27 January 2015 at 17:16, Andreas Bie?mann
> <andreas.devel@googlemail.com> wrote:
>> Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
>> ---
>>
>> Changes in v1:
>> - add timer_init in board_r
>> - remove extern declaration of mmu_init_r()
>>
>> arch/avr32/config.mk | 3 +++
>> arch/avr32/cpu/u-boot.lds | 2 ++
>> arch/avr32/include/asm/config.h | 1 +
>> arch/avr32/include/asm/u-boot.h | 7 +++++++
>> arch/avr32/lib/Makefile | 2 ++
>> arch/avr32/lib/interrupts.c | 5 +++++
>> common/board_f.c | 13 ++++++++++---
>> common/board_r.c | 26 +++++++++++++++++++++++---
>> include/asm-generic/u-boot.h | 4 ++++
>> 9 files changed, 57 insertions(+), 6 deletions(-)
>> diff --git a/common/board_f.c b/common/board_f.c
>> index 215108b..1a735ae 100644
>> --- a/common/board_f.c
>> +++ b/common/board_f.c
>> @@ -174,7 +174,7 @@ static int announce_dram_init(void)
>> return 0;
>> }
>>
>> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>> static int init_func_ram(void)
>> {
>> #ifdef CONFIG_BOARD_TYPES
>> @@ -268,6 +268,8 @@ static int setup_mon_len(void)
>> gd->mon_len = (ulong)&_end - (ulong)_init;
>> #elif defined(CONFIG_BLACKFIN) || defined(CONFIG_NIOS2)
>> gd->mon_len = CONFIG_SYS_MONITOR_LEN;
>> +#elif defined(CONFIG_AVR32)
>> + gd->mon_len = (ulong)&__bss_end - (ulong)&_text;
>
> Would we be able to unify the symbols here rather than having a
> special case for AVR32?
well, I'm not __ARM__ nor CONFIG_SANDBOX, CONFIG_BLACKFIN or
CONFIG_NIOS2. The else path may fit, I'll check that.
>> #else
>> /* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */
>> gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
>> @@ -581,7 +583,7 @@ static int reserve_stacks(void)
>> gd->irq_sp = gd->start_addr_sp;
>> # endif
>> #else
>> -# ifdef CONFIG_PPC
>> +# if defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>> ulong *s;
>> # endif
>>
>> @@ -611,6 +613,11 @@ static int reserve_stacks(void)
>> s = (ulong *) gd->start_addr_sp;
>> *s = 0; /* Terminate back chain */
>> *++s = 0; /* NULL return address */
>> +# elif defined(CONFIG_AVR32)
>> + gd->arch.stack_end = gd->start_addr_sp;
>> + s = (ulong *)gd->start_addr_sp;
>> + *s = 0;
>> + *--s = 0;
>
> Can we create an arch_reserve_stacks() function to handle this, and
> put it in the AVR32 code?
I'll do so.
>
>> # endif /* Architecture specific code */
>>
>> return 0;
>> @@ -912,7 +919,7 @@ static init_fnc_t init_sequence_f[] = {
>> #if defined(CONFIG_ARM) || defined(CONFIG_X86)
>> dram_init, /* configure available RAM banks */
>> #endif
>> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>> init_func_ram,
>
> Can you use dram_init() instead?
I have to check that. Can we do that later when we convert mips/ppc? I
fear it is a bit complex.
>> #endif
>> #ifdef CONFIG_POST
>> diff --git a/common/board_r.c b/common/board_r.c
>> index e712902..3620438 100644
>> --- a/common/board_r.c
>> +++ b/common/board_r.c
>> @@ -55,6 +55,9 @@
>> #include <dm/root.h>
>> #include <linux/compiler.h>
>> #include <linux/err.h>
>> +#ifdef CONFIG_AVR32
>> +#include <asm/arch/mmu.h>
>> +#endif
>
> What needs this? Let's move it into AVR32 code.
The mmu_init_r needs this. I dunno where to place it. ARM has the TLB
setup before activating d-caches (in initr_caches). This is not required
for avr32 and therefore not the right place.
>> @@ -894,6 +910,10 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
>> int i;
>> #endif
>>
>> +#ifdef CONFIG_AVR32
>> + mmu_init_r(dest_addr);
>> +#endif
>
> What does this do? It feels like it shold perhaps happen in the init
> sequence. See x86 which has a similar requirement, or at least I think
> it is similar.
can you point me to the x86 code?
> The objective ultimately is to remove all #ifdefs from board_f/r.c.
That's clear to me. I thought we can first gather all the stuff in
common/board_* and in a second turn we clean it up. Obvious things
cleaned up before, but questionnaire things are cleaned up in a second
turn. At least this was my objective ;)
Best regards
Andreas Bie?mann
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 6/8] avr32: add generic board support
2015-01-28 10:04 ` Andreas Bießmann
@ 2015-01-28 16:34 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2015-01-28 16:34 UTC (permalink / raw)
To: u-boot
Hi Andreas,
On 28 January 2015 at 03:04, Andreas Bie?mann
<andreas.devel@googlemail.com> wrote:
> Hi Simon,
>
> On 01/28/2015 04:09 AM, Simon Glass wrote:
>> Hi,
>>
>> On 27 January 2015 at 17:16, Andreas Bie?mann
>> <andreas.devel@googlemail.com> wrote:
>>> Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
>>> ---
>>>
>>> Changes in v1:
>>> - add timer_init in board_r
>>> - remove extern declaration of mmu_init_r()
>>>
>>> arch/avr32/config.mk | 3 +++
>>> arch/avr32/cpu/u-boot.lds | 2 ++
>>> arch/avr32/include/asm/config.h | 1 +
>>> arch/avr32/include/asm/u-boot.h | 7 +++++++
>>> arch/avr32/lib/Makefile | 2 ++
>>> arch/avr32/lib/interrupts.c | 5 +++++
>>> common/board_f.c | 13 ++++++++++---
>>> common/board_r.c | 26 +++++++++++++++++++++++---
>>> include/asm-generic/u-boot.h | 4 ++++
>>> 9 files changed, 57 insertions(+), 6 deletions(-)
>
>
>>> diff --git a/common/board_f.c b/common/board_f.c
>>> index 215108b..1a735ae 100644
>>> --- a/common/board_f.c
>>> +++ b/common/board_f.c
>>> @@ -174,7 +174,7 @@ static int announce_dram_init(void)
>>> return 0;
>>> }
>>>
>>> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
>>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>>> static int init_func_ram(void)
>>> {
>>> #ifdef CONFIG_BOARD_TYPES
>>> @@ -268,6 +268,8 @@ static int setup_mon_len(void)
>>> gd->mon_len = (ulong)&_end - (ulong)_init;
>>> #elif defined(CONFIG_BLACKFIN) || defined(CONFIG_NIOS2)
>>> gd->mon_len = CONFIG_SYS_MONITOR_LEN;
>>> +#elif defined(CONFIG_AVR32)
>>> + gd->mon_len = (ulong)&__bss_end - (ulong)&_text;
>>
>> Would we be able to unify the symbols here rather than having a
>> special case for AVR32?
>
> well, I'm not __ARM__ nor CONFIG_SANDBOX, CONFIG_BLACKFIN or
> CONFIG_NIOS2. The else path may fit, I'll check that.
>
>>> #else
>>> /* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */
>>> gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
>>> @@ -581,7 +583,7 @@ static int reserve_stacks(void)
>>> gd->irq_sp = gd->start_addr_sp;
>>> # endif
>>> #else
>>> -# ifdef CONFIG_PPC
>>> +# if defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>>> ulong *s;
>>> # endif
>>>
>>> @@ -611,6 +613,11 @@ static int reserve_stacks(void)
>>> s = (ulong *) gd->start_addr_sp;
>>> *s = 0; /* Terminate back chain */
>>> *++s = 0; /* NULL return address */
>>> +# elif defined(CONFIG_AVR32)
>>> + gd->arch.stack_end = gd->start_addr_sp;
>>> + s = (ulong *)gd->start_addr_sp;
>>> + *s = 0;
>>> + *--s = 0;
>>
>> Can we create an arch_reserve_stacks() function to handle this, and
>> put it in the AVR32 code?
>
> I'll do so.
>
>>
>>> # endif /* Architecture specific code */
>>>
>>> return 0;
>>> @@ -912,7 +919,7 @@ static init_fnc_t init_sequence_f[] = {
>>> #if defined(CONFIG_ARM) || defined(CONFIG_X86)
>>> dram_init, /* configure available RAM banks */
>>> #endif
>>> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
>>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>>> init_func_ram,
>>
>> Can you use dram_init() instead?
>
> I have to check that. Can we do that later when we convert mips/ppc? I
> fear it is a bit complex.
Later is fine if this doesn't work. But if every arch uses another
arch as an excuse not to clean up no one will get there :-)
>
>>> #endif
>>> #ifdef CONFIG_POST
>>> diff --git a/common/board_r.c b/common/board_r.c
>>> index e712902..3620438 100644
>>> --- a/common/board_r.c
>>> +++ b/common/board_r.c
>>> @@ -55,6 +55,9 @@
>>> #include <dm/root.h>
>>> #include <linux/compiler.h>
>>> #include <linux/err.h>
>>> +#ifdef CONFIG_AVR32
>>> +#include <asm/arch/mmu.h>
>>> +#endif
>>
>> What needs this? Let's move it into AVR32 code.
>
> The mmu_init_r needs this. I dunno where to place it. ARM has the TLB
> setup before activating d-caches (in initr_caches). This is not required
> for avr32 and therefore not the right place.
OK, then maybe we need to add this as a new method that any arch can use?
I'm wondering whether we should (later) have the concept of an arch
'driver', with methods for all of these things.
>
>>> @@ -894,6 +910,10 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
>>> int i;
>>> #endif
>>>
>>> +#ifdef CONFIG_AVR32
>>> + mmu_init_r(dest_addr);
>>> +#endif
>>
>> What does this do? It feels like it shold perhaps happen in the init
>> sequence. See x86 which has a similar requirement, or at least I think
>> it is similar.
>
> can you point me to the x86 code?
I was thinking of init_cache_f_r(). Is that similar to what you want?
>
>> The objective ultimately is to remove all #ifdefs from board_f/r.c.
>
> That's clear to me. I thought we can first gather all the stuff in
> common/board_* and in a second turn we clean it up. Obvious things
> cleaned up before, but questionnaire things are cleaned up in a second
> turn. At least this was my objective ;)
Sounds good. I suppose the immediate objective is to get everything in
generic board, but we should clean it up soon.
Regards,
Simon
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 7/8] grasshopper: enable generic board
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
` (5 preceding siblings ...)
2015-01-28 0:16 ` [U-Boot] [PATCH v1 6/8] avr32: add generic board support Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
2015-01-28 0:16 ` [U-Boot] [PATCH v1 8/8] atstk1002: " Andreas Bießmann
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1: None
include/configs/grasshopper.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/configs/grasshopper.h b/include/configs/grasshopper.h
index 83f0ed2..54eb977 100644
--- a/include/configs/grasshopper.h
+++ b/include/configs/grasshopper.h
@@ -62,6 +62,10 @@
#define CONFIG_USART_BASE ATMEL_BASE_USART1
#define CONFIG_USART_ID 1
+#define CONFIG_SYS_GENERIC_BOARD
+#define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_BOARD_EARLY_INIT_R
+
/* User serviceable stuff */
#define CONFIG_CMDLINE_TAG
#define CONFIG_SETUP_MEMORY_TAGS
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v1 8/8] atstk1002: enable generic board
2015-01-28 0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
` (6 preceding siblings ...)
2015-01-28 0:16 ` [U-Boot] [PATCH v1 7/8] grasshopper: enable generic board Andreas Bießmann
@ 2015-01-28 0:16 ` Andreas Bießmann
7 siblings, 0 replies; 12+ messages in thread
From: Andreas Bießmann @ 2015-01-28 0:16 UTC (permalink / raw)
To: u-boot
Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
Changes in v1:
- new since RFC
include/configs/atstk1002.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/configs/atstk1002.h b/include/configs/atstk1002.h
index 9e58238..a9c064a 100644
--- a/include/configs/atstk1002.h
+++ b/include/configs/atstk1002.h
@@ -104,6 +104,10 @@
#define CONFIG_BOOTP_SUBNETMASK
#define CONFIG_BOOTP_GATEWAY
+/* generic board */
+#define CONFIG_SYS_GENERIC_BOARD
+#define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_BOARD_EARLY_INIT_R
/*
* Command line configuration.
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread