Hi Maurice,

On 23 January 2015 at 18:42, Ma, Maurice <[email protected]> wrote:
> Hi, Simon,
>
> Glad to know you have it working now.
>
> Regarding to the FSP execution environment, it has a document called FSP EAS. 
>  Did you get a chance to look into it?  It talks about the API calling 
> assumptions.
> http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/fsp-architecture-spec.html
>

Yes I saw that, but it doesn't talk about anything beyond the API.

> Putting GDT in the temporary memory could be the problem.  FspInit will 
> initialize the memory, migrate your temporary memory into system memory and 
> then tear down the temporary memory.  At the end  the  FspInit will call back 
> into the ContinuationFunc using your old bootloader GDT, which is not valid 
> any more since temporary memory is gone.
>

For example, that :-)

> For the limitations that FSP placed on the bootloader,  can you give more 
> details ?    What are those limitations?    We definitely want to hear those 
> feedbacks and if possible, make some improvements in the new release.

Sure, I'll start a new thread.

- Simon

>
> Regards,
> Maurice
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Simon Glass
> Sent: Friday, January 23, 2015 5:02 PM
> To: Ma, Maurice
> Cc: MinnowBoard Development and Community Discussion; Hawley, John
> Subject: Re: [MinnowBoard] Early serial output
>
> Hi Maurice,
>
> On 23 January 2015 at 16:05, Ma, Maurice <[email protected]> wrote:
>>
>> Hi, Simon,
>>
>> For the Baytrail built-in serial port initialization, it should not be very 
>> difficult.  Everything is in the coreboot 
>> src/soc/intel/fsp_baytrail/romstage/uart.c file.  Once it is done, you just 
>> need to call the "console_init()" function in coreboot.
>>
>
> Yes, I wonder if I just needed to run 'make clean'. It started working and I 
> didn't change anything.
>
>> "SerialDebugPortAddress" is a feature we provided in FSP to display some 
>> debug information.  It is available in some of the FSP implementations, such 
>> as SharkBay FSP.  However, for Baytrail, due to the IBB 127K size 
>> restriction, we do not have enough space to put debug information inside the 
>> FSP binary.  So this feature is not available in BayTrail FSP.
>
> OK thanks for explaining it. It would be good if it could return with an 
> error instead of locking up.
>
>>
>> If you encounter a FspInit() hang, in most of the cases it is related to 
>> your memory down configuration parameters.  Did it occur on MinnowBoardMax 
>> or on a different board?   Can you verify the parameters are correct?
>
> The problem may be that I had the GDT in temporary RAM, or perhaps that I had 
> a non-standard GDT (U-Boot sets fs: to point to a special place). It would 
> help to have more details about the execution environment that the FSP needs. 
> The documentation doesn't really talk about these sorts of things. For now I 
> am doing the FSP init much earlier than I would like.
>
>>
>> To enable U-Boot is should be very straight forward.  You need to configure 
>> the file under u-boot properly ( include\configs\coreboot.h).   And then you 
>> can do a  "make coreboot-x86_config"  and "make".  The generated u-boot ELF 
>> file can be used as the coreboot payload directly.
>
> Actually I was referring to getting U-Boot running 'bare' on the board. That 
> seems to work now, so I'll see if the Coreboot->U-Boot side works too.
>
> Separately, I'm not happy with the limitations the FSP places on the boot 
> loader. My implementation is quite poor. Should I send such feedback to the 
> list, or is no one interested?
>
> Anyway, I'm happy to have it running.
>
> Regards,
> Simon
>
>>
>>
>>
>> Thanks
>> Maurice
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On Behalf Of Simon Glass
>> Sent: Wednesday, January 21, 2015 9:13 PM
>> To: MinnowBoard Development and Community Discussion
>> Cc: Hawley, John; Ma, Maurice
>> Subject: Re: [MinnowBoard] Early serial output
>>
>> Hi,
>>
>> On 21 January 2015 at 21:52, Simon Glass <[email protected]> wrote:
>> > Hi Maurice,
>> >
>> > On 21 January 2015 at 13:18, Simon Glass <[email protected]> wrote:
>> >> Hi Maurine,
>> >>
>> >> On 20 January 2015 at 18:02, Ma, Maurice <[email protected]> wrote:
>> >>> Hi, Simon,
>> >>>
>> >>> Just want to make sure that you are talking about the MinnowBoard 
>> >>> (TunnelCreek + TopCliff), not MinnowBoard Max (Baytrail), right?
>> >>>
>> >>> For MinnowBoard Max,  I have tested and the early serial port does work 
>> >>> before the FSP API call.
>> >>>
>> >>> For MinnowBoard, the serial port is from UART0 on TopCliff(EG20T).   In 
>> >>> order to enable early console in coreboot,
>> >>> you need to initialize the TopCliff UART 0 and then call console_init() 
>> >>> in romstage  after FSP TempRamInit() and before FspInit().
>> >>>
>> >>> The standard linux UART driver for EG20T is open,   you can refer to :
>> >>> http://lxr.free-electrons.com/source/drivers/tty/serial/pch_uart.c
>> >>>
>> >>> You just need to implement the standard RX and TX function for Coreboot. 
>> >>>   It should be straight forward.
>> >>> Please note, since the EG20T UART is on PCI bus and the PCI bus is not 
>> >>> enumerated yet at early boot stage.   So you need to assign temporary 
>> >>> bus and PCI MMIO resource to the bridges and the UART controller before 
>> >>> accessing the UART registers.
>> >>
>> >> Yes i it Minnowboard Max. It sounds like you are saying I should
>> >> get serial output early in romstage, but I don't. Do I need to
>> >> enable something?
>> >
>> > Just to follow up, I got this working. It seems there is quite a
>> > long list of init to be done to get the serial working. But I have
>> > early output running now. Thanks for your help.
>>
>> OK, one more follow-up. I'd like to get U-Boot running now if I can.
>>
>> The FSP is hanging in FspInitEntry. Is there a way to turn on serial debug 
>> to see what is going on? Is there any other debug method available? I can't 
>> see post codes on this board and it doesn't seem to return an error code.
>>
>> I see some fields called 'SerialDebugPortAddress' in some FSPs, but not in 
>> the header files for gold v3.
>>
>> Regards,
>> Simon
_______________________________________________
elinux-MinnowBoard mailing list
[email protected]
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard

Reply via email to