Which version of uboot is recommended for Beagleboard-XM (kernel 3.11.10)?

Hi,

I have been using kernel 2.6.32 for years and decided it was time to upgrade to a more recent one so I chose the following as it can run the board safely at 1GHz:

https://github.com/RobertCNelson/armv7-multiplatform (v3.11.x branch)

I also had to upgrade u-boot as my version (U-Boot SPL 2013.01-00071-g6ad77d8 (Feb 01 2013 - 22:10:08)) does not support zImage (even if I rebuild it with CONFIG_CMD_BOOTZ set it refuses to boot a zImage). So I switched to u-boot-2014.1.

Whilst it booted first time the USB ports do not come up (and there are a bunch of errors during boot). I suspect this is a u-boot problem since if I boot my known working 2.6.32 kernel with uboot-2014.1 the usb ports are not working either. (If I go back to old uboot with 2.6.32 everything works fine so I know the board is good).

Is there a known stable version of u-boot for beaglexm that can boot a zImage for this kernel? Do I need some patches for uboot?

Thanks,
Mark

Serial output below:

U-Boot 2014.01 (Jan 30 2014 - 01:06:48)

OMAP3630/3730-GP ES1.1, CPU-OPP2, L3-200MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
Error: Bad compare! failed
Error: Bad compare! failed
Error: Bad compare! failed
NAND read from offset 260000 failed -74
*** Warning - readenv() failed, using default environment

