JTAG debugger for MPC82xx/MPC83xx

2006-09-19 Thread Steven Hein
Hi,

My group is starting a new project includes a custom board
with an MPC8258E processor on it.   I'm in the process
of evaluating the state of the Linux kernel, toolchains,
etc. for the MPC8258E/MPC8360E, as well as selecting a
JTAG debugger for our project.

I've been researching the available JTAG debuggers that
support the MPC82xx/MPC83xx family, and I've found these
choices so far:

* Abatron BDI-2000
* Green Hills Probe
* Freescale's PowerTAP PRO for PowerPC
* Lauterbach TRACE32-ICD
* WindRiver ICE
* Embedded Toolsmiths Guardian-SE (BUT...this is no longer
  being sold, according to an email response I received
  from Embedded Toolsmiths)

We will definitely want one with a network connection,
and will will run the debugger software from a Linux host.
Ideally, we would also like one that provides a library
to allow us to write apps to function the debugger.

Can anyone comment on what JTAG debugger they are using,
and how have your experiences been?   Are there any other
good options besides the ones mentioned above.
I'd appreciate any input.

Thanks!
Steve

-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Re: Using WindRiver Probe JTAG

2006-10-25 Thread Steven Hein




Hi Michael,

We just went through this same selection process for a new project
(MPC83xx based), and we ended up choosing the BDI2000.
I asked WindRiver folks the same question, regarding the WR ICE
interaction with GDB.    They told me that they do not play together,
WR ICE uses WR proprietary communication to the debugger SW.

If you're already using WR workbench, I think your only option
is to use the WR ice.    (When we evaluated WR tools for our project,
it seemed like going with WR is an all-or-nothing deal--and we already
had experience with the GCC toolchains, GDB debugger, etc. So, we
chose the GCC/GDB/BDI2000 approach).

Hope this helps.

Steve


Michael Zagalsky wrote:

  Hi guys.
  I'd like to know if anybody had an experience using Wind River
Probe JTAG with PowerPC architecture in general, and with PowerQuicc
iii family in particular.
  We're using WR workbench, but I am not sure whether to use their
JTAG or the popular BDI2000.
  Does anybody know if WR Probe uses GDB, or something proprietary
to WR?
  Can it be attached to gdb/ddd/eclipse, or only to WR workbench
IDE?
  For kernel debugging with symbolic information - can it use any
binary compiled with -g, or it has to be compiled under WR workbench
environment that has some add-ons (I know, it sounds strange - but I
actually heard some vague saying of this kind from WR representative).
  
   
  I know those are questions that should be addressed to Wind
River , which I did, but I didn't get clear enough answers - so your
(good/bad) field experience could be very helpful.
   
  Thanks a lot, 
  Michael
  

___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded



-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715




___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

[Fwd: Re: kernel command line for CRAMFS root filesystem]

2002-06-06 Thread Steven Hein
Hi Julien,

Attached is a patch to mkcramfs that adds a "-r" option.  This
reverses the endianness of the CRAMFS filesystem when creating it.
I use this patched mkcramfs to do exactly what you are doing.
It should apply to all kernels up to and including 2.4.18.

Steve


Julien Eyries wrote:
>
> > we use cramfs here and it works without additional parameter. How do you
> > generate the cramfs and on which kind of system are you using it? The
> > mkcramfs tool has an endianess problem so if you do mkcramfs on 86x platform
> > to use it on ppc it wont work. (maybe there is some newer version i am not
> > aware of where that is fixed)
>
> Well it seems it is the problem ... i have generated cramfs on my x86
> and my target is ppc .
> is there a simple trick to make my cramfs image correct for ppc ?
> should i build my cramfs image on the target ?
>
> thanks,
>
> Julien.
>

--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715

-- next part --
--- linux-2.4.4/scripts/cramfs/mkcramfs.c.orig  Fri May  4 12:36:58 2001
+++ linux-2.4.4/scripts/cramfs/mkcramfs.c   Fri May  4 12:50:33 2001
@@ -52,6 +52,7 @@
" -p pad by %d bytes for boot code\n"
" -s sort directory entries (old option, ignored)\n"
" -z make explicit holes (requires >= 2.3.39)\n"
+   " -r reverse endian-ness of filesystem\n"
" dirnameroot of the filesystem to be compressed\n"
" outfileoutput file\n", progname, PAD_SIZE);

