WLAN from SDIO to SPI: battle plan

dennis.yxun dennis.yxun at gmail.com
Wed Aug 27 23:22:02 CEST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

HI:
  Yes. it works after remove "__attribute__((__packed__))"

#arm-angstrom-linux-gnueabi-objdump -d ./cpu/arm920t/s3c24x0/spi.o
  ....
  d0:	e59d2004 	ldr	r2, [sp, #4]
  d4:	e3a0304f 	mov	r3, #79	; 0x4f
  d8:	e582300c 	str	r3, [r2, #12]
  dc:	e59d2004 	ldr	r2, [sp, #4]
  e0:	e3a03001 	mov	r3, #1	; 0x1
  e4:	e5823008 	str	r3, [r2, #8]
  e8:	e59d2004 	ldr	r2, [sp, #4]
  ec:	e283301e 	add	r3, r3, #30	; 0x1e
  f0:	e5823000 	str	r3, [r2]
  f4:	e3a01000 	mov	r1, #0	; 0x0
  f8:	e2811001 	add	r1, r1, #1	; 0x1
  fc:	e59d2004 	ldr	r2, [sp, #4]
 100:	e3a030ff 	mov	r3, #255	; 0xff

  I see the same problem, if use "__packed__" attribute,  GCC
will compile with byte-access code which may takes more
 instruction. Say, update a counter, and it can't keep it ATOMIC access,
may produce race, or data corrupt.

Werner Almesberger wrote:
> Dennis, if you remove that "__attribute__((__packed__))" from
> S3C24X0_SPI_CHANNEL in include/s3c24x0.h, does your original code work
> then ?
> 
> - Werner
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFItcV628unoHSQkyIRAjqhAJ9MCC+zoLyW9EliCTNxtSGxhrv3LwCfQYbX
2W2wtskl/xSDLC0CaFV+DUs=
=A23I
-----END PGP SIGNATURE-----



More information about the openmoko-kernel mailing list