Tiny little dots

September 20, 2007 by Tim Louden

I’ve been working on JFFS2 (no solution yet), building boards (the dataflash chip sucks), and testing the connections between components (we now have ~2.5 boards with PSoC/CPLD/Dataflash working together).

Progress on JFFS2:  Booting from RAM works, and the JFFS2 file system works, and chroot works to change into the file system.

Next:

  • continue banging heads against JFFS2
  • build and fix board for testin
  • soon: work on matlab and labview integration
  • more?

Two slow weeks later

September 11, 2007 by Tim Louden

I’ve not been able to work much since my last post, so things have been a bit slow for me.

I’ve worked on video some more, tried to help with the PSoC but Jace had that well under control, helped Chris in debugging the kernel, and built boards.

The new DSP board came in, we killed three processors trying to build them (one is now a nice key chain for Jace) and ultimately went with hack to connect an existing board to the new hardware.  We are now working to update ucLinux for our board (specifically, JFFS2 does not work) and test the driver for our new AC97 audio chip.

project ADD

August 29, 2007 by Tim Louden

The add-on board design is moving along nicely.  A first version is being reviewed.  The video out chip is being replaced with a more powerful on to support VGA output.

Currently, I’m working on fixing the dataflash driver for the Cypress PS0C chip.  Also, I am researching how to implement a USB-UART bridge in the same chip.

New Direction

August 23, 2007 by Tim Louden

Changes since the last post:

  • We are no longer using a UDA chip for audio.  Chris is working an AC97 codec into the next board revision.
  • All of our code is syncing with upstream repositories so that we stay up-to-date.  U-boot, UCLinux, and the toolchain all work with our board in their current version.

I am not working on designing an add-on card for the board that will have some or all of the following: ethernet, video out, sd/mmc card support, usb host.  I have selected parts, and am working to design the circuits.  After this is done, board layout and prototyping will follow.

Small progress

August 14, 2007 by Tim Louden

Still working on a Linux driver for the UDA1345.   I have written ‘L3′ code for the chip, and it is ready to test.  Chris and I are currently going through a copy of an Analog Devices audio driver and converting it for use with the UDA1345.  When this is done, we’ll need to debug the combination of L3 and audio driver.

Busy Week

August 8, 2007 by Tim Louden

It has been a week since my last update, here are the key changes:

  • The repository, wiki, etc. broke during an attempt to merge with upstream changes
    • This has been repaired as of today, regular work can continue
  • Research revealed that the uda1345 audio codec on our board has never had a driver developed for it.
    • The closest match is a uda1341 which had a driver under the linux 2.4.x kernel.
      • This driver will not work under our kernel (2.6.x) and attempts to port it have ended before progress was made.  One guy even failed to find a girlfriend while working on this :-) .
    • The next best match was a uda1380 which works under kernel 2.6.x but does not use the same communications protocol.
      • While the driver is closer to what we need, the ‘L3′ protocol must be reimplemented based on the uda1341.
    • We investigated alternative audio chips, but price constraints prevented a switch to something easier to work with.
  • Our changes to U-Boot have slowed and so I created a record of which files were altered, why, and how.

My work was slowed by illness late last week, but I am getting back on track.  I will also be taken away on Monday for jury duty, fun!

I am now working on writing a linux 2.6.x driver for the uda1381.

30 July and 31 July

August 1, 2007 by Tim Louden

Dataflash driver improvements:

  • all AT45DB devices are now auto detected and configured
  • detected device and size is output during init sequence

New Issues

  • dlmalloc.c causes a heap overflow which can crash/hang/reset the board
    • problem is cause by a bad value in top_pad, temp fix is to use 0 in place of top_pad when setting sbrk_size
    • investigation is ongoing
    • running mtest with this bug will crash/hang/reset the system

26 July

July 26, 2007 by Tim Louden

Long day.

Cleaned up dataflash driver, worked with SPI and UART booting, studied audio chip and prepared to write drivers for it, and debugged board problems.

SPI booting worked most of the time, but a rouge terminal stopped the feedback and made UART boots look broken as well.  This took long enough to fix that the boot mode changer was been updated.

U-boot seems fully operational, leaving us as the stage of uclinux.  Current compiles are not looking good.  Some compiles have bad checksums, others don’t decompress, some claim to boot without giving feedback, and a few gave garbage feedback.

The audio chip is probably inexpensive because of the ridiculous documentation that accompanies it.  Writing a driver for it will take time because much testing will be needed to confirm the documentation and fill in information that is missing.

On Monday, I will begin documenting our changes to u-boot and writing a standalone driver for the audio chip.

25 July

July 25, 2007 by Tim Louden

I wrote the remainder of the AT45x dataflash driver for u-boot.  Chris helped to debug it.  Reads and writes work and use the on-chip sram for buffering.  We are now getting the board switched over to do a boot from spi-flash, where we will see if u-boot works from there as well.  With that working, we will move to compiling and debugging the uclinux kernel.

24 July (and 23 July)

July 24, 2007 by Tim Louden

The 23rd was cut short.  We were able to get the logic analyzer to give correct feedback when writing to sdram.  Eventually, this led Chris to discover the hardware error that was stopping u-boot.

We made good progress on the 24th.  Uboot was loading, I wrote a first version of a driver for the onboard flash, and we began cleaning up the code base and testing out code.