Is the MIPS kernel buildable from HEAD?
Patrick Mahan
PMahan at adaranet.com
Thu Aug 26 15:27:55 UTC 2010
> -----Original Message-----
> From: M. Warner Losh [mailto:imp at bsdimp.com]
> Sent: Wednesday, August 25, 2010 10:29 PM
> To: c.jayachandran at gmail.com
> Cc: Patrick Mahan; freebsd-mips at FreeBSD.org
> Subject: Re: Is the MIPS kernel buildable from HEAD?
>
> In message: <AANLkTi=FZrdjE0KoUHvOiB9hyz5ZDWepS9743ghAw9SU at mail.gmail.com>
> "Jayachandran C." <c.jayachandran at gmail.com> writes:
> : On Thu, Aug 26, 2010 at 2:43 AM, M. Warner Losh <imp at bsdimp.com> wrote:
> : > In message: <32AB5C9615CC494997D9ABB1DB12783C024C875590 at SJ-EXCH-
> 1.adaranet.com>
> : > Patrick Mahan <PMahan at adaranet.com> writes:
> : > : Is it possible to build the MIPS kernel from HEAD? Or is the
> : > : current development still external to the HEAD branch?
> : >
> : > Yes. The tip of head is where the mips action is these days. There
> : > is no external development branch.
> : >
> : > There is one issue, however. If you are building for one of the
> : > 64-bit processors a 64-bit kernel, then the required userland won't
> : > build. There's still issues that need to be sorted out...
> :
> : The 64-bit userland builds for me with -DWITHOUT_CDDL -DWITHOUT_USB
> : -DWITHOUT_BLUETOOTH -DWITHOUT_RESCUE - are you referring to these, or
> : are there other issues?
>
> I can do a buildworld now without any of these flags. I don't know
> what the bluetooth issue is/was, but it doesn't kill the build. I
> fixed the CDDL issue, and papered over the uath and rescue issues in
> the build system.
>
> I can now build a n64 world in -current. I haven't had a chance to
> run it yet, but hope to soon. My CN38xx board doesn't like the 32-bit
> kernel anymore... It also doesn't like the 64-bit kernel, but I think
> that's a uboot issue. It seems older ldscripts didn't tickle the bugs
> the current one does (on the other hand, the old ldscripts only worked
> on the CN38xx board). On the other hand, SDK 1.9.0's uboot on another
> board works fine with the 64-bit kernel.
>
Warner,
We build o32 with our modified FreeBSD 8.0 that boots under the SDK 1.8.1
on a CN58XX. However, I was looking at the ldscript that we use versus
the one in use for you. We are using what is basically sys/conf/ldscript.mips.
Also, I think our problem is with the a3 register passed in as part of
platform_start() in cavium/octeon_machdep.c. We have the following in
mips/lowcore.S -
#if defined(TARGET_OCTEON)
la a0, app_descriptor_addr
sw a3, 0(a0) /* Store app descriptor ptr */
#endif
So we are storing the value of a3 into a global that we later use in
octeon32/Octeon_machdep.c -
static void
mips_boot_params_init(void)
{
int descriptor_not_parsed = 1;
if ((app_descriptor_addr == 0) || (app_descriptor_addr >= 0xAfffffff)) {
printf("address of app_descriptor is %x\n",
app_descriptor_addr);
} else {
app_desc_ptr = (octeon_boot_descriptor_t *) app_descriptor_addr;
octeon_bd_ver = app_desc_ptr->desc_version;
...
I am need to investigate, but I think we found that a3 was getting clobbered on
the inbound call to platform_start().
Patrick
More information about the freebsd-mips
mailing list