Difference between revisions of "Board:jetway/nf81-t56n-lf"
Jump to navigation
Jump to search
Eocallaghan (talk | contribs) (get rid of lspci o/p, we should be done with that detail at this stage) |
Eocallaghan (talk | contribs) m (→Status) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
== Known Issues == | == Known Issues == | ||
* pcie 06.0 bridge sometimes hangs probing the nic behind it. Linux reports a borked IRQ addr. They are likely connected? (Fix ACPI). | * pcie 06.0 bridge sometimes hangs probing the nic behind it. Linux reports a borked IRQ addr. They are likely connected? (Fix ACPI?). | ||
* suspend/resume could do with some work to clean up nasty warnings.. (Fix ACPI). | * suspend/resume could do with some work to clean up nasty warnings.. (Fix ACPI). | ||
* some werid AGESA issue affects a number of boards | * some werid AGESA issue affects a number of boards | ||
== | == Overview == | ||
=== Hardware === | |||
* '''AMD Fusion G-series''' AMD Fusion G-T56N (1.65 GHz dual core) APU | |||
* '''AMD A55E''' part of the chipset, AMD A55E (Hudson-E1) southbridge | |||
* '''F71869AD''' Fintek F71869AD Super I/O | |||
* '''RTL8111E''' Twin Realtek RTL8111E network controllers | |||
* '''VT1705''' 6-Channel HD Audio (via VIA VT1705), AC97 AD/DA | |||
=== Details === | |||
The NF81-T56N-LF is a IPC form factor embedded board: | |||
* AMD Fusion G-T56N (1.65 GHz dual core) APU | |||
** 2x SO-DIMM sockets for DDR3 800-1066 SDRAM (Fixed at 1.5V) | |||
** VGA and LVDS (via Analogix ANX3110) | |||
* AMD A55E (Hudson-E1) southbridge | |||
** 6x USB 2.0/1.1 ports | |||
** 5x SATA3 6Gb/s, 1x mSATA socket | |||
** 6-Channel HD Audio (via VIA VT1705) | |||
** PCI and ISA (via ITE IT8888)?? | |||
** NEC uPD78F0532 microcontroller on I2C ("SEMA")?? | |||
* 2x RJ45 GbE (via Realtek RTL8111E x2) | |||
* Fintek F71869AD Super I/O | |||
** PS/2 KB/MS port | |||
** RS232 header (via Unisonic UTC 75232 RS232 driver/receiver) | |||
** GPIO header | |||
** CIR header | |||
* 1x MXIC MX25L1606E (SO8, soldered) 16 Mbit SPI flash (BIOS) | |||
Note: MX25L1606E is 16Mbit, 8bits in a byte, so 2MB. Jetway '''''lies''''' | |||
claiming the SPI flash is 16MB. They also use red pen over the chip | |||
so you wont see this deceit. | |||
=== Building a coreboot image === | |||
Make a fresh clone of Coreboot into a empty directory and run: | |||
make crossgcc-i386 | |||
Make a cup of tea.. Then run: | |||
make menuconfig | |||
and select Jetway/NF81-t56N-LF under "Mainboard -> Mainboard vendor/model" leaving | |||
everything else as defaults. Then finally do, | |||
make | |||
To flash the board with '''flashrom''' run: | |||
flashrom -p ft2232_spi:type=2232H,port=A -c "MX25L1605A/MX25L1606E" -w build/coreboot.rom | |||
the | ''assuming'' you have a SPI flasher setup. | ||
== Status == | == Status == | ||
Line 99: | Line 70: | ||
|CPU_multiple_status = N/A | |CPU_multiple_status = N/A | ||
|CPU_multicore_status = N/A | |CPU_multicore_status = N/A | ||
|CPU_virt_status = | |CPU_virt_status = OK | ||
|RAM_EDO_status = N/A | |RAM_EDO_status = N/A | ||
Line 160: | Line 131: | ||
|DiskOnChip_status = N/A | |DiskOnChip_status = N/A | ||
|Sensors_status = | |Sensors_status = OK | ||
|Sensors_comments = | |Sensors_comments = | ||
|Watchdog_status = Pending | |Watchdog_status = Pending | ||
|Watchdog_comments = | |Watchdog_comments = What needs to be done here?? | ||
|SMBus_status = OK | |SMBus_status = OK | ||
|CAN_bus_status = N/A | |CAN_bus_status = N/A | ||
Line 186: | Line 157: | ||
}} | }} | ||
== | == Issue Analysis == | ||
=== pcie 06.0 bridge hang issue === | |||
The pcie 06.0 bridge hang issue is the primary remaining issue. | |||
The Interrupt Mask Register (IMR) and Interrupt Service Register (ISR) are responsible for firing up different IRQs. The IMR bits line up with the ISR bits to work in sync. If an IMR bit is low, then the corresponding ISR bit with never fire an IRQ when the time comes for it to happen. The IMR is located at 0x3C and the ISR is located at 0x3E. | |||
== | Observe in the vendor bios pci configuration space dump attached below that, indx. 0x3C (IMR) = 0x0b and indx. 0x3E (ISR) = 0x10. | ||
IMR val. = 0000 1011 = INTB | |||
ISR val. = 0000 1010 | |||
==================== | |||
&= 0000 1010 | |||
==================== | |||
root@archiso ~ # hexdump -C /sys/bus/pci/devices/0000:00:06.0/config | |||
00000000 22 10 14 15 07 00 10 00 00 00 04 06 10 00 01 00 |"...............| | |||
00000010 00 00 00 00 00 00 00 00 00 02 02 00 e1 e1 00 00 |................| | |||
00000020 f0 ff 00 00 11 d0 11 d0 00 00 00 00 00 00 00 00 |................| | |||
00000030 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 10 00 |....P...........| | |||
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
00000050 01 58 03 c8 00 00 00 00 10 a0 42 01 20 80 00 00 |.X........B. ...| | |||
00000060 00 08 00 00 11 0c 30 03 40 00 11 70 80 25 34 00 |......0.@..p.%4.| | |||
00000070 00 00 48 01 00 00 01 00 00 00 00 00 1f 00 00 00 |..H.............| | |||
00000080 06 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 |........!.......| | |||
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
000000a0 05 b0 80 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
000000b0 0d b8 00 00 22 10 34 12 08 00 03 a8 00 00 00 00 |....".4.........| | |||
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
* | |||
000000e0 50 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 |P...............| | |||
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
00000100 0b 00 01 00 01 00 01 01 00 00 00 00 00 00 00 00 |................| | |||
00000110 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
00000120 01 00 00 00 ff 00 00 80 00 00 00 00 01 00 00 00 |................| | |||
00000130 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 |................| | |||
00000140 03 00 01 00 01 00 00 00 00 87 0c 00 00 00 00 00 |................| | |||
00000150 01 00 01 00 00 00 00 00 00 00 00 00 30 20 06 00 |............0 ..| | |||
00000160 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 |..... ..........| | |||
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
* | |||
00000190 0d 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | |||
* | |||
00001000 | |||
Investigate in board support: | |||
* acpi/routing.asl | |||
* mptable.c | |||
=== weird AGESA issue === | |||
The function call goes something like this; In | |||
mainboard/jetway/nf81-t56n-lf/agesawrapper.c | |||
the function | |||
UINT32 agesawrapper_amdinitpost(VOID) | |||
calls | |||
status = AmdInitPost ((AMD_POST_PARAMS *)AmdParamStruct.NewStructPtr); | |||
this returns a error code of | |||
AGESA_WARNING = 0x4 | |||
this triggers | |||
if(status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(); | |||
giving the resulting message: | |||
== | EventLog: EventClass = 2, EventInfo = 8040100. | ||
... | |||
grep'ing we have that: | |||
AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100ul | |||
However tracing the call back to where '''AGESA_WARNING''' is set goes back to: | |||
vendor/amd/agesa/f14/Proc/Mem/Main/mmflow.c | |||
line '''290''' here: | |||
Retval = NBPtr[Die].MCTPtr->ErrCode; | |||
with '''Die=0'''. | |||
=== Coreboot S3 resume | === Coreboot S3 suspend/resume === | ||
S3 Suspend/Resume works by running: | S3 Suspend/Resume works by running: |