@@ -78,6 +79,7 @@
 static char *opt_image = NULL;

 static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
+static int swap_endian = 0;

 #ifndef MIN
 # define MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
@@ -298,6 +300,50 @@
return totalsize;
 }

+/* routines to swap endianness/bitfields in inode/superblock block data */
+static void fix_inode(struct cramfs_inode *inode)
+{
+#define wswap(x)(((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | 
(((x)&0xff)<<24))
+   /* attempt #2 */
+   inode->mode = (inode->mode >> 8) | ((inode->mode&0xff)<<8);
+   inode->uid = (inode->uid >> 8) | ((inode->uid&0xff)<<8);
+   inode->size = (inode->size >> 16) | (inode->size&0xff00) |
+   ((inode->size&0xff)<<16);
+   ((u32*)inode)[2] = wswap(inode->offset | (inode->namelen<<26));
+}
+
+static void fix_offset(struct cramfs_inode *inode, u32 offset)
+{
+   u32 tmp = wswap(((u32*)inode)[2]);
+   ((u32*)inode)[2] = wswap((offset >> 2) | (tmp&0xfc00));
+}
+
+static void fix_block_pointer(u32 *p)
+{
+   *p = wswap(*p);
+}
+
+static void fix_super(struct cramfs_super *super)
+{
+   u32 *p = (u32*)super;
+
+   /* fix superblock fields */
+   p[0] = wswap(p[0]); /* magic */
+   p[1] = wswap(p[1]); /* size */
+   p[2] = wswap(p[2]); /* flags */
+   p[3] = wswap(p[3]); /* future */
+
+   /* fix filesystem info fields */
+   p = (u32*)&super->fsid;
+   p[0] = wswap(p[0]); /* crc */
+   p[1] = wswap(p[1]); /* edition */
+   p[2] = wswap(p[2]); /* blocks */
+   p[3] = wswap(p[3]); /* files */
+
+   fix_inode(&super->root);
+#undef wswap
+}
+
 /* Returns sizeof(struct cramfs_super), which includes the root inode. */
 static unsigned int write_superblock(struct entry *root, char *base, int size)
 {
@@ -333,6 +379,7 @@
super->root.gid = root->gid;
super->root.size = root->size;
super->root.offset = offset >> 2;
+   if (swap_endian) fix_super(super);

return offset;
 }
@@ -347,7 +394,10 @@
fprintf(stderr, "filesystem too big.  Exiting.\n");
exit(1);
}
-   inode->offset = (offset >> 2);
+   if (swap_endian)
+   fix_offset(inode, offset);
+   else
+   inode->offset = (offset >> 2);
 }


@@ -403,6 +453,7 @@
stack_entries++;
}
entry = entry->next;
+   if (swap_endian) fix_inode(inode);
}

