Hello, Starting to work on the TV-Out code for the RCA RM4100, and I need some help. Here is the Logical Plan:
1. Setup a custom vga init (similar to Corey's vga.c for the cn700 northbridge) that will call a i2c (i810_i2c.c which could be used for a bunch of intel nothbridges) driver from coreboot-v2/src/drivers/i2c/ that will setup communications with the Tv encoder via the GPIO (sda, sdl) lines in the nothbridge. 2. Then setup a init (that would program the registers, and fire it up)for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Here is where it gets tricky. I want to make it dynamic in the respect that you could specify from your mainboard directory: a. TV-out settings (with a header file??) like NTSC, PAl, resolution, macrovision, filters, etc. a. enable TV encoder usage (if yes setup i2c, otherwise just skip over it) b. Specify which Tv encoder to use
This would broaden the horizons and allow other boards that have TV-out to use this code also. The only thing I can think to do is setup some global parameters? Suggestions?
Does anyone have any thoughts on this? I could really use some suggestions...
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of joe@settoplinux.org Sent: Thursday, April 17, 2008 10:44 PM To: coreboot@coreboot.org Subject: [coreboot] TV-Out Plan - need suggestions
Hello, Starting to work on the TV-Out code for the RCA RM4100, and I need some help. Here is the Logical Plan:
- Setup a custom vga init (similar to Corey's vga.c for the cn700
northbridge) that will call a i2c (i810_i2c.c which could be used for a bunch of intel nothbridges) driver from coreboot-v2/src/drivers/i2c/ that will setup communications with the Tv encoder via the GPIO (sda, sdl) lines in the nothbridge. 2. Then setup a init (that would program the registers, and fire it up)for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Here is where it gets tricky. I want to make it dynamic in the respect that you could specify from your mainboard directory: a. TV-out settings (with a header file??) like NTSC, PAl, resolution, macrovision, filters, etc. a. enable TV encoder usage (if yes setup i2c, otherwise just skip over it) b. Specify which Tv encoder to use
This would broaden the horizons and allow other boards that have TV-out to use this code also. The only thing I can think to do is setup some global parameters? Suggestions?
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On Fri, Apr 18, 2008 at 5:18 PM, Joe joe@settoplinux.org wrote:
Hello, Starting to work on the TV-Out code for the RCA RM4100, and I need some help. Here is the Logical Plan:
- Setup a custom vga init (similar to Corey's vga.c for the cn700
northbridge) that will call a i2c (i810_i2c.c which could be used for a bunch of intel nothbridges) driver from coreboot-v2/src/drivers/i2c/
that
will setup communications with the Tv encoder via the GPIO (sda, sdl) lines in the nothbridge.
Similar to, yes, but don't use vm86 (like I did) unless x86emu doesn't work. What you can do is NOT set up the rom_address in Config.lb, so coreboot doesn't know where to automagically run the rom from, then once you're done with the pre-rom stuff, call pci_rom_run manually from a function inside mainboard.c, using a location of 4GB-ROM_SIZE. Then in chip.h, add a struct member .enable_dev = [name of your function], so your custom vga init is only for your board.
- Then setup a init (that would program the registers, and fire it
up)for
the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Again, do this inside mainboard.c, so any other systems that might use i830 don't get tv init interfering with anything else.
Here is where it gets tricky. I want to make it dynamic in the respect that you could specify from your mainboard directory: a. TV-out settings (with a header file??) like NTSC, PAl, resolution, macrovision, filters, etc. a. enable TV encoder usage (if yes setup i2c, otherwise just skip over
it)
b. Specify which Tv encoder to use
Two options: The first is to add global defines to the mainboard Config.lb, which also means adding them to the build system, I can't remember at the moment how to do that, but I think if you grep for some config variable name in util/, and you should be able to find it.
The second is to add config variables, similar to how we set the rom_address = "0xsomething". That I can't remember how to do at the moment either, and I'm not sure if you can do it on a mainboard level or not, thinking about it again, you might have to resort to doing it in the northbridge stuff.
Good luck! -Corey
This would broaden the horizons and allow other boards that have TV-out
to
use this code also. The only thing I can think to do is setup some
global
parameters? Suggestions?
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
_____
From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Corey Osgood Sent: Friday, April 18, 2008 5:50 PM To: joe@settoplinux.org Cc: Coreboot Subject: Re: [coreboot] TV-Out Plan - need suggestions
On Fri, Apr 18, 2008 at 5:18 PM, Joe joe@settoplinux.org wrote:
Hello, Starting to work on the TV-Out code for the RCA RM4100, and I need some help. Here is the Logical Plan:
- Setup a custom vga init (similar to Corey's vga.c for the cn700
northbridge) that will call a i2c (i810_i2c.c which could be used for a bunch of intel nothbridges) driver from coreboot-v2/src/drivers/i2c/ that will setup communications with the Tv encoder via the GPIO (sda, sdl) lines in the nothbridge.
Similar to, yes, but don't use vm86 (like I did) unless x86emu doesn't work. What you can do is NOT set up the rom_address in Config.lb, so coreboot doesn't know where to automagically run the rom from, then once you're done with the pre-rom stuff, call pci_rom_run manually from a function inside mainboard.c, using a location of 4GB-ROM_SIZE. Then in chip.h, add a struct member .enable_dev = [name of your function], so your custom vga init is only for your board.
- Then setup a init (that would program the registers, and fire it up)for
the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Again, do this inside mainboard.c, so any other systems that might use i830 don't get tv init interfering with anything else.
Here is where it gets tricky. I want to make it dynamic in the respect that you could specify from your mainboard directory: a. TV-out settings (with a header file??) like NTSC, PAl, resolution, macrovision, filters, etc. a. enable TV encoder usage (if yes setup i2c, otherwise just skip over it) b. Specify which Tv encoder to use
Two options: The first is to add global defines to the mainboard Config.lb, which also means adding them to the build system, I can't remember at the moment how to do that, but I think if you grep for some config variable name in util/, and you should be able to find it.
The second is to add config variables, similar to how we set the rom_address = "0xsomething". That I can't remember how to do at the moment either, and I'm not sure if you can do it on a mainboard level or not, thinking about it again, you might have to resort to doing it in
the northbridge stuff.
I was thinking about figuring out how to setup this in Config.lb
Good luck! -Corey
This would broaden the horizons and allow other boards that have TV-out to use this code also. The only thing I can think to do is setup some global parameters? Suggestions?
Thnaks for the suggestions Corey :-)
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
On Fri, Apr 18, 2008 at 05:50:15PM -0400, Corey Osgood wrote:
- Then setup a init (that would program the registers, and fire
it up for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Again, do this inside mainboard.c, so any other systems that might use i830 don't get tv init interfering with anything else.
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
//Peter
That's what I was thinking Peter, I'll have to look into this further. Just think, this will be the first coreboot board with TV-out that will not depend on any outside drivers :-)
Although there are Linux drivers that could be used to change the settings once in Linux (overscan, etc).
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Peter Stuge Sent: Saturday, April 19, 2008 1:42 PM To: Coreboot Subject: Re: [coreboot] TV-Out Plan - need suggestions
On Fri, Apr 18, 2008 at 05:50:15PM -0400, Corey Osgood wrote:
- Then setup a init (that would program the registers, and fire
it up for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Again, do this inside mainboard.c, so any other systems that might use i830 don't get tv init interfering with anything else.
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
//Peter
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Erm, is the tv-out part of the onboard video, or is it a separate chip? I thought it was a separate chip, so it wouldn't go in with the i830 stuff (in case someone else has tv out with another board and a different chip). But if it's onboard, just ignore me.
-Corey
On Sat, Apr 19, 2008 at 8:51 PM, Joe joe@settoplinux.org wrote:
That's what I was thinking Peter, I'll have to look into this further. Just think, this will be the first coreboot board with TV-out that will not depend on any outside drivers :-)
Although there are Linux drivers that could be used to change the settings once in Linux (overscan, etc).
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:
coreboot-bounces@coreboot.org]
On Behalf Of Peter Stuge Sent: Saturday, April 19, 2008 1:42 PM To: Coreboot Subject: Re: [coreboot] TV-Out Plan - need suggestions
On Fri, Apr 18, 2008 at 05:50:15PM -0400, Corey Osgood wrote:
- Then setup a init (that would program the registers, and fire
it up for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Again, do this inside mainboard.c, so any other systems that might use i830 don't get tv init interfering with anything else.
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
//Peter
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Well,
Unlike most VIA's where the TV-out is built in to the northbridge, Intel uses a separate chip for the TV-out, in this case it is a Conexant CX25873-13 High Performance Video Encoder. The chip is onboard, just separate from the northbridge. And the tricky part is that the Conexant CX25873 needs to be initialized after the graphics (timing, clocking, etc), hence the need for a custom graphics init. Does that make sense??
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
_____
From: Corey Osgood [mailto:corey.osgood@gmail.com] Sent: Saturday, April 19, 2008 11:20 PM To: joe@settoplinux.org Cc: Peter Stuge; Coreboot Subject: Re: [coreboot] TV-Out Plan - need suggestions
Erm, is the tv-out part of the onboard video, or is it a separate chip? I thought it was a separate chip, so it wouldn't go in with the i830 stuff (in case someone else has tv out with another board and a different chip). But if it's onboard, just ignore me.
-Corey
On Sat, Apr 19, 2008 at 8:51 PM, Joe joe@settoplinux.org wrote:
That's what I was thinking Peter, I'll have to look into this further. Just think, this will be the first coreboot board with TV-out that will not depend on any outside drivers :-)
Although there are Linux drivers that could be used to change the settings once in Linux (overscan, etc).
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org]
On Behalf Of Peter Stuge Sent: Saturday, April 19, 2008 1:42 PM To: Coreboot Subject: Re: [coreboot] TV-Out Plan - need suggestions
On Fri, Apr 18, 2008 at 05:50:15PM -0400, Corey Osgood wrote:
- Then setup a init (that would program the registers, and fire
it up for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Again, do this inside mainboard.c, so any other systems that might use i830 don't get tv init interfering with anything else.
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
//Peter
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On Sun, Apr 20, 2008 at 09:57:03AM -0400, Joe wrote:
a Conexant CX25873-13 High Performance Video Encoder. The chip is onboard, just separate from the northbridge. And the tricky part is that the Conexant CX25873 needs to be initialized after the graphics (timing, clocking, etc), hence the need for a custom graphics init. Does that make sense??
Makes perfect sense!
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
This is not obviously correct anymore. I thought it was indeed integrated. The CX25873 no doubt needs specific init, which doesn't belong in the Intel code at all. Hm.
//Peter
Hmm is right. That brings me back to my original question then:
Starting to work on the TV-Out code for the RCA RM4100, and I need some help. Here is the Logical Plan:
1. Setup a custom vga init (similar to Corey's vga.c for the cn700 northbridge) that will call a i2c (i810_i2c.c which could be used for a bunch of intel nothbridges) driver from coreboot-v2/src/drivers/i2c/ that will setup communications with the Tv-out encoder via the GPIO (sda, sdl) lines in the nothbridge. 2. Then setup a init (that would program the registers, and fire it up)for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Here is where it gets tricky. I want to make it dynamic in the respect that you could specify from your mainboard directory: a. enable TV encoder usage (if yes setup i2c and program encoder, otherwise just skip over it). b. TV-out settings (with a header file??) like NTSC, PAl, resolution, macrovision, filters, etc. c. Specify which Tv encoder to use
This would broaden the horizons and allow other boards that have TV-out to use this code also. The only thing I can think to do is setup some global parameters? Suggestions?
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-----Original Message-----
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
This is not obviously correct anymore. I thought it was indeed integrated. The CX25873 no doubt needs specific init, which doesn't belong in the Intel code at all. Hm.
//Peter
On Sun, Apr 20, 2008 at 9:05 PM, Joe joe@settoplinux.org wrote:
Hmm is right. That brings me back to my original question then:
Starting to work on the TV-Out code for the RCA RM4100, and I need some help. Here is the Logical Plan:
- Setup a custom vga init (similar to Corey's vga.c for the cn700
northbridge) that will call a i2c (i810_i2c.c which could be used for a bunch of intel nothbridges) driver from coreboot-v2/src/drivers/i2c/ that will setup communications with the Tv-out encoder via the GPIO (sda, sdl) lines in the nothbridge. 2. Then setup a init (that would program the registers, and fire it up)for the Tv encoder coreboot-v2/src/drivers/tv-out which could also be called from the nothbridge vga.c.
Here is where it gets tricky. I want to make it dynamic in the respect that you could specify from your mainboard directory: a. enable TV encoder usage (if yes setup i2c and program encoder, otherwise just skip over it). b. TV-out settings (with a header file??) like NTSC, PAl, resolution, macrovision, filters, etc. c. Specify which Tv encoder to use
Ok, I'm not sure if that would work or not (it's late, I'm tired, and I can't remember), but declaring the tv encoder as a seperate device *should* work. Then you can put it in your mainboard Config.lb as device/tv-encoder/[chip name], like a north/south bridge or super io. You should then be able to give it an options struct, so you can just do register "format" = "ntsc", etc.
-Corey
This would broaden the horizons and allow other boards that have TV-out to use this code also. The only thing I can think to do is setup some global parameters? Suggestions?
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
-----Original Message-----
Please make the TV stuff generic code for the chipset that is enabled by an option in Config.lb.
This is not obviously correct anymore. I thought it was indeed integrated. The CX25873 no doubt needs specific init, which doesn't belong in the Intel code at all. Hm.
//Peter
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot