From: Greg Ungerer <gregungerer00@gmail.com>
To: Daniel Palmer <danieruru@gmail.com>, linux-m68k@vger.kernel.org
Subject: Re: Getting stuck during boot on a 68VZ328 (DragonBallVZ).
Date: Wed, 02 Apr 2014 22:26:48 +1000 [thread overview]
Message-ID: <533C0208.3040206@gmail.com> (raw)
In-Reply-To: <CAO64nm6Z0rOhiUYu5nqeZuVvfz0-9wy8D02gj_82nXRdi0NECw@mail.gmail.com>
Hi Daniel,
On 02/04/14 11:42, Daniel Palmer wrote:
> I now have this mostly working.
Can you create patches and send them here?
Clean neat patches are easily pushed up-stream to the kernel.
Regards
Greg
> I have some issues with busybox and
> the clock frequency showing incorrectly in /proc/cpuinfo. It's running
> at 33MHz and it has to be running somewhere near that as the baud rate
> for the serial is derived from that clock.
>
> Just in case someone else wants to run the latest kernel on a 68000 or
> 68000 based chip:
>
> - For the 68[EZ|VZ|SZ]328 you will need to fix up the PLL settings and
> do the fixes from Luis Alves at
> https://github.com/ljalves/alce68k/commit/4ef1df317c7acb6dfcd0fe9e87be9b4a60b141a4.
> If your chip isn't running at 16MHz you have to fix up the serial
> driver as it seems to assume a clock of 16MHz for it's baud rate
> setting.
>
> To make life easier you can easily add early printk support with a
> routine like this:
>
> ENTRY(vzads_early_print)
> moveml %d0/%d1/%a0,%sp@-
> movew %sr,%sp@-
> ori #0x0700,%sr
> movel %sp@(18),%a0 /* fetch parameter */
> movel %sp@(22),%d1 /* fetch parameter */
> jra 3f
> 1:
>
> moveb %d0, 0xfffff907
> 2:
> btst.b #2, 0xfffff906
> jne 2b
>
> subq #1,%d1
> 3: jeq 4f
> moveb %a0@+,%d0
> jne 1b
> 4:
> movew %sp@+,%sr
> moveml %sp@+,%d0/%d1/%a0
> rts
>
> Look at how it is wired up for the mac to wire it up.
>
> - Building a working toolchain and user land will probably turn you
> bald.. but if you like a challenge you need to use an old version of
> GCC. It's probably easiest to start with Luis Alves' pre compiled GCC
> 4.5.1 toolchain that you can download here:
> https://code.google.com/p/m68k/downloads/list. The problem with this
> toolchain is that uClibc contains 020+ instructions even in the m68000
> version. So download the uClibc source, run menuconfig, add -m68000 to
> it's LDFLAGs settings, build it and then copy the resulting libc.a
> over the version in the libs/m68000 directory in the toolchain. You
> can use objcopy to disassemble the resulting binaries to check for
> illegal instructions.
>
> - The latest version of busybox seems to work. Some applets wouldn't
> compile but I think they will after a bit of tinkering. Make sure to
> enter -m68000 in the LDFLAGs setting in menuconfig.
>
> - There are no handlers for address, buserr, illegal instruction
> exceptions. If you see the kernel restarting and then going crazy it's
> probably because you have unaligned accesses or instructions that the
> 68000 can't execute in your kernel or userland. Because the vector for
> those exceptions is 0 the PC goes to 0 and everything goes downhill
> from there. I added my own handlers and added some code to decode the
> 68000 stack frames for bus and address exceptions and found that the
> m68k-uclinux target in newer GCC versions is broken for 68000. There
> is a stale bug open for it that'll probably never be fixed.
>
> Attached is the output from what I'm sure is the first successful boot
> on a MC68VZ328 in a very long time. :)
>
>
> jumping to code at 0x400
> Reading input from board
> [ 0.000000] Linux version 3.14.0-rc8+ (daniel@mirmachina) (gcc
> version 4.5.1 (GCC) ) #229 Wed Apr 2 02:22:10 JST 2014
> [ 0.000000] bootconsole [early0] enabled
> [ 0.000000] 68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.
> [ 0.000000]
> [ 0.000000]
> [ 0.000000] uClinux/MC68VZ328
> [ 0.000000] M68VZ328 support by Evan Stawnyczy <e@lineo.ca>
> [ 0.000000] Flat model support (C) 1998,1999 Kenneth Albanowski, D.
> Jeff Dionne
> [ 0.000000] Built 1 zonelists in Zone order, mobility grouping off.
> Total pages: 2032
> [ 0.000000] Kernel command line: console=ttyS0,115200 loglevel=7
> [ 0.000000] PID hash table entries: 32 (order: -5, 128 bytes)
> [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes)
> [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
> [ 0.000000] Memory: 6792K/8192K available (879K kernel code, 36K
> rwdata, 156K rodata, 184K init, 18K bss, 1400K reserved)
> [ 0.000000] Virtual kernel memory layout:
> [ 0.000000] vector : 0x00000000 - 0x00000400 ( 1 KiB)
> [ 0.000000] kmap : 0x00000000 - 0xffffffff (4095 MiB)
> [ 0.000000] vmalloc : 0x00000000 - 0xffffffff (4095 MiB)
> [ 0.000000] lowmem : 0x00000000 - 0x00800000 ( 8 MiB)
> [ 0.000000] .init : 0x0010d000 - 0x0013b000 ( 184 KiB)
> [ 0.000000] .text : 0x00000400 - 0x000dc1f0 ( 880 KiB)
> [ 0.000000] .data : 0x000dc1f0 - 0x0010c340 ( 193 KiB)
> [ 0.000000] .bss : 0x0013b000 - 0x0013fb80 ( 19 KiB)
> [ 0.000000] NR_IRQS:32
> [ 0.000000] console [ttyS0] enabled
> 0.000000] console [ttyS0] enabled
> [ 0.010000] bootconsole [early0] disabled
> 0.010000] bootconsole [early0] disabled
> [ 0.020000] Calibrating delay loop... 2.35 BogoMIPS (lpj=11776)
> [ 0.170000] pid_max: default: 4096 minimum: 301
> [ 0.190000] Mount-cache hash table entries: 512
> [ 0.620000] devtmpfs: initialized
> [ 1.300000] bio: create slab <bio-0> at 0
> [ 1.370000] Switched to clocksource timer
> [ 7.280000] Block layer SCSI generic (bsg) driver version 0.4
> loaded (major 254)
> [ 7.300000] io scheduler noop registered (default)
> [ 7.350000] MC68328 serial driver version 1.00
> [ 7.350000] ttyS0 at 0xfffff900 (irq = 2) is a builtin MC68328 UART
> [ 7.560000] physmap platform flash device: 00400000 at 01000000
> [ 7.580000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit
> bank. Manufacturer ID 0x000004 Chip ID 0x0022c4
> [ 7.590000] physmap-flash.0: Found 1 x16 devices at 0x200000 in 16-bit bank
> [ 7.600000] Amd/Fujitsu Extended Query Table at 0x0040
> [ 7.610000] Amd/Fujitsu Extended Query version 1.0.
> [ 7.620000] physmap-flash.0: CFI contains unrecognised boot bank
> location (0). Assuming bottom.
> [ 7.630000] number of CFI chips: 2
> [ 7.710000] bootconsole [early0] disabled
> [ 7.930000] Freeing unused kernel memory: 184K (0010d000 - 0013b000)
> init started: BusyBox v1.23.0.git (2014-04-02 00:24:20 JST)
> starting pid 17, tty '': '/etc/init.d/rcS'
> starting pid 22, tty '': '-/bin/sh'
>
>
> BusyBox v1.23.0.git (2014-04-02 00:24:20 JST) hush - the humble shell
> Enter 'help' for a list of built-in commands.
>
> / # cat /proc/cpuinfo
> CPU: MC68VZ328
> MMU: none
> FPU: none
> Clocking: 18.8MHz
> BogoMips: 2.35
> Calibration: 1177600 loops
> --
> To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2014-04-02 12:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-27 17:58 Getting stuck during boot on a 68VZ328 (DragonBallVZ) Daniel Palmer
2014-03-28 6:38 ` Daniel Palmer
2014-03-28 10:17 ` Luis Alves
2014-04-02 1:42 ` Daniel Palmer
2014-04-02 5:06 ` Finn Thain
2014-04-02 5:35 ` Daniel Palmer
2014-04-02 10:47 ` Luis Alves
2014-04-02 11:33 ` Daniel Palmer
2014-04-02 12:02 ` Finn Thain
2014-04-02 12:31 ` Greg Ungerer
2014-04-02 12:26 ` Greg Ungerer [this message]
2014-04-02 13:19 ` Daniel Palmer
2014-04-03 12:46 ` Greg Ungerer
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=533C0208.3040206@gmail.com \
--to=gregungerer00@gmail.com \
--cc=danieruru@gmail.com \
--cc=linux-m68k@vger.kernel.org \
/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.