/*
@@ -495,6 +546,7 @@
}

*(u32 *) (base + offset) = curr;
+   if (swap_endian) fix_block_pointer((u32*)(base + offset));
offset += 4;
} while (size);

@@ -595,7 +646,7 @@
progname = argv[0];

/* command line options */
-   while ((c = getopt(argc, argv, "hEe:i:n:psz")) != EOF) {
+   while ((c = getopt(argc, argv, "hEe:i:n:psrz")) != EOF) {
switch (c) {
case 'h':
usage(0);
@@ -

cramfs for root filesystem?

2002-06-25 Thread Steven Hein
Hi Stephen,

I have actually been using a cramfs initrd reliably for about 2
years.  You do need a kernel patch to add cramfs to the list of
filesystems to check for in the initrd, also my patch forces the
blocksize of the initrd to 4K if it finds that it contains cramfs.
(I unfortunately don't have a publicly accessible web page to
stick this patch, so I'll attach it at the end of this email).

I have also previously posted a patch to mkcramfs to swap
endianness on a cramfs filesystem   (this is also what I do,
create a PPC big endian cramfs using a little endian Intel PC).
I have posted this a couple of times, here's a link to the
most recent:

http://lists.linuxppc.org/linuxppc-embedded/200206/msg00128.html

These two patches should get you going with a cramfs initrd.
Good luck!

Steve



David Blythe wrote:
>
> It looks like you still have an initrd.  Don't try running cramfs as an
> initrd. I don't know if anything has changed in later versions of 2.4
> but earlier ones used a 1k blocks size for the ramdisk and even if you
> tried changing the rd blocksize to 4k to match cramfs it still didn't
> work properly ...
>
> There were patches floating around for building a big-endian cramfs,
> rather than fixing the cramfs implemention to convert to little endian.
> I don't know if newer versions of cramfs support explicit little
> endian rather than native endian.  I can send you a version of mkcramfs
> with the swap endian flag if you want.
>
> I'm in the process of getting ramfs to work with cramfs on my system as
> we speak.
> david
>


--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715

-- next part --
diff -uNr linux/drivers/block/rd.c linux-2.4.4/drivers/block/rd.c
--- linux/drivers/block/rd.cFri Feb  9 13:30:22 2001
+++ linux-2.4.4/drivers/block/rd.c  Mon May  7 14:04:15 2001
@@ -47,6 +47,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -469,10 +470,11 @@
 int __init
 identify_ramdisk_image(kdev_t device, struct file *fp, int start_block)
 {
-   const int size = 512;
+   const int size = 1024;
struct minix_super_block *minixsb;
struct ext2_super_block *ext2sb;
struct romfs_super_block *romfsb;
+   struct cramfs_super *cramfsb, *cramfsb2;
int nblocks = -1;
unsigned char *buf;

@@ -483,6 +485,8 @@
minixsb = (struct minix_super_block *) buf;
ext2sb = (struct ext2_super_block *) buf;
romfsb = (struct romfs_super_block *) buf;
+   cramfsb = (struct cramfs_super *) buf;
+   cramfsb2 = (struct cramfs_super *) (&buf[512]);
memset(buf, 0xe5, size);

/*
@@ -515,6 +519,41 @@
goto done;
}

+   /* cramfs also at block zero */
+   /* (superblock can also live at 512-byte offset in block zero) */
+   if ((cramfsb->magic == CRAMFS_MAGIC &&
+   memcmp(cramfsb->signature, CRAMFS_SIGNATURE,
+   sizeof(cramfsb->signature)) == 0) ||
+   ((cramfsb = cramfsb2)  &&  cramfsb2->magic == CRAMFS_MAGIC &&
+   memcmp(cramfsb2->signature, CRAMFS_SIGNATURE,
+   sizeof(cramfsb2->signature)) == 0)) {
+
+   printk(KERN_NOTICE
+  "RAMDISK: cramfs filesystem found at block %d\n",
+  start_block);
+
+   /* cramfs probably has a different blocksize--adjust the
+  ramdisk's block size to accomodate */
+   /* FIXME: should have a way to determine the cramfs
+ blocksize (if it's going to be variable.) */
+   if (rd_blocksize != PAGE_CACHE_SIZE) {
+   int i;
+
+   rd_blocksize = PAGE_CACHE_SIZE;
+   for (i = 0; i < NUM_RAMDISKS; i++) {
+   rd_hardsec[i] = rd_blocksize;
+   rd_blocksizes[i] = rd_blocksize;
+   }
+   printk(KERN_NOTICE
+   "RAMDISK: overriding ramdisk block size to %d 
for cramfs filesystem\n",
+   rd_blocksize);
+   }
+   /* Note: even if ramdisk blocksize is changed, nblocks is still
+   calculated using 1k blocksize for the INITRD device */
+   nblocks = (cramfsb->size+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
+   goto done;
+   }
+
/*
 * Read block 1 to test for minix and ext2 superblock
 */


cramfs for root filesystem?

2002-06-25 Thread Steven Hein

Sorry...  I haven't been living in the development PPC world lately.
These patches should apply against the stock 2.4.18 kernel.
Anyone is welcome to adapt them to the PPC development stuff
and the sourceforge version of mkcramfs   :)

(I'm on a new project involving an ARM processor now, so I'm not
particularly current with the PPC stuff!)

Steve



"Cameron, Steve" wrote:
>
> Steven Hein [mailto:ssh at sgi.com] wrote:
>
> > [...] You do need a kernel patch to add cramfs to the list of
> > filesystems to check for in the initrd, also my patch forces the
> > blocksize of the initrd to 4K if it finds that it contains cramfs. [...]
>
> Hmm, this patch doesn't seem to apply to my fairly recent
> linuxppc_2_4_devel tree.  identify_ramdisk_image() for instance
> is in init/do_mounts.c, not drivers/block/rd.c, and there is a
> #define BUILD_CRAMDISK in there I guess relating to cramfs, though
> I'm not sure what it's doing.
>
> > I have also previously posted a patch to mkcramfs to swap
> > endianness on a cramfs filesystem   [...]
> > http://lists.linuxppc.org/linuxppc-embedded/200206/msg00128.html
>
> Hmm, this patch doesn't seem to apply to the mkcramfs I got from
> sourceforge yesterday.
>
> Thanks, just the same.
>
> -- steve
>

--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





ppc.kernel.org problems

2000-04-03 Thread Steven Hein

Dan,

(My apologies if I'm not reading this right..)

I just updated from BitKeeper this morning, and I'm still seeing
problems.

- in arch/ppc/8xx_io/uart.c the version says 0.02, where the version
  in the HardHat tree is 0.03

- the arch/ppc/8xx_io/fec.c still won't compile for me; it is trying to
  reference the field 'tbusy' in struct net_device, and there is no
  'tbusy' field in net_device (looks like this still coresponds to the
  older 'struct device', which did have a 'tbusy' field.)

Thanks,
Steve


Dan Malek wrote:
>
> I am working on the 2.3.xx kernel right now.  There have been lots of
> generic changes that need integration for 8xx.  Keep looking at the
> tree over the next few days, it should come together.
>
> > I have BitKeeper access and I grabbed the latest Linux/PPC kernel tree,
> > but it doesn't have updated FEC or UART drivers in arch/ppc/8xx_io,
>
> That should have all been there last week..
>
>
> -- Dan


--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1050 Lowater Road Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





mkcramfs changes to switch endianness

2001-05-02 Thread Steven Hein

I'm getting ready to try using cramfs in the 2.4.4 kernel.
Anybody done the work to make 'mkcramfs' create a big-endian
image on a little-endian PC?   Before I reinvent the wheel,
I'd like to find out if anybody as done it (and would like
to share   :)

Steve

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






booting from cramfs in flash

2001-05-03 Thread Steven Hein

My cramfs adventure continues.

Okay, so I have a cramfs filesystem image creaed created.
Now, how do I tell the kernel to boot using that filesystem
when the filesystem is an image in flash?

Maybe I'm on the wrong path, but my previous setup used a compressed
kernel and gzip'ed ext2 filesystem as an initial ramdisk, which
also served as my permanent filesystem.   So I thought I should
be able to just replace my old initrd with my new cramfs image,
tell the kernel where it is (in flash), and it would go.

But, that's not the case for me so far. If I pass the address in
flash of my cramfs image as the initrd_start
and initrd_end (in R3/R4, the kernel craps out because it can't reuse
the pages where I told it that the initrd lives).

So,how do I make this connection?  Or, do I still need an ext2
initrd like I used before?  If so, then how do I mount the CRAMFS
filesystem that is an image sitting flash?

Any help is greatly appreciated!

Steve


--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






SUCCESS booting off cramfs initrd

2001-05-09 Thread Steven Hein

Last week I asked for help in my cramfs adventure, so now that
I've had some success, I thought I'd share how I got it
done.

My original goal was to boot from a cramfs filesystem residing
in flash.  As people explained to me, that would have required
me to have a small ext2 initrd filesystem to boot from
and them mount my cramfs filesystem as the root filesystem
(through the /dev/mtd device, accessed through the MTD drivers).
I went down this road, but found that the current MTD CFI flash
drivers didn't support big-endian configurations at all.
(Actually, I created a MTD map driver for my board that treated the
 flash space as ROM and I was able to access it).  But, I didn;t
really want to created two separate filesystems (the ext2 initrd,
and the cramfs root filesystem), so I didn't continue this approach.

It later occurred to me that, due to the way I update my image in
flash, the filesystem needed to live in RAM.  I still wanted to
use cramfs to save RAM (my ext2 filesystem was 4.5MB, too expensive
for a 16MB board).  But, this brought me back to trying to use
a cramfs initrd as my root filesystem.

So, here's what I did to accomplish this:
- started with linux-2.4.4 kernel plus linuxppc_2_4 diffs patch
- incorporated the cramfs patch from Transmeta's Midori Linux
  1.0.0-beta1 release  (they use a different packaging mechanism,
  so you'll need to get the whole Midori release and unpack/build
  it to get access to the patch).  I'm not sure if this step was
  necessary or not..but the patch makes significant improvements
  to the cramfs filesystem, so I wanted it  (someone else may be able
  to answer this better).
- modified drivers/block/rd.c to make several changes:
1) detect the cramfs superblock (at offset 0 or offset 512
   in the first block of the filesystem)
2) when a cramfs filesystem is detected, force the block
   size of the ramdisks to 4KB, which is cramfs's block size.
   (this step tripped me up for several days, as I didn't
and still don't know much about block devicesbut I did
learn that the ramdisk that cramfs is on must use 4KB blocks!)
- modified David Blythe's originalendian-swap patch to mkcramfs to work
  over the top of Midori's cramfs patch.  Basically, this provided a
"-r"
  option to mkcramfs to reverse the endian-ness of the filesystem
  (my host is an i686 box and my target is a custom MPC860T board).

Basically, when i did all of the above, I was able to boot off
of a cramfs initrd, and continue to use it as my root filesystem.

I put all of the patches that I used to accomplish this out at:
(listed in the order in which they should be applied)

http://www.geocities.com/heinss1/cramfs_midori.patch.txt
http://www.geocities.com/heinss1/mkcramfs_endian.patch.txt
http://www.geocities.com/heinss1/cramfs_initrd.patch.txt

for whoever may be interested.  Hope it helps someone else get off
the ground faster!

Steve



--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-18 Thread Steven Hein

I've seen some discussions about real-time clocks lately, but (I think)
I scoured the list and can't find any basic information about how
to function the 860's real-time clock.  I'm using the real 2.4.3
kernel right now and I don't see that /dev/rtc would work.

Is there a working method (to read the RTC value at boot-time)?
I see references to 'hwclock', but from what I can tell that won't
work unless there's a /dev/rtc available (since 860 PPC isn't
supported natively by hwclock).

I apologize if I missed this info in the archives.  Any help would
be appreciated!

Thanks,
Steve

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-19 Thread Steven Hein

Dan Malek wrote:
>
> > Is there a working method (to read the RTC value at boot-time)?
>
> The MPC8xx real-time clock is implicitly managed in the kernel.
> At boot time, the register is read and stored in the kernel
> time.  Whenever the kernel time is updated, the hardware register
> is also updated.  Since the 8xx is simply a 32-bit register
> access with an update rate that matches the kernel time, I
> chose to do it this way.
>

Dan,

My question was poorly worded (because at that point I
didn't understand the whole picture.).  I know that the
860's RTC on my board is working properly, that's not the issue.

My problem is this:   when I set the date via the "date --set"
command (which calls stime()) or by calling settimeofday() directly,
it doesn't result in the 860's RTC being updated.
Yes, do_settimeofday() gets called properly, but it never results
in ppc_md.set_rtc_time ==> m8xx_set_rtc_time getting called!
(The only place I see that called is in timer_interrupt in
arch/ppc/kernel/time.c, and it's only called if the STA_UNSYNC
bit is not set in timer_status.  do_settimeofday() results
in the STA_UNSYNC bit being set and I don't see how it gets
cleared.).

I also looked at the other approach of configuring in /dev/rtc
and using hwclock, but the kernel won't boot with this
drivers/char/rtc.c
built in, and that doesn't look like it has 8xx support anyway.

In your response, you said "Whenever the kernel time is updated, the
hardware register is also updated.".  Is settimeofday()/stime()
the methods of updating the kernel time that you were talking about?

I know I'm missing something, as it sounds like this works for others,
but I'd greatly appreciate it if someone would clue me in!
(Again, I'm using the 2.4.3 kernel, if that's relevant).

Thanks,
Steve

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-19 Thread Steven Hein

Dan Malek wrote:
>
>
> Ahh, OK.  I'll take a look at this.  I thought it used to work in
> older kernels.  It's on my list (or if someone else wants to take
> a look and send a patch .. :-).
>

I looked through the source, and the difference between the 2.2.x
(2.2.13
and 2.2.14 mvista kernels) and the 2.4.3 kernel is that, in the
2.2.x kernel, the set_rtc_time function in timer_interrupt()
can only be called if (time_status & STA_UNSYNC) != 0, where
in the 2.4.x kernel set_rtc_time can only be called if the
(time_status & STA_UNSYNC) == 0.  As I see it, the STA_UNSYNC bit
is always set, so the RTC will never be updated!

At first I suspected just a bug in the PPC code regarding this bit,
but I glanced through the time code in some of the other arch's
(sh, sparc, arm, etc.) and saw the identical logic:
- a call to do_settimeofday() *always* sets the
  STA_UNSYNC bit in time_status
- the RTC is only updated when STA_UNSYNC is *not* set
And I don't see any way that STA_UNSYNC gets cleared (unless it's
cleared by adjtimex() or something like that..

>
> As I recall, there are events that occur to update the RTC from
> the kernel's notion of time, and one used to be some timeout.  Perhaps
> after you set the time, if you wait for a while it may update the RTC.
>

I had printk's in m8xx_set_rtc, and they never printed.
(even after an hour or more).  Again, it looks like it all boils down
to the value of the STA_UNSYNC bit in 'time_status' and how
that gets manipulated.


--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-19 Thread Steven Hein

Tom Rini wrote:
>
> I think I understand the question/problem too.  We'll see what else I've
> got to work on as well. :)  Just checking, Steven have you tried to
> enable the "PPC_RTC" driver and gotten this same incorrect behavior?
>

Tom,

The only place I see references to PPC_RTC is in some of the PPC
"defconfig" files. I don't see any other places where that is
references in the 2.4.3 kernel.

Steve

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-19 Thread Steven Hein

Dan Malek wrote:
>
> Well, hell.what I used to do is now considered "userland
> business."  I guess the right thing to do is create a /dev/rtc
> that will manage the MPC8xx RTC.  Sorry I missed this as the
> kernel evolved.
>
I know this isn't under your control, but..

If this is the case (that setting the RTC is properly done through
/dev/rtc using hwclock, etc.), then doing a "date --set" no longer
sets the RTC, correct?  And it will never cause the RTC to be set?

.Seems to me that separating the setting of the RTC from setting
the kernel/system time is a Bad Idea.There's probably more to it
than that, or maybe "date --set" isn't considered a proper way to
manipulate the system clock anymore (maybe it never was   :).

--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-19 Thread Steven Hein

I'd love to help here, but I can't find the source
you're talking about!!

I've looked in the mvista's 2.2.14 kernel, and in the LSP's
for rpxlite and mbx860, plus the real 2.4.3 kernel, and I
see no reference to PPC_RTC in drivers/macintosh or
arch/ppc/config.in!

Where should I be looking?



Tom Rini wrote:
>
>
> Yes, I just noticed this myself when I went to try it on my rpx.
> What you'll need to do is:
> edit ./Makefile, and compile in drivers/macintosh/macintosh.o on
> CONFIG_PPC, not CONFIG_ALL_PPC.
> edit drivers/Makefile, and go into drivers/macintosh on CONFIG_PPC, not
> CONFIG_ALL_PPC.
> Finally, edit arch/ppc/config.in, and remove the test for !8xx around the
> PPC_RTC question.  Then it'll either work or die at boot.  I'm not sure
> yet :)  I should be able to test shortly tho.
>
> --
> Tom Rini (TR1265)
> http://gate.crashing.org/~trini/

