[U-Boot] [PATCH 06/10] usb:g_dnl:f_thor: USB download function to support TIZEN's THOR protocol

Lukasz Majewski l.majewski at samsung.com
Fri Oct 4 14:05:53 CEST 2013


Hi Marek,

> Dear Lukasz Majewski,
> 
> > Hi Marek,
> > 
> > > Dear Lukasz Majewski,
> > > 
> > > [...]
> > > 
> > > > +static struct f_thor *thor_func;
> > > > +static inline struct f_thor *func_to_thor(struct usb_function
> > > > *f) +{
> > > > +	return container_of(f, struct f_thor, usb_function);
> > > > +}
> > > > +
> > > > +DEFINE_CACHE_ALIGN_BUFFER(char, thor_tx_data_buf, sizeof(struct
> > > > rsp_box)); +DEFINE_CACHE_ALIGN_BUFFER(char, thor_rx_data_buf,
> > > > sizeof(struct rqt_box));
> > > 
> > > This should either be uint8_t or unsigned char. A buffer shall
> > > not be (signed) char.
> > 
> > Yes. I agree. This buffer shall be unsigned char. I will correct
> > that.
> > 
> > > Also, I suspect you want to use DEFINE_CACHE_ALIGN_BUFFER here,
> > > no ?
> > 
> > I'm a bit confused.... I do use DEFINE_CACHE_ALIGN_BUFFER for those
> > buffers.
> 
> OOPS!
> 
> > > > +/* **********************************************************
> > > > */ +/*         THOR protocol - transmission
> > > > handling	      */ +/*
> > > > ********************************************************** */
> > > > +DEFINE_CACHE_ALIGN_BUFFER(char, f_name, F_NAME_BUF_SIZE);
> > > 
> > > Ditto
> > 
> > I believe that buffer for storing file name (f_name) shall be
> > defined as char.
> 
> OK, good point.
> 
> [...]
> > > > +
> > > > +	rsp->rsp = rqt->rqt;
> > > > +	rsp->rsp_data = rqt->rqt_data;
> > > > +
> > > > +	switch (rqt->rqt_data) {
> > > > +	case RQT_CMD_REBOOT:
> > > > +		debug("TARGET RESET\n");
> > > > +		send_rsp(rsp);
> > > > +		g_dnl_unregister();
> > > > +		dfu_free_entities();
> > > > +		run_command("reset", 0);
> > > > +		break;
> > > > +	case RQT_CMD_POWEROFF:
> > > > +	case RQT_CMD_EFSCLEAR:
> > > > +		send_rsp(rsp);
> > > 
> > > This case fallthrough is intentional here ?
> > 
> > Yes. Thor protocol requires to receive response from device even
> > when HOST PC ordered it to power off.
> > 
> > Also, on the target only reboot command is supported.
> 
> But this will fall through into the default: branch here.

From my perspective this looks like a proper behaviour.

We send response that we have received such request and display
information that it is not supported.

> 
> > > > +	default:
> > > > +		printf("Command not supported -> cmd: %d\n",
> > > > rqt->rqt_data);
> > > > +		return -EINVAL;
> > > > +	}
> > > > +
> > > > +	return true;
> > > > +}
> 
> [...]



-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list