From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timur Tabi Date: Sat, 22 Aug 2009 07:54:01 -0500 Subject: [U-Boot] [PATCH 2/2] e1000: fix PCI memory addressing In-Reply-To: <20090822091245.DF0A0833DBD2@gemini.denx.de> References: <1250542538-5717-1-git-send-email-timur@freescale.com> <20090822091245.DF0A0833DBD2@gemini.denx.de> Message-ID: <4A8FEA69.9080408@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk wrote: > Dear Timur Tabi, > > In message<1250542538-5717-1-git-send-email-timur@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 >> --- >> 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 *)".