[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Microblaze slices and BRAMs optimizationwith uclinux
Hi Claudio,
Claudio Lanconelli wrote:
> John Williams wrote:
>
>> Also, it should be pretty simple to tweak the kernel to use the FIT
>> (fixed interval timer) rather than the programmable timer. The FIT is
>> likely to be a lot smaller than the opb_timer
>>
> Yes, it should be really smaller than opb_timer, however it probably
> needs some interrupt glue logic (not sure). Furthermore I Looked at the
> sources and I find mach_gettimeoffset() in machine.c. How can I
> implement this with only the fit_timer?
This code is used to get microsecond precision in gettimeofday() by
counting cycles in between timer tricks. You could just strip it out,
which would reduce the gettimeofday() resolution back to the tick
interval (100HZ, 10 ms).
>>> uclinux-auto depends on the lmb_bram_controller in any ways?
>>
>> Currently rhe kernel makes no use of the LMB memory. The LMB_MEMORY
>> parameter in the MSS file is just for completeness. You should
>> actually be able to set that to "none" without difficulty.
>>
> If I set the LMB_MEMORY to "none" in mss file the generated
> auto-config.in lacks the lines
>
> define_hex CONFIG_XILINX_LMB_START 0x00000000
> define_hex CONFIG_XILINX_LMB_SIZE 0x00002000
> these defines are used by the ram.ld.in
ah, ok.
> So the linker complain about CONFIG_XILINX_LMB_START is not a constant.
The link script ram.ld.in is actually parsed by the C preprocessor, so
you could maybe put the LMB-dependent stuff inside #ifdef pairs
#ifdef CONFIG_XILINX_LMB_START
.. link script bits here
#endif
> If I set the LMB_MEMORY to "opb_bram_cntrl" in mss file the script stops
> with errors.
A simple fix might be to add the opb_bram_cntlr to the uClinux MLD file
(edk_user_repository/uClinux/bsp/uclinux_v1_00_c/data/uclinux_v2_1_0.mld)
around line 25:
PARAMETER name = lmb_memory, desc = "Name of LMB Memory used with
uClinux", type = peripheral_instance, range=(lmb_bram_if_cntlr,none),
default = none;
add opb_bram_cntrl into the "range" list:
PARAMETER name = lmb_memory, desc = "Name of LMB Memory used with
uClinux", type = peripheral_instance, range=(lmb_bram_if_cntlr,
opb_bram_cntrl, none), default = none;
> What is PERIPH_TYPE_OVERRIDES? May be useful for this purpose?
PERIPH_TYPE_OVERRIDES is a secret undocumented feature of the uClinux
BSP :) Basically it allows you to tell the BSP generator that you want
to override the peripheral type associated with particular cores. The
most obvious use is for the opb_emc which can be used to interface with
external devices like MAC/PHY chips.
Regards,
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/