[U-Boot] [PATCH 2/2] e1000: fix PCI memory addressing

Timur Tabi timur at freescale.com
Sat Aug 22 14:54:01 CEST 2009


Wolfgang Denk wrote:
> Dear Timur Tabi,
>
> In message<1250542538-5717-1-git-send-email-timur at freescale.com>  you wrote:
>> The Intel E1000 driver was making assumptions about the relationship between
>> some virtual, physical, and PCI addresses.
>>
>> Also fix some bad usage of the DEBUGOUT macro
>>
>> Signed-off-by: Timur Tabi<timur at freescale.com>
>> ---
>>   drivers/net/e1000.c |   17 +++++++++--------
>>   1 files changed, 9 insertions(+), 8 deletions(-)
>
> This patch causes compiler warnings:
>
> Configuring for MVBC_P board...
> e1000.c: In function 'e1000_transmit':
> e1000.c:5019: warning: passing argument 1 of 'virt_to_phys' discards
> qualifiers from pointer target type

I can't reproduce this problem.

powerpc-linux-gnu-gcc  -g  -Os   -fPIC -ffixed-r14 -meabi -D__KERNEL__ 
-DTEXT_BASE=0xFF800000 -I/home/b04825/git/u-boot.e1000/include 
-fno-builtin -ffreestanding -nostdinc -isystem 
/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-2/powerpc-linux-gnu/bin/../lib/gcc/powerpc-linux-gnu/4.3.2/include 
-pipe  -DCONFIG_PPC -D__powerpc__ -DCONFIG_MPC5xxx -ffixed-r2 -mstring 
-mcpu=603e -mmultiple -DTEXT_BASE=0xFF800000 
-I/home/b04825/git/u-boot.e1000/board -Wall -Wstrict-prototypes 
-fno-stack-protector   -o e1000.o e1000.c -c
powerpc-linux-gnu-ar crv libnet.a e1000.o

$ ${CROSS_COMPILE}gcc --version
powerpc-linux-gnu-gcc (Sourcery G++ Lite 4.3-74) 4.3.2

If you look at the definition of virt_to_bus, you'll see that I added a 
pointer cast specifically to address this warning:

#define virt_to_bus(devno, v)	pci_virt_to_mem(devno, (void *) (v))

If I remove the (void *) cast, I get this:

e1000.c: In function 'e1000_transmit':
e1000.c:5019: warning: passing argument 1 of 'virt_to_phys' discards 
qualifiers from pointer target type

So somehow, you're compiler is ignoring the "(void *)".



More information about the U-Boot mailing list