Quantcast
Channel: Forum - Recent Threads
Viewing all 1156 articles
Browse latest View live

No Printf on Debug Console for RZ/A2M device

$
0
0

Hello,

I'm new to Renesas and e2studio using the RZ/A2M evaluation board with FreeRtos OS.

I can't find how to display the output of my printf function on the console.

I've seen several ways of achieving this like with other families like the RX family using the FIT configurator module 

or using semi-hosting for RZ/A1 but I couldn't find anything for RZ/A2M. Could somebody help me out?

Thank you.


RIIC driver: How to get it to do Restart (instead of Start/Stop/Start)?

$
0
0

I have working code for a RZ/A1H that uses the RIIC driver from RZ/A1 Framework V1.03 (AN3638) to talk to a EEPROM chip.

I'm trying to adapt that code to talk to a HDMI Receiver (ADV7611) on the same I2C bus.  However, the low-level operation seems to be doing the following:

Start / Chip Address / Sub-Address / Stop ... Start / Chip Address / Read Data / Stop

On the ADV7611, the Stop causes the operation to terminate - so the second write sequence results in a NAK.

What I need the driver to do is this:

Start / Chip Address / Sub-Address / (Re-)Start / Chip Address / Read Data / Stop

Can anyone help me with this?

Thanks.

RZ/A1 800x600 Video Settings

$
0
0

Hi,

Thank you for the previous help


With Linux 4.9, a tfp410 dvi output transmitter attached to the LCD_0 output of the RZ/A1, and a computer monitor attached over hdmi, I am trying to set the output resolution to 800x600 at 60 hz

When using settings in the device tree dts file from an RSK evaluation board for 800x480, the monitor says that the resolution is 640x480@53 hz.

Decreasing the resolution to 640x480, causes the attached monitor to show that the resolution is 640x480@63hz.

When trying to increase the resolution to 800x600, the monitor gives a signal out of range error.

 

" //this mode works but causes the monitor to show 63 hz

timing1: timing1{
                //640x480 @ 63 hz
                clock-frequency = <33325000>; /* P1 clk / 2 */
                hactive = <640>;
                vactive = <480>;
                hback-porch = <26>;        /* back porch = 'HS Blanking'(46) - hsync-len(20) */
                hfront-porch = <210>;        /* 'HS Front Porch (210)' */
                vback-porch = <13>;        /* back porch = 'VS Blanking'(23) - vsync-len(10) */
                vfront-porch = <22>;        /* 'VS Front Porch(22)' */
                hsync-len = <20>;        /* pulse width of HSYNC (min=1, max=40) */
                vsync-len = <10>;        /* pulse width of VSYNC (min=1, max=20) */
                hsync-active = <1>;         /* HSYNC pulse is: 0=Active LOW, 1=Active HIGH */
                vsync-active = <1>;         /* VSYNC pulse is: 0=Active LOW, 1=Active HIGH */
                de-active = <0>;         /* Data Enable signal is: 0=Active LOW , 1= Active HIGH */
                pixelclk-active = <0>;         /* Pixel Data clock polarity: 0=drive pixel data on falling edge and sample data on rising edge */
            };

"



"//this mode causes the monitor to show unsupported resolution

timing0: timing0 {              
                clock-frequency = <40000000>;

                hactive = <800>;
                hfront-porch = <40>;        /* 'HS Front Porch (210)' */
                hsync-len = <128>;        /* pulse width of HSYNC (min=1, max=40) */
                hback-porch = <88>;        /* back porch = 'HS Blanking'(46) - hsync-len(20) */
                hsync-active = <1>;         /* HSYNC pulse is: 0=Active LOW, 1=Active HIGH */

                vactive = <600>;
                vfront-porch = <1>;        /* 'VS Front Porch(22)' */
                vsync-len = <4>;        /* pulse width of VSYNC (min=1, max=20) */
                vback-porch = <23>;        /* back porch = 'VS Blanking'(23) - vsync-len(10) */
                vsync-active = <1>;         /* VSYNC pulse is: 0=Active LOW, 1=Active HIGH */

                de-active = <0>;         /* Data Enable signal is: 0=Active LOW , 1= Active HIGH */
                pixelclk-active = <0>;         /* Pixel Data clock polarity: 0=drive pixel data on falling edge and sample data on rising edge */
            };
