All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manish Lachwani <mlachwani@mvista.com>
To: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org
Subject: Re: [PATCH] Support for NEC VR4133 in 2.6
Date: Thu, 18 Nov 2004 18:18:29 -0800	[thread overview]
Message-ID: <419D57F5.5000808@mvista.com> (raw)
In-Reply-To: <20041119110733.5ddf14ea.yuasa@hh.iij4u.or.jp>

Hi Yoichi,

Thanks for the comments. My comments below:

Yoichi Yuasa wrote:
> Hi Manish,
> 
> I have a few comment ;p
> 
> On Thu, 18 Nov 2004 11:52:19 -0800
> Manish Lachwani <mlachwani@prometheus.mvista.com> wrote:
> 
> 
>>Hi Ralf
>>
>>Attached patch implements support for NEC VR4133 and NEC Rockhopper in
>>2.6. Currently there is no ethernet driver for the ports on the CMB-VR4133.
>>
>>The board has been booted with the Onboard PcNet32 network interface and with
>>an Intel EEPRO100 PCI NIC card.
>>
>>Please review ...
>>
>>Thanks
>>Manish Lachwani
>>
>>Index: linux/arch/mips/vr41xx/nec-cmbvr4133/init.c
>>===================================================================
>>--- /dev/null
>>+++ linux/arch/mips/vr41xx/nec-cmbvr4133/init.c
>>@@ -0,0 +1,81 @@
>>+/*
>>+ * arch/mips/vr41xx/nec-cmbvr4133/init.c
>>+ *
>>+ * PROM library initialisation code for NEC CMB-VR4133 board.
>>+ *
>>+ * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com> and
>>+ *         Jun Sun <jsun@mvista.com, or source@mvista.com> and
>>+ *         Alex Sapkov <asapkov@ru.mvista.com>
>>+ *
>>+ * 2001-2004 (c) MontaVista, Software, Inc. This file is licensed under
>>+ * the terms of the GNU General Public License version 2. This program
>>+ * is licensed "as is" without any warranty of any kind, whether express
>>+ * or implied.
>>+ *
>>+ * Support for NEC-CMBVR4133 in 2.6 
>>+ * Manish Lachwani (mlachwani@mvista.com)
>>+ */
>>+#include <linux/config.h>
>>+#include <linux/init.h>
>>+#include <linux/kernel.h>
>>+#include <linux/string.h>
>>+
>>+#include <asm/bootinfo.h>
>>+
>>+#ifdef CONFIG_ROCKHOPPER
>>+#include <asm/io.h>
>>+#include <linux/pci.h>
>>+
>>+#define PCICONFDREG	0xaf000c14
>>+#define PCICONFAREG	0xaf000c18
>>+#endif
>>+
>>+const char *get_system_type(void)
>>+{
>>+	return "NEC CMB-VR4133";
>>+}
>>+
>>+void __init bus_error_init(void)
>>+{
>>+	/* Do Nothing */
>>+}
>>+
>>+#ifdef CONFIG_ROCKHOPPER
>>+void disable_pcnet(void)
>>+{
> 
> 
> We don't need bus_error_init().
> I think that we should move  get_system_type() and disable_pcnet() to setup.c.
> 
> 
>>Index: linux/arch/mips/vr41xx/nec-cmbvr4133/setup.c
>>===================================================================
>>--- /dev/null
>>+++ linux/arch/mips/vr41xx/nec-cmbvr4133/setup.c
> 
> 
> <snip>
> 
>>+void vr41xx_restart(char *command)
>>+{
>>+	change_c0_status((ST0_BEV | ST0_ERL), (ST0_BEV | ST0_ERL));
>>+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
>>+	flush_cache_all();
>>+	write_c0_wired(0);
>>+	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
>>+}
>>+                                                                                             
>>+void vr41xx_halt(void)
>>+{
>>+	printk(KERN_NOTICE "\n** You can safely turn off the power\n");
>>+	while (1);
>>+}
>>+                                                                                             
>>+void vr41xx_power_off(void)
>>+{
>>+	vr41xx_halt();
>>+}
> 
> 
> We don't need these functions. We already have these in common part.
> 
> <snip>
> 
>>+static int __init nec_cmbvr4133_setup(void)
>>+{
>>+#ifdef CONFIG_ROCKHOPPER
>>+	extern void disable_pcnet(void);
>>+
>>+	disable_pcnet();
>>+#endif
>>+	set_io_port_base(IO_PORT_BASE);
> 
> 
> We don't need set_io_port_base().
> It already set in common part.

We need to do set_io_port_base() here else it will cause a TLB exception 
and fall back into the PROM.

> 
> <snip>
> 
>>+	_machine_restart = vr41xx_restart;
>>+	_machine_halt = vr41xx_halt;
>>+	_machine_power_off = vr41xx_power_off;
> 
> 
> We don't need these.
> 
> 
>>+	late_time_init = vr4133_serial_init;
> 
> 
> This should just only do vr4133_serial_init().
> This function don't need to late_time_init.

We need to call vr4133_serial_init() after console_init(). Hence, this 
change. The idea is that late_time_init() will be called after 
console_init() in init/main.c

> 
> 
>>Index: linux/include/asm-mips/vr41xx/cmbvr4133.h
>>===================================================================
>>--- /dev/null
>>+++ linux/include/asm-mips/vr41xx/cmbvr4133.h
>>@@ -0,0 +1,93 @@
>>+/*
>>+ * include/asm-mips/vr41xx/cmbvr4133.h
> 
> 
> <snip>
> 
>>+/*
>>+ * Board specific address mapping
>>+ */
>>+#define VR41XX_PCI_MEM1_BASE		0x10000000
>>+#define VR41XX_PCI_MEM1_SIZE		0x04000000
>>+#define VR41XX_PCI_MEM1_MASK		0x7c000000
>>+
>>+#define VR41XX_PCI_MEM2_BASE		0x14000000
>>+#define VR41XX_PCI_MEM2_SIZE		0x02000000
>>+#define VR41XX_PCI_MEM2_MASK		0x7e000000
>>+
>>+#define VR41XX_PCI_IO_BASE		0x16000000
>>+#define VR41XX_PCI_IO_SIZE		0x02000000
>>+#define VR41XX_PCI_IO_MASK		0x7e000000
>>+
>>+#define VR41XX_PCI_IO_START		0x01000000
>>+#define VR41XX_PCI_IO_END		0x01ffffff
>>+
>>+#define VR41XX_PCI_MEM_START		0x12000000
>>+#define VR41XX_PCI_MEM_END		0x15ffffff
>>+
>>+#define IO_PORT_BASE			KSEG1ADDR(VR41XX_PCI_IO_BASE)
>>+#define IO_PORT_RESOURCE_START		0
>>+#define IO_PORT_RESOURCE_END		VR41XX_PCI_IO_SIZE
>>+#define IO_MEM1_RESOURCE_START		VR41XX_PCI_MEM1_BASE
>>+#define IO_MEM1_RESOURCE_END		(VR41XX_PCI_MEM1_BASE + VR41XX_PCI_MEM1_SIZE)
>>+#define IO_MEM2_RESOURCE_START		VR41XX_PCI_MEM2_BASE
>>+#define IO_MEM2_RESOURCE_END		(VR41XX_PCI_MEM2_BASE + VR41XX_PCI_MEM2_SIZE)
>>+
> 
> 
> We don't need these definitions.
> These definitions are not used.
> 
> 
>>Index: linux/arch/mips/vr41xx/common/vr4133.c
>>===================================================================
>>--- /dev/null
>>+++ linux/arch/mips/vr41xx/common/vr4133.c
>>@@ -0,0 +1,75 @@
> 
> 
> We don't need these functions. We already have these in common part.
> 
> 
>>Index: linux/include/asm-mips/vr41xx/vr4133.h
>>===================================================================
>>--- /dev/null
>>+++ linux/include/asm-mips/vr41xx/vr4133.h
>>@@ -0,0 +1,25 @@
> 
> 
> Same, we don't need it.
> 
> 
>>Index: linux/arch/mips/pci/pci-vr41xx.h
>>===================================================================
>>--- linux.orig/arch/mips/pci/pci-vr41xx.h
>>+++ linux/arch/mips/pci/pci-vr41xx.h
>>@@ -18,6 +18,8 @@
>>  *  You should have received a copy of the GNU General Public License
>>  *  along with this program; if not, write to the Free Software
>>  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
>>+ *
>>+ *  Support for NEC VR4133 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
>>  */
>> #ifndef __PCI_VR41XX_H
>> #define __PCI_VR41XX_H
>>@@ -127,6 +129,10 @@
>> #define PCI_MASTER_MEM1_ADDRESS_MASK		0x7c000000U
>> #define PCI_MASTER_MEM1_PCI_BASE_ADDRESS	0x10000000U
>> 
>>+#define PCI_MASTER_MEM2_BUS_BASE_ADDRESS	0x14000000U
>>+#define PCI_MASTER_MEM2_ADDRESS_MASK		0x7e000000U
>>+#define PCI_MASTER_MEM2_PCI_BASE_ADDRESS	0x14000000U
>>+
>> #define PCI_TARGET_MEM1_ADDRESS_MASK		0x08000000U
>> #define PCI_TARGET_MEM1_BUS_BASE_ADDRESS	0x00000000U
>> 
>>Index: linux/arch/mips/pci/pci-vr41xx.c
>>===================================================================
>>--- linux.orig/arch/mips/pci/pci-vr41xx.c
>>+++ linux/arch/mips/pci/pci-vr41xx.c
>>@@ -19,6 +19,8 @@
>>  *  You should have received a copy of the GNU General Public License
>>  *  along with this program; if not, write to the Free Software
>>  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
>>+ *
>>+ *  Support for NEC VR4133 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
>>  */
>> /*
>>  * Changes:
>>@@ -43,6 +45,12 @@
>> 	.pci_base_address	= PCI_MASTER_MEM1_PCI_BASE_ADDRESS,
>> };
>> 
>>+static struct pci_master_address_conversion pci_master_memory2 = {
>>+	.bus_base_address	= PCI_MASTER_MEM2_BUS_BASE_ADDRESS,
>>+	.address_mask		= PCI_MASTER_MEM2_ADDRESS_MASK,
>>+	.pci_base_address	= PCI_MASTER_MEM2_PCI_BASE_ADDRESS,
>>+};
>>+
>> static struct pci_target_address_conversion pci_target_memory1 = {
>> 	.address_mask		= PCI_TARGET_MEM1_ADDRESS_MASK,
>> 	.bus_base_address	= PCI_TARGET_MEM1_BUS_BASE_ADDRESS,
>>@@ -76,6 +84,22 @@
>> 	.flags  = IORESOURCE_IO,
>> };
>> 
>>+#ifdef CONFIG_ROCKHOPPER
>>+static struct pci_controller_unit_setup vr41xx_pci_controller_unit_setup = {
>>+	.master_memory1				= &pci_master_memory1,
>>+	.master_memory2				= &pci_master_memory2,
>>+	.target_memory1				= &pci_target_memory1,
>>+	.master_io				= &pci_master_io,
>>+	.exclusive_access			= CANNOT_LOCK_FROM_DEVICE,
>>+	.wait_time_limit_from_irdy_to_trdy	= 0,
>>+	.mailbox				= &pci_mailbox,
>>+	.target_window1				= &pci_target_window1,
>>+	.master_latency_timer			= 0x80,
>>+	.retry_limit				= 0,
>>+	.arbiter_priority_control		= PCI_ARBITRATION_MODE_FAIR,
>>+	.take_away_gnt_mode			= PCI_TAKE_AWAY_GNT_DISABLE,
>>+};
>>+#else
>> static struct pci_controller_unit_setup vr41xx_pci_controller_unit_setup = {
>> 	.master_memory1				= &pci_master_memory1,
>> 	.target_memory1				= &pci_target_memory1,
>>@@ -89,6 +113,7 @@
>> 	.arbiter_priority_control		= PCI_ARBITRATION_MODE_FAIR,
>> 	.take_away_gnt_mode			= PCI_TAKE_AWAY_GNT_DISABLE,
>> };
>>+#endif
>> 
>> static struct pci_controller vr41xx_pci_controller = {
>> 	.pci_ops        = &vr41xx_pci_ops,
> 
> 
> Since pci_master_memory2 was the area which is not used, it was deleted.
> If you need this area, please let me know a reason.
> 
> 
>>Index: linux/arch/mips/vr41xx/common/serial.c
>>===================================================================
>>--- linux.orig/arch/mips/vr41xx/common/serial.c
>>+++ linux/arch/mips/vr41xx/common/serial.c
>>@@ -52,17 +52,17 @@
>>  #define TMICTX			0x10
>>  #define TMICMODE		0x20
>> 
>>-#define SIU_BASE_TYPE1		0x0c000000UL	/* VR4111 and VR4121 */
>>-#define SIU_BASE_TYPE2		0x0f000800UL	/* VR4122, VR4131 and VR4133 */
>>+#define SIU_BASE_TYPE1		KSEG1ADDR(0x0c000000)	/* VR4111 and VR4121 */
>>+#define SIU_BASE_TYPE2		KSEG1ADDR(0x0f000800)	/* VR4122, VR4131 and VR4133 */
>> #define SIU_SIZE		0x8UL
>> 
>>-#define SIU_BASE_BAUD		1152000
>>+#define SIU_BASE_BAUD		115200
> 
> 
> SIU base baud is 1152000. This change is wrong.
> 
> 
>> /* VR4122, VR4131 and VR4133 DSIU Registers */
>>-#define DSIU_BASE		0x0f000820UL
>>+#define DSIU_BASE		KSEG1ADDR(0x0f000820)
>> #define DSIU_SIZE		0x8UL
>> 
>>-#define DSIU_BASE_BAUD		1152000
>>+#define DSIU_BASE_BAUD	 	115200
> 
> 
> DSIU base baud is 1152000. This change is wrong.

My bad

>  
> 
>> int vr41xx_serial_ports = 0;
>> 
>>@@ -132,7 +132,7 @@
>> 	}
>> 	port.regshift = 0;
>> 	port.iotype = UPIO_MEM;
>>-	port.membase = ioremap(port.mapbase, SIU_SIZE);
>>+	port.membase = (unsigned char *)port.mapbase;
>> 	if (port.membase != NULL) {
>> 		if (early_serial_setup(&port) == 0) {
>> 			vr41xx_supply_clock(SIU_CLOCK);
>>@@ -164,7 +164,7 @@
>> 	port.mapbase = DSIU_BASE;
>> 	port.regshift = 0;
>> 	port.iotype = UPIO_MEM;
>>-	port.membase = ioremap(port.mapbase, DSIU_SIZE);
>>+	port.membase = (unsigned char *)port.mapbase;
>> 	if (port.membase != NULL) {
>> 		if (early_serial_setup(&port) == 0) {
>> 			vr41xx_supply_clock(DSIU_CLOCK);
>>
> 
> 
> These changes are same meaning.
> We don't need these.

I will look at the remaining changes which are unnecessary and generate 
a new patch

Thanks
Manish Lachwani


> 
> 
> Yoichi
> 

      reply	other threads:[~2004-11-19  2:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-18 19:52 [PATCH] Support for NEC VR4133 in 2.6 Manish Lachwani
2004-11-19  2:07 ` Yoichi Yuasa
2004-11-19  2:18   ` Manish Lachwani [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=419D57F5.5000808@mvista.com \
    --to=mlachwani@mvista.com \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --cc=yuasa@hh.iij4u.or.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.