From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jian Luo Date: Wed, 20 Jul 2016 11:12:55 +0200 Subject: [U-Boot] u-boot: x86: interrupt mapping In-Reply-To: References: <578DDEE9.3060803@boschrexroth.de> <578E58FC.9040409@boschrexroth.de> Message-ID: <578F4097.1000604@boschrexroth.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Christian, On 20.07.2016 10:22, Christian Gmeiner wrote: > Hi Jian, > >> I took some time to recall what I did by patching FSP: >> >> - search in every PE32 and TE image section for binary sequence >> 81c9000100008908c6460e01 >> and change to >> 81c9000102008908c6460e00 >> > In the meantime I started by patching out every access to the uart bar, with > the same result as I get with your patching strategy. > >> - then replace them in-place >> > So here is the next interesting problem. During fsp_init it looks like > fsp copies itself > to ram (IP 0xFFFD1C6C vs 0x3F5F64E1) and here it does a busy loop :( I don't think it's a busy loop. This Bug?: https://patchwork.ozlabs.org/patch/446555/ > > At what place do you do the in-place patching? I hoped to do it at > init_board setup. I mean in UEFITool select the "PE32 image section", right click "Extract body", do binary patching using your favorite hex editor, right click "Replace body". >> The difference can be better understand if disassemblies are compared, eg: >> Disassembly of section .data: >> @@ -3367,9 +3367,9 @@ >> 25fc: 05 00 05 00 00 add $0x500,%eax >> 2601: 8b 08 mov (%eax),%ecx >> 2603: 81 e1 ff ff f8 ff and $0xfff8ffff,%ecx >> - 2609: 81 c9 00 01 00 00 or $0x100,%ecx >> + 2609: 81 c9 00 01 02 00 or $0x20100,%ecx >> What I did here is setting BAUDSEL to SYS_25MHz. >> >> 260f: 89 08 mov %ecx,(%eax) >> - 2611: c6 46 0e 01 movb $0x1,0xe(%esi) >> + 2611: c6 46 0e 00 movb $0x0,0xe(%esi) >> Can't recall why I did this, maybe bypassing PLL altogether? >> >> 2615: c6 46 0f 00 movb $0x0,0xf(%esi) >> 2619: c6 46 03 83 movb $0x83,0x3(%esi) >> 261d: c6 46 01 00 movb $0x0,0x1(%esi) >> >> Since I don't rely on Topcliff UART for output, the baud rate recalculation >> is all skipped. >> > The same here... I am using a pci fpga based uart. Maybe you can try the fsp.bin I sent, to see if it runs > Since it's a bit off-topic, should we exchange information w/o ccing the list? Best regards, *Jian Luo DC-IA/EAH2* Tel. +49(9352)18-4266 *Be**QIK *