Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Feb 2007 22:24:01 +0100
From:      Cats <cats@catslab.com>
To:        <freebsd-hackers@FreeBSD.ORG>, <freebsd-hackers@FreeBSD.ORG>
Subject:   Re: Geode SC1100 i2c bus
Message-ID:  <20072422241.046491@poppa>
In-Reply-To: <20070204.132150.1288664462.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I played a bit today with Geode registers.

Well, I tried to tweak the /usr/src/sys/i386/i386/geode.c

*** 198,203 ****
--- 198,207 ----
                        * people think their box just died.
                        */
                        led_func(&led1b, 1);
+                         outb(0x2E,0x7); // Select LDN Page 80
+                       outb(0x2F,0x2); // Put 02h in LDN to select IR Port
+                       outb(0x2E,0x30); // Select Logical Device Control=
 Register
+                       outb(0x2F,inb (0x2F)+1); // Set LDCR[0] to enable IR=
 port
                }
                if ( strlen(bios_oem) )
                        printf("Geode %s\n", bios_oem);

After rebooting with the new kernel I got this in the dmesg:

sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A, console
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A

Yes, the IR port is seen as a standard serial port and I have the cuad1* and=
 ttyd1* in the /dev

Well of course none of IRRCX1 and IRTX pins are wired on the wrap board, so=
 no way to test it.

This might be a trick to enable the ACBbuses on the geode to have them=
 recognized by a driver on the isa bus.

Got to try when I'll have some spare time.

Cheers,

Cedric

De cats@catslab.com, le 04/02/2007


> In message:
> Milan Obuch writes:
> : On Sunday 04 February 2007 01:21, perryh@pluto.rain.com wrote: :
> > > > The ACB is at the same level than Uart, so I had a look at
> sio : > > > source and got a big headache. I'm not really used to
> drivers : > > > nor kernel programming stuff, that's why I need
> your help. : > >
> : > > Why do you compare ACB and UART? In FreeBSD, sio is serial
> i/o : > > controller, not superIO, maybe you are confused... ACB
> and UART : > > does not have much in common... : >
> : > As I read the OP, both the ACB and the serial are in the same
> chip : > (the superIO), so it would seem reasonable to expect that
> the method : > of accessing the device registers in the (currently
> unsupported) ACB : > might be similar to the method of accessing
> the device registers in : > the (supported) serial port. : > :
> : You are right from the point of view 'how to access registers'.
> But what OP : wrote could be understand another way, too - he tried
> to modify sio to create : acb driver, which would not achieve the
> correct results. There is i2c : infrastructure in FreeBSD, acb
> driver should fit into its place there and it : is not that easy -
> I tried to understand it, but nobody could/was willing : to/did not
> care to help me understand it.
>
> I'm happy to help you understand it.
>
> Warner
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-
> unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20072422241.046491>