From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Wed, 04 Aug 2010 22:35:39 +0200 Subject: [U-Boot] [PATCH V5 4/4] edminiv2: add mvsata_ide and cmd_ide support In-Reply-To: References: <1279022559-15772-1-git-send-email-albert.aribaud@free.fr> <1279022559-15772-2-git-send-email-albert.aribaud@free.fr> <1279022559-15772-3-git-send-email-albert.aribaud@free.fr> <1279022559-15772-4-git-send-email-albert.aribaud@free.fr> <4C49740D.3020003@free.fr> <4C55B043.3020604@free.fr> <4C5661FE.506@free.fr> <4C58051A.30606@free.fr> Message-ID: <4C59CF1B.6050904@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Some thoughts, and then a question for Wolfgang regarding IDE config macros Le 04/08/2010 08:08, Prafulla Wadaskar a ?crit : > I have two more suggestion, > 1. put ide_preinit function in mvsata driver, define CONFIG_IDE_PREINIT in board config file This could help reducing the source code size, because then we don't need an mvsata_ide.h any more as mvsata_ide_initialize_port() would become a static function ov mvsata_ide.c, called by ide_preinit(). One issue is that ide_preinit() should initialize only those ports that exist and are used in a given board. If we put it in mvsata_ide.c, then we need to rely on config macros to tell ide_preinit() where port 0 is, and if port 1 exists/is used, where it is too. Note that this info is exactly the same as that given in configs for cmd_ide. For instance, for ED Mini V2 (uses port 1 only) we'd have something like /* ATA registers base is at SATA controller base */ #define CONFIG_SYS_ATA_BASE_ADDR ORION5X_SATA_BASE /* ATA bus 0 is orion5x port 1 on ED Mini V2 */ #define CONFIG_SYS_ATA_IDE0_OFFSET ORION5X_SATA_PORT1_OFFSET ... and for OpenRD, which has two SATA ports: /* ATA registers base is at SATA controller base */ #define CONFIG_SYS_ATA_BASE_ADDR KW_SATA_BASE /* ATA bus 0 is orion5x port 1 on ED Mini V2 */ #define CONFIG_SYS_ATA_IDE0_OFFSET KW_SATA_PORT0_OFFSET #define CONFIG_SYS_ATA_IDE1_OFFSET KW_SATA_PORT1_OFFSET Theoretically I should create a similar set of macros for mvsata_ide, but it seems to be that since mvsata_ide is intended to always be used along with cmd_ide, it would be simpler to use the cmd_ide macros CONFIG_SYS_ATA_x macros in mvsata_ide.c to determine port0's address and, if port1 exists, port1's address. Wolfgang, would it be allowable for mvsata_ide to use macros intended for cmd_ide? Amicalement, -- Albert.