--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






860 RTC support

2001-04-20 Thread Steven Hein

Tom Rini wrote:
>
>
> Okay, it doesn't _quite_ work (hwclock will oops) but hopefully it
> won't be too hard to track down.  I'll try and get to it this afternoon
> or tomorrow, or when time permits ([EMAIL PROTECTED] classes).  Patches 
> greatly
> appreciated. :)
>

I don't have a patch put together yet, but I found the problem:
m8xx_get_rtc_time is an __init function in the 2.4.x tree.
Remove the __init and it works great!

--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






ppc.kernel.org problems

2000-03-23 Thread Steven Hein

Dan,

Sorry to bother you.  I've scoured the linuxppc-emnbedded mailing list,
and I've tried (unsuccessfully) to access

ftp://ftp.ppc.kernel.org/pub/linuxppc/embedded/

I'm working on a MBX-based 860T board, and I'd like to move from the
2.2.13 kernel in the HardHat package to the latest 2.3.x kernel.
(We need it for the USB drivers).

I have BitKeeper access and I grabbed the latest Linux/PPC kernel tree,
but it doesn't have updated FEC or UART drivers in arch/ppc/8xx_io,
and I'd imagine there are other pieces missing.  Are those pieces
available
to merge w/the Linux PPC (2.3.99-pre3) kernel?  If so, where can I
go besides www.ppc.kernel.org/embedded, which appears to be down.

