Hi
added a patch with a new target for mainboard ASUS A8N-E. I used tyan/s2891 as a code basis.
Code compiles(tested with openSUSE 10.2 and gcc 4.1.2 on AMD64) and boots(also tested with openSUSE 10.0 and standard SMP kernel). Memtest-86 v3.2 started with filo ran through without errors.
known issues: - more than one DIMM is not working (seems to be a general issue known from other ck804 boards with athlon 64 [1]) - RAM olny runs with small modification of amdk8/raminit.c !!!!!!!! => comment out debug for athlon 64 in line 1204 ----------------------------------------------------------------------------------------------------------------- -#if 1 +#if 0 //By yhlu for debug Athlon64 939 can do dual channel, but it ..... if (unbuffered && is_opteron(ctrl)) { die("Unbuffered Dimms not supported on Opteron"); ----------------------------------------------------------------------------------------------------------------- - ps2 keyboard and mouse are not working yet (use usb counterparts instead) => seems to be an interrupt issue?? maybe someone with ck804 datasheets or board schematics able to help out here ? - PCI_ROM of my external PCIE VGA does sometimes not get loaded after power off? After soft reboot it is back again. Maybe pci init of linuxbios is just too fast for the card :)
The patch also targets pc80/keyboard.c. I added an error message in case of a selftest failure.
The superio ite it8712f implementation was modified too but as far as these changes did not really solve my interrupt issue for keyboard and mouse i would provide these changes in a separate patch if it is of any interest.
Signed-off-by: Philipp Degler pdegler@rumms.uni-mannheim.de
phil
----------------------------------------------- [1] http://thread.gmane.org/gmane.linux.bios/21183/focus=21444
Hi,
On Fri, May 18, 2007 at 04:39:38PM +0200, Philipp Degler wrote:
- RAM olny runs with small modification of amdk8/raminit.c !!!!!!!! => comment out debug for athlon 64 in line 1204
-#if 1 +#if 0 //By yhlu for debug Athlon64 939 can do dual channel, but it ..... if (unbuffered && is_opteron(ctrl)) { die("Unbuffered Dimms not supported on Opteron");
Hm, why is that? Would this change break other targets?
- ps2 keyboard and mouse are not working yet (use usb counterparts instead) => seems to be an interrupt issue?? maybe someone with ck804 datasheets or board schematics able to help out here ?
The IT8712F code is incomplete, that might be part of the problem.
The patch also targets pc80/keyboard.c. I added an error message in case of a selftest failure.
Please submit an extra patch for that.
The superio ite it8712f implementation was modified too but as far as these changes did not really solve my interrupt issue for keyboard and mouse i would provide these changes in a separate patch if it is of any interest.
Yes, please send an extra patch.
Index: src/mainboard/asus/a8ne/Config.lb
--- src/mainboard/asus/a8ne/Config.lb (revision 0) +++ src/mainboard/asus/a8ne/Config.lb (revision 0)
Can we move this to src/mainboard/asus/a8n_e/? We should stay as close to the original vendor name as possible, i.e. A8N-E (not A8NE) as string in mainboard.c. For directory names or file names this means 'a8n_e'.
@@ -0,0 +1,360 @@ +## +## This file is part of the LinuxBIOS project. +## +## Copyright (C) 2007 AMD +## Written by Yinghai Lu yinghailu@amd.com for AMD. +## +## Copyright (C) 2007 University of Mannheim +## Written by Philipp Degler pdegler@rumms.uni-mannheim.de for Uni Ma.
Just curious -- are you sure the university owns the copyright? AFAIK this is not possible in Germany, you as the author always retain the copyright (but you can give away _usage_ rights).
Do you work at the university? Did you sign some contract which says something about copyright of code you write?
/* Initialize interrupt mapping */
//dword = 0x0000d218;
dword = 0x01200000; //a8ne
pci_write_config32(dev, 0x7c, dword);
//dword = 0x12008a00;
dword = 0x12008009; //a8ne
pci_write_config32(dev, 0x80, dword);
//dword = 0x0000007d;
dword = 0x0002010d; //a8ne
pci_write_config32(dev, 0x84, dword);
What are the commented values? Not for the A8N-E? Then we should probably drop them.
+static void memreset_setup(void) +{
- /*FIXME: nothing to do?? */
+}
+static void memreset(int controllers, const struct mem_controller *ctrl) +{
- /*FIXME: nothing to do?? */
+}
+static inline void activate_spd_rom(const struct mem_controller *ctrl) +{
- /*FIXME: nothing to do?? */
+}
I think we can drop these functions for now. If they're needed, we'll re-add them with some content... (does the code still build without them?)
- option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Normal"
[...]
Index: targets/asus/a8ne/VERSION
--- targets/asus/a8ne/VERSION (revision 0) +++ targets/asus/a8ne/VERSION (revision 0) @@ -0,0 +1 @@ +_a8ne
Is this really needed? Unless there's a good reason for an extra file, it would be better to put this string into Config.lb directly.
Otherwise your patch looks really great! With the above comments addressed I think we can commit this.
Uwe.
On Friday 18 May 2007 23:29:45 Uwe Hermann wrote:
Hi,
On Fri, May 18, 2007 at 04:39:38PM +0200, Philipp Degler wrote:
- RAM olny runs with small modification of amdk8/raminit.c !!!!!!!! => comment out debug for athlon 64 in line 1204
----------------------------------------- -#if 1 +#if 0 //By yhlu for debug Athlon64 939 can do dual channel, but it ..... if (unbuffered && is_opteron(ctrl)) { die("Unbuffered Dimms not supported on Opteron");
Hm, why is that? Would this change break other targets?
To be honest I don't know. Maybe yinghai can comment on this.
- ps2 keyboard and mouse are not working yet (use usb counterparts
instead) => seems to be an interrupt issue?? maybe someone with ck804 datasheets or board schematics able to help out here ?
The IT8712F code is incomplete, that might be part of the problem.
The patch also targets pc80/keyboard.c. I added an error message in case of a selftest failure.
Please submit an extra patch for that.
The superio ite it8712f implementation was modified too but as far as these changes did not really solve my interrupt issue for keyboard and mouse i would provide these changes in a separate patch if it is of any interest.
Yes, please send an extra patch.
Index: src/mainboard/asus/a8ne/Config.lb
--- src/mainboard/asus/a8ne/Config.lb (revision 0) +++ src/mainboard/asus/a8ne/Config.lb (revision 0)
Can we move this to src/mainboard/asus/a8n_e/? We should stay as close to the original vendor name as possible, i.e. A8N-E (not A8NE) as string in mainboard.c. For directory names or file names this means 'a8n_e'.
i will rename the target, test it on hardware and generate three new patches.
@@ -0,0 +1,360 @@ +## +## This file is part of the LinuxBIOS project. +## +## Copyright (C) 2007 AMD +## Written by Yinghai Lu yinghailu@amd.com for AMD. +## +## Copyright (C) 2007 University of Mannheim +## Written by Philipp Degler pdegler@rumms.uni-mannheim.de for Uni Ma.
Just curious -- are you sure the university owns the copyright? AFAIK this is not possible in Germany, you as the author always retain the copyright (but you can give away _usage_ rights).
hm, didn't know that.
Do you work at the university? Did you sign some contract which says something about copyright of code you write?
I'am a student of the university of mannheim. I was able to use their hardware for the port as far as I don't own an ASUS A8N-E myself, not yet :).
/* Initialize interrupt mapping */
//dword = 0x0000d218;
dword = 0x01200000; //a8ne
pci_write_config32(dev, 0x7c, dword);
//dword = 0x12008a00;
dword = 0x12008009; //a8ne
pci_write_config32(dev, 0x80, dword);
//dword = 0x0000007d;
dword = 0x0002010d; //a8ne
pci_write_config32(dev, 0x84, dword);
What are the commented values? Not for the A8N-E? Then we should probably drop them.
yes they are a remainder of s2891 :). i will drop them.
+static void memreset_setup(void) +{
- /*FIXME: nothing to do?? */
+}
+static void memreset(int controllers, const struct mem_controller *ctrl) +{
- /*FIXME: nothing to do?? */
+}
+static inline void activate_spd_rom(const struct mem_controller *ctrl) +{
- /*FIXME: nothing to do?? */
+}
I think we can drop these functions for now. If they're needed, we'll re-add them with some content... (does the code still build without them?)
no, code did not build without them.
- option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Normal"
[...]
Index: targets/asus/a8ne/VERSION
--- targets/asus/a8ne/VERSION (revision 0) +++ targets/asus/a8ne/VERSION (revision 0) @@ -0,0 +1 @@ +_a8ne
Is this really needed? Unless there's a good reason for an extra file, it would be better to put this string into Config.lb directly.
i will check / test it - shouldn't be a big issue to drop it.
Otherwise your patch looks really great! With the above comments addressed I think we can commit this.
that would be great :)
phil
Hello,
Thanks for the good work. I was tinkering around with my A8N-SLI-board a couple weeks ago but have not had time since.
Philipp Degler wrote:
On Friday 18 May 2007 23:29:45 Uwe Hermann wrote:
Hi,
On Fri, May 18, 2007 at 04:39:38PM +0200, Philipp Degler wrote:
- RAM olny runs with small modification of amdk8/raminit.c !!!!!!!! => comment out debug for athlon 64 in line 1204
----------------------------------------- -#if 1 +#if 0 //By yhlu for debug Athlon64 939 can do dual channel, but it ..... if (unbuffered && is_opteron(ctrl)) { die("Unbuffered Dimms not supported on Opteron");
Hm, why is that? Would this change break other targets?
To be honest I don't know. Maybe yinghai can comment on this.
Yinghai gave a short explanation in this posting [1] to the list. It seems that support for Rev. E Processors is not implemented (yet) and it gets wrongfully identified as an Opteron. Hence one needs to deactivate that check.
Cheers, Adrian
[1] - http://www.linuxbios.org/pipermail/linuxbios/2007-April/019583.html
On 5/19/07, Philipp Degler pdegler@rumms.uni-mannheim.de wrote:
On Friday 18 May 2007 23:29:45 Uwe Hermann wrote:
Hi,
On Fri, May 18, 2007 at 04:39:38PM +0200, Philipp Degler wrote:
- RAM olny runs with small modification of amdk8/raminit.c !!!!!!!! => comment out debug for athlon 64 in line 1204
----------------------------------------- -#if 1 +#if 0 //By yhlu for debug Athlon64 939 can do dual channel, but it ..... if (unbuffered && is_opteron(ctrl)) { die("Unbuffered Dimms not supported on Opteron"); ------------------------------------------------------------------------
Hm, why is that? Would this change break other targets?
To be honest I don't know. Maybe yinghai can comment on this.
- ps2 keyboard and mouse are not working yet (use usb counterparts
instead) => seems to be an interrupt issue?? maybe someone with ck804 datasheets or board schematics able to help out here ?
The IT8712F code is incomplete, that might be part of the problem.
The patch also targets pc80/keyboard.c. I added an error message in case of a selftest failure.
Please submit an extra patch for that.
The superio ite it8712f implementation was modified too but as far as these changes did not really solve my interrupt issue for keyboard and mouse i would provide these changes in a separate patch if it is of any interest.
Yes, please send an extra patch.
Index: src/mainboard/asus/a8ne/Config.lb
--- src/mainboard/asus/a8ne/Config.lb (revision 0) +++ src/mainboard/asus/a8ne/Config.lb (revision 0)
Can we move this to src/mainboard/asus/a8n_e/? We should stay as close to the original vendor name as possible, i.e. A8N-E (not A8NE) as string in mainboard.c. For directory names or file names this means 'a8n_e'.
i will rename the target, test it on hardware and generate three new patches.
@@ -0,0 +1,360 @@ +## +## This file is part of the LinuxBIOS project. +## +## Copyright (C) 2007 AMD +## Written by Yinghai Lu yinghailu@amd.com for AMD. +## +## Copyright (C) 2007 University of Mannheim +## Written by Philipp Degler pdegler@rumms.uni-mannheim.de for Uni Ma.
Just curious -- are you sure the university owns the copyright? AFAIK this is not possible in Germany, you as the author always retain the copyright (but you can give away _usage_ rights).
hm, didn't know that.
Do you work at the university? Did you sign some contract which says something about copyright of code you write?
I'am a student of the university of mannheim. I was able to use their hardware for the port as far as I don't own an ASUS A8N-E myself, not yet :).
/* Initialize interrupt mapping */
//dword = 0x0000d218;
dword = 0x01200000; //a8ne
pci_write_config32(dev, 0x7c, dword);
//dword = 0x12008a00;
dword = 0x12008009; //a8ne
pci_write_config32(dev, 0x80, dword);
//dword = 0x0000007d;
dword = 0x0002010d; //a8ne
pci_write_config32(dev, 0x84, dword);
What are the commented values? Not for the A8N-E? Then we should probably drop them.
yes they are a remainder of s2891 :). i will drop them.
No, you can not. try to see what happen.
YH
On Sat, May 19, 2007 at 09:55:03AM -0700, yhlu wrote:
/* Initialize interrupt mapping */
//dword = 0x0000d218;
dword = 0x01200000; //a8ne
pci_write_config32(dev, 0x7c, dword);
//dword = 0x12008a00;
dword = 0x12008009; //a8ne
pci_write_config32(dev, 0x80, dword);
//dword = 0x0000007d;
dword = 0x0002010d; //a8ne
pci_write_config32(dev, 0x84, dword);
What are the commented values? Not for the A8N-E? Then we should probably drop them.
yes they are a remainder of s2891 :). i will drop them.
No, you can not. try to see what happen.
Ah, I meant the comments only:
//dword = 0x0000d218;
//dword = 0x12008a00;
//dword = 0x0000007d;
The other code must remain, of course.
Uwe.
On Saturday 19 May 2007 19:17:18 Uwe Hermann wrote:
On Sat, May 19, 2007 at 09:55:03AM -0700, yhlu wrote:
/* Initialize interrupt mapping */
//dword = 0x0000d218;
dword = 0x01200000; //a8ne
pci_write_config32(dev, 0x7c, dword);
//dword = 0x12008a00;
dword = 0x12008009; //a8ne
pci_write_config32(dev, 0x80, dword);
//dword = 0x0000007d;
dword = 0x0002010d; //a8ne
pci_write_config32(dev, 0x84, dword);
What are the commented values? Not for the A8N-E? Then we should probably drop them.
yes they are a remainder of s2891 :). i will drop them.
No, you can not. try to see what happen.
Ah, I meant the comments only:
//dword = 0x0000d218;
//dword = 0x12008a00;
//dword = 0x0000007d;
The other code must remain, of course.
modified code as proposed by uwe, see patch
changes were tested on hardware and with abuild. (see attached lspci for further info of the hardware that was used for the tests)
Did send other 2 patches separately as proposed.
Signed-off-by: Philipp Degler pdegler@rumms.uni-mannheim.de
--- phil
On Sat, May 19, 2007 at 05:55:29PM +0200, Philipp Degler wrote:
Just curious -- are you sure the university owns the copyright? AFAIK this is not possible in Germany, you as the author always retain the copyright (but you can give away _usage_ rights).
hm, didn't know that.
Do you work at the university? Did you sign some contract which says something about copyright of code you write?
I'am a student of the university of mannheim. I was able to use their hardware for the port as far as I don't own an ASUS A8N-E myself, not yet :).
Yeah, in that case I'm quite sure that you are the copyright owner. You wrote the code, after all.
Uwe.
On 19.05.2007 19:33, Uwe Hermann wrote:
On Sat, May 19, 2007 at 05:55:29PM +0200, Philipp Degler wrote:
Just curious -- are you sure the university owns the copyright? AFAIK this is not possible in Germany, you as the author always retain the copyright (but you can give away _usage_ rights).
hm, didn't know that.
Do you work at the university? Did you sign some contract which says something about copyright of code you write?
I'am a student of the university of mannheim. I was able to use their hardware for the port as far as I don't own an ASUS A8N-E myself, not yet :).
So you didn't sign any contract?
Regards, Carl-Daniel
* Uwe Hermann uwe@hermann-uwe.de [070518 23:29]:
+## +## This file is part of the LinuxBIOS project. +## +## Copyright (C) 2007 AMD +## Written by Yinghai Lu yinghailu@amd.com for AMD. +## +## Copyright (C) 2007 University of Mannheim +## Written by Philipp Degler pdegler@rumms.uni-mannheim.de for Uni Ma.
Just curious -- are you sure the university owns the copyright? AFAIK this is not possible in Germany, you as the author always retain the copyright (but you can give away _usage_ rights).
You can not give it away. And if you are doing the work in contract you dont even own it to begin with, so there is nothing to give away. German law.. you think it is on your side and then...
Do you work at the university? Did you sign some contract which says something about copyright of code you write?
When you are hired, the copyright is automatically with the employee, unless your contract explicitly states otherwise.
If you are a contractor (selfemployed), there is a different handling depending on whether you have a contract of service or a contract of work and labor (Werkvertrag vs Dienstvertrag)
Unless Philipp has no other obligation to Uni Mannheim than being a student there, then, indeed he owns the copyright and not the university. In all other cases the above (C) is most likely correct.
But this is the wrong forum for discussion on german law. In case of questions I suggest we get legal advice off-list
Stefan