u-boot/arch/arm/mach-at91/Kconfig
Tudor Ambarus f206af80f8 ARM: at91: sama7g5: Reset external devices at software reset
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>
2022-04-01 15:42:46 +03:00

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