[U-Boot] [PATCH V5 4/4] edminiv2: add mvsata_ide and cmd_ide support

Albert ARIBAUD albert.aribaud at free.fr
Wed Aug 4 22:35:39 CEST 2010


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.


More information about the U-Boot mailing list