Any help would be appreciated

Thanks,
Steve

--

Steve Hein (ssh at sgi.com)  Engineering Diagnostics/Software
Silicon Graphics, Inc.
1050 Lowater Road Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Configuring Freecale ucc_geth without a PHY

2008-01-29 Thread Steven Hein
Hi all,

I have a custom board with an MPC8358 (our board is based
off of the MPC8360E-MDS development board) that has its eth's
directly connected (GMII) to a Broadcom network switch
part on the same board, with no PHYs between them.
We've have been using a 2.6.16.18 kernel (from TimeSys) up
until now, and I hacked in some crude support for no-phy
configs forced to 100Mbit and 1Gbit speeds.   Now I'm
moving to 2.6.22 (with 8360 the patches from bitshrine.org),
and I'm trying to understand how I should do this with
device trees, the new PHY infrastructure, etc.   Has anyone
else needed this support?   Does anyone have any suggestions
as to how to tackle it?

Thanks,
Steve

-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Re: Configuring Freecale ucc_geth without a PHY

2008-01-31 Thread Steven Hein
Kim Phillips wrote:
> On Tue, 29 Jan 2008 11:08:43 -0600
> Steven Hein <[EMAIL PROTECTED]> wrote:
>
>   
>> Hi all,
>>
>> I have a custom board with an MPC8358 (our board is based
>> off of the MPC8360E-MDS development board) that has its eth's
>> directly connected (GMII) to a Broadcom network switch
>> part on the same board, with no PHYs between them.
>> We've have been using a 2.6.16.18 kernel (from TimeSys) up
>> until now, and I hacked in some crude support for no-phy
>> configs forced to 100Mbit and 1Gbit speeds.   Now I'm
>> moving to 2.6.22 (with 8360 the patches from bitshrine.org),
>> and I'm trying to understand how I should do this with
>> device trees, the new PHY infrastructure, etc.   Has anyone
>> else needed this support?   Does anyone have any suggestions
>> as to how to tackle it?
>> 
>
> check out the "fixed-link" property and associated code.  This
> implementation came about after 2.6.22 though (it's commit-ish
> v2.6.23-10096-ga21e282).
>
> Kim
>   
Thanks for the pointer Kim! Using the "fixed-link" property
code already in the tree, and adding the glue in ucc_geth.c to
use it (modeled after the code in gianfar fix-link support
in fsl_soc.c), I was able to get this working with me 8360 board.

