2006-06-29 23:06:33 +08:00
|
|
|
if ARCH_AT91
|
|
|
|
|
|
|
|
menu "Atmel AT91 System-on-Chip"
|
|
|
|
|
2006-12-01 18:51:19 +08:00
|
|
|
choice
|
|
|
|
prompt "Atmel AT91 Processor"
|
2006-06-29 23:06:33 +08:00
|
|
|
|
|
|
|
config ARCH_AT91RM9200
|
|
|
|
bool "AT91RM9200"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM920T
|
2007-07-31 08:41:26 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
2006-01-10 01:05:41 +08:00
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
config ARCH_AT91SAM9260
|
2007-02-15 15:17:38 +08:00
|
|
|
bool "AT91SAM9260 or AT91SAM9XE"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM926T
|
2008-04-17 03:43:49 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
2006-06-29 23:06:33 +08:00
|
|
|
|
|
|
|
config ARCH_AT91SAM9261
|
|
|
|
bool "AT91SAM9261"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM926T
|
2008-04-17 03:43:49 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
2006-06-29 23:06:33 +08:00
|
|
|
|
2007-02-08 16:42:40 +08:00
|
|
|
config ARCH_AT91SAM9263
|
|
|
|
bool "AT91SAM9263"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM926T
|
2008-04-17 03:43:49 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
2007-02-08 16:42:40 +08:00
|
|
|
|
2007-05-12 03:49:56 +08:00
|
|
|
config ARCH_AT91SAM9RL
|
|
|
|
bool "AT91SAM9RL"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM926T
|
2008-04-17 03:43:49 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
2007-05-12 03:49:56 +08:00
|
|
|
|
2008-07-10 17:15:35 +08:00
|
|
|
config ARCH_AT91SAM9G20
|
|
|
|
bool "AT91SAM9G20"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM926T
|
2008-07-10 17:15:35 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
|
|
|
|
2008-01-24 22:10:39 +08:00
|
|
|
config ARCH_AT91CAP9
|
|
|
|
bool "AT91CAP9"
|
2008-10-26 18:55:14 +08:00
|
|
|
select CPU_ARM926T
|
2008-04-17 03:43:49 +08:00
|
|
|
select GENERIC_TIME
|
|
|
|
select GENERIC_CLOCKEVENTS
|
2008-01-24 22:10:39 +08:00
|
|
|
|
2007-07-30 09:39:21 +08:00
|
|
|
config ARCH_AT91X40
|
|
|
|
bool "AT91x40"
|
|
|
|
|
2006-12-01 18:51:19 +08:00
|
|
|
endchoice
|
|
|
|
|
2007-07-30 09:39:21 +08:00
|
|
|
config AT91_PMC_UNIT
|
|
|
|
bool
|
|
|
|
default !ARCH_AT91X40
|
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
|
|
|
if ARCH_AT91RM9200
|
2006-01-10 01:05:41 +08:00
|
|
|
|
|
|
|
comment "AT91RM9200 Board Type"
|
|
|
|
|
2006-06-27 00:48:29 +08:00
|
|
|
config MACH_ONEARM
|
|
|
|
bool "Ajeco 1ARM Single Board Computer"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Ajeco's 1ARM Single Board Computer.
|
|
|
|
<http://www.ajeco.fi/products.htm>
|
2006-06-27 00:48:29 +08:00
|
|
|
|
2006-01-10 01:05:41 +08:00
|
|
|
config ARCH_AT91RM9200DK
|
|
|
|
bool "Atmel AT91RM9200-DK Development board"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Atmel's AT91RM9200-DK Development board.
|
|
|
|
(Discontinued)
|
|
|
|
|
2006-01-10 01:05:41 +08:00
|
|
|
config MACH_AT91RM9200EK
|
|
|
|
bool "Atmel AT91RM9200-EK Evaluation Kit"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Atmel's AT91RM9200-EK Evaluation Kit.
|
|
|
|
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3507>
|
2006-01-10 01:05:41 +08:00
|
|
|
|
|
|
|
config MACH_CSB337
|
2006-06-29 23:06:33 +08:00
|
|
|
bool "Cogent CSB337"
|
2006-01-10 01:05:41 +08:00
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Cogent's CSB337 board.
|
|
|
|
<http://www.cogcomp.com/csb_csb337.htm>
|
2006-01-10 01:05:41 +08:00
|
|
|
|
|
|
|
config MACH_CSB637
|
2006-06-29 23:06:33 +08:00
|
|
|
bool "Cogent CSB637"
|
2006-01-10 01:05:41 +08:00
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Cogent's CSB637 board.
|
|
|
|
<http://www.cogcomp.com/csb_csb637.htm>
|
2006-01-10 01:05:41 +08:00
|
|
|
|
|
|
|
config MACH_CARMEVA
|
2006-06-29 23:06:33 +08:00
|
|
|
bool "Conitec ARM&EVA"
|
2006-01-10 01:05:41 +08:00
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Conitec's AT91RM9200-MCU-Module.
|
|
|
|
<http://www.conitec.net/english/linuxboard.htm>
|
2006-01-10 01:05:41 +08:00
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
config MACH_ATEB9200
|
|
|
|
bool "Embest ATEB9200"
|
2006-01-10 01:05:41 +08:00
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Embest's ATEB9200 board.
|
|
|
|
<http://www.embedinfo.com/english/product/ATEB9200.asp>
|
2006-01-10 01:05:41 +08:00
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
config MACH_KB9200
|
|
|
|
bool "KwikByte KB920x"
|
2006-06-21 02:30:18 +08:00
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using KwikByte's KB920x board.
|
|
|
|
<http://kwikbyte.com/KB9202_description_new.htm>
|
2006-06-21 02:30:18 +08:00
|
|
|
|
2007-04-02 21:06:29 +08:00
|
|
|
config MACH_PICOTUX2XX
|
|
|
|
bool "picotux 200"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
|
|
|
Select this if you are using a picotux 200.
|
|
|
|
<http://www.picotux.com/>
|
|
|
|
|
2006-06-21 02:30:18 +08:00
|
|
|
config MACH_KAFA
|
|
|
|
bool "Sperry-Sun KAFA board"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
2006-06-29 23:06:33 +08:00
|
|
|
Select this if you are using Sperry-Sun's KAFA board.
|
|
|
|
|
2008-04-16 04:10:11 +08:00
|
|
|
config MACH_ECBAT91
|
|
|
|
bool "emQbit ECB_AT91 SBC"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
|
|
|
Select this if you are using emQbit's ECB_AT91 board.
|
|
|
|
<http://wiki.emqbit.com/free-ecb-at91>
|
|
|
|
|
2008-05-25 00:06:45 +08:00
|
|
|
config MACH_YL9200
|
|
|
|
bool "ucDragon YL-9200"
|
|
|
|
depends on ARCH_AT91RM9200
|
|
|
|
help
|
|
|
|
Select this if you are using the ucDragon YL-9200 board.
|
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
|
|
|
if ARCH_AT91SAM9260
|
|
|
|
|
2007-02-15 15:17:38 +08:00
|
|
|
comment "AT91SAM9260 Variants"
|
|
|
|
|
|
|
|
config ARCH_AT91SAM9260_SAM9XE
|
|
|
|
bool "AT91SAM9XE"
|
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91SAM9XE System-on-Chip.
|
2007-05-09 13:35:06 +08:00
|
|
|
They are basically AT91SAM9260s with various sizes of embedded Flash.
|
2007-02-15 15:17:38 +08:00
|
|
|
|
|
|
|
comment "AT91SAM9260 / AT91SAM9XE Board Type"
|
2006-06-29 23:06:33 +08:00
|
|
|
|
2006-12-01 21:51:13 +08:00
|
|
|
config MACH_AT91SAM9260EK
|
2007-02-15 15:17:38 +08:00
|
|
|
bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
|
2006-12-01 21:51:13 +08:00
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
2007-02-15 15:17:38 +08:00
|
|
|
Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
|
2006-12-01 21:51:13 +08:00
|
|
|
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
|
|
|
|
|
2008-04-16 04:05:03 +08:00
|
|
|
config MACH_CAM60
|
|
|
|
bool "KwikByte KB9260 (CAM60) board"
|
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
|
|
|
Select this if you are using KwikByte's KB9260 (CAM60) board based on the Atmel AT91SAM9260.
|
|
|
|
<http://www.kwikbyte.com/KB9260.html>
|
|
|
|
|
2008-04-16 04:07:08 +08:00
|
|
|
config MACH_SAM9_L9260
|
|
|
|
bool "Olimex SAM9-L9260 board"
|
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
|
|
|
Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
|
|
|
|
<http://www.olimex.com/dev/sam9-L9260.html>
|
|
|
|
|
2008-08-03 09:29:48 +08:00
|
|
|
config MACH_AFEB9260
|
|
|
|
bool "Custom afeb9260 board v1"
|
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
|
|
|
Select this if you are using custom afeb9260 board based on
|
|
|
|
open hardware design. Select this for revision 1 of the board.
|
|
|
|
<svn://194.85.238.22/home/users/george/svn/arm9eb>
|
|
|
|
<http://groups.google.com/group/arm9fpga-evolution-board>
|
|
|
|
|
2008-05-25 00:47:04 +08:00
|
|
|
config MACH_USB_A9260
|
|
|
|
bool "CALAO USB-A9260"
|
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
|
|
|
Select this if you are using a Calao Systems USB-A9260.
|
|
|
|
<http://www.calao-systems.com>
|
|
|
|
|
|
|
|
config MACH_QIL_A9260
|
|
|
|
bool "CALAO QIL-A9260 board"
|
|
|
|
depends on ARCH_AT91SAM9260
|
|
|
|
help
|
|
|
|
Select this if you are using a Calao Systems QIL-A9260 Board.
|
|
|
|
<http://www.calao-systems.com>
|
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
|
|
|
if ARCH_AT91SAM9261
|
|
|
|
|
|
|
|
comment "AT91SAM9261 Board Type"
|
|
|
|
|
2006-12-01 21:51:13 +08:00
|
|
|
config MACH_AT91SAM9261EK
|
|
|
|
bool "Atmel AT91SAM9261-EK Evaluation Kit"
|
|
|
|
depends on ARCH_AT91SAM9261
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
|
|
|
|
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
|
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
endif
|
|
|
|
|
2006-12-01 21:51:13 +08:00
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
2007-02-08 17:22:16 +08:00
|
|
|
if ARCH_AT91SAM9263
|
|
|
|
|
|
|
|
comment "AT91SAM9263 Board Type"
|
|
|
|
|
|
|
|
config MACH_AT91SAM9263EK
|
|
|
|
bool "Atmel AT91SAM9263-EK Evaluation Kit"
|
|
|
|
depends on ARCH_AT91SAM9263
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
|
|
|
|
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
|
|
|
|
|
2008-05-25 00:47:04 +08:00
|
|
|
config MACH_USB_A9263
|
|
|
|
bool "CALAO USB-A9263"
|
|
|
|
depends on ARCH_AT91SAM9263
|
|
|
|
help
|
|
|
|
Select this if you are using a Calao Systems USB-A9263.
|
|
|
|
<http://www.calao-systems.com>
|
|
|
|
|
2008-10-07 03:13:53 +08:00
|
|
|
config MACH_NEOCORE926
|
|
|
|
bool "Adeneo NEOCORE926"
|
|
|
|
depends on ARCH_AT91SAM9263
|
|
|
|
help
|
|
|
|
Select this if you are using the Adeneo Neocore 926 board.
|
|
|
|
|
2007-02-08 17:22:16 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
2007-05-12 02:24:18 +08:00
|
|
|
if ARCH_AT91SAM9RL
|
|
|
|
|
|
|
|
comment "AT91SAM9RL Board Type"
|
|
|
|
|
|
|
|
config MACH_AT91SAM9RLEK
|
|
|
|
bool "Atmel AT91SAM9RL-EK Evaluation Kit"
|
|
|
|
depends on ARCH_AT91SAM9RL
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
2008-07-10 17:15:35 +08:00
|
|
|
if ARCH_AT91SAM9G20
|
|
|
|
|
|
|
|
comment "AT91SAM9G20 Board Type"
|
|
|
|
|
|
|
|
config MACH_AT91SAM9G20EK
|
|
|
|
bool "Atmel AT91SAM9G20-EK Evaluation Kit"
|
|
|
|
depends on ARCH_AT91SAM9G20
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit.
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
2008-01-24 22:16:41 +08:00
|
|
|
if ARCH_AT91CAP9
|
|
|
|
|
|
|
|
comment "AT91CAP9 Board Type"
|
|
|
|
|
|
|
|
config MACH_AT91CAP9ADK
|
|
|
|
bool "Atmel AT91CAP9A-DK Evaluation Kit"
|
|
|
|
depends on ARCH_AT91CAP9
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit.
|
|
|
|
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138>
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
2007-07-30 09:39:21 +08:00
|
|
|
if ARCH_AT91X40
|
|
|
|
|
|
|
|
comment "AT91X40 Board Type"
|
|
|
|
|
|
|
|
config MACH_AT91EB01
|
|
|
|
bool "Atmel AT91EB01 Evaluation Kit"
|
|
|
|
help
|
|
|
|
Select this if you are using Atmel's AT91EB01 Evaluation Kit.
|
|
|
|
It is also a popular target for simulators such as GDB's
|
|
|
|
ARM simulator (commonly known as the ARMulator) and the
|
|
|
|
Skyeye simulator.
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
|
2006-12-01 21:51:13 +08:00
|
|
|
comment "AT91 Board Options"
|
|
|
|
|
|
|
|
config MTD_AT91_DATAFLASH_CARD
|
|
|
|
bool "Enable DataFlash Card support"
|
2008-10-07 03:13:53 +08:00
|
|
|
depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_NEOCORE926)
|
2006-12-01 21:51:13 +08:00
|
|
|
help
|
|
|
|
Enable support for the DataFlash card.
|
|
|
|
|
2008-08-01 17:06:40 +08:00
|
|
|
config MTD_NAND_ATMEL_BUSWIDTH_16
|
2006-12-01 21:51:13 +08:00
|
|
|
bool "Enable 16-bit data bus interface to NAND flash"
|
2008-07-10 17:15:35 +08:00
|
|
|
depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91CAP9ADK)
|
2006-12-01 21:51:13 +08:00
|
|
|
help
|
|
|
|
On AT91SAM926x boards both types of NAND flash can be present
|
|
|
|
(8 and 16 bit data bus width).
|
2006-06-21 02:30:18 +08:00
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
# ----------------------------------------------------------
|
2006-01-10 01:05:41 +08:00
|
|
|
|
2006-06-29 23:06:33 +08:00
|
|
|
comment "AT91 Feature Selections"
|
2006-01-10 01:05:41 +08:00
|
|
|
|
|
|
|
config AT91_PROGRAMMABLE_CLOCKS
|
|
|
|
bool "Programmable Clocks"
|
|
|
|
help
|
|
|
|
Select this if you need to program one or more of the PCK0..PCK3
|
|
|
|
programmable clock outputs.
|
|
|
|
|
2008-09-22 04:35:18 +08:00
|
|
|
config AT91_SLOW_CLOCK
|
|
|
|
bool "Suspend-to-RAM disables main oscillator"
|
|
|
|
depends on SUSPEND
|
|
|
|
help
|
|
|
|
Select this if you want Suspend-to-RAM to save the most power
|
|
|
|
possible (without powering off the CPU) by disabling the PLLs
|
|
|
|
and main oscillator so that only the 32 KiHz clock is available.
|
|
|
|
|
|
|
|
When only that slow-clock is available, some peripherals lose
|
|
|
|
functionality. Many can't issue wakeup events unless faster
|
|
|
|
clocks are available. Some lose their operating state and
|
|
|
|
need to be completely re-initialized.
|
|
|
|
|
2007-11-13 00:59:10 +08:00
|
|
|
config AT91_TIMER_HZ
|
|
|
|
int "Kernel HZ (jiffies per second)"
|
|
|
|
range 32 1024
|
|
|
|
depends on ARCH_AT91
|
|
|
|
default "128" if ARCH_AT91RM9200
|
|
|
|
default "100"
|
|
|
|
help
|
|
|
|
On AT91rm9200 chips where you're using a system clock derived
|
|
|
|
from the 32768 Hz hardware clock, this tick rate should divide
|
|
|
|
it exactly: use a power-of-two value, such as 128 or 256, to
|
|
|
|
reduce timing errors caused by rounding.
|
|
|
|
|
|
|
|
On AT91sam926x chips, or otherwise when using a higher precision
|
|
|
|
system clock (of at least several MHz), rounding is less of a
|
|
|
|
problem so it can be safer to use a decimal values like 100.
|
|
|
|
|
2008-01-29 22:43:13 +08:00
|
|
|
choice
|
|
|
|
prompt "Select a UART for early kernel messages"
|
|
|
|
|
|
|
|
config AT91_EARLY_DBGU
|
|
|
|
bool "DBGU"
|
|
|
|
|
|
|
|
config AT91_EARLY_USART0
|
|
|
|
bool "USART0"
|
|
|
|
|
|
|
|
config AT91_EARLY_USART1
|
|
|
|
bool "USART1"
|
|
|
|
|
|
|
|
config AT91_EARLY_USART2
|
|
|
|
bool "USART2"
|
|
|
|
depends on ! ARCH_AT91X40
|
|
|
|
|
|
|
|
config AT91_EARLY_USART3
|
|
|
|
bool "USART3"
|
2008-07-10 17:15:35 +08:00
|
|
|
depends on (ARCH_AT91RM9200 || ARCH_AT91SAM9RL || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20)
|
2008-01-29 22:43:13 +08:00
|
|
|
|
|
|
|
config AT91_EARLY_USART4
|
|
|
|
bool "USART4"
|
2008-07-10 17:15:35 +08:00
|
|
|
depends on ARCH_AT91SAM9260 || ARCH_AT91SAM9G20
|
2008-01-29 22:43:13 +08:00
|
|
|
|
|
|
|
config AT91_EARLY_USART5
|
|
|
|
bool "USART5"
|
2008-07-10 17:15:35 +08:00
|
|
|
depends on ARCH_AT91SAM9260 || ARCH_AT91SAM9G20
|
2008-01-29 22:43:13 +08:00
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2006-01-10 01:05:41 +08:00
|
|
|
endmenu
|
|
|
|
|
|
|
|
endif
|