"

I have tried different settings for clock-frequency but it seems that the pixel clock is staying the same because higher resolutions

cause the refresh rate to decrease.

 

Are there settings that have been tested for different output resolutions available?

Many Thanks

No longer able to build 4.9.x kernel: head.S:132: Error: width suffixes are invalid in ARM mode

$
0
0

4.9.123 built OK.

4.9.156 had this error

4.9.170 also has this error

What am I doing wrong?

I'm just building with default config in place - no local changes.

 

 

(rza_bsp)$ ./build.sh kernel uImage
============== Building kernel ==============
make LOADADDR=0x08008000 LOCALVERSION= -j8 uImage dtbs

CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK scripts/mod/devicetable-offsets.h
CHK include/generated/utsrelease.h
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
AS arch/arm/boot/compressed/hyp-stub.o
AS arch/arm/boot/compressed/lib1funcs.o
AS arch/arm/boot/compressed/ashldi3.o
SHIPPED arch/arm/boot/compressed/bswapsdi2.S
AS arch/arm/boot/compressed/bswapsdi2.o
arch/arm/boot/compressed/head.S: Assembler messages:
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
arch/arm/boot/compressed/head.S:132: Error: width suffixes are invalid in ARM mode -- `mov.w r0,r0'
scripts/Makefile.build:404: recipe for target 'arch/arm/boot/compressed/head.o' failed
make[2]: *** [arch/arm/boot/compressed/head.o] Error 1
make[2]: *** Waiting for unfinished jobs....
arch/arm/boot/Makefile:53: recipe for target 'arch/arm/boot/compressed/vmlinux' failed
make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2
arch/arm/Makefile:329: recipe for target 'zImage' failed
make: *** [zImage] Error 2

RZA1H QCA9377-3 UART BT integration quesiton

$
0
0

Hi,

I am working on QCA9377-3 UART BT integration on Renesas Starter Kit+ for RZ/A1H.

the BT is connected with USB to UART convert and USB host connector (CN9)

BSP information as below:

Linux-4.9 BSP: github.com/.../rza_linux-4.9_bsp
Linux-4.9 / u-boot-2017.05 / Buildroot-2017.02

Enable BT command

  1. hciattach /dev/ttyUSB0 qca 3000000 -t120 flow --> there is Bluetooth: hci0: Frame reassembly failed (-84) after this command.
  2. hciconfig hci0 up --> Bluetooth: hci0: Frame reassembly failed (-84) is keeping output after this command

Anyone can share any comment for this error message??

the same QCA9377-3 EVB works well on Ubutun 4.9 OS with Lenovo T420 laptop.

Austin

RZA1M using all SRAM

$
0
0

Hello,

For our product we are using the CEU in the RZA1M to capture images from a sensor. The CEU will be configured in 16 bit data synchronous fetch mode. Because the sensor is rather large, a large continuous chunk of RAM of around ~4.5MB is required. This is the subject of my question.

 

Our environment is based on the startup and CMSIS RTX files from the 'an-r01an3638ej0211-rza1-fwp.zip (RZ/A1 Framework V2.11)'. The included linker script divides the memory into 5, 1MB sections. The MMU is then configured to give each section the appropriate permissions.

This of course won't work because the buffer can't span across these sections. So I removed all these sections from the linker script. I also changed the MMU TTB to setup the whole 5MB as 'Sect_Normal'. My memory map in the linker script now looks like this (the S_ROM is not used yet):

MEMORY {
    S_ROM (rx)  : ORIGIN = 0x18080000, LENGTH = 128M- 512K  /* On-Board S-FLASH ROM                 */
    L_TTB (rw)  : ORIGIN = 0x20000000, LENGTH = 16K         /* Page 0 of On-Chip Data Retention RAM */
    SRAM  (rwx) : ORIGIN = 0x20020000, LENGTH = 5M - 128K   /* "Mass storage RAM" - Cached memory   */
}

This works fine, but it means I can not use the first 128KB of data retention RAM. Since space is getting tight, it would be nice if that could also be used.

I tried just removing the L_TTB entry, merging it into the SRAM and then ALIGN(0x400) the TTB. This however would sometimes produces unbootable images. I was unable to pinpoint when an image became unbootable (mainly due to time). But resizing the buffer or changing compiler optimizations settings sometimes made it work/not work. The debugger also became very slow and sometimes even crashed.

 

So my question is: what is the correct way to use the entire RAM?

 

Thanks in advance.

Regards,

Martijn 

Is DMA used in the Linux 4.9 BSP for USB and other I/O ?

$
0
0

When compared to other CPUs that we are familiar with, running also the 4.9 Linux kernel, we noticed that bulk I/O takes up a lot more CPU cycles on the RZ/A1 .  I.e. it seems to cost more CPU time to move X number of bytes over ethernet, USB or eMMC.

Are the CPU's DMA features fully leveraged by USB, ethernet and eMMC drivers in the 4.9 Linux kernel for RZ/A1 ?

I have found an older thread on this forum talking about DMA not yet used in the driver.  I think this may have applied to the 3.x kernel, but this got me thinking and hence my question.

 

Thanks.

USB , wireless stack performance enhancements and timeouts

$
0
0

Hi 

We are using RZ/A1 processor based custom target board . linux kernel version is 4.9.123 ( downloaded from renesas site).

user manual r01uh0403ej0200_rz_a1h pdf is referred .

We are facing Wi-Fi connection loss to access point ( USB Wi-Fi dongle is used , usb driver rt2800usb   ) during  a stress test on RZ/A1 renesas platform with following dmesg messages .

ieee80211 phy0: rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x1700 with error -110

 

1)

we are using threadirqs approach so that USB isrs consume less time in top level ISR and  rest of work can be done in irq threads.

In normal scenario when we were not using threadirqs approch  , it was observed during stress test that  USB interrupts keep on coming 

for around 20ms and did not allow other time critical interrupts to be serviced , which is a problem for our system .

so we used threadirqs approach and could see USB interrupts started consuming less CPU time thereby allowing other interrupts to be serviced .

we enabled threadirq approach by passing threadirqs parameter on command line .

# cat /proc/cmdline
threadirqs ignore_loglevel earlyprintk earlycon=scif,0xE8008800 rootfstype=ext4 ro rootwait root=/dev/mmcblk0p5 actual_slot=ROOTFS_A

 

2)

however we have run into wifi connection loss with dmesg indicating -110 (timeouts) with usb wifi dongle using usb driver rt2800usb .

 

3) we have certain questions :

a) what timeouts constraints  are present with the RZ low level usb stack  or possibly USB wireless stack ?

in what scenarios USB stack can enter timeout conditions ?

 

b) we are using linux kernel 4.9.123 . are there any recent patches related to low level USB stack in any latest RZ kernel 

which we can incorporate to resolve this issue ?

 

c) can RZ low level USB driver buffer management be tweaked via some patches which can help in resolution of this issue . 

 

kindly provide some insights so that we can resolve this problems . 

 

 

 


Your CloudLinux Installation has issues!

$
0
0

Hi Everyone,
I have recently started to receive the following emails never got these before until recently -

We have detected following issues with your system:
Check fs.enforce_symlinksifowner is correctly enabled in sysctl conf:
OK: fs.enforce_symlinksifowner = 1

Check UsePAM in /etc/ssh/sshd_config:
OK: Config is fine

Check fs.symlinkown_gid:
OK: Web-server user is protected by Symlink Owner Match Protection

Check existence of all user's packages:
OK: nonexistent user's packages aren't found

Check the validity of LVE limits on server:
OK: Valid LVE limits on server.

Checking RPM DB:
OK: OK

Check cagefs mount points exists:
FAILED: There are missing mount points: ['/usr/share/ilabs_antimalware']

Check cagefs users.enabled is directory:
OK: /etc/cagefs/users.enabled is fine

Check cagefs users.disabled is directory:
OK: /etc/cagefs/users.disabled is fine

Check cagefs disable.etcfs exists:
OK: /etc/cagefs/http://etc.safe/disable.etcfs exists

Check cagefs users can enter cagefs:
OK: Several tested users really can enter cagefs

Check cagefs proxy commands configs are parsable:
OK: Syntax looks fine. Files are parsable

Check cagefs virt.mp files syntax:
SKIPPED: No virt.mp files found

There are 1 errors found.

How do i resolve this please?

Regd. Jlink license

$
0
0

Folks,

Purchased a RZ/A1H development board. Received a segger j-link lite debugger along with. Tried flashing the QSPI flash in the development board. The flash was programmed successfully. When we tried another customized board having R7S721001 processor and external QSPI flash, the programming gets failed. Does the segger j-link have any license issue? Kindly clarify..

Thanks

VK

RZA1H RGA 2 layers initialization problem

$
0
0

Hi,

i'm start to using RGA library on FreeRTOS application on RZA1H chip. I use c++ compiler and a have the necessity to use 2 layer (background layer and app/obj layer).

When i initialize WindowSurface with 2 layers, there are no problems. Next, i get 2 workBuffer (1 buffer for layer) from WindowSurface and i want to use these for canvas2D objects. For the first function R_RGA_New_Canvas2D_ContextClass, there aren't problem; for the second, the function return an error code.

I attach my code below:

errnum_t e;
S_CPP_LayerTestWorkClass* work = &g_S_CPP_LayerTest;
Canvas2D_ContextClass canvas2d[LAYER_NUM];

/* Set "work->WindowSurfaces" with LAYER_NUM layers */
{
WindowSurfacesConfigClass configWs;

configWs.flags = F_WINDOW_SURFACES_LAYER_COUNT | F_WINDOW_SURFACES_PIXEL_FORMAT;
configWs.pixel_format = PIXEL_FORMAT_ARGB4444;
configWs.layer_count = 2UL;

e= work->WindowSurfaces.initialize( configWs );
IF(e)
{
goto fin;
}
}

/* Set "work->FrameBuffer" */
e= work->WindowSurfaces.get_layer_frame_buffer(LAYER_BG, &work->FrameBuffer[LAYER_BG]);
IF(e)
{
goto fin;
}

e= work->WindowSurfaces.get_layer_frame_buffer(LAYER_OBJ, &work->FrameBuffer[LAYER_OBJ]);
IF(e)
{
goto fin;
}

/* Set "work->Canvas2D" for BG */
Canvas2D_ContextConfigClass config;
config.frame_buffer = work->FrameBuffer[LAYER_BG];
work->Canvas2D[LAYER_BG] = R_RGA_New_Canvas2D_ContextClass( config );
e= R_OSPL_GetErrNum();
IF(e)
{
goto fin;
}

/* Set "work->Canvas2D" for OBJ */
config.frame_buffer = work->FrameBuffer[LAYER_OBJ];
work->Canvas2D[LAYER_OBJ] = R_RGA_New_Canvas2D_ContextClass( config );
e= R_OSPL_GetErrNum();
IF(e)
{
goto fin;
}

 

At this point of code, 'e' is major than 0, and application ended.

Is the procedure I described right? Or did I miss something else?

 

Thanks in advance.

 

Regards,

 

Mattia

f_read not working when using buffer in Cached_Hyper_RAM section

$
0
0

Hello everyone,

I am new to Renesas and I am using the RZA2M evaluation board. 

I succeed to read the contents of a file on an sdcard using the fatfs when the buffer I use is located in the my uncached bss section. 

I need to read a bigger file and there isn't enough memory available on the uncached bss section, so I'm trying to use the cached hyper ram section which has enough memory for the buffer to store the data.

But when I change the buffer section from  

char  buffer[BUFFER_SIZE] __attribute__  ((section ("UNCACHED_BSS"))); 

to 

char  buffer[BUFFER_SIZE] __attribute__  ((section ("CACHED_HYPER_RAM")));

my buffer is always empty with f_read. 

How do I resolve this please ?

USB-HHID keyboard/mouse bare metal sample code

$
0
0

I have done my Display application using e2studio with bare metal code. I want to add up USB keyboard and mouse in the application. Need support of bare metal code for the same. On Renesas site I can see only Linux based code for the same.

H.264 on RZ/A2M MPUs with DRP

$
0
0

Dear Renesas guys,

Could you please tell me, is it possible to implement H.264 code/encode with DRP?

It is a potential RZ user question.

Thank you!!!

Timur.

PWM without interrupt

$
0
0

Hi,

in my example i used RZA1H and i have a problem when i set the dutycycle at 100%.

I attached my code below :

void Bsp_Dspl_BacklightInitPwm(uint32_t freqHz)
{
uint8_t i;
for(i = 0; i < MAX_NUM_PRESCALER_PWM; ++i)
{
if(((BSP_PERIPHERAL0_CLK / prescaler[i].pscValue) / freqHz) < U16_MAX_VAL)
{
break;
}
}
bsp_pwm.prescaler = prescaler[i].pscSelect;
bsp_pwm.clock_edge = HalMTU_eRisingEdge;
bsp_pwm.counter_clear_source = HalMTU_eTCNT_HalMTU_tCCLR_CH1_2_TGRB_CMP_MATCH;
bsp_pwm.period = (BSP_PERIPHERAL0_CLK / prescaler[i].pscValue) / freqHz;
bsp_pwm.mode = HalMTU_ePWM_Mode1;

/* Stop */
rza_io_reg_write_8(&MTU2.TSTR, 0x00U, MTU2_TSTR_CST2_SHIFT, MTU2_TSTR_CST2);
/* Disable write-protected register */
rza_io_reg_write_8(&MTU2.TRWER, 0x01U, MTU2_TRWER_RWE_SHIFT, MTU2_TRWER_RWE);
/* Reset counter channel 2 */
MTU2.TCNT_2 = 0x0000U;

/* Set TCR register */
/* prescaler */
rza_io_reg_write_8(&MTU2.TCR_2, bsp_pwm.prescaler, MTU2_TCR_n_TPSC_SHIFT, MTU2_TCR_n_TPSC);
/* Clock edge */
rza_io_reg_write_8(&MTU2.TCR_2, bsp_pwm.clock_edge, MTU2_TCR_n_CKEG_SHIFT, MTU2_TCR_n_CKEG);
/* Counter clear source */
rza_io_reg_write_8(&MTU2.TCR_2, bsp_pwm.counter_clear_source, MTU2_TCR_n_CCLR_SHIFT, MTU2_TCR_n_CCLR);

/* Set TGR register */
//rza_io_reg_write_16(&MTU2.TGRA_2, 0x0000U, MTU2_TGRA_n_D_SHIFT, MTU2_TGRA_n_D);
rza_io_reg_write_16(&MTU2.TGRA_2, bsp_pwm.period, MTU2_TGRA_n_D_SHIFT, MTU2_TGRA_n_D);
rza_io_reg_write_16(&MTU2.TGRB_2, bsp_pwm.period, MTU2_TGRB_n_D_SHIFT, MTU2_TGRB_n_D);

/* Set TMDR register */
/* Set mode operation timer */
rza_io_reg_write_8(&MTU2.TMDR_2, bsp_pwm.mode, MTU2_TMDR_n_MD_SHIFT, MTU2_TMDR_n_MD);

/* Set TIOR register */
rza_io_reg_write_8(&MTU2.TIOR_2, 0x01U, MTU2_TIOR_2_IOA_SHIFT, MTU2_TIOR_2_IOA);
rza_io_reg_write_8(&MTU2.TIOR_2, 0x02U, MTU2_TIOR_2_IOB_SHIFT, MTU2_TIOR_2_IOB);

/* Set TSR register */
rza_io_reg_write_8(&MTU2.TSR_2, 0x01U, MTU2_TSR_2_TCFU_SHIFT, MTU2_TSR_2_TCFU);
rza_io_reg_write_8(&MTU2.TSR_2, 0x01U, MTU2_TSR_2_TCFD_SHIFT, MTU2_TSR_2_TCFD);

/* Enable write-protected register */
rza_io_reg_write_8(&MTU2.TRWER, 0x00U, MTU2_TRWER_RWE_SHIFT, MTU2_TRWER_RWE);
/* Start count */
/* Set TSTR register */
rza_io_reg_write_8(&MTU2.TSTR, 0x01U, MTU2_TSTR_CST2_SHIFT, MTU2_TSTR_CST2);
}


void Bsp_Dspl_BacklightSetPwm(uint8_t dutyCycle)
{
uint16_t dummy_read;
UNUSED_VARIABLE(dummy_read);
/* Disable write-protected register */
//rza_io_reg_write_8(&MTU2.TRWER, 0x01U, MTU2_TRWER_RWE_SHIFT, MTU2_TRWER_RWE);
bsp_pwm.dutycycle = ((uint32_t)bsp_pwm.period * dutyCycle) / 100U;
rza_io_reg_write_16(&MTU2.TGRB_2, bsp_pwm.period, MTU2_TGRB_n_D_SHIFT, MTU2_TGRB_n_D);
rza_io_reg_write_16(&MTU2.TGRA_2, bsp_pwm.dutycycle, MTU2_TGRA_n_D_SHIFT, MTU2_TGRA_n_D);
if (0x01U == ((rza_io_reg_read_8(&MTU2.TSR_2, MTU2_TSR_n_TGFA_SHIFT, MTU2_TSR_n_TGFA)) & 0x01U))
{
dummy_read = rza_io_reg_read_8(&MTU2.TSR_2, MTU2_TSR_n_TGFA_SHIFT, MTU2_TSR_n_TGFA);
rza_io_reg_write_8(&MTU2.TSR_2, 0x00, MTU2_TSR_n_TGFA_SHIFT, MTU2_TSR_n_TGFA);
dummy_read = rza_io_reg_read_8(&MTU2.TSR_2, MTU2_TSR_n_TGFA_SHIFT, MTU2_TSR_n_TGFA);
}
/* Enable write-protected register */
//rza_io_reg_write_8(&MTU2.TRWER, 0x00U, MTU2_TRWER_RWE_SHIFT, MTU2_TRWER_RWE);
}

 

Someone note problems into my code?

thanks you very much in advanced

Este


linux kernel out of memory conditions and tuning of disk cache usage

$
0
0

We are using RZ/A1 processor based custom target board . linux kernel version is 4.9.123 ( downloaded from renesas site).

user manual r01uh0403ej0200_rz_a1h pdf is referred .

1)the platform is low memory platform having memory 64MB

2) we are doing around 45MB TCP data transfer from PC to target using netcat utility .

On Target , a process receives data over socket and writes the data to flash disk .

3) At the start of data transfer , we explicitly clear linux kernel cached memory by  calling echo 3 > /proc/sys/vm/drop_caches .

4) during TCP data transfer , we could see free -m showing "free" getting dropped to almost 1MB and most of the memory appearing as "cached" 

# free -m
                 total         used   free     shared   buffers   cached
Mem:          57            56       1       0            2           42
-/+ buffers/cache:        12      45
Swap:          0              0        0

5) sometimes , we observed kernel memory getting exhausted as page allocation failure happens in kernel  and the target reboots after the backtrace is printed below :

# [  775.947949] nc.traditional: page allocation failure: order:0, mode:0x2080020(GFP_ATOMIC)

[  775.956362] CPU: 0 PID: 1288 Comm: nc.traditional Tainted: G           O    4.9.123-pic6-g31a13de-dirty #19

[  775.966085] Hardware name: Generic R7S72100 (Flattened Device Tree)

[  775.972501] [<c0109829>] (unwind_backtrace) from [<c010796f>] (show_stack+0xb/0xc)

[  775.980118] [<c010796f>] (show_stack) from [<c0151de3>] (warn_alloc+0x89/0xba)

[  775.987361] [<c0151de3>] (warn_alloc) from [<c0152043>] (__alloc_pages_nodemask+0x1eb/0x634)

[  775.995790] [<c0152043>] (__alloc_pages_nodemask) from [<c0152523>] (__alloc_page_frag+0x39/0xde)

[  776.004685] [<c0152523>] (__alloc_page_frag) from [<c03190f1>] (__netdev_alloc_skb+0x51/0xb0)

[  776.013217] [<c03190f1>] (__netdev_alloc_skb) from [<c02c1b6f>] (sh_eth_poll+0xbf/0x3c0)

[  776.021342] [<c02c1b6f>] (sh_eth_poll) from [<c031fd8f>] (net_rx_action+0x77/0x170)

[  776.029051] [<c031fd8f>] (net_rx_action) from [<c011238f>] (__do_softirq+0x107/0x160)

[  776.036896] [<c011238f>] (__do_softirq) from [<c0112589>] (irq_exit+0x5d/0x80)

[  776.044165] [<c0112589>] (irq_exit) from [<c012f4db>] (__handle_domain_irq+0x57/0x8c)

[  776.052007] [<c012f4db>] (__handle_domain_irq) from [<c01012e1>] (gic_handle_irq+0x31/0x48)

[  776.060362] [<c01012e1>] (gic_handle_irq) from [<c0108025>] (__irq_svc+0x65/0xac)

[  776.067835] Exception stack(0xc1cafd70 to 0xc1cafdb8)

[  776.072876] fd60:                                     0002751c c1dec6a0 0000000c 521c3be5

[  776.081042] fd80: 56feb08e f64823a6 ffb35f7b feab513d f9cb0643 0000056c c1caff10 ffffe000

[  776.089204] fda0: b1f49160 c1cafdc4 c180c677 c0234ace 200e0033 ffffffff

[  776.095816] [<c0108025>] (__irq_svc) from [<c0234ace>] (__copy_to_user_std+0x7e/0x430)

[  776.103796] [<c0234ace>] (__copy_to_user_std) from [<c0241715>] (copy_page_to_iter+0x105/0x250)

[  776.112503] [<c0241715>] (copy_page_to_iter) from [<c0319aeb>] (skb_copy_datagram_iter+0xa3/0x108)

[  776.121469] [<c0319aeb>] (skb_copy_datagram_iter) from [<c03443a7>] (tcp_recvmsg+0x3ab/0x5f4)

[  776.130045] [<c03443a7>] (tcp_recvmsg) from [<c035e249>] (inet_recvmsg+0x21/0x2c)

[  776.137576] [<c035e249>] (inet_recvmsg) from [<c031009f>] (sock_read_iter+0x51/0x6e)

[  776.145384] [<c031009f>] (sock_read_iter) from [<c017795d>] (__vfs_read+0x97/0xb0)

[  776.152967] [<c017795d>] (__vfs_read) from [<c01781d9>] (vfs_read+0x51/0xb0)

[  776.159983] [<c01781d9>] (vfs_read) from [<c0178aab>] (SyS_read+0x27/0x52)

[  776.166837] [<c0178aab>] (SyS_read) from [<c0105261>] (ret_fast_syscall+0x1/0x54)

 

6) please help investigate the issue , we have certain questions as below :

a) how the kernel memory got exhausted ? at the time of low memory conditions in kernel , are the kernel page flusher threads , which should have written dirty pages from page cache to flash disk , not executing at right time ? we observed that the page reclaim procedure in kernel triggers at a slow rate . 

it looks to us that somehow the procedure which should have written pages from kernel disk cache to mmc disk does not execute at right time , so in low memory

condition , dirty pages present in kernel disk caches do not get sync to disk at right time and hence kernel goes out of memory when it tried to allocate 

page on behalf of nc process . are there any parameters available within the linux memory subsystem with which the reclaim procedure can be fined tuned ?

 

b) can we reserve some amount of free memory so that linux kernel does not caches it and kernel can use it for its other required page allocation as needed on behalf of nc process above ?

can some tuning be done in linux memory subsystem eg by using /proc/sys/vm/min_free_kbytes  to achieve this objective .

We want to ensure that all available free memory should not end up be used by disk cache mechanism in linux kernel but some amount of memory should be available for page allocations required as well. 

 

c) can we be provided with further clues on how to debug this issue further for out of memory condition in kernel  ?

what other reasons can be possible for this low memory condition in kernel  ?

 

Regards

Amit

USB port turn off/on

$
0
0

Hi 

 

We are using RZ/A1 processor based custom target board . linux kernel version is 4.9.123 ( downloaded from renesas site).

user manual r01uh0403ej0200_rz_a1h pdf is referred .

 

We need to turn off and turn on the USB port on our target . 

is there any mechanism available in user space via sysfs or anything else to accomplish the same ?

if mechanism is not available in userspace , is any driver available in kernel space to do the same ? 

 

Regards

Amit

Android Support for RZ/G2

$
0
0

Hi Sir,

I am planning to use RZ/G2 kit for my project with Android running on RZ/G2 Board.
As per my understanding RZ/G1 supports Android KitKat 4.4 and Android Marshmallow,
but I could not find any reliable resource or doc or in forum which says whether android is supported on RZ/G2 or not.

Please Help me if Android is supported on RZ/G2 and which Android version ?
Also provide me some document to start with Android porting and development for RZ/G2

Thanks & Regards,
Maneesh

A1H BSP GPIO pin setting issue

$
0
0
Currently i am trying to set the pins P4_4, P8_8 as gpio but getting the following problem
Using A1H rsk linux 4.9 bsp.
 
1) First exported and setted pin direction as out
echo 68 > /sys/class/gpio/export
echo out > /sys/class/gpio/P4_4/direction
 
2) changed value to the 1
echo 1 > /sys/class/gpio/P4_4/value
 
3) read value using cat command and got value  1
cat /sys/class/gpio/P4_4/value
 
4) changed value to the 0
echo 0 > /sys/class/gpio/P4_4/value
 
5) read the value using cat command but still got 1 the value is not changing
cat /sys/class/gpio/P4_4/value
 
Tried with multimeter also but not changing the value.
 
What will be the probelm with these pins. Is it any additional settings required.

A1H emmc interface issue

$
0
0

Trying to interfacing emmc (IS21ES04G-JQLI-TR) to the A1H Rsk based board using linux bsp 4.9. 

changed device tree

    mmc_pins: mmc {
        pinmux = <RZA1_PINMUX(4, 8, 4)>,   /* MMC_CD */
             <RZA1_PINMUX(3, 10, 8)>,   /* MMC_D1 */
             <RZA1_PINMUX(3, 11, 8)>,   /* MMC_D0 */
             <RZA1_PINMUX(3, 12, 8)>,   /* MMC_CLK */
             <RZA1_PINMUX(3, 13, 8)>,   /* MMC_CMD */
             <RZA1_PINMUX(3, 14, 8)>,   /* MMC_D3 */
             <RZA1_PINMUX(3, 15, 8)>,   /* MMC_D2 */
             <RZA1_PINMUX(4, 0, 8)>,   /* MMC_D4 */
             <RZA1_PINMUX(4, 1, 8)>,   /* MMC_D5 */
             <RZA1_PINMUX(4, 2, 8)>,   /* MMC_D6 */
             <RZA1_PINMUX(4, 3, 8)>;   /* MMC_D7 */
    };

 

 

&mmcif {
    pinctrl-names = "default";
    pinctrl-0 = <&mmc_pins>;
    vmmc-supply = <&d3_3v>;
    vqmmc-supply = <&d3_3v>;
    bus-width = <8>;
    non-removable;
    status = "okay";
};

 

But getting following error while booting

 

sh_mmcif e804c800.mmc: Chip version 0x0003, clock rate 64MHz

This architecture does not have kernel memory protection.
mmc0: error -5 whilst initialising MMC card
mmc0: error -5 whilst initialising MMC card
Starting logging: OK
random: fast init done
mmc0: error -5 whilst initialising MMC card
read-only file system detected...done
mmc0: error -5 whilst initialising MMC card

 

 

 

 

 

Viewing all 1156 articles
Browse latest View live