In: serial
Out: serial
Err: serial
Beagle xM Rev A/B
No EEPROM on expansion board
Die ID #127400011ff00000015739eb0c00d00d
Net: usb_ether
Hit any key to stop autoboot: 0
mmc0 is current device
gpio: pin 173 (gpio 173) value is 0
gpio: pin 4 (gpio 4) value is 0
SD/MMC found on device 0
reading uEnv.txt
8 bytes read in 3 ms (2 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc …
** File not found /boot/uImage **
Booting from nand …

NAND read: device 0 offset 0x280000, size 0x400000
4194304 bytes read: OK
Wrong Image Format for bootm command
ERROR: can’t get kernel image!
3810576 bytes read in 264 ms (13.8 MiB/s)
13511 bytes read in 22 ms (599.6 KiB/s)
Booting with DT from mmc0 …
Kernel image @ 0x80200000 [ 0x000000 - 0x3a2510 ]

Flattened Device Tree blob at 80f80000

Booting using the fdt blob at 0x80f80000
Using Device Tree in place at 80f80000, end 80f864c6

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.11.10-armv7-x14.2 (xxxx@xxxxxxx) (gcc version 4.8.2 20131014 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2013.10 - Linaro GCC 2013.10) ) #1 SMP Wed Jan 29 23:51:17 GMT 2014
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Generic OMAP3-GP (Flattened Device Tree), model: TI OMAP3 BeagleBoard xM
[ 0.000000] cma: CMA: reserved 16 MiB at 9e800000
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] OMAP3630 ES1.1 (l2cache iva sgx neon isp 192mhz_clk )
[ 0.000000] PERCPU: Embedded 9 pages/cpu @c138e000 s14080 r8192 d14592 u36864
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129792
[ 0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=auto buddy=none camera=none vram=2M omapfb.mode=dvi:640x480MR-16@60 omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] allocated 1048576 bytes of page_cgroup
[ 0.000000] please try ‘cgroup_disable=memory’ option if you don’t want memory cgroups
[ 0.000000] Memory: 488964K/523264K available (7254K kernel code, 627K rwdata, 2864K rodata, 469K init, 1014K bss, 34300K reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc09e99f4 (10119 kB)
[ 0.000000] .init : 0xc09ea000 - 0xc0a5f700 ( 470 kB)
[ 0.000000] .data : 0xc0a60000 - 0xc0afcea0 ( 628 kB)
[ 0.000000] .bss : 0xc0afcea0 - 0xc0bfa6b8 (1015 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
[ 0.000000] Total of 96 interrupts on 1 active controller
[ 0.000000] Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz
[ 0.000000] clock: dpll5: dpll5_clk omap3630
[ 0.000000] clock: dpll5: Applying SPRZ319E 2.1: 13000000, 443, 5, 8
[ 0.000000] OMAP clockevent source: timer12 at 32768 Hz
[ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[ 0.000000] OMAP clocksource: 32k_counter at 32768 Hz
[ 0.000000] Console: colour dummy device 80x30
[ 0.000305] Calibrating delay loop… 339.14 BogoMIPS (lpj=1695744)
[ 0.042633] pid_max: default: 32768 minimum: 301
[ 0.042785] Security Framework initialized
[ 0.042877] AppArmor: AppArmor initialized
[ 0.043090] Mount-cache hash table entries: 512
[ 0.048095] Initializing cgroup subsys memory
[ 0.048156] Initializing cgroup subsys devices
[ 0.048156] Initializing cgroup subsys freezer
[ 0.048187] Initializing cgroup subsys net_cls
[ 0.048187] Initializing cgroup subsys blkio
[ 0.048217] Initializing cgroup subsys perf_event
[ 0.048339] CPU: Testing write buffer coherency: ok
[ 0.048767] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.048828] Setting up static identity map for 0xc06dd928 - 0xc06dd980
[ 0.049987] Brought up 1 CPUs
[ 0.050018] SMP: Total of 1 processors activated (339.14 BogoMIPS).
[ 0.050018] CPU: All CPU(s) started in SVC mode.
[ 0.050903] devtmpfs: initialized
[ 0.072357] omap_hwmod: mcbsp2: cannot be enabled for reset (3)
[ 0.114868] xor: measuring software checksum speed
[ 0.198150] arm4regs : 647.200 MB/sec
[ 0.284698] 8regs : 477.200 MB/sec
[ 0.371246] 32regs : 558.400 MB/sec
[ 0.371246] xor: using function: arm4regs (647.200 MB/sec)
[ 0.371276] pinctrl core: initialized pinctrl subsystem
[ 0.371917] regulator-dummy: no parameters
[ 0.373382] NET: Registered protocol family 16
[ 0.377166] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.384704] Reprogramming SDRC clock to 400000000 Hz
[ 0.386688] omap_gpio 48310000.gpio: could not find pctldev for node /ocp/pinmux@48002a00/pinmux_gpio1_pins, deferring probe
[ 0.386749] platform 48310000.gpio: Driver omap_gpio requests probe deferral
[ 0.387786] OMAP GPIO hardware version 2.5
[ 0.394622] platform 49022000.mcbsp: alias fck already exists
[ 0.395019] platform 49024000.mcbsp: alias fck already exists
[ 0.398864] omap-gpmc 6e000000.gpmc: GPMC revision 5.0
[ 0.401428] No ATAGs?
[ 0.401428] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.403076] OMAP DMA hardware revision 5.0
[ 0.417785] bio: create slab at 0
[ 0.561950] raid6: int32x1 85 MB/s
[ 0.709106] raid6: int32x2 112 MB/s
[ 0.855773] raid6: int32x4 89 MB/s
[ 1.002868] raid6: int32x8 90 MB/s
[ 1.002868] raid6: using algorithm int32x2 (112 MB/s)
[ 1.002899] raid6: using intx1 recovery algorithm
[ 1.003906] edma-dma-engine edma-dma-engine.0: Can’t allocate PaRAM dummy slot
[ 1.003967] edma-dma-engine: probe of edma-dma-engine.0 failed with error -5
[ 1.019073] omap-dma-engine 48056000.dma-controller: OMAP DMA engine driver
[ 1.019683] platform hsusb2_power_reg.24: Driver reg-fixed-voltage requests probe deferral
[ 1.022918] SCSI subsystem initialized
[ 1.023651] usbcore: registered new interface driver usbfs
[ 1.023742] usbcore: registered new interface driver hub
[ 1.023925] usbcore: registered new device driver usb
[ 1.025787] omap_i2c i2c.10: did not get pins for i2c error: -19
[ 1.026367] omap_i2c i2c.10: bus 0 rev4.4 at 2600 kHz
[ 1.027313] omap_i2c i2c.11: did not get pins for i2c error: -19
[ 1.027770] omap_i2c i2c.11: bus 1 rev4.4 at 400 kHz
[ 1.027893] omap_i2c i2c.12: did not get pins for i2c error: -19
[ 1.028320] omap_i2c i2c.12: bus 2 rev4.4 at 100 kHz
[ 1.029174] media: Linux media interface: v0.10
[ 1.029266] Linux video capture interface: v2.00
[ 1.029418] pps_core: LinuxPPS API ver. 1 registered

Hi,

I have been using kernel 2.6.32 for years and decided it was time to upgrade
to a more recent one so I chose the following as it can run the board safely
at 1GHz:

technically it's still not "safe" see Nishanth's response when i asked
him yesterday about it..

https://lkml.org/lkml/2014/1/29/446

https://github.com/RobertCNelson/armv7-multiplatform (v3.11.x branch)

