Mini2440 questions

Juergen Beisert jbe at pengutronix.de
Sat Apr 2 13:08:30 EDT 2011


Belisko Marek wrote:
> On Sat, Apr 2, 2011 at 5:31 PM, Juergen Beisert <jbe at pengutronix.de> wrote:
> > Hi Zoltán,
> >
> > Zoltán Kócsi wrote:
> >> I've got two issues. One is barebox related:
> >>
> >> Does the current git master branch supposed to boot from NAND?
> >> Download, config (mini2440 defconfig + very little personalisation),
> >> compile. Boot from NAND *is* enabled in the config.
> >
> > As long Sascha release a new barebox, the NAND boot feature of the
> > mini2440 is still in next. Its going to be released in the May release.
> >
> > So, you must still use the 'next' branch to get all S3C2440 related NAND
> > boot changes.
> >
> >> Load to RAM and start: starts up just fine.
> >> Boot from NAND: nothing.
> >
> > Sure. The NAND driver for the S3C2440 CPU is still broken for other NAND
> > types than small page ones.
> >
> >> I looked at the actual binary image with objdump -d and it seems to
> >> initialise the PLL, the SDRAM controller and load the NAND into the
> >> RAM, then jump onto it. All that code is within the 4K StepStone range.
> >> However, nothing happens, the board is dead.
> >
> > Yes, because the S3C2440 NAND driver loads the wrong content from the
> > NAND.
> >
> >> The other problem is not barebox related, but considering the audience
> >> of the list someone might have some ideas.
> >>
> >> Linux kernel, 2.6.37.2. Defconfig for mini2440. A fairly minimalistic
> >> kernel is then configured, dev. drivers for on-board stuff are static,
> >> everything else is modules. Low-level debug messages are enabled.
> >>
> >> Booting the kernel (using vivi...) hangs, just after the console is
> >> initialised:
> >>
> >> Copy linux kernel from 0x00060000 to 0x30008000, size = 0x002a0000 ...
> >> done
> >> zImage magic = 0x016f2818
> >> Setup linux parameters at 0x30000100
> >> linux command line is: "noinitrd root=/dev/mtdblock3 init=/linuxrc
> >> console=ttySAC0,115200"
> >> MACH_TYPE = 1999
> >> NOW, Booting Linux......
> >> Uncompressing Linux... done, booting the kernel.
> >> s3c24xx_serial_initconsole
> >> s3c24xx_serial_init_ports: initialising ports...
> >> s3c24xx_serial_init_port: port=c03a6378, platdev=c03b9ab0
> >> s3c24xx_serial_init_port: c03a6378 (hw 0)...
> >> resource c0397b10 (50000000..50003fff)
> >> port: map=50000000, mem=f7000000, irq=70 (70,71), clock=1
> >> s3c2440_serial_resetport: port=c03a6378 (50000000), cfg=c03b9a24
> >> s3c24xx_serial_init_port: port=c03a6434, platdev=c0398d00
> >> s3c24xx_serial_init_port: c03a6434 (hw 1)...
> >> resource c0397b48 (50004000..50007fff)
> >> port: map=50004000, mem=f7004000, irq=73 (73,74), clock=1
> >> s3c2440_serial_resetport: port=c03a6434 (50004000), cfg=c03b9a44
> >> s3c24xx_serial_init_port: port=c03a64f0, platdev=c0398db8
> >> s3c24xx_serial_init_port: c03a64f0 (hw 2)...
> >> resource c0397b80 (50008000..5000bfff)
> >> port: map=50008000, mem=f7008000, irq=76 (76,77), clock=1
> >> s3c2440_serial_resetport: port=c03a64f0 (50008000), cfg=c03b9a64
> >> s3c24xx_serial_init(c03a665c,c03a6628)
> >> s3c2440_serial_probe: dev=c03b9ab0
> >> s3c24xx_serial_probe(c03b9ab0, c03a6628) 0
> >> s3c24xx_serial_probe: initialising port c03a6354...
> >> s3c24xx_serial_init_port: port=c03a6378, platdev=c03b9ab0
> >> s3c24xx_serial_probe: adding port
> >> s3c2440_serial_probe: dev=c0398d00
> >> s3c24xx_serial_probe(c0398d00, c03a6628) 1
> >> s3c24xx_serial_probe: initialising port c03a6410...
> >> s3c24xx_serial_init_port: port=c03a6434, platdev=c0398d00
> >> s3c24xx_serial_probe: adding port
> >> s3c2440_serial_probe: dev=c0398db8
> >> s3c24xx_serial_probe(c0398db8, c03a6628) 2
> >> s3c24xx_serial_probe: initialising port c03a64cc...
> >> s3c24xx_serial_init_port: port=c03a64f0, platdev=c0398db8
> >> s3c24xx_serial_probe: adding port
> >>
> >> and then nothing. A LED on the board is blinking (two blinks, maybe
> >> 100ms apart, then about 200ms pause) but nothing comes out of the
> >> serial port. The LCD backlight is off and there doesn't seem to be
> >> either a splash image or debug info on it (console on LCD is enabled).
> >>
> >> The build environment is the latest buildroot, 4.5.2 gcc, 0.9.31 uClibc,
> >> everything is built from scratch (that's actually the aim of the whole
> >> excercise, to build a working Linux system on a Mini2440 HW from clean,
> >> up-to-date sources, not pre-built toolchains and pre-compiled packages
> >> or binary images).
> >>
> >> Any pointers would be highly appreciated.
> >
> > 1) do you use the mini2440 kernel command line parameter?
> >
> > In the 'next' branch I added this comment into mini2440's config:
> > #
> > # "mini2440" kernel parameter
> > # 0 .. 9 = screen type
> > # b = backlight enabled
> > # t = touch enabled
> > # c = camera enabled
> > # Note: can be "minit2440= " if nothing of these components are connected
> > #
> > bootargs="console=ttySAC0,115200 mini2440=0tbc"
> >
> > 2) in 2.6.37 and 2.6.38 the serial console name is totally broken. There
> > is a patch around to fix it.
>
> Not sure about that. I post latest updates last week to lkml and still
> use ttySAC0 and everything booting fine (at least with 2.6.39)

Oh, my mistake. Only in 2.6.37 its broken and needs a patch. Since 2.6.38 its 
fixed.

Juergen

-- 
Pengutronix e.K.                              | Juergen Beisert             |
Linux Solutions for Science and Industry      | Phone: +49-8766-939 228     |
Vertretung Sued/Muenchen, Germany             | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686              | http://www.pengutronix.de/  |



More information about the barebox mailing list