PCB fabrication costs for OMAP3530 designs

Hi

I try to run the kernel image of Robert and it work!

I run the demo that come with the OMAP35xx EVM in /usr/tests/demo

two problems:
1- pictures are display with wrong colors, in red and black.
2- keyboard event are not working (strange since I see /dev/input/
eventx).

Is someone able to confirm that uImage have been done with:
http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=log
Cross compiler from codesourcery 2007q3

Take a look at your message log "dmesg" and please post it for us.
Ogra either used one of the codesoucery builds or the native gcc in
ubuntu jaunty (armel).

Otherwise the kernel was ( from
http://people.ubuntu.com/~ogra/arm/OMAP35x_EVM/kernel/README )

The kernel used in this dir was pulled like:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git

und configured sing the config file in this directory ...

If so is there a patch to fix the screen colors & keyboard ?

Regards

kap

Regards,

Hi Kap,

I get the same results with the colors not displaying correctly. What
filesystem are you using. I'm using xubuntu, which I built for the
BeagleBoard. The filesystem from Oliver does not seem to display anything on
the LCD.

From the console log, Oliver is using gcc version 4.3.3 20081112
(prerelease)

I built the kernel using Sourcery G++ Lite 2008q3-41, with the kernel patch
applied and the defconfig from Oliver, and it will not boot up fully.

Regards,

From: beagleboard@googlegroups.com
[mailto:beagleboard@googlegroups.com] On Behalf Of kapare
Sent: Thursday, December 11, 2008 1:39 PM
To: Beagle Board
Subject: [beagleboard] Re: OMAP3530 EVM with 2.6.27 Kernel

Hi

I try to run the kernel image of Robert and it work!

I run the demo that come with the OMAP35xx EVM in /usr/tests/demo

two problems:
1- pictures are display with wrong colors, in red and black.
2- keyboard event are not working (strange since I see /dev/input/
eventx).

Is someone able to confirm that uImage have been done with:
http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=log
Cross compiler from codesourcery 2007q3

If so is there a patch to fix the screen colors & keyboard ?

Regards

kap

> Hi Robert,
>
> Again, you are the greatest. I'm not sure why, but using this uImage,
theEVMboard boots up, but when I use the uImage I built from the GIT
> repository and using theevmconfig, it won't load the file system. I'm
> going to rebuild uImage using the kernel config available on this site.
>
> Thank you again.
>
> Regards,
>
>
>
> > From: beagleboard@googlegroups.com
> > [mailto:beagleboard@googlegroups.com] On Behalf Of Robert Nelson
> > Sent: Wednesday, December 10, 2008 12:50 PM
> > To: beagleboard@googlegroups.com
> > Subject: [beagleboard] Re: OMAP3530EVMwith 2.6.27 Kernel
>
> > > I'm still having some difficulty getting 2.6.27 running on

theOMAP35xxEVM

> > > board.
>
> > > I start with a cloned SD Card of the TI Cube demo, which is based on
> u-boot
> > > 1.1.4 and Linux Kernel 2.6.22. The cloned SD Card boots up and works
> fine. I
> > > overwrite u-boot.bin with u-boot.bin version 2008.10-00953-dirty and

I

> > > replace uImage with uImage version 2.6.27-omap1. It doesn't matter
> whether I
> > > leave the file system on the second partition as is or replace it

with a

> > > Debian file system that works fine on my BeagleBoard, it fails right
> after
> > > the rootdelay when it tries to mount the MMC. For some reason it

does

Hi Kap,

I get the same results with the colors not displaying correctly. What
filesystem are you using. I'm using xubuntu, which I built for the
BeagleBoard. The filesystem from Oliver does not seem to display anything on
the LCD.

From the console log, Oliver is using gcc version 4.3.3 20081112
(prerelease)

Okay, I'm home looking thru random SD cards... That was ubuntu
Jaunty's native gcc.

Linux version 2.6.28-rc4-omap1 (root@omap35x) (gcc version 4.3.3
20081112 (prerelease) (Ubuntu 4.3.2-2ubuntu2) )
Built on Tue Nov 18 18:46:51 UTC 2008 (really hoping the git version
was in their.)

I built the kernel using Sourcery G++ Lite 2008q3-41, with the kernel patch
applied and the defconfig from Oliver, and it will not boot up fully.

I'm pretty sure Oliver just used the tip of the git tree. I need to
do some build system tweaks, but i think i can get an evm kernel built
tonight.

Regards,

I think it is 5ecf98b, but I am not sure.

Hi and thx for the reply

The red color with display are reproductive with other kernel from
montavista repo (ex: 2.6.26-omap2). I'm still searching for a way to
fix this. Since I am new with all git and kernel stuff, if you want me
to test something for you I have a board next to my PC ready for some
test.

By the way is it possible to simply take the code from TI 2.6.22.18
and patch another kernel ex: 2.6.27.

What are the simple steps to go from a kernel 2.6.22.18 TI and upgrade
to a more recent kernel?

What I'm interested to do is to use git to apply kernel.org patch to
go to 2.6.25 from 2.6.22.18TI, the problem is to found a way to do
easily the merge with kdiff3? But all these steps are for now not
clear how to? Otherwise use a git tree that do all that job for me.

Regards

kap

[root@OMAP3EVM /sdcard]# uname -a
Linux OMAP3EVM 2.6.28-rc4-omap1 #14 Tue Nov 18 18:46:51 UTC 2008
armv7l unknown
[root@OMAP3EVM /sdcard]# dmesg
Linux version 2.6.28-rc4-omap1 (root@omap35x) (gcc version 4.3.3
20081112 (prerelease) (Ubuntu 4.3.2-2ubuntu2) ) #14 Tue Nov 18
18:46:51 UTC 2008
CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=10c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 EVM
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 32768
free_area_init_node: node 0, pgdat c0394afc, node_mem_map c03af000
  Normal zone: 256 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 32512 pages, LIFO batch:7
  Movable zone: 0 pages used for memmap
OMAP3430 ES2.1
SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
Built 1 zonelists in Zone order, mobility grouping on. Total pages:
32512
Kernel command line: console=ttyS0,115200n8 noinitrd rw root=/dev/nfs
nfsroot=10.20.1.8:/omap3evm_nfs init=/init, nolock mem=128M
ip=10.20.1.72:10.20.1.8:1f
Clocking rate (Crystal/DPLL/ARM core): 26.0/266/500 MHz
GPMC revision 5.0
IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
OMAP34xx GPIO hardware version 2.5
PID hash table entries: 512 (order: 9, 2048 bytes)
OMAP clockevent source: GPTIMER1 at 32768 Hz
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 126036KB available (3300K code, 279K data, 152K init)
Calibrating delay loop... 498.87 BogoMIPS (lpj=1945600)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 288 bytes
NET: Registered protocol family 16
MUX: setup J21_34XX_I2C1_SDA (0xd80021bc): 0x1718 -> 0x0118
MUX: setup K21_34XX_I2C1_SCL (0xd80021ba): 0x1718 -> 0x0118
MUX: setup AE15_34XX_I2C2_SDA (0xd80021c0): 0x1718 -> 0x0118
MUX: setup AF15_34XX_I2C2_SCL (0xd80021be): 0x1718 -> 0x0118
MUX: setup AG14_34XX_I2C3_SDA (0xd80021c4): 0x1718 -> 0x0118
MUX: setup AF14_34XX_I2C3_SCL (0xd80021c2): 0x1718 -> 0x0118
OMAP DMA hardware revision 4.0
USB: No board-specific platform config found
i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz
twl4030: PIH (irq 7) chaining IRQs 368..375
twl4030: power (irq 373) chaining IRQs 376..383
twl4030: gpio (irq 368) chaining IRQs 384..401
i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz
i2c_omap i2c_omap.3: bus 3 rev3.12 at 400 kHz
twl4030_usb twl4030_usb: Initialized TWL4030 USB module
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
musb_hdrc: ConfigData=0x55 (UTMI-16, dyn FIFOs, bulk split (X), HB-ISO
Rx (X))
musb_hdrc: MHDRC RTL version 1.400
musb_hdrc: setup fifo_mode 4
musb_hdrc: 29/31 max ep, 15424/16384 memory
musb_hdrc: hw_ep 0shared, max 64
musb_hdrc: hw_ep 1tx, max 512
musb_hdrc: hw_ep 1rx, max 512
musb_hdrc: hw_ep 2tx, max 512
musb_hdrc: hw_ep 2rx, max 512
musb_hdrc: hw_ep 3tx, max 512
musb_hdrc: hw_ep 3rx, max 512
musb_hdrc: hw_ep 4tx, max 512
musb_hdrc: hw_ep 4rx, max 512
musb_hdrc: hw_ep 5tx, max 512
musb_hdrc: hw_ep 5rx, max 512
musb_hdrc: hw_ep 6tx, max 512
musb_hdrc: hw_ep 6rx, max 512
musb_hdrc: hw_ep 7tx, max 512
musb_hdrc: hw_ep 7rx, max 512
musb_hdrc: hw_ep 8tx, max 512
musb_hdrc: hw_ep 8rx, max 512
musb_hdrc: hw_ep 9tx, max 512
musb_hdrc: hw_ep 9rx, max 512
musb_hdrc: hw_ep 10tx, max 512
musb_hdrc: hw_ep 10rx, max 512
musb_hdrc: hw_ep 11tx, max 512
musb_hdrc: hw_ep 11rx, max 512
musb_hdrc: hw_ep 12tx, max 512
musb_hdrc: hw_ep 12rx, max 512
musb_hdrc: hw_ep 13tx, max 512
musb_hdrc: hw_ep 13rx, max 512
musb_hdrc: hw_ep 14shared, max 1024
musb_hdrc: hw_ep 15shared, max 1024
musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92
NET: Registered protocol family 2
Switched to high resolution mode on CPU 0
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 246
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
omapfb: configured for panel omap3evm
omapfb: DISPC version 3.0 initialized
omapfb: Framebuffer initialized. Total vram 614400 planes 1
omapfb: Pixclock 24000 kHz hfreq 45.2 kHz vfreq 70.3 Hz
Serial: 8250/16550 driver4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
brd: module loaded
loop: module loaded
eth0: LAN9115 (rev 2) at 0x2c000000 IRQ 336
eth0: Ethernet addr: aa:bb:cc:dd:ee:ff
eth0: LAN911x Internal PHY
i2c /dev entries driver
input: triton2-pwrbutton as /class/input/input0
triton2 power button driver initialized
Driver 'sd' needs updating - please use bus_type methods
OneNAND driver initializing
omap2-onenand omap2-onenand: initializing on CS0, phys base
0x20000000, virtual base c8880000
OneNAND Manufacturer: Samsung (0xec)
Muxed OneNAND 128MB 1.8V 16-bit (0x30)
OneNAND version = 0x0221
Chip support all block unlock
Scanning device for bad blocks
Creating 5 MTD partitions on "omap2-onenand":
0x00000000-0x00080000 : "xloader"
0x00080000-0x00260000 : "uboot"
0x00260000-0x00280000 : "params"
0x00280000-0x00780000 : "linux"
0x00780000-0x08000000 : "jffs2"
usbmon: debugfs is not available
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbtest
input: omap_twl4030keypad as /class/input/input1
ads7846 spi1.0: touchscreen, irq 335
input: ADS784x Touchscreen as /class/input/input2
twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0
twl4030_rtc twl4030_rtc: Power up reset detected.
twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.
OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
Power Management for TI OMAP3.
Unable to set state of powerdomain: sgx_pwrdm
Failed to setup powerdomains
omap2|3_pm_init failed: -22
SmartReflex driver initialized
Disabling unused clock "gpt2_ick"
Disabling unused clock "gpio2_dbck"
Disabling unused clock "gpio3_dbck"
Disabling unused clock "gpio4_dbck"
Disabling unused clock "gpio5_dbck"
Disabling unused clock "gpt2_fck"
Disabling unused clock "wdt2_ick"
Disabling unused clock "wdt2_fck"
Disabling unused clock "dpll5_ck"
Disabling unused clock "dpll4_m6x2_ck"
Disabling unused clock "dpll4_m5x2_ck"
Disabling unused clock "dpll3_m3x2_ck"
Disabling unused clock "sys_clkout1"
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev
1
twl4030_rtc twl4030_rtc: setting system clock to 2000-01-01 00:00:00
UTC (946684800)
mmc0: host does not support reading read-only switch. assuming write-
enable.
mmc0: new SD card at address 962a
mmcblk0: mmc0:962a SD02G 1.89 GiB
mmcblk0: p1 p2
eth0: link down
IP-Config: Complete:
     device=eth0, addr=10.20.1.72, mask=255.255.0.0, gw=10.20.0.1,
     host=10.20.1.72, domain=, nis-domain=(none),
     bootserver=10.20.1.8, rootserver=10.20.1.8, rootpath=
Looking up port of RPC 100003/2 on 10.20.1.8
eth0: link up, 100Mbps, full-duplex, lpa 0x05E1
Looking up port of RPC 100005/1 on 10.20.1.8
VFS: Mounted root (nfs filesystem).
Freeing init memory: 152K
Failed to execute /init,. Attempting defaults...

I'm using NFS for now

Regards

kap

I add new post name OMAP35xx EVM video not working

kap

Hi

I'm interested to found a kernel higher or equal than 2.6.25 that
support the OMAP35xx EVM board.

The SDK that came with the board (OMAP35x_SDK_0.9.5) is 2.6.22.18.

I try with
2.6.26-omap2
2.6.27-omap1
2.6.28-rc8
and all gives my a display with red & black colors when for exemple I
run /usr/tests/demo from SDK.

Is this a known problem with FBDEV and V4L2 Video display driver with
OMAP35xx EVM?

Thx for helping me to understand the problem.

Regards

kap
ps: If you need me to to some test I'm ready!

This have been generated with NFS setup and
arm-none-linux-gnueabi-gcc CodeSourcery Lite 2007q3-51
make omap3_evm_defconfig

U-Boot 1.1.4 (Nov 27 2008 - 10:07:04)

OMAP3-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3EVM 1.0 Version + mPOP (Boot ONND)
DRAM: 128 MB
OneNAND Manufacturer: Samsung (0xec)
Muxed OneNAND 128MB 1.8V 16-bit (0x30)
OneNAND version = 0x0221
Scanning device for bad blocks
num of blocks = 2048
In: serial
Out: serial
Err: serial
Reseting CHIP... Done
LAN9x18 (0x01150002) detected.
Setting mac address: aa:bb:cc:dd:ee:ff
start Auto negotiation... (take ~2sec)
Auto negotiation complete, 100BaseTX, full duplex
Hit any key to stop autoboot: 0
Reseting CHIP... Done
LAN9x18 (0x01150002) detected.
Setting mac address: aa:bb:cc:dd:ee:ff
start Auto negotiation... (take ~2sec)
Auto negotiation complete, 100BaseTX, full duplex
TFTP from server 10.20.1.8; our IP address is 10.20.1.72
Filename 'uImage'.
Load address: 0x80000000
Loading: ##############################

Okay this took way longer then i thought. Here's a kernel built for
the omap3evm based of 2.6.27 in angstrom.

http://www.rcn-ee.com/deb/kernel/3evm/lenny/v2.6.27-2a3408b-oer4/

The linux-image is a little strange, 6x bigger then any beagle version
i've ever built..

To extract the uImage from this, use the cliff notes here:
http://elinux.org/BeagleBoardDebian#Linux_Kernel_Preparation

Regards,

Robert thx,

I will try your uImage and the one of Koen on monday

Have nice weekend

kap

Just for interest : wouldn’t the best solution be a “CUS” package (with its associated via channels, easy routing and accompanying low PCB cost) which can take PoP memory modules? I think this would strike an excellent balance. I for one would jump at the oppertunity of using such a package on my current OMAP design.

We too sent the Beagle gerbers to a few of our favourite PCB fabrication houses for quotes, and the best we got back was from a UK company where it worked out at about GBP 1311.00 irrespective of whether you’re ordering 5, 10 or 20 boards.

Is there any specific reason why the CUS package can’t be re-designed to take PoP memory?

The CUS package will not be designed for POP. There are no POP devcies that are that big that could fit on a 16x16 package and the memory suppliers have expressed a desire not to make such a large POP device. If they did, it would be a non-standard package and thereby would cost more than the standard packages.

There is another POP package for the OMAP3530 that is a .5mm pitch device that supports POP. You can find information on this in the OMAP3530 datasheet.

Please be aware that you cannot send these Gerbers to any shop and get a good quote. The initial quotes will always be high until they get comfortable with the technology.

The CUS package is definitely a plus if you are dealing with low end PCB and assembly houses. They should be able to handle this with no issues. You will however need to add the routing for the external memory which will take up more space on the board making the board larger. As long as this is not a concern, then this should not be an issue.

Gerald

Hi Gerald,

I'm looking for detailed pin list about 40 pin LCD interface connector
on RevC BB.

I only have seen a photo (http://beagleboard.googlegroups.com/attach/
2e82c3ed6061d9d2/Beagle_exp_LCD_RevC.JPG?view=1&part=4)
reading thread (http://groups.google.com/group/beagleboard/msg/
2e82c3ed6061d9d2)

How could we downloaded it?

Agusti

The pinout of this connector is not currently released. We are in the process of testing the prototypes and once the Rev C is released to production, this information will be made available.

Gerald

Has anyone gotta a design (with SDRAM) with the CUS package and a 2 layer
board working? There is another easy to get ARM9 (in small quantities) in a
PQFP package that does not seem to be route-able in 2 layers so I am
wondering if the CUS package helps that. And is there any chance such a
design could pass emissions tests without being enclosed in a metal case?

Unrelated to above, what is the absolute simpliest (not necessarily useful)
OMAP3 system? Is it a TPS65950 + OMAP3 w/sysboot setup to boot from serial?

You can get all of the signals out of the CUS package on two layers. I am not convinced, because I have yet to see it, that you can do the SDRAM in 2 or even 4 layers. That is a lot of touchy signals to route! Emissions will definitely be concern if you don’t have enough grounding.

As to the simplest system, what you describe is about it. Don’t forget the memory!

Gerald

You can get all of the signals out of the CUS package on two layers. I am
not convinced, because I have yet to see it, that you can do the SDRAM in 2
or even 4 layers. That is a lot of touchy signals to route! Emissions will
definitely be concern if you don't have enough grounding.

As to the simplest system, what you describe is about it. Don't forget the
memory!

Does it require memory to be physically there? I am thinking of the simpliest
possible setup for test/bring up purposes where the memory may not be
stuffed. Something along the lines of being able to power up and download
tiny diag code into the internal SRAM to validate the board.

Well, there isn’t much iinternal RAM at all to run from. Without external memory you cannot validate the memory lines. I guess if as you say the board has no useful purpose, I guess this would be possible. You may have to download multiple sets of code the get things validated, depending on whether or not there is anything to validate if, as you say, the board has no useful purpose.

Gerald