mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 15:02:25 +00:00
os: name lan9118 nic driver explicitly
* it is not dependent on pbxa9 anymore, but configureable * rename it to lan9118_nic_drv Ref #2190
This commit is contained in:
parent
dcc28b65cb
commit
312499a1ef
@ -71,9 +71,6 @@ namespace Pbxa9 {
|
|||||||
KMI_0_IRQ = 52,
|
KMI_0_IRQ = 52,
|
||||||
KMI_1_IRQ = 53,
|
KMI_1_IRQ = 53,
|
||||||
|
|
||||||
/* LAN */
|
|
||||||
ETHERNET_IRQ = 60,
|
|
||||||
|
|
||||||
/* SD card */
|
/* SD card */
|
||||||
PL180_IRQ_0 = 49,
|
PL180_IRQ_0 = 49,
|
||||||
PL180_IRQ_1 = 50,
|
PL180_IRQ_1 = 50,
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Genode includes */
|
/* Genode includes */
|
||||||
|
#include <base/attached_rom_dataspace.h>
|
||||||
#include <base/component.h>
|
#include <base/component.h>
|
||||||
#include <base/env.h>
|
#include <base/env.h>
|
||||||
#include <base/heap.h>
|
#include <base/heap.h>
|
||||||
#include <nic/component.h>
|
#include <nic/component.h>
|
||||||
#include <root/component.h>
|
#include <root/component.h>
|
||||||
#include <drivers/defs/pbxa9.h>
|
|
||||||
|
|
||||||
/* driver code */
|
/* driver code */
|
||||||
#include <lan9118.h>
|
#include <lan9118.h>
|
||||||
@ -33,25 +33,25 @@ class Root : public Genode::Root_component<Lan9118, Genode::Single_client>
|
|||||||
enum {
|
enum {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base address of MMIO resource
|
* If no resource addresses are given, we take these Realview
|
||||||
|
* platform addresses as default ones.
|
||||||
*/
|
*/
|
||||||
LAN9118_PHYS = 0x4e000000,
|
REALVIEW_MMIO_BASE = 0x4e000000,
|
||||||
|
REALVIEW_IRQ = 60,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Size of MMIO resource
|
* Size of MMIO resource
|
||||||
*
|
*
|
||||||
* On the RealView platform, the device spans actually a much larger
|
* The device spans actually a much larger
|
||||||
* resource. However, only the first page is used.
|
* resource. However, only the first page is needed.
|
||||||
*/
|
*/
|
||||||
LAN9118_SIZE = 0x1000,
|
LAN9118_MMIO_SIZE = 0x1000,
|
||||||
|
|
||||||
/**
|
|
||||||
* Interrupt line
|
|
||||||
*/
|
|
||||||
LAN9118_IRQ = Pbxa9::ETHERNET_IRQ,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Genode::Env &_env;
|
Genode::Env &_env;
|
||||||
|
Genode::Attached_rom_dataspace _config { _env, "config" };
|
||||||
|
Genode::addr_t _mmio_base { REALVIEW_MMIO_BASE };
|
||||||
|
unsigned _irq { REALVIEW_IRQ };
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ class Root : public Genode::Root_component<Lan9118, Genode::Single_client>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return new (Root::md_alloc())
|
return new (Root::md_alloc())
|
||||||
Lan9118(LAN9118_PHYS, LAN9118_SIZE, LAN9118_IRQ,
|
Lan9118(_mmio_base, LAN9118_MMIO_SIZE, _irq,
|
||||||
tx_buf_size, rx_buf_size, *md_alloc(), _env);
|
tx_buf_size, rx_buf_size, *md_alloc(), _env);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +89,13 @@ class Root : public Genode::Root_component<Lan9118, Genode::Single_client>
|
|||||||
Root(Genode::Env &env, Genode::Allocator &md_alloc)
|
Root(Genode::Env &env, Genode::Allocator &md_alloc)
|
||||||
: Genode::Root_component<Lan9118,
|
: Genode::Root_component<Lan9118,
|
||||||
Genode::Single_client>(env.ep(), md_alloc),
|
Genode::Single_client>(env.ep(), md_alloc),
|
||||||
_env(env) { }
|
_env(env)
|
||||||
|
{
|
||||||
|
_mmio_base =
|
||||||
|
_config.xml().attribute_value("mmio_base",
|
||||||
|
(Genode::addr_t)REALVIEW_MMIO_BASE);
|
||||||
|
_irq = _config.xml().attribute_value<unsigned>("irq", REALVIEW_IRQ);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
REQUIRES = pbxa9
|
REQUIRES = arm_v7
|
||||||
TARGET = nic_drv
|
TARGET = lan9118_nic_drv
|
||||||
SRC_CC = main.cc
|
SRC_CC = main.cc
|
||||||
LIBS = base
|
LIBS = base
|
||||||
INC_DIR += $(PRG_DIR)
|
INC_DIR += $(PRG_DIR)
|
Loading…
Reference in New Issue
Block a user