sb800: Add Kconfig option ENABLE_IDE_COMBINED_MODE
authorKerry Sheh <shekairui@gmail.com>
Tue, 11 Oct 2011 09:27:06 +0000 (17:27 +0800)
committerMarc Jones <marcj303@gmail.com>
Wed, 12 Oct 2011 01:41:38 +0000 (03:41 +0200)
Add this option to enable/disable SATA IDE Combined Mode feature

Change-Id: I1ab8acd27947a71baf954f44d0741f81f48e5541
Signed-off-by: Kerry Sheh <kerry.she@amd.com>
Signed-off-by: Kerry Sheh <shekairui@gmail.com>
Reviewed-on: http://review.coreboot.org/231
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marcj303@gmail.com>
src/southbridge/amd/cimx/sb800/Kconfig
src/southbridge/amd/cimx/sb800/cfg.c
src/southbridge/amd/cimx/sb800/late.c

index b7ac0dbf0281d94ae3919802cb24d435b105027d..17ff3f9d68569e29983f22716fc456fdbd568d92 100644 (file)
@@ -28,6 +28,22 @@ config BOOTBLOCK_SOUTHBRIDGE_INIT
         string
         default "southbridge/amd/cimx/sb800/bootblock.c"
 
+config ENABLE_IDE_COMBINED_MODE
+       bool "Enable SATA IDE combined mode"
+       default n
+       help
+         If Combined Mode is enabled. IDE controller is exposed and
+         SATA controller has control over Port0 through Port3,
+         IDE controller has control over Port4 and Port5.
+
+         If Combined Mode is disabled, IDE controller is hidden and
+         SATA controller has full control of all 6 Ports when operating in non-IDE mode.
+
+config IDE_COMBINED_MODE
+       hex
+       default "0x0" if ENABLE_IDE_COMBINED_MODE
+       default "0x1" if !ENABLE_IDE_COMBINED_MODE
+
 choice
        prompt "SATA Mode"
        default SB800_SATA_IDE
index a7801a8fc5b19d601c436cba3296610aea934e58..a34dd14baac74a792521e3177135bf879103320d 100644 (file)
@@ -84,7 +84,7 @@ void sb800_cimx_config(AMDSBCFG *sb_config)
        sb_config->SATAMODE.SataMode.SataController = SATA_CONTROLLER;
        sb_config->SATAMODE.SataMode.SataIdeCombMdPriSecOpt = 0; //0 -IDE as primary, 1 -IDE as secondary.
                                                                //TODO: set to secondary not take effect.
-       sb_config->SATAMODE.SataMode.SataIdeCombinedMode = 0; //IDE controlor exposed and combined mode enabled
+       sb_config->SATAMODE.SataMode.SataIdeCombinedMode = CONFIG_IDE_COMBINED_MODE;
        sb_config->SATAMODE.SataMode.SATARefClkSel = SATA_CLOCK_SOURCE;
 
        /* Azalia HDA */
index c36ee03237626ce7413a65bdcf0c8a530ad4910f..b78f1ce726dd15309444ada5c9f4eef8b9773c07 100644 (file)
@@ -343,11 +343,6 @@ static void sb800_enable(device_t dev)
                break;
 
        case (0x14 << 3) | 1: /* 0:14:1 IDE */
-               if (dev->enabled) {
-                       sb_config->SATAMODE.SataMode.SataIdeCombinedMode = CIMX_OPTION_ENABLED;
-               } else {
-                       sb_config->SATAMODE.SataMode.SataIdeCombinedMode = CIMX_OPTION_DISABLED;
-               }
                break;
 
        case (0x14 << 3) | 2: /* 0:14:2 HDA */