From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus =?utf-8?Q?Klotzb=C3=BCcher?= Date: Wed, 30 Apr 2008 10:34:11 +0200 Subject: [U-Boot-Users] Setting processor endianess for USB modules In-Reply-To: <48177904.16185.58C770@ceggers.gmx.de> (Christian Eggers's message of "Tue\, 29 Apr 2008 19\:37\:40 +0200") References: <48177904.16185.58C770@ceggers.gmx.de> Message-ID: <878wyvvj0c.fsf@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Christian, "Christian Eggers" writes: > I've recognized that a lot of USB code in U-Boot uses the macros > swap_16() and swap_32() which are defined in usb.h. The behaviour > of the macros is controlled by the define LITTLEENDIAN. > > Is there a good reason NOT to use the macros provided in > asm/byteorder.h (as in the appropriate code in Linux-2.4 )? Largely not. But be carefull. Besides big and little endian CPUs we also have controllers that operate in big or little endian (see CFG_OHCI_BE_CONTROLLER), and then there are PCI controllers whose registers need to be accessed as little endian (CFG_OHCI_SWAP_REG_ACCESS). But your right, there is no real for LITTLEENDIAN. > I think that switching to these functions might be useful in order > to eliminate the need to use the LITTLEENDIAN define for > specifying the byteorder. It seems that LITTLEENDIAN is not > used outside the USB code. Right. Patches cleaning this up are more than welcome! Please note that cleaning up USB drivers under the cpu/ directory is a waste of time though. Boards using these drivers should be converted to use the generic infrastructure in drivers/usb/ instead. Best regards Markus Klotzbuecher -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de