Bug 795

Summary: No console output from ls2 builds
Product: Libre-SOC's first SoC Reporter: tpearson
Component: Source CodeAssignee: Luke Kenneth Casson Leighton <lkcl>
Status: RESOLVED FIXED    
Severity: major CC: libre-soc-bugs
Priority: ---    
Version: unspecified   
Hardware: Other   
OS: Linux   
See Also: https://bugs.libre-soc.org/show_bug.cgi?id=1086
NLnet milestone: NLNet.2019.10.043.Wishbone total budget (EUR) for completion of task and all subtasks: 2000
budget (EUR) for this task, excluding subtasks' budget: 2000 parent task for budget allocation: 249
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:
tpearson={amount=2000,submitted=2022-04-02,paid=2022-07-21}
Bug Depends on:    
Bug Blocks: 690    

Description tpearson 2022-03-30 19:02:15 BST
LS2 builds are failing to produce console output on real hardware.
Comment 1 tpearson 2022-03-30 19:03:15 BST
After a marathon debugging session, digging into potential differences between our ppc64le server and Luke's x86 box, we've narrowed down the most likely candidate to a problem in the external UART core.
Comment 2 tpearson 2022-03-30 21:44:22 BST
Confirming this issue is solved by uncommenting the "`define DATA_BUS_WIDTH_8" line in uart16550/rtl/verilog/uart_defines.v.

A full build on the ppc64le server followed by a test on the Raptor Versa 85 board resulted in coldboot starting up and printing correct data to UART as expected.
Comment 3 Luke Kenneth Casson Leighton 2022-03-30 23:28:33 BST
(In reply to tpearson from comment #2)
> Confirming this issue is solved by uncommenting the "`define
> DATA_BUS_WIDTH_8" line in uart16550/rtl/verilog/uart_defines.v.
> 
> A full build on the ppc64le server followed by a test on the Raptor Versa 85
> board resulted in coldboot starting up and printing correct data to UART as
> expected.

unnnbelievable. about frickin time that was found.
microwatt "solved" this by having a local copy of the
HDL.

basically we need automated setup. which was always the plan,
but time pressure is getting in the way.

do you happen to know how to set defines *without* altering
the source code? icarus verilog which is an emulator has "-D XXXX"
just like in c.

i don't know if that's possible with yosys or if it is possible
to create a define in another file that is picked up by all .v
files? (are defines global in other words)