/* Board configuration information.
 *
 * Copyright (C) 2012 Google, Inc.
 */
#ifndef BOARD_CONFIG_H__
#define BOARD_CONFIG_H__

#define BOARD_SALAMI_PROTO 1
#define BOARD_LEXX_B1 2
#define BOARD_LEXX_B2 3
#define BOARD_LEXX_B3 4
#define BOARD_LEXX_B4 5
#define BOARD_EARTH_B1 6
#define BOARD_EARTH_B2 7
#define BOARD_EARTH_B3 8
#define BOARD_EARTH_B4 9
#define BOARD_HENDRIX_B1 20
#define BOARD_HENDRIX_B3 21
#define BOARD_HENDRIX_B4 22
#define BOARD_CHIRP_B1 23
#define BOARD_CHIRP_B3 24
#define BOARD_CHIRP_B4 25
#define BOARD_JOPLIN_B1 26
#define BOARD_JOPLIN_B3 27
#define BOARD_JOPLIN_B4 28
#define BOARD_CAPRICA_B1 29
#define BOARD_CAPRICA_B2 30
#define BOARD_CAPRICA_B3 31
#define BOARD_CAPRICA_B4 32

#if CFG_BOARD_NAME == BOARD_SALAMI_PROTO
#define BOARD_NAME            "salami-proto"
#define BOARD_REV              0
#define FTS_BLK_START          9
#define FTS_BLK_CNT            7
#define KERNEL_BLK_START      16
#define KERNEL_BLK_CNT        16
#define RECOVERY_BLK_START    32
#define RECOVERY_BLK_CNT      60
#define BACKUPSYS_BLK_START   (RECOVERY_BLK_START + RECOVERY_BLK_CNT)
#define BACKUPSYS_BLK_CNT     80
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           6
#define LED_WHITE_PWM        17
#define LED_RED_PWM          18
#elif CFG_BOARD_NAME == BOARD_LEXX_B1
#define BOARD_NAME            "lexx-b1"
#define BOARD_REV              1
#define FTS_BLK_START       4068
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      89
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  3948
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 4096
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_LEXX_B2
#define BOARD_NAME            "lexx-b2"
#define BOARD_REV              2
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_LEXX_B3
#define BOARD_NAME            "lexx-b3"
#define BOARD_REV              3
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_LEXX_B4
#define BOARD_NAME            "lexx-b4"
#define BOARD_REV              4
#define FTS_BLK_START       2041
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      53
#define KERNEL_BLK_CNT        36
#define RECOVERY_BLK_START  1957
#define RECOVERY_BLK_CNT      76
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_EARTH_B1
#define BOARD_NAME            "earth-b1"
#define BOARD_REV              1
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_EARTH_B2
#define BOARD_NAME            "earth-b2"
#define BOARD_REV              2
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_EARTH_B3
#define BOARD_NAME            "earth-b3"
#define BOARD_REV              3
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      83
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1902
#define RECOVERY_BLK_CNT     118
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_EARTH_B4
#define BOARD_NAME            "earth-b4"
#define BOARD_REV              4
#define FTS_BLK_START       2041
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      55
#define KERNEL_BLK_CNT        36
#define RECOVERY_BLK_START  1959
#define RECOVERY_BLK_CNT      74
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_HENDRIX_B1
#define BOARD_NAME            "hendrix-b1"
#define BOARD_REV              1
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (256 * 1024 * 1024)
#define BUTTON_GPIO           36
#define AUD_MUTE_GPIO         5
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#elif CFG_BOARD_NAME == BOARD_HENDRIX_B3
#define BOARD_NAME            "hendrix-b3"
#define BOARD_REV              3
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      83
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1902
#define RECOVERY_BLK_CNT     118
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (256 * 1024 * 1024)
#define BUTTON_GPIO           36
#define AUD_MUTE_GPIO         5
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#elif CFG_BOARD_NAME == BOARD_HENDRIX_B4
#define BOARD_NAME            "hendrix-b4"
#define BOARD_REV              4
#define FTS_BLK_START       2041
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      55
#define KERNEL_BLK_CNT        36
#define RECOVERY_BLK_START  1959
#define RECOVERY_BLK_CNT      74
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (256 * 1024 * 1024)
#define BUTTON_GPIO           36
#define AUD_MUTE_GPIO         5
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#elif CFG_BOARD_NAME == BOARD_CHIRP_B1
#define BOARD_NAME            "chirp-b1"
#define BOARD_REV              1
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define TOPBOARD_INTR_GPIO    10
#define BUTTON_GPIO           15
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#define TOUCH_RESET_GPIO     28
#elif CFG_BOARD_NAME == BOARD_CHIRP_B3
#define BOARD_NAME            "chirp-b3"
#define BOARD_REV              3
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      83
#define KERNEL_BLK_CNT        40
#define RECOVERY_BLK_START  1964
#define RECOVERY_BLK_CNT      56
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define TOPBOARD_INTR_GPIO    10
#define BUTTON_GPIO           15
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#define TOUCH_RESET_GPIO     28
#elif CFG_BOARD_NAME == BOARD_CHIRP_B4
#define BOARD_NAME            "chirp-b4"
#define BOARD_REV              4
#define FTS_BLK_START       2041
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      55
#define KERNEL_BLK_CNT        36
#define RECOVERY_BLK_START  1977
#define RECOVERY_BLK_CNT      56
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define TOPBOARD_INTR_GPIO    10
#define BUTTON_GPIO           15
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#define TOUCH_RESET_GPIO     28
#elif CFG_BOARD_NAME == BOARD_JOPLIN_B1
#define BOARD_NAME            "joplin-b1"
#define BOARD_REV              1
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      81
#define KERNEL_BLK_CNT        64
#define RECOVERY_BLK_START  1900
#define RECOVERY_BLK_CNT     120
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define TOPBOARD_INTR_GPIO    10
#define BUTTON_GPIO           15
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#define TOUCH_RESET_GPIO     28
#elif CFG_BOARD_NAME == BOARD_JOPLIN_B3
#define BOARD_NAME            "joplin-b3"
#define BOARD_REV              3
#define FTS_BLK_START       2020
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      83
#define KERNEL_BLK_CNT        40
#define RECOVERY_BLK_START  1964
#define RECOVERY_BLK_CNT      56
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define TOPBOARD_INTR_GPIO    10
#define BUTTON_GPIO           15
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#define TOUCH_RESET_GPIO     28
#elif CFG_BOARD_NAME == BOARD_JOPLIN_B4
#define BOARD_NAME            "joplin-b4"
#define BOARD_REV              4
#define FTS_BLK_START       2041
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      55
#define KERNEL_BLK_CNT        36
#define RECOVERY_BLK_START  1977
#define RECOVERY_BLK_CNT      56
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define TOPBOARD_INTR_GPIO    10
#define BUTTON_GPIO           15
#define LED_WHITE_PWM         2
#define LED_RED_PWM           3
#define TOUCH_RESET_GPIO     28
#elif CFG_BOARD_NAME == BOARD_CAPRICA_B1
#define BOARD_NAME            "caprica-b1"
#define BOARD_REV              1
#define FTS_BLK_START       2028
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      35
#define KERNEL_BLK_CNT        22
#define RECOVERY_BLK_START  1990
#define RECOVERY_BLK_CNT      38
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_CAPRICA_B2
#define BOARD_NAME            "caprica-b2"
#define BOARD_REV              2
#define FTS_BLK_START       2028
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      35
#define KERNEL_BLK_CNT        22
#define RECOVERY_BLK_START  1990
#define RECOVERY_BLK_CNT      38
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_CAPRICA_B3
#define BOARD_NAME            "caprica-b3"
#define BOARD_REV              3
#define FTS_BLK_START       2028
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      35
#define KERNEL_BLK_CNT        22
#define RECOVERY_BLK_START  1990
#define RECOVERY_BLK_CNT      38
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#elif CFG_BOARD_NAME == BOARD_CAPRICA_B4
#define BOARD_NAME            "caprica-b4"
#define BOARD_REV              4
#define FTS_BLK_START       2028
#define FTS_BLK_CNT            4
#define KERNEL_BLK_START      35
#define KERNEL_BLK_CNT        22
#define RECOVERY_BLK_START  1990
#define RECOVERY_BLK_CNT      38
/* No backupsys, so make sure it is invalid */
#define BACKUPSYS_BLK_START 2048
#define BACKUPSYS_BLK_CNT      0
#define BOARD_MEM_SIZE        (512 * 1024 * 1024)
#define BUTTON_GPIO           38
#define LED_WHITE_PWM         0
#define LED_RED_PWM           1
#else
#error "CFG_BOARD_NAME must be set"
#endif //CFG_BOARD_NAME

#endif //BOARD_CONFIG_H__
