[U-Boot-Users] mvbc_p board: build warnings

Hi,
I'm trying to clean up the build warnings for the mvbc_p board. I've succeded with all but this one:
mvbc_p.c: In function 'mvbc_init_gpio': mvbc_p.c:124: warning: dereferencing type-punned pointer will break strict-aliasing rules
This relates to the following code:
115 out_be32(&gpio->simple_ddr, SIMPLE_DDR); 116 out_be32(&gpio->simple_dvo, SIMPLE_DVO); 117 out_be32(&gpio->simple_ode, SIMPLE_ODE); 118 out_be32(&gpio->simple_gpioe, SIMPLE_GPIOEN); <== volatile u8 outo_gpioe; 119 120 out_be32((u32*)&gpio->sint_ode, SINT_ODE); <== volatile u8 sint_ode; 121 out_be32((u32*)&gpio->sint_ddr, SINT_DDR); <== volatile u8 sint_ddr; 122 out_be32((u32*)&gpio->sint_dvo, SINT_DVO); <== volatile u8 sint_dvo; 123 out_be32((u32*)&gpio->sint_inten, SINT_INTEN); <== volatile u8 sint_inten; 124 out_be32((u32*)&gpio->sint_itype, SINT_ITYPE); <== volatile u16 sint_itype; 125 out_be32((u32*)&gpio->sint_gpioe, SINT_GPIOEN); <== volatile u8 outo_gpioe;
I don't know why the warning is only issued for the "u16" type and not also for the "u8" ones, but anyway: Is the casting to "u32*" and using out_be32() here really correct?
I would expect to see some out_be8() and one out_be16() here?
Best regards,
Wolfgang Denk

Wolfgang,
thanks - I'll fix it on monday/tuesday and send a patch after testing the -rc2.
regards, André
Wolfgang Denk schrieb:
Hi,
I'm trying to clean up the build warnings for the mvbc_p board. I've succeded with all but this one:
mvbc_p.c: In function 'mvbc_init_gpio': mvbc_p.c:124: warning: dereferencing type-punned pointer will break strict-aliasing rules
This relates to the following code:
115 out_be32(&gpio->simple_ddr, SIMPLE_DDR); 116 out_be32(&gpio->simple_dvo, SIMPLE_DVO); 117 out_be32(&gpio->simple_ode, SIMPLE_ODE); 118 out_be32(&gpio->simple_gpioe, SIMPLE_GPIOEN); <== volatile u8 outo_gpioe; 119 120 out_be32((u32*)&gpio->sint_ode, SINT_ODE); <== volatile u8 sint_ode; 121 out_be32((u32*)&gpio->sint_ddr, SINT_DDR); <== volatile u8 sint_ddr; 122 out_be32((u32*)&gpio->sint_dvo, SINT_DVO); <== volatile u8 sint_dvo; 123 out_be32((u32*)&gpio->sint_inten, SINT_INTEN); <== volatile u8 sint_inten; 124 out_be32((u32*)&gpio->sint_itype, SINT_ITYPE); <== volatile u16 sint_itype; 125 out_be32((u32*)&gpio->sint_gpioe, SINT_GPIOEN); <== volatile u8 outo_gpioe;
I don't know why the warning is only issued for the "u16" type and not also for the "u8" ones, but anyway: Is the casting to "u32*" and using out_be32() here really correct?
I would expect to see some out_be8() and one out_be16() here?
Best regards,
Wolfgang Denk
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

Dear André,
in message 4891F7AF.4030902@matrix-vision.de you wrote:
thanks - I'll fix it on monday/tuesday and send a patch after testing the -rc2.
Maybe I have missed your patch?
This problem is still open!
I have to decide if you fix this now, i. e. wait with the 1.3.4 release, or later.
Best regards,
Wolfgang Denk

Wolfgang,
sorry for this - it's been quite a mess before my holiday.
I'll be back in office next week and won't be able to fix it before mid of next week.
I have absolutely no problem if you do not wait for the patch. Maybe there will be other changes also ...
regards, André
Wolfgang Denk wrote:
Dear André,
in message 4891F7AF.4030902@matrix-vision.de you wrote:
thanks - I'll fix it on monday/tuesday and send a patch after testing the -rc2.
Maybe I have missed your patch?
This problem is still open!
I have to decide if you fix this now, i. e. wait with the 1.3.4 release, or later.
Best regards,
Wolfgang Denk
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

fix build warnings @ mvBC-P board by using correct types, i.e. change out_be32 to out_be16 and out_8 accordingly.
Signed-off-by: Andre Schwarz andre.schwarz@matrix-vision.de ---
Wolfgang,
sorry for the delay - I've been out of office.
regards, Andre
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
board/matrix_vision/mvbc_p/mvbc_p.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/board/matrix_vision/mvbc_p/mvbc_p.c b/board/matrix_vision/mvbc_p/mvbc_p.c index 5c71dec..3332f5a 100644 --- a/board/matrix_vision/mvbc_p/mvbc_p.c +++ b/board/matrix_vision/mvbc_p/mvbc_p.c @@ -117,12 +117,12 @@ void mvbc_init_gpio(void) out_be32(&gpio->simple_ode, SIMPLE_ODE); out_be32(&gpio->simple_gpioe, SIMPLE_GPIOEN);
- out_be32((u32*)&gpio->sint_ode, SINT_ODE); - out_be32((u32*)&gpio->sint_ddr, SINT_DDR); - out_be32((u32*)&gpio->sint_dvo, SINT_DVO); - out_be32((u32*)&gpio->sint_inten, SINT_INTEN); - out_be32((u32*)&gpio->sint_itype, SINT_ITYPE); - out_be32((u32*)&gpio->sint_gpioe, SINT_GPIOEN); + out_8(&gpio->sint_ode, SINT_ODE); + out_8(&gpio->sint_ddr, SINT_DDR); + out_8(&gpio->sint_dvo, SINT_DVO); + out_8(&gpio->sint_inten, SINT_INTEN); + out_be16(&gpio->sint_itype, SINT_ITYPE); + out_8(&gpio->sint_gpioe, SINT_GPIOEN);
out_8((u8*)MPC5XXX_WU_GPIO_ODE, WKUP_ODE); out_8((u8*)MPC5XXX_WU_GPIO_DIR, WKUP_DIR);

Dear Andre Schwarz,
In message 48A948CB.2010007@matrix-vision.de you wrote:
This is a multi-part message in MIME format. --------------020103080003000708050406 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
fix build warnings @ mvBC-P board by using correct types, i.e. change out_be32 to out_be16 and out_8 accordingly.
Signed-off-by: Andre Schwarz andre.schwarz@matrix-vision.de
Applied, thanks.
Best regards,
Wolfgang Denk
participants (4)
-
Andre Schwarz
-
André Schwarz
-
André Schwarz
-
Wolfgang Denk