Is there a document anywhere that describes how to submit
patches for the powerpc kernel?Or do I just create the patch
(I'm learning about git right now...) again the paulus/powerpc.git
tree, and send it to this list?

Thanks,
Steve

-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


8360 custom board, ucc_geth TX errors on longer(?) packets

2008-02-01 Thread Steven Hein
Hi All:

For our custom 8360-based board that is based fairly closely
on the MPC8360-MDS board, I'm working on moving from a 2.6.16
kernel (Timesys distro) to 2.6.24.   I didn't use the device
tree in my old kernel, so I've had the learning experience
of tweaking the dts file for my custom board.  I've got it 99%
working  (I think!).   But I'm running into a really odd ethernet
problem that I don't understand.

I have two boards:  our custom 8360 board, and a MPC8360E-MDS
dev board.I can build a kernel for the MDS board and
ethernet works perfectly.When I build that kernel using the
same config, but changing the platform to my custom board
(and not changing any other options), everything works right
except for ethernet:it won't get an IP address using DHCP
(udhcpc)...I check the ifconfig output, and I see that
the TX error count is increasing, and there are very few TX
packets being sent.   I verified that this isn't a timeout--
it's being caused by the UCCE[TXE] bit being set   (I don't see
any other error indications in dmesg).

As another test, I configured the address manually.   When I do
that, I can ping the board with a normal ping; but if I use
the -s option to increase the packet size, then the pings will
fail when I use a size of about 250 or greater, and with a size
of about 300 or greater I get no successful ping packets.

