Hi,
Maybe you can enable ISA
bus. And then add your low 32MB memory into ZONE_DMA, while the high 32MB
memory into ZONE_NORMAL.
In the case, you are
required to redefine MAX_DMA_ADDRESS to (PAGE_OFFSET + 0x00200000) in
asm-mips/dma.h
Just a noise.
From:
linux-mips-bounce@xxxxxxxxxxxxxx [mailto:linux-mips-bounce@xxxxxxxxxxxxxx] On Behalf Of ashley jones
Sent: Tuesday, June 06, 2006 8:38
PM
To: art; linux-mips@xxxxxxxxxxxxxx
Subject: Re: Socket buffer
allocation outside DMA-able memory
I guess your 25
bit dma address field will be word alligned, so ur dma engine will be able to
index up to 64 MB( 25+2 = 27 bits).
If that is
not the case then you can use one of the foll. work around,
* dont give whole 64 MB to linux, give only
Lower 32 MB.
* Give only upper 32 MB to linux, and give
memory to ur
dma engine from lower 32 MB, and once you recv any data you copy to skb and
submit to linux. ( ofcourse your performance will get hit in this case.)
art
<art@xxxxxxxxxx> wrote:
Hello all!
I work with ADM5120 chip. it has embedded switch.
Switch descriptor has 25-bit dma addres field - so addressible only
32Mb!
My system has 64Mb memory. But I have to set 32Mb to make it work!
I thought that setting DMA mask can help. So in
/arch/mips/adm5120/setup.c i make:
static struct platform_device adm5120hcd_device = {
.name = "adm5120-hcd",
.id = -1,
.dev = {
.dma_mask = &hcd_dmamask,
.coherent_dma_mask = 0x01ffffff,
},
.num_resources = ARRAY_SIZE(adm5120_hcd_resources),
.resource = adm5120_hcd_resources,
};
But It is wrong, because dev_alloc_skb dont know to which device it
allocates buffer!
How to tell kernel allocate skbuffers in less then 32Mb addrspace whet
system has 64Mb?
--
Best regards,
art mailto:art@xxxxxxxxxx
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com