]> git.ipfire.org Git - thirdparty/u-boot.git/blame - include/configs/km/km_arm.h
Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig
[thirdparty/u-boot.git] / include / configs / km / km_arm.h
CommitLineData
83d290c5 1/* SPDX-License-Identifier: GPL-2.0+ */
67fa8c25
HS
2/*
3 * (C) Copyright 2009
4 * Marvell Semiconductor <www.marvell.com>
5 * Prafulla Wadaskar <prafulla@marvell.com>
6 *
7 * (C) Copyright 2009
8 * Stefan Roese, DENX Software Engineering, sr@denx.de.
9 *
b11f53f3
HS
10 * (C) Copyright 2010-2011
11 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
67fa8c25
HS
12 */
13
b11f53f3
HS
14/*
15 * for linking errors see
16 * http://lists.denx.de/pipermail/u-boot/2009-July/057350.html
17 */
67fa8c25
HS
18
19#ifndef _CONFIG_KM_ARM_H
20#define _CONFIG_KM_ARM_H
21
22/*
23 * High Level Configuration Options (easy to change)
24 */
67fa8c25 25#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
67fa8c25 26#define CONFIG_KW88F6281 /* SOC Name */
67fa8c25 27
8620ca2a
VL
28#define CONFIG_MACH_TYPE MACH_TYPE_KM_KIRKWOOD
29
dfeafde4 30#define CONFIG_NAND_ECC_BCH
dfeafde4 31
67fa8c25
HS
32/* include common defines/options for all Keymile boards */
33#include "keymile-common.h"
de3ad13d 34
ac5b00e0
VL
35/* Reserve 4 MB for malloc */
36#define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024)
37
6a0952a3
HB
38/* Increase max size of compressed kernel */
39#define CONFIG_SYS_BOOTM_LEN (32 << 20)
40
b5befd82
HB
41#include "asm/arch/config.h"
42
db0bb572
HB
43/* architecture specific default bootargs */
44#define CONFIG_KM_DEF_BOOT_ARGS_CPU \
66072a8c
HB
45 "bootcountaddr=${bootcountaddr} ${mtdparts}" \
46 " boardid=0x${IVM_BoardId} hwkey=0x${IVM_HWKey}"
db0bb572 47
de3ad13d 48#define CONFIG_KM_DEF_ENV_CPU \
7292a182 49 "u-boot=" CONFIG_HOSTNAME "/u-boot.kwb\0" \
af85f085 50 CONFIG_KM_UPDATE_UBOOT \
b1c2a7ae 51 "set_fdthigh=setenv fdt_high ${kernelmem}\0" \
c6d32dfd
VL
52 "checkfdt=" \
53 "if cramfsls fdt_0x${IVM_BoardId}_0x${IVM_HWKey}.dtb; " \
54 "then true; else setenv cramfsloadfdt true; " \
55 "setenv boot bootm ${load_addr_r}; " \
56 "echo No FDT found, booting with the kernel " \
57 "appended one; fi\0" \
de3ad13d
HB
58 ""
59
67fa8c25
HS
60/*
61 * For booting Linux, the board info and command line data
62 * have to be in the first 8 MB of memory, since this is
63 * the maximum mapped by the Linux kernel during initialization.
64 */
67fa8c25
HS
65#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
66#define CONFIG_INITRD_TAG /* enable INITRD tag */
499b1a4d 67#define CONFIG_SETUP_MEMORY_TAGS /* enable memory tag */
67fa8c25 68
67fa8c25
HS
69/*
70 * NAND Flash configuration
71 */
72#define CONFIG_SYS_MAX_NAND_DEVICE 1
67fa8c25 73
67fa8c25
HS
74/*
75 * Other required minimal configurations
76 */
67fa8c25
HS
77
78/*
79 * Ethernet Driver configuration
80 */
abbaa8ed 81#define PHY_ANEG_TIMEOUT 8000 /* PHY needs a longer autoneg timeout */
d44265ad 82#define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */
67fa8c25 83#define CONFIG_PHY_BASE_ADR 0
67fa8c25 84
67fa8c25
HS
85/*
86 * I2C related stuff
87 */
ea818dbb 88#undef CONFIG_I2C_MVTWSI
0a4f88b9 89#define CONFIG_SYS_I2C_INIT_BOARD
ea818dbb 90
67fa8c25 91#define CONFIG_KIRKWOOD_GPIO /* Enable GPIO Support */
ea818dbb
HS
92#define CONFIG_SYS_NUM_I2C_BUSES 6
93#define CONFIG_SYS_I2C_MAX_HOPS 1
94#define CONFIG_SYS_I2C_BUSES { {0, {I2C_NULL_HOP} }, \
95 {0, {{I2C_MUX_PCA9547, 0x70, 1} } }, \
96 {0, {{I2C_MUX_PCA9547, 0x70, 2} } }, \
97 {0, {{I2C_MUX_PCA9547, 0x70, 3} } }, \
98 {0, {{I2C_MUX_PCA9547, 0x70, 4} } }, \
99 {0, {{I2C_MUX_PCA9547, 0x70, 5} } }, \
100 }
101
67fa8c25 102#ifndef __ASSEMBLY__
ea385723 103#include <asm/arch/gpio.h>
c05ed00a 104#include <linux/delay.h>
1af3c7f4 105#include <linux/stringify.h>
67fa8c25 106extern void __set_direction(unsigned pin, int high);
44097e26
HS
107#define KM_KIRKWOOD_SDA_PIN 8
108#define KM_KIRKWOOD_SCL_PIN 9
c471d848 109#define KM_KIRKWOOD_SOFT_I2C_GPIOS 0x0300
44097e26
HS
110#define KM_KIRKWOOD_ENV_WP 38
111
112#define I2C_ACTIVE __set_direction(KM_KIRKWOOD_SDA_PIN, 0)
113#define I2C_TRISTATE __set_direction(KM_KIRKWOOD_SDA_PIN, 1)
114#define I2C_READ (kw_gpio_get_value(KM_KIRKWOOD_SDA_PIN) ? 1 : 0)
115#define I2C_SDA(bit) kw_gpio_set_value(KM_KIRKWOOD_SDA_PIN, bit)
116#define I2C_SCL(bit) kw_gpio_set_value(KM_KIRKWOOD_SCL_PIN, bit)
67fa8c25
HS
117#endif
118
9e9c6d7c 119#define I2C_DELAY udelay(1)
67fa8c25
HS
120#define I2C_SOFT_DECLARATIONS
121
4daea6ff 122/* EEprom support 24C128, 24C256 valid for environment eeprom */
4daea6ff 123#define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE
67fa8c25 124
331a30dc
HS
125/*
126 * Environment variables configurations
127 */
8170aefc 128#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
8170aefc
HB
129#define CONFIG_ENV_TOTAL_SIZE 0x20000 /* no bracets! */
130#else
331a30dc 131#define CONFIG_SYS_EEPROM_WREN
716e4ffe 132#define CONFIG_I2C_ENV_EEPROM_BUS 5 /* I2C2 (Mux-Port 5) */
8170aefc
HB
133#endif
134
0c25defc 135#define KM_FLASH_GPIO_PIN 16
331a30dc 136
af85f085 137#define CONFIG_KM_UPDATE_UBOOT \
331a30dc 138 "update=" \
0c25defc
VL
139 "sf probe 0;sf erase 0 +${filesize};" \
140 "sf write ${load_addr_r} 0 ${filesize};\0"
331a30dc 141
8170aefc
HB
142#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
143#define CONFIG_KM_NEW_ENV \
144 "newenv=sf probe 0;" \
93ea89f0
MV
145 "sf erase " __stringify(CONFIG_ENV_OFFSET) " " \
146 __stringify(CONFIG_ENV_TOTAL_SIZE)"\0"
8170aefc
HB
147#else
148#define CONFIG_KM_NEW_ENV \
ea616d4d 149 "newenv=setenv addr 0x100000 && " \
67bfae36
HB
150 "i2c dev " __stringify(CONFIG_I2C_ENV_EEPROM_BUS) "; " \
151 "mw.b ${addr} 0 4 && " \
88cd7d0e 152 "eeprom write " __stringify(CONFIG_SYS_I2C_EEPROM_ADDR) \
93ea89f0 153 " ${addr} " __stringify(CONFIG_ENV_OFFSET) " 4 && " \
88cd7d0e 154 "eeprom write " __stringify(CONFIG_SYS_I2C_EEPROM_ADDR) \
93ea89f0 155 " ${addr} " __stringify(CONFIG_ENV_OFFSET_REDUND) " 4\0"
8170aefc
HB
156#endif
157
56cde177
HB
158#ifndef CONFIG_KM_BOARD_EXTRA_ENV
159#define CONFIG_KM_BOARD_EXTRA_ENV ""
160#endif
161
8170aefc
HB
162/*
163 * Default environment variables
164 */
165#define CONFIG_EXTRA_ENV_SETTINGS \
56cde177 166 CONFIG_KM_BOARD_EXTRA_ENV \
8170aefc
HB
167 CONFIG_KM_DEF_ENV \
168 CONFIG_KM_NEW_ENV \
b648bfc2 169 "arch=arm\0" \
ea616d4d
VL
170 ""
171
a784c01a 172/* additions for new relocation code, must be added to all boards */
ab86f72c 173#define CONFIG_SYS_SDRAM_BASE 0x00000000
f1fef1d8 174
a21b5d4b
HB
175/* address for the bootcount (taken from end of RAM) */
176#define BOOTCOUNT_ADDR (CONFIG_KM_RESERVED_PRAM)
f1fef1d8 177
9400f8fa
VL
178/* enable POST tests */
179#define CONFIG_POST (CONFIG_SYS_POST_MEM_REGIONS)
180#define CONFIG_POST_SKIP_ENV_FLAGS
181#define CONFIG_POST_EXTERNAL_WORD_FUNCS
9400f8fa 182
67fa8c25 183#endif /* _CONFIG_KM_ARM_H */