mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-09 21:02:58 +00:00
f206af80f8
sama7g5 and other SoCs (sama5d3, sam9x60) define in the Reset Controller a RSTC_CR.EXTRST bit that asserts the nrst_out pin which resets external devices. This is particular useful for external devices that are configured in stateful modes which can not be undone without reconfiguring the device or without resetting the device. An example is an SPI NOR flash that is configured in octal mode. The do_reset u-boot cmd does not call any driver's remove method, but merely resets the CPU. As the code was, this left the flash in octal mode, being impossible for the first stage boot loaders to recover/identify the flash after a "software reset". RSTC_CR.EXTRST comes in handy here, as it can be set at "software reset" to assert low the nrst_out pin during a time defined by the RSTC_MR.ERSTL field and reset the external devices (including the SPI NOR flash in the example). nrst_out is always asserted at "user reset" and it resets the external devices correctly. Asserting nrst_out at "software reset" should behave in a similar way. The only difference that I could find between the two types of resets in regards to the nrst_out signal, is that at "user reset" timing diagram the "Processor and Peripherals Reset Line" rises after six MD_SLCK cycles after the nrst_out line rose, while at the "software reset" timing diagram the "Processor and Peripherals Reset Line" is active for 3 MD_SLCK cycles + 2 MCK cycles. In other words, in the "software reset" case the nrst_out signal can be active for a longer period of time than the "Processor and Peripherals Reset Line" active time, depending on the RSTC_MR.ERSTL value. Using the default value (zero) for RSTC_MR.ERSTL, worked just fine for the sama7g5 case. Tested QSPI0 and GMAC0/GMAC1 on sama7g5ek rev 4 after a software reset with RSTC_CR.EXTRST=1 and RSTC_MR.ERSTL=0. Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
370 lines
7.6 KiB
Text
370 lines
7.6 KiB
Text
if ARCH_AT91
|
|
|
|
config AT91FAMILY
|
|
def_bool y
|
|
|
|
config AT91SAM9260
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9G20
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9XE
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9261
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9263
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9G45
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9M10G45
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9N12
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9RL
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config AT91SAM9X5
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config SAM9X60
|
|
bool
|
|
select CPU_ARM926EJS
|
|
|
|
config SAMA7G5
|
|
bool
|
|
select CPU_V7A
|
|
select AT91RESET_EXTRST
|
|
|
|
config SAMA5D2
|
|
bool
|
|
select CPU_V7A
|
|
select ATMEL_SFR
|
|
|
|
config SAMA5D3
|
|
bool
|
|
select CPU_V7A
|
|
|
|
config SAMA5D4
|
|
bool
|
|
select CPU_V7A
|
|
select ATMEL_SFR
|
|
|
|
choice
|
|
prompt "Atmel AT91 board select"
|
|
optional
|
|
|
|
config TARGET_AT91SAM9260EK
|
|
bool "Atmel at91sam9260 reference board"
|
|
select AT91SAM9260
|
|
select BOARD_EARLY_INIT_F
|
|
|
|
config TARGET_ETHERNUT5
|
|
bool "Ethernut5 board"
|
|
select AT91SAM9XE
|
|
|
|
config TARGET_SNAPPER9260
|
|
bool "Support snapper9260"
|
|
select AT91SAM9260
|
|
select AT91_WANTS_COMMON_PHY
|
|
select DM
|
|
select DM_GPIO
|
|
select DM_SERIAL
|
|
imply CMD_DM
|
|
|
|
config TARGET_GURNARD
|
|
bool "Support gurnard"
|
|
select AT91SAM9G45
|
|
select AT91_WANTS_COMMON_PHY
|
|
select BOARD_LATE_INIT
|
|
select DM
|
|
select DM_ETH
|
|
select DM_GPIO
|
|
select DM_SERIAL
|
|
select DM_SPI
|
|
select SPI
|
|
imply CMD_DM
|
|
|
|
config TARGET_AT91SAM9261EK
|
|
bool "Atmel at91sam9261 reference board"
|
|
select AT91SAM9261
|
|
select BOARD_EARLY_INIT_F
|
|
|
|
config TARGET_PM9261
|
|
bool "Ronetix pm9261 board"
|
|
select AT91SAM9261
|
|
|
|
config TARGET_AT91SAM9263EK
|
|
bool "Atmel at91sam9263 reference board"
|
|
select AT91SAM9263
|
|
select BOARD_EARLY_INIT_F
|
|
|
|
config TARGET_USB_A9263
|
|
bool "Caloa USB A9260 board"
|
|
select AT91SAM9263
|
|
select AT91_WANTS_COMMON_PHY
|
|
|
|
config TARGET_PM9263
|
|
bool "Ronetix pm9263 board"
|
|
select AT91SAM9263
|
|
|
|
config TARGET_AT91SAM9M10G45EK
|
|
bool "Atmel AT91SAM9M10G45-EK board"
|
|
select AT91SAM9M10G45
|
|
select BOARD_EARLY_INIT_F
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_PM9G45
|
|
bool "Ronetix pm9g45 board"
|
|
select AT91SAM9G45
|
|
|
|
config TARGET_AT91SAM9N12EK
|
|
bool "Atmel AT91SAM9N12-EK board"
|
|
select AT91SAM9N12
|
|
select BOARD_EARLY_INIT_F
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_AT91SAM9RLEK
|
|
bool "Atmel at91sam9rl reference board"
|
|
select AT91SAM9RL
|
|
select BOARD_EARLY_INIT_F
|
|
|
|
config TARGET_AT91SAM9X5EK
|
|
bool "Atmel AT91SAM9X5-EK board"
|
|
select AT91SAM9X5
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_GARDENA_SMART_GATEWAY_AT91SAM
|
|
bool "GARDENA smart Gateway (AT91SAM)"
|
|
select AT91SAM9X5
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SAM9X60EK
|
|
bool "SAM9X60-EK board"
|
|
select SAM9X60
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
|
|
config TARGET_SAMA5D2_PTC_EK
|
|
bool "SAMA5D2 PTC EK board"
|
|
select BOARD_EARLY_INIT_F
|
|
select SAMA5D2
|
|
select BOARD_LATE_INIT
|
|
|
|
config TARGET_SAMA5D2_XPLAINED
|
|
bool "SAMA5D2 Xplained board"
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select SAMA5D2
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SAMA5D27_SOM1_EK
|
|
bool "SAMA5D27 SOM1 EK board"
|
|
select SAMA5D2
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select CPU_V7A
|
|
select SUPPORT_SPL
|
|
select ATMEL_SFR
|
|
help
|
|
The SAMA5D27 SOM1 embeds SAMA5D2 SiP(System in Package),
|
|
a 64Mbit QSPI flash, KSZ8081 Phy and a Mac-address EEPROM
|
|
24AA02E48. The SAMA5D2 SiP integrates the ARM Cortex-A5
|
|
processor-based SAMA5D2 MPU with up to 1 Gbit DDR2-SDRAM
|
|
in a single package.
|
|
|
|
config TARGET_SAMA5D27_WLSOM1_EK
|
|
bool "SAMA5D27 WLSOM1 EK board"
|
|
select SAMA5D2
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select CPU_V7A
|
|
select SUPPORT_SPL
|
|
help
|
|
The SAMA5D27 WLSOM1 embeds SAMA5D2 SiP (System in Package),
|
|
a 64Mbit QSPI flash with Mac-address, KSZ8081 Phy. A wireless
|
|
module providing bluetooth and wifi is also embedded.
|
|
The SAMA5D2 SiP integrates the ARM Cortex-A5
|
|
processor-based SAMA5D2 MPU with 2 Gbit LPDDR2-SDRAM
|
|
in a single package.
|
|
|
|
config TARGET_SAMA5D2_ICP
|
|
bool "SAMA5D2 Industrial Connectivity Platform (ICP)"
|
|
select SAMA5D2
|
|
select SUPPORT_SPL
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
help
|
|
The SAMA5D2 ICP embeds SAMA5D27 rev. C SoC, together with
|
|
a 64Mbit QSPI flash, 3xMikrobus connectors, 4xUSB ,
|
|
EtherCat and WILC3000 devices on board.
|
|
|
|
config TARGET_SAMA5D3_XPLAINED
|
|
bool "SAMA5D3 Xplained board"
|
|
select BOARD_EARLY_INIT_F
|
|
select SAMA5D3
|
|
select SUPPORT_SPL
|
|
select BOARD_LATE_INIT
|
|
|
|
config TARGET_SAMA5D3XEK
|
|
bool "SAMA5D3X-EK board"
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select SAMA5D3
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SAMA5D4_XPLAINED
|
|
bool "SAMA5D4 Xplained board"
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select SAMA5D4
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SAMA5D4EK
|
|
bool "SAMA5D4 Evaluation Kit"
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
select SAMA5D4
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_MEESC
|
|
bool "Support meesc"
|
|
select AT91SAM9263
|
|
|
|
config TARGET_CORVUS
|
|
bool "Support corvus"
|
|
select AT91SAM9M10G45
|
|
select AT91_WANTS_COMMON_PHY
|
|
select DM
|
|
select DM_ETH
|
|
select DM_GPIO
|
|
select DM_SERIAL
|
|
select SUPPORT_SPL
|
|
imply CMD_DM
|
|
|
|
config TARGET_SAMA7G5EK
|
|
bool "SAMA7G5 EK board"
|
|
select SAMA7G5
|
|
select BOARD_EARLY_INIT_F
|
|
select BOARD_LATE_INIT
|
|
|
|
|
|
config TARGET_TAURUS
|
|
bool "Support taurus"
|
|
select AT91SAM9G20
|
|
select AT91_WANTS_COMMON_PHY
|
|
select DM
|
|
select DM_ETH
|
|
select DM_GPIO
|
|
select DM_SERIAL
|
|
select DM_SPI
|
|
select SPI
|
|
select SUPPORT_SPL
|
|
imply CMD_DM
|
|
|
|
config TARGET_SMARTWEB
|
|
bool "Support smartweb"
|
|
select AT91SAM9260
|
|
select AT91_WANTS_COMMON_PHY
|
|
select DM
|
|
select DM_ETH
|
|
select DM_GPIO
|
|
select DM_SERIAL
|
|
select SUPPORT_SPL
|
|
imply CMD_DM
|
|
|
|
config TARGET_VINCO
|
|
bool "Support VINCO"
|
|
select DM
|
|
select DM_SPI
|
|
select SAMA5D4
|
|
select SPI
|
|
select SUPPORT_SPL
|
|
imply CMD_DM
|
|
|
|
endchoice
|
|
|
|
config ATMEL_SFR
|
|
bool
|
|
|
|
config AT91RESET_EXTRST
|
|
bool
|
|
|
|
config SYS_SOC
|
|
default "at91"
|
|
|
|
config AT91_EFLASH
|
|
bool "Support AT91 flash driver"
|
|
depends on AT91SAM9XE
|
|
select USE_SYS_MAX_FLASH_BANKS
|
|
help
|
|
Enable the driver for the embedded flash used in the Atmel
|
|
AT91SAM9XE devices.
|
|
|
|
config AT91_GPIO_PULLUP
|
|
bool "Keep pullups on peripheral pins"
|
|
depends on CPU_ARM926EJS
|
|
|
|
config ATMEL_LEGACY
|
|
bool "Legacy GPIO support"
|
|
|
|
config AT91_WANTS_COMMON_PHY
|
|
bool
|
|
|
|
source "board/atmel/at91sam9260ek/Kconfig"
|
|
source "board/atmel/at91sam9261ek/Kconfig"
|
|
source "board/atmel/at91sam9263ek/Kconfig"
|
|
source "board/atmel/at91sam9m10g45ek/Kconfig"
|
|
source "board/atmel/at91sam9n12ek/Kconfig"
|
|
source "board/atmel/at91sam9rlek/Kconfig"
|
|
source "board/atmel/at91sam9x5ek/Kconfig"
|
|
source "board/atmel/sam9x60ek/Kconfig"
|
|
source "board/atmel/sama7g5ek/Kconfig"
|
|
source "board/atmel/sama5d2_ptc_ek/Kconfig"
|
|
source "board/atmel/sama5d2_xplained/Kconfig"
|
|
source "board/atmel/sama5d27_som1_ek/Kconfig"
|
|
source "board/atmel/sama5d27_wlsom1_ek/Kconfig"
|
|
source "board/atmel/sama5d2_icp/Kconfig"
|
|
source "board/atmel/sama5d3_xplained/Kconfig"
|
|
source "board/atmel/sama5d3xek/Kconfig"
|
|
source "board/atmel/sama5d4_xplained/Kconfig"
|
|
source "board/atmel/sama5d4ek/Kconfig"
|
|
source "board/bluewater/gurnard/Kconfig"
|
|
source "board/bluewater/snapper9260/Kconfig"
|
|
source "board/calao/usb_a9263/Kconfig"
|
|
source "board/egnite/ethernut5/Kconfig"
|
|
source "board/esd/meesc/Kconfig"
|
|
source "board/gardena/smart-gateway-at91sam/Kconfig"
|
|
source "board/l+g/vinco/Kconfig"
|
|
source "board/ronetix/pm9261/Kconfig"
|
|
source "board/ronetix/pm9263/Kconfig"
|
|
source "board/ronetix/pm9g45/Kconfig"
|
|
source "board/siemens/corvus/Kconfig"
|
|
source "board/siemens/taurus/Kconfig"
|
|
source "board/siemens/smartweb/Kconfig"
|
|
|
|
config SPL_LDSCRIPT
|
|
default "arch/arm/mach-at91/arm926ejs/u-boot-spl.lds" if CPU_ARM926EJS
|
|
default "arch/arm/mach-at91/armv7/u-boot-spl.lds" if CPU_V7A
|
|
|
|
endif
|