[U-Boot] [PATCH] atngw100: Use virtual address in CONFIG_ENV_ADDR

Haavard Skinnemoen
2009-09-01T15:20:47Z

Thiago A. Corr?a <thiago.correa@gmail.com> wrote:
> Hi,
>
> I don't want to intrude too much into the discussion, but I would
> like to offer a small bit of info

Oh, I wish more people would intrude ;-)

> On Tue, Sep 1, 2009 at 10:23 AM, Haavard
> Skinnemoen<haavard.skinnemoen@atmel.com> wrote:
> >> It would be a good idea to clean up this board ?support, ?remove ?the
> >> proprietary ?flash driver and use the CFI driver instead. Patches are
> >> welcome.
> >
> > You must be joking. Replacing a working driver with a broken one? Why
> > the hell would anyone do that?
> >
>
> My custom board uses AT49BV640D. I wen't thru a lot of trouble getting
> u-boot to work with it. And one of my attempts was to use the "working
> driver" from stk1000 and it didn't work.

Understandably since 640D uses the intel command set while the 6416
chip on STK1000 uses the AMD command set and has a couple of
interesting bugs...

Now, I still want to use common code as much as possible, but it's
always been quite expensive in terms of code size, and it currently
doesn't even work. While both of those should be possible to overcome,
I'm getting incredibly frustrated that all my attempts at fixing it are
being shot down by arcane, non-sensical rules which aren't even being
enforced consistently.

> On the other hand, the CFI
> driver with the tripple revert that Haavard proposed did. I'm
> currently patching it like that so I can continue my development,
> while people with much more knowleadge than I have on u-boot code
> could fix the issue, but looks like I'm about to get orphan on u-boot
> and Atmel.

Right...I'm beginning to doubt that anyone is familiar enough with the
u-boot code, since everyone seems to have their own opinion about how
things are supposed to work.

To summarize, here are the possible ways to fix the problem as I see it:
- Use virtual address in CONFIG_ENV_ADDR to conform with the way the
CFI driver currently works. Rejected by Wolfgang because virtual
addresses don't exist.
- Fix the API and user interface breakage by reverting commit
09ce9921. Rejected because virtual addresses are used everywhere.
- Fix it by using map_physmem() in a way that works for all
architectures. Rejected because all other architectures than PPC
are evil and need to be punished for doing things differently.
- Introduce a custom flash driver for ATNGW100. Rejected because
stupid principles are more important than making things work.

So I don't really know where to proceed from here. I guess two
additional options are forking the damn thing or creating a proprietary
bootloader, but I don't really want to do either.

Haavard