public inbox for linux-m68k@lists.linux-m68k.org
 help / color / mirror / Atom feed
From: Finn Thain <fthain@linux-m68k.org>
To: Brad Boyer <flar@allandria.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] nubus: Don't list card resources by default
Date: Sat, 25 Mar 2023 10:35:52 +1100 (AEDT)	[thread overview]
Message-ID: <0cd7f288-ba43-7764-01a7-2e1e5c7a1640@linux-m68k.org> (raw)
In-Reply-To: <20230324085927.GA6354@allandria.com>

Hi Brad,

On Fri, 24 Mar 2023, Brad Boyer wrote:

> On Fri, Mar 24, 2023 at 10:13:51AM +1100, Finn Thain wrote:
> > On Thu, 23 Mar 2023, Geert Uytterhoeven wrote:
> > > On Thu, Mar 23, 2023 at 7:02???AM Finn Thain <fthain@linux-m68k.org> wrote:
> > > > --- a/drivers/nubus/nubus.c
> > > > +++ b/drivers/nubus/nubus.c
> > > > @@ -34,6 +34,9 @@
> > > >
> > > >  LIST_HEAD(nubus_func_rsrcs);
> > > >
> > > > +bool procfs_rsrcs;
> > > > +module_param(procfs_rsrcs, bool, 0444);
> > > 
> > > With the expanded functionality, is "rsrcs" still a good name?
> > > Perhaps this should be an integer, so you can define different
> > > levels? E.g.
> > >   - 0 = just devices
> > >   - 1 = above + boards + public resources
> > >   - 2 = above + private resources
> > 
> > That really depends on how the proc entries get used. I think it's 
> > probably going to be developers who would use them so I consider all 
> > of this to be outside of the UAPI and subject to change. But it would 
> > be nice to hear from other developers on that point.
> 
> I don't know of anything that currently uses them, but there's a number 
> of potential uses depending on how far we want to take things. A real 
> video driver for X.org for some of the more advanced cards could take 
> advantage of some of the secondary information made available. I've got 
> a number of NuBus video cards with some acceleration capabilities that 
> were pretty advanced for the time.

Good point. I had not considered Xorg drivers. But I'm not sure why 
userspace drivers would access /proc when they already need /dev/mem or 
some more modern graphics API to be implemented by an in-kernel driver.

> There's even a driver in the ROM on video cards that could be used, but 
> that also requires more emulation of the MacOS environment. KVM could 
> potentially need more information if we got it running on m68k, although 
> I doubt any real Mac has enough RAM to make that useful.

You only need a few MB to run MacOS (or an early Linux distro). So I 
rather think that KVM could be workable with 64 or 128 MB of RAM.

The /proc/bus/nubus/boards file is not affected by this patch, so userland 
tools could still identify the available boards if need be.

> I haven't looked at a Radius Rocket (a Mac on a card) to see if it has 
> anything useful in these, but I wouldn't be surprised if there are 
> useful things there. I've never tried to boot Linux on a system with one 
> installed or booting Linux on the card itself. I have booted a second 
> instance of the MacOS on one, and I seem to recall it shows up as a 
> Q900. I have a couple x86 system cards that were intended to run DOS as 
> well. There was an Apple II card for the LC slot, but I don't own one. 
> LC slot cards show up in software as NuBus, as I recall.
> 

I think those cards are in the same category as video cards in the sense 
that userspace drivers would need /dev/mem.

> It wouldn't be in userspace, but we could end up needing to pull 
> firmware out of them for a number of different cards. I've got a couple 
> SCSI cards that would need to have firmware loaded at runtime, and the 
> ROM would have the default version even if we also allow a firmware file 
> to override that. Based on the existing qlogicpti.c code, the ISP 1000 
> chip (found on ATTO SiliconExpress IV cards) needs firmware. The older 
> SiliconExpress cards all appear to use various ESP chips, so they likely 
> don't need anything special. I suspect the various MCP based cards have 
> useful things on the ROM for a driver to use. They each have a 68000 
> chip on them running A/ROSE, which is presumably loaded from firmware as 
> well. I have both ethernet and serial cards based on this platform. It 
> appears that a driver for the specific card has to be loaded into A/ROSE 
> on the card after it boots.
> 

I had not considered that /proc could be used that way. Unfortunately, the 
length of procfs entries is limited to PAGESIZE. Larger entries are listed 
but have length 0. So I think this isn't going to fly.

Probably /dev/mem or a MacOS utility, or a ROM dump created by a MacOS 
utility, would be needed to extract firmware from the MacOS ROM, such as 
the firmware used by the IOP co-processors (which are standard equipment 
on some models). The same solutions (though not ideal) could also work for 
slot resources.

> I've got a bunch of cards that I've never even looked at the resources 
> built into the ROM chips, so I'm guessing on what might or might not be 
> useful. At one point I was buying every card I could find that looked 
> interesting, and many of them I've never tested. I have crates full of 
> stuff, plus a bunch stacked up that came in original boxes.
> 
> Checking them is disabled now, but some Macs have fake NuBus resources 
> for some of the onboard devices that show up as if they were in a 
> virtual NuBus slot 0. Scanning that apparently caused problems on some 
> models (presumably a bus error, since it would be accessing invalid 
> addresses). Really old kernels had code to scan that protected by a 
> compile time option.
> 

I can't figure out why procfs access to the slot resources from pseudo 
slot 0 would be desirable (?)

  reply	other threads:[~2023-03-24 23:33 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23  6:03 [PATCH v2] nubus: Don't list card resources by default Finn Thain
2023-03-23  8:19 ` Geert Uytterhoeven
2023-03-23 23:13   ` Finn Thain
2023-03-24  8:59     ` Brad Boyer
2023-03-24 23:35       ` Finn Thain [this message]
2023-03-25 12:44         ` Geert Uytterhoeven
2023-03-26  0:03           ` Brad Boyer
2023-03-26  8:23             ` Geert Uytterhoeven
2023-03-26  0:00         ` Brad Boyer
2023-03-26  3:22           ` Finn Thain
2023-03-23  8:39 ` Andreas Schwab
2023-03-23  8:41   ` Geert Uytterhoeven
2023-03-24  0:08     ` Finn Thain
2023-03-24  8:26       ` Geert Uytterhoeven

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=0cd7f288-ba43-7764-01a7-2e1e5c7a1640@linux-m68k.org \
    --to=fthain@linux-m68k.org \
    --cc=flar@allandria.com \
    --cc=geert@linux-m68k.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox