: 1.ioremap가 물리주소와 가상주소를 mapping하는 역할을 한다고 하는데요...
: EZ-X5 보드에서.. arch/arm/mach-pxa/ez-x5.c의

: static struct map_desc ez_x5_io_desc[] __initdata = {
: { 0xf1000000,0x00000000 +0x400000,0x00100000, DOMAIN_IO, 0, 1, 0, 0 },
: { 0xf1200000,PXA_CS1_PHYS+0x000000,0x00100000, DOMAIN_IO, 0, 1, 0, 0 },
: { 0xf1300000,PXA_CS1_PHYS+0x400000,0x00100000, DOMAIN_IO, 0, 1, 0, 0 },
: { 0xf2000000,PXA_CS2_PHYS, 0x01000000, DOMAIN_IO, 0, 1, 0, 0 },
: { 0xf3000000,PXA_CS3_PHYS , 0x01000000, DOMAIN_IO, 0, 1, 0, 0 },
: { 0xf4000000,PXA_CS4_PHYS , 0x01000000, DOMAIN_IO, 0, 1, 0, 0 },
: { 0xf5000000,PXA_CS5_PHYS , 0x01000000, DOMAIN_IO, 0, 1, 0, 0 },
: LAST_DESC
: };

예 일단 모두 맵핑되어 있기 때문에 따로 맵핑할 필요가 없읍니다.

: 2.데이터를 읽고 쓰는데 있어서.. char device보다 block device를 쓰는게 더
: 빠르진 않나요?

흠...
제가 보기에는 별 차이가 없을 듯 합니다.
결국 속도는 IO의 접근 속도의 한계를 벗어나지 못합니다 .

: 3. 혹시 x-scale 에서DMA를 사용해서 read, write 하는 방법은 없는지요?

모릅니다. ㅜㅜ