btw: v3.11.x/v3.12.x isn't really being testing anymore, care to jump
on v3.13.x while it's stable? :wink: (plus usb is now built-in with
v3.13.x and works when built-in)

I also had to upgrade u-boot as my version (U-Boot SPL
2013.01-00071-g6ad77d8 (Feb 01 2013 - 22:10:08)) does not support zImage
(even if I rebuild it with CONFIG_CMD_BOOTZ set it refuses to boot a
zImage). So I switched to u-boot-2014.1.

Whilst it booted first time the USB ports do not come up (and there are a
bunch of errors during boot). I suspect this is a u-boot problem since if I
boot my known working 2.6.32 kernel with uboot-2014.1 the usb ports are not
working either. (If I go back to old uboot with 2.6.32 everything works fine
so I know the board is good).

Is there a known stable version of u-boot for beaglexm that can boot a
zImage for this kernel? Do I need some patches for uboot?

Here's my patch against v2014.01
https://github.com/eewiki/u-boot-patches/blob/master/v2014.01/0001-omap3_beagle-uEnv.txt-bootz-n-fixes.patch

It's expecting:

fat directory: /dev/mmcblk0p1
zImage
/dtbs/omap3-beagle-*

root: /dev/mmcblk0p2

Thanks,
Mark

Serial output below:

U-Boot 2014.01 (Jan 30 2014 - 01:06:48)

OMAP3630/3730-GP ES1.1, CPU-OPP2, L3-200MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
Error: Bad compare! failed
Error: Bad compare! failed
Error: Bad compare! failed
NAND read from offset 260000 failed -74
*** Warning - readenv() failed, using default environment

In: serial
Out: serial
Err: serial
Beagle xM Rev A/B

PS: make it it loads the "omap3-beagle-xm-ab.dtb" otherwise usb will
not work period..

Regards,

yep - so it is.. I am more than happy to guide folks if anyone is
interested in pitching in as we work with upstream in the parcels
needed.

in fact, this is not just an OMAP3/beagle only issue -> I have had to
state precisely the same here:
https://bugzilla.kernel.org/show_bug.cgi?id=58541

Regards,
Nishanth Menon

As the default beagleboard kernel patchset wrangler, I can help out
where i can. (plus i have lots of beagle-xm generations running for
testing)

I have those 6 patches you've posted so far, in my v3.14-rc0 tree i'm
prepping for users.

Regards,

Thanks for your responses.

I will try the stable v3.13.x tonight (although I still suspect my u-boot is not setting up the board properly in the first place).

Mark

Sorry, just noticed you linked to a uboot patch as well. Will try both.

Mark

Thanks - the following are usually helpful, considering that all
developers do not have all board variants:
a) usually a tested-by/acked-by on the list is most helpful to move
those patches forward.
b) new series like DSS dt converstion etc - if folks could add
reviewd-by/acked-by/tested-by, it will help us move those forward as
well.
c) if folks could ensure latest linux-next tag and master tags are
sane and report issues - that'd help as well - mostly coz, some
trivial changes like
http://marc.info/?t=139059076500002&r=1&w=2 break platforms from time to time :frowning:
d) if folks would like to pickup any kernel feature and upstream as
well, we are more than happy to help along too. - especially with the
device tree conversion - many drivers need revamp - we are trying to
do this but our pace can greatly be helped by additional community
participation as well :).

Regards,
Nishanth Menon

Great! u-boot 2014.1 with the patch above and kernel 3.13.1-armv7-x9 worked first time. Usb camera and usb serial convertor show up in /dev now.

Remaining problems are:

  1. usb0 not working - it comes up after “ifconfig usb0 up” and “ifconfig usb0 192.168.0.20” both work, but the LEDS do not come on and no data is sent. Do I need a special driver for this? lsmod only shows:

