Hi,
Made a board according to the solution of dm355 ipnc.
DM9000 works fine in u-boot, but it failed in kernel booting. The error is "read wrong id 0x2b2a2928" . It seems dm9000 does not put the data on the IO bus. CPU still reads the address of the register. I think the hardware has not problem because it works in u-boot. I check the dm9000 driver in linux kernel (same version to EVMDM355), haven't find the problem yet.
For hardware, CMD pin connects to A2, and CS pin connects to EM_CE1, and it works in 16 bit mode.
Following is the board setting:
/////////////////////////////////////////////////////////////////////////////////////////
#define ETH_PHYS (DAVINCI_ASYNC_EMIF_DATA_CE1_BASE)
#define ETH_PHYS_DATA (ETH_PHYS+16)
static struct resource dm9000_resources[] = {
[0] = {
.start = ETH_PHYS,
.end = ETH_PHYS + 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = ETH_PHYS_DATA,
.end = ETH_PHYS_DATA + 1,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = ETH_IRQ_USE,
.end = ETH_IRQ_USE,
.flags = (IORESOURCE_IRQ | IRQT_RISING),
},
};
////////////////////////////////////////////////////////////////////////////////