From: Matteo Vit <matteo.vit@dave.eu>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] SOFT_I2C on at91rm9200
Date: Mon, 18 Jun 2007 18:27:34 +0200 [thread overview]
Message-ID: <4676B276.5090600@dave.eu> (raw)
In-Reply-To: <6c6c66ec0706180439h73d253fcj23e96250bc5ae49c@mail.gmail.com>
Nils Gjerdevik ha scritto:
> Hi,
> I'm trying to store the u-boot environment in an EEPROM (at24c128) on
> a custom at91rm9200 based board. This fails when using the included
> HARD_I2C driver, and since there are known problems with the I2C
> controller on this uC, I'm trying to set up SOFT_I2C instead, without
> success so far...
This is for the Atmel's AVR32 processor. The PIO block seems the same.
Just change pio2_writel function calls. I hope this help.
Matteo
/*
* Software (bit-bang) I2C driver configuration
*/
#define GPIOG_EECLK 0x80
#define GPIOG_EEDAT 0x40
#define I2C_INIT { \
pio2_writel(PIOA_BASE,PER,GPIOG_EEDAT | GPIOG_EECLK); \
pio2_writel(PIOA_BASE,OER,GPIOG_EEDAT | GPIOG_EECLK); \
pio2_writel(PIOA_BASE,IDR,GPIOG_EEDAT | GPIOG_EECLK); \
pio2_writel(PIOA_BASE,PUDR,GPIOG_EEDAT | GPIOG_EECLK); \
pio2_writel(PIOA_BASE,MDER,GPIOG_EEDAT | GPIOG_EECLK); \
pio2_writel(PIOA_BASE,OWER,GPIOG_EEDAT | GPIOG_EECLK); \
}
#define I2C_ACTIVE (pio2_writel(PIOA_BASE,SODR,GPIOG_EEDAT))
#define I2C_TRISTATE (pio2_writel(PIOA_BASE,SODR,GPIOG_EEDAT))
#define I2C_READ (pio2_readl(PIOA_BASE,PDSR) & GPIOG_EEDAT ? 1 : 0)
#define I2C_SDA(bit) pio2_writel(PIOA_BASE,OER,GPIOG_EEDAT); \
if (bit) pio2_writel(PIOA_BASE,SODR,GPIOG_EEDAT); \
else pio2_writel(PIOA_BASE,CODR,GPIOG_EEDAT)
#define I2C_SCL(bit) pio2_writel(PIOA_BASE,OER,GPIOG_EECLK); \
if (bit) \
pio2_writel(PIOA_BASE,SODR,GPIOG_EECLK); \
else pio2_writel(PIOA_BASE,CODR,GPIOG_EECLK)
#define I2C_DELAY udelay(50) /* 1/4 I2C clock duration */
#endif /* CONFIG_SOFT_I2C */
From "abiyani at unix dot telasic dot com" at unix.telasic.com Mon Jun 18 19:20:15 2007
From: "abiyani at unix dot telasic dot com" at unix.telasic.com (Arun Biyani)
Date: Mon, 18 Jun 2007 10:20:15 -0700
Subject: [U-Boot-Users] U-Boot 1.2 - Cannot run hello_world - Coldfire
In-Reply-To: <IDEBKKLJFJMDCLNCEJPHGEGNCBAA.ganesh.patro@softdel.com>
References: <IDEBKKLJFJMDCLNCEJPHGEGNCBAA.ganesh.patro@softdel.com>
Message-ID: <200706181720.KAA21445@unix.telasic.com>
Ganesh Chandra Patro wrote:
> -----Original Message-----
> From: u-boot-users-bounces at lists.sourceforge.net
> [mailto:u-boot-users-bounces at lists.sourceforge.net]On Behalf Of Arun
> Biyani
> Sent: 15 June, 2007 Friday 11:00 PM
> To: Wolfgang Denk
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] U-Boot 1.2 - Cannot run hello_world -
> Coldfire
>
>
> Wolfgang Denk wrote:
>
>> Eventually you did not download the binary image?
>>
>> Best regards,
>>
>> Wolfgang Denk
>>
>>
>>
> This morning, I also tried to run the .bin file (hello_world.bin).
> U-Boot just hung up. Current status
> is, the hello_world program in the distribution (unmodified) does not
> run on Coldfire based board.
> I tried this on our target board as well as a CSB360 board from Cogent
> Computers. I tried both
> the hello_world.srec file and the hello_world.bin file.
>
> Any ideas as to what I can do to make simple applications run in U-Boot
> on Coldfire? Has anyone
> else tried this?
>
> Thx
>
> Hi Arun,
> There is a specific way to run a bin file. First you have to load to a
> specific memory location let's say 0x2000. You have find the entry point
> address of the bin from it's symbol table and assuming the flash start
> address of the bin file 0, add 0x2000 to know the entry point address of the
> bin in the memory just loaded. Now say go "address" on the CLI. The program
> will run. Every time you load to a different address you need to find the
> actual physical address. That's why loading an ELF is easier than a bin from
> CLI. The same bin or srec can be burnt and run from the flash, but running a
> bin would involve this much to do be done.
>
> Thanks and Regards
>
> Ganesh Chandra Patro
> SoftDel Systems Ltd
> "ACROPOLIS", 2nd Floor
> Marol Maroshi
> Military Road
> Andheri(East)
> Mumbai - 400 059
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>
>
>
>
Ganesh, Thx for your response.
The program "hello_world" is part of the release package. I've verified that
the entry point is indeed "0x20000". So, the problem is something else.
Can anyone think of what else
might be the cause? I have 2-3 previous posts on the same subject.
The documentation does not talk about running "elf" files. Could someone
give me a basic intro?
Arun
prev parent reply other threads:[~2007-06-18 16:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-18 11:39 [U-Boot-Users] SOFT_I2C on at91rm9200 Nils Gjerdevik
2007-06-18 11:59 ` Joakim Tjernlund
2007-06-18 13:51 ` Nils N. Gjerdevik
2007-06-18 14:02 ` Joakim Tjernlund
2007-06-18 16:27 ` Matteo Vit [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4676B276.5090600@dave.eu \
--to=matteo.vit@dave.eu \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.