From 3a27164c05cbec3adb7aedee5e38047afc3aa416 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Sun, 15 Sep 2013 21:03:17 +0200 Subject: [PATCH] Included support for directly mapped SJA1000 into PCI mem region 0. SJA1000 mapped into memory BAR0 is used by experimental SJA1000 CAN controller emulator for QEMU implemented by Jin Yang in the frame of GSoC 2013 slot for RTEMS CAN related work. The RTEMS maintainers identified lack of broad available test environment as main problem and decided to denote one RTEMS GSoC 2013 to be for QEMU enhancement. More information about QEMU setup with CAN for Linux host system and Linux and RTEMS quest systems can be found on RTEMS Wiki http://wiki.rtems.org/wiki/index.php/Qemu_simulations Experimental version of QEMU 1.4.2 with SJA1000 hardware emulation is available from Jin Yang's GitHub project https://github.com/Jin-Yang/QEMU-1.4.2 Signed-off-by: Pavel Pisa --- lincan/README | 1 + lincan/src/Makefile.omk | 2 +- lincan/src/Makefile.std | 3 ++- lincan/src/boardlist.c | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lincan/README b/lincan/README index 2933e39..dcb7b94 100644 --- a/lincan/README +++ b/lincan/README @@ -250,6 +250,7 @@ The hw argument can be one of: - gensja1000io for many sja1000 I/O mapped cards (PCAN-PC/104 for example). - gensja1000mm for ISA memory mapped sja1000 CAN cards (for pikronisa card used by PiKRON Ltd. the clockfreq=24000 has to be specified) +- pcisja1000mm for SJA1000 directly mapped into PCI mem region 0 - pimx1 for MX1_DIS1 extension board for PiMX1 ARM based BCC - msmcan for MICROSPACE IO space indexed i82527 - unican for Unicontrols PCAN card diff --git a/lincan/src/Makefile.omk b/lincan/src/Makefile.omk index 155dee4..6bc651a 100644 --- a/lincan/src/Makefile.omk +++ b/lincan/src/Makefile.omk @@ -1,5 +1,5 @@ lincan_cards_NAMES = pip pccan smartcan nsi cc_can104 ems_cpcpci \ - pc_i03 pcm3680 aim104 m437 pcccan ssv bfadcan gensja1000io gensja1000mm eb8245 \ + pc_i03 pcm3680 aim104 m437 pcccan ssv bfadcan gensja1000io gensja1000mm pcisja1000mm eb8245 \ kv_pcican msmcan oscar adlink7841 pcan_pci esdpci200 unican virtual template lincan_morecards_NAMES = esdpci266 hms30c7202_can ns_dev_can ipci165 pimx1 tscan1 ts7kv nsi_canpci sh7760 mpc5200 diff --git a/lincan/src/Makefile.std b/lincan/src/Makefile.std index 49c4956..900cf91 100644 --- a/lincan/src/Makefile.std +++ b/lincan/src/Makefile.std @@ -63,7 +63,8 @@ endif SUPPORTED_CARDS = pip pccan smartcan nsi cc_can104 \ pc_i03 pcm3680 aim104 m437 pcccan ssv \ - bfadcan gensja1000mm gensja1000io kv_pcican msmcan virtual template \ + bfadcan gensja1000mm gensja1000io pcisja1000mm \ + kv_pcican msmcan virtual template \ unican unican_cl2 ems_cpcpci adlink7841 oscar \ pcan_pci esdpci200 # hms30c7202_can c_can c_can_irq tscan1 diff --git a/lincan/src/boardlist.c b/lincan/src/boardlist.c index 7623ea3..8cc67a0 100644 --- a/lincan/src/boardlist.c +++ b/lincan/src/boardlist.c @@ -57,6 +57,7 @@ extern int ssv_register(struct hwspecops_t *hwspecops); extern int bfadcan_register(struct hwspecops_t *hwspecops); extern int gensja1000mm_register(struct hwspecops_t *hwspecops); extern int gensja1000io_register(struct hwspecops_t *hwspecops); +extern int pcisja1000mm_register(struct hwspecops_t *hwspecops); extern int pimx1_register(struct hwspecops_t *hwspecops); extern int msmcan_register(struct hwspecops_t *hwspecops); extern int unican_register(struct hwspecops_t *hwspecops); @@ -146,6 +147,9 @@ const struct boardtype_t can_boardtypes[]={ #ifdef CONFIG_OC_LINCAN_CARD_gensja1000io {"gensja1000io", gensja1000io_register, 1}, #endif + #ifdef CONFIG_OC_LINCAN_CARD_pcisja1000mm + {"pcisja1000mm", pcisja1000mm_register, 0}, + #endif #ifdef CONFIG_OC_LINCAN_CARD_pimx1 {"pimx1", pimx1_register, 0}, #endif -- 2.39.2