Latest code and scripts are working for me on BeagleBone...

Warner Losh imp at bsdimp.com
Sat Oct 13 03:06:12 UTC 2012


On Oct 12, 2012, at 8:26 PM, Andrew Turner wrote:

> On Fri, 12 Oct 2012 19:27:15 -0600
> Warner Losh <imp at bsdimp.com> wrote:
> 
>> 
>> On Oct 12, 2012, at 7:11 PM, George Neville-Neil wrote:
>>> 
>>> What's the rough outline of what's necessary to do that?  I can
>>> work on it.
>> 
>> (1) Finish unifying the initarm()
> I'm working on this. I just need to update one more SoC before I can
> merge them. Even with them merged we will still need to detect the SoC
> we are running on. That shouldn't be a problem as long as we only allow
> FDT on ARMv6.

This is ambiguous. Do you mean "All armv6 ports must support FDT" or "we don't allow FDT on armv4?"  I think the former is a-ok, but the latter is a non-starter.

>> (2) Unify the interrupt code
>> (3) unify the shutdown/startup code
>> (4) polish off any of the dangling loose ends that compiling all the
>> armv6 together. (0) write a GENERICV6 config file
> There are a number of functions that currently need to be implemented
> for each SoC. They should be trivial to find, e.g. with the linker, but
> we will need to come up with a solution to detect which SoC we are
> on and call the correct function.

Or we need to have drivers attach function pointers based on what hardware is present...

> Another problem I can see is in the memory layout. We need to specify a
> fixed virtual address layout for the kernel. It would be nice to be
> able to then load the kernel to any page aligned address and have it
> just work. It shouldn't be too difficult when the virtual and physical
> addresses don't overlap, e.g. we can figure out what address we have
> been loaded to by looking at the pc register at a known location. The
> problem will be when the virtual and physical addresses overlap but are
> not identical. In this case care will be needed when we turn the MMU on.
> This is because we create a map for the current physical address and
> the new virtual address to point them at the same physical memory then,
> when the MMU is enabled, jump between them.

armv6 is supposed to solve this by standardizing the memory layout...  There are some compile-time constants that need to become run-time values, which may have a minor performance hit in a few places....

> Having a look at the SoCs we support the only one I can see that might
> cause us problems is sa11x0.

The sa11x0 is an ancient armv4 processor, I thoght, predecessor to strongarm.  Not really a consideration for this project.

Warner


More information about the freebsd-arm mailing list