ftdi_sio 28716 0 - Live 0xbf1c2000
usbserial 25040 1 ftdi_sio, Live 0xbf1b5000
gspca_ov534 11132 0 - Live 0xbf19c000
gspca_main 22504 1 gspca_ov534, Live 0xbf191000
rtl8192cu 60073 0 - Live 0xbf175000
rtl_usb 9251 1 rtl8192cu, Live 0xbf16e000
rtl8192c_common 41155 1 rtl8192cu, Live 0xbf15d000
rtlwifi 51753 2 rtl8192cu,rtl_usb, Live 0xbf149000
mac80211 451022 3 rtl8192cu,rtl_usb,rtlwifi, Live 0xbf0b0000
cfg80211 402423 2 rtlwifi,mac80211, Live 0xbf01f000
rfkill 18946 1 cfg80211, Live 0xbf015000

  1. rootfs is mounted read-only - I thin I can change this in uboot?
  2. and of course, the rtl8192cu driver doesn’t work (but it never has - I always need to build realtek’s version from their website - however, they do not seem to have a version which supports 3.13 :frowning:

Nishanth - I would be glad to give whatever information is helpful but being a newbie I am not clear about some of the terminology you use e.g. “ensure latest linux-next tag and master tags are
sane and report issues”.

Thanks again,
Mark

Great! u-boot 2014.1 with the patch above and kernel 3.13.1-armv7-x9 worked
first time. Usb camera and usb serial convertor show up in /dev now.

Remaining problems are:

1. usb0 not working - it comes up after "ifconfig usb0 up" and "ifconfig
usb0 192.168.0.20" both work, but the LEDS do not come on and no data is
sent. Do I need a special driver for this? lsmod only shows:
ftdi_sio 28716 0 - Live 0xbf1c2000
usbserial 25040 1 ftdi_sio, Live 0xbf1b5000
gspca_ov534 11132 0 - Live 0xbf19c000
gspca_main 22504 1 gspca_ov534, Live 0xbf191000
rtl8192cu 60073 0 - Live 0xbf175000
rtl_usb 9251 1 rtl8192cu, Live 0xbf16e000
rtl8192c_common 41155 1 rtl8192cu, Live 0xbf15d000
rtlwifi 51753 2 rtl8192cu,rtl_usb, Live 0xbf149000
mac80211 451022 3 rtl8192cu,rtl_usb,rtlwifi, Live 0xbf0b0000
cfg80211 402423 2 rtlwifi,mac80211, Live 0xbf01f000
rfkill 18946 1 cfg80211, Live 0xbf015000

Odd, as i just had a user report the musb port was working on the older beagle..

https://github.com/RobertCNelson/netinstall/issues/24

2. rootfs is mounted read-only - I thin I can change this in uboot?

I'm guessing Angstrom? (the u-boot patch default to ro for ubuntu/debian)

add to uEnv.txt:

mmcroot=/dev/mmcblk0p2 rw

3. and of course, the rtl8192cu driver doesn't work (but it never has - I
always need to build realtek's version from their website - however, they do
not seem to have a version which supports 3.13 :frowning:

Use Atheros. :wink:

Nishanth - I would be glad to give whatever information is helpful but being
a newbie I am not clear about some of the terminology you use e.g. "ensure
latest linux-next tag and master tags are
sane and report issues".

Regards,

Hi Mark,

Nishanth - I would be glad to give whatever information is helpful but being
a newbie I am not clear about some of the terminology you use e.g. "ensure
latest linux-next tag and master tags are
sane and report issues".

Apologies on not being clear:
in the upstream world, two kernels are of significant importance:
1. origin git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
obviously..
2. linux-next git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
This one is a daily integration tree of every maintainer tree -
towards a merge window this tends to represent approximately how the
next linux kernel rc1 will look like -> for example next-20140131 is
today's linux-next tag. It is pretty close to what v3.14-rc1 will
eventually look like -> ofcourse things are changing continually in
various maintainer branches, and keeping an eye on daily status is of
interest to folks.

kernel.org tag (or tags in torvald's tree) such as v3.13-rc1, ...
3.13, upcoming 3.14-rc1 etc are the baselines we really want to ensure
working and feature rich. in order to do that, ensuring every such tag
(including rcs) be regularly monitored to ensure things are good and
report issues.

I mean, even if folks dont have a daily cronjob (similar to what I
have for 15 boards), it is still nice to get regular pokes on
linux-omap mailing list asking for status of certain features like how
Robert did for 1GHz. that keeps the rest of us ensuring things work
for everyone else folks start thinking that these platforms are not of
significant interest and tend to feature-rot(die out) over time..

Regards,
Nishanth Menon

Odd, as i just had a user report the musb port was working on the older beagle…

https://github.com/RobertCNelson/netinstall/issues/24

Turns out I needed to add smsc95xx to /etc/modules and bring up eth0 not usb0 to make ethernet work.

Use Atheros. :wink:

I don’t think it supports rtl8192cu, will have to find a new adaptor that is compatible with Atheros drivers.

thanks,
Mark

FWIW, last time I tried this trick there is some magic required to get
the musb port to work in u-boot - I think just using the older musb
driver will get you most of the way.

  If you're sufficiently interested, mail me off-line and I'll dig around
and give you some hints, but you seem to have been looking for the
EHCI USB anyway ..

Richard.