2012/10/2 Stefan Kristiansson <[email protected]>: > This way users can override them in their applications > if desired. > > * libgloss/ChangeLog.or1k > > 2012-10-02 Stefan Kristiansson <[email protected]> > > * or1k/ml501.S: make board globals weak > * or1k/or1ksim-uart.S: ditto > * or1k/or1ksim.S: ditto > * or1k/ordb1a3pe1500.S: ditto > * or1k/ordb2a.S: ditto > * or1k/orpsocrefdesign.S: ditto > --- > libgloss/ChangeLog.or1k | 9 +++++++++ > libgloss/or1k/ml501.S | 14 +++++++------- > libgloss/or1k/or1ksim-uart.S | 14 +++++++------- > libgloss/or1k/or1ksim.S | 14 +++++++------- > libgloss/or1k/ordb1a3pe1500.S | 14 +++++++------- > libgloss/or1k/ordb2a.S | 14 +++++++------- > libgloss/or1k/orpsocrefdesign.S | 14 +++++++------- > 7 files changed, 51 insertions(+), 42 deletions(-) > > diff --git a/libgloss/ChangeLog.or1k b/libgloss/ChangeLog.or1k > index 83137c2..b8d07d4 100644 > --- a/libgloss/ChangeLog.or1k > +++ b/libgloss/ChangeLog.or1k > @@ -1,3 +1,12 @@ > +2012-10-02 Stefan Kristiansson <[email protected]> > + > + * or1k/ml501.S: make board globals weak > + * or1k/or1ksim-uart.S: ditto > + * or1k/or1ksim.S: ditto > + * or1k/ordb1a3pe1500.S: ditto > + * or1k/ordb2a.S: ditto > + * or1k/orpsocrefdesign.S: ditto > + > 2012-06-22 Peter Gavin <[email protected]> > > make each board use its own exit routine > diff --git a/libgloss/or1k/ml501.S b/libgloss/or1k/ml501.S > index 24b1fbe..edce0bc 100644 > --- a/libgloss/or1k/ml501.S > +++ b/libgloss/or1k/ml501.S > @@ -4,9 +4,9 @@ > * Define symbols to be used during startup - file is linked at compile time > * > */ > -.global _board_mem_base > -.global _board_mem_size > -.global _board_clk_freq > +.weak _board_mem_base > +.weak _board_mem_size > +.weak _board_clk_freq > > _board_mem_base: .long 0x0 > _board_mem_size: .long 0x800000 > @@ -14,14 +14,14 @@ _board_mem_size: .long 0x800000 > _board_clk_freq: .long 66666666 > > /* Peripheral information - Set base to 0 if not present*/ > -.global _board_uart_base > -.global _board_uart_baud > -.global _board_uart_IRQ > +.weak _board_uart_base > +.weak _board_uart_baud > +.weak _board_uart_IRQ > > _board_uart_base: .long 0x90000000 > _board_uart_baud: .long 115200 > _board_uart_IRQ: .long 2 > > -.global _board_exit > +.weak _board_exit > _board_exit: > OR1K_DELAYED_NOP(l.j _board_exit) > diff --git a/libgloss/or1k/or1ksim-uart.S b/libgloss/or1k/or1ksim-uart.S > index 9f4ae22..ecbf0f8 100644 > --- a/libgloss/or1k/or1ksim-uart.S > +++ b/libgloss/or1k/or1ksim-uart.S > @@ -6,9 +6,9 @@ > * > */ > > -.global _board_mem_base > -.global _board_mem_size > -.global _board_clk_freq > +.weak _board_mem_base > +.weak _board_mem_size > +.weak _board_clk_freq > > > _board_mem_base: .long 0x0 > @@ -17,15 +17,15 @@ _board_clk_freq: .long 100000000 > > > /* Peripheral information - Set base to 0 if not present*/ > -.global _board_uart_base > -.global _board_uart_baud > -.global _board_uart_IRQ > +.weak _board_uart_base > +.weak _board_uart_baud > +.weak _board_uart_IRQ > > _board_uart_base: .long 0x90000000 > _board_uart_baud: .long 115200 > _board_uart_IRQ: .long 13 > > -.global _board_exit > +.weak _board_exit > _board_exit: > l.nop NOP_EXIT_SILENT > OR1K_DELAYED_NOP(l.j _board_exit) > diff --git a/libgloss/or1k/or1ksim.S b/libgloss/or1k/or1ksim.S > index 9c96d10..2c8e804 100644 > --- a/libgloss/or1k/or1ksim.S > +++ b/libgloss/or1k/or1ksim.S > @@ -5,9 +5,9 @@ > * Define symbols to be used during startup - file is linked at compile time > * > */ > -.global _board_mem_base > -.global _board_mem_size > -.global _board_clk_freq > +.weak _board_mem_base > +.weak _board_mem_size > +.weak _board_clk_freq > > _board_mem_base: .long 0x0 > _board_mem_size: .long 0x800000 > @@ -15,15 +15,15 @@ _board_mem_size: .long 0x800000 > _board_clk_freq: .long 100000000 > > /* Peripheral information - Set base to 0 if not present*/ > -.global _board_uart_base > -.global _board_uart_baud > -.global _board_uart_IRQ > +.weak _board_uart_base > +.weak _board_uart_baud > +.weak _board_uart_IRQ > > _board_uart_base: .long 0x0 > _board_uart_baud: .long 115200 > _board_uart_IRQ: .long 13 > > -.global _board_exit > +.weak _board_exit > _board_exit: > l.nop NOP_EXIT_SILENT > OR1K_DELAYED_NOP(l.j _board_exit) > diff --git a/libgloss/or1k/ordb1a3pe1500.S b/libgloss/or1k/ordb1a3pe1500.S > index 8f01c83..f15c632 100644 > --- a/libgloss/or1k/ordb1a3pe1500.S > +++ b/libgloss/or1k/ordb1a3pe1500.S > @@ -4,9 +4,9 @@ > * Define symbols to be used during startup - file is linked at compile time > * > */ > -.global _board_mem_base > -.global _board_mem_size > -.global _board_clk_freq > +.weak _board_mem_base > +.weak _board_mem_size > +.weak _board_clk_freq > > _board_mem_base: .long 0x0 > _board_mem_size: .long 0x02000000 > @@ -14,14 +14,14 @@ _board_mem_size: .long 0x02000000 > _board_clk_freq: .long 20000000 > > /* Peripheral information - Set base to 0 if not present*/ > -.global _board_uart_base > -.global _board_uart_baud > -.global _board_uart_IRQ > +.weak _board_uart_base > +.weak _board_uart_baud > +.weak _board_uart_IRQ > > _board_uart_base: .long 0x90000000 > _board_uart_baud: .long 115200 > _board_uart_IRQ: .long 2 > > -.global _board_exit > +.weak _board_exit > _board_exit: > OR1K_DELAYED_NOP(l.j _board_exit) > diff --git a/libgloss/or1k/ordb2a.S b/libgloss/or1k/ordb2a.S > index 38d993f..454e5b4 100644 > --- a/libgloss/or1k/ordb2a.S > +++ b/libgloss/or1k/ordb2a.S > @@ -4,9 +4,9 @@ > * Define symbols to be used during startup - file is linked at compile time > * Olof Kindgren olof at opencores.org > */ > -.global _board_mem_base > -.global _board_mem_size > -.global _board_clk_freq > +.weak _board_mem_base > +.weak _board_mem_size > +.weak _board_clk_freq > > _board_mem_base: .long 0x0 > _board_mem_size: .long 0x02000000 > @@ -14,14 +14,14 @@ _board_mem_size: .long 0x02000000 > _board_clk_freq: .long 50000000 > > /* Peripheral information - Set base to 0 if not present*/ > -.global _board_uart_base > -.global _board_uart_baud > -.global _board_uart_IRQ > +.weak _board_uart_base > +.weak _board_uart_baud > +.weak _board_uart_IRQ > > _board_uart_base: .long 0x90000000 > _board_uart_baud: .long 115200 > _board_uart_IRQ: .long 2 > > -.global _board_exit > +.weak _board_exit > _board_exit: > OR1K_DELAYED_NOP(l.j _board_exit) > diff --git a/libgloss/or1k/orpsocrefdesign.S b/libgloss/or1k/orpsocrefdesign.S > index 2491857..c102d02 100644 > --- a/libgloss/or1k/orpsocrefdesign.S > +++ b/libgloss/or1k/orpsocrefdesign.S > @@ -4,9 +4,9 @@ > * Define symbols to be used during startup - file is linked at compile time > * > */ > -.global _board_mem_base > -.global _board_mem_size > -.global _board_clk_freq > +.weak _board_mem_base > +.weak _board_mem_size > +.weak _board_clk_freq > > _board_mem_base: .long 0x0 > _board_mem_size: .long 0x800000 > @@ -14,14 +14,14 @@ _board_mem_size: .long 0x800000 > _board_clk_freq: .long 50000000 > > /* Peripheral information - Set base to 0 if not present*/ > -.global _board_uart_base > -.global _board_uart_baud > -.global _board_uart_IRQ > +.weak _board_uart_base > +.weak _board_uart_baud > +.weak _board_uart_IRQ > > _board_uart_base: .long 0 > _board_uart_baud: .long 115200 > _board_uart_IRQ: .long 2 > > -.global _board_exit > +.weak _board_exit > _board_exit: > OR1K_DELAYED_NOP(l.j _board_exit) > -- > 1.7.9.5 > > _______________________________________________ > Openrisc mailing list > [email protected] > http://lists.opencores.org/listinfo/openrisc
This looks good to me. I've been thinking about the same thing. In the long run though, I would like to see a small API around the UART stuff, so that we can override the send and receive functions directly instead of overriding the base address and IRQ. This would make it easier to support new I/O devices. Today we only have uart16550 and or1ksim's nop functions, but it would be nice to make it easier to support other ways of communication. -- Olof Kindgren ______________________________________________ ORSoC Website: www.orsoc.se Email: [email protected] ______________________________________________ FPGA, ASIC, DSP - embedded SoC design _______________________________________________ OpenRISC mailing list [email protected] http://lists.openrisc.net/listinfo/openrisc
