From owner-freebsd-arm@FreeBSD.ORG Tue Sep 11 23:43:20 2007 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E82D16A468 for ; Tue, 11 Sep 2007 23:43:20 +0000 (UTC) (envelope-from mlfbsd@dong.ci0.org) Received: from dong.ci0.org (dong.ci0.org [IPv6:2001:7a8:2066:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id AC6AB13C45E for ; Tue, 11 Sep 2007 23:43:19 +0000 (UTC) (envelope-from mlfbsd@dong.ci0.org) Received: from dong.ci0.org (localhost.ci0.org [127.0.0.1]) by dong.ci0.org (8.13.8/8.13.8) with ESMTP id l8C0LgC7091529; Wed, 12 Sep 2007 02:21:42 +0200 (CEST) (envelope-from mlfbsd@dong.ci0.org) Received: (from mlfbsd@localhost) by dong.ci0.org (8.14.1/8.13.8/Submit) id l8C0LgUP091528; Wed, 12 Sep 2007 02:21:42 +0200 (CEST) (envelope-from mlfbsd) Date: Wed, 12 Sep 2007 02:21:41 +0200 From: Olivier Houchard To: Mikhael Skvortsov Message-ID: <20070912002141.GA91476@ci0.org> References: <92731189543354@webmail9.yandex.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="envbJBWh7q8WU6mo" Content-Disposition: inline In-Reply-To: <92731189543354@webmail9.yandex.ru> User-Agent: Mutt/1.4.1i Cc: freebsd-arm@freebsd.org Subject: Re: jornada 568 port X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Sep 2007 23:43:20 -0000 --envbJBWh7q8WU6mo Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Sep 12, 2007 at 12:42:34AM +0400, Mikhael Skvortsov wrote: > I'm trying to port FreeBSD to HP Jornada 568 PDA (http://en.wikipedia.org/wiki/Jornada_560_series). Boot process freezes almost just after enabling MMU: while sending something to UART > > cpufunc_control(0x337f, 0x107d); > arm_vector_init(ARM_VECTORS_LOW, ARM_VEC_ALL); > + printf("MMU, I-cache, D-cache, WB enabled.\n"); > > minicom receives only first nine chars plus a random one, i. e. "MMU, I-cae". > What can make this happening? I'm stuck without any ability to debug code. > > -- > Regards, Mikhael Hi Mikhael, Your problem is likely related to the fact the sa11x0 serial driver is poorly written. The standard 16550 driver should work fine, however. Could you try the (untested, because I can't anymore) attached patch, which just switches the driver, to see if it makes a difference ? Thanks, Olivier --envbJBWh7q8WU6mo Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="sa11x0_uart.diff" Index: arm/sa11x0/files.sa11x0 =================================================================== RCS file: /cognet/ncvs/src/sys/arm/sa11x0/files.sa11x0,v retrieving revision 1.2 diff -u -p -r1.2 files.sa11x0 --- arm/sa11x0/files.sa11x0 14 May 2004 13:26:52 -0000 1.2 +++ arm/sa11x0/files.sa11x0 11 Sep 2007 23:37:49 -0000 @@ -7,5 +7,5 @@ arm/sa11x0/sa11x0_io_asm.S optional sai arm/sa11x0/sa11x0_irq.S optional saip arm/sa11x0/sa11x0_irqhandler.c optional saip arm/sa11x0/uart_cpu_sa1110.c optional uart saip -arm/sa11x0/uart_dev_sa1110.c optional uart saip arm/sa11x0/uart_bus_sa1110.c optional uart saip +dev/uart/uart_dev_ns8250.c optional uart Index: arm/sa11x0/uart_bus_sa1110.c =================================================================== RCS file: /cognet/ncvs/src/sys/arm/sa11x0/uart_bus_sa1110.c,v retrieving revision 1.3 diff -u -p -r1.3 uart_bus_sa1110.c --- arm/sa11x0/uart_bus_sa1110.c 5 Jan 2005 21:58:48 -0000 1.3 +++ arm/sa11x0/uart_bus_sa1110.c 11 Sep 2007 23:36:50 -0000 @@ -70,7 +70,7 @@ uart_sa1110_probe(device_t dev) sc = device_get_softc(dev); sc->sc_sysdev = SLIST_FIRST(&uart_sysdevs); - sc->sc_class = &uart_sa1110_class; + sc->sc_class = &uart_ns8250_class; bcopy(&sc->sc_sysdev->bas, &sc->sc_bas, sizeof(sc->sc_bas)); return(uart_bus_probe(dev, 0, 0, 0, 0)); return (0); Index: arm/sa11x0/uart_cpu_sa1110.c =================================================================== RCS file: /cognet/ncvs/src/sys/arm/sa11x0/uart_cpu_sa1110.c,v retrieving revision 1.7 diff -u -p -r1.7 uart_cpu_sa1110.c --- arm/sa11x0/uart_cpu_sa1110.c 2 Apr 2007 22:00:21 -0000 1.7 +++ arm/sa11x0/uart_cpu_sa1110.c 11 Sep 2007 23:27:08 -0000 @@ -56,7 +56,7 @@ int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { - di->ops = uart_getops(&uart_sa1110_class); + di->ops = uart_getops(&uart_ns8250_class); di->bas.chan = 0; di->bas.bst = &sa11x0_bs_tag; di->bas.bsh = sa1110_uart_vaddr; --envbJBWh7q8WU6mo--