The one main difference in this board is how eth0 is wired.
We have a Broadcom GbE switch part, and UCC1 eth is wired
directly to that switch (no PHY).   (This where I needed to
use the fixed-link option that I had asked about a couple of
days ago!).   In my 2.6.16-based kernel, I had created a
dummy "null" PHY to force the link speed to 1000, and that
worked well.I am using the same Broadcom network
switch software with both kernels, so the switch side of the
config should be the same.

I created my custom board config from the MPC8360E-MDS board
configs (starting with that defconfig, dts, and platform .c
file), and matched my GPIO pin configs in the dtb file to what
I had used in the 2.6.16 kernel..  I'm not sure where to
look for this problem, as I've never seen UCCE[TXE] set
before.Based on my experience in this move so far, I'd
guess that I've got something configured wrong somewhere,
but I just don't know where to look.

Does anyone have any ideas/suggestions?
Any help would be MUCH appreciated!!

Thanks,
Steve

-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Re: 8360 custom board, ucc_geth TX errors on longer(?) packets

2008-02-01 Thread Steven Hein
Kim Phillips wrote:
> On Fri, 01 Feb 2008 12:52:25 -0600
> Steven Hein <[EMAIL PROTECTED]> wrote:
>
>   
>> The one main difference in this board is how eth0 is wired.
>> We have a Broadcom GbE switch part, and UCC1 eth is wired
>> directly to that switch (no PHY).   (This where I needed to
>> 
>
> sounds like you ran into some h/w errata.  if on rgmii, you might
> want to find a way to program the switch for rgmii with internal delay
> (8360 rev.2 rgmii-id rx & tx; 8360rev2.1 rgmii-rxid (i.e. for rx
> only)).  If not, I'd contact fsl tech support directly.
>
> Kim
>   

I would suspect HW.but this WORKS with the 2.6.16 kernel
I was using!That's why I suspect that I still don't have
something configured right in my device tree, or something
else I missed in the new kernel.But I can't
figure out what it is :-(I've poured over the code in
the old versus new (both the ucc_geth driver and the platform
initialization in the old, and the device tree in the new)
and can't figure out what I missed!   And like I said, a
kernel with the same config (other than changing the platform)
works on my MPC8360E-MDS board.   Granted, that doesn't have
this direct switch connection..

I did look at the code related to the HW errata (QE_ENET18).
But we're using GMII to the switchand that workaround
code wasn't in active in my old kernel (it was there, but
commented out).

Any other thoughts?Has anyone seen this symptom before?

Steve

-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Re: 8360 custom board, ucc_geth TX errors on longer(?) packets

2008-02-01 Thread Steven Hein
Steven Hein wrote:
> Kim Phillips wrote:
>> On Fri, 01 Feb 2008 12:52:25 -0600
>> Steven Hein <[EMAIL PROTECTED]> wrote:
>>
>>  
>>> The one main difference in this board is how eth0 is wired.
>>> We have a Broadcom GbE switch part, and UCC1 eth is wired
>>> directly to that switch (no PHY).   (This where I needed to
>>> 
>>
>> sounds like you ran into some h/w errata.  if on rgmii, you might
>> want to find a way to program the switch for rgmii with internal delay
>> (8360 rev.2 rgmii-id rx & tx; 8360rev2.1 rgmii-rxid (i.e. for rx
>> only)).  If not, I'd contact fsl tech support directly.
>>
>> Kim
>>   
>
> I would suspect HW.but this WORKS with the 2.6.16 kernel
> I was using!That's why I suspect that I still don't have
> something configured right in my device tree, or something
> else I missed in the new kernel.But I can't
> figure out what it is :-(I've poured over the code in
> the old versus new (both the ucc_geth driver and the platform
> initialization in the old, and the device tree in the new)
> and can't figure out what I missed!   And like I said, a
> kernel with the same config (other than changing the platform)
> works on my MPC8360E-MDS board.   Granted, that doesn't have
> this direct switch connection..
>
> I did look at the code related to the HW errata (QE_ENET18).
> But we're using GMII to the switchand that workaround
> code wasn't in active in my old kernel (it was there, but
> commented out).
>
> Any other thoughts?Has anyone seen this symptom before?
>
> Steve
>
OkayI found it!Started poking at the UCCE registers
and found that the FIFO sizes weren't right.   This led me
to find a bug in my ucc_geth interface to the fixed-link
PHY driver:  the code to reconfigure the MURAM FIFO's for
Gigabit operation wasn't being executed for no-phy configs!
All is well once I changed this.

Sorry for the noise.   (glad I found this before
submitting my patch!   ;-)

Steve

-- 

Steve Hein ([EMAIL PROTECTED])  Engineering Diagnostics/Software
Silicon Graphics, Inc.  
1168 Industrial Blvd. Phone: (715) 726-8410
Chippewa Falls, WI 54729  Fax:   (715